All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jsMain.MDCDialogActions.kt Maven / Gradle / Ivy

package dev.petuska.kmdc.dialog

import androidx.compose.runtime.Composable
import dev.petuska.kmdc.button.MDCButton
import dev.petuska.kmdc.button.MDCButtonScope
import dev.petuska.kmdc.core.ComposableBuilder
import dev.petuska.kmdc.core.MDCAttrsDsl
import dev.petuska.kmdc.core.MDCDsl
import org.jetbrains.compose.web.attributes.AttrsScope
import org.jetbrains.compose.web.dom.AttrBuilderContext
import org.jetbrains.compose.web.dom.Div
import org.jetbrains.compose.web.dom.ElementScope
import org.w3c.dom.HTMLButtonElement
import org.w3c.dom.HTMLDivElement
import org.w3c.dom.HTMLElement

public class MDCDialogActionsScope(scope: ElementScope) : ElementScope by scope

/**
 * [JS API](https://github.com/material-components/material-components-web/tree/v13.0.0/packages/mdc-dialog)
 */
@Suppress("unused")
@MDCDsl
@Composable
public fun MDCDialogScope.MDCDialogActions(
  attrs: AttrBuilderContext? = null,
  content: ComposableBuilder? = null
) {
  Div(
    attrs = {
      classes("mdc-dialog__actions")
      attrs?.invoke(this)
    },
    content = content?.let { { MDCDialogActionsScope(this).it() } }
  )
}

/**
 * [JS API](https://github.com/material-components/material-components-web/tree/v13.0.0/packages/mdc-dialog)
 */
@Suppress("unused")
@MDCDsl
@Composable
public fun MDCDialogActionsScope.MDCDialogActionButton(
  action: String,
  default: Boolean = false,
  attrs: AttrBuilderContext? = null,
  content: ComposableBuilder? = null
) {
  MDCButton(
    attrs = {
      mdcDialogAction(action)
      if (default) mdcDialogButtonDefault()
      attrs?.invoke(this)
    },
    content = content
  )
}

/**
 * [JS API](https://github.com/material-components/material-components-web/tree/v13.0.0/packages/mdc-dialog)
 */
@MDCAttrsDsl
public fun AttrsScope.mdcDialogButtonDefault() {
  classes("mdc-dialog__button")
  attr(MDCDialogModule.strings.BUTTON_DEFAULT_ATTRIBUTE, "true")
}

/**
 * [JS API](https://github.com/material-components/material-components-web/tree/v13.0.0/packages/mdc-dialog)
 */
@MDCAttrsDsl
public fun AttrsScope.mdcDialogAction(action: String) {
  classes("mdc-dialog__button")
  attr(MDCDialogModule.strings.ACTION_ATTRIBUTE, action)
}

/**
 * [JS API](https://github.com/material-components/material-components-web/tree/v13.0.0/packages/mdc-dialog)
 */
@MDCAttrsDsl
public fun AttrsScope.mdcDialogAction(action: String) {
  attr(MDCDialogModule.strings.ACTION_ATTRIBUTE, action)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy