package dev.inmo.jsuikit.elements import androidx.compose.runtime.Composable import androidx.compose.runtime.snapshots.SnapshotStateList import dev.inmo.jsuikit.modifiers.UIKitModifier import dev.inmo.jsuikit.modifiers.include import org.jetbrains.compose.web.dom.* import org.w3c.dom.HTMLHeadingElement import org.w3c.dom.HTMLUListElement @Composable fun List( title: String, data: SnapshotStateList, titleModifiers: Array = emptyArray(), ulModifiers: Array = emptyArray(), besidesTitleAndList: (@Composable () -> Unit)? = null, titleCustomizer: AttrBuilderContext = {}, ulCustomizer: AttrBuilderContext = {}, elementAllocator: @Composable ElementScope.(T) -> Unit ) { H4({ include(*titleModifiers); titleCustomizer() }) { Text(title) } besidesTitleAndList ?.invoke() Ul( { classes("uk-list") include(*ulModifiers) ulCustomizer() } ) { data.forEach { elementAllocator(it) } } }