Package-level declarations

Types

Link copied to clipboard
data class DomposableActionItem(val key: String, val label: String, val onClick: () -> Unit, val enabled: Boolean = true, val icon: @Composable () -> Unit? = null)

Stable action identity shared by groups and action menus. Icon rendering remains caller-owned.

Link copied to clipboard
data class DomposableAppBarItemContent(val key: String, val content: @Composable () -> Unit, val overflowContent: @Composable (dismiss: () -> Unit) -> Unit? = null)

Optional custom visible and overflow slots for one DomposableAppBarProps action.

Link copied to clipboard
data class DomposableAppBarProps(val items: List<DomposableActionItem>, val label: String, val orientation: DomposableOrientation = DomposableOrientation.Horizontal, val overflowLabel: String = "More actions", val spacing: DomposableLength = 4.dp, val appearance: DomposableButtonAppearance? = null, val customItems: List<DomposableAppBarItemContent> = emptyList())

Overflow-aware action container; the application owns each action and its identity.

Link copied to clipboard

Main-axis placement. The layout's gap remains the minimum spacing for every arrangement.

Link copied to clipboard
data class DomposableAutocompleteProps(val value: String, val onValueChange: (String) -> Unit, val onOptionSelected: (DomposableSelectOption) -> Unit, val options: List<DomposableSelectOption>, val expanded: Boolean, val onExpandedChange: (Boolean) -> Unit, val label: String, val enabled: Boolean = true, val readOnly: Boolean = false, val appearance: DomposableTextFieldAppearance? = null)
Link copied to clipboard
data class DomposableAvatarProps(val initials: String, val description: String, val appearance: DomposableSurfaceAppearance? = null, val content: @Composable () -> Unit? = null)
Link copied to clipboard
data class DomposableBadgedBoxProps(val badge: @Composable () -> Unit)
Link copied to clipboard
data class DomposableBadgeProps(val text: String? = null, val appearance: DomposableSurfaceAppearance? = null, val label: String? = null, val contentPadding: DomposableInsets? = null, val minWidth: DomposableLength? = null, val minHeight: DomposableLength? = null, val content: @Composable () -> Unit? = null)
Link copied to clipboard
data class DomposableBannerProps(val message: String, val isError: Boolean = false, val appearance: DomposableSurfaceAppearance? = null)
Link copied to clipboard
data class DomposableBottomAppBarProps(val floatingAction: @Composable () -> Unit = {}, val appearance: DomposableSurfaceAppearance? = null, val variant: DomposableBottomAppBarVariant = DomposableBottomAppBarVariant.Standard)
Link copied to clipboard
data class DomposableBottomSheetProps(val title: String, val onDismiss: () -> Unit, val appearance: DomposableSurfaceAppearance? = null, val modal: Boolean = true, val headerContent: @Composable (onDismiss: () -> Unit) -> Unit? = null, val layout: DomposableModalLayout = DomposableModalLayout(), val skipPartiallyExpanded: Boolean = false)
Link copied to clipboard
data class DomposableBottomSheetScaffoldProps(val expanded: Boolean, val onExpandedChange: (Boolean) -> Unit, val peekHeight: DomposableLength = 56.dp, val swipeEnabled: Boolean = true, val sheetContent: @Composable () -> Unit, val appearance: DomposableSurfaceAppearance? = null)
Link copied to clipboard
data class DomposableBoxProps(val alignment: DomposableAlignment = DomposableAlignment.Start, val verticalAlignment: DomposableAlignment = alignment)
Link copied to clipboard
data class DomposableButtonGroupProps(val items: List<DomposableActionItem>, val label: String, val spacing: DomposableLength = 8.dp, val appearance: DomposableButtonAppearance? = null)
Link copied to clipboard
data class DomposableButtonProps(val onClick: () -> Unit, val enabled: Boolean = true, val style: DomposableButtonStyle = DomposableButtonStyle.Filled, val loading: Boolean = false, val loadingLabel: String? = null, val expanded: Boolean? = null, val appearance: DomposableButtonAppearance? = null)
Link copied to clipboard
data class DomposableCardProps(val onClick: () -> Unit? = null, val appearance: DomposableSurfaceAppearance? = null, val variant: DomposableCardVariant = DomposableCardVariant.Filled, val enabled: Boolean = true, val href: String? = null, val actionLabel: String? = null, val contentPadding: DomposableInsets? = null)
Link copied to clipboard
data class DomposableCarouselControlsAppearance(val navigationButton: DomposableButtonAppearance? = null, val activeIndicator: DomposableColor? = null, val inactiveIndicator: DomposableColor? = null, val previousIcon: @Composable () -> Unit? = null, val nextIcon: @Composable () -> Unit? = null, val wideInactiveIndicator: DomposableColor? = null)
Link copied to clipboard
data class DomposableCarouselLabels(val previous: String, val next: String, val itemPosition: (position: Int, total: Int) -> String)
Link copied to clipboard
data class DomposableCarouselProps(val items: List<DomposableLazyItem>, val label: String, val variant: DomposableCarouselVariant = DomposableCarouselVariant.MultiBrowse, val preferredItemWidth: DomposableLength = 240.dp, val minSmallItemWidth: DomposableLength = 40.dp, val maxSmallItemWidth: DomposableLength = 56.dp, val spacing: DomposableLength = 8.dp, val currentItem: Int = 0, val onCurrentItemChange: (Int) -> Unit? = null, val pagedLayout: DomposablePagedCarouselLayout? = null, val onApproachingEnd: (Int) -> Unit? = null)
Link copied to clipboard
data class DomposableChartSeries(val key: String, val label: String, val values: List<DomposableChartValue>, val tone: DomposableChartTone = DomposableChartTone.Primary, val color: DomposableColor? = null, val currentValue: Float? = values.lastOrNull()?.value)
Link copied to clipboard
data class DomposableChartValue(val label: String, val value: Float, val axisIndex: Int? = null)
Link copied to clipboard
data class DomposableCheckboxProps(val checked: Boolean, val onCheckedChange: (Boolean) -> Unit?, val label: String = "", val enabled: Boolean = true, val appearance: DomposableCheckboxAppearance? = null, val showLabel: Boolean = true, val description: String? = null, val controlPlacement: DomposableControlPlacement = DomposableControlPlacement.Leading, val indeterminate: Boolean = false)
Link copied to clipboard
data class DomposableChipProps(val label: String, val onClick: () -> Unit, val selected: Boolean = false, val enabled: Boolean = true, val appearance: DomposableItemAppearance? = null, val variant: DomposableChipVariant = DomposableChipVariant.Filter, val leadingIcon: @Composable () -> Unit? = null, val trailingIcon: @Composable () -> Unit? = null, val elevated: Boolean = false)
Link copied to clipboard
data class DomposableColumnProps(val gap: DomposableLength = 0.dp, val alignment: DomposableAlignment = DomposableAlignment.Start, val arrangement: DomposableArrangement = DomposableArrangement.Start)
Link copied to clipboard

A typed identity for a design-system extension. Keep the key stable across recomposition.

Link copied to clipboard

Immutable, typed renderer bindings. Keys are identities rather than global string names.

Link copied to clipboard

Product renderers receive the same portable modifier as the built-in components.

Link copied to clipboard
data class DomposableDataTableColumn(val key: String, val label: String, val accessibleLabel: String = label, val alignment: DomposableTextAlignment = DomposableTextAlignment.Start)
Link copied to clipboard
data class DomposableDataTableProps(val columns: List<DomposableDataTableColumn>, val rows: List<DomposableDataTableRow>, val sizePreset: DomposableDataTableSize = DomposableDataTableSize.Standard, val rowHeaderColumnKey: String? = null, val allowHorizontalOverflow: Boolean = true, val onRowActivate: (String) -> Unit? = null, val cellAction: (rowKey: String, columnKey: String) -> () -> Unit? = { _, _ -> null }, val appearance: DomposableTableAppearance? = null, val cellContent: @Composable (row: DomposableDataTableRow, column: DomposableDataTableColumn) -> Unit)
Link copied to clipboard
data class DomposableDataTableRow(val key: String, val accessibleLabel: String? = null, val selected: Boolean = false)
Link copied to clipboard
data class DomposableDatePickerProps(val selectedDateMillis: Long?, val onDateChange: (Long?) -> Unit, val yearRange: IntRange = DEFAULT_FIRST_PICKER_YEAR..DEFAULT_LAST_PICKER_YEAR, val mode: DomposableDatePickerMode = DomposableDatePickerMode.Calendar, val onModeChange: (DomposableDatePickerMode) -> Unit? = null, val isDateSelectable: (Long) -> Boolean = { true }, val showModeToggle: Boolean = true, val appearance: DomposableSurfaceAppearance? = null)
Link copied to clipboard
data class DomposableDateRangePickerProps(val startDateMillis: Long?, val endDateMillis: Long?, val onDateRangeChange: (Long?, Long?) -> Unit, val yearRange: IntRange = DEFAULT_FIRST_PICKER_YEAR..DEFAULT_LAST_PICKER_YEAR, val mode: DomposableDatePickerMode = DomposableDatePickerMode.Calendar, val onModeChange: (DomposableDatePickerMode) -> Unit? = null, val isDateSelectable: (Long) -> Boolean = { true }, val showModeToggle: Boolean = true, val appearance: DomposableSurfaceAppearance? = null)
Link copied to clipboard
data class DomposableDialogProps(val title: String, val onDismiss: () -> Unit, val actions: @Composable () -> Unit = {}, val appearance: DomposableSurfaceAppearance? = null, val variant: DomposableDialogVariant = DomposableDialogVariant.Alert, val headerContent: @Composable (onDismiss: () -> Unit) -> Unit? = null, val layout: DomposableModalLayout = DomposableModalLayout(), val dismissOnBackPress: Boolean = true, val dismissOnClickOutside: Boolean = true)
Link copied to clipboard
data class DomposableDisclosureProps(val title: String, val description: String? = null, val expanded: Boolean, val onToggle: () -> Unit, val appearance: DomposableSurfaceAppearance? = null)

A controlled disclosure whose expanded content remains owned by the caller.

