package dev.inmo.jsuikit.elements import androidx.compose.runtime.Composable import dev.inmo.jsuikit.modifiers.* import dev.inmo.jsuikit.utils.Attrs import org.jetbrains.compose.web.dom.* import org.w3c.dom.HTMLDivElement import org.w3c.dom.HTMLHeadingElement @Composable fun Card( cardAttrs: Attrs = Attrs.empty(), headerAttrs: Attrs = Attrs.empty(), header: ContentBuilder? = null, footerAttrs: Attrs = Attrs.empty(), footer: ContentBuilder? = null, bodyAttrs: Attrs = Attrs.empty(), body: ContentBuilder ) { Div( { include(UIKitCard) cardAttrs.builder(this) } ) { header ?.let { Div( { include(UIKitCard.Parts.Header) headerAttrs.builder(this) }, header ) } Div( { include(UIKitCard.Parts.Body) bodyAttrs.builder(this) }, body ) footer ?.let { Div( { include(UIKitCard.Parts.Footer) footerAttrs.builder(this) }, footer ) } } } @Composable fun CardTitle( titleAttrs: Attrs = Attrs.empty(), title: ContentBuilder ) { H3( { include(UIKitCard.Title) titleAttrs.builder(this) }, title ) } @Composable fun CardBadge( badgeAttrs: Attrs = Attrs.empty(), badge: ContentBuilder ) { Div( { include(UIKitCard.Badge, UIKitLabel) badgeAttrs.builder(this) }, badge ) }