Link copied to clipboard
data class DomposableDividerProps(val orientation: DomposableOrientation = DomposableOrientation.Horizontal, val appearance: DomposableDividerAppearance? = null)
Link copied to clipboard
data class DomposableDragHandleProps(val label: String, val onDrag: (Float) -> Unit, val enabled: Boolean = true, val appearance: DomposableSurfaceAppearance? = null)
Link copied to clipboard
data class DomposableFloatingActionButtonMenuProps(val expanded: Boolean, val onExpandedChange: (Boolean) -> Unit, val label: String, val items: List<DomposableActionItem>, val appearance: DomposableSurfaceAppearance? = null)
Link copied to clipboard
data class DomposableFloatingActionButtonProps(val onClick: () -> Unit, val label: String, val appearance: DomposableSurfaceAppearance? = null, val size: DomposableFabSize = DomposableFabSize.Standard, val extended: Boolean = false)
Link copied to clipboard
data class DomposableFloatingToolbarProps(val expanded: Boolean, val orientation: DomposableOrientation = DomposableOrientation.Horizontal, val leadingContent: @Composable () -> Unit = {}, val trailingContent: @Composable () -> Unit = {}, val floatingAction: @Composable () -> Unit = {}, val appearance: DomposableSurfaceAppearance? = null, val variant: DomposableFloatingToolbarVariant = DomposableFloatingToolbarVariant.Standard, val contentPadding: DomposableInsets = DomposableInsets(8.dp))
Link copied to clipboard

Standard Material toolbar colors or the high-emphasis expressive treatment.

Link copied to clipboard
data class DomposableFlowRowProps(val gap: DomposableLength = 8.dp, val arrangement: DomposableArrangement = DomposableArrangement.Start, val alignment: DomposableAlignment = DomposableAlignment.Start, val rowGap: DomposableLength = gap)
Link copied to clipboard
data class DomposableFormProps(val onSubmit: () -> Unit, val enabled: Boolean = true, val label: String? = null, val browserValidationEnabled: Boolean = true)

Controlled semantic form shared by native Compose and HTML renderers.

Link copied to clipboard
data class DomposableGridWindow(val rowHeight: DomposableLength, val viewportHeight: DomposableLength, val overscanRows: Int = 3)

Fixed-height rows; the collection's DomposableLazyGridProps.columns controls responsive width.

Link copied to clipboard

Resolves a DOM-owned trigger for adapters that already render it outside Compose.

Link copied to clipboard

Preferred side for a semantic HTML menu positioned against a DOM-owned anchor.

Link copied to clipboard

Resolves a preferred HTML menu side from the rendered menu root.

Link copied to clipboard
typealias DomposableHtmlModifierDecoration = @Composable (content: @Composable () -> Unit) -> Unit

App-owned HTML/SVG decoration around the remaining ordered modifier chain. Render content once.

Link copied to clipboard

Return null for unhandled elements, allowing the attribute renderer to handle them.

Link copied to clipboard

Application-owned HTML adapter for an open DomposableModifierElement.

Link copied to clipboard
data class DomposableIconButtonProps(val onClick: () -> Unit, val label: String, val enabled: Boolean = true, val appearance: DomposableButtonAppearance? = null, val variant: DomposableIconButtonVariant = DomposableIconButtonVariant.Standard, val checked: Boolean? = null)
Link copied to clipboard
data class DomposableIconProps(val symbol: String, val description: String?, val appearance: DomposableIconAppearance? = null, val vector: DomposableVectorIcon? = null)
Link copied to clipboard
data class DomposableImageProps(val source: String, val description: String?, val onLoaded: () -> Unit? = null, val onError: () -> Unit? = null, val scale: DomposableImageScale = DomposableImageScale.Fit)
Link copied to clipboard
data class DomposableLabelProps(val label: @Composable () -> Unit, val persistent: Boolean = false, val appearance: DomposableSurfaceAppearance? = null)
Link copied to clipboard
data class DomposableLazyColumnProps(val items: List<DomposableLazyItem>, val gap: DomposableLength = 0.dp, val window: DomposableListWindow? = null)
Link copied to clipboard
data class DomposableLazyGridProps(val items: List<DomposableLazyItem>, val columns: Int = 2, val gap: DomposableLength = 8.dp, val window: DomposableGridWindow? = null)
Link copied to clipboard
data class DomposableLazyItem(val key: String, val content: @Composable () -> Unit)
Link copied to clipboard
data class DomposableLazyRowProps(val items: List<DomposableLazyItem>, val gap: DomposableLength = 0.dp, val window: DomposableRowWindow? = null)
Link copied to clipboard
data class DomposableLineChartProps(val series: List<DomposableChartSeries>, val title: String? = null, val description: String? = null, val xAxisLabels: List<String>? = null, val yAxisFormatter: (Float) -> String = { it.toInt().toString() }, val sizePreset: DomposableChartSize = DomposableChartSize.Thumbnail, val displayTitle: Boolean = true, val accessibilityDescription: String? = description, val onSelectedIndexChange: (Int?) -> Unit? = null, val appearance: DomposableChartAppearance? = null)
Link copied to clipboard
data class DomposableLinkProps(val label: String, val href: String, val onClick: () -> Unit? = null, val textStyle: DomposableTextStyle = DomposableTextStyle.Body, val appearance: DomposableTextAppearance? = null, val buttonAppearance: DomposableButtonAppearance? = null, val buttonStyle: DomposableButtonStyle = DomposableButtonStyle.Filled, val content: @Composable () -> Unit? = null)

A browser anchor on HTML; opens a URI with the platform handler on Compose UI.

Link copied to clipboard
data class DomposableListItemProps(val headline: String, val supportingText: String? = null, val overline: String? = null, val onClick: () -> Unit? = null, val selected: Boolean = false, val enabled: Boolean = true, val leadingContent: @Composable () -> Unit = {}, val trailingContent: @Composable () -> Unit = {}, val variant: DomposableListItemVariant = DomposableListItemVariant.Standard, val position: DomposableListItemPosition = DomposableListItemPosition.Only, val appearance: DomposableItemAppearance? = null)
Link copied to clipboard
data class DomposableListWindow(val rowHeight: DomposableLength, val viewportHeight: DomposableLength, val overscan: Int = 3, val measureRows: Boolean = false)

Opt-in rows. In measured mode rowHeight estimates rows until their actual height is known.

Link copied to clipboard
data class DomposableLoadingIndicatorProps(val label: String = "Loading", val contained: Boolean = false, val appearance: DomposableProgressAppearance? = null, val containerColor: DomposableColor? = null, val progress: Float? = null)
Link copied to clipboard

Semantic cell fills; renderers map these roles to their own palette.

Link copied to clipboard

Semantic foreground roles; renderers map these roles to their own palette.

Link copied to clipboard

Renderer-neutral column roles for responsive matrix layouts.

Link copied to clipboard
data class DomposableMatrixTableCell<Icon>(val text: String, val surface: DomposableMatrixCellSurface = DomposableMatrixCellSurface.Empty, val tone: DomposableMatrixCellTone = DomposableMatrixCellTone.Neutral, val emphasized: Boolean = false, val enabled: Boolean = false, val overlayIcon: Icon? = null, val overlayDescription: String? = null, val overlayTestTag: String? = null)

A renderer-neutral matrix cell. The icon type is supplied by the consuming design system so this model does not depend on a particular icon catalogue.

Link copied to clipboard
data class DomposableMatrixTableColumn(val key: String, val compactLabel: String, val expandedLabel: String = compactLabel, val role: DomposableMatrixColumnRole, val accessibleLabel: String = expandedLabel)
Link copied to clipboard
data class DomposableMatrixTableRow<Icon>(val key: String, val accessibleLabel: String?, val compactHeader: String, val expandedHeader: String = compactHeader, val accentIndex: Int = 0, val trailingIcon: Icon? = null, val trailingIconDescription: String? = null, val trailingIconTestTag: String? = null, val cellsByColumn: Map<String, DomposableMatrixTableCell<Icon>>)

A keyed matrix row. The icon type is supplied by the consuming design system so this model stays independent of any product icon source.

Link copied to clipboard
data class DomposableMenuGroupProps(val appearance: DomposableSurfaceAppearance? = null)
Link copied to clipboard
data class DomposableMenuItem(val label: String, val onClick: () -> Unit, val enabled: Boolean = true, val checked: Boolean? = null, val selected: Boolean? = null, val leadingIcon: @Composable () -> Unit? = null, val selectedIcon: @Composable () -> Unit? = null, val trailingContent: @Composable () -> Unit? = null, val supportingText: @Composable () -> Unit? = null, val appearance: DomposableItemAppearance? = null, val textContent: @Composable () -> Unit? = null)
Link copied to clipboard
data class DomposableMenuProps(val expanded: Boolean, val onDismiss: () -> Unit, val items: List<DomposableMenuItem>, val appearance: DomposableSurfaceAppearance? = null, val anchor: @Composable () -> Unit? = null, val contentSpacing: DomposableLength = 0.dp, val anchorOffset: DomposableOffset = DomposableOffset())
Link copied to clipboard
data class DomposableModalLayout(val maxWidth: DomposableLength? = null, val fillViewportWidth: Boolean = false, val padding: DomposableInsets? = null, val heightFraction: Float? = null, val maxHeight: DomposableLength? = null, val maxViewportFraction: Float? = null, val viewportInset: DomposableLength = 16.dp, val alignment: DomposableModalAlignment = DomposableModalAlignment.Center, val swipeToDismiss: Boolean = true, val sectionSpacing: DomposableLength? = null)

Bounds of the modal surface itself rather than its modifier wrapper. Native dialogs/sheets retain platform placement; alignment adapts the HTML surface to the browser viewport. padding controls Basic/FullScreen dialog and sheet content; Material picker/alert variants retain their platform content spacing. sectionSpacing controls gaps between arranged sections in HTML modals and native Basic/FullScreen dialogs and sheet content. Native Material picker/alert variants retain their platform section spacing, as does the native sheet drag handle.

Link copied to clipboard

Ordered portable operations. Platform adapters preserve order, including nested padding.

Link copied to clipboard

Open marker for app-owned portable modifier behavior. Each renderer must handle it explicitly.

data class DomposableMultiChoiceSegmentedButtonsProps(val labels: List<String>, val selectedIndices: Set<Int>, val onSelectionChange: (Set<Int>) -> Unit, val label: String, val enabled: Boolean = true, val optionEnabled: List<Boolean> = labels.map { true }, val appearance: DomposableItemAppearance? = null)

Multiple independent selected segments, with stable indices within the supplied labels.

Link copied to clipboard
data class DomposableNavigationBarProps(val items: List<DomposableNavigationItem>, val selectedIndex: Int, val onSelect: (Int) -> Unit, val orientation: DomposableOrientation = DomposableOrientation.Horizontal, val appearance: DomposableItemAppearance? = null, val short: Boolean = false, val label: String = "Application", val webLayout: DomposableWebNavigationLayout = DomposableWebNavigationLayout.Material)
Link copied to clipboard
data class DomposableNavigationDrawerItemProps(val label: String, val selected: Boolean, val onClick: () -> Unit, val enabled: Boolean = true, val icon: @Composable () -> Unit = {}, val badge: @Composable () -> Unit = {}, val appearance: DomposableItemAppearance? = null)
Link copied to clipboard
data class DomposableNavigationDrawerProps(val expanded: Boolean, val onDismiss: () -> Unit, val variant: DomposableDrawerVariant = DomposableDrawerVariant.Modal, val gesturesEnabled: Boolean = true, val label: String = "Navigation", val appearance: DomposableSurfaceAppearance? = null)
Link copied to clipboard
data class DomposableNavigationItem(val label: String, val symbol: String = "", val href: String? = null, val icon: @Composable () -> Unit? = null, val enabled: Boolean = true)
Link copied to clipboard
data class DomposablePagedCarouselLayout(val compactHeight: DomposableLength? = null, val wideHeight: DomposableLength? = null, val heightTextScaleReference: DomposableLength? = null, val breakpoint: DomposableLength = 600.dp, val contentInset: DomposableLength = 16.dp, val itemSpacing: DomposableLength = 12.dp, val compactTrailingPeek: DomposableLength = 14.dp, val showIndicators: Boolean = true, val showNavigation: Boolean = true, val labels: DomposableCarouselLabels, val controls: DomposableCarouselControlsAppearance = DomposableCarouselControlsAppearance())

Layout and accessibility options for a one-item-at-a-time responsive carousel.

Link copied to clipboard
data class DomposableProgressProps(val value: Float? = null, val label: String? = "Loading", val circular: Boolean = true, val appearance: DomposableProgressAppearance? = null, val variant: DomposableProgressVariant = DomposableProgressVariant.Standard, val liveRegion: DomposableLiveRegion? = null, val semantics: DomposableProgressSemantics = io.github.samuolis.domposable.foundation.DomposableProgressSemantics.ProgressBar)
Link copied to clipboard
data class DomposablePullToRefreshProps(val refreshing: Boolean, val onRefresh: () -> Unit, val enabled: Boolean = true, val label: String = "Refresh", val threshold: DomposableLength = 80.dp, val appearance: DomposableProgressAppearance? = null, val indicatorContent: @Composable (DomposablePullToRefreshState) -> Unit? = null)
Link copied to clipboard
data class DomposablePullToRefreshState(val progress: Float, val refreshing: Boolean)

Shared pull progress for custom indicators; progress is clamped to 0..1.

Link copied to clipboard
data class DomposableRadioButtonProps(val selected: Boolean, val onClick: () -> Unit?, val label: String = "", val enabled: Boolean = true, val appearance: DomposableRadioButtonAppearance? = null, val showLabel: Boolean = true, val description: String? = null, val controlPlacement: DomposableControlPlacement = DomposableControlPlacement.Leading, val groupName: String? = null)
Link copied to clipboard
data class DomposableRangeSliderProps(val value: ClosedFloatingPointRange<Float>, val onValueChange: (ClosedFloatingPointRange<Float>) -> Unit, val startLabel: String, val endLabel: String, val range: ClosedFloatingPointRange<Float> = 0f..1f, val steps: Int = 0, val enabled: Boolean = true, val colors: DomposableSliderColors? = null)
Link copied to clipboard
sealed interface DomposableRichHtmlNode

A safe, renderer-neutral node produced by parseDomposableRichHtml. The AST contains only text, allowlisted formatting elements, and a validated link destination; it never contains executable markup or arbitrary HTML attributes.

Link copied to clipboard
data class DomposableRichHtmlProps(val rawHtml: String, val selectable: Boolean = false, val onLinkClick: (String) -> Unit? = null, val style: DomposableTextStyle = DomposableTextStyle.Body, val appearance: DomposableTextAppearance? = null, val color: DomposableColor? = null)

Safe, renderer-neutral rich text parsed as allowlisted markup on every platform.

Link copied to clipboard
data class DomposableRowProps(val gap: DomposableLength = 0.dp, val alignment: DomposableAlignment = DomposableAlignment.Start, val stretch: Boolean = false, val arrangement: DomposableArrangement = DomposableArrangement.Start)
Link copied to clipboard
data class DomposableRowWindow(val itemWidth: DomposableLength, val itemHeight: DomposableLength, val viewportWidth: DomposableLength, val overscan: Int = 3)

Fixed cells in a horizontally scrolling collection.

Link copied to clipboard
data class DomposableScaffoldProps(val topBar: @Composable () -> Unit = {}, val bottomBar: @Composable () -> Unit = {}, val navigation: @Composable () -> Unit = {}, val contextual: @Composable () -> Unit = {}, val floatingAction: @Composable () -> Unit = {}, val snackbar: @Composable () -> Unit = {}, val overlays: @Composable () -> Unit = {}, val appearance: DomposableSurfaceAppearance? = null, val floatingActionPosition: DomposableScaffoldFabPosition = DomposableScaffoldFabPosition.End)
Link copied to clipboard
Link copied to clipboard
data class DomposableScrimProps(val onClick: () -> Unit? = null, val label: String? = null, val alpha: Float = 1.0f, val color: DomposableColor? = null)

A backdrop in the caller's overlay container; a dismissible scrim needs an accessible label.

Link copied to clipboard
data class DomposableScrollFieldProps(val itemCount: Int, val selectedIndex: Int, val onSelectedIndexChange: (Int) -> Unit, val label: String, val indexDescription: (Int) -> String = { it.toString() }, val enabled: Boolean = true, val itemContent: @Composable (index: Int, selected: Boolean, enabled: Boolean) -> Unit? = null, val appearance: DomposableItemAppearance? = null)

A controlled wheel; identity and display labels remain owned by the caller.

Link copied to clipboard

Cross-renderer scroll position. Values are Compose pixels on native and CSS pixels in HTML.

Cross-renderer scroll position. Values are Compose pixels on native and CSS pixels in HTML.

Cross-renderer scroll position. Values are Compose pixels on native and CSS pixels in HTML.

Link copied to clipboard
data class DomposableSearchBarProps(val query: String, val onQueryChange: (String) -> Unit, val expanded: Boolean, val onExpandedChange: (Boolean) -> Unit, val onSearch: (String) -> Unit, val label: String, val placeholder: String? = null, val enabled: Boolean = true, val leadingIcon: @Composable () -> Unit = {}, val trailingIcon: @Composable () -> Unit = {}, val appearance: DomposableTextFieldAppearance? = null, val variant: DomposableSearchBarVariant = DomposableSearchBarVariant.FullScreen, val navigationIcon: @Composable () -> Unit? = null, val actions: @Composable () -> Unit? = null)
Link copied to clipboard
data class DomposableSegmentedButtonsProps(val labels: List<String>, val selectedIndex: Int, val onSelect: (Int) -> Unit, val label: String, val enabled: Boolean = true, val optionEnabled: List<Boolean> = labels.map { true }, val optionTestTags: List<String?> = labels.map { null }, val groupName: String? = null, val showSelectedIcon: Boolean = true, val allowReselect: Boolean = true, val appearance: DomposableItemAppearance? = null, val equalWidth: Boolean = false, val selectedIcon: @Composable () -> Unit? = null)
Link copied to clipboard
data class DomposableSelectOption(val value: String, val label: String, val enabled: Boolean = true)

App-owned values stay stable when options are reordered or their labels are translated.

Link copied to clipboard
data class DomposableSelectProps(val value: String, val onValueChange: (String) -> Unit, val label: String, val options: List<DomposableSelectOption>, val enabled: Boolean = true, val error: String? = null, val appearance: DomposableButtonAppearance? = null)
Link copied to clipboard
data class DomposableSliderProps(val value: Float, val onValueChange: (Float) -> Unit, val label: String, val range: ClosedFloatingPointRange<Float> = 0f..1f, val steps: Int = 0, val enabled: Boolean = true, val colors: DomposableSliderColors? = null, val orientation: DomposableOrientation = DomposableOrientation.Horizontal, val topToBottom: Boolean = true)
Link copied to clipboard

One request owned by DomposableSnackbarHostState; completion is idempotent.

Link copied to clipboard
data class DomposableSnackbarHostProps(val state: DomposableSnackbarHostState, val appearance: DomposableSurfaceAppearance? = null, val snackbarContent: @Composable (DomposableSnackbarData) -> Unit? = null)
Link copied to clipboard

Serializes requests; cancelling a caller removes its active or queued snackbar.

Link copied to clipboard
data class DomposableSnackbarProps(val message: String, val actionLabel: String? = null, val onAction: () -> Unit? = null, val onDismiss: () -> Unit? = null, val appearance: DomposableSurfaceAppearance? = null)

Presentation only: the app decides when to show, dismiss or replace a message.

Link copied to clipboard
data class DomposableSpacerProps(val length: DomposableLength = 8.dp)
Link copied to clipboard
data class DomposableSplitButtonProps(val label: String, val onClick: () -> Unit, val secondaryLabel: String, val onSecondaryClick: () -> Unit, val expanded: Boolean = false, val enabled: Boolean = true, val style: DomposableButtonStyle = DomposableButtonStyle.Filled, val appearance: DomposableButtonAppearance? = null)
Link copied to clipboard
data class DomposableSurfaceProps(val color: DomposableColor? = null, val appearance: DomposableSurfaceAppearance? = null)
Link copied to clipboard
data class DomposableSwipeToDismissProps(val onDismiss: (DomposableSwipeDirection) -> Unit, val enabled: Boolean = true, val allowStartToEnd: Boolean = true, val allowEndToStart: Boolean = true, val startActionLabel: String = "Dismiss", val endActionLabel: String = "Dismiss", val background: @Composable (DomposableSwipeDirection?) -> Unit = {})
Link copied to clipboard
data class DomposableSwitchProps(val checked: Boolean, val onCheckedChange: (Boolean) -> Unit?, val label: String = "", val enabled: Boolean = true, val appearance: DomposableSwitchAppearance? = null, val showLabel: Boolean = true, val description: String? = null, val controlPlacement: DomposableControlPlacement = DomposableControlPlacement.Leading)
Link copied to clipboard
data class DomposableTabItem(val key: String, val label: String, val contentDescription: String = label, val enabled: Boolean = true, val testTag: String? = null, val icon: @Composable () -> Unit? = null, val badgeContent: @Composable () -> Unit? = null, val textAppearance: DomposableTextAppearance? = null, val selectedTextAppearance: DomposableTextAppearance? = null, val labelContent: @Composable () -> Unit? = null, val modifier: DomposableModifier = DomposableModifier)

Stable, accessible tab data with optional generic icon and badge/content slots.

Link copied to clipboard
data class DomposableTableColumn(val key: String, val label: String)
Link copied to clipboard
data class DomposableTableProps(val caption: String, val columns: List<DomposableTableColumn>, val rows: List<DomposableTableRow>, val window: DomposableListWindow? = null, val appearance: DomposableTableAppearance? = null)

A semantic HTML table and an accessible native row/column collection.

Link copied to clipboard
data class DomposableTableRow(val key: String, val cells: List<@Composable () -> Unit>)
Link copied to clipboard

Whether arrow-key navigation also changes the selected tab.

Link copied to clipboard
data class DomposableTabsAppearance(val minHeight: DomposableLength? = null, val contentPadding: DomposableInsets? = null, val indicatorThickness: DomposableLength? = null, val indicatorMatchContent: Boolean? = null, val scrollableEdgePadding: DomposableLength? = null, val scrollableMinWidth: DomposableLength? = null, val disabledOpacity: Float? = null, val activation: DomposableTabsActivation = DomposableTabsActivation.Automatic, val badgeClearance: DomposableLength? = null, val badgeOffset: DomposableOffset = DomposableOffset(DEFAULT_TAB_BADGE_OFFSET_X, DEFAULT_TAB_BADGE_OFFSET_Y))

Portable layout details that are specific to tab rows. Null fields keep Material defaults.

Link copied to clipboard
data class DomposableTabsProps(val labels: List<String>, val selectedIndex: Int, val onSelect: (Int) -> Unit, val appearance: DomposableItemAppearance? = null, val variant: DomposableTabsVariant = DomposableTabsVariant.Primary, val scrollable: Boolean = false, val icons: List<@Composable () -> Unit?> = labels.map { null }, val leadingIcons: Boolean = false, val items: List<DomposableTabItem>? = null, val label: String = "Sections", val tabsAppearance: DomposableTabsAppearance? = null)
Link copied to clipboard
data class DomposableTextFieldProps(val value: String, val onValueChange: (String) -> Unit, val label: String, val purpose: DomposableInputPurpose = DomposableInputPurpose.Text, val enabled: Boolean = true, val multiline: Boolean = false, val error: String? = null, val readOnly: Boolean = false, val placeholder: String? = null, val id: String? = null, val passwordVisible: Boolean = false, val autocomplete: DomposableAutocomplete? = null, val showLabel: Boolean = true, val singleLine: Boolean = !multiline, val minLines: Int = 1, val maxLines: Int = Int.MAX_VALUE, val helperText: String? = null, val isError: Boolean = error != null, val autofocus: Boolean = false, val imeAction: DomposableImeAction = DomposableImeAction.Default, val onClick: () -> Unit? = null, val onImeAction: () -> Unit? = null, val leadingIcon: @Composable () -> Unit? = null, val prefix: @Composable () -> Unit? = null, val trailingIcon: @Composable () -> Unit? = null, val appearance: DomposableTextFieldAppearance? = null, val onFocusChange: (Boolean) -> Unit? = null)

Renderer-neutral text input behavior and content. New primary-constructor parameters preserve existing Kotlin source calls through defaults; binary consumers should use the next 0.x minor.

Link copied to clipboard
data class DomposableTextProps(val text: String, val style: DomposableTextStyle = DomposableTextStyle.Body, val color: DomposableColor? = null, val headingLevel: Int? = null, val appearance: DomposableTextAppearance? = null, val runs: List<DomposableTextRun> = emptyList())

Renderer-neutral text content and appearance. New primary-constructor parameters preserve existing Kotlin source calls through defaults; binary consumers should use the next 0.x minor.

Link copied to clipboard
data class DomposableTextRun(val text: String, val fontWeight: DomposableFontWeight? = null, val color: DomposableColor? = null, val contentAlpha: Float = 1.0f)

An inline run; unspecified values inherit the surrounding text's theme and appearance.

Link copied to clipboard

Current theme values from the nearest enclosing theme, rather than mutable global branding.

Link copied to clipboard
data class DomposableThemeProps(val tokens: DomposableTokens)
Link copied to clipboard
data class DomposableTimePickerProps(val hour: Int, val minute: Int, val onTimeChange: (Int, Int) -> Unit, val is24Hour: Boolean = true, val mode: DomposableTimePickerMode = DomposableTimePickerMode.Dial, val appearance: DomposableSurfaceAppearance? = null)
Link copied to clipboard
data class DomposableToggleButtonProps(val checked: Boolean, val onCheckedChange: (Boolean) -> Unit, val enabled: Boolean = true, val style: DomposableButtonStyle = DomposableButtonStyle.Filled, val appearance: DomposableButtonAppearance? = null)
Link copied to clipboard
data class DomposableTooltipProps(val text: String, val appearance: DomposableSurfaceAppearance? = null, val title: String? = null, val action: @Composable () -> Unit? = null)

Supplemental help for an already labelled control; never its only accessible name.

Link copied to clipboard
data class DomposableTopAppBarProps(val title: String, val navigationIcon: @Composable () -> Unit = {}, val actions: @Composable () -> Unit = {}, val appearance: DomposableSurfaceAppearance? = null, val variant: DomposableTopAppBarVariant = DomposableTopAppBarVariant.Small, val subtitle: String? = null, val titleContent: @Composable () -> Unit? = null, val expandedHeight: DomposableLength? = null, val windowInsets: DomposableInsets? = null)
Link copied to clipboard
data class DomposableValueChartProps(val title: String, val description: String, val dataTableLabel: String, val series: List<DomposableChartSeries>, val formatValue: (Float) -> String, val sizePreset: DomposableChartSize = DomposableChartSize.Standard, val appearance: DomposableChartAppearance? = null)
Link copied to clipboard
data class DomposableVectorIcon(val pathData: String, val viewportWidth: Float = 24.0f, val viewportHeight: Float = 24.0f, val evenOdd: Boolean = false)

A platform-neutral filled SVG path for an icon. The path is rendered using the icon's inherited content color and the component's requested size.

Link copied to clipboard

Browser chrome changes dynamic height; small height keeps document layouts stable while scrolling.

Link copied to clipboard

HTML navigation presentation; native targets retain Material navigation.

Link copied to clipboard
data class DomposableWideNavigationRailItemProps(val label: String, val selected: Boolean, val onClick: () -> Unit, val railExpanded: Boolean, val enabled: Boolean = true, val icon: @Composable () -> Unit = {}, val appearance: DomposableItemAppearance? = null)
Link copied to clipboard
data class DomposableWideNavigationRailProps(val expanded: Boolean, val modal: Boolean = false, val onDismiss: () -> Unit = {}, val header: @Composable () -> Unit = {}, val appearance: DomposableSurfaceAppearance? = null)

Properties

Functions

Link copied to clipboard
Link copied to clipboard

Native host interop for incremental migration. Keep this element inside Compose UI renderers.

Link copied to clipboard
Link copied to clipboard
fun DomposableModifier.boxAlignment(horizontal: DomposableAlignment = DomposableAlignment.Center, vertical: DomposableAlignment = DomposableAlignment.Center): DomposableModifier
Link copied to clipboard
fun DomposableModifier.clickable(onClick: () -> Unit, role: DomposableClickRole = DomposableClickRole.Button, enabled: Boolean = true, onClickLabel: String? = null): DomposableModifier
Link copied to clipboard
fun DomposableAppBar(items: List<DomposableActionItem>, label: String, modifier: DomposableModifier = DomposableModifier, orientation: DomposableOrientation = DomposableOrientation.Horizontal, overflowLabel: String = "More actions", spacing: DomposableLength = 4.dp, appearance: DomposableButtonAppearance? = null, customItems: List<DomposableAppBarItemContent> = emptyList())
Link copied to clipboard
fun <T : HTMLElement> AttrsScope<T>.domposableAttributes(modifier: DomposableModifier)

Semantic attributes attach to the control, not to its layout wrappers.

Link copied to clipboard
fun DomposableAutocomplete(value: String, onValueChange: (String) -> Unit, onOptionSelected: (DomposableSelectOption) -> Unit, options: List<DomposableSelectOption>, expanded: Boolean, onExpandedChange: (Boolean) -> Unit, label: String, enabled: Boolean = true, readOnly: Boolean = false, appearance: DomposableTextFieldAppearance? = null, modifier: DomposableModifier = DomposableModifier)
Link copied to clipboard
fun DomposableAvatar(initials: String, description: String, modifier: DomposableModifier = DomposableModifier, appearance: DomposableSurfaceAppearance? = null, content: @Composable () -> Unit? = null)
Link copied to clipboard
fun DomposableBadge(text: String? = null, modifier: DomposableModifier = DomposableModifier, appearance: DomposableSurfaceAppearance? = null, label: String? = null, contentPadding: DomposableInsets? = null, minWidth: DomposableLength? = null, minHeight: DomposableLength? = null, content: @Composable () -> Unit? = null)
Link copied to clipboard
fun DomposableBadgedBox(badge: @Composable () -> Unit, modifier: DomposableModifier = DomposableModifier, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableBanner(message: String, modifier: DomposableModifier = DomposableModifier, isError: Boolean = false, appearance: DomposableSurfaceAppearance? = null)
Link copied to clipboard
fun DomposableBottomAppBar(floatingAction: @Composable () -> Unit = {}, appearance: DomposableSurfaceAppearance? = null, modifier: DomposableModifier = DomposableModifier, variant: DomposableBottomAppBarVariant = DomposableBottomAppBarVariant.Standard, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableBottomSheet(title: String, onDismiss: () -> Unit, modifier: DomposableModifier = DomposableModifier, appearance: DomposableSurfaceAppearance? = null, modal: Boolean = true, headerContent: @Composable (onDismiss: () -> Unit) -> Unit? = null, layout: DomposableModalLayout = DomposableModalLayout(), skipPartiallyExpanded: Boolean = false, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableBottomSheetScaffold(expanded: Boolean, onExpandedChange: (Boolean) -> Unit, peekHeight: DomposableLength = 56.dp, swipeEnabled: Boolean = true, sheetContent: @Composable () -> Unit, appearance: DomposableSurfaceAppearance? = null, modifier: DomposableModifier = DomposableModifier, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableBox(modifier: DomposableModifier = DomposableModifier, alignment: DomposableAlignment = DomposableAlignment.Start, content: @Composable () -> Unit)
fun DomposableBox(modifier: DomposableModifier = DomposableModifier, alignment: DomposableAlignment = DomposableAlignment.Start, verticalAlignment: DomposableAlignment, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableButton(text: String, onClick: () -> Unit, modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true)
fun DomposableButton(onClick: () -> Unit, modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true, style: DomposableButtonStyle = DomposableButtonStyle.Filled, content: @Composable () -> Unit)
fun DomposableButton(text: String, onClick: () -> Unit, style: DomposableButtonStyle, modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true)
fun DomposableButton(onClick: () -> Unit, modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true, style: DomposableButtonStyle = DomposableButtonStyle.Filled, loading: Boolean = false, loadingLabel: String? = null, expanded: Boolean? = null, appearance: DomposableButtonAppearance? = null, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableButtonGroup(items: List<DomposableActionItem>, label: String, spacing: DomposableLength = 8.dp, appearance: DomposableButtonAppearance? = null, modifier: DomposableModifier = DomposableModifier)
Link copied to clipboard
fun DomposableCard(modifier: DomposableModifier = DomposableModifier, onClick: () -> Unit? = null, appearance: DomposableSurfaceAppearance? = null, variant: DomposableCardVariant = DomposableCardVariant.Filled, enabled: Boolean = true, href: String? = null, actionLabel: String? = null, contentPadding: DomposableInsets? = null, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableCarousel(items: List<DomposableLazyItem>, label: String, variant: DomposableCarouselVariant = DomposableCarouselVariant.MultiBrowse, preferredItemWidth: DomposableLength = 240.dp, minSmallItemWidth: DomposableLength = 40.dp, maxSmallItemWidth: DomposableLength = 56.dp, spacing: DomposableLength = 8.dp, modifier: DomposableModifier = DomposableModifier, currentItem: Int = 0, onCurrentItemChange: (Int) -> Unit? = null, pagedLayout: DomposablePagedCarouselLayout? = null, onApproachingEnd: (Int) -> Unit? = null)
Link copied to clipboard
fun DomposableCheckbox(checked: Boolean, onCheckedChange: (Boolean) -> Unit?, label: String = "", modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true, appearance: DomposableCheckboxAppearance? = null, showLabel: Boolean = true, description: String? = null, controlPlacement: DomposableControlPlacement = DomposableControlPlacement.Leading, indeterminate: Boolean = false)
Link copied to clipboard
fun DomposableChip(label: String, onClick: () -> Unit, modifier: DomposableModifier = DomposableModifier, selected: Boolean = false, enabled: Boolean = true, appearance: DomposableItemAppearance? = null, variant: DomposableChipVariant = DomposableChipVariant.Filter, leadingIcon: @Composable () -> Unit? = null, trailingIcon: @Composable () -> Unit? = null, elevated: Boolean = false)
Link copied to clipboard
fun DomposableColumn(modifier: DomposableModifier = DomposableModifier, gap: DomposableLength = 0.dp, alignment: DomposableAlignment = DomposableAlignment.Start, content: @Composable () -> Unit)
fun DomposableColumn(modifier: DomposableModifier = DomposableModifier, gap: DomposableLength = 0.dp, alignment: DomposableAlignment = DomposableAlignment.Start, arrangement: DomposableArrangement, content: @Composable () -> Unit)
Link copied to clipboard
fun <Props : Any> DomposableComponent(key: DomposableComponentKey<Props>, props: Props, modifier: DomposableModifier = DomposableModifier, content: @Composable () -> Unit = {})

Shared forwarding entry point used by generated or manually declared product components.

Link copied to clipboard
fun DomposableDataTable(columns: List<DomposableDataTableColumn>, rows: List<DomposableDataTableRow>, modifier: DomposableModifier = DomposableModifier, sizePreset: DomposableDataTableSize = DomposableDataTableSize.Standard, rowHeaderColumnKey: String? = null, allowHorizontalOverflow: Boolean = true, onRowActivate: (String) -> Unit? = null, cellAction: (rowKey: String, columnKey: String) -> () -> Unit? = { _, _ -> null }, appearance: DomposableTableAppearance? = null, cellContent: @Composable (row: DomposableDataTableRow, column: DomposableDataTableColumn) -> Unit)

Responsive semantic table with caller-owned cells and optional row or cell actions.

Link copied to clipboard
fun DomposableDatePicker(selectedDateMillis: Long?, onDateChange: (Long?) -> Unit, yearRange: IntRange = DEFAULT_FIRST_PICKER_YEAR..DEFAULT_LAST_PICKER_YEAR, mode: DomposableDatePickerMode = DomposableDatePickerMode.Calendar, onModeChange: (DomposableDatePickerMode) -> Unit? = null, isDateSelectable: (Long) -> Boolean = { true }, showModeToggle: Boolean = true, appearance: DomposableSurfaceAppearance? = null, modifier: DomposableModifier = DomposableModifier)
Link copied to clipboard
fun DomposableDateRangePicker(startDateMillis: Long?, endDateMillis: Long?, onDateRangeChange: (Long?, Long?) -> Unit, yearRange: IntRange = DEFAULT_FIRST_PICKER_YEAR..DEFAULT_LAST_PICKER_YEAR, mode: DomposableDatePickerMode = DomposableDatePickerMode.Calendar, onModeChange: (DomposableDatePickerMode) -> Unit? = null, isDateSelectable: (Long) -> Boolean = { true }, showModeToggle: Boolean = true, appearance: DomposableSurfaceAppearance? = null, modifier: DomposableModifier = DomposableModifier)
Link copied to clipboard
fun DomposableDialog(title: String, onDismiss: () -> Unit, modifier: DomposableModifier = DomposableModifier, actions: @Composable () -> Unit = {}, appearance: DomposableSurfaceAppearance? = null, variant: DomposableDialogVariant = DomposableDialogVariant.Alert, headerContent: @Composable (onDismiss: () -> Unit) -> Unit? = null, layout: DomposableModalLayout = DomposableModalLayout(), dismissOnBackPress: Boolean = true, dismissOnClickOutside: Boolean = true, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableDisclosure(title: String, expanded: Boolean, onToggle: () -> Unit, modifier: DomposableModifier = DomposableModifier, description: String? = null, appearance: DomposableSurfaceAppearance? = null, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableDivider(modifier: DomposableModifier = DomposableModifier, appearance: DomposableDividerAppearance? = null)
fun DomposableDivider(orientation: DomposableOrientation, modifier: DomposableModifier = DomposableModifier, appearance: DomposableDividerAppearance? = null)
Link copied to clipboard
fun DomposableDragHandle(label: String, onDrag: (Float) -> Unit, enabled: Boolean = true, appearance: DomposableSurfaceAppearance? = null, modifier: DomposableModifier = DomposableModifier)
Link copied to clipboard
fun DomposableDropdownMenuItem(textContent: @Composable () -> Unit, onClick: () -> Unit, modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true, checked: Boolean? = null, selected: Boolean? = null, leadingIcon: @Composable () -> Unit? = null, selectedIcon: @Composable () -> Unit? = null, trailingContent: @Composable () -> Unit? = null, supportingText: @Composable () -> Unit? = null, appearance: DomposableItemAppearance? = null)
fun DomposableDropdownMenuItem(label: String, onClick: () -> Unit, modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true, checked: Boolean? = null, selected: Boolean? = null, leadingIcon: @Composable () -> Unit? = null, selectedIcon: @Composable () -> Unit? = null, trailingContent: @Composable () -> Unit? = null, supportingText: @Composable () -> Unit? = null, appearance: DomposableItemAppearance? = null)
Link copied to clipboard
fun DomposableFloatingActionButton(onClick: () -> Unit, label: String, modifier: DomposableModifier = DomposableModifier, appearance: DomposableSurfaceAppearance? = null, size: DomposableFabSize = DomposableFabSize.Standard, extended: Boolean = false, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableFloatingActionButtonMenu(expanded: Boolean, onExpandedChange: (Boolean) -> Unit, label: String, items: List<DomposableActionItem>, appearance: DomposableSurfaceAppearance? = null, modifier: DomposableModifier = DomposableModifier)
Link copied to clipboard
fun DomposableFloatingToolbar(expanded: Boolean, orientation: DomposableOrientation = DomposableOrientation.Horizontal, leadingContent: @Composable () -> Unit = {}, trailingContent: @Composable () -> Unit = {}, floatingAction: @Composable () -> Unit = {}, appearance: DomposableSurfaceAppearance? = null, modifier: DomposableModifier = DomposableModifier, variant: DomposableFloatingToolbarVariant = DomposableFloatingToolbarVariant.Standard, contentPadding: DomposableInsets = DomposableInsets(8.dp), content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableFlowRow(modifier: DomposableModifier = DomposableModifier, gap: DomposableLength = 8.dp, content: @Composable () -> Unit)
fun DomposableFlowRow(modifier: DomposableModifier = DomposableModifier, gap: DomposableLength = 8.dp, arrangement: DomposableArrangement, alignment: DomposableAlignment = DomposableAlignment.Start, rowGap: DomposableLength = gap, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableForm(onSubmit: () -> Unit, modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true, label: String? = null, browserValidationEnabled: Boolean = true, content: @Composable () -> Unit)
Link copied to clipboard

Returns whether controls in the nearest DomposableForm should be interactive.

Link copied to clipboard

Applies portable operations in order. Child-layout operations get an outer item node so they remain effective when preceding operations add padding or styling wrappers. Application elements must have an explicit renderer; unsupported elements fail closed.

A matching decoration owns the element; returning null falls back to attribute handling.

fun DomposableHtmlModifiers(modifier: DomposableModifier, wrapSemantics: Boolean, operationRenderer: DomposableHtmlModifierElementRenderer? = null, decorationRenderer: DomposableHtmlModifierDecorationRenderer? = null, content: @Composable () -> Unit)

Applies semantic attributes as ordered wrappers for raw content that has no semantic root. Existing overloads continue to leave these attributes for component roots.

Link copied to clipboard
fun DomposableIcon(vector: DomposableVectorIcon, description: String?, modifier: DomposableModifier = DomposableModifier, appearance: DomposableIconAppearance? = null)

Renders a reusable filled vector path as an accessible icon on native and HTML platforms.

fun DomposableIcon(symbol: String, description: String?, modifier: DomposableModifier = DomposableModifier, appearance: DomposableIconAppearance? = null)
Link copied to clipboard
fun DomposableIconButton(onClick: () -> Unit, label: String, modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true, appearance: DomposableButtonAppearance? = null, variant: DomposableIconButtonVariant = DomposableIconButtonVariant.Standard, checked: Boolean? = null, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableIconToggleButton(checked: Boolean, onCheckedChange: (Boolean) -> Unit, label: String, modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true, variant: DomposableIconButtonVariant = io.github.samuolis.domposable.foundation.DomposableIconButtonVariant.Standard, appearance: DomposableButtonAppearance? = null, content: @Composable () -> Unit)

Controlled icon toggle; the app owns selection just as it does for a checkbox.

Link copied to clipboard
fun DomposableImage(source: String, description: String?, modifier: DomposableModifier = DomposableModifier, onLoaded: () -> Unit? = null, onError: () -> Unit? = null, scale: DomposableImageScale = DomposableImageScale.Fit)
Link copied to clipboard
fun DomposableLabel(label: @Composable () -> Unit, modifier: DomposableModifier = DomposableModifier, persistent: Boolean = false, appearance: DomposableSurfaceAppearance? = null, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableLazyColumn(items: List<DomposableLazyItem>, modifier: DomposableModifier = DomposableModifier, gap: DomposableLength = 0.dp)
fun DomposableLazyColumn(items: List<DomposableLazyItem>, modifier: DomposableModifier = DomposableModifier, gap: DomposableLength = 0.dp, window: DomposableListWindow?)
fun <T> DomposableLazyColumn(items: List<T>, key: (T) -> String, modifier: DomposableModifier = DomposableModifier, gap: DomposableLength = 0.dp, window: DomposableListWindow?, itemContent: @Composable (T) -> Unit)

fun <T> DomposableLazyColumn(items: List<T>, key: (T) -> String, modifier: DomposableModifier = DomposableModifier, gap: DomposableLength = 0.dp, itemContent: @Composable (T) -> Unit)

Stable keys preserve each item's composition when the application reorders its data.

Link copied to clipboard
fun DomposableLazyGrid(items: List<DomposableLazyItem>, modifier: DomposableModifier = DomposableModifier, columns: Int = 2, gap: DomposableLength = 8.dp)
fun DomposableLazyGrid(items: List<DomposableLazyItem>, modifier: DomposableModifier = DomposableModifier, columns: Int = 2, gap: DomposableLength = 8.dp, window: DomposableGridWindow?)
fun <T> DomposableLazyGrid(items: List<T>, key: (T) -> String, modifier: DomposableModifier = DomposableModifier, columns: Int = 2, gap: DomposableLength = 8.dp, itemContent: @Composable (T) -> Unit)
fun <T> DomposableLazyGrid(items: List<T>, key: (T) -> String, modifier: DomposableModifier = DomposableModifier, columns: Int = 2, gap: DomposableLength = 8.dp, window: DomposableGridWindow?, itemContent: @Composable (T) -> Unit)
Link copied to clipboard
fun DomposableLazyRow(items: List<DomposableLazyItem>, modifier: DomposableModifier = DomposableModifier, gap: DomposableLength = 0.dp)
fun DomposableLazyRow(items: List<DomposableLazyItem>, modifier: DomposableModifier = DomposableModifier, gap: DomposableLength = 0.dp, window: DomposableRowWindow?)
fun <T> DomposableLazyRow(items: List<T>, key: (T) -> String, modifier: DomposableModifier = DomposableModifier, gap: DomposableLength = 0.dp, itemContent: @Composable (T) -> Unit)
fun <T> DomposableLazyRow(items: List<T>, key: (T) -> String, modifier: DomposableModifier = DomposableModifier, gap: DomposableLength = 0.dp, window: DomposableRowWindow?, itemContent: @Composable (T) -> Unit)
Link copied to clipboard
fun DomposableLineChart(series: List<DomposableChartSeries>, modifier: DomposableModifier = DomposableModifier, title: String? = null, description: String? = null, xAxisLabels: List<String>? = null, yAxisFormatter: (Float) -> String = { it.toInt().toString() }, sizePreset: DomposableChartSize = DomposableChartSize.Thumbnail, displayTitle: Boolean = true, accessibilityDescription: String? = description, onSelectedIndexChange: (Int?) -> Unit? = null, appearance: DomposableChartAppearance? = null)

Interactive line chart. Axis labels and accessible descriptions are supplied by the caller.

Link copied to clipboard
fun DomposableLink(label: String, href: String, modifier: DomposableModifier = DomposableModifier, onClick: () -> Unit? = null, textStyle: DomposableTextStyle = DomposableTextStyle.Body, appearance: DomposableTextAppearance? = null, buttonAppearance: DomposableButtonAppearance? = null, buttonStyle: DomposableButtonStyle = DomposableButtonStyle.Filled, content: @Composable () -> Unit? = null)
Link copied to clipboard
fun DomposableListItem(headline: String, supportingText: String? = null, overline: String? = null, onClick: () -> Unit? = null, selected: Boolean = false, enabled: Boolean = true, leadingContent: @Composable () -> Unit = {}, trailingContent: @Composable () -> Unit = {}, variant: DomposableListItemVariant = DomposableListItemVariant.Standard, position: DomposableListItemPosition = DomposableListItemPosition.Only, appearance: DomposableItemAppearance? = null, modifier: DomposableModifier = DomposableModifier)
Link copied to clipboard
fun DomposableLoadingIndicator(label: String = "Loading", contained: Boolean = false, appearance: DomposableProgressAppearance? = null, containerColor: DomposableColor? = null, modifier: DomposableModifier = DomposableModifier, progress: Float? = null)
Link copied to clipboard
expect fun DomposableMeasure(modifier: DomposableModifier = DomposableModifier, content: @Composable (DomposableSize) -> Unit)

HTML measures and scrolls in CSS pixels; native Compose exposes its pixel ScrollState value.

Link copied to clipboard
fun DomposableMenu(expanded: Boolean, onDismiss: () -> Unit, items: List<DomposableMenuItem> = emptyList(), modifier: DomposableModifier = DomposableModifier, appearance: DomposableSurfaceAppearance? = null, content: @Composable () -> Unit = {})
fun DomposableMenu(expanded: Boolean, onDismiss: () -> Unit, anchor: @Composable () -> Unit, items: List<DomposableMenuItem> = emptyList(), modifier: DomposableModifier = DomposableModifier, appearance: DomposableSurfaceAppearance? = null, contentSpacing: DomposableLength = 0.dp, anchorOffset: DomposableOffset = DomposableOffset(), content: @Composable () -> Unit = {})
Link copied to clipboard
fun DomposableMenuGroup(modifier: DomposableModifier = DomposableModifier, appearance: DomposableSurfaceAppearance? = null, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableMultiChoiceSegmentedButtons(labels: List<String>, selectedIndices: Set<Int>, onSelectionChange: (Set<Int>) -> Unit, label: String, modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true, optionEnabled: List<Boolean> = labels.map { true }, appearance: DomposableItemAppearance? = null)
Link copied to clipboard
fun DomposableNavigationBar(items: List<DomposableNavigationItem>, selectedIndex: Int, onSelect: (Int) -> Unit, modifier: DomposableModifier = DomposableModifier, orientation: DomposableOrientation = DomposableOrientation.Horizontal, appearance: DomposableItemAppearance? = null, short: Boolean = false, label: String = "Application", webLayout: DomposableWebNavigationLayout = DomposableWebNavigationLayout.Material)
Link copied to clipboard
fun DomposableNavigationDrawer(expanded: Boolean, onDismiss: () -> Unit, variant: DomposableDrawerVariant = DomposableDrawerVariant.Modal, gesturesEnabled: Boolean = true, label: String = "Navigation", appearance: DomposableSurfaceAppearance? = null, modifier: DomposableModifier = DomposableModifier, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableNavigationDrawerItem(label: String, selected: Boolean, onClick: () -> Unit, enabled: Boolean = true, icon: @Composable () -> Unit = {}, badge: @Composable () -> Unit = {}, appearance: DomposableItemAppearance? = null, modifier: DomposableModifier = DomposableModifier)
Link copied to clipboard
fun DomposableProgress(modifier: DomposableModifier = DomposableModifier, value: Float? = null, label: String? = "Loading", circular: Boolean = true, appearance: DomposableProgressAppearance? = null, variant: DomposableProgressVariant = DomposableProgressVariant.Standard, liveRegion: DomposableLiveRegion? = null, semantics: DomposableProgressSemantics = DomposableProgressSemantics.ProgressBar)
Link copied to clipboard
fun DomposablePullToRefresh(refreshing: Boolean, onRefresh: () -> Unit, enabled: Boolean = true, label: String = "Refresh", threshold: DomposableLength = 80.dp, appearance: DomposableProgressAppearance? = null, modifier: DomposableModifier = DomposableModifier, indicatorContent: @Composable (DomposablePullToRefreshState) -> Unit? = null, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableRadioButton(selected: Boolean, onClick: () -> Unit?, label: String = "", modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true, appearance: DomposableRadioButtonAppearance? = null, showLabel: Boolean = true, description: String? = null, controlPlacement: DomposableControlPlacement = DomposableControlPlacement.Leading, groupName: String? = null)
Link copied to clipboard
fun DomposableRangeSlider(value: ClosedFloatingPointRange<Float>, onValueChange: (ClosedFloatingPointRange<Float>) -> Unit, startLabel: String, endLabel: String, modifier: DomposableModifier = DomposableModifier, range: ClosedFloatingPointRange<Float> = 0f..1f, steps: Int = 0, enabled: Boolean = true, colors: DomposableSliderColors? = null)
Link copied to clipboard
fun DomposableRichHtml(rawHtml: String, modifier: DomposableModifier = DomposableModifier, selectable: Boolean = false, onLinkClick: (String) -> Unit? = null, style: DomposableTextStyle = DomposableTextStyle.Body, appearance: DomposableTextAppearance? = null, color: DomposableColor? = null)
Link copied to clipboard
fun DomposableRow(modifier: DomposableModifier = DomposableModifier, gap: DomposableLength = 0.dp, alignment: DomposableAlignment = DomposableAlignment.Start, content: @Composable () -> Unit)
fun DomposableRow(modifier: DomposableModifier = DomposableModifier, gap: DomposableLength = 0.dp, alignment: DomposableAlignment = DomposableAlignment.Start, arrangement: DomposableArrangement, content: @Composable () -> Unit)
fun DomposableRow(modifier: DomposableModifier = DomposableModifier, gap: DomposableLength = 0.dp, alignment: DomposableAlignment = DomposableAlignment.Start, stretch: Boolean, content: @Composable () -> Unit)
fun DomposableRow(modifier: DomposableModifier = DomposableModifier, gap: DomposableLength = 0.dp, alignment: DomposableAlignment = DomposableAlignment.Start, stretch: Boolean, arrangement: DomposableArrangement, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableScaffold(modifier: DomposableModifier = DomposableModifier, insets: DomposableInsets = DomposableInsets(), topBar: @Composable () -> Unit = {}, bottomBar: @Composable () -> Unit = {}, navigation: @Composable () -> Unit = {}, contextual: @Composable () -> Unit = {}, floatingAction: @Composable () -> Unit = {}, floatingActionPosition: DomposableScaffoldFabPosition = DomposableScaffoldFabPosition.End, snackbar: @Composable () -> Unit = {}, overlays: @Composable () -> Unit = {}, appearance: DomposableSurfaceAppearance? = null, content: @Composable DomposableScaffoldScope.() -> Unit)
Link copied to clipboard
fun DomposableScreenScaffold(modifier: DomposableModifier = DomposableModifier, insets: DomposableInsets = DomposableInsets(), topBar: @Composable () -> Unit = {}, bottomBar: @Composable () -> Unit = {}, navigation: @Composable () -> Unit = {}, contextual: @Composable () -> Unit = {}, floatingAction: @Composable () -> Unit = {}, floatingActionPosition: DomposableScaffoldFabPosition = DomposableScaffoldFabPosition.End, snackbar: @Composable () -> Unit = {}, overlays: @Composable () -> Unit = {}, appearance: DomposableSurfaceAppearance? = null, content: @Composable DomposableScaffoldScope.() -> Unit)

Screen chrome without imposing a state model, ViewModel, DI container, or navigator.

fun <T> DomposableScreenScaffold(state: DomposableScreenState<T>, modifier: DomposableModifier = DomposableModifier, insets: DomposableInsets = DomposableInsets(), topBar: @Composable () -> Unit = {}, bottomBar: @Composable () -> Unit = {}, navigation: @Composable () -> Unit = {}, contextual: @Composable () -> Unit = {}, floatingAction: @Composable () -> Unit = {}, floatingActionPosition: DomposableScaffoldFabPosition = DomposableScaffoldFabPosition.End, snackbar: @Composable () -> Unit = {}, overlays: @Composable () -> Unit = {}, appearance: DomposableSurfaceAppearance? = null, loading: @Composable DomposableScaffoldScope.() -> Unit = { DomposableProgress(DomposableProgressProps()) }, error: @Composable DomposableScaffoldScope.(DomposableScreenState.Error) -> Unit = { failure -> DomposableBanner(DomposableBannerProps(failure.message, isError = true)) failure.retry?.let { DomposableButton("Retry", it) } }, content: @Composable DomposableScaffoldScope.(T) -> Unit)

Optional loading/error convenience; applications can supply their own state and chrome.

Link copied to clipboard
fun DomposableScrim(modifier: DomposableModifier = DomposableModifier, onClick: () -> Unit? = null, label: String? = null, alpha: Float = 1.0f, color: DomposableColor? = null)
Link copied to clipboard
fun DomposableScrollField(itemCount: Int, selectedIndex: Int, onSelectedIndexChange: (Int) -> Unit, label: String, modifier: DomposableModifier = DomposableModifier, indexDescription: (Int) -> String = { it.toString() }, enabled: Boolean = true, itemContent: @Composable (index: Int, selected: Boolean, enabled: Boolean) -> Unit? = null, appearance: DomposableItemAppearance? = null)
Link copied to clipboard

Binds a DOM scrollable element to a shared scroll state, including animated commands.

Link copied to clipboard
fun DomposableSearchBar(query: String, onQueryChange: (String) -> Unit, expanded: Boolean, onExpandedChange: (Boolean) -> Unit, onSearch: (String) -> Unit, label: String, placeholder: String? = null, enabled: Boolean = true, leadingIcon: @Composable () -> Unit = {}, trailingIcon: @Composable () -> Unit = {}, appearance: DomposableTextFieldAppearance? = null, modifier: DomposableModifier = DomposableModifier, variant: DomposableSearchBarVariant = DomposableSearchBarVariant.FullScreen, navigationIcon: @Composable () -> Unit? = null, actions: @Composable () -> Unit? = null, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableSegmentedButtons(labels: List<String>, selectedIndex: Int, onSelect: (Int) -> Unit, label: String, modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true, appearance: DomposableItemAppearance? = null, equalWidth: Boolean = false, selectedIcon: @Composable () -> Unit? = null)

fun <T> DomposableSegmentedButtons(options: List<DomposableChoiceOption<T>>, selectedValue: T, onSelectionChange: (T) -> Unit, label: String, modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true, groupName: String? = null, showSelectedIcon: Boolean = true, allowReselect: Boolean = false, appearance: DomposableItemAppearance? = null, equalWidth: Boolean = false, selectedIcon: @Composable () -> Unit? = null)

Typed choices use option values, rather than translated labels, as their selection identity.

Link copied to clipboard
fun DomposableSelect(value: String, onValueChange: (String) -> Unit, label: String, options: List<DomposableSelectOption>, modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true, error: String? = null, appearance: DomposableButtonAppearance? = null)
Link copied to clipboard
fun DomposableSlider(value: Float, onValueChange: (Float) -> Unit, label: String, modifier: DomposableModifier = DomposableModifier, range: ClosedFloatingPointRange<Float> = 0f..1f, steps: Int = 0, enabled: Boolean = true, colors: DomposableSliderColors? = null, orientation: DomposableOrientation = DomposableOrientation.Horizontal, topToBottom: Boolean = true)
Link copied to clipboard
fun DomposableSnackbar(message: String, modifier: DomposableModifier = DomposableModifier, actionLabel: String? = null, onAction: () -> Unit? = null, onDismiss: () -> Unit? = null, appearance: DomposableSurfaceAppearance? = null)
Link copied to clipboard
fun DomposableSnackbarHost(state: DomposableSnackbarHostState, modifier: DomposableModifier = DomposableModifier, appearance: DomposableSurfaceAppearance? = null, snackbarContent: @Composable (DomposableSnackbarData) -> Unit? = null)
Link copied to clipboard
fun DomposableSpacer(length: DomposableLength = 8.dp, modifier: DomposableModifier = DomposableModifier)
Link copied to clipboard
fun DomposableSplitButton(label: String, onClick: () -> Unit, secondaryLabel: String, onSecondaryClick: () -> Unit, expanded: Boolean = false, enabled: Boolean = true, style: DomposableButtonStyle = DomposableButtonStyle.Filled, appearance: DomposableButtonAppearance? = null, modifier: DomposableModifier = DomposableModifier)
Link copied to clipboard
fun DomposableSurface(modifier: DomposableModifier = DomposableModifier, color: DomposableColor? = null, appearance: DomposableSurfaceAppearance? = null, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableSwipeToDismiss(onDismiss: (DomposableSwipeDirection) -> Unit, enabled: Boolean = true, allowStartToEnd: Boolean = true, allowEndToStart: Boolean = true, startActionLabel: String = "Dismiss", endActionLabel: String = "Dismiss", background: @Composable (DomposableSwipeDirection?) -> Unit = {}, modifier: DomposableModifier = DomposableModifier, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableSwitch(checked: Boolean, onCheckedChange: (Boolean) -> Unit?, label: String = "", modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true, appearance: DomposableSwitchAppearance? = null, showLabel: Boolean = true, description: String? = null, controlPlacement: DomposableControlPlacement = DomposableControlPlacement.Leading)
Link copied to clipboard
fun <T> DomposableTable(caption: String, columns: List<DomposableTableColumn>, items: List<T>, key: (T) -> String, modifier: DomposableModifier = DomposableModifier, window: DomposableListWindow? = null, appearance: DomposableTableAppearance? = null, cellContent: @Composable (T, DomposableTableColumn) -> Unit)
Link copied to clipboard
fun DomposableTabs(items: List<DomposableTabItem>, selectedIndex: Int, onSelect: (Int) -> Unit, modifier: DomposableModifier = DomposableModifier, label: String = "Sections", appearance: DomposableItemAppearance? = null, variant: DomposableTabsVariant = DomposableTabsVariant.Primary, scrollable: Boolean = false, leadingIcons: Boolean = false, tabsAppearance: DomposableTabsAppearance? = null)

Keyed tabs with per-item enabled state, accessible names, and optional content slots.

fun DomposableTabs(labels: List<String>, selectedIndex: Int, onSelect: (Int) -> Unit, modifier: DomposableModifier = DomposableModifier, appearance: DomposableItemAppearance? = null, variant: DomposableTabsVariant = DomposableTabsVariant.Primary, scrollable: Boolean = false, icons: List<@Composable () -> Unit?> = labels.map { null }, leadingIcons: Boolean = false, tabsAppearance: DomposableTabsAppearance? = null)
Link copied to clipboard
fun DomposableText(text: String, modifier: DomposableModifier = DomposableModifier, style: DomposableTextStyle = DomposableTextStyle.Body, color: DomposableColor? = null, headingLevel: Int? = null, appearance: DomposableTextAppearance? = null)

fun DomposableText(runs: List<DomposableTextRun>, modifier: DomposableModifier = DomposableModifier, style: DomposableTextStyle = DomposableTextStyle.Body, color: DomposableColor? = null, headingLevel: Int? = null, appearance: DomposableTextAppearance? = null)

One wrapping, selectable text value with individually styled runs on every renderer.

Link copied to clipboard
fun DomposableTextField(value: String, onValueChange: (String) -> Unit, label: String, modifier: DomposableModifier = DomposableModifier, purpose: DomposableInputPurpose = DomposableInputPurpose.Text, enabled: Boolean = true, multiline: Boolean = false, error: String? = null, readOnly: Boolean = false, placeholder: String? = null, id: String? = null, passwordVisible: Boolean = false, autocomplete: DomposableAutocomplete? = null, showLabel: Boolean = true, singleLine: Boolean = !multiline, minLines: Int = 1, maxLines: Int = Int.MAX_VALUE, helperText: String? = null, isError: Boolean = error != null, autofocus: Boolean = false, imeAction: DomposableImeAction = DomposableImeAction.Default, onClick: () -> Unit? = null, onImeAction: () -> Unit? = null, leadingIcon: @Composable () -> Unit? = null, prefix: @Composable () -> Unit? = null, trailingIcon: @Composable () -> Unit? = null, appearance: DomposableTextFieldAppearance? = null, onFocusChange: (Boolean) -> Unit? = null)
Link copied to clipboard
fun DomposableTheme(tokens: DomposableTokens = LocalDomposableTokens.current, components: DomposableComponents, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableTimePicker(hour: Int, minute: Int, onTimeChange: (Int, Int) -> Unit, is24Hour: Boolean = true, mode: DomposableTimePickerMode = DomposableTimePickerMode.Dial, appearance: DomposableSurfaceAppearance? = null, modifier: DomposableModifier = DomposableModifier)
Link copied to clipboard
fun DomposableToggleButton(checked: Boolean, onCheckedChange: (Boolean) -> Unit, enabled: Boolean = true, style: DomposableButtonStyle = DomposableButtonStyle.Filled, appearance: DomposableButtonAppearance? = null, modifier: DomposableModifier = DomposableModifier, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableTooltip(text: String, modifier: DomposableModifier = DomposableModifier, appearance: DomposableSurfaceAppearance? = null, title: String? = null, action: @Composable () -> Unit? = null, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableTopAppBar(title: String, modifier: DomposableModifier = DomposableModifier, navigationIcon: @Composable () -> Unit = {}, actions: @Composable () -> Unit = {}, appearance: DomposableSurfaceAppearance? = null, variant: DomposableTopAppBarVariant = DomposableTopAppBarVariant.Small, subtitle: String? = null, titleContent: @Composable () -> Unit? = null, expandedHeight: DomposableLength? = null, windowInsets: DomposableInsets? = null)
Link copied to clipboard
fun DomposableTriStateCheckbox(state: DomposableToggleState, onClick: () -> Unit, label: String, modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true, appearance: DomposableCheckboxAppearance? = null)

All three checkbox states are visible and announced consistently on native and HTML.

Link copied to clipboard
fun DomposableValueChart(title: String, description: String, dataTableLabel: String, series: List<DomposableChartSeries>, formatValue: (Float) -> String, modifier: DomposableModifier = DomposableModifier, sizePreset: DomposableChartSize = DomposableChartSize.Standard, appearance: DomposableChartAppearance? = null)

Accessible value bars accompanied by the caller's localized labels and value formatter.

Link copied to clipboard
expect fun DomposableVisibility(visible: Boolean, modifier: DomposableModifier = DomposableModifier, content: @Composable () -> Unit)

Keeps content composed while hidden, without reserving layout space or exposing its semantics. Useful for retaining an adaptive list's local UI state while showing its detail on a narrow window.

actual fun DomposableVisibility(visible: Boolean, modifier: DomposableModifier, content: () -> Unit)

Keeps content composed while hidden, without reserving layout space or exposing its semantics. Useful for retaining an adaptive list's local UI state while showing its detail on a narrow window.

actual fun DomposableVisibility(visible: Boolean, modifier: DomposableModifier, content: () -> Unit)

Keeps content composed while hidden, without reserving layout space or exposing its semantics. Useful for retaining an adaptive list's local UI state while showing its detail on a narrow window.

Link copied to clipboard
fun DomposableWideNavigationRail(expanded: Boolean, modal: Boolean = false, onDismiss: () -> Unit = {}, header: @Composable () -> Unit = {}, appearance: DomposableSurfaceAppearance? = null, modifier: DomposableModifier = DomposableModifier, content: @Composable () -> Unit)
Link copied to clipboard
fun DomposableWideNavigationRailItem(label: String, selected: Boolean, onClick: () -> Unit, railExpanded: Boolean, modifier: DomposableModifier = DomposableModifier, enabled: Boolean = true, icon: @Composable () -> Unit = {}, appearance: DomposableItemAppearance? = null)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun DomposableModifier.htmlAttributes(attributes: AttrsScope<*>.() -> Unit): DomposableModifier

Applies app-owned attributes and styles directly to the rendered HTML element.

Link copied to clipboard

Anchors an HTML menu to an existing trigger without adding a wrapper around that trigger.

Link copied to clipboard

Prefers a side when it fits; otherwise the menu uses its normal viewport-aware placement.

Resolves the preferred side from the rendered menu root; this modifier is JS-only.

Link copied to clipboard
fun DomposableModifier.maxViewportHeight(fraction: Float = 1.0f, subtract: DomposableLength = 0.dp, unit: DomposableViewportUnit = DomposableViewportUnit.Dynamic): DomposableModifier

Caps a scrollable region without expanding shorter content.

Link copied to clipboard
fun DomposableModifier.minViewportHeight(fraction: Float = 1.0f, subtract: DomposableLength = 0.dp, unit: DomposableViewportUnit = DomposableViewportUnit.Dynamic): DomposableModifier

A content-sized document that fills at least the chosen viewport height.

Link copied to clipboard
Link copied to clipboard

Insets are logical: start/end follow the platform's layout direction.

Link copied to clipboard

Parses a deliberately small formatting vocabulary. Active-content subtrees, unknown tags, and all attributes other than a validated anchor href are dropped. Renderers should build their own text/DOM nodes from the returned AST and must not insert the source with innerHTML.

Link copied to clipboard

Install inside a native Box content lambda so child alignment resolves natively.

Link copied to clipboard

Install inside a native Column content lambda so child weights and horizontal alignment resolve natively.

Link copied to clipboard

Nested providers replace individual keys and inherit the rest of their parent's bindings.

Link copied to clipboard

Provides a form submit action to custom input renderers and their descendants.

Link copied to clipboard

Install inside a native Row content lambda so child weights and vertical alignment resolve natively.

Link copied to clipboard
Link copied to clipboard

Returns an up-to-date submit action for a text field's Done/Go IME callback or a submit control. It does not submit automatically, so a control cannot accidentally submit twice.

Link copied to clipboard

Returns the current enclosing form action for standard input renderers' IME callbacks, or null when the input is outside a DomposableForm.

Link copied to clipboard

Clockwise visual rotation in degrees, without changing measured layout size.

Link copied to clipboard

Returns a safe relative, web, email, or telephone link target, or null when it is unsafe. The returned value is intended for a renderer-created anchor element, never HTML interpolation.

Link copied to clipboard

Serializes the parser's fixed safe vocabulary for native document engines and editor boundaries.

Link copied to clipboard

Visual transform around the center; measured layout size is unchanged. Negative values mirror content.

Link copied to clipboard
fun DomposableModifier.shadow(elevation: DomposableLength, shape: DomposableShape = DomposableShape.Rectangle): DomposableModifier

Native elevation or a CSS shadow. Does not clip content; use clip separately when needed.

Link copied to clipboard
Link copied to clipboard

Appends a native-only operation without replacing the portable operations already in the chain.

Link copied to clipboard

Native-only conversion. Application elements require an explicit renderer and are never dropped.

Link copied to clipboard
fun DomposableModifier.viewportHeight(fraction: Float = 1.0f, subtract: DomposableLength = 0.dp, unit: DomposableViewportUnit = DomposableViewportUnit.Dynamic): DomposableModifier

Bounds content using the host viewport, rather than its parent's available height. subtract reserves app-owned chrome. Native uses the current window size for both units; HTML uses dvh/svh. Neither includes additional safe-area padding automatically.

Link copied to clipboard

Must be consumed by a row or column child renderer.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun DomposableModifier.wrapContentSize(horizontal: DomposableAlignment = DomposableAlignment.Center, vertical: DomposableAlignment = DomposableAlignment.Center): DomposableModifier
Link copied to clipboard