From f8779051cb933dd2b6fc45171f3dea44c6f26a54 Mon Sep 17 00:00:00 2001 From: malilex Date: Tue, 21 Apr 2026 14:08:10 +0300 Subject: [PATCH 1/9] chore: Add Styles API documentation to compose. --- .../src/main/kotlin/utils/DocsProjectUtils.kt | 197 ++++++++- .../docs/components/AccordionUsage.md | 5 +- .../docs/components/AutocompleteUsage.md | 4 +- .../docs/components/AvatarGroupUsage.md | 4 +- .../docs/components/AvatarUsage.md | 4 +- .../docs/components/BadgeUsage.md | 4 +- .../docs/components/BasicButtonUsage.md | 4 +- .../docs/components/BottomSheetUsage.md | 4 +- .../docs/components/ButtonGroupUsage.md | 5 +- .../docs/components/CardUsage.md | 4 +- .../docs/components/CarouselUsage.md | 4 +- .../docs/components/CellUsage.md | 4 +- .../docs/components/CheckBoxGroupUsage.md | 4 +- .../docs/components/CheckBoxUsage.md | 4 +- .../docs/components/ChipGroupUsage.md | 4 +- .../docs/components/ChipUsage.md | 4 +- .../components/CircularProgressBarUsage.md | 4 +- .../docs/components/CodeFieldUsage.md | 5 +- .../docs/components/CodeInputUsage.md | 5 +- .../CollapsingNavigationBarUsage.md | 4 +- .../docs/components/CounterUsage.md | 4 +- .../docs/components/DividerUsage.md | 4 +- .../docs/components/DropdownMenuUsage.md | 4 +- .../docs/components/EditableUsage.md | 4 +- .../docs/components/FileUsage.md | 4 +- .../docs/components/FormItemUsage.md | 5 +- .../docs/components/IconButtonUsage.md | 4 +- .../docs/components/ImageUsage.md | 4 +- .../docs/components/IndicatorUsage.md | 4 +- .../docs/components/ListUsage.md | 6 +- .../docs/components/LoaderUsage.md | 4 +- .../docs/components/ModalUsage.md | 4 +- .../docs/components/NavigationBarUsage.md | 4 +- .../docs/components/NoteUsage.md | 4 +- .../components/NotificationContentUsage.md | 4 +- .../docs/components/NotificationUsage.md | 4 +- .../docs/components/OverlayUsage.md | 4 +- .../docs/components/PaginationDotsUsage.md | 4 +- .../docs/components/PopoverUsage.md | 4 +- .../docs/components/ProgressBarUsage.md | 4 +- .../docs/components/RadioBoxGroupUsage.md | 4 +- .../docs/components/RadioBoxUsage.md | 4 +- .../docs/components/RectSkeletonUsage.md | 4 +- .../docs/components/ScrollBarUsage.md | 4 +- .../docs/components/SegmentItemUsage.md | 4 +- .../docs/components/SegmentUsage.md | 4 +- .../docs/components/SelectUsage.md | 4 +- .../docs/components/SliderUsage.md | 4 +- .../docs/components/SpinnerUsage.md | 4 +- .../docs/components/SwitchUsage.md | 4 +- .../docs/components/TabBarUsage.md | 6 +- .../docs/components/TabsUsage.md | 8 +- .../docs/components/TextFieldUsage.md | 4 +- .../docs/components/TextSkeletonUsage.md | 4 +- .../docs/components/ToastUsage.md | 4 +- .../docs/components/ToolBarUsage.md | 4 +- .../docs/components/TooltipUsage.md | 4 +- .../docs/components/WheelUsage.md | 4 +- .../compose-template/docs/theme/Styles.md | 406 ++++++++++++++++++ 59 files changed, 775 insertions(+), 69 deletions(-) create mode 100644 build-system/docs-template/compose-template/docs/theme/Styles.md diff --git a/build-system/conventions/src/main/kotlin/utils/DocsProjectUtils.kt b/build-system/conventions/src/main/kotlin/utils/DocsProjectUtils.kt index 18281b4a8f..9490c524b8 100644 --- a/build-system/conventions/src/main/kotlin/utils/DocsProjectUtils.kt +++ b/build-system/conventions/src/main/kotlin/utils/DocsProjectUtils.kt @@ -3,6 +3,7 @@ package utils import org.gradle.api.Project import org.gradle.api.logging.Logger import org.jetbrains.kotlin.com.google.gson.GsonBuilder +import org.jetbrains.kotlin.com.google.gson.JsonArray import org.jetbrains.kotlin.com.google.gson.JsonObject import java.io.File @@ -131,6 +132,7 @@ fun Project.changelogUrl(deploy: Boolean = true): String { fun Project.transformTemplate(templateDir: File, snippetsDir: File, componentsConfig: File) { val versionInfo = versionInfo() val components = resolveComponents(componentsConfig) + val styleApis = resolveStyleApis(componentsConfig) templateDir .walkTopDown() .filter { file -> file.isFile && (file.extension == "md" || file.name == "docusaurus.config.ts") } @@ -151,7 +153,8 @@ fun Project.transformTemplate(templateDir: File, snippetsDir: File, componentsCo .replace("{{ docs-api-href }}", docsApiHref) .replaceKotlinSnippets(snippetsDir) .replaceXmlSnippets(snippetsDir) - .replaceScreenshots(templateDir, templateFile.needScreenshots(components), logger) + .replaceStyleApi(templateFile, styleApis, logger, components) + .replaceScreenshots(templateDir, templateFile.definedInComponents(components), logger) val destFile = File( templateDir, @@ -224,6 +227,29 @@ private fun String.replaceScreenshots(templateDir: File, needScreenshots: Boolea } } +private fun String.replaceStyleApi( + templateFile: File, + styleApis: Map>, + logger: Logger, + components: Set, +): String { + return replace(STYLE_API_REGEX) { + val componentName = templateFile.name.removeSuffix("Usage.md") + val hasStyles = templateFile.definedInComponents(components) + val docs = styleApis[componentName].orEmpty() + when { + hasStyles && docs.isNotEmpty() -> docs.joinToString("\n\n") { it.toMarkdown() } + hasStyles -> { + logger.info("Style API metadata not found for ${templateFile.name}") + "" + } + else -> """:::warning + У компонента нет готовых стилей. Если нужен стиль, обратитесь в поддержку. + :::""".trim() + } + } +} + fun Project.filterComponents(docsDir: File, componentsConfig: File) { val components = resolveComponents(componentsConfig) @@ -237,7 +263,7 @@ fun Project.filterComponents(docsDir: File, componentsConfig: File) { } } -fun File.needScreenshots(components: Set): Boolean { +fun File.definedInComponents(components: Set): Boolean { val componentName = name.removeSuffix("Usage.md").lowercase() return components.any { it.lowercase() == componentName } } @@ -249,6 +275,46 @@ fun Project.resolveComponents(componentsConfig: File): Set { return components.map { it.asJsonObject.get("coreName").asString }.toSet() } +private fun resolveStyleApis(componentsConfig: File): Map> { + val gson = GsonBuilder().setPrettyPrinting().create() + val info = gson.fromJson(componentsConfig.readText(), JsonObject::class.java) + val components = info.getAsJsonArray("components") + return components.mapNotNull { componentElement -> + val component = componentElement.asJsonObject + val styleApi = component.getAsJsonObjectOrNull("styleApi") ?: return@mapNotNull null + StyleApiDoc( + coreName = component.get("coreName").asString, + styleName = component.get("styleName").asString, + receiverClassName = styleApi.get("receiverClassName").asString, + functionName = styleApi.get("functionName")?.asString ?: "style", + returnTypeName = styleApi.get("returnTypeName")?.asString.orEmpty(), + params = styleApi.getAsJsonArrayOrEmpty("params").map { paramElement -> + val param = paramElement.asJsonObject + StyleApiParamDoc( + name = param.get("name").asString, + typeName = param.get("typeName").asString, + defaultValue = param.getAsJsonObjectOrNull("defaultValue")?.toStyleApiValueDoc(), + values = param.getAsJsonArrayOrEmpty("values").map { valueElement -> + valueElement.asJsonObject.toStyleApiValueDoc() + }, + ) + }, + variations = component.getAsJsonArrayOrEmpty("variations").mapNotNull { variationElement -> + val variation = variationElement.asJsonObject + val composeReference = variation.get("composeReference")?.takeUnless { it.isJsonNull }?.asString + ?: return@mapNotNull null + StyleVariationDoc( + composeReference = composeReference, + props = variation.getAsJsonArrayOrEmpty("props").associate { propElement -> + val prop = propElement.asJsonObject + prop.get("name").asString to prop.get("value").asString + }, + ) + }, + ) + }.groupBy { it.coreName } +} + fun Project.mergePlusPrefixedDocs(docsDir: File) { if (!docsDir.exists()) return @@ -292,4 +358,129 @@ fun Project.mergePlusPrefixedDocs(docsDir: File) { } } -private const val BASE_DOC_URL = "https://plasma.sberdevices.ru" \ No newline at end of file +private const val BASE_DOC_URL = "https://plasma.sberdevices.ru" +private val STYLE_API_REGEX = "".toRegex() + +private data class StyleApiDoc( + val coreName: String, + val styleName: String, + val receiverClassName: String, + val functionName: String, + val returnTypeName: String, + val params: List, + val variations: List, +) { + fun toMarkdown(): String { + val header = if (styleName == coreName) { + "### Параметры стиля" + } else { + "### Параметры стиля `$styleName`" + } + return buildString { + if (params.isNotEmpty()) { + appendLine(header) + appendLine() + appendLine("| Параметр | Тип | Возможные значения |") + appendLine("| --- | --- | --- |") + params.forEach { param -> + appendLine( + "| `${param.name}` | `${param.typeName}` | ${param.valuesColumn} |" + ) + } + appendLine() + } + appendLine("Пример выбора готового стиля:") + appendLine("```kotlin") + append(exampleCall()) + exampleDotNotationCall()?.let { dotExample -> + appendLine() + appendLine() + appendLine("// или через dot notation") + append(dotExample) + appendLine() + } + appendLine("```") + } + } + + private fun exampleCall(): String { + val invocation = receiverClassName.removeSuffix(".Companion") + val args = params.joinToString(",\n") { param -> + " ${param.name} = ${param.exampleValueExpression()}" + } + return buildString { + append("val style = ") + append(invocation) + append('.') + append(functionName) + append('(') + if (args.isNotBlank()) { + append('\n') + append(args) + append('\n') + } + append(")") + } + } + + private fun exampleDotNotationCall(): String? { + val composeReference = variations.firstOrNull { variation -> + params.all { param -> + val actualValue = variation.props[param.name] ?: param.defaultValue?.value + actualValue == param.exampleRawValue() + } + }?.composeReference ?: variations.firstOrNull()?.composeReference + return composeReference?.let { "val style = $it.style()" } + } +} + +private data class StyleApiParamDoc( + val name: String, + val typeName: String, + val defaultValue: StyleApiValueDoc?, + val values: List, +) { + val valuesColumn: String + get() = if (values.isEmpty()) "-" else values.joinToString(", ") { "`${it.codeName}`" } + + fun exampleValueExpression(): String { + val selectedValue = defaultValue ?: values.firstOrNull() + return when { + selectedValue == null -> error("No values available for `$name`") + typeName == "Boolean" -> selectedValue.codeName + else -> "$typeName.${selectedValue.codeName}" + } + } + + fun exampleRawValue(): String { + return (defaultValue ?: values.firstOrNull())?.value + ?: error("No values available for `$name`") + } +} + +private data class StyleApiValueDoc( + val value: String, + val codeName: String, +) + +private data class StyleVariationDoc( + val composeReference: String, + val props: Map, +) + +private fun JsonObject.getAsJsonObjectOrNull(name: String): JsonObject? { + val element = get(name) ?: return null + return if (element.isJsonNull) null else element.asJsonObject +} + +private fun JsonObject.getAsJsonArrayOrEmpty(name: String): JsonArray { + val element = get(name) ?: return JsonArray() + return if (element.isJsonNull) JsonArray() else element.asJsonArray +} + +private fun JsonObject.toStyleApiValueDoc(): StyleApiValueDoc { + return StyleApiValueDoc( + value = get("value").asString, + codeName = get("codeName").asString, + ) +} diff --git a/build-system/docs-template/compose-template/docs/components/AccordionUsage.md b/build-system/docs-template/compose-template/docs/components/AccordionUsage.md index b41a199fee..ce390bced3 100644 --- a/build-system/docs-template/compose-template/docs/components/AccordionUsage.md +++ b/build-system/docs-template/compose-template/docs/components/AccordionUsage.md @@ -13,8 +13,9 @@ title: Accordion ## Стиль Accordion и AccordionItem -Для Accordion и AccordionItem существует набор сгенерированных стилей. -Также стиль можно настроить с помощью AccordionStyle.builder() и AccordionItemStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля AccordionItemStyle с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/AutocompleteUsage.md b/build-system/docs-template/compose-template/docs/components/AutocompleteUsage.md index c8d5b64d82..08e77a7999 100644 --- a/build-system/docs-template/compose-template/docs/components/AutocompleteUsage.md +++ b/build-system/docs-template/compose-template/docs/components/AutocompleteUsage.md @@ -23,7 +23,9 @@ title: Autocomplete ## Стиль Autocomplete -Для Autocomplete существует набор сгенерированных стилей. Также стиль Autocomplete можно настроить с помощью AutocompleteStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/AvatarGroupUsage.md b/build-system/docs-template/compose-template/docs/components/AvatarGroupUsage.md index 2997b32e0d..012d69e3ef 100644 --- a/build-system/docs-template/compose-template/docs/components/AvatarGroupUsage.md +++ b/build-system/docs-template/compose-template/docs/components/AvatarGroupUsage.md @@ -13,7 +13,9 @@ Counter - счетчик Avatar's, которые не отображаются ## Стиль AvatarGroup -Стиль AvatarGroup можно настроить с помощью AvatarGroupStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/AvatarUsage.md b/build-system/docs-template/compose-template/docs/components/AvatarUsage.md index b0c5ef28e9..b79b4df42b 100644 --- a/build-system/docs-template/compose-template/docs/components/AvatarUsage.md +++ b/build-system/docs-template/compose-template/docs/components/AvatarUsage.md @@ -10,7 +10,9 @@ title: Avatar ## Стиль Avatar -Стиль Avatar можно настроить с помощью AvatarStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/BadgeUsage.md b/build-system/docs-template/compose-template/docs/components/BadgeUsage.md index 2cc797cce9..636bb74882 100644 --- a/build-system/docs-template/compose-template/docs/components/BadgeUsage.md +++ b/build-system/docs-template/compose-template/docs/components/BadgeUsage.md @@ -10,7 +10,9 @@ title: Badge ## Стиль Badge -Стиль Badge можно настроить с помощью BadgeStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/BasicButtonUsage.md b/build-system/docs-template/compose-template/docs/components/BasicButtonUsage.md index 08efad4a5c..4a481edf6c 100644 --- a/build-system/docs-template/compose-template/docs/components/BasicButtonUsage.md +++ b/build-system/docs-template/compose-template/docs/components/BasicButtonUsage.md @@ -10,7 +10,9 @@ title: Button ## Стиль Button -Стиль Button можно настроить с помощью ButtonStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/BottomSheetUsage.md b/build-system/docs-template/compose-template/docs/components/BottomSheetUsage.md index 250916dd0b..b458d0a234 100644 --- a/build-system/docs-template/compose-template/docs/components/BottomSheetUsage.md +++ b/build-system/docs-template/compose-template/docs/components/BottomSheetUsage.md @@ -16,7 +16,9 @@ title: BottomSheet ## Стиль ModalBottomSheet -Стиль ModalBottomSheet можно настроить с помощью ModalBottomSheet.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/ButtonGroupUsage.md b/build-system/docs-template/compose-template/docs/components/ButtonGroupUsage.md index dec04cfd87..9e6de1753b 100644 --- a/build-system/docs-template/compose-template/docs/components/ButtonGroupUsage.md +++ b/build-system/docs-template/compose-template/docs/components/ButtonGroupUsage.md @@ -19,8 +19,9 @@ title: ButtonGroup ## Стиль ButtonGroup -Стиль ButtonGroup можно настроить с помощью ButtonGroupStyle.builder(). -Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() для базовой кнопки BasicButton diff --git a/build-system/docs-template/compose-template/docs/components/CardUsage.md b/build-system/docs-template/compose-template/docs/components/CardUsage.md index e080f975b2..52f1226c9f 100644 --- a/build-system/docs-template/compose-template/docs/components/CardUsage.md +++ b/build-system/docs-template/compose-template/docs/components/CardUsage.md @@ -23,7 +23,9 @@ title: Card ## Стиль Card -Стиль Card можно настроить с помощью CardStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ## Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/CarouselUsage.md b/build-system/docs-template/compose-template/docs/components/CarouselUsage.md index 3160fbbb5d..5cb5971be8 100644 --- a/build-system/docs-template/compose-template/docs/components/CarouselUsage.md +++ b/build-system/docs-template/compose-template/docs/components/CarouselUsage.md @@ -35,7 +35,9 @@ title: Carousel ## Стиль Carousel -Для Carousel существует набор сгенерированных стилей. Также стиль можно настроить с помощью CarouselStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/CellUsage.md b/build-system/docs-template/compose-template/docs/components/CellUsage.md index ddc692ebed..1ca557924a 100644 --- a/build-system/docs-template/compose-template/docs/components/CellUsage.md +++ b/build-system/docs-template/compose-template/docs/components/CellUsage.md @@ -12,7 +12,9 @@ title: Cell ## Стиль Cell -Стиль Cell можно настроить с помощью CellStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/CheckBoxGroupUsage.md b/build-system/docs-template/compose-template/docs/components/CheckBoxGroupUsage.md index 4f425d4222..fca9ced2a5 100644 --- a/build-system/docs-template/compose-template/docs/components/CheckBoxGroupUsage.md +++ b/build-system/docs-template/compose-template/docs/components/CheckBoxGroupUsage.md @@ -14,7 +14,9 @@ RootCheckBox() функция для главного чекбокса, кото ## Стиль CheckBoxGroup -Стиль CheckBoxGroup можно настроить с помощью CheckBoxGroupStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/CheckBoxUsage.md b/build-system/docs-template/compose-template/docs/components/CheckBoxUsage.md index 59aa788aa5..a6f63b3451 100644 --- a/build-system/docs-template/compose-template/docs/components/CheckBoxUsage.md +++ b/build-system/docs-template/compose-template/docs/components/CheckBoxUsage.md @@ -12,7 +12,9 @@ title: CheckBox ## Стиль CheckBox -Стиль CheckBox можно настроить с помощью CheckBoxStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/ChipGroupUsage.md b/build-system/docs-template/compose-template/docs/components/ChipGroupUsage.md index 6af1b678c3..4e0f9c9f8d 100644 --- a/build-system/docs-template/compose-template/docs/components/ChipGroupUsage.md +++ b/build-system/docs-template/compose-template/docs/components/ChipGroupUsage.md @@ -12,7 +12,9 @@ ChipGroup контейнер для Chip. ## Стиль ChipGroup -Стиль ChipGroup можно настроить с помощью ChipGroupStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/ChipUsage.md b/build-system/docs-template/compose-template/docs/components/ChipUsage.md index e955841462..01c23617cd 100644 --- a/build-system/docs-template/compose-template/docs/components/ChipUsage.md +++ b/build-system/docs-template/compose-template/docs/components/ChipUsage.md @@ -13,7 +13,9 @@ label можно использовать вместе с startContent и endCon ## Стиль Chip -Стиль Chip можно настроить с помощью ChipStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/CircularProgressBarUsage.md b/build-system/docs-template/compose-template/docs/components/CircularProgressBarUsage.md index acd26bbcbd..2885711548 100644 --- a/build-system/docs-template/compose-template/docs/components/CircularProgressBarUsage.md +++ b/build-system/docs-template/compose-template/docs/components/CircularProgressBarUsage.md @@ -10,7 +10,9 @@ title: CircularProgressBar ## Стиль CircularProgressBar -Стиль CircularProgressBar можно настроить с помощью CircularProgressBarStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/CodeFieldUsage.md b/build-system/docs-template/compose-template/docs/components/CodeFieldUsage.md index 3b234c681c..0a50c91a6f 100644 --- a/build-system/docs-template/compose-template/docs/components/CodeFieldUsage.md +++ b/build-system/docs-template/compose-template/docs/components/CodeFieldUsage.md @@ -17,8 +17,9 @@ title: CodeField ## Стиль CodeField -Для CodeField существует набор сгенерированных стилей. -Также стиль можно настроить с помощью CodeFieldStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля CodeFieldStyle с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/CodeInputUsage.md b/build-system/docs-template/compose-template/docs/components/CodeInputUsage.md index f6982ee0e4..01ce30e9ce 100644 --- a/build-system/docs-template/compose-template/docs/components/CodeInputUsage.md +++ b/build-system/docs-template/compose-template/docs/components/CodeInputUsage.md @@ -17,8 +17,9 @@ title: CodeInput ## Стиль CodeInput -Для CodeInput существует набор сгенерированных стилей. -Также стиль можно настроить с помощью CodeInputStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля CodeInputStyle с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/CollapsingNavigationBarUsage.md b/build-system/docs-template/compose-template/docs/components/CollapsingNavigationBarUsage.md index feb6d750ce..1d41283a44 100644 --- a/build-system/docs-template/compose-template/docs/components/CollapsingNavigationBarUsage.md +++ b/build-system/docs-template/compose-template/docs/components/CollapsingNavigationBarUsage.md @@ -14,7 +14,9 @@ title: CollapsingNavigationBar ## Стиль CollapsingNavigationBar -Стиль CollapsingNavigationBar можно настроить с помощью CollapsingNavigationBarStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/CounterUsage.md b/build-system/docs-template/compose-template/docs/components/CounterUsage.md index 887401f5aa..0fa008789d 100644 --- a/build-system/docs-template/compose-template/docs/components/CounterUsage.md +++ b/build-system/docs-template/compose-template/docs/components/CounterUsage.md @@ -13,7 +13,9 @@ title: Counter ## Стиль Counter -Стиль Counter можно настроить с помощью CounterStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/DividerUsage.md b/build-system/docs-template/compose-template/docs/components/DividerUsage.md index 3ef15c3798..113c001463 100644 --- a/build-system/docs-template/compose-template/docs/components/DividerUsage.md +++ b/build-system/docs-template/compose-template/docs/components/DividerUsage.md @@ -10,7 +10,9 @@ title: Divider ## Стиль Divider -Стиль Divider можно настроить с помощью DividerStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/DropdownMenuUsage.md b/build-system/docs-template/compose-template/docs/components/DropdownMenuUsage.md index 5ccf935718..43e41a4cf5 100644 --- a/build-system/docs-template/compose-template/docs/components/DropdownMenuUsage.md +++ b/build-system/docs-template/compose-template/docs/components/DropdownMenuUsage.md @@ -14,7 +14,9 @@ title: DropdownMenu ## Стиль DropdownMenu -Для DropdownMenu существует набор сгенерированных стилей. Также стиль можно настроить с помощью DropdownMenuStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/EditableUsage.md b/build-system/docs-template/compose-template/docs/components/EditableUsage.md index 9a0d78b9b3..dd722d7b43 100644 --- a/build-system/docs-template/compose-template/docs/components/EditableUsage.md +++ b/build-system/docs-template/compose-template/docs/components/EditableUsage.md @@ -22,7 +22,9 @@ title: Editable ## Стиль Editable -Стиль Editable можно настроить с помощью EditableStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/FileUsage.md b/build-system/docs-template/compose-template/docs/components/FileUsage.md index 7d01be3852..7fffdd739c 100644 --- a/build-system/docs-template/compose-template/docs/components/FileUsage.md +++ b/build-system/docs-template/compose-template/docs/components/FileUsage.md @@ -26,7 +26,9 @@ title: File ## Стиль File -Стиль File можно настроить с помощью FileStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/FormItemUsage.md b/build-system/docs-template/compose-template/docs/components/FormItemUsage.md index 362aab436b..c1b0d37693 100644 --- a/build-system/docs-template/compose-template/docs/components/FormItemUsage.md +++ b/build-system/docs-template/compose-template/docs/components/FormItemUsage.md @@ -22,8 +22,9 @@ title: FormItem ## Стиль FormItem -Стиль FormItem можно настроить с помощью FormItemStyle.builder(). Так же существует набор -сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/IconButtonUsage.md b/build-system/docs-template/compose-template/docs/components/IconButtonUsage.md index cbc52e392e..e0f805352f 100644 --- a/build-system/docs-template/compose-template/docs/components/IconButtonUsage.md +++ b/build-system/docs-template/compose-template/docs/components/IconButtonUsage.md @@ -10,7 +10,9 @@ title: IconButton ## Стиль IconButton -Стиль IconButton можно настроить с помощью ButtonStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/ImageUsage.md b/build-system/docs-template/compose-template/docs/components/ImageUsage.md index 05d0baaea6..dff1776a99 100644 --- a/build-system/docs-template/compose-template/docs/components/ImageUsage.md +++ b/build-system/docs-template/compose-template/docs/components/ImageUsage.md @@ -14,7 +14,9 @@ title: Image ## Стиль Image -Стиль Image можно настроить с помощью ImageStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/IndicatorUsage.md b/build-system/docs-template/compose-template/docs/components/IndicatorUsage.md index 3eb87e6f7c..d14b554662 100644 --- a/build-system/docs-template/compose-template/docs/components/IndicatorUsage.md +++ b/build-system/docs-template/compose-template/docs/components/IndicatorUsage.md @@ -13,7 +13,9 @@ title: Indicator ## Стиль Indicator -Стиль Indicator можно настроить с помощью IndicatorStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/ListUsage.md b/build-system/docs-template/compose-template/docs/components/ListUsage.md index 547d521777..83c9e57b87 100644 --- a/build-system/docs-template/compose-template/docs/components/ListUsage.md +++ b/build-system/docs-template/compose-template/docs/components/ListUsage.md @@ -13,7 +13,9 @@ title: List ## Стиль List -Для List существует набор сгенерированных стилей. Также стиль можно настроить с помощью ListStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() @@ -23,7 +25,7 @@ title: List ## ListItem -Элемент списка [List](#list). При использовании в List ListItem стилизуется автоматически. Также можно настроить стиль элемента с помощью ListItemStyle.builder(). +Элемент списка [List](#list). При использовании внутри `List` компонент стилизуется автоматически. Если нужен отдельный стиль для элемента, используйте `ListItemStyle.builder()`. Общие принципы работы `Style` и `StyleBuilder` описаны в разделе [Стилизация компонентов](../theme/Styles.md). ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/LoaderUsage.md b/build-system/docs-template/compose-template/docs/components/LoaderUsage.md index 1bd0d1ce2f..4695e44d1c 100644 --- a/build-system/docs-template/compose-template/docs/components/LoaderUsage.md +++ b/build-system/docs-template/compose-template/docs/components/LoaderUsage.md @@ -24,7 +24,9 @@ title: Loader ## Стиль Loader -Для Loader существует дефолтный стиль. Также стиль можно настроить с помощью LoaderStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/ModalUsage.md b/build-system/docs-template/compose-template/docs/components/ModalUsage.md index 01357ecacd..2f5ef03c73 100644 --- a/build-system/docs-template/compose-template/docs/components/ModalUsage.md +++ b/build-system/docs-template/compose-template/docs/components/ModalUsage.md @@ -13,7 +13,9 @@ title: Modal ## Стиль Modal -Для Modal существует набор сгенерированных стилей. Также стиль можно настроить с помощью ModalStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/NavigationBarUsage.md b/build-system/docs-template/compose-template/docs/components/NavigationBarUsage.md index 4a2a818757..da13adeecb 100644 --- a/build-system/docs-template/compose-template/docs/components/NavigationBarUsage.md +++ b/build-system/docs-template/compose-template/docs/components/NavigationBarUsage.md @@ -45,7 +45,9 @@ title: NavigationBar ## Стиль NavigationBar -Стиль NavigationBar можно настроить с помощью NavigationBarStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/NoteUsage.md b/build-system/docs-template/compose-template/docs/components/NoteUsage.md index 597ad4dde8..f191fe9c5c 100644 --- a/build-system/docs-template/compose-template/docs/components/NoteUsage.md +++ b/build-system/docs-template/compose-template/docs/components/NoteUsage.md @@ -20,7 +20,9 @@ title: Note ## Стиль Note -Стиль Note можно настроить с помощью NoteStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля NoteCompact с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/NotificationContentUsage.md b/build-system/docs-template/compose-template/docs/components/NotificationContentUsage.md index 713b73da41..e72b572d7f 100644 --- a/build-system/docs-template/compose-template/docs/components/NotificationContentUsage.md +++ b/build-system/docs-template/compose-template/docs/components/NotificationContentUsage.md @@ -13,7 +13,9 @@ title: NotificationContent ## Стиль NotificationContent -Стиль NotificationContent можно настроить с помощью NotificationContentStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/NotificationUsage.md b/build-system/docs-template/compose-template/docs/components/NotificationUsage.md index 1a0fb206ae..57d2a48917 100644 --- a/build-system/docs-template/compose-template/docs/components/NotificationUsage.md +++ b/build-system/docs-template/compose-template/docs/components/NotificationUsage.md @@ -15,7 +15,9 @@ title: Notification ## Стиль Notification -Для Notification существует набор сгенерированных стилей. Также стиль можно настроить с помощью NotificationStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/OverlayUsage.md b/build-system/docs-template/compose-template/docs/components/OverlayUsage.md index ebd7c85cb4..3e6a597782 100644 --- a/build-system/docs-template/compose-template/docs/components/OverlayUsage.md +++ b/build-system/docs-template/compose-template/docs/components/OverlayUsage.md @@ -70,7 +70,9 @@ alpha = { |--------------------|--------------------------------------------------|---------------------------------------------------------------------------------------------------| | colors.backgroundColor | `StatefulValue` | Цвет фона Overlay. Может быть SolidColor или градиент, поддерживает состояния взаимодействия. | -Для Overlay существует набор сгенерированных стилей. Также стиль можно настроить с помощью OverlayStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/PaginationDotsUsage.md b/build-system/docs-template/compose-template/docs/components/PaginationDotsUsage.md index 86ee2f8538..6ff1babaa0 100644 --- a/build-system/docs-template/compose-template/docs/components/PaginationDotsUsage.md +++ b/build-system/docs-template/compose-template/docs/components/PaginationDotsUsage.md @@ -26,7 +26,9 @@ title: PaginationDots ## Стиль PaginationDots -Для PaginationDots существует набор сгенерированных стилей. Также стиль PaginationDots можно настроить с помощью PaginationDotsStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/PopoverUsage.md b/build-system/docs-template/compose-template/docs/components/PopoverUsage.md index 6ccc5cf694..2ce50044e7 100644 --- a/build-system/docs-template/compose-template/docs/components/PopoverUsage.md +++ b/build-system/docs-template/compose-template/docs/components/PopoverUsage.md @@ -13,7 +13,9 @@ title: Popover ## Стиль Popover -Для Popover существует набор сгенерированных стилей. Также стиль можно настроить с помощью PopoverStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/ProgressBarUsage.md b/build-system/docs-template/compose-template/docs/components/ProgressBarUsage.md index 191d08cbdc..64f32493f7 100644 --- a/build-system/docs-template/compose-template/docs/components/ProgressBarUsage.md +++ b/build-system/docs-template/compose-template/docs/components/ProgressBarUsage.md @@ -12,7 +12,9 @@ title: ProgressBar ## Стиль ProgressBar -Стиль ProgressBar можно настроить с помощью ProgressBarStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/RadioBoxGroupUsage.md b/build-system/docs-template/compose-template/docs/components/RadioBoxGroupUsage.md index b7a6da9764..ba40f5d678 100644 --- a/build-system/docs-template/compose-template/docs/components/RadioBoxGroupUsage.md +++ b/build-system/docs-template/compose-template/docs/components/RadioBoxGroupUsage.md @@ -13,7 +13,9 @@ title: RadioBoxGroup ## Стиль RadioBoxGroup -Стиль RadioBoxGroup можно настроить с помощью RadioBoxGroupStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/RadioBoxUsage.md b/build-system/docs-template/compose-template/docs/components/RadioBoxUsage.md index 2ee6552e2a..f8ad0081a8 100644 --- a/build-system/docs-template/compose-template/docs/components/RadioBoxUsage.md +++ b/build-system/docs-template/compose-template/docs/components/RadioBoxUsage.md @@ -12,7 +12,9 @@ title: RadioBox ## Стиль RadioBox -Стиль RadioBox можно настроить с помощью RadioBoxStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/RectSkeletonUsage.md b/build-system/docs-template/compose-template/docs/components/RectSkeletonUsage.md index f36810a518..be8ee951be 100644 --- a/build-system/docs-template/compose-template/docs/components/RectSkeletonUsage.md +++ b/build-system/docs-template/compose-template/docs/components/RectSkeletonUsage.md @@ -25,7 +25,9 @@ title: RectSkeleton ## Стиль RectSkeleton -Стиль RectSkeleton можно настроить с помощью RectSkeletonStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/ScrollBarUsage.md b/build-system/docs-template/compose-template/docs/components/ScrollBarUsage.md index 7008be0d5b..bd08af5af4 100644 --- a/build-system/docs-template/compose-template/docs/components/ScrollBarUsage.md +++ b/build-system/docs-template/compose-template/docs/components/ScrollBarUsage.md @@ -20,7 +20,9 @@ title: ScrollBar ## Стиль ScrollBar -Стиль ScrollBar можно настроить с помощью ScrollBarStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/SegmentItemUsage.md b/build-system/docs-template/compose-template/docs/components/SegmentItemUsage.md index 44416fb411..e015509012 100644 --- a/build-system/docs-template/compose-template/docs/components/SegmentItemUsage.md +++ b/build-system/docs-template/compose-template/docs/components/SegmentItemUsage.md @@ -10,7 +10,9 @@ title: SegmentItem ## Стиль SegmentItem -Стиль SegmentItem можно настроить с помощью SegmentItemStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/SegmentUsage.md b/build-system/docs-template/compose-template/docs/components/SegmentUsage.md index e919f8d2f7..098d4e10a7 100644 --- a/build-system/docs-template/compose-template/docs/components/SegmentUsage.md +++ b/build-system/docs-template/compose-template/docs/components/SegmentUsage.md @@ -13,7 +13,9 @@ title: Segment ## Стиль Segment -Стиль Segment можно настроить с помощью SegmentStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/SelectUsage.md b/build-system/docs-template/compose-template/docs/components/SelectUsage.md index 372de27c30..b19dbb43c5 100644 --- a/build-system/docs-template/compose-template/docs/components/SelectUsage.md +++ b/build-system/docs-template/compose-template/docs/components/SelectUsage.md @@ -105,7 +105,9 @@ state.toggle // переключить текущее состояние ## Стиль Select -Для Select существует набор сгенерированных стилей. Также стиль Select можно настроить с помощью SelectStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/SliderUsage.md b/build-system/docs-template/compose-template/docs/components/SliderUsage.md index 2313a1ec07..405fdf1667 100644 --- a/build-system/docs-template/compose-template/docs/components/SliderUsage.md +++ b/build-system/docs-template/compose-template/docs/components/SliderUsage.md @@ -17,7 +17,9 @@ title: Slider ## Стиль Slider -Стиль Slider можно настроить с помощью SliderStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/SpinnerUsage.md b/build-system/docs-template/compose-template/docs/components/SpinnerUsage.md index 85ece120eb..410361a86c 100644 --- a/build-system/docs-template/compose-template/docs/components/SpinnerUsage.md +++ b/build-system/docs-template/compose-template/docs/components/SpinnerUsage.md @@ -12,7 +12,9 @@ title: Spinner ## Стиль Spinner -Для Modal существует набор сгенерированных стилей. Также стиль можно настроить с помощью SpinnerStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/SwitchUsage.md b/build-system/docs-template/compose-template/docs/components/SwitchUsage.md index 078472ed58..7d239dbfe1 100644 --- a/build-system/docs-template/compose-template/docs/components/SwitchUsage.md +++ b/build-system/docs-template/compose-template/docs/components/SwitchUsage.md @@ -12,7 +12,9 @@ title: Switch ## Стиль Switch -Стиль Switch можно настроить с помощью SwitchStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/TabBarUsage.md b/build-system/docs-template/compose-template/docs/components/TabBarUsage.md index 4e67e9becc..ccc169e5df 100644 --- a/build-system/docs-template/compose-template/docs/components/TabBarUsage.md +++ b/build-system/docs-template/compose-template/docs/components/TabBarUsage.md @@ -31,7 +31,9 @@ TabBarItem в качестве extra ожидает [Counter](CounterUsage.md), ## Стиль TabBar -Для TabBar существует набор сгенерированных стилей. Также стиль можно настроить с помощью TabBarStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() @@ -41,7 +43,7 @@ TabBarItem в качестве extra ожидает [Counter](CounterUsage.md), ## TabBarItem -Элемент панели навигации TabBar. При использовании в TabBar TabBarItem стилизуется автоматически. Также можно настроить стиль элемента с помощью TabBarItemStyle.builder(). +Элемент панели навигации `TabBar`. При использовании внутри `TabBar` компонент стилизуется автоматически. Если нужен отдельный стиль для элемента, используйте `TabBarItemStyle.builder()`. Общие принципы работы `Style` и `StyleBuilder` описаны в разделе [Стилизация компонентов](../theme/Styles.md). ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/TabsUsage.md b/build-system/docs-template/compose-template/docs/components/TabsUsage.md index 6dbc1c814e..1415554aea 100644 --- a/build-system/docs-template/compose-template/docs/components/TabsUsage.md +++ b/build-system/docs-template/compose-template/docs/components/TabsUsage.md @@ -26,7 +26,9 @@ title: Tabs ## Стиль Tabs -Для Tabs существует набор сгенерированных стилей. Также стиль можно настроить с помощью TabsStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() @@ -36,7 +38,7 @@ title: Tabs ## TabItem -Элемент Tabs. При использовании в Tabs TabItem стилизуется автоматически. Также можно настроить стиль элемента с помощью TabItemStyle.builder(). +Элемент `Tabs`. При использовании внутри `Tabs` компонент стилизуется автоматически. Если нужен отдельный стиль для элемента, используйте `TabItemStyle.builder()`. Общие принципы работы `Style` и `StyleBuilder` описаны в разделе [Стилизация компонентов](../theme/Styles.md). ### Создание стиля с помощью builder() @@ -46,7 +48,7 @@ title: Tabs ## IconTabItem -Элемент Tabs. При использовании в Tabs IconTabItem стилизуется автоматически. Также можно настроить стиль элемента с помощью TabItemStyle.builder(). +Элемент `Tabs`. При использовании внутри `Tabs` компонент стилизуется автоматически. Если нужен отдельный стиль для элемента, используйте `TabItemStyle.builder()`. Общие принципы работы `Style` и `StyleBuilder` описаны в разделе [Стилизация компонентов](../theme/Styles.md). ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/TextFieldUsage.md b/build-system/docs-template/compose-template/docs/components/TextFieldUsage.md index 17de0c6e28..a47b17bc6c 100644 --- a/build-system/docs-template/compose-template/docs/components/TextFieldUsage.md +++ b/build-system/docs-template/compose-template/docs/components/TextFieldUsage.md @@ -10,7 +10,9 @@ title: TextField ## Стиль TextField -Стиль TextField можно настроить с помощью TextFieldStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/TextSkeletonUsage.md b/build-system/docs-template/compose-template/docs/components/TextSkeletonUsage.md index 8ba39254b9..ad69f20733 100644 --- a/build-system/docs-template/compose-template/docs/components/TextSkeletonUsage.md +++ b/build-system/docs-template/compose-template/docs/components/TextSkeletonUsage.md @@ -31,7 +31,9 @@ title: TextSkeleton ## Стиль TextSkeleton -Стиль TextSkeleton можно настроить с помощью TextSkeletonStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/ToastUsage.md b/build-system/docs-template/compose-template/docs/components/ToastUsage.md index fb28b0ce3e..e1d6da4f05 100644 --- a/build-system/docs-template/compose-template/docs/components/ToastUsage.md +++ b/build-system/docs-template/compose-template/docs/components/ToastUsage.md @@ -21,7 +21,9 @@ title: Toast ## Стиль Toast -Для Toast существует набор сгенерированных стилей. Также стиль можно настроить с помощью ToastStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/ToolBarUsage.md b/build-system/docs-template/compose-template/docs/components/ToolBarUsage.md index 7a758fe60a..f13d2a9113 100644 --- a/build-system/docs-template/compose-template/docs/components/ToolBarUsage.md +++ b/build-system/docs-template/compose-template/docs/components/ToolBarUsage.md @@ -25,7 +25,9 @@ Vertical - секции располагаются в Column. ## Стиль ToolBar -Для ToolBar существует набор сгенерированных стилей. Также стиль можно настроить с помощью ToolBarStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/TooltipUsage.md b/build-system/docs-template/compose-template/docs/components/TooltipUsage.md index d8edfe3b90..33e378a29a 100644 --- a/build-system/docs-template/compose-template/docs/components/TooltipUsage.md +++ b/build-system/docs-template/compose-template/docs/components/TooltipUsage.md @@ -25,7 +25,9 @@ title: Tooltip ## Стиль Tooltip -Для Tooltip существует набор сгенерированных стилей. Также стиль можно настроить с помощью TooltipStyle.builder(). +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/components/WheelUsage.md b/build-system/docs-template/compose-template/docs/components/WheelUsage.md index dc81f19042..e81746da23 100644 --- a/build-system/docs-template/compose-template/docs/components/WheelUsage.md +++ b/build-system/docs-template/compose-template/docs/components/WheelUsage.md @@ -36,7 +36,9 @@ title: Wheel ## Стиль Wheel -Стиль Wheel можно настроить с помощью WheelStyle.builder(). Так же существует набор сгенерированных стилей. +В большинстве случаев можно использовать готовые сгенерированные стили, а при необходимости создать собственный стиль через соответствующий builder. Подробнее о том, как работают `Style`, `StyleBuilder` и stateful-параметры стиля, см. в разделе [Стилизация компонентов](../theme/Styles.md). + + ### Создание стиля с помощью builder() diff --git a/build-system/docs-template/compose-template/docs/theme/Styles.md b/build-system/docs-template/compose-template/docs/theme/Styles.md new file mode 100644 index 0000000000..fe754b7c87 --- /dev/null +++ b/build-system/docs-template/compose-template/docs/theme/Styles.md @@ -0,0 +1,406 @@ +--- +title: Стилизация компонентов +--- + +Стили в `uikit-compose` описывают внешний вид компонента как отдельный объект, который компонент получает целиком и затем читает из него форму, цвета, типографику, размеры и другие параметры. Это позволяет: + +- переиспользовать один и тот же стиль в разных местах, +- переопределять отдельные части стиля без переписывания компонента, +- выносить тему и вариации компонентов в отдельный слой. + +Ниже разберём, как это устроено на примере `Button`. + +## Базовые сущности: `Style` и `StyleBuilder` + +`com.sdds.compose.uikit.style.Style` — это маркерный интерфейс. Он ничего не требует сам по себе, но обозначает: "этот объект является стилем компонента". + +```kotlin +interface Style +``` + +Конкретный стиль расширяет его и объявляет набор параметров, которые нужны компоненту. Для кнопки это делает `ButtonStyle`: + +```kotlin +interface ButtonStyle : Style { + val shape: CornerBasedShape + val colors: ButtonColors + val labelStyle: TextStyle + val valueStyle: TextStyle + val dimensions: ButtonDimensions + val disableAlpha: Float + val loadingAlpha: Float +} +``` + +`StyleBuilder` — это общий контракт для сборки такого стиля. + +```kotlin +interface StyleBuilder { + val receiver: Any? get() = null + fun style(): T +} +``` + +Смысл у него простой: + +- builder накапливает параметры стиля; +- `style()` создаёт готовый неизменяемый объект стиля; +- `receiver` нужен, если один и тот же builder должен по-разному применяться к разным получателям стиля. + +Дополнительно в пакете `style` есть helper-функции `applyFor(...)` и `applyExclude(...)`. Они позволяют применять часть конфигурации только для конкретного `receiver` или для всех, кроме него. + +## Как это выглядит на примере `Button` + +Для кнопки есть отдельный интерфейс стиля `ButtonStyle` и builder `BasicButtonStyleBuilder`. + +### 1. Компонент читает уже готовый стиль + +В `Button` стиль приходит параметром: + +```kotlin +@Composable +fun Button( + label: String, + onClick: () -> Unit, + style: ButtonStyle = LocalButtonStyle.current, + ... +) +``` + +Если стиль явно не передан, используется `LocalButtonStyle.current`, то есть значение из `CompositionLocal`. + +Дальше компонент просто читает из стиля нужные свойства: + +- `style.shape` для формы, +- `style.dimensions` для высоты, отступов и размеров иконок, +- `style.labelStyle` и `style.valueStyle` для текста, +- `style.colors.*` для цветов, +- `style.disableAlpha` и `style.loadingAlpha` для служебного поведения. + +Например, цвет текста и иконки вычисляется из стиля во время рендера: + +```kotlin +val labelColor = colors.labelColor.colorForInteraction(interactionSource) +val valueColor = colors.valueColor.colorForInteraction(interactionSource) +``` + +То есть сам компонент не знает, какой именно цвет должен быть у кнопки в `pressed`, `focused` или `hovered` состоянии. Он знает только, что у него есть `InteractiveColor`, который умеет вернуть актуальное значение для текущего состояния. + +### 2. Значение по умолчанию поставляется через `CompositionLocal` + +Для базовой кнопки есть локал: + +```kotlin +val LocalButtonStyle = compositionLocalOf { + ButtonStyle.basicButtonBuilder().style() +} +``` + +Это важный паттерн всей библиотеки: + +- у компонента есть default-style через `CompositionLocal`, +- стиль можно передать напрямую в параметре `style`, +- стиль можно переопределить выше по дереву через `CompositionLocalProvider`. + +За счёт этого один и тот же компонент может: + +- работать "из коробки", +- участвовать в теме, +- локально переопределяться внутри отдельного блока интерфейса. + +### 3. `StyleBuilder` собирает финальный объект стиля + +Builder для кнопки создаётся так: + +```kotlin +fun ButtonStyle.basicButtonBuilder( + receiver: Any? = null, +): BasicButtonStyleBuilder = BasicButtonStyleBuilderImpl(receiver) +``` + +`BasicButtonStyleBuilder` реализует `StyleBuilder` и предоставляет API для настройки: + +- `shape(...)`, +- `colors { ... }`, +- `labelStyle(...)`, +- `valueStyle(...)`, +- `dimensions { ... }`, +- `disableAlpha(...)`, +- `loadingAlpha(...)`. + +Когда вызывается `style()`, builder создаёт готовый immutable-объект: + +```kotlin +override fun style(): ButtonStyle { + return DefaultBasicButtonStyle( + shape = shape ?: RoundedCornerShape(25), + colors = colorsBuilder.build(), + labelStyle = labelStyle ?: TextStyle.Default, + valueStyle = valueStyle ?: TextStyle.Default, + dimensions = dimensionsBuilder.build(), + disableAlpha = disableAlpha ?: DISABLED_BUTTON_ALPHA, + loadingAlpha = loadingAlpha ?: LOADING_BUTTON_ALPHA, + ) +} +``` + +Именно здесь происходит финализация стиля: + +- если параметр не задан, подставляется значение по умолчанию; +- после `style()` наружу уходит уже не builder, а готовый `ButtonStyle`. + +### 4. Вложенные builder'ы собирают части стиля + +У кнопки стиль состоит из вложенных сущностей: + +- `ButtonColors`, +- `ButtonDimensions`. + +Поэтому у `BasicButtonStyleBuilder` есть вложенные DSL-блоки: + +```kotlin +ButtonStyle.basicButtonBuilder() + .colors { + backgroundColor(...) + labelColor(...) + valueColor(...) + iconColor(...) + spinnerColor(...) + } + .dimensions { + height(...) + paddingStart(...) + paddingEnd(...) + iconSize(...) + } + .style() +``` + +Это типичный паттерн в `uikit-compose`: + +- корневой builder собирает стиль компонента, +- вложенные builder'ы собирают отдельные группы параметров, +- каждый вложенный builder умеет вернуть свою законченную структуру через `build()`. + +## Ментальная модель: как "течёт" стиль + +На практике поток такой: + +1. Мы описываем интерфейс стиля компонента, например `ButtonStyle`. +2. Мы создаём builder, который умеет собрать этот стиль, например `BasicButtonStyleBuilder`. +3. Builder возвращает готовый immutable-style через `style()`. +4. Этот стиль кладётся в `CompositionLocal` или передаётся напрямую в компонент. +5. Компонент не вычисляет внешний вид сам, а читает значения из стиля. +6. Если часть стиля зависит от интеракций, компонент обращается к `InteractiveColor` или `StatefulValue`. + +Именно поэтому `Style` и `StyleBuilder` удобно воспринимать как два слоя: + +- `Style` — финальный контракт данных, которые читает компонент; +- `StyleBuilder` — API, через который эти данные удобно собрать и переопределить. + +## Пример создания собственного стиля кнопки + +```kotlin +val customButtonStyle = ButtonStyle.basicButtonBuilder() + .shape(RoundedCornerShape(16.dp)) + .labelStyle(TextStyle.Default) + .valueStyle(TextStyle.Default) + .colors { + backgroundColor( + Color(0xFF2E6BF6).asInteractive( + pressed = Color(0xFF1E56D9), + ), + ) + labelColor(Color.White) + valueColor(Color(0xFFD6E0FF)) + iconColor(Color.White) + spinnerColor(Color.White) + } + .dimensions { + height(48.dp) + paddingStart(16.dp) + paddingEnd(16.dp) + minWidth(96.dp) + iconSize(24.dp) + spinnerSize(22.dp) + spinnerStrokeWidth(2.dp) + iconMargin(8.dp) + valueMargin(4.dp) + } + .disableAlpha(0.4f) + .loadingAlpha(0f) + .style() +``` + +Использование: + +```kotlin +Button( + label = "Продолжить", + onClick = {}, + style = customButtonStyle, +) +``` + +Если нужно переопределить стиль для группы компонентов, удобнее сделать это через `CompositionLocalProvider`. + +## `StatefulValue`: значение, зависящее от состояния + +`StatefulValue` — это контейнер, который хранит разные значения одного типа для разных наборов состояний. + +Он нужен, когда какое-то свойство компонента меняется не всегда одинаково, а зависит от: + +- интерактивных состояний (`Pressed`, `Focused`, `Hovered`, `Activated`, `Selected`), +- дополнительных пользовательских состояний через `ValueState`, +- комбинации нескольких состояний сразу. + +Пример идеи: + +```kotlin +val alpha = 1f.asStatefulValue( + setOf(InteractiveState.Pressed) to 0.6f, + setOf(InteractiveState.Focused) to 0.8f, +) +``` + +Здесь: + +- `1f` — значение по умолчанию, +- при `Pressed` будет возвращаться `0.6f`, +- при `Focused` будет возвращаться `0.8f`. + +Получить актуальное значение можно двумя способами: + +- напрямую по набору состояний: `getValue(stateSet)`, +- из `InteractionSource`: `getValue(interactionSource)`. + +Второй вариант особенно важен в Compose-компонентах, потому что `StatefulValue` сам считывает текущее состояние из `InteractionSource`. + +### Когда использовать `StatefulValue` + +`StatefulValue` подходит для любых свойств, которые должны зависеть от состояния, а не только для цветов. Например: + +- `Float`, +- `Dp`, +- `Brush`, +- `Shape`, +- любые собственные типы. + +Это базовый универсальный механизм state-dependent значений. + +## `InteractiveColor`: частный случай stateful-значения для цвета + +`InteractiveColor` — это специализированная абстракция для цвета, который зависит от интеракций. + +```kotlin +interface InteractiveColor { + @Composable + fun colorForInteraction(interactionSource: InteractionSource): Color +} +``` + +По сути, это более удобный API поверх stateful-поведения именно для `Color`. + +Создать его можно двумя основными способами. + +### Вариант 1. Простой: отдельные цвета для основных интеракций + +```kotlin +val interactive = defaultColor.asInteractive( + focused = focusedColor, + hovered = hoveredColor, + pressed = pressedColor, + activated = activatedColor, + selected = selectedColor, +) +``` + +Этот вариант удобен, когда достаточно одного цвета на каждое типовое интерактивное состояние. + +### Вариант 2. Гибкий: через наборы состояний + +```kotlin +val interactive = defaultColor.asInteractive( + setOf(InteractiveState.Pressed) to pressedColor, + setOf(InteractiveState.Selected) to selectedColor, + setOf(InteractiveState.Selected, InteractiveState.Pressed) to selectedPressedColor, +) +``` + +Этот способ стоит использовать, когда: + +- нужно обработать комбинации состояний, +- нужны не только базовые `pressed/hovered/focused`, +- важно тонко контролировать приоритет состояний. + +## Как использовать `StatefulValue` и `InteractiveColor` в стиле + +В `ButtonStyle` цвета объявлены как `InteractiveColor`: + +```kotlin +interface ButtonColors { + val backgroundColor: InteractiveColor + val labelColor: InteractiveColor + val valueColor: InteractiveColor + val iconColor: InteractiveColor + val spinnerColor: InteractiveColor +} +``` + +Это значит, что стиль описывает не просто "обычный" цвет, а правило получения цвета для разных состояний. + +Пример для кнопки: + +```kotlin +val buttonStyle = ButtonStyle.basicButtonBuilder() + .colors { + backgroundColor( + Color(0xFF2E6BF6).asInteractive( + setOf(InteractiveState.Pressed) to + Color(0xFF1E56D9), + setOf(InteractiveState.Focused) to + Color(0xFF4D82FF), + ), + ) + labelColor( + Color.White.asInteractive( + pressed = Color.White, + ), + ) + iconColor(Color.White) + valueColor(Color(0xFFD6E0FF)) + spinnerColor(Color.White) + } + .style() +``` + +Внутри компонента это будет использовано так: + +```kotlin +val labelColor = style.colors.labelColor.colorForInteraction(interactionSource) +``` + +Компоненту не нужно вручную проверять `pressed`, `focused` и другие флаги. Эту задачу берёт на себя `InteractiveColor`. + +### Когда в стиле нужен `StatefulValue`, а когда `InteractiveColor` + +- Используйте `InteractiveColor`, когда свойство является цветом и должно зависеть от интеракций. +- Используйте `StatefulValue`, когда от состояния зависит не цвет, а любое другое значение. +- Если нужен stateful-color, но в более общем виде, `InteractiveColor` можно преобразовать в `StatefulValue` через `asStatefulColor()`. + +## Практические рекомендации + +- Компонент должен читать значения из стиля, а не вычислять визуальные параметры сам. +- В интерфейс стиля выносите только те свойства, которые реально управляют внешним видом компонента. +- Для сложного стиля лучше группировать параметры во вложенные сущности вроде `Colors`, `Dimensions`, `Typography`. +- Для цветов интерактивных состояний используйте `InteractiveColor`, а не отдельные `if (pressed) ...` внутри компонента. +- Для любых других значений, зависящих от состояния, используйте `StatefulValue`. +- Значения по умолчанию лучше задавать на этапе `style()`, чтобы компонент всегда получал валидный и полный стиль. + +## Кратко + +- `Style` — это финальный объект стиля, который читает компонент. +- `StyleBuilder` — это способ собрать и переопределить этот стиль. +- `CompositionLocal` поставляет default-style для компонента. +- `InteractiveColor` отвечает за цвета, зависящие от интеракций. +- `StatefulValue` — общий механизм для любых значений, зависящих от состояния. From d837f99a021e883d8bab8a50fabc7468ffd61e65 Mon Sep 17 00:00:00 2001 From: malilex Date: Tue, 21 Apr 2026 14:42:12 +0300 Subject: [PATCH 2/9] feat(sdds-acore/plugin-theme-builder): Add support of binding proprties. --- .../themebuilder/GenerateComponentsTask.kt | 39 +- .../components/ComponentConfigDelegate.kt | 2 + .../components/ComponentStyleGenerator.kt | 2 + .../internal/components/ConfigInfo.kt | 54 ++ .../components/accordion/AccordionConfig.kt | 11 +- .../accordion/AccordionItemConfig.kt | 11 +- .../autocomplete/AutocompleteConfig.kt | 11 +- .../components/avatar/AvatarConfig.kt | 7 +- .../avatar/group/AvatarGroupConfig.kt | 4 + .../internal/components/badge/BadgeConfig.kt | 7 +- .../internal/components/base/BaseConfig.kt | 64 +++ .../base/compose/ComposeMetaClassGenerator.kt | 469 ++++++++++++++++-- .../base/compose/ComposeVariationGenerator.kt | 116 ++++- .../bottomsheet/BottomSheetConfig.kt | 7 +- .../components/button/ButtonConfig.kt | 7 +- .../buttongroup/ButtonGroupConfig.kt | 11 +- .../internal/components/card/CardConfig.kt | 7 +- .../components/carousel/CarouselConfig.kt | 7 +- .../internal/components/cell/CellConfig.kt | 11 +- .../components/cell/CellConfigDelegate.kt | 1 + .../compose/CellComposeVariationGenerator.kt | 5 + .../components/checkbox/CheckBoxConfig.kt | 11 +- .../checkbox/group/CheckBoxGroupConfig.kt | 4 + .../internal/components/chip/ChipConfig.kt | 11 +- .../components/chip/group/ChipGroupConfig.kt | 4 + .../CircularProgressConfig.kt | 7 +- .../components/codefield/CodeFieldConfig.kt | 7 +- .../components/codeinput/CodeInputConfig.kt | 7 +- .../CollapsingNavigationBarConfig.kt | 14 +- .../components/counter/CounterConfig.kt | 7 +- .../components/divider/DividerConfig.kt | 7 +- .../components/drawer/DrawerConfig.kt | 11 +- .../dropdownmenu/DropdownMenuConfig.kt | 11 +- .../components/editable/EditableConfig.kt | 11 +- .../components/emptystate/EmptyStateConfig.kt | 11 +- .../internal/components/file/FileConfig.kt | 11 +- .../components/form/FormItemConfig.kt | 11 +- .../internal/components/image/ImageConfig.kt | 11 +- .../components/indicator/IndicatorConfig.kt | 7 +- .../internal/components/list/ListConfig.kt | 11 +- .../components/list/item/ListItemConfig.kt | 4 + .../components/loader/LoaderConfig.kt | 11 +- .../internal/components/modal/ModalConfig.kt | 11 +- .../navigationbar/NavigationBarConfig.kt | 11 +- .../internal/components/note/NoteConfig.kt | 11 +- .../notification/NotificationConfig.kt | 11 +- .../NotificationContentConfig.kt | 11 +- .../components/overlay/OverlayConfig.kt | 7 +- .../paginationdots/PaginationDotsConfig.kt | 7 +- .../components/popover/PopoverConfig.kt | 11 +- .../components/progress/ProgressBarConfig.kt | 11 +- .../components/radiobox/RadioBoxConfig.kt | 11 +- .../radiobox/group/RadioBoxGroupConfig.kt | 4 + .../rectskeleton/RectSkeletonConfig.kt | 11 +- .../components/scrollbar/ScrollBarConfig.kt | 7 +- .../components/segment/SegmentConfig.kt | 7 +- .../segment/item/SegmentItemConfig.kt | 4 + .../components/select/SelectConfig.kt | 11 +- .../components/select/SelectItemConfig.kt | 11 +- .../components/slider/SliderConfig.kt | 7 +- .../components/spinner/SpinnerConfig.kt | 11 +- .../components/switcher/SwitchConfig.kt | 7 +- .../components/tabbar/TabBarConfig.kt | 7 +- .../tabbar/item/TabBarItemConfig.kt | 4 + .../internal/components/tabs/TabsConfig.kt | 7 +- .../components/tabs/item/TabItemConfig.kt | 4 + .../components/textfield/TextFieldConfig.kt | 11 +- .../textskeleton/TextSkeletonConfig.kt | 11 +- .../internal/components/toast/ToastConfig.kt | 11 +- .../components/toolbar/ToolBarConfig.kt | 11 +- .../components/tooltip/TooltipConfig.kt | 11 +- .../internal/components/wheel/WheelConfig.kt | 7 +- 72 files changed, 1175 insertions(+), 133 deletions(-) diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/GenerateComponentsTask.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/GenerateComponentsTask.kt index 87a79d8af8..42361edef3 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/GenerateComponentsTask.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/GenerateComponentsTask.kt @@ -10,9 +10,11 @@ import com.sdds.plugin.themebuilder.internal.components.ConfigInfo import com.sdds.plugin.themebuilder.internal.components.StyleGeneratorDependencies import com.sdds.plugin.themebuilder.internal.components.base.Component import com.sdds.plugin.themebuilder.internal.components.base.Components +import com.sdds.plugin.themebuilder.internal.components.base.compose.AppearanceInfo import com.sdds.plugin.themebuilder.internal.components.base.compose.ComposeMetaClassGenerator import com.sdds.plugin.themebuilder.internal.components.base.compose.ComposeMetaClassInfo import com.sdds.plugin.themebuilder.internal.components.base.compose.MetaClassAppearance +import com.sdds.plugin.themebuilder.internal.components.base.compose.buildComposeStyleApiInfos import com.sdds.plugin.themebuilder.internal.components.componentDelegates import com.sdds.plugin.themebuilder.internal.factory.ColorStateListGeneratorFactory import com.sdds.plugin.themebuilder.internal.factory.KtFileBuilderFactory @@ -156,13 +158,41 @@ internal abstract class GenerateComponentsTask : DefaultTask() { val configInfo = ConfigInfo( name = name, packageName = packageName.get(), - components = components, + components = enrichComposeComponentsWithStyleApi(components), ) outputFileForCompose.outputStream().use { Serializer.configInfo.encodeToStream(configInfo, it) } } + private fun enrichComposeComponentsWithStyleApi(components: List): List { + return components + .groupBy { it.key } + .values + .flatMap { componentInfos -> + val commonInfo = componentInfos.first() + val styleApis = buildComposeStyleApiInfos( + info = ComposeMetaClassInfo( + coreComponentName = commonInfo.key, + styleClassName = commonInfo.styleClassName, + styleBuilderClassName = commonInfo.styleBuilderClassName, + appearances = componentInfos.associate { + MetaClassAppearance(it.appearance) to AppearanceInfo( + props = it.props, + variations = it.variations, + ) + }, + ), + componentPackage = commonInfo.componentPackage, + ) + componentInfos.map { componentInfo -> + componentInfo.copy( + styleApi = styleApis[MetaClassAppearance(componentInfo.appearance)], + ) + } + } + } + private fun generateComposeMetaClass( deps: StyleGeneratorDependencies, components: List, @@ -182,7 +212,12 @@ internal abstract class GenerateComponentsTask : DefaultTask() { coreComponentName = component.componentName, styleClassName = commonInfo.styleClassName, styleBuilderClassName = commonInfo.styleBuilderClassName, - appearances = componentInfos.associate { MetaClassAppearance(it.appearance) to it.variations }, + appearances = componentInfos.associate { + MetaClassAppearance(it.appearance) to AppearanceInfo( + props = it.props, + variations = it.variations, + ) + }, ), ) } diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/ComponentConfigDelegate.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/ComponentConfigDelegate.kt index 8fb15c6a81..bc57227243 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/ComponentConfigDelegate.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/ComponentConfigDelegate.kt @@ -51,6 +51,7 @@ internal abstract class ComponentConfigDelegate> : appearance = component.styleName, coreName = component.componentName.techToCamelCase(), styleName = result.styleName, + props = result.props, styleClassName = result.styleClassName, styleBuilderClassName = result.styleBuilderClassName, componentPackage = result.componentPackage, @@ -58,6 +59,7 @@ internal abstract class ComponentConfigDelegate> : VariationInfo( name = it.key, composeReference = it.value, + props = result.variationProps[it.key].orEmpty(), ) }, ) diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/ComponentStyleGenerator.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/ComponentStyleGenerator.kt index 4f168de352..6f3c873bd0 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/ComponentStyleGenerator.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/ComponentStyleGenerator.kt @@ -16,6 +16,8 @@ internal interface ComponentStyleGenerator { data class Compose( override val styleName: String, override val variations: Map, + val props: List, + val variationProps: Map>, val componentPackage: String, val styleClassName: ClassName, val styleBuilderClassName: ClassName, diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/ConfigInfo.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/ConfigInfo.kt index e0e9ff21db..0a53598ea1 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/ConfigInfo.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/ConfigInfo.kt @@ -1,6 +1,7 @@ package com.sdds.plugin.themebuilder.internal.components import com.squareup.kotlinpoet.ClassName +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.Transient @@ -33,6 +34,8 @@ internal data class ComponentInfo( @Transient val componentPackage: String = "", val coreName: String, val styleName: String, + val props: List = emptyList(), + val styleApi: ComposeStyleApiInfo? = null, val variations: List, ) @@ -42,8 +45,59 @@ internal data class VariationInfo( val composeReference: VariationReference? = null, val viewReference: VariationReference? = null, val viewOverlayReference: VariationReference? = null, + val props: List = emptyList(), ) +@Serializable +internal data class VariationProp( + val name: String, + val value: String? = null, + val values: Set? = null, + val defaultValue: String? = null, +) + +@Serializable +internal data class ComposeStyleApiInfo( + val packageName: String, + val stylesClassName: String, + val stylesClassQualifiedName: String, + val receiverClassName: String, + val receiverClassQualifiedName: String, + val functionName: String = "style", + val returnTypeName: String, + val returnTypeQualifiedName: String, + val modifyReceiverTypeName: String, + val modifyReceiverTypeQualifiedName: String, + val holderName: String? = null, + val params: List = emptyList(), +) + +@Serializable +internal data class ComposeStyleApiParam( + val name: String, + val type: ComposeStyleApiParamType, + val required: Boolean, + val typeName: String, + val typeQualifiedName: String, + val defaultValue: ComposeStyleApiValue? = null, + val values: List? = null, +) + +@Serializable +internal data class ComposeStyleApiValue( + val value: String, + val codeName: String, +) + +@Serializable +internal enum class ComposeStyleApiParamType { + @SerialName("boolean") + BOOLEAN, + + @SerialName("enum") + ENUM, +} + @Serializable @JvmInline internal value class VariationReference(val value: String) diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/accordion/AccordionConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/accordion/AccordionConfig.kt index 01947c3399..9af2d8e6d8 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/accordion/AccordionConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/accordion/AccordionConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.accordion import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -29,16 +31,20 @@ internal data class AccordionProperties( } @Serializable -internal data class AccordionView(override val props: AccordionProperties) : +internal data class AccordionView( + override val props: AccordionProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as AccordionProperties) + copy(props = props.merge(parent.props) as AccordionProperties, binding = binding ?: parent.binding) } @Serializable internal data class AccordionVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: AccordionProperties, ) : ChildVariation @@ -48,4 +54,5 @@ internal data class AccordionConfig( override val view: Map = emptyMap(), override val props: AccordionProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/accordion/AccordionItemConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/accordion/AccordionItemConfig.kt index b2f89a367b..f1ecccc010 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/accordion/AccordionItemConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/accordion/AccordionItemConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.accordion import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -67,16 +69,20 @@ internal data class AccordionItemProperties( } @Serializable -internal data class AccordionItemView(override val props: AccordionItemProperties) : +internal data class AccordionItemView( + override val props: AccordionItemProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as AccordionItemProperties) + copy(props = props.merge(parent.props) as AccordionItemProperties, binding = binding ?: parent.binding) } @Serializable internal data class AccordionItemVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: AccordionItemProperties, ) : ChildVariation @@ -86,4 +92,5 @@ internal data class AccordionItemConfig( override val view: Map = emptyMap(), override val props: AccordionItemProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/autocomplete/AutocompleteConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/autocomplete/AutocompleteConfig.kt index ea2c5d987f..2e3e4ccd0c 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/autocomplete/AutocompleteConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/autocomplete/AutocompleteConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.autocomplete import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -26,16 +28,20 @@ internal data class AutoCompleteProperties( } @Serializable -internal data class AutoCompleteView(override val props: AutoCompleteProperties) : +internal data class AutoCompleteView( + override val props: AutoCompleteProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as AutoCompleteProperties) + copy(props = props.merge(parent.props) as AutoCompleteProperties, binding = binding ?: parent.binding) } @Serializable internal data class AutoCompleteVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: AutoCompleteProperties, ) : ChildVariation @@ -45,4 +51,5 @@ internal data class AutoCompleteConfig( override val view: Map = emptyMap(), override val props: AutoCompleteProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/avatar/AvatarConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/avatar/AvatarConfig.kt index a18a9178b6..93e2ca49e8 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/avatar/AvatarConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/avatar/AvatarConfig.kt @@ -2,6 +2,8 @@ package com.sdds.plugin.themebuilder.internal.components.avatar import com.sdds.plugin.themebuilder.internal.components.ComponentConfig import com.sdds.plugin.themebuilder.internal.components.badge.BadgeProperties +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.BooleanValue import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color @@ -67,15 +69,17 @@ internal data class AvatarProperties( @Serializable internal data class AvatarView( override val props: AvatarProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as AvatarProperties) + copy(props = props.merge(parent.props) as AvatarProperties, binding = binding ?: parent.binding) } @Serializable internal data class AvatarVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: AvatarProperties, ) : ChildVariation @@ -85,4 +89,5 @@ internal data class AvatarConfig( override val view: Map = emptyMap(), override val props: AvatarProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/avatar/group/AvatarGroupConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/avatar/group/AvatarGroupConfig.kt index 757f39c980..3b151e8b71 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/avatar/group/AvatarGroupConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/avatar/group/AvatarGroupConfig.kt @@ -2,6 +2,8 @@ package com.sdds.plugin.themebuilder.internal.components.avatar.group import com.sdds.plugin.themebuilder.internal.components.ComponentConfig import com.sdds.plugin.themebuilder.internal.components.avatar.AvatarProperties +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -40,6 +42,7 @@ internal data class AvatarGroupView( internal data class AvatarGroupVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: AvatarGroupProperties, ) : ChildVariation @@ -49,4 +52,5 @@ internal data class AvatarGroupConfig( override val view: Map = emptyMap(), override val props: AvatarGroupProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/badge/BadgeConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/badge/BadgeConfig.kt index f38f0b47c1..e66ae76438 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/badge/BadgeConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/badge/BadgeConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.badge import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -57,15 +59,17 @@ internal data class BadgeProperties( @Serializable internal data class BadgeView( override val props: BadgeProperties = BadgeProperties(), + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as BadgeProperties) + copy(props = props.merge(parent.props) as BadgeProperties, binding = binding ?: parent.binding) } @Serializable internal data class BadgeVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: BadgeProperties, ) : ChildVariation @@ -75,4 +79,5 @@ internal data class BadgeConfig( override val view: Map = emptyMap(), override val props: BadgeProperties = BadgeProperties(), override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/BaseConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/BaseConfig.kt index 0d1ea34c2f..8137734e0f 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/BaseConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/BaseConfig.kt @@ -1,8 +1,19 @@ package com.sdds.plugin.themebuilder.internal.components.base import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import kotlinx.serialization.KSerializer import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable +import kotlinx.serialization.descriptors.PrimitiveKind +import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder +import kotlinx.serialization.json.JsonDecoder +import kotlinx.serialization.json.JsonPrimitive +import kotlinx.serialization.json.booleanOrNull +import kotlinx.serialization.json.contentOrNull +import kotlinx.serialization.json.jsonPrimitive /** * Интерфейс сущности со свойствами компонента @@ -27,6 +38,9 @@ internal interface ViewVariation { */ val props: PO + val binding: List? + get() = null + /** * Совмещает свойства текущего объекта со свойствами [parent] и возвращает * новый [ViewVariation] @@ -60,6 +74,37 @@ internal interface ChildVariation : BaseVariation { internal interface Config : BaseVariation, ComponentConfig { val variations: List> + + val bindings: List + get() = emptyList() +} + +@Serializable +internal data class Bindings( + val name: String, + val type: BindingType, + val values: Set? = null, + @Serializable(with = BindingValueSerializer::class) + val defaultValue: String? = null, +) + +@Serializable +internal data class Binding( + val name: String, + @Serializable(with = BindingValueSerializer::class) + val value: String, +) + +@Serializable +internal enum class BindingType { + @SerialName("enum") + ENUM, + + @SerialName("boolean") + BOOLEAN, + + @SerialName("view") + VIEW, } internal sealed interface State { @@ -335,3 +380,22 @@ internal data class Icon( internal data class BooleanValue( val value: Boolean, ) + +private object BindingValueSerializer : KSerializer { + override val descriptor: SerialDescriptor = + PrimitiveSerialDescriptor("BindingValue", PrimitiveKind.STRING) + + override fun serialize(encoder: Encoder, value: String) { + encoder.encodeString(value) + } + + override fun deserialize(decoder: Decoder): String { + return if (decoder is JsonDecoder) { + val primitive: JsonPrimitive = decoder.decodeJsonElement().jsonPrimitive + primitive.contentOrNull ?: primitive.booleanOrNull?.toString() + ?: primitive.toString() + } else { + decoder.decodeString() + } + } +} diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeMetaClassGenerator.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeMetaClassGenerator.kt index 731c32c91d..db3c13b556 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeMetaClassGenerator.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeMetaClassGenerator.kt @@ -1,10 +1,16 @@ package com.sdds.plugin.themebuilder.internal.components.base.compose import com.sdds.plugin.themebuilder.internal.builder.KtFileBuilder +import com.sdds.plugin.themebuilder.internal.components.ComposeStyleApiInfo +import com.sdds.plugin.themebuilder.internal.components.ComposeStyleApiParam +import com.sdds.plugin.themebuilder.internal.components.ComposeStyleApiParamType +import com.sdds.plugin.themebuilder.internal.components.ComposeStyleApiValue import com.sdds.plugin.themebuilder.internal.components.VariationInfo +import com.sdds.plugin.themebuilder.internal.components.VariationProp import com.sdds.plugin.themebuilder.internal.factory.KtFileBuilderFactory import com.sdds.plugin.themebuilder.internal.utils.capitalized import com.squareup.kotlinpoet.ClassName +import com.squareup.kotlinpoet.TypeSpec @JvmInline internal value class MetaClassAppearance(val name: String) @@ -13,9 +19,75 @@ internal data class ComposeMetaClassInfo( val coreComponentName: String, val styleClassName: ClassName?, val styleBuilderClassName: ClassName?, - val appearances: Map>, + val appearances: Map, ) +internal data class AppearanceInfo( + val props: List, + val variations: List, +) + +internal fun buildComposeStyleApiInfos( + info: ComposeMetaClassInfo, + componentPackage: String, +): Map { + val camelCoreComponentName = info.coreComponentName.toCamelCase() + val stylesClass = ClassName(componentPackage, "${camelCoreComponentName}Styles") + return buildAppearanceModels( + info = info, + camelCoreComponentName = camelCoreComponentName, + ).associate { appearance -> + val receiverClass = if (appearance.holderName == null) { + ClassName(componentPackage, stylesClass.simpleNames.last(), "Companion") + } else { + ClassName(componentPackage, stylesClass.simpleNames.last(), appearance.holderName) + } + appearance.appearance to ComposeStyleApiInfo( + packageName = componentPackage, + stylesClassName = stylesClass.renderSimpleName(), + stylesClassQualifiedName = stylesClass.renderQualifiedName(), + receiverClassName = receiverClass.renderSimpleName(), + receiverClassQualifiedName = receiverClass.renderQualifiedName(), + holderName = appearance.holderName, + params = appearance.props.map { prop -> + val parameterType = prop.type.asApiTypeName(componentPackage) + ComposeStyleApiParam( + name = prop.parameterName, + type = when (prop.type) { + PropType.Boolean -> ComposeStyleApiParamType.BOOLEAN + is PropType.Enum -> ComposeStyleApiParamType.ENUM + }, + required = prop.required, + typeName = parameterType.simpleName, + typeQualifiedName = parameterType.qualifiedName, + defaultValue = prop.defaultValue?.let { defaultValue -> + ComposeStyleApiValue( + value = defaultValue, + codeName = prop.type.toCodeName(defaultValue), + ) + }, + values = when (val type = prop.type) { + PropType.Boolean -> listOf( + ComposeStyleApiValue(value = "true", codeName = "true"), + ComposeStyleApiValue(value = "false", codeName = "false"), + ) + is PropType.Enum -> type.values.map { value -> + ComposeStyleApiValue( + value = value, + codeName = value.toPropEnumName(), + ) + } + }, + ) + }, + returnTypeName = info.styleClassName?.renderSimpleName().orEmpty(), + returnTypeQualifiedName = info.styleClassName?.renderQualifiedName().orEmpty(), + modifyReceiverTypeName = info.styleBuilderClassName?.renderSimpleName().orEmpty(), + modifyReceiverTypeQualifiedName = info.styleBuilderClassName?.renderQualifiedName().orEmpty(), + ) + } +} + internal class ComposeMetaClassGenerator( private val ktFileBuilderFactory: KtFileBuilderFactory, private val componentPackage: String, @@ -26,6 +98,9 @@ internal class ComposeMetaClassGenerator( info: ComposeMetaClassInfo, ) { val camelCoreComponentName = info.coreComponentName.toCamelCase() + val enumClassName = "${camelCoreComponentName}Styles" + val appearanceModels = buildAppearanceModels(info, camelCoreComponentName) + val styleEntries = buildStyleEntries(info) val objectFileBuilder = ktFileBuilderFactory.create( fileName = "${camelCoreComponentName}StylesCollection", fullPackageName = componentPackage, @@ -40,27 +115,31 @@ internal class ComposeMetaClassGenerator( ) with(objectFileBuilder) { - val enumClassName = "${camelCoreComponentName}Styles" - val variations: Map = info.appearances - .flatMap { appearanceEntry -> - val variations = appearanceEntry.value - variations.map { appearanceEntry.key to it } - } - .mapNotNull { appearanceEntry -> - val appearanceName = appearanceEntry.first.name - val variation = appearanceEntry.second - val reference = variation.composeReference ?: return@mapNotNull null - "$appearanceName.${variation.name}" to reference.value - } - .associate { it.first to it.second } - addCommonImports(info) - addEnum(enumClassName, camelCoreComponentName, variations) - addStyleFun(enumClassName, variations, info) + val stylesEnum = addEnum(enumClassName, camelCoreComponentName, styleEntries) + addStyleFun(enumClassName, styleEntries, info) + addTypedApis( + enumBuilder = stylesEnum, + enumClassName = enumClassName, + appearanceModels = appearanceModels, + info = info, + ) build(outputLocation) } } + private fun buildStyleEntries(info: ComposeMetaClassInfo): List = + info.appearances.flatMap { (appearance, appearanceInfo) -> + appearanceInfo.variations.mapNotNull { variation -> + val reference = variation.composeReference ?: return@mapNotNull null + StyleEntry( + appearance = appearance, + variation = variation, + reference = reference.value, + ) + } + } + private fun KtFileBuilder.addCommonImports(info: ComposeMetaClassInfo) { val styleTypeName = info.styleClassName val styleBuilderTypeName = info.styleBuilderClassName @@ -76,9 +155,9 @@ internal class ComposeMetaClassGenerator( private fun KtFileBuilder.addEnum( enumClassName: String, camelCoreComponentName: String, - variations: Map, - ) { - rootEnum( + entries: List, + ): TypeSpec.Builder { + return rootEnum( name = enumClassName, description = "Вспомогательный объект для описания всех стилей компонента $camelCoreComponentName", primaryConstructor = KtFileBuilder.Constructor.Primary( @@ -86,24 +165,20 @@ internal class ComposeMetaClassGenerator( KtFileBuilder.FunParameter("key", KtFileBuilder.TypeString, asProperty = true), ), ), - enumConstants = variations - .map { variationEntry -> - val enumName = variationEntry.value.replace(".", "") - enumName to listOf("\"${variationEntry.value}\"") - } - .associate { it }, - + enumConstants = entries.associate { entry -> + entry.reference.toStyleEnumName() to listOf("\"${entry.reference}\"") + }, ) } @Suppress("SpreadOperator") private fun KtFileBuilder.addStyleFun( enumClassName: String, - variations: Map, + entries: List, info: ComposeMetaClassInfo, ) { - val styleWhenBody: Array = variations.mapNotNull { - " $enumClassName.${it.value.replace(".", "")} -> ${it.value}\n" + val styleWhenBody: Array = entries.map { + " $enumClassName.${it.reference.toStyleEnumName()} -> ${it.reference}\n" }.toTypedArray() appendRootFun( @@ -114,7 +189,7 @@ internal class ComposeMetaClassGenerator( ), params = listOf( KtFileBuilder.FunParameter( - "modifyAction", + "modify", KtFileBuilder.getLambdaType( annotation = KtFileBuilder.TypeAnnotationComposable, receiver = info.styleBuilderClassName, @@ -126,19 +201,339 @@ internal class ComposeMetaClassGenerator( returnType = info.styleClassName, description = "Возвращает [${info.styleClassName?.simpleName}] для [$enumClassName]", body = listOf( - "val builder = when (this) {\n", + "val builder = when (this) {\n", *styleWhenBody, "}\n", - "return builder.modify(modifyAction).style()", + "return builder.modify(modify).style()", + ), + ) + } + + private fun KtFileBuilder.addTypedApis( + enumBuilder: TypeSpec.Builder, + enumClassName: String, + appearanceModels: List, + info: ComposeMetaClassInfo, + ) { + val singleAppearance = appearanceModels.size == 1 + appearanceModels.forEach { appearance -> + appearance.props.forEach { prop -> + val type = prop.type as? PropType.Enum ?: return@forEach + rootEnum( + name = type.enumClassName, + description = "Возможные значения свойства ${prop.sourceName} для ${appearance.appearance.name}", + enumConstants = type.values.associate { value -> + value.toPropEnumName() to emptyList() + }, + ) + } + + val receiverType = if (singleAppearance) { + enumBuilder.addType( + TypeSpec.companionObjectBuilder() + .addKdoc("Typed API для подбора стиля ${appearance.appearance.name}") + .build(), + ) + ClassName(componentPackage, enumClassName, "Companion") + } else { + enumBuilder.addType( + TypeSpec.objectBuilder(appearance.holderName!!) + .addKdoc("Typed API для подбора стиля ${appearance.appearance.name}") + .build(), + ) + ClassName(componentPackage, enumClassName, appearance.holderName) + } + + addResolveFun( + receiverType = receiverType, + enumClassName = enumClassName, + appearance = appearance, + ) + addTypedStyleFun( + receiverType = receiverType, + enumClassName = enumClassName, + appearance = appearance, + info = info, + ) + } + } + + private fun KtFileBuilder.addResolveFun( + receiverType: ClassName, + enumClassName: String, + appearance: AppearanceModel, + ) { + if (appearance.props.isEmpty()) { + val fallbackStyle = appearance.variations.firstOrNull() + ?: error("No variations available for `${appearance.appearance.name}`") + appendRootFun( + name = "resolve", + receiver = receiverType, + modifiers = listOf(KtFileBuilder.Modifier.PRIVATE), + returnType = ClassName(componentPackage, enumClassName), + body = listOf( + "return $enumClassName.${fallbackStyle.reference.toStyleEnumName()}", + ), + ) + return + } + val params = appearance.props.map { prop -> + KtFileBuilder.FunParameter( + name = prop.parameterName, + type = prop.type.asTypeName(componentPackage), + defValue = prop.defaultValue?.let(prop::toDefaultValueExpression), + ) + } + val whenBranches = appearance.variations + .sortedByDescending { it.props.size } + .map { variation -> + val condition = appearance.props + .mapNotNull { prop -> + val value = variation.props[prop.sourceName] ?: return@mapNotNull null + prop.toCondition(value) + } + .joinToString(" && ") + val resolvedCondition = condition.ifBlank { "true" } + " $resolvedCondition -> $enumClassName.${variation.reference.toStyleEnumName()}\n" + } + appendRootFun( + name = "resolve", + receiver = receiverType, + params = params, + modifiers = listOf(KtFileBuilder.Modifier.PRIVATE), + returnType = ClassName(componentPackage, enumClassName), + body = listOf( + "return when {\n", + *whenBranches.toTypedArray(), + " else -> error(\"Unsupported ${appearance.appearance.name} style combination\")\n", + "}\n", ), ) } - private companion object { + private fun KtFileBuilder.addTypedStyleFun( + receiverType: ClassName, + enumClassName: String, + appearance: AppearanceModel, + info: ComposeMetaClassInfo, + ) { + val params = appearance.props.map { prop -> + KtFileBuilder.FunParameter( + name = prop.parameterName, + type = prop.type.asTypeName(componentPackage), + defValue = prop.defaultValue?.let(prop::toDefaultValueExpression), + ) + } + KtFileBuilder.FunParameter( + "modify", + KtFileBuilder.getLambdaType( + annotation = KtFileBuilder.TypeAnnotationComposable, + receiver = info.styleBuilderClassName, + ), + defValue = "{}", + ) + val resolveArgs = appearance.props.joinToString(", ") { it.parameterName } + appendRootFun( + name = "style", + receiver = receiverType, + params = params, + annotations = listOf(KtFileBuilder.TypeAnnotationComposable), + returnType = info.styleClassName, + body = listOf( + "return resolve($resolveArgs).style(modify)", + ), + description = "Возвращает [${info.styleClassName?.simpleName}] для ${appearance.appearance.name}", + ) + } - fun String.toCamelCase(): String { - val segments = split(".", "-", "_") - return segments.joinToString("") { it.capitalized() } + private fun PropModel.toCondition(value: String): String { + return when (val kind = type) { + PropType.Boolean -> "$parameterName == $value" + is PropType.Enum -> "$parameterName == ${kind.enumClassName}.${value.toPropEnumName()}" } } + + private fun PropType.asTypeName(componentPackage: String) = when (this) { + PropType.Boolean -> KtFileBuilder.TypeBoolean + is PropType.Enum -> ClassName(componentPackage, enumClassName) + } +} + +private fun buildAppearanceModels( + info: ComposeMetaClassInfo, + camelCoreComponentName: String, +): List { + val hasSingleAppearance = info.appearances.size == 1 + return info.appearances.map { (appearance, appearanceInfo) -> + val typedVariations = appearanceInfo.variations + .filter { it.composeReference != null } + .map { variation -> + TypedVariation( + variation = variation, + reference = variation.composeReference!!.value, + props = variation.props.associate { prop -> + prop.name to (prop.value ?: "") + }, + ) + } + val props = buildPropModels( + camelCoreComponentName = camelCoreComponentName, + appearance = appearance, + componentProps = appearanceInfo.props, + variations = typedVariations, + includeAppearanceInName = !hasSingleAppearance, + ) + AppearanceModel( + appearance = appearance, + holderName = if (hasSingleAppearance) null else appearance.toHolderName(camelCoreComponentName), + props = props, + variations = typedVariations, + ) + } +} + +private fun buildPropModels( + camelCoreComponentName: String, + appearance: MetaClassAppearance, + componentProps: List, + variations: List, + includeAppearanceInName: Boolean, +): List { + val appearanceSuffix = if (includeAppearanceInName) appearance.toHolderName(camelCoreComponentName) else "" + return componentProps.map { prop -> + val values = prop.values?.toList().orEmpty() + val propType = if (values.isEmpty()) { + PropType.Boolean + } else { + PropType.Enum( + enumClassName = "${camelCoreComponentName}${appearanceSuffix}${prop.name.toCamelCase()}", + values = values, + ) + } + PropModel( + sourceName = prop.name, + parameterName = prop.name.toParameterName(), + required = prop.defaultValue == null, + defaultValue = prop.defaultValue, + type = propType, + ) + } + .onEach { prop -> + prop.defaultValue?.let { defaultValue -> + when (val type = prop.type) { + PropType.Boolean -> require(defaultValue == "true" || defaultValue == "false") { + "Invalid boolean defaultValue `$defaultValue` for binding `${prop.sourceName}` " + + "in `${appearance.name}`" + } + is PropType.Enum -> require(defaultValue in type.values) { + "Invalid enum defaultValue `$defaultValue` for binding `${prop.sourceName}`" + + " in `${appearance.name}`" + } + } + } + val hasMissingProps = variations.any { variation -> !variation.props.containsKey(prop.sourceName) } + if (prop.defaultValue == null && hasMissingProps) { + error("Missing defaultValue for binding `${prop.sourceName}` in `${appearance.name}`") + } + } +} + +private fun String.toCamelCase(): String { + val segments = split(".", "-", "_") + return segments.joinToString("") { it.capitalized() } +} + +private fun MetaClassAppearance.toHolderName(camelCoreComponentName: String): String { + val camelName = name.toCamelCase() + return camelName + .removePrefix(camelCoreComponentName) + .ifBlank { "Default" } +} + +private fun String.toStyleEnumName(): String { + val candidate = replace(".", "").replace("-", "").replace("_", "").replace(" ", "") + return candidate.ensureIdentifier(prefix = "Style") +} + +private fun String.toPropEnumName(): String { + return toCamelCase().ensureIdentifier(prefix = "Value") } + +private fun String.toParameterName(): String { + val camel = toCamelCase() + return camel.replaceFirstChar { it.lowercase() }.ensureIdentifier(prefix = "value") +} + +private fun String.ensureIdentifier(prefix: String): String { + val sanitized = replace(Regex("[^A-Za-z0-9_]"), "") + return when { + sanitized.isBlank() -> prefix + sanitized.first().isDigit() -> "$prefix$sanitized" + else -> sanitized + } +} + +private fun PropType.asApiTypeName(componentPackage: String): ApiTypeName = when (this) { + PropType.Boolean -> ApiTypeName( + simpleName = "Boolean", + qualifiedName = "kotlin.Boolean", + ) + is PropType.Enum -> ApiTypeName( + simpleName = enumClassName, + qualifiedName = "$componentPackage.$enumClassName", + ) +} + +private fun PropModel.toDefaultValueExpression(defaultValue: String): String = when (val type = type) { + PropType.Boolean -> defaultValue + is PropType.Enum -> "${type.enumClassName}.${defaultValue.toPropEnumName()}" +} + +private fun PropType.toCodeName(value: String): String = when (this) { + PropType.Boolean -> value + is PropType.Enum -> value.toPropEnumName() +} + +private fun ClassName.renderSimpleName(): String = simpleNames.joinToString(".") + +private fun ClassName.renderQualifiedName(): String = "$packageName.${renderSimpleName()}" + +private data class StyleEntry( + val appearance: MetaClassAppearance, + val variation: VariationInfo, + val reference: String, +) + +private data class AppearanceModel( + val appearance: MetaClassAppearance, + val holderName: String?, + val props: List, + val variations: List, +) + +private data class TypedVariation( + val variation: VariationInfo, + val reference: String, + val props: Map, +) + +private data class PropModel( + val sourceName: String, + val parameterName: String, + val required: Boolean, + val defaultValue: String?, + val type: PropType, +) + +private sealed interface PropType { + object Boolean : PropType + + data class Enum( + val enumClassName: String, + val values: List, + ) : PropType +} + +private data class ApiTypeName( + val simpleName: String, + val qualifiedName: String, +) diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeVariationGenerator.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeVariationGenerator.kt index c6b73467c3..2ce5d3037c 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeVariationGenerator.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeVariationGenerator.kt @@ -5,7 +5,11 @@ import com.sdds.plugin.themebuilder.internal.builder.KtFileBuilder import com.sdds.plugin.themebuilder.internal.builder.KtFileBuilder.Annotation import com.sdds.plugin.themebuilder.internal.builder.KtFileBuilder.Modifier import com.sdds.plugin.themebuilder.internal.components.ComponentStyleGenerator +import com.sdds.plugin.themebuilder.internal.components.VariationProp import com.sdds.plugin.themebuilder.internal.components.VariationReference +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.BindingType +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ColorState import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -58,6 +62,7 @@ internal abstract class ComposeVariationGenerator( private val ktFileName: String = "${camelComponentName}Styles" private val generatedWrappers = mutableSetOf() private var shouldAddInvariantPropsCall = false + private var viewPropName: String = "view" private val baseWrapperInterfaceName = "Wrapper$camelComponentName" @@ -100,6 +105,9 @@ internal abstract class ComposeVariationGenerator( private val variations: MutableMap = mutableMapOf() private val viewVariations: MutableMap = mutableMapOf() + private val variationProps: MutableMap> = mutableMapOf() + private val viewVariationProps: MutableMap> = mutableMapOf() + private var componentProps: List = emptyList() protected open fun getVariationName(variationId: String?): String = variationId?.toCamelCase().orEmpty() @@ -296,6 +304,21 @@ internal abstract class ComposeVariationGenerator( } override fun generate(config: Config): ComponentStyleGenerator.Result { + val configuredViewBinding = config.findViewBinding() + viewPropName = configuredViewBinding?.name ?: "view" + componentProps = config.bindings.map { binding -> + VariationProp( + name = binding.name, + values = binding.values, + defaultValue = binding.defaultValue, + ) + } + variationProps.clear() + variationProps.putAll( + config.variations.associate { variation -> + variation.id to variation.binding.toVariationProps() + }, + ) with(ktFileBuilder) { addCommonImports() addRootObject() @@ -308,12 +331,20 @@ internal abstract class ComposeVariationGenerator( ) build(outputLocation) } + val variationReferences = getVariationsDict() + val variationProps = getVariationPropsDict() return ComponentStyleGenerator.Result.Compose( styleName = camelComponentName, - variations = getVariationsDict(), + variations = variationReferences, componentPackage = componentPackage, styleClassName = styleType, styleBuilderClassName = styleBuilderType, + props = mergeComponentAndViewProps( + componentProps = componentProps, + variationProps = variationProps.values, + configuredViewBinding = configuredViewBinding, + ), + variationProps = variationProps, ) } @@ -331,7 +362,10 @@ internal abstract class ComposeVariationGenerator( } variations.forEach { entry -> viewVariations.forEach { view -> - put("${entry.key}.${view.key}", VariationReference("${entry.value.value}.${view.value.value}")) + put( + "${entry.key}.${view.key}", + VariationReference("${entry.value.value}.${view.value.value}"), + ) } if (viewVariations.isEmpty()) { put(entry.key, entry.value) @@ -339,6 +373,53 @@ internal abstract class ComposeVariationGenerator( } } + private fun getVariationPropsDict() = mutableMapOf>().apply { + if (variations.isEmpty()) { + if (viewVariations.isEmpty()) { + put("default", emptyList()) + } else { + viewVariations.forEach { view -> + put(view.key, viewVariationProps[view.key].orEmpty()) + } + } + return@apply + } + variations.forEach { entry -> + viewVariations.forEach { view -> + put( + "${entry.key}.${view.key}", + entry.value.let { variationProps[entry.key].orEmpty() + viewVariationProps[view.key].orEmpty() }, + ) + } + if (viewVariations.isEmpty()) { + put(entry.key, variationProps[entry.key].orEmpty()) + } + } + } + + private fun mergeComponentAndViewProps( + componentProps: List, + variationProps: Collection>, + configuredViewBinding: Bindings?, + ): List { + val viewValues = linkedSetOf() + variationProps.forEach { props -> + props.firstOrNull { it.name == viewPropName }?.value?.let(viewValues::add) + } + if (viewValues.isEmpty()) return componentProps + val viewProp = VariationProp( + name = viewPropName, + values = ((configuredViewBinding?.values ?: emptySet()) + viewValues).toSet(), + defaultValue = configuredViewBinding?.defaultValue, + ) + val existingIndex = componentProps.indexOfFirst { it.name == viewPropName } + return if (existingIndex >= 0) { + componentProps.toMutableList().apply { this[existingIndex] = viewProp } + } else { + componentProps + viewProp + } + } + private fun addRootObject() { val objectFileBuilder = ktFileBuilderFactory.create( fileName = camelComponentName, @@ -498,7 +579,12 @@ internal abstract class ComposeVariationGenerator( wrapperSuffix = "${camelComponentName}Terminate", description = "Терминальная обертка", ) - viewVariations[viewEntry.key] = VariationReference(extensionName) + viewVariations[viewEntry.key] = VariationReference( + value = extensionName, + ) + viewVariationProps[viewEntry.key] = viewEntry.value.binding + .toVariationProps() + .ifEmpty { listOf(viewEntry.key.asViewProp()) } appendRootVal( name = extensionName, typeName = outType, @@ -561,7 +647,9 @@ internal abstract class ComposeVariationGenerator( builderCalls.forEach { appendLine(it) } appendLine(".wrap(::${outType.simpleName})") } - variations[variationNode.id] = VariationReference("$camelComponentName.$variationName") + variations[variationNode.id] = VariationReference( + "$camelComponentName.$variationName", + ) } else { builderRef = "builder" receiverType = @@ -580,7 +668,9 @@ internal abstract class ComposeVariationGenerator( appendLine(".wrap(::${outType.simpleName})") } if (parentPath != null) { - variations[variationNode.id] = VariationReference("$camelComponentName.$parentPath.$variationName") + variations[variationNode.id] = VariationReference( + value = "$camelComponentName.$parentPath.$variationName", + ) } } @@ -647,6 +737,22 @@ internal abstract class ComposeVariationGenerator( ) } + private fun String.asViewProp(): VariationProp = VariationProp( + name = viewPropName, + value = techToSnakeCase(), + ) + + private fun List?.toVariationProps(): List = this.orEmpty().map { binding -> + VariationProp( + name = binding.name, + value = binding.value, + ) + } + + private fun Config.findViewBinding(): Bindings? { + return bindings.firstOrNull { binding -> binding.type == BindingType.VIEW } + } + private val Color.asInteractiveFragment: String get() = if (states.isNullOrEmpty()) { "asInteractive()" diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/bottomsheet/BottomSheetConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/bottomsheet/BottomSheetConfig.kt index 1a3c7176c1..e8ef41fde9 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/bottomsheet/BottomSheetConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/bottomsheet/BottomSheetConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.bottomsheet import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -59,15 +61,17 @@ internal data class BottomSheetProperties( @Serializable internal data class BottomSheetView( override val props: BottomSheetProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as BottomSheetProperties) + copy(props = props.merge(parent.props) as BottomSheetProperties, binding = binding ?: parent.binding) } @Serializable internal data class BottomSheetVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: BottomSheetProperties, ) : ChildVariation @@ -77,4 +81,5 @@ internal data class BottomSheetConfig( override val view: Map = emptyMap(), override val props: BottomSheetProperties = BottomSheetProperties(), override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/button/ButtonConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/button/ButtonConfig.kt index 76ee8a2e7e..c618ca8ef6 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/button/ButtonConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/button/ButtonConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.button import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -68,15 +70,17 @@ internal data class ButtonProperties( @Serializable internal data class ButtonView( override val props: ButtonProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as ButtonProperties) + copy(props = props.merge(parent.props) as ButtonProperties, binding = binding ?: parent.binding) } @Serializable internal data class ButtonVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: ButtonProperties, ) : ChildVariation @@ -86,4 +90,5 @@ internal data class ButtonConfig( override val view: Map = emptyMap(), override val props: ButtonProperties = ButtonProperties(), override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/buttongroup/ButtonGroupConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/buttongroup/ButtonGroupConfig.kt index a975619ad8..d5cb5b7647 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/buttongroup/ButtonGroupConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/buttongroup/ButtonGroupConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.buttongroup import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -31,16 +33,20 @@ internal data class ButtonGroupProperties( } @Serializable -internal data class ButtonGroupView(override val props: ButtonGroupProperties) : +internal data class ButtonGroupView( + override val props: ButtonGroupProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as ButtonGroupProperties) + copy(props = props.merge(parent.props) as ButtonGroupProperties, binding = binding ?: parent.binding) } @Serializable internal data class ButtonGroupVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: ButtonGroupProperties, ) : ChildVariation @@ -50,4 +56,5 @@ internal data class ButtonGroupConfig( override val view: Map = emptyMap(), override val props: ButtonGroupProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/card/CardConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/card/CardConfig.kt index 9c5597093b..cef167243e 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/card/CardConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/card/CardConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.card import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -77,15 +79,17 @@ internal data class CardProperties( @Serializable internal data class CardView( override val props: CardProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as CardProperties) + copy(props = props.merge(parent.props) as CardProperties, binding = binding ?: parent.binding) } @Serializable internal data class CardVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: CardProperties, ) : ChildVariation @@ -95,4 +99,5 @@ internal data class CardConfig( override val view: Map = emptyMap(), override val props: CardProperties = CardProperties(), override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/carousel/CarouselConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/carousel/CarouselConfig.kt index 98a6d1dc4f..e6d0ae2a89 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/carousel/CarouselConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/carousel/CarouselConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.carousel import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -47,15 +49,17 @@ internal data class CarouselProperties( @Serializable internal data class CarouselView( override val props: CarouselProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as CarouselProperties) + copy(props = props.merge(parent.props) as CarouselProperties, binding = binding ?: parent.binding) } @Serializable internal data class CarouselVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: CarouselProperties, ) : ChildVariation @@ -65,4 +69,5 @@ internal data class CarouselConfig( override val view: Map = emptyMap(), override val props: CarouselProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/cell/CellConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/cell/CellConfig.kt index 6dd3ca2084..1bc87eb2fe 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/cell/CellConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/cell/CellConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.cell import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -59,16 +61,20 @@ internal data class CellProperties( } @Serializable -internal data class CellView(override val props: CellProperties) : +internal data class CellView( + override val props: CellProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as CellProperties) + copy(props = props.merge(parent.props) as CellProperties, binding = binding ?: parent.binding) } @Serializable internal data class CellVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: CellProperties, ) : ChildVariation @@ -78,4 +84,5 @@ internal data class CellConfig( override val view: Map = emptyMap(), override val props: CellProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/cell/CellConfigDelegate.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/cell/CellConfigDelegate.kt index 497d42dafa..6342c12738 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/cell/CellConfigDelegate.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/cell/CellConfigDelegate.kt @@ -47,6 +47,7 @@ internal class CellConfigDelegate : ComponentConfigDelegate() { ktFileBuilderFactory = deps.ktFileBuilderFactory, componentPackage = "${deps.packageResolver.getPackage(TargetPackage.STYLES)}.${component.packageName}", componentName = component.styleName.techToSnakeCase(), + styleBuilderName = "${component.componentName.techToCamelCase()}StyleBuilder", outputLocation = KtFileBuilder.OutputLocation.Directory(deps.outputDir), avatarStylesPackage = "${deps.packageResolver.getPackage(TargetPackage.STYLES)}.avatar", iconButtonStylesPackage = "${deps.packageResolver.getPackage(TargetPackage.STYLES)}.iconbutton", diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/cell/compose/CellComposeVariationGenerator.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/cell/compose/CellComposeVariationGenerator.kt index dbb17dbbc1..c5b677e9b5 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/cell/compose/CellComposeVariationGenerator.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/cell/compose/CellComposeVariationGenerator.kt @@ -24,6 +24,7 @@ internal class CellComposeVariationGenerator( componentPackage: String, outputLocation: KtFileBuilder.OutputLocation, componentName: String, + styleBuilderName: String, ) : ComposeVariationGenerator( themeClassName = themeClassName, themePackage = themePackage, @@ -35,7 +36,11 @@ internal class CellComposeVariationGenerator( componentPackage = componentPackage, outputLocation = outputLocation, componentName = componentName, + styleBuilderName = styleBuilderName, ) { + + override val componentStyleName: String = "CellStyle" + override fun propsToBuilderCalls( props: CellProperties, ktFileBuilder: KtFileBuilder, diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/checkbox/CheckBoxConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/checkbox/CheckBoxConfig.kt index 894f9d7e44..ea131795a3 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/checkbox/CheckBoxConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/checkbox/CheckBoxConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.checkbox import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -73,16 +75,20 @@ internal data class CheckBoxProperties( } @Serializable -internal data class CheckBoxView(override val props: CheckBoxProperties) : +internal data class CheckBoxView( + override val props: CheckBoxProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as CheckBoxProperties) + copy(props = props.merge(parent.props) as CheckBoxProperties, binding = binding ?: parent.binding) } @Serializable internal data class CheckBoxVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: CheckBoxProperties, ) : ChildVariation @@ -92,4 +98,5 @@ internal data class CheckBoxConfig( override val view: Map = emptyMap(), override val props: CheckBoxProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/checkbox/group/CheckBoxGroupConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/checkbox/group/CheckBoxGroupConfig.kt index ef8b0709f6..9f74ae1ea8 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/checkbox/group/CheckBoxGroupConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/checkbox/group/CheckBoxGroupConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.checkbox.group import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -38,6 +40,7 @@ internal data class CheckBoxGroupView(override val props: CheckBoxGroupPropertie internal data class CheckBoxGroupVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: CheckBoxGroupProperties, ) : ChildVariation @@ -47,4 +50,5 @@ internal data class CheckBoxGroupConfig( override val view: Map = emptyMap(), override val props: CheckBoxGroupProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/chip/ChipConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/chip/ChipConfig.kt index c34b258e1e..788db66bbe 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/chip/ChipConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/chip/ChipConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.chip import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -53,16 +55,20 @@ internal data class ChipProperties( } @Serializable -internal data class ChipView(override val props: ChipProperties) : +internal data class ChipView( + override val props: ChipProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as ChipProperties) + copy(props = props.merge(parent.props) as ChipProperties, binding = binding ?: parent.binding) } @Serializable internal data class ChipVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: ChipProperties, ) : ChildVariation @@ -72,4 +78,5 @@ internal data class ChipConfig( override val view: Map = emptyMap(), override val props: ChipProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/chip/group/ChipGroupConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/chip/group/ChipGroupConfig.kt index 24b2b03125..39e7eeb00d 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/chip/group/ChipGroupConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/chip/group/ChipGroupConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.chip.group import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -42,6 +44,7 @@ internal data class ChipGroupView(override val props: ChipGroupProperties) : internal data class ChipGroupVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: ChipGroupProperties = ChipGroupProperties(), ) : ChildVariation @@ -51,4 +54,5 @@ internal data class ChipGroupConfig( override val view: Map = emptyMap(), override val props: ChipGroupProperties = ChipGroupProperties(), override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/circularprogress/CircularProgressConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/circularprogress/CircularProgressConfig.kt index a419d8c5b9..27cac546b2 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/circularprogress/CircularProgressConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/circularprogress/CircularProgressConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.circularprogress import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.BooleanValue import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color @@ -53,15 +55,17 @@ internal data class CircularProgressProperties( @Serializable internal data class CircularProgressView( override val props: CircularProgressProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as CircularProgressProperties) + copy(props = props.merge(parent.props) as CircularProgressProperties, binding = binding ?: parent.binding) } @Serializable internal data class CircularProgressVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: CircularProgressProperties, ) : ChildVariation @@ -71,4 +75,5 @@ internal data class CircularProgressConfig( override val view: Map = emptyMap(), override val props: CircularProgressProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/codefield/CodeFieldConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/codefield/CodeFieldConfig.kt index 681f8f8986..f9c9b5da15 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/codefield/CodeFieldConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/codefield/CodeFieldConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.codefield import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -56,15 +58,17 @@ internal data class CodeFieldProperties( @Serializable internal data class CodeFieldView( override val props: CodeFieldProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as CodeFieldProperties) + copy(props = props.merge(parent.props) as CodeFieldProperties, binding = binding ?: parent.binding) } @Serializable internal data class CodeFieldVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: CodeFieldProperties, ) : ChildVariation @@ -74,4 +78,5 @@ internal data class CodeFieldConfig( override val view: Map = emptyMap(), override val props: CodeFieldProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/codeinput/CodeInputConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/codeinput/CodeInputConfig.kt index 92a77ca53e..10cb4718e2 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/codeinput/CodeInputConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/codeinput/CodeInputConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.codeinput import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -51,15 +53,17 @@ internal data class CodeInputProperties( @Serializable internal data class CodeInputView( override val props: CodeInputProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as CodeInputProperties) + copy(props = props.merge(parent.props) as CodeInputProperties, binding = binding ?: parent.binding) } @Serializable internal data class CodeInputVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: CodeInputProperties, ) : ChildVariation @@ -69,4 +73,5 @@ internal data class CodeInputConfig( override val view: Map = emptyMap(), override val props: CodeInputProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/collapsingnavigationbar/CollapsingNavigationBarConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/collapsingnavigationbar/CollapsingNavigationBarConfig.kt index 07d260a874..bcc2cf2d30 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/collapsingnavigationbar/CollapsingNavigationBarConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/collapsingnavigationbar/CollapsingNavigationBarConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.collapsingnavigationbar import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -69,18 +71,25 @@ internal data class CollapsingNavigationBarProperties( } @Serializable -internal data class CollapsingNavigationBarView(override val props: CollapsingNavigationBarProperties) : +internal data class CollapsingNavigationBarView( + override val props: CollapsingNavigationBarProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge( parent: ViewVariation, ): ViewVariation = - copy(props = props.merge(parent.props) as CollapsingNavigationBarProperties) + copy( + props = props.merge(parent.props) as CollapsingNavigationBarProperties, + binding = binding ?: parent.binding, + ) } @Serializable internal data class CollapsingNavigationBarVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: CollapsingNavigationBarProperties, ) : ChildVariation @@ -90,4 +99,5 @@ internal data class CollapsingNavigationBarConfig( override val view: Map = emptyMap(), override val props: CollapsingNavigationBarProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/counter/CounterConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/counter/CounterConfig.kt index b0cbcc4ac8..e5b7ff23b1 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/counter/CounterConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/counter/CounterConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.counter import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -47,15 +49,17 @@ internal data class CounterProperties( @Serializable internal data class CounterView( override val props: CounterProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as CounterProperties) + copy(props = props.merge(parent.props) as CounterProperties, binding = binding ?: parent.binding) } @Serializable internal data class CounterVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: CounterProperties, ) : ChildVariation @@ -65,4 +69,5 @@ internal data class CounterConfig( override val view: Map = emptyMap(), override val props: CounterProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/divider/DividerConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/divider/DividerConfig.kt index fcb7afacec..c5d3260fe8 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/divider/DividerConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/divider/DividerConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.divider import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -30,15 +32,17 @@ internal data class DividerProperties( @Serializable internal data class DividerView( override val props: DividerProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as DividerProperties) + copy(props = props.merge(parent.props) as DividerProperties, binding = binding ?: parent.binding) } @Serializable internal data class DividerVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: DividerProperties, ) : ChildVariation @@ -48,4 +52,5 @@ internal data class DividerConfig( override val view: Map = emptyMap(), override val props: DividerProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/drawer/DrawerConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/drawer/DrawerConfig.kt index e7ace2eef7..6eedc8df1e 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/drawer/DrawerConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/drawer/DrawerConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.drawer import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -60,16 +62,20 @@ internal data class DrawerProperties( } @Serializable -internal data class DrawerView(override val props: DrawerProperties) : +internal data class DrawerView( + override val props: DrawerProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as DrawerProperties) + copy(props = props.merge(parent.props) as DrawerProperties, binding = binding ?: parent.binding) } @Serializable internal data class DrawerVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: DrawerProperties, ) : ChildVariation @@ -79,4 +85,5 @@ internal data class DrawerConfig( override val view: Map = emptyMap(), override val props: DrawerProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/dropdownmenu/DropdownMenuConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/dropdownmenu/DropdownMenuConfig.kt index 3b6a0e2a9b..198f44fbd4 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/dropdownmenu/DropdownMenuConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/dropdownmenu/DropdownMenuConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.dropdownmenu import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -63,16 +65,20 @@ internal data class DropdownMenuProperties( } @Serializable -internal data class DropdownMenuView(override val props: DropdownMenuProperties) : +internal data class DropdownMenuView( + override val props: DropdownMenuProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as DropdownMenuProperties) + copy(props = props.merge(parent.props) as DropdownMenuProperties, binding = binding ?: parent.binding) } @Serializable internal data class DropdownMenuVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: DropdownMenuProperties, ) : ChildVariation @@ -82,4 +88,5 @@ internal data class DropdownMenuConfig( override val view: Map = emptyMap(), override val props: DropdownMenuProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/editable/EditableConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/editable/EditableConfig.kt index 6bf90f2c9e..68881c0a91 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/editable/EditableConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/editable/EditableConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.editable import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -37,16 +39,20 @@ internal data class EditableProperties( } @Serializable -internal data class EditableView(override val props: EditableProperties) : +internal data class EditableView( + override val props: EditableProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as EditableProperties) + copy(props = props.merge(parent.props) as EditableProperties, binding = binding ?: parent.binding) } @Serializable internal data class EditableVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: EditableProperties, ) : ChildVariation @@ -56,4 +62,5 @@ internal data class EditableConfig( override val view: Map = emptyMap(), override val props: EditableProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/emptystate/EmptyStateConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/emptystate/EmptyStateConfig.kt index 122d0438fd..bb19a59ead 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/emptystate/EmptyStateConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/emptystate/EmptyStateConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.emptystate import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -42,16 +44,20 @@ internal data class EmptyStateProperties( } @Serializable -internal data class EmptyStateView(override val props: EmptyStateProperties) : +internal data class EmptyStateView( + override val props: EmptyStateProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as EmptyStateProperties) + copy(props = props.merge(parent.props) as EmptyStateProperties, binding = binding ?: parent.binding) } @Serializable internal data class EmptyStateVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: EmptyStateProperties, ) : ChildVariation @@ -61,4 +67,5 @@ internal data class EmptyStateConfig( override val view: Map = emptyMap(), override val props: EmptyStateProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/file/FileConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/file/FileConfig.kt index 6a08a82b63..3f1fe0378f 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/file/FileConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/file/FileConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.file import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -56,18 +58,22 @@ internal data class FileProperties( } @Serializable -internal data class FileView(override val props: FileProperties) : +internal data class FileView( + override val props: FileProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge( parent: ViewVariation, ): ViewVariation = - copy(props = props.merge(parent.props) as FileProperties) + copy(props = props.merge(parent.props) as FileProperties, binding = binding ?: parent.binding) } @Serializable internal data class FileVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: FileProperties, ) : ChildVariation @@ -77,4 +83,5 @@ internal data class FileConfig( override val view: Map = emptyMap(), override val props: FileProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/form/FormItemConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/form/FormItemConfig.kt index cc646e7321..3c3bc9c42c 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/form/FormItemConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/form/FormItemConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.form import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -95,16 +97,20 @@ internal data class FormItemProperties( } @Serializable -internal data class FormItemView(override val props: FormItemProperties) : +internal data class FormItemView( + override val props: FormItemProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as FormItemProperties) + copy(props = props.merge(parent.props) as FormItemProperties, binding = binding ?: parent.binding) } @Serializable internal data class FormItemVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: FormItemProperties, ) : ChildVariation @@ -114,4 +120,5 @@ internal data class FormItemConfig( override val view: Map = emptyMap(), override val props: FormItemProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/image/ImageConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/image/ImageConfig.kt index 5ddeff0afd..240894deb4 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/image/ImageConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/image/ImageConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.image import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Config import com.sdds.plugin.themebuilder.internal.components.base.FloatValue @@ -24,16 +26,20 @@ internal data class ImageProperties( } @Serializable -internal data class ImageView(override val props: ImageProperties) : +internal data class ImageView( + override val props: ImageProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as ImageProperties) + copy(props = props.merge(parent.props) as ImageProperties, binding = binding ?: parent.binding) } @Serializable internal data class ImageVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: ImageProperties, ) : ChildVariation @@ -43,4 +49,5 @@ internal data class ImageConfig( override val view: Map = emptyMap(), override val props: ImageProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/indicator/IndicatorConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/indicator/IndicatorConfig.kt index 0bd8913615..306f7f79b0 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/indicator/IndicatorConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/indicator/IndicatorConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.indicator import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -32,15 +34,17 @@ internal data class IndicatorProperties( @Serializable internal data class IndicatorView( override val props: IndicatorProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as IndicatorProperties) + copy(props = props.merge(parent.props) as IndicatorProperties, binding = binding ?: parent.binding) } @Serializable internal data class IndicatorVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: IndicatorProperties, ) : ChildVariation @@ -50,4 +54,5 @@ internal data class IndicatorConfig( override val view: Map = emptyMap(), override val props: IndicatorProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/list/ListConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/list/ListConfig.kt index 61d62e9c9e..f87d6b29ee 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/list/ListConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/list/ListConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.list import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -43,15 +45,19 @@ internal data class ListProperties( } @Serializable -internal data class ListView(override val props: ListProperties) : ViewVariation { +internal data class ListView( + override val props: ListProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as ListProperties) + copy(props = props.merge(parent.props) as ListProperties, binding = binding ?: parent.binding) } @Serializable internal data class ListVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: ListProperties, ) : ChildVariation @@ -61,4 +67,5 @@ internal data class ListConfig( override val view: Map = emptyMap(), override val props: ListProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/list/item/ListItemConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/list/item/ListItemConfig.kt index d591e94742..5f4e8bc8fc 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/list/item/ListItemConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/list/item/ListItemConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.list.item import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -72,6 +74,7 @@ internal data class ListItemView(override val props: ListItemProperties) : internal data class ListItemVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: ListItemProperties, ) : ChildVariation @@ -81,4 +84,5 @@ internal data class ListItemConfig( override val view: Map = emptyMap(), override val props: ListItemProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/loader/LoaderConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/loader/LoaderConfig.kt index 69be210a5c..a3c3e1d013 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/loader/LoaderConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/loader/LoaderConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.loader import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -26,15 +28,19 @@ internal data class LoaderProperties( } @Serializable -internal data class LoaderView(override val props: LoaderProperties) : ViewVariation { +internal data class LoaderView( + override val props: LoaderProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as LoaderProperties) + copy(props = props.merge(parent.props) as LoaderProperties, binding = binding ?: parent.binding) } @Serializable internal data class LoaderVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: LoaderProperties, ) : ChildVariation @@ -44,4 +50,5 @@ internal data class LoaderConfig( override val view: Map = emptyMap(), override val props: LoaderProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/modal/ModalConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/modal/ModalConfig.kt index aa3fba1bcd..aa0fa753d8 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/modal/ModalConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/modal/ModalConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.modal import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -46,16 +48,20 @@ internal data class ModalProperties( } @Serializable -internal data class ModalView(override val props: ModalProperties) : +internal data class ModalView( + override val props: ModalProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as ModalProperties) + copy(props = props.merge(parent.props) as ModalProperties, binding = binding ?: parent.binding) } @Serializable internal data class ModalVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: ModalProperties, ) : ChildVariation @@ -65,4 +71,5 @@ internal data class ModalConfig( override val view: Map = emptyMap(), override val props: ModalProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/navigationbar/NavigationBarConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/navigationbar/NavigationBarConfig.kt index b0f458f5fc..fa6f7982d7 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/navigationbar/NavigationBarConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/navigationbar/NavigationBarConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.navigationbar import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -71,16 +73,20 @@ internal data class NavigationBarProperties( } @Serializable -internal data class NavigationBarView(override val props: NavigationBarProperties) : +internal data class NavigationBarView( + override val props: NavigationBarProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as NavigationBarProperties) + copy(props = props.merge(parent.props) as NavigationBarProperties, binding = binding ?: parent.binding) } @Serializable internal data class NavigationBarVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: NavigationBarProperties, ) : ChildVariation @@ -90,4 +96,5 @@ internal data class NavigationBarConfig( override val view: Map = emptyMap(), override val props: NavigationBarProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/note/NoteConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/note/NoteConfig.kt index de428ed134..49efa54ed2 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/note/NoteConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/note/NoteConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.note import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -91,16 +93,20 @@ internal data class NoteProperties( } @Serializable -internal data class NoteView(override val props: NoteProperties) : +internal data class NoteView( + override val props: NoteProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as NoteProperties) + copy(props = props.merge(parent.props) as NoteProperties, binding = binding ?: parent.binding) } @Serializable internal data class NoteVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: NoteProperties, ) : ChildVariation @@ -110,4 +116,5 @@ internal data class NoteConfig( override val view: Map = emptyMap(), override val props: NoteProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/notification/NotificationConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/notification/NotificationConfig.kt index dd52fa563c..c430936bb9 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/notification/NotificationConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/notification/NotificationConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.notification import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -49,16 +51,20 @@ internal data class NotificationProperties( } @Serializable -internal data class NotificationView(override val props: NotificationProperties) : +internal data class NotificationView( + override val props: NotificationProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as NotificationProperties) + copy(props = props.merge(parent.props) as NotificationProperties, binding = binding ?: parent.binding) } @Serializable internal data class NotificationVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: NotificationProperties, ) : ChildVariation @@ -68,4 +74,5 @@ internal data class NotificationConfig( override val view: Map = emptyMap(), override val props: NotificationProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/notificationcontent/NotificationContentConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/notificationcontent/NotificationContentConfig.kt index c9b92a98f0..ca7eb2dda3 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/notificationcontent/NotificationContentConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/notificationcontent/NotificationContentConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.notificationcontent import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -76,18 +78,22 @@ internal data class NotificationContentProperties( } @Serializable -internal data class NotificationContentView(override val props: NotificationContentProperties) : +internal data class NotificationContentView( + override val props: NotificationContentProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge( parent: ViewVariation, ): ViewVariation = - copy(props = props.merge(parent.props) as NotificationContentProperties) + copy(props = props.merge(parent.props) as NotificationContentProperties, binding = binding ?: parent.binding) } @Serializable internal data class NotificationContentVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: NotificationContentProperties, ) : ChildVariation @@ -97,4 +103,5 @@ internal data class NotificationContentConfig( override val view: Map = emptyMap(), override val props: NotificationContentProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/overlay/OverlayConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/overlay/OverlayConfig.kt index eaeb6a7b5a..6c25631583 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/overlay/OverlayConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/overlay/OverlayConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.overlay import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -27,15 +29,17 @@ internal data class OverlayProperties( @Serializable internal data class OverlayView( override val props: OverlayProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as OverlayProperties) + copy(props = props.merge(parent.props) as OverlayProperties, binding = binding ?: parent.binding) } @Serializable internal data class OverlayVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: OverlayProperties, ) : ChildVariation @@ -45,4 +49,5 @@ internal data class OverlayConfig( override val view: Map = emptyMap(), override val props: OverlayProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/paginationdots/PaginationDotsConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/paginationdots/PaginationDotsConfig.kt index 000c40492d..f099aed7e8 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/paginationdots/PaginationDotsConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/paginationdots/PaginationDotsConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.paginationdots import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -39,15 +41,17 @@ internal data class PaginationDotsProperties( @Serializable internal data class PaginationDotsView( override val props: PaginationDotsProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as PaginationDotsProperties) + copy(props = props.merge(parent.props) as PaginationDotsProperties, binding = binding ?: parent.binding) } @Serializable internal data class PaginationDotsVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: PaginationDotsProperties, ) : ChildVariation @@ -57,4 +61,5 @@ internal data class PaginationDotsConfig( override val view: Map = emptyMap(), override val props: PaginationDotsProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/popover/PopoverConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/popover/PopoverConfig.kt index 36d535d72a..e77066704d 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/popover/PopoverConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/popover/PopoverConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.popover import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -39,16 +41,20 @@ internal data class PopoverProperties( } @Serializable -internal data class PopoverView(override val props: PopoverProperties) : +internal data class PopoverView( + override val props: PopoverProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as PopoverProperties) + copy(props = props.merge(parent.props) as PopoverProperties, binding = binding ?: parent.binding) } @Serializable internal data class PopoverVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: PopoverProperties, ) : ChildVariation @@ -58,4 +64,5 @@ internal data class PopoverConfig( override val view: Map = emptyMap(), override val props: PopoverProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/progress/ProgressBarConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/progress/ProgressBarConfig.kt index 3414706263..2696ce95b3 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/progress/ProgressBarConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/progress/ProgressBarConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.progress import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -34,16 +36,20 @@ internal data class ProgressBarProperties( } @Serializable -internal data class ProgressBarView(override val props: ProgressBarProperties) : +internal data class ProgressBarView( + override val props: ProgressBarProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as ProgressBarProperties) + copy(props = props.merge(parent.props) as ProgressBarProperties, binding = binding ?: parent.binding) } @Serializable internal data class ProgressBarVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: ProgressBarProperties, ) : ChildVariation @@ -53,4 +59,5 @@ internal data class ProgressBarConfig( override val view: Map = emptyMap(), override val props: ProgressBarProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/radiobox/RadioBoxConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/radiobox/RadioBoxConfig.kt index 7da4ceb912..478190d5fa 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/radiobox/RadioBoxConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/radiobox/RadioBoxConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.radiobox import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -73,16 +75,20 @@ internal data class RadioBoxProperties( } @Serializable -internal data class RadioBoxView(override val props: RadioBoxProperties) : +internal data class RadioBoxView( + override val props: RadioBoxProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as RadioBoxProperties) + copy(props = props.merge(parent.props) as RadioBoxProperties, binding = binding ?: parent.binding) } @Serializable internal data class RadioBoxVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: RadioBoxProperties, ) : ChildVariation @@ -92,4 +98,5 @@ internal data class RadioBoxConfig( override val view: Map = emptyMap(), override val props: RadioBoxProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/radiobox/group/RadioBoxGroupConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/radiobox/group/RadioBoxGroupConfig.kt index d830035272..b0bc919a46 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/radiobox/group/RadioBoxGroupConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/radiobox/group/RadioBoxGroupConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.radiobox.group import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -36,6 +38,7 @@ internal data class RadioBoxGroupView(override val props: RadioBoxGroupPropertie internal data class RadioBoxGroupVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: RadioBoxGroupProperties, ) : ChildVariation @@ -45,4 +48,5 @@ internal data class RadioBoxGroupConfig( override val view: Map = emptyMap(), override val props: RadioBoxGroupProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/rectskeleton/RectSkeletonConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/rectskeleton/RectSkeletonConfig.kt index 6f90aade48..fdc3cc9e19 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/rectskeleton/RectSkeletonConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/rectskeleton/RectSkeletonConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.rectskeleton import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -28,16 +30,20 @@ internal data class RectSkeletonProperties( } @Serializable -internal data class RectSkeletonView(override val props: RectSkeletonProperties) : +internal data class RectSkeletonView( + override val props: RectSkeletonProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as RectSkeletonProperties) + copy(props = props.merge(parent.props) as RectSkeletonProperties, binding = binding ?: parent.binding) } @Serializable internal data class RectSkeletonVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: RectSkeletonProperties, ) : ChildVariation @@ -47,4 +53,5 @@ internal data class RectSkeletonConfig( override val view: Map = emptyMap(), override val props: RectSkeletonProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/scrollbar/ScrollBarConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/scrollbar/ScrollBarConfig.kt index 574642a5e5..6e5f7211af 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/scrollbar/ScrollBarConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/scrollbar/ScrollBarConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.scrollbar import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -36,15 +38,17 @@ internal data class ScrollBarProperties( @Serializable internal data class ScrollBarView( override val props: ScrollBarProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as ScrollBarProperties) + copy(props = props.merge(parent.props) as ScrollBarProperties, binding = binding ?: parent.binding) } @Serializable internal data class ScrollBarVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: ScrollBarProperties, ) : ChildVariation @@ -54,4 +58,5 @@ internal data class ScrollBarConfig( override val view: Map = emptyMap(), override val props: ScrollBarProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/segment/SegmentConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/segment/SegmentConfig.kt index c2d9f67182..8bb4386a20 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/segment/SegmentConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/segment/SegmentConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.segment import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -47,15 +49,17 @@ internal data class SegmentProperties( @Serializable internal data class SegmentView( override val props: SegmentProperties = SegmentProperties(), + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as SegmentProperties) + copy(props = props.merge(parent.props) as SegmentProperties, binding = binding ?: parent.binding) } @Serializable internal data class SegmentVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: SegmentProperties, ) : ChildVariation @@ -65,4 +69,5 @@ internal data class SegmentConfig( override val view: Map = emptyMap(), override val props: SegmentProperties = SegmentProperties(), override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/segment/item/SegmentItemConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/segment/item/SegmentItemConfig.kt index 43f086da4e..3d8240ec6f 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/segment/item/SegmentItemConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/segment/item/SegmentItemConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.segment.item import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -77,6 +79,7 @@ internal data class SegmentItemView( internal data class SegmentItemVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: SegmentItemProperties, ) : ChildVariation @@ -86,4 +89,5 @@ internal data class SegmentItemConfig( override val view: Map = emptyMap(), override val props: SegmentItemProperties = SegmentItemProperties(), override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/select/SelectConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/select/SelectConfig.kt index eee572c51d..fc52b9cd62 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/select/SelectConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/select/SelectConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.select import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -31,16 +33,20 @@ internal data class SelectProperties( } @Serializable -internal data class SelectView(override val props: SelectProperties) : +internal data class SelectView( + override val props: SelectProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as SelectProperties) + copy(props = props.merge(parent.props) as SelectProperties, binding = binding ?: parent.binding) } @Serializable internal data class SelectVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: SelectProperties, ) : ChildVariation @@ -50,4 +56,5 @@ internal data class SelectConfig( override val view: Map = emptyMap(), override val props: SelectProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/select/SelectItemConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/select/SelectItemConfig.kt index 0d9ab37eda..8e9e5798ef 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/select/SelectItemConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/select/SelectItemConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.select import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -59,16 +61,20 @@ internal data class SelectItemProperties( } @Serializable -internal data class SelectItemView(override val props: SelectItemProperties) : +internal data class SelectItemView( + override val props: SelectItemProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as SelectItemProperties) + copy(props = props.merge(parent.props) as SelectItemProperties, binding = binding ?: parent.binding) } @Serializable internal data class SelectItemVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: SelectItemProperties, ) : ChildVariation @@ -78,4 +84,5 @@ internal data class SelectItemConfig( override val view: Map = emptyMap(), override val props: SelectItemProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/slider/SliderConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/slider/SliderConfig.kt index 9c894dfc68..930185a376 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/slider/SliderConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/slider/SliderConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.slider import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -90,15 +92,17 @@ internal data class SliderProperties( @Serializable internal data class SliderView( override val props: SliderProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as SliderProperties) + copy(props = props.merge(parent.props) as SliderProperties, binding = binding ?: parent.binding) } @Serializable internal data class SliderVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: SliderProperties, ) : ChildVariation @@ -108,4 +112,5 @@ internal data class SliderConfig( override val view: Map = emptyMap(), override val props: SliderProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/spinner/SpinnerConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/spinner/SpinnerConfig.kt index 1abbb24ea9..3f03dbba6c 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/spinner/SpinnerConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/spinner/SpinnerConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.spinner import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -38,16 +40,20 @@ internal data class SpinnerProperties( } @Serializable -internal data class SpinnerView(override val props: SpinnerProperties) : +internal data class SpinnerView( + override val props: SpinnerProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as SpinnerProperties) + copy(props = props.merge(parent.props) as SpinnerProperties, binding = binding ?: parent.binding) } @Serializable internal data class SpinnerVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: SpinnerProperties, ) : ChildVariation @@ -57,4 +63,5 @@ internal data class SpinnerConfig( override val view: Map = emptyMap(), override val props: SpinnerProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/switcher/SwitchConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/switcher/SwitchConfig.kt index 550642cee6..b0c12976ab 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/switcher/SwitchConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/switcher/SwitchConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.switcher import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -79,15 +81,17 @@ internal data class SwitchProperties( @Serializable internal data class SwitchView( override val props: SwitchProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as SwitchProperties) + copy(props = props.merge(parent.props) as SwitchProperties, binding = binding ?: parent.binding) } @Serializable internal data class SwitchVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: SwitchProperties, ) : ChildVariation @@ -97,4 +101,5 @@ internal data class SwitchConfig( override val view: Map = emptyMap(), override val props: SwitchProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tabbar/TabBarConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tabbar/TabBarConfig.kt index c86048a961..85e2e00791 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tabbar/TabBarConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tabbar/TabBarConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.tabbar import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -64,15 +66,17 @@ internal data class TabBarProperties( @Serializable internal data class TabBarView( override val props: TabBarProperties = TabBarProperties(), + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as TabBarProperties) + copy(props = props.merge(parent.props) as TabBarProperties, binding = binding ?: parent.binding) } @Serializable internal data class TabBarVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: TabBarProperties = TabBarProperties(), ) : ChildVariation @@ -82,4 +86,5 @@ internal data class TabBarConfig( override val view: Map = emptyMap(), override val props: TabBarProperties = TabBarProperties(), override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tabbar/item/TabBarItemConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tabbar/item/TabBarItemConfig.kt index 22c3ea38b1..9e336cd1f8 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tabbar/item/TabBarItemConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tabbar/item/TabBarItemConfig.kt @@ -2,6 +2,8 @@ package com.sdds.plugin.themebuilder.internal.components.tabbar.item import com.sdds.plugin.themebuilder.internal.components.ComponentConfig import com.sdds.plugin.themebuilder.internal.components.badge.BadgeProperties +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -72,6 +74,7 @@ internal data class TabBarItemView( internal data class TabBarItemVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: TabBarItemProperties, ) : ChildVariation @@ -81,4 +84,5 @@ internal data class TabBarItemConfig( override val view: Map = emptyMap(), override val props: TabBarItemProperties = TabBarItemProperties(), override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tabs/TabsConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tabs/TabsConfig.kt index faf0b10c1c..131072b60e 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tabs/TabsConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tabs/TabsConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.tabs import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.BooleanValue import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color @@ -81,15 +83,17 @@ internal data class TabsProperties( @Serializable internal data class TabsView( override val props: TabsProperties = TabsProperties(), + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as TabsProperties) + copy(props = props.merge(parent.props) as TabsProperties, binding = binding ?: parent.binding) } @Serializable internal data class TabsVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: TabsProperties, ) : ChildVariation @@ -99,4 +103,5 @@ internal data class TabsConfig( override val view: Map = emptyMap(), override val props: TabsProperties = TabsProperties(), override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tabs/item/TabItemConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tabs/item/TabItemConfig.kt index 447810af4e..fad4e1df44 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tabs/item/TabItemConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tabs/item/TabItemConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.tabs.item import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -92,6 +94,7 @@ internal data class TabItemView( internal data class TabItemVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: TabItemProperties, ) : ChildVariation @@ -101,4 +104,5 @@ internal data class TabItemConfig( override val view: Map = emptyMap(), override val props: TabItemProperties = TabItemProperties(), override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/textfield/TextFieldConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/textfield/TextFieldConfig.kt index 87f2064107..791845a12b 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/textfield/TextFieldConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/textfield/TextFieldConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.textfield import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.BooleanValue import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color @@ -211,15 +213,19 @@ internal data class TextFieldProperties( } @Serializable -internal data class TextFieldView(override val props: TextFieldProperties) : ViewVariation { +internal data class TextFieldView( + override val props: TextFieldProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as TextFieldProperties) + copy(props = props.merge(parent.props) as TextFieldProperties, binding = binding ?: parent.binding) } @Serializable internal data class TextFieldVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: TextFieldProperties, ) : ChildVariation @@ -229,4 +235,5 @@ internal data class TextFieldConfig( override val view: Map = emptyMap(), override val props: TextFieldProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/textskeleton/TextSkeletonConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/textskeleton/TextSkeletonConfig.kt index 2adaadbf1c..1eb8930128 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/textskeleton/TextSkeletonConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/textskeleton/TextSkeletonConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.textskeleton import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -31,16 +33,20 @@ internal data class TextSkeletonProperties( } @Serializable -internal data class TextSkeletonView(override val props: TextSkeletonProperties) : +internal data class TextSkeletonView( + override val props: TextSkeletonProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as TextSkeletonProperties) + copy(props = props.merge(parent.props) as TextSkeletonProperties, binding = binding ?: parent.binding) } @Serializable internal data class TextSkeletonVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: TextSkeletonProperties, ) : ChildVariation @@ -50,4 +56,5 @@ internal data class TextSkeletonConfig( override val view: Map = emptyMap(), override val props: TextSkeletonProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/toast/ToastConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/toast/ToastConfig.kt index b405574056..a0f4d51679 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/toast/ToastConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/toast/ToastConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.toast import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -51,16 +53,20 @@ internal data class ToastProperties( } @Serializable -internal data class ToastView(override val props: ToastProperties) : +internal data class ToastView( + override val props: ToastProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as ToastProperties) + copy(props = props.merge(parent.props) as ToastProperties, binding = binding ?: parent.binding) } @Serializable internal data class ToastVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: ToastProperties, ) : ChildVariation @@ -70,4 +76,5 @@ internal data class ToastConfig( override val view: Map = emptyMap(), override val props: ToastProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/toolbar/ToolBarConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/toolbar/ToolBarConfig.kt index 38f7968e14..ef5032e502 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/toolbar/ToolBarConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/toolbar/ToolBarConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.toolbar import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.ComponentStyle @@ -47,16 +49,20 @@ internal data class ToolBarProperties( } @Serializable -internal data class ToolBarView(override val props: ToolBarProperties) : +internal data class ToolBarView( + override val props: ToolBarProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as ToolBarProperties) + copy(props = props.merge(parent.props) as ToolBarProperties, binding = binding ?: parent.binding) } @Serializable internal data class ToolBarVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: ToolBarProperties, ) : ChildVariation @@ -66,4 +72,5 @@ internal data class ToolBarConfig( override val view: Map = emptyMap(), override val props: ToolBarProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tooltip/TooltipConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tooltip/TooltipConfig.kt index defa3d55ea..4179b4d4ca 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tooltip/TooltipConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/tooltip/TooltipConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.tooltip import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color import com.sdds.plugin.themebuilder.internal.components.base.Config @@ -58,16 +60,20 @@ internal data class TooltipProperties( } @Serializable -internal data class TooltipView(override val props: TooltipProperties) : +internal data class TooltipView( + override val props: TooltipProperties, + override val binding: List? = null, +) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as TooltipProperties) + copy(props = props.merge(parent.props) as TooltipProperties, binding = binding ?: parent.binding) } @Serializable internal data class TooltipVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: TooltipProperties, ) : ChildVariation @@ -77,4 +83,5 @@ internal data class TooltipConfig( override val view: Map = emptyMap(), override val props: TooltipProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/wheel/WheelConfig.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/wheel/WheelConfig.kt index ed8960a825..21548c481f 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/wheel/WheelConfig.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/wheel/WheelConfig.kt @@ -1,6 +1,8 @@ package com.sdds.plugin.themebuilder.internal.components.wheel import com.sdds.plugin.themebuilder.internal.components.ComponentConfig +import com.sdds.plugin.themebuilder.internal.components.base.Binding +import com.sdds.plugin.themebuilder.internal.components.base.Bindings import com.sdds.plugin.themebuilder.internal.components.base.BooleanValue import com.sdds.plugin.themebuilder.internal.components.base.ChildVariation import com.sdds.plugin.themebuilder.internal.components.base.Color @@ -88,15 +90,17 @@ internal data class WheelProperties( @Serializable internal data class WheelView( override val props: WheelProperties, + override val binding: List? = null, ) : ViewVariation { override fun merge(parent: ViewVariation): ViewVariation = - copy(props = props.merge(parent.props) as WheelProperties) + copy(props = props.merge(parent.props) as WheelProperties, binding = binding ?: parent.binding) } @Serializable internal data class WheelVariation( override val id: String, override val parent: String? = null, + override val binding: List? = null, override val view: Map = emptyMap(), override val props: WheelProperties, ) : ChildVariation @@ -106,4 +110,5 @@ internal data class WheelConfig( override val view: Map = emptyMap(), override val props: WheelProperties, override val variations: List = emptyList(), + override val bindings: List = emptyList(), ) : Config, ComponentConfig From b71eea10c68e34a316beff744df10c0a7aa64f82 Mon Sep 17 00:00:00 2001 From: malilex Date: Tue, 21 Apr 2026 16:13:46 +0300 Subject: [PATCH 3/9] feat(sdds-acore/integration): Add support of binding style properties to sandbox-compose. --- .../tasks/integration/ComponentsGenerator.kt | 160 +++++++++++++++++- .../ComposeBindingBooleanPropertyKt.txt | 1 + .../ComposeBindingBooleanValueKt.txt | 1 + .../ComposeBindingDeclarationEmptyKt.txt | 1 + .../resources/ComposeBindingDeclarationKt.txt | 4 + .../resources/ComposeBindingEnumMappingKt.txt | 1 + .../resources/ComposeBindingEnumValueKt.txt | 4 + .../main/resources/ComposeBindingImportKt.txt | 1 + .../ComposeBindingResolveParamKt.txt | 1 + .../ComposeBindingResolveStyleKeyKt.txt | 5 + .../ComposeBindingSingleChoicePropertyKt.txt | 1 + .../resources/ComposeStyleProviderKt_V2.txt | 8 +- .../compose/sandbox/ComposeStyleProvider.kt | 40 +++++ .../sandbox/internal/ComponentViewModel.kt | 98 ++++++++--- .../base/compose/ComposeMetaClassGenerator.kt | 3 +- 15 files changed, 305 insertions(+), 24 deletions(-) create mode 100644 build-system/conventions/src/main/resources/ComposeBindingBooleanPropertyKt.txt create mode 100644 build-system/conventions/src/main/resources/ComposeBindingBooleanValueKt.txt create mode 100644 build-system/conventions/src/main/resources/ComposeBindingDeclarationEmptyKt.txt create mode 100644 build-system/conventions/src/main/resources/ComposeBindingDeclarationKt.txt create mode 100644 build-system/conventions/src/main/resources/ComposeBindingEnumMappingKt.txt create mode 100644 build-system/conventions/src/main/resources/ComposeBindingEnumValueKt.txt create mode 100644 build-system/conventions/src/main/resources/ComposeBindingImportKt.txt create mode 100644 build-system/conventions/src/main/resources/ComposeBindingResolveParamKt.txt create mode 100644 build-system/conventions/src/main/resources/ComposeBindingResolveStyleKeyKt.txt create mode 100644 build-system/conventions/src/main/resources/ComposeBindingSingleChoicePropertyKt.txt diff --git a/build-system/conventions/src/main/kotlin/tasks/integration/ComponentsGenerator.kt b/build-system/conventions/src/main/kotlin/tasks/integration/ComponentsGenerator.kt index 0d1e41b009..46eaa7cf6c 100644 --- a/build-system/conventions/src/main/kotlin/tasks/integration/ComponentsGenerator.kt +++ b/build-system/conventions/src/main/kotlin/tasks/integration/ComponentsGenerator.kt @@ -13,7 +13,8 @@ internal data class Component( val key: String, val coreName: String, val styleName: String, - val variations: List + val variations: List, + val styleApi: StyleApiInfo? = null, ) internal data class VariationInfo( @@ -22,6 +23,25 @@ internal data class VariationInfo( val viewOverlayReference: String = "", ) +internal data class StyleApiInfo( + val stylesClassName: String = "", + val receiverClassName: String = "", + val params: List = emptyList(), +) + +internal data class StyleApiParam( + val name: String, + val type: String = "", + val typeQualifiedName: String = "", + val defaultValue: StyleApiValue? = null, + val values: List = emptyList(), +) + +internal data class StyleApiValue( + val value: String = "", + val codeName: String = "", +) + internal abstract class ComponentGenerator { abstract fun generate() @@ -161,6 +181,10 @@ internal class ComposeComponentsGenerator( Scheme.V2 -> "ComposeComponentProviderKt_V2.txt" } + private fun expandResourceTemplate(path: String, values: Map): String { + return expand(loadTemplate(path).trim(), values) + } + override fun generate() { config.components.forEach { createStyleProvider( @@ -192,7 +216,7 @@ internal class ComposeComponentsGenerator( expand( styleInstanceTemplate, mapOf( - "variationName" to it.name.toPascalCase("."), + "variationName" to it.composeReference.toPascalCase("."), "variationReference" to it.composeReference ) ) @@ -217,6 +241,10 @@ internal class ComposeComponentsGenerator( ) } + val bindingImports = getBindingImports(component) + val bindingsDeclaration = getBindingsDeclaration(component) + val bindingStyleDeclaration = getBindingStyleDeclaration(component) + val providerContent = expand( styleProviderTemplate, mapOf( @@ -228,6 +256,9 @@ internal class ComposeComponentsGenerator( "themePackageName" to themePackageName, "variations" to styleContent, "variationImports" to variationImports, + "bindingImports" to bindingImports, + "bindingsDeclaration" to bindingsDeclaration, + "bindingStyleDeclaration" to bindingStyleDeclaration, "coreStyleClass" to getCoreStyleClass(component) ) ) @@ -260,6 +291,131 @@ internal class ComposeComponentsGenerator( } } + private fun getBindingImports(component: Component): String { + val styleApi = component.styleApi ?: return "" + if (styleApi.params.isEmpty()) return "" + return buildList { + add("${config.packageName}.styles.${getComponentStylePackageName(component)}.${styleApi.stylesClassName}") + add("${config.packageName}.styles.${getComponentStylePackageName(component)}.resolve") + addAll( + styleApi.params + .filter { it.type != "boolean" } + .mapNotNull { it.typeQualifiedName.takeIf(String::isNotBlank) }, + ) + }.distinct().joinToString("\n") { import -> + expandResourceTemplate( + "ComposeBindingImportKt.txt", + mapOf("import" to import), + ) + } + } + + private fun getBindingsDeclaration(component: Component): String { + val params = component.styleApi?.params.orEmpty() + if (params.isEmpty()) { + return "" + } + val properties = params.joinToString(",\n ") { param -> + when (param.type) { + "boolean" -> { + val defaultValue = param.defaultValue?.codeName ?: "false" + expandResourceTemplate( + "ComposeBindingBooleanPropertyKt.txt", + mapOf( + "name" to param.name, + "defaultValue" to defaultValue, + ), + ) + } + + else -> { + val defaultValue = param.defaultCodeName() + val variants = param.values.joinToString(", ") { "\"${it.codeName}\"" } + expandResourceTemplate( + "ComposeBindingSingleChoicePropertyKt.txt", + mapOf( + "name" to param.name, + "defaultValue" to defaultValue, + "variants" to variants, + ), + ) + } + } + } + return expandResourceTemplate( + "ComposeBindingDeclarationKt.txt", + mapOf("properties" to properties), + ) + } + + private fun getBindingStyleDeclaration(component: Component): String { + val styleApi = component.styleApi ?: return getDefaultBindingStyleDeclaration() + if (styleApi.params.isEmpty()) return getDefaultBindingStyleDeclaration() + val receiver = styleApi.receiverClassName.removeSuffix(".Companion").ifBlank { styleApi.stylesClassName } + val paramsBlock = styleApi.params.joinToString(",\n ") { param -> + expandResourceTemplate( + "ComposeBindingResolveParamKt.txt", + mapOf( + "name" to param.name, + "valueExpression" to getBindingValueExpression(param), + ), + ) + } + return expandResourceTemplate( + "ComposeBindingResolveStyleKeyKt.txt", + mapOf( + "receiver" to receiver, + "params" to paramsBlock, + ), + ) + } + + private fun getBindingValueExpression(param: StyleApiParam): String { + return when (param.type) { + "boolean" -> { + val defaultValue = param.defaultValue?.codeName ?: "false" + expandResourceTemplate( + "ComposeBindingBooleanValueKt.txt", + mapOf( + "name" to param.name, + "defaultValue" to defaultValue, + ), + ) + } + + else -> { + val enumClassName = param.typeQualifiedName.substringAfterLast('.') + val defaultExpression = "$enumClassName.${param.defaultCodeName()}" + val mappings = param.values.joinToString("\n ") { value -> + expandResourceTemplate( + "ComposeBindingEnumMappingKt.txt", + mapOf( + "codeName" to value.codeName, + "enumClassName" to enumClassName, + ), + ) + } + expandResourceTemplate( + "ComposeBindingEnumValueKt.txt", + mapOf( + "name" to param.name, + "mappings" to mappings, + "defaultExpression" to defaultExpression, + ), + ) + } + } + } + + private fun getDefaultBindingStyleDeclaration(): String { + return "" + } + + private fun StyleApiParam.defaultCodeName(): String { + return defaultValue?.codeName ?: values.firstOrNull()?.codeName + ?: error("Style API param `$name` has no defaultValue and no values") + } + private fun createRegisterTheme( themePackageName: String, ) { diff --git a/build-system/conventions/src/main/resources/ComposeBindingBooleanPropertyKt.txt b/build-system/conventions/src/main/resources/ComposeBindingBooleanPropertyKt.txt new file mode 100644 index 0000000000..bcfebc9d99 --- /dev/null +++ b/build-system/conventions/src/main/resources/ComposeBindingBooleanPropertyKt.txt @@ -0,0 +1 @@ +Property.BooleanProperty(name = "${{ name }}", value = ${{ defaultValue }}) diff --git a/build-system/conventions/src/main/resources/ComposeBindingBooleanValueKt.txt b/build-system/conventions/src/main/resources/ComposeBindingBooleanValueKt.txt new file mode 100644 index 0000000000..c9afe54634 --- /dev/null +++ b/build-system/conventions/src/main/resources/ComposeBindingBooleanValueKt.txt @@ -0,0 +1 @@ +booleanBindingValue(bindings, "${{ name }}", ${{ defaultValue }}) diff --git a/build-system/conventions/src/main/resources/ComposeBindingDeclarationEmptyKt.txt b/build-system/conventions/src/main/resources/ComposeBindingDeclarationEmptyKt.txt new file mode 100644 index 0000000000..a09ddb2f9c --- /dev/null +++ b/build-system/conventions/src/main/resources/ComposeBindingDeclarationEmptyKt.txt @@ -0,0 +1 @@ +override val bindings: Set> = emptySet() diff --git a/build-system/conventions/src/main/resources/ComposeBindingDeclarationKt.txt b/build-system/conventions/src/main/resources/ComposeBindingDeclarationKt.txt new file mode 100644 index 0000000000..0df727fd31 --- /dev/null +++ b/build-system/conventions/src/main/resources/ComposeBindingDeclarationKt.txt @@ -0,0 +1,4 @@ +override val bindings: Set> = + setOf( + ${{ properties }}, + ) diff --git a/build-system/conventions/src/main/resources/ComposeBindingEnumMappingKt.txt b/build-system/conventions/src/main/resources/ComposeBindingEnumMappingKt.txt new file mode 100644 index 0000000000..e5814b9958 --- /dev/null +++ b/build-system/conventions/src/main/resources/ComposeBindingEnumMappingKt.txt @@ -0,0 +1 @@ +"${{ codeName }}" -> ${{ enumClassName }}.${{ codeName }} diff --git a/build-system/conventions/src/main/resources/ComposeBindingEnumValueKt.txt b/build-system/conventions/src/main/resources/ComposeBindingEnumValueKt.txt new file mode 100644 index 0000000000..1a1e88e308 --- /dev/null +++ b/build-system/conventions/src/main/resources/ComposeBindingEnumValueKt.txt @@ -0,0 +1,4 @@ +when (bindings["${{ name }}"]?.toString()) { + ${{ mappings }} + else -> ${{ defaultExpression }} + } diff --git a/build-system/conventions/src/main/resources/ComposeBindingImportKt.txt b/build-system/conventions/src/main/resources/ComposeBindingImportKt.txt new file mode 100644 index 0000000000..fef771b93b --- /dev/null +++ b/build-system/conventions/src/main/resources/ComposeBindingImportKt.txt @@ -0,0 +1 @@ +import ${{ import }} diff --git a/build-system/conventions/src/main/resources/ComposeBindingResolveParamKt.txt b/build-system/conventions/src/main/resources/ComposeBindingResolveParamKt.txt new file mode 100644 index 0000000000..873ee33030 --- /dev/null +++ b/build-system/conventions/src/main/resources/ComposeBindingResolveParamKt.txt @@ -0,0 +1 @@ +${{ name }} = ${{ valueExpression }} diff --git a/build-system/conventions/src/main/resources/ComposeBindingResolveStyleKeyKt.txt b/build-system/conventions/src/main/resources/ComposeBindingResolveStyleKeyKt.txt new file mode 100644 index 0000000000..fa81eb2a1d --- /dev/null +++ b/build-system/conventions/src/main/resources/ComposeBindingResolveStyleKeyKt.txt @@ -0,0 +1,5 @@ +override fun resolveStyleKey(bindings: Map): String { + return ${{ receiver }}.resolve( + ${{ params }}, + ).key + } diff --git a/build-system/conventions/src/main/resources/ComposeBindingSingleChoicePropertyKt.txt b/build-system/conventions/src/main/resources/ComposeBindingSingleChoicePropertyKt.txt new file mode 100644 index 0000000000..99bcb801b3 --- /dev/null +++ b/build-system/conventions/src/main/resources/ComposeBindingSingleChoicePropertyKt.txt @@ -0,0 +1 @@ +Property.SingleChoiceProperty(name = "${{ name }}", value = "${{ defaultValue }}", variants = listOf(${{ variants }})) diff --git a/build-system/conventions/src/main/resources/ComposeStyleProviderKt_V2.txt b/build-system/conventions/src/main/resources/ComposeStyleProviderKt_V2.txt index 2167a8ad9a..d8b4f43614 100644 --- a/build-system/conventions/src/main/resources/ComposeStyleProviderKt_V2.txt +++ b/build-system/conventions/src/main/resources/ComposeStyleProviderKt_V2.txt @@ -8,17 +8,23 @@ package ${{ packageName }} import androidx.compose.runtime.Composable +import com.sdds.sandbox.Property import com.sdds.compose.uikit.${{ coreStyleClass }} import com.sdds.compose.uikit.style.style import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import ${{ themePackageName }}.styles.${{ componentPackage }}.${{ styleName }} +${{ bindingImports }} ${{ variationImports }} internal object ${{ themeName }}${{ styleName }}VariationsCompose : ComposeStyleProvider<${{ coreStyleClass }}>() { + ${{ bindingsDeclaration }} + override val variations: Map> = mapOf( ${{ variations }} ) -} \ No newline at end of file + + ${{ bindingStyleDeclaration }} +} diff --git a/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/ComposeStyleProvider.kt b/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/ComposeStyleProvider.kt index fec8fd5025..96fc601038 100644 --- a/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/ComposeStyleProvider.kt +++ b/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/ComposeStyleProvider.kt @@ -2,6 +2,7 @@ package com.sdds.compose.sandbox import androidx.compose.runtime.Composable import com.sdds.compose.uikit.style.Style +import com.sdds.sandbox.Property import com.sdds.sandbox.StyleProvider import com.sdds.sandbox.StyleReference @@ -46,6 +47,8 @@ class ComposeStyleReference( */ abstract class ComposeStyleProvider : StyleProvider>() { + open val bindings: Set> = emptySet() + /** * Получает экземпляр стиля по его ключу и немедленно создает его. * @@ -64,4 +67,41 @@ abstract class ComposeStyleProvider : StyleProvider): S { + val key = resolveStyleKey(bindings) + return style(key) + } + + /** + * Получает ключ стиля по значениям bindings. + * + * По умолчанию возвращает стиль вариации по умолчанию, чтобы сохранить + * обратную совместимость для провайдеров без metadata-based bindings. + * + * @param bindings карта выбранных значений bindings + * @return экземпляр стиля указанного типа + */ + open fun resolveStyleKey(bindings: Map): String { + return defaultVariant + } + + protected fun booleanBindingValue( + bindings: Map, + name: String, + defaultValue: Boolean, + ): Boolean { + return when (val value = bindings[name]) { + is Boolean -> value + is String -> value.toBooleanStrictOrNull() ?: defaultValue + else -> defaultValue + } + } } diff --git a/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/internal/ComponentViewModel.kt b/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/internal/ComponentViewModel.kt index 1d171ba602..8419ec956e 100644 --- a/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/internal/ComponentViewModel.kt +++ b/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/internal/ComponentViewModel.kt @@ -35,30 +35,30 @@ internal class ComponentViewModel( ) : ViewModel(), PropertiesOwner, StateOwner { private val internalUiState = MutableStateFlow(defaultState) + private val selectedBindings = MutableStateFlow>(emptyMap()) private val _subtheme = MutableStateFlow(null) - override val uiState: StateFlow - get() = internalUiState.asStateFlow() + override val uiState: StateFlow = internalUiState.asStateFlow() /** * Подтема */ - val theme: StateFlow - get() = themeManager.currentTheme - .mapNotNull { it as? ComposeTheme } - .stateIn(viewModelScope, SharingStarted.Lazily, ComposeTheme.Default) + val theme: StateFlow = themeManager.currentTheme + .mapNotNull { it as? ComposeTheme } + .stateIn(viewModelScope, SharingStarted.Lazily, ComposeTheme.Default) /** * Подтема */ - val subtheme: StateFlow - get() = _subtheme.asStateFlow() + val subtheme: StateFlow = _subtheme.asStateFlow() - override val properties: StateFlow>> - get() = combine(internalUiState, theme) { state, themeState -> + override val properties: StateFlow>> = + combine(internalUiState, theme, selectedBindings) { state, themeState, bindings -> if (themeState.components.components.isEmpty()) return@combine emptyList() updateUiStateWithDefaultVariant(state, themeState) - appearanceProperties(state, themeState) + variantProperty(state, themeState) + state.toProps() + appearanceProperties(state, themeState) + + styleProperties(state, themeState, bindings) + + state.toProps() } .stateIn(viewModelScope, SharingStarted.Lazily, emptyList()) @@ -73,7 +73,18 @@ internal class ComponentViewModel( _subtheme.value = type state } - else -> stateTransformer.transform(internalUiState.value, name, value ?: "") + else -> { + val styleProvider = getStyleProvider(state.appearance, theme.value) + if (styleProvider?.bindings?.any { it.name == name } == true) { + selectedBindings.value += (name to normalizeBindingValue(name, value, styleProvider)) + state.updateVariant( + state.appearance, + styleProvider.resolveStyleKey(selectedBindings.value), + ) as State + } else { + stateTransformer.transform(internalUiState.value, name, value ?: "") + } + } } } @@ -107,12 +118,18 @@ internal class ComponentViewModel( ) } - private fun variantProperty(state: State, themeState: ComposeTheme): List { + private fun styleProperties( + state: State, + themeState: ComposeTheme, + bindings: Map, + ): List> { val styleProvider = getStyleProvider(state.appearance, themeState) ?: return emptyList() val subthemes = getSubThemes(themeState) - val variantProperties = mutableListOf() - if (styleProvider.variants.isNotEmpty()) { - variantProperties.add( + val styleProperties = mutableListOf>() + if (styleProvider.bindings.isNotEmpty()) { + styleProperties.addAll(resolveBindingProperties(styleProvider, bindings)) + } else if (styleProvider.variants.isNotEmpty()) { + styleProperties.add( Property.SingleChoiceProperty( VARIANT_PROPERTY_NAME, variants = styleProvider.variants, @@ -121,7 +138,7 @@ internal class ComponentViewModel( ) } if (subthemes.isNotEmpty()) { - variantProperties.add( + styleProperties.add( Property.SingleChoiceProperty( SUBTHEME_PROPERTY_NAME, variants = subthemes.map { it.key }, @@ -129,7 +146,7 @@ internal class ComponentViewModel( ), ) } - return variantProperties + return styleProperties } private fun getStyleProvider(appearance: String, themeState: ComposeTheme): ComposeStyleProvider? { @@ -152,8 +169,51 @@ internal class ComponentViewModel( private fun State.toProps(): List> = propertiesProducer.getProperties(this) - final override fun resetToDefault() { + override fun resetToDefault() { internalUiState.value = defaultState + selectedBindings.value = emptyMap() + _subtheme.value = null + } + + private fun resolveBindingProperties( + styleProvider: ComposeStyleProvider, + bindings: Map, + ): List> { + return styleProvider.bindings.map { property -> + val value = bindings[property.name] ?: property.value + property.withValue(value) + } + } + + private fun normalizeBindingValue( + name: String, + value: Any?, + styleProvider: ComposeStyleProvider, + ): Any? { + val property = styleProvider.bindings.firstOrNull { it.name == name } ?: return value + return when (property) { + is Property.BooleanProperty -> when (value) { + is Boolean -> value + is String -> value.toBooleanStrictOrNull() ?: property.value + else -> property.value + } + is Property.SingleChoiceProperty -> value?.toString() ?: property.value + else -> value + } + } + + private fun Property<*>.withValue(value: Any?): Property<*> { + return when (this) { + is Property.BooleanProperty -> copy( + value = when (value) { + is Boolean -> value + is String -> value.toBooleanStrictOrNull() ?: this.value + else -> this.value + }, + ) + is Property.SingleChoiceProperty -> copy(value = value?.toString() ?: this.value) + else -> this + } } private companion object { diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeMetaClassGenerator.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeMetaClassGenerator.kt index db3c13b556..b5df8603db 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeMetaClassGenerator.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeMetaClassGenerator.kt @@ -269,7 +269,6 @@ internal class ComposeMetaClassGenerator( appendRootFun( name = "resolve", receiver = receiverType, - modifiers = listOf(KtFileBuilder.Modifier.PRIVATE), returnType = ClassName(componentPackage, enumClassName), body = listOf( "return $enumClassName.${fallbackStyle.reference.toStyleEnumName()}", @@ -300,8 +299,8 @@ internal class ComposeMetaClassGenerator( name = "resolve", receiver = receiverType, params = params, - modifiers = listOf(KtFileBuilder.Modifier.PRIVATE), returnType = ClassName(componentPackage, enumClassName), + description = "Возвращает экземпляр [$enumClassName] для ${appearance.appearance.name}", body = listOf( "return when {\n", *whenBranches.toTypedArray(), From b5a3f94f6f81c6813b272ec98c1a6a2ed3128998 Mon Sep 17 00:00:00 2001 From: malilex Date: Tue, 21 Apr 2026 16:21:51 +0300 Subject: [PATCH 4/9] feat(sdds-alibs/sdds-sbcom): Add binding properties to SddsSbCom. --- .../base/compose/ComposeMetaClassGenerator.kt | 1 + .../config-info-compose.json | 3460 ++++++++++++++++- tokens/sdds-sbcom-compose/gradle.properties | 2 +- .../SddsSbcomAvatarGroupVariationsCompose.kt | 20 +- ...dsSbcomAvatarIndicatorVariationsCompose.kt | 36 +- .../SddsSbcomAvatarVariationsCompose.kt | 48 +- ...sSbcomBasicButtonGroupVariationsCompose.kt | 3 +- .../SddsSbcomBasicButtonVariationsCompose.kt | 134 +- .../SddsSbcomCheckBoxVariationsCompose.kt | 3 +- .../SddsSbcomChipGroupVariationsCompose.kt | 23 +- .../SddsSbcomChipVariationsCompose.kt | 23 +- ...comCircularProgressBarVariationsCompose.kt | 119 +- ...igationBarInternalPageVariationsCompose.kt | 5 +- ...gNavigationBarMainPageVariationsCompose.kt | 3 +- .../SddsSbcomCounterVariationsCompose.kt | 23 +- .../SddsSbcomDividerVariationsCompose.kt | 3 +- ...sSbcomDropdownMenuItemVariationsCompose.kt | 3 +- ...sSbcomDropdownMenuListVariationsCompose.kt | 3 +- .../SddsSbcomDropdownMenuVariationsCompose.kt | 3 +- ...dsSbcomIconButtonGroupVariationsCompose.kt | 3 +- .../SddsSbcomIconButtonVariationsCompose.kt | 92 +- .../SddsSbcomIndicatorVariationsCompose.kt | 36 +- .../SddsSbcomListItemVariationsCompose.kt | 3 +- .../SddsSbcomListVariationsCompose.kt | 3 +- .../SddsSbcomLoaderVariationsCompose.kt | 79 +- .../SddsSbcomMentionVariationsCompose.kt | 23 +- ...sSbcomModalBottomSheetVariationsCompose.kt | 3 +- .../SddsSbcomModalVariationsCompose.kt | 3 +- .../SddsSbcomOverlayVariationsCompose.kt | 3 +- .../SddsSbcomPopoverVariationsCompose.kt | 3 +- .../SddsSbcomRadioBoxVariationsCompose.kt | 3 +- .../SddsSbcomRectSkeletonVariationsCompose.kt | 23 +- .../SddsSbcomScrollBarVariationsCompose.kt | 3 +- .../SddsSbcomSearchBarVariationsCompose.kt | 3 +- .../SddsSbcomSpinnerVariationsCompose.kt | 79 +- .../SddsSbcomSwitchVariationsCompose.kt | 3 +- ...SddsSbcomTabBarCounterVariationsCompose.kt | 3 +- .../SddsSbcomTabBarItemVariationsCompose.kt | 3 +- .../SddsSbcomTabBarVariationsCompose.kt | 3 +- ...omTabItemFolderCounterVariationsCompose.kt | 3 +- ...SddsSbcomTabItemFolderVariationsCompose.kt | 3 +- .../SddsSbcomTabsFolderVariationsCompose.kt | 3 +- .../SddsSbcomTextFieldVariationsCompose.kt | 3 +- .../SddsSbcomTooltipVariationsCompose.kt | 3 +- ...ddsSbcomVoiceChatBadgeVariationsCompose.kt | 33 +- .../styles/avatar/AvatarStylesCollection.kt | 51 +- .../AvatarGroupStylesCollection.kt | 39 +- .../BasicButtonStylesCollection.kt | 144 +- .../BottomSheetStylesCollection.kt | 26 +- .../ButtonGroupStylesCollection.kt | 48 +- .../checkbox/CheckBoxStylesCollection.kt | 22 +- .../sbcom/styles/chip/ChipStylesCollection.kt | 38 +- .../chipgroup/ChipGroupStylesCollection.kt | 40 +- .../CircularProgressBarStylesCollection.kt | 97 +- ...CollapsingNavigationBarStylesCollection.kt | 47 +- .../styles/counter/CounterStylesCollection.kt | 76 +- .../styles/divider/DividerStylesCollection.kt | 22 +- .../DropdownMenuStylesCollection.kt | 28 +- .../iconbadge/IconBadgeStylesCollection.kt | 78 +- .../iconbutton/IconButtonStylesCollection.kt | 107 +- .../indicator/IndicatorStylesCollection.kt | 88 +- .../sbcom/styles/list/ListStylesCollection.kt | 40 +- .../listitem/ListItemStylesCollection.kt | 42 +- .../styles/loader/LoaderStylesCollection.kt | 91 +- .../styles/modal/ModalStylesCollection.kt | 22 +- .../styles/overlay/OverlayStylesCollection.kt | 22 +- .../styles/popover/PopoverStylesCollection.kt | 22 +- .../radiobox/RadioBoxStylesCollection.kt | 22 +- .../RectSkeletonStylesCollection.kt | 41 +- .../scrollbar/ScrollBarStylesCollection.kt | 24 +- .../styles/spinner/SpinnerStylesCollection.kt | 91 +- .../styles/switcher/SwitchStylesCollection.kt | 22 +- .../styles/tabbar/TabBarStylesCollection.kt | 22 +- .../tabbaritem/TabBarItemStylesCollection.kt | 25 +- .../styles/tabitem/TabItemStylesCollection.kt | 22 +- .../sbcom/styles/tabs/TabsStylesCollection.kt | 22 +- .../textfield/TextFieldStylesCollection.kt | 41 +- .../styles/tooltip/TooltipStylesCollection.kt | 22 +- 78 files changed, 5415 insertions(+), 466 deletions(-) diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeMetaClassGenerator.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeMetaClassGenerator.kt index b5df8603db..7b8df2e52d 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeMetaClassGenerator.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeMetaClassGenerator.kt @@ -270,6 +270,7 @@ internal class ComposeMetaClassGenerator( name = "resolve", receiver = receiverType, returnType = ClassName(componentPackage, enumClassName), + description = "Возвращает экземпляр [$enumClassName] для ${appearance.appearance.name}", body = listOf( "return $enumClassName.${fallbackStyle.reference.toStyleEnumName()}", ), diff --git a/tokens/sdds-sbcom-compose/config-info-compose.json b/tokens/sdds-sbcom-compose/config-info-compose.json index 94a38da862..324e8a52e2 100644 --- a/tokens/sdds-sbcom-compose/config-info-compose.json +++ b/tokens/sdds-sbcom-compose/config-info-compose.json @@ -6,42 +6,175 @@ "key": "avatar", "coreName": "Avatar", "styleName": "Avatar", + "props": [ + { + "name": "size", + "values": [ + "size-72", + "size-64", + "size-56", + "size-44", + "size-40", + "size-36", + "size-32", + "size-26", + "size-24" + ], + "defaultValue": "size-72" + } + ], + "styleApi": { + "packageName": "com.sdds.sbcom.styles.avatar", + "stylesClassName": "AvatarStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.avatar.AvatarStyles", + "receiverClassName": "AvatarStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.avatar.AvatarStyles.Companion", + "returnTypeName": "AvatarStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.AvatarStyle", + "modifyReceiverTypeName": "AvatarStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.AvatarStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "AvatarSize", + "typeQualifiedName": "com.sdds.sbcom.styles.avatar.AvatarSize", + "defaultValue": { + "value": "size-72", + "codeName": "Size72" + }, + "values": [ + { + "value": "size-72", + "codeName": "Size72" + }, + { + "value": "size-64", + "codeName": "Size64" + }, + { + "value": "size-56", + "codeName": "Size56" + }, + { + "value": "size-44", + "codeName": "Size44" + }, + { + "value": "size-40", + "codeName": "Size40" + }, + { + "value": "size-36", + "codeName": "Size36" + }, + { + "value": "size-32", + "codeName": "Size32" + }, + { + "value": "size-26", + "codeName": "Size26" + }, + { + "value": "size-24", + "codeName": "Size24" + } + ] + } + ] + }, "variations": [ { "name": "size-72", - "composeReference": "Avatar.Size72" + "composeReference": "Avatar.Size72", + "props": [ + { + "name": "size", + "value": "size-72" + } + ] }, { "name": "size-64", - "composeReference": "Avatar.Size64" + "composeReference": "Avatar.Size64", + "props": [ + { + "name": "size", + "value": "size-64" + } + ] }, { "name": "size-56", - "composeReference": "Avatar.Size56" + "composeReference": "Avatar.Size56", + "props": [ + { + "name": "size", + "value": "size-56" + } + ] }, { "name": "size-44", - "composeReference": "Avatar.Size44" + "composeReference": "Avatar.Size44", + "props": [ + { + "name": "size", + "value": "size-44" + } + ] }, { "name": "size-40", - "composeReference": "Avatar.Size40" + "composeReference": "Avatar.Size40", + "props": [ + { + "name": "size", + "value": "size-40" + } + ] }, { "name": "size-36", - "composeReference": "Avatar.Size36" + "composeReference": "Avatar.Size36", + "props": [ + { + "name": "size", + "value": "size-36" + } + ] }, { "name": "size-32", - "composeReference": "Avatar.Size32" + "composeReference": "Avatar.Size32", + "props": [ + { + "name": "size", + "value": "size-32" + } + ] }, { "name": "size-26", - "composeReference": "Avatar.Size26" + "composeReference": "Avatar.Size26", + "props": [ + { + "name": "size", + "value": "size-26" + } + ] }, { "name": "size-24", - "composeReference": "Avatar.Size24" + "composeReference": "Avatar.Size24", + "props": [ + { + "name": "size", + "value": "size-24" + } + ] } ] }, @@ -49,26 +182,233 @@ "key": "indicator", "coreName": "Indicator", "styleName": "AvatarIndicator", + "props": [ + { + "name": "size", + "values": [ + "size-14", + "size-12", + "size-10", + "size-8", + "size-6" + ], + "defaultValue": "size-14" + } + ], + "styleApi": { + "packageName": "com.sdds.sbcom.styles.indicator", + "stylesClassName": "IndicatorStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.indicator.IndicatorStyles", + "receiverClassName": "IndicatorStyles.AvatarIndicator", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.indicator.IndicatorStyles.AvatarIndicator", + "returnTypeName": "IndicatorStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.IndicatorStyle", + "modifyReceiverTypeName": "IndicatorStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.IndicatorStyleBuilder", + "holderName": "AvatarIndicator", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "IndicatorAvatarIndicatorSize", + "typeQualifiedName": "com.sdds.sbcom.styles.indicator.IndicatorAvatarIndicatorSize", + "defaultValue": { + "value": "size-14", + "codeName": "Size14" + }, + "values": [ + { + "value": "size-14", + "codeName": "Size14" + }, + { + "value": "size-12", + "codeName": "Size12" + }, + { + "value": "size-10", + "codeName": "Size10" + }, + { + "value": "size-8", + "codeName": "Size8" + }, + { + "value": "size-6", + "codeName": "Size6" + } + ] + } + ] + }, "variations": [ { "name": "size-14", - "composeReference": "AvatarIndicator.Size14" + "composeReference": "AvatarIndicator.Size14", + "props": [ + { + "name": "size", + "value": "size-14" + } + ] }, { "name": "size-12", - "composeReference": "AvatarIndicator.Size12" + "composeReference": "AvatarIndicator.Size12", + "props": [ + { + "name": "size", + "value": "size-12" + } + ] }, { "name": "size-10", - "composeReference": "AvatarIndicator.Size10" + "composeReference": "AvatarIndicator.Size10", + "props": [ + { + "name": "size", + "value": "size-10" + } + ] }, { "name": "size-8", - "composeReference": "AvatarIndicator.Size8" + "composeReference": "AvatarIndicator.Size8", + "props": [ + { + "name": "size", + "value": "size-8" + } + ] }, { "name": "size-6", - "composeReference": "AvatarIndicator.Size6" + "composeReference": "AvatarIndicator.Size6", + "props": [ + { + "name": "size", + "value": "size-6" + } + ] + } + ] + }, + { + "key": "indicator", + "coreName": "Indicator", + "styleName": "Indicator", + "props": [ + { + "name": "state", + "values": [ + "success", + "global-white", + "mute", + "danger", + "warning" + ], + "defaultValue": "success" + } + ], + "styleApi": { + "packageName": "com.sdds.sbcom.styles.indicator", + "stylesClassName": "IndicatorStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.indicator.IndicatorStyles", + "receiverClassName": "IndicatorStyles.Default", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.indicator.IndicatorStyles.Default", + "returnTypeName": "IndicatorStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.IndicatorStyle", + "modifyReceiverTypeName": "IndicatorStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.IndicatorStyleBuilder", + "holderName": "Default", + "params": [ + { + "name": "state", + "type": "enum", + "required": false, + "typeName": "IndicatorDefaultState", + "typeQualifiedName": "com.sdds.sbcom.styles.indicator.IndicatorDefaultState", + "defaultValue": { + "value": "success", + "codeName": "Success" + }, + "values": [ + { + "value": "success", + "codeName": "Success" + }, + { + "value": "global-white", + "codeName": "GlobalWhite" + }, + { + "value": "mute", + "codeName": "Mute" + }, + { + "value": "danger", + "codeName": "Danger" + }, + { + "value": "warning", + "codeName": "Warning" + } + ] + } + ] + }, + "variations": [ + { + "name": "state-success", + "composeReference": "Indicator.StateSuccess", + "props": [ + { + "name": "state", + "value": "success" + } + ] + }, + { + "name": "state-global-white", + "composeReference": "Indicator.StateGlobalWhite", + "props": [ + { + "name": "state", + "value": "global-white" + } + ] + }, + { + "name": "state-mute", + "composeReference": "Indicator.StateMute", + "props": [ + { + "name": "state", + "value": "mute" + } + ] + }, + { + "name": "state-danger", + "composeReference": "Indicator.StateDanger", + "props": [ + { + "name": "state", + "value": "danger" + } + ] + }, + { + "name": "state-warning", + "composeReference": "Indicator.StateWarning", + "props": [ + { + "name": "state", + "value": "warning" + } + ] } ] }, @@ -76,10 +416,55 @@ "key": "avatar-group", "coreName": "AvatarGroup", "styleName": "AvatarGroup", + "props": [ + { + "name": "size", + "values": [ + "size-24" + ], + "defaultValue": "size-24" + } + ], + "styleApi": { + "packageName": "com.sdds.sbcom.styles.avatargroup", + "stylesClassName": "AvatarGroupStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.avatargroup.AvatarGroupStyles", + "receiverClassName": "AvatarGroupStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.avatargroup.AvatarGroupStyles.Companion", + "returnTypeName": "AvatarGroupStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.AvatarGroupStyle", + "modifyReceiverTypeName": "AvatarGroupStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.AvatarGroupStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "AvatarGroupSize", + "typeQualifiedName": "com.sdds.sbcom.styles.avatargroup.AvatarGroupSize", + "defaultValue": { + "value": "size-24", + "codeName": "Size24" + }, + "values": [ + { + "value": "size-24", + "codeName": "Size24" + } + ] + } + ] + }, "variations": [ { "name": "size-24", - "composeReference": "AvatarGroup.Size24" + "composeReference": "AvatarGroup.Size24", + "props": [ + { + "name": "size", + "value": "size-24" + } + ] } ] }, @@ -87,166 +472,853 @@ "key": "basic-button", "coreName": "BasicButton", "styleName": "BasicButton", + "props": [ + { + "name": "size", + "values": [ + "size-48", + "size-40", + "size-32", + "size-24" + ], + "defaultValue": "size-48" + }, + { + "name": "bg", + "values": [ + "yes", + "no" + ], + "defaultValue": "yes" + }, + { + "name": "mode", + "values": [ + "primary", + "accent-filled", + "accent-white", + "accent-grey", + "danger-tint" + ], + "defaultValue": "primary" + } + ], + "styleApi": { + "packageName": "com.sdds.sbcom.styles.basicbutton", + "stylesClassName": "BasicButtonStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.basicbutton.BasicButtonStyles", + "receiverClassName": "BasicButtonStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.basicbutton.BasicButtonStyles.Companion", + "returnTypeName": "ButtonStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ButtonStyle", + "modifyReceiverTypeName": "BasicButtonStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.BasicButtonStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "BasicButtonSize", + "typeQualifiedName": "com.sdds.sbcom.styles.basicbutton.BasicButtonSize", + "defaultValue": { + "value": "size-48", + "codeName": "Size48" + }, + "values": [ + { + "value": "size-48", + "codeName": "Size48" + }, + { + "value": "size-40", + "codeName": "Size40" + }, + { + "value": "size-32", + "codeName": "Size32" + }, + { + "value": "size-24", + "codeName": "Size24" + } + ] + }, + { + "name": "bg", + "type": "enum", + "required": false, + "typeName": "BasicButtonBg", + "typeQualifiedName": "com.sdds.sbcom.styles.basicbutton.BasicButtonBg", + "defaultValue": { + "value": "yes", + "codeName": "Yes" + }, + "values": [ + { + "value": "yes", + "codeName": "Yes" + }, + { + "value": "no", + "codeName": "No" + } + ] + }, + { + "name": "mode", + "type": "enum", + "required": false, + "typeName": "BasicButtonMode", + "typeQualifiedName": "com.sdds.sbcom.styles.basicbutton.BasicButtonMode", + "defaultValue": { + "value": "primary", + "codeName": "Primary" + }, + "values": [ + { + "value": "primary", + "codeName": "Primary" + }, + { + "value": "accent-filled", + "codeName": "AccentFilled" + }, + { + "value": "accent-white", + "codeName": "AccentWhite" + }, + { + "value": "accent-grey", + "codeName": "AccentGrey" + }, + { + "value": "danger-tint", + "codeName": "DangerTint" + } + ] + } + ] + }, "variations": [ { "name": "size-48.mode-primary", - "composeReference": "BasicButton.Size48.ModePrimary" + "composeReference": "BasicButton.Size48.ModePrimary", + "props": [ + { + "name": "size", + "value": "size-48" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "primary" + } + ] }, { "name": "size-48.mode-accent-filled", - "composeReference": "BasicButton.Size48.ModeAccentFilled" + "composeReference": "BasicButton.Size48.ModeAccentFilled", + "props": [ + { + "name": "size", + "value": "size-48" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-filled" + } + ] }, { "name": "size-48.mode-accent-white", - "composeReference": "BasicButton.Size48.ModeAccentWhite" + "composeReference": "BasicButton.Size48.ModeAccentWhite", + "props": [ + { + "name": "size", + "value": "size-48" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-white" + } + ] }, { "name": "size-48.mode-accent-grey", - "composeReference": "BasicButton.Size48.ModeAccentGrey" + "composeReference": "BasicButton.Size48.ModeAccentGrey", + "props": [ + { + "name": "size", + "value": "size-48" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-grey" + } + ] }, { "name": "size-48.mode-danger-tint", - "composeReference": "BasicButton.Size48.ModeDangerTint" + "composeReference": "BasicButton.Size48.ModeDangerTint", + "props": [ + { + "name": "size", + "value": "size-48" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "danger-tint" + } + ] }, { "name": "size-48.bg-no.mode-primary", - "composeReference": "BasicButton.Size48.BgNo.ModePrimary" + "composeReference": "BasicButton.Size48.BgNo.ModePrimary", + "props": [ + { + "name": "size", + "value": "size-48" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "primary" + } + ] }, { "name": "size-48.bg-no.mode-accent-filled", - "composeReference": "BasicButton.Size48.BgNo.ModeAccentFilled" + "composeReference": "BasicButton.Size48.BgNo.ModeAccentFilled", + "props": [ + { + "name": "size", + "value": "size-48" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-filled" + } + ] }, { "name": "size-48.bg-no.mode-accent-white", - "composeReference": "BasicButton.Size48.BgNo.ModeAccentWhite" + "composeReference": "BasicButton.Size48.BgNo.ModeAccentWhite", + "props": [ + { + "name": "size", + "value": "size-48" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-white" + } + ] }, { "name": "size-48.bg-no.mode-accent-grey", - "composeReference": "BasicButton.Size48.BgNo.ModeAccentGrey" + "composeReference": "BasicButton.Size48.BgNo.ModeAccentGrey", + "props": [ + { + "name": "size", + "value": "size-48" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-grey" + } + ] }, { "name": "size-48.bg-no.mode-danger-tint", - "composeReference": "BasicButton.Size48.BgNo.ModeDangerTint" + "composeReference": "BasicButton.Size48.BgNo.ModeDangerTint", + "props": [ + { + "name": "size", + "value": "size-48" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "danger-tint" + } + ] }, { "name": "size-40.mode-primary", - "composeReference": "BasicButton.Size40.ModePrimary" + "composeReference": "BasicButton.Size40.ModePrimary", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "primary" + } + ] }, { "name": "size-40.mode-accent-filled", - "composeReference": "BasicButton.Size40.ModeAccentFilled" + "composeReference": "BasicButton.Size40.ModeAccentFilled", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-filled" + } + ] }, { "name": "size-40.mode-accent-white", - "composeReference": "BasicButton.Size40.ModeAccentWhite" + "composeReference": "BasicButton.Size40.ModeAccentWhite", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-white" + } + ] }, { "name": "size-40.mode-accent-grey", - "composeReference": "BasicButton.Size40.ModeAccentGrey" + "composeReference": "BasicButton.Size40.ModeAccentGrey", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-grey" + } + ] }, { "name": "size-40.mode-danger-tint", - "composeReference": "BasicButton.Size40.ModeDangerTint" + "composeReference": "BasicButton.Size40.ModeDangerTint", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "danger-tint" + } + ] }, { "name": "size-40.bg-no.mode-primary", - "composeReference": "BasicButton.Size40.BgNo.ModePrimary" + "composeReference": "BasicButton.Size40.BgNo.ModePrimary", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "primary" + } + ] }, { "name": "size-40.bg-no.mode-accent-filled", - "composeReference": "BasicButton.Size40.BgNo.ModeAccentFilled" + "composeReference": "BasicButton.Size40.BgNo.ModeAccentFilled", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-filled" + } + ] }, { "name": "size-40.bg-no.mode-accent-white", - "composeReference": "BasicButton.Size40.BgNo.ModeAccentWhite" + "composeReference": "BasicButton.Size40.BgNo.ModeAccentWhite", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-white" + } + ] }, { "name": "size-40.bg-no.mode-accent-grey", - "composeReference": "BasicButton.Size40.BgNo.ModeAccentGrey" + "composeReference": "BasicButton.Size40.BgNo.ModeAccentGrey", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-grey" + } + ] }, { "name": "size-40.bg-no.mode-danger-tint", - "composeReference": "BasicButton.Size40.BgNo.ModeDangerTint" + "composeReference": "BasicButton.Size40.BgNo.ModeDangerTint", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "danger-tint" + } + ] }, { "name": "size-32.mode-primary", - "composeReference": "BasicButton.Size32.ModePrimary" + "composeReference": "BasicButton.Size32.ModePrimary", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "primary" + } + ] }, { "name": "size-32.mode-accent-filled", - "composeReference": "BasicButton.Size32.ModeAccentFilled" + "composeReference": "BasicButton.Size32.ModeAccentFilled", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-filled" + } + ] }, { "name": "size-32.mode-accent-white", - "composeReference": "BasicButton.Size32.ModeAccentWhite" + "composeReference": "BasicButton.Size32.ModeAccentWhite", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-white" + } + ] }, { "name": "size-32.mode-accent-grey", - "composeReference": "BasicButton.Size32.ModeAccentGrey" + "composeReference": "BasicButton.Size32.ModeAccentGrey", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-grey" + } + ] }, { "name": "size-32.mode-danger-tint", - "composeReference": "BasicButton.Size32.ModeDangerTint" + "composeReference": "BasicButton.Size32.ModeDangerTint", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "danger-tint" + } + ] }, { "name": "size-32.bg-no.mode-primary", - "composeReference": "BasicButton.Size32.BgNo.ModePrimary" + "composeReference": "BasicButton.Size32.BgNo.ModePrimary", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "primary" + } + ] }, { "name": "size-32.bg-no.mode-accent-filled", - "composeReference": "BasicButton.Size32.BgNo.ModeAccentFilled" + "composeReference": "BasicButton.Size32.BgNo.ModeAccentFilled", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-filled" + } + ] }, { "name": "size-32.bg-no.mode-accent-white", - "composeReference": "BasicButton.Size32.BgNo.ModeAccentWhite" + "composeReference": "BasicButton.Size32.BgNo.ModeAccentWhite", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-white" + } + ] }, { "name": "size-32.bg-no.mode-accent-grey", - "composeReference": "BasicButton.Size32.BgNo.ModeAccentGrey" + "composeReference": "BasicButton.Size32.BgNo.ModeAccentGrey", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-grey" + } + ] }, { "name": "size-32.bg-no.mode-danger-tint", - "composeReference": "BasicButton.Size32.BgNo.ModeDangerTint" + "composeReference": "BasicButton.Size32.BgNo.ModeDangerTint", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "danger-tint" + } + ] }, { "name": "size-24.mode-primary", - "composeReference": "BasicButton.Size24.ModePrimary" + "composeReference": "BasicButton.Size24.ModePrimary", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "primary" + } + ] }, { "name": "size-24.mode-accent-filled", - "composeReference": "BasicButton.Size24.ModeAccentFilled" + "composeReference": "BasicButton.Size24.ModeAccentFilled", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-filled" + } + ] }, { "name": "size-24.mode-accent-white", - "composeReference": "BasicButton.Size24.ModeAccentWhite" + "composeReference": "BasicButton.Size24.ModeAccentWhite", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-white" + } + ] }, { "name": "size-24.mode-accent-grey", - "composeReference": "BasicButton.Size24.ModeAccentGrey" + "composeReference": "BasicButton.Size24.ModeAccentGrey", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-grey" + } + ] }, { "name": "size-24.mode-danger-tint", - "composeReference": "BasicButton.Size24.ModeDangerTint" + "composeReference": "BasicButton.Size24.ModeDangerTint", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "danger-tint" + } + ] }, { "name": "size-24.bg-no.mode-primary", - "composeReference": "BasicButton.Size24.BgNo.ModePrimary" + "composeReference": "BasicButton.Size24.BgNo.ModePrimary", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "primary" + } + ] }, { "name": "size-24.bg-no.mode-accent-filled", - "composeReference": "BasicButton.Size24.BgNo.ModeAccentFilled" + "composeReference": "BasicButton.Size24.BgNo.ModeAccentFilled", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-filled" + } + ] }, { "name": "size-24.bg-no.mode-accent-white", - "composeReference": "BasicButton.Size24.BgNo.ModeAccentWhite" + "composeReference": "BasicButton.Size24.BgNo.ModeAccentWhite", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-white" + } + ] }, { "name": "size-24.bg-no.mode-accent-grey", - "composeReference": "BasicButton.Size24.BgNo.ModeAccentGrey" + "composeReference": "BasicButton.Size24.BgNo.ModeAccentGrey", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-grey" + } + ] }, { "name": "size-24.bg-no.mode-danger-tint", - "composeReference": "BasicButton.Size24.BgNo.ModeDangerTint" + "composeReference": "BasicButton.Size24.BgNo.ModeDangerTint", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "danger-tint" + } + ] } ] }, @@ -254,102 +1326,555 @@ "key": "icon-button", "coreName": "IconButton", "styleName": "IconButton", + "props": [ + { + "name": "size", + "values": [ + "size-48", + "size-40", + "size-32", + "size-24" + ], + "defaultValue": "size-48" + }, + { + "name": "bg", + "values": [ + "yes", + "no" + ], + "defaultValue": "yes" + }, + { + "name": "mode", + "values": [ + "accent-filled", + "accent-grey", + "danger-tint" + ], + "defaultValue": "accent-filled" + } + ], + "styleApi": { + "packageName": "com.sdds.sbcom.styles.iconbutton", + "stylesClassName": "IconButtonStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.iconbutton.IconButtonStyles", + "receiverClassName": "IconButtonStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.iconbutton.IconButtonStyles.Companion", + "returnTypeName": "ButtonStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ButtonStyle", + "modifyReceiverTypeName": "IconButtonStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.IconButtonStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "IconButtonSize", + "typeQualifiedName": "com.sdds.sbcom.styles.iconbutton.IconButtonSize", + "defaultValue": { + "value": "size-48", + "codeName": "Size48" + }, + "values": [ + { + "value": "size-48", + "codeName": "Size48" + }, + { + "value": "size-40", + "codeName": "Size40" + }, + { + "value": "size-32", + "codeName": "Size32" + }, + { + "value": "size-24", + "codeName": "Size24" + } + ] + }, + { + "name": "bg", + "type": "enum", + "required": false, + "typeName": "IconButtonBg", + "typeQualifiedName": "com.sdds.sbcom.styles.iconbutton.IconButtonBg", + "defaultValue": { + "value": "yes", + "codeName": "Yes" + }, + "values": [ + { + "value": "yes", + "codeName": "Yes" + }, + { + "value": "no", + "codeName": "No" + } + ] + }, + { + "name": "mode", + "type": "enum", + "required": false, + "typeName": "IconButtonMode", + "typeQualifiedName": "com.sdds.sbcom.styles.iconbutton.IconButtonMode", + "defaultValue": { + "value": "accent-filled", + "codeName": "AccentFilled" + }, + "values": [ + { + "value": "accent-filled", + "codeName": "AccentFilled" + }, + { + "value": "accent-grey", + "codeName": "AccentGrey" + }, + { + "value": "danger-tint", + "codeName": "DangerTint" + } + ] + } + ] + }, "variations": [ { "name": "size-48.mode-accent-filled", - "composeReference": "IconButton.Size48.ModeAccentFilled" + "composeReference": "IconButton.Size48.ModeAccentFilled", + "props": [ + { + "name": "size", + "value": "size-48" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-filled" + } + ] }, { "name": "size-48.mode-accent-grey", - "composeReference": "IconButton.Size48.ModeAccentGrey" + "composeReference": "IconButton.Size48.ModeAccentGrey", + "props": [ + { + "name": "size", + "value": "size-48" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-grey" + } + ] }, { "name": "size-48.mode-danger-tint", - "composeReference": "IconButton.Size48.ModeDangerTint" + "composeReference": "IconButton.Size48.ModeDangerTint", + "props": [ + { + "name": "size", + "value": "size-48" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "danger-tint" + } + ] }, { "name": "size-48.bg-no.mode-accent-filled", - "composeReference": "IconButton.Size48.BgNo.ModeAccentFilled" + "composeReference": "IconButton.Size48.BgNo.ModeAccentFilled", + "props": [ + { + "name": "size", + "value": "size-48" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-filled" + } + ] }, { "name": "size-48.bg-no.mode-accent-grey", - "composeReference": "IconButton.Size48.BgNo.ModeAccentGrey" + "composeReference": "IconButton.Size48.BgNo.ModeAccentGrey", + "props": [ + { + "name": "size", + "value": "size-48" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-grey" + } + ] }, { "name": "size-48.bg-no.mode-danger-tint", - "composeReference": "IconButton.Size48.BgNo.ModeDangerTint" + "composeReference": "IconButton.Size48.BgNo.ModeDangerTint", + "props": [ + { + "name": "size", + "value": "size-48" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "danger-tint" + } + ] }, { "name": "size-40.mode-accent-filled", - "composeReference": "IconButton.Size40.ModeAccentFilled" + "composeReference": "IconButton.Size40.ModeAccentFilled", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-filled" + } + ] }, { "name": "size-40.mode-accent-grey", - "composeReference": "IconButton.Size40.ModeAccentGrey" + "composeReference": "IconButton.Size40.ModeAccentGrey", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-grey" + } + ] }, { "name": "size-40.mode-danger-tint", - "composeReference": "IconButton.Size40.ModeDangerTint" + "composeReference": "IconButton.Size40.ModeDangerTint", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "danger-tint" + } + ] }, { "name": "size-40.bg-no.mode-accent-filled", - "composeReference": "IconButton.Size40.BgNo.ModeAccentFilled" + "composeReference": "IconButton.Size40.BgNo.ModeAccentFilled", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-filled" + } + ] }, { "name": "size-40.bg-no.mode-accent-grey", - "composeReference": "IconButton.Size40.BgNo.ModeAccentGrey" + "composeReference": "IconButton.Size40.BgNo.ModeAccentGrey", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-grey" + } + ] }, { "name": "size-40.bg-no.mode-danger-tint", - "composeReference": "IconButton.Size40.BgNo.ModeDangerTint" + "composeReference": "IconButton.Size40.BgNo.ModeDangerTint", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "danger-tint" + } + ] }, { "name": "size-32.mode-accent-filled", - "composeReference": "IconButton.Size32.ModeAccentFilled" + "composeReference": "IconButton.Size32.ModeAccentFilled", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-filled" + } + ] }, { "name": "size-32.mode-accent-grey", - "composeReference": "IconButton.Size32.ModeAccentGrey" + "composeReference": "IconButton.Size32.ModeAccentGrey", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-grey" + } + ] }, { "name": "size-32.mode-danger-tint", - "composeReference": "IconButton.Size32.ModeDangerTint" + "composeReference": "IconButton.Size32.ModeDangerTint", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "danger-tint" + } + ] }, { "name": "size-32.bg-no.mode-accent-filled", - "composeReference": "IconButton.Size32.BgNo.ModeAccentFilled" + "composeReference": "IconButton.Size32.BgNo.ModeAccentFilled", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-filled" + } + ] }, { "name": "size-32.bg-no.mode-accent-grey", - "composeReference": "IconButton.Size32.BgNo.ModeAccentGrey" + "composeReference": "IconButton.Size32.BgNo.ModeAccentGrey", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-grey" + } + ] }, { "name": "size-32.bg-no.mode-danger-tint", - "composeReference": "IconButton.Size32.BgNo.ModeDangerTint" + "composeReference": "IconButton.Size32.BgNo.ModeDangerTint", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "danger-tint" + } + ] }, { "name": "size-24.mode-accent-filled", - "composeReference": "IconButton.Size24.ModeAccentFilled" + "composeReference": "IconButton.Size24.ModeAccentFilled", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-filled" + } + ] }, { "name": "size-24.mode-accent-grey", - "composeReference": "IconButton.Size24.ModeAccentGrey" + "composeReference": "IconButton.Size24.ModeAccentGrey", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "accent-grey" + } + ] }, { "name": "size-24.mode-danger-tint", - "composeReference": "IconButton.Size24.ModeDangerTint" + "composeReference": "IconButton.Size24.ModeDangerTint", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "bg", + "value": "yes" + }, + { + "name": "mode", + "value": "danger-tint" + } + ] }, { "name": "size-24.bg-no.mode-accent-filled", - "composeReference": "IconButton.Size24.BgNo.ModeAccentFilled" + "composeReference": "IconButton.Size24.BgNo.ModeAccentFilled", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-filled" + } + ] }, { "name": "size-24.bg-no.mode-accent-grey", - "composeReference": "IconButton.Size24.BgNo.ModeAccentGrey" + "composeReference": "IconButton.Size24.BgNo.ModeAccentGrey", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "accent-grey" + } + ] }, { "name": "size-24.bg-no.mode-danger-tint", - "composeReference": "IconButton.Size24.BgNo.ModeDangerTint" + "composeReference": "IconButton.Size24.BgNo.ModeDangerTint", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "bg", + "value": "no" + }, + { + "name": "mode", + "value": "danger-tint" + } + ] } ] }, @@ -357,6 +1882,17 @@ "key": "bottom-sheet", "coreName": "BottomSheet", "styleName": "ModalBottomSheet", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.bottomsheet", + "stylesClassName": "BottomSheetStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.bottomsheet.BottomSheetStyles", + "receiverClassName": "BottomSheetStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.bottomsheet.BottomSheetStyles.Companion", + "returnTypeName": "ModalBottomSheetStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ModalBottomSheetStyle", + "modifyReceiverTypeName": "ModalBottomSheetStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ModalBottomSheetStyleBuilder" + }, "variations": [ { "name": "Default", @@ -368,6 +1904,17 @@ "key": "check-box", "coreName": "CheckBox", "styleName": "CheckBox", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.checkbox", + "stylesClassName": "CheckBoxStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.checkbox.CheckBoxStyles", + "receiverClassName": "CheckBoxStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.checkbox.CheckBoxStyles.Companion", + "returnTypeName": "CheckBoxStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.CheckBoxStyle", + "modifyReceiverTypeName": "CheckBoxStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.CheckBoxStyleBuilder" + }, "variations": [ { "name": "Default", @@ -379,14 +1926,70 @@ "key": "chip", "coreName": "Chip", "styleName": "Chip", + "props": [ + { + "name": "chip-slot", + "values": [ + "padding", + "avatar" + ], + "defaultValue": "padding" + } + ], + "styleApi": { + "packageName": "com.sdds.sbcom.styles.chip", + "stylesClassName": "ChipStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.chip.ChipStyles", + "receiverClassName": "ChipStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.chip.ChipStyles.Companion", + "returnTypeName": "ChipStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ChipStyle", + "modifyReceiverTypeName": "ChipStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ChipStyleBuilder", + "params": [ + { + "name": "chipSlot", + "type": "enum", + "required": false, + "typeName": "ChipChipSlot", + "typeQualifiedName": "com.sdds.sbcom.styles.chip.ChipChipSlot", + "defaultValue": { + "value": "padding", + "codeName": "Padding" + }, + "values": [ + { + "value": "padding", + "codeName": "Padding" + }, + { + "value": "avatar", + "codeName": "Avatar" + } + ] + } + ] + }, "variations": [ { "name": "chip-slot-padding", - "composeReference": "Chip.ChipSlotPadding" + "composeReference": "Chip.ChipSlotPadding", + "props": [ + { + "name": "chip-slot", + "value": "padding" + } + ] }, { "name": "chip-slot-avatar", - "composeReference": "Chip.ChipSlotAvatar" + "composeReference": "Chip.ChipSlotAvatar", + "props": [ + { + "name": "chip-slot", + "value": "avatar" + } + ] } ] }, @@ -394,14 +1997,70 @@ "key": "chip-group", "coreName": "ChipGroup", "styleName": "ChipGroup", + "props": [ + { + "name": "chip-slot", + "values": [ + "padding", + "avatar" + ], + "defaultValue": "padding" + } + ], + "styleApi": { + "packageName": "com.sdds.sbcom.styles.chipgroup", + "stylesClassName": "ChipGroupStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.chipgroup.ChipGroupStyles", + "receiverClassName": "ChipGroupStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.chipgroup.ChipGroupStyles.Companion", + "returnTypeName": "ChipGroupStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ChipGroupStyle", + "modifyReceiverTypeName": "ChipGroupStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ChipGroupStyleBuilder", + "params": [ + { + "name": "chipSlot", + "type": "enum", + "required": false, + "typeName": "ChipGroupChipSlot", + "typeQualifiedName": "com.sdds.sbcom.styles.chipgroup.ChipGroupChipSlot", + "defaultValue": { + "value": "padding", + "codeName": "Padding" + }, + "values": [ + { + "value": "padding", + "codeName": "Padding" + }, + { + "value": "avatar", + "codeName": "Avatar" + } + ] + } + ] + }, "variations": [ { "name": "chip-slot-padding", - "composeReference": "ChipGroup.ChipSlotPadding" + "composeReference": "ChipGroup.ChipSlotPadding", + "props": [ + { + "name": "chip-slot", + "value": "padding" + } + ] }, { "name": "chip-slot-avatar", - "composeReference": "ChipGroup.ChipSlotAvatar" + "composeReference": "ChipGroup.ChipSlotAvatar", + "props": [ + { + "name": "chip-slot", + "value": "avatar" + } + ] } ] }, @@ -409,14 +2068,71 @@ "key": "counter", "coreName": "Counter", "styleName": "Counter", + "props": [ + { + "name": "mute", + "values": [ + "no", + "yes" + ], + "defaultValue": "no" + } + ], + "styleApi": { + "packageName": "com.sdds.sbcom.styles.counter", + "stylesClassName": "CounterStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.counter.CounterStyles", + "receiverClassName": "CounterStyles.Default", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.counter.CounterStyles.Default", + "returnTypeName": "CounterStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.CounterStyle", + "modifyReceiverTypeName": "CounterStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.CounterStyleBuilder", + "holderName": "Default", + "params": [ + { + "name": "mute", + "type": "enum", + "required": false, + "typeName": "CounterDefaultMute", + "typeQualifiedName": "com.sdds.sbcom.styles.counter.CounterDefaultMute", + "defaultValue": { + "value": "no", + "codeName": "No" + }, + "values": [ + { + "value": "no", + "codeName": "No" + }, + { + "value": "yes", + "codeName": "Yes" + } + ] + } + ] + }, "variations": [ { "name": "mute-no", - "composeReference": "Counter.MuteNo" + "composeReference": "Counter.MuteNo", + "props": [ + { + "name": "mute", + "value": "no" + } + ] }, { "name": "mute-yes", - "composeReference": "Counter.MuteYes" + "composeReference": "Counter.MuteYes", + "props": [ + { + "name": "mute", + "value": "yes" + } + ] } ] }, @@ -424,6 +2140,18 @@ "key": "counter", "coreName": "Counter", "styleName": "TabBarCounter", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.counter", + "stylesClassName": "CounterStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.counter.CounterStyles", + "receiverClassName": "CounterStyles.TabBarCounter", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.counter.CounterStyles.TabBarCounter", + "returnTypeName": "CounterStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.CounterStyle", + "modifyReceiverTypeName": "CounterStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.CounterStyleBuilder", + "holderName": "TabBarCounter" + }, "variations": [ { "name": "Default", @@ -435,6 +2163,18 @@ "key": "counter", "coreName": "Counter", "styleName": "TabItemFolderCounter", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.counter", + "stylesClassName": "CounterStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.counter.CounterStyles", + "receiverClassName": "CounterStyles.TabItemFolderCounter", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.counter.CounterStyles.TabItemFolderCounter", + "returnTypeName": "CounterStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.CounterStyle", + "modifyReceiverTypeName": "CounterStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.CounterStyleBuilder", + "holderName": "TabItemFolderCounter" + }, "variations": [ { "name": "Default", @@ -446,6 +2186,17 @@ "key": "divider", "coreName": "Divider", "styleName": "Divider", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.divider", + "stylesClassName": "DividerStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.divider.DividerStyles", + "receiverClassName": "DividerStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.divider.DividerStyles.Companion", + "returnTypeName": "DividerStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.DividerStyle", + "modifyReceiverTypeName": "DividerStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.DividerStyleBuilder" + }, "variations": [ { "name": "Default", @@ -453,117 +2204,388 @@ } ] }, - { - "key": "indicator", - "coreName": "Indicator", - "styleName": "Indicator", - "variations": [ - { - "name": "state-success", - "composeReference": "Indicator.StateSuccess" - }, - { - "name": "state-global-white", - "composeReference": "Indicator.StateGlobalWhite" - }, - { - "name": "state-mute", - "composeReference": "Indicator.StateMute" - }, - { - "name": "state-danger", - "composeReference": "Indicator.StateDanger" - }, - { - "name": "state-warning", - "composeReference": "Indicator.StateWarning" - } - ] - }, { "key": "loader", "coreName": "Loader", "styleName": "Loader", + "props": [ + { + "name": "size", + "values": [ + "size-40", + "size-32", + "size-24", + "size-16" + ], + "defaultValue": "size-40" + }, + { + "name": "mode-color", + "values": [ + "primary", + "secondary", + "global-white", + "accent", + "danger" + ], + "defaultValue": "primary" + } + ], + "styleApi": { + "packageName": "com.sdds.sbcom.styles.loader", + "stylesClassName": "LoaderStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.loader.LoaderStyles", + "receiverClassName": "LoaderStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.loader.LoaderStyles.Companion", + "returnTypeName": "LoaderStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.LoaderStyle", + "modifyReceiverTypeName": "LoaderStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.LoaderStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "LoaderSize", + "typeQualifiedName": "com.sdds.sbcom.styles.loader.LoaderSize", + "defaultValue": { + "value": "size-40", + "codeName": "Size40" + }, + "values": [ + { + "value": "size-40", + "codeName": "Size40" + }, + { + "value": "size-32", + "codeName": "Size32" + }, + { + "value": "size-24", + "codeName": "Size24" + }, + { + "value": "size-16", + "codeName": "Size16" + } + ] + }, + { + "name": "modeColor", + "type": "enum", + "required": false, + "typeName": "LoaderModeColor", + "typeQualifiedName": "com.sdds.sbcom.styles.loader.LoaderModeColor", + "defaultValue": { + "value": "primary", + "codeName": "Primary" + }, + "values": [ + { + "value": "primary", + "codeName": "Primary" + }, + { + "value": "secondary", + "codeName": "Secondary" + }, + { + "value": "global-white", + "codeName": "GlobalWhite" + }, + { + "value": "accent", + "codeName": "Accent" + }, + { + "value": "danger", + "codeName": "Danger" + } + ] + } + ] + }, "variations": [ { "name": "size-40.mode-color-primary", - "composeReference": "Loader.Size40.ModeColorPrimary" + "composeReference": "Loader.Size40.ModeColorPrimary", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "mode-color", + "value": "primary" + } + ] }, { "name": "size-40.mode-color-secondary", - "composeReference": "Loader.Size40.ModeColorSecondary" + "composeReference": "Loader.Size40.ModeColorSecondary", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "mode-color", + "value": "secondary" + } + ] }, { "name": "size-40.mode-color-global-white", - "composeReference": "Loader.Size40.ModeColorGlobalWhite" + "composeReference": "Loader.Size40.ModeColorGlobalWhite", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "mode-color", + "value": "global-white" + } + ] }, { "name": "size-40.mode-color-accent", - "composeReference": "Loader.Size40.ModeColorAccent" + "composeReference": "Loader.Size40.ModeColorAccent", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "mode-color", + "value": "accent" + } + ] }, { "name": "size-40.mode-color-danger", - "composeReference": "Loader.Size40.ModeColorDanger" + "composeReference": "Loader.Size40.ModeColorDanger", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "mode-color", + "value": "danger" + } + ] }, { "name": "size-32.mode-color-primary", - "composeReference": "Loader.Size32.ModeColorPrimary" + "composeReference": "Loader.Size32.ModeColorPrimary", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "mode-color", + "value": "primary" + } + ] }, { "name": "size-32.mode-color-secondary", - "composeReference": "Loader.Size32.ModeColorSecondary" + "composeReference": "Loader.Size32.ModeColorSecondary", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "mode-color", + "value": "secondary" + } + ] }, { "name": "size-32.mode-color-global-white", - "composeReference": "Loader.Size32.ModeColorGlobalWhite" + "composeReference": "Loader.Size32.ModeColorGlobalWhite", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "mode-color", + "value": "global-white" + } + ] }, { "name": "size-32.mode-color-accent", - "composeReference": "Loader.Size32.ModeColorAccent" + "composeReference": "Loader.Size32.ModeColorAccent", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "mode-color", + "value": "accent" + } + ] }, { "name": "size-32.mode-color-danger", - "composeReference": "Loader.Size32.ModeColorDanger" + "composeReference": "Loader.Size32.ModeColorDanger", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "mode-color", + "value": "danger" + } + ] }, { "name": "size-24.mode-color-primary", - "composeReference": "Loader.Size24.ModeColorPrimary" + "composeReference": "Loader.Size24.ModeColorPrimary", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "mode-color", + "value": "primary" + } + ] }, { "name": "size-24.mode-color-secondary", - "composeReference": "Loader.Size24.ModeColorSecondary" + "composeReference": "Loader.Size24.ModeColorSecondary", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "mode-color", + "value": "secondary" + } + ] }, { "name": "size-24.mode-color-global-white", - "composeReference": "Loader.Size24.ModeColorGlobalWhite" + "composeReference": "Loader.Size24.ModeColorGlobalWhite", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "mode-color", + "value": "global-white" + } + ] }, { "name": "size-24.mode-color-accent", - "composeReference": "Loader.Size24.ModeColorAccent" + "composeReference": "Loader.Size24.ModeColorAccent", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "mode-color", + "value": "accent" + } + ] }, { "name": "size-24.mode-color-danger", - "composeReference": "Loader.Size24.ModeColorDanger" + "composeReference": "Loader.Size24.ModeColorDanger", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "mode-color", + "value": "danger" + } + ] }, { "name": "size-16.mode-color-primary", - "composeReference": "Loader.Size16.ModeColorPrimary" + "composeReference": "Loader.Size16.ModeColorPrimary", + "props": [ + { + "name": "size", + "value": "size-16" + }, + { + "name": "mode-color", + "value": "primary" + } + ] }, { "name": "size-16.mode-color-secondary", - "composeReference": "Loader.Size16.ModeColorSecondary" + "composeReference": "Loader.Size16.ModeColorSecondary", + "props": [ + { + "name": "size", + "value": "size-16" + }, + { + "name": "mode-color", + "value": "secondary" + } + ] }, { "name": "size-16.mode-color-global-white", - "composeReference": "Loader.Size16.ModeColorGlobalWhite" + "composeReference": "Loader.Size16.ModeColorGlobalWhite", + "props": [ + { + "name": "size", + "value": "size-16" + }, + { + "name": "mode-color", + "value": "global-white" + } + ] }, { "name": "size-16.mode-color-accent", - "composeReference": "Loader.Size16.ModeColorAccent" + "composeReference": "Loader.Size16.ModeColorAccent", + "props": [ + { + "name": "size", + "value": "size-16" + }, + { + "name": "mode-color", + "value": "accent" + } + ] }, { "name": "size-16.mode-color-danger", - "composeReference": "Loader.Size16.ModeColorDanger" + "composeReference": "Loader.Size16.ModeColorDanger", + "props": [ + { + "name": "size", + "value": "size-16" + }, + { + "name": "mode-color", + "value": "danger" + } + ] } ] }, @@ -571,6 +2593,17 @@ "key": "overlay", "coreName": "Overlay", "styleName": "Overlay", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.overlay", + "stylesClassName": "OverlayStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.overlay.OverlayStyles", + "receiverClassName": "OverlayStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.overlay.OverlayStyles.Companion", + "returnTypeName": "OverlayStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.OverlayStyle", + "modifyReceiverTypeName": "OverlayStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.OverlayStyleBuilder" + }, "variations": [ { "name": "Default", @@ -582,86 +2615,384 @@ "key": "circular-progress-bar", "coreName": "CircularProgressBar", "styleName": "CircularProgressBar", + "props": [ + { + "name": "size", + "values": [ + "size-40", + "size-32", + "size-24", + "size-16" + ], + "defaultValue": "size-40" + }, + { + "name": "mode-color", + "values": [ + "primary", + "secondary", + "global-white", + "accent", + "danger" + ], + "defaultValue": "primary" + } + ], + "styleApi": { + "packageName": "com.sdds.sbcom.styles.circularprogressbar", + "stylesClassName": "CircularProgressBarStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.circularprogressbar.CircularProgressBarStyles", + "receiverClassName": "CircularProgressBarStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.circularprogressbar.CircularProgressBarStyles.Companion", + "returnTypeName": "CircularProgressBarStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.CircularProgressBarStyle", + "modifyReceiverTypeName": "CircularProgressBarStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.CircularProgressBarStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "CircularProgressBarSize", + "typeQualifiedName": "com.sdds.sbcom.styles.circularprogressbar.CircularProgressBarSize", + "defaultValue": { + "value": "size-40", + "codeName": "Size40" + }, + "values": [ + { + "value": "size-40", + "codeName": "Size40" + }, + { + "value": "size-32", + "codeName": "Size32" + }, + { + "value": "size-24", + "codeName": "Size24" + }, + { + "value": "size-16", + "codeName": "Size16" + } + ] + }, + { + "name": "modeColor", + "type": "enum", + "required": false, + "typeName": "CircularProgressBarModeColor", + "typeQualifiedName": "com.sdds.sbcom.styles.circularprogressbar.CircularProgressBarModeColor", + "defaultValue": { + "value": "primary", + "codeName": "Primary" + }, + "values": [ + { + "value": "primary", + "codeName": "Primary" + }, + { + "value": "secondary", + "codeName": "Secondary" + }, + { + "value": "global-white", + "codeName": "GlobalWhite" + }, + { + "value": "accent", + "codeName": "Accent" + }, + { + "value": "danger", + "codeName": "Danger" + } + ] + } + ] + }, "variations": [ { "name": "size-40.mode-color-primary", - "composeReference": "CircularProgressBar.Size40.ModeColorPrimary" + "composeReference": "CircularProgressBar.Size40.ModeColorPrimary", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "mode-color", + "value": "primary" + } + ] }, { "name": "size-40.mode-color-secondary", - "composeReference": "CircularProgressBar.Size40.ModeColorSecondary" + "composeReference": "CircularProgressBar.Size40.ModeColorSecondary", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "mode-color", + "value": "secondary" + } + ] }, { "name": "size-40.mode-color-global-white", - "composeReference": "CircularProgressBar.Size40.ModeColorGlobalWhite" + "composeReference": "CircularProgressBar.Size40.ModeColorGlobalWhite", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "mode-color", + "value": "global-white" + } + ] }, { "name": "size-40.mode-color-accent", - "composeReference": "CircularProgressBar.Size40.ModeColorAccent" + "composeReference": "CircularProgressBar.Size40.ModeColorAccent", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "mode-color", + "value": "accent" + } + ] }, { "name": "size-40.mode-color-danger", - "composeReference": "CircularProgressBar.Size40.ModeColorDanger" + "composeReference": "CircularProgressBar.Size40.ModeColorDanger", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "mode-color", + "value": "danger" + } + ] }, { "name": "size-32.mode-color-primary", - "composeReference": "CircularProgressBar.Size32.ModeColorPrimary" + "composeReference": "CircularProgressBar.Size32.ModeColorPrimary", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "mode-color", + "value": "primary" + } + ] }, { "name": "size-32.mode-color-secondary", - "composeReference": "CircularProgressBar.Size32.ModeColorSecondary" + "composeReference": "CircularProgressBar.Size32.ModeColorSecondary", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "mode-color", + "value": "secondary" + } + ] }, { "name": "size-32.mode-color-global-white", - "composeReference": "CircularProgressBar.Size32.ModeColorGlobalWhite" + "composeReference": "CircularProgressBar.Size32.ModeColorGlobalWhite", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "mode-color", + "value": "global-white" + } + ] }, { "name": "size-32.mode-color-accent", - "composeReference": "CircularProgressBar.Size32.ModeColorAccent" + "composeReference": "CircularProgressBar.Size32.ModeColorAccent", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "mode-color", + "value": "accent" + } + ] }, { "name": "size-32.mode-color-danger", - "composeReference": "CircularProgressBar.Size32.ModeColorDanger" + "composeReference": "CircularProgressBar.Size32.ModeColorDanger", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "mode-color", + "value": "danger" + } + ] }, { "name": "size-24.mode-color-primary", - "composeReference": "CircularProgressBar.Size24.ModeColorPrimary" + "composeReference": "CircularProgressBar.Size24.ModeColorPrimary", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "mode-color", + "value": "primary" + } + ] }, { "name": "size-24.mode-color-secondary", - "composeReference": "CircularProgressBar.Size24.ModeColorSecondary" + "composeReference": "CircularProgressBar.Size24.ModeColorSecondary", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "mode-color", + "value": "secondary" + } + ] }, { "name": "size-24.mode-color-global-white", - "composeReference": "CircularProgressBar.Size24.ModeColorGlobalWhite" + "composeReference": "CircularProgressBar.Size24.ModeColorGlobalWhite", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "mode-color", + "value": "global-white" + } + ] }, { "name": "size-24.mode-color-accent", - "composeReference": "CircularProgressBar.Size24.ModeColorAccent" + "composeReference": "CircularProgressBar.Size24.ModeColorAccent", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "mode-color", + "value": "accent" + } + ] }, { "name": "size-24.mode-color-danger", - "composeReference": "CircularProgressBar.Size24.ModeColorDanger" + "composeReference": "CircularProgressBar.Size24.ModeColorDanger", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "mode-color", + "value": "danger" + } + ] }, { "name": "size-16.mode-color-primary", - "composeReference": "CircularProgressBar.Size16.ModeColorPrimary" + "composeReference": "CircularProgressBar.Size16.ModeColorPrimary", + "props": [ + { + "name": "size", + "value": "size-16" + }, + { + "name": "mode-color", + "value": "primary" + } + ] }, { "name": "size-16.mode-color-secondary", - "composeReference": "CircularProgressBar.Size16.ModeColorSecondary" + "composeReference": "CircularProgressBar.Size16.ModeColorSecondary", + "props": [ + { + "name": "size", + "value": "size-16" + }, + { + "name": "mode-color", + "value": "secondary" + } + ] }, { "name": "size-16.mode-color-global-white", - "composeReference": "CircularProgressBar.Size16.ModeColorGlobalWhite" + "composeReference": "CircularProgressBar.Size16.ModeColorGlobalWhite", + "props": [ + { + "name": "size", + "value": "size-16" + }, + { + "name": "mode-color", + "value": "global-white" + } + ] }, { "name": "size-16.mode-color-accent", - "composeReference": "CircularProgressBar.Size16.ModeColorAccent" + "composeReference": "CircularProgressBar.Size16.ModeColorAccent", + "props": [ + { + "name": "size", + "value": "size-16" + }, + { + "name": "mode-color", + "value": "accent" + } + ] }, { "name": "size-16.mode-color-danger", - "composeReference": "CircularProgressBar.Size16.ModeColorDanger" + "composeReference": "CircularProgressBar.Size16.ModeColorDanger", + "props": [ + { + "name": "size", + "value": "size-16" + }, + { + "name": "mode-color", + "value": "danger" + } + ] } ] }, @@ -669,6 +3000,17 @@ "key": "popover", "coreName": "Popover", "styleName": "Popover", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.popover", + "stylesClassName": "PopoverStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.popover.PopoverStyles", + "receiverClassName": "PopoverStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.popover.PopoverStyles.Companion", + "returnTypeName": "PopoverStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.PopoverStyle", + "modifyReceiverTypeName": "PopoverStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.PopoverStyleBuilder" + }, "variations": [ { "name": "Default", @@ -680,6 +3022,17 @@ "key": "radio-box", "coreName": "RadioBox", "styleName": "RadioBox", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.radiobox", + "stylesClassName": "RadioBoxStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.radiobox.RadioBoxStyles", + "receiverClassName": "RadioBoxStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.radiobox.RadioBoxStyles.Companion", + "returnTypeName": "RadioBoxStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.RadioBoxStyle", + "modifyReceiverTypeName": "RadioBoxStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.RadioBoxStyleBuilder" + }, "variations": [ { "name": "Default", @@ -691,6 +3044,17 @@ "key": "switch", "coreName": "Switch", "styleName": "Switch", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.switcher", + "stylesClassName": "SwitchStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.switcher.SwitchStyles", + "receiverClassName": "SwitchStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.switcher.SwitchStyles.Companion", + "returnTypeName": "SwitchStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.SwitchStyle", + "modifyReceiverTypeName": "SwitchStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.SwitchStyleBuilder" + }, "variations": [ { "name": "Default", @@ -702,6 +3066,18 @@ "key": "text-field", "coreName": "TextField", "styleName": "TextField", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.textfield", + "stylesClassName": "TextFieldStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.textfield.TextFieldStyles", + "receiverClassName": "TextFieldStyles.Default", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.textfield.TextFieldStyles.Default", + "returnTypeName": "TextFieldStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.TextFieldStyle", + "modifyReceiverTypeName": "TextFieldStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.TextFieldStyleBuilder", + "holderName": "Default" + }, "variations": [ { "name": "Default", @@ -709,10 +3085,44 @@ } ] }, + { + "key": "text-field", + "coreName": "TextField", + "styleName": "SearchBar", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.textfield", + "stylesClassName": "TextFieldStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.textfield.TextFieldStyles", + "receiverClassName": "TextFieldStyles.SearchBar", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.textfield.TextFieldStyles.SearchBar", + "returnTypeName": "TextFieldStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.TextFieldStyle", + "modifyReceiverTypeName": "TextFieldStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.TextFieldStyleBuilder", + "holderName": "SearchBar" + }, + "variations": [ + { + "name": "Default", + "composeReference": "SearchBar.Default" + } + ] + }, { "key": "tooltip", "coreName": "Tooltip", "styleName": "Tooltip", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.tooltip", + "stylesClassName": "TooltipStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.tooltip.TooltipStyles", + "receiverClassName": "TooltipStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.tooltip.TooltipStyles.Companion", + "returnTypeName": "TooltipStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.TooltipStyle", + "modifyReceiverTypeName": "TooltipStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.TooltipStyleBuilder" + }, "variations": [ { "name": "Default", @@ -724,6 +3134,17 @@ "key": "modal", "coreName": "Modal", "styleName": "Modal", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.modal", + "stylesClassName": "ModalStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.modal.ModalStyles", + "receiverClassName": "ModalStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.modal.ModalStyles.Companion", + "returnTypeName": "ModalStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ModalStyle", + "modifyReceiverTypeName": "ModalStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ModalStyleBuilder" + }, "variations": [ { "name": "Default", @@ -735,14 +3156,70 @@ "key": "rect-skeleton", "coreName": "RectSkeleton", "styleName": "RectSkeleton", + "props": [ + { + "name": "type", + "values": [ + "default", + "pulse" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.sbcom.styles.rectskeleton", + "stylesClassName": "RectSkeletonStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.rectskeleton.RectSkeletonStyles", + "receiverClassName": "RectSkeletonStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.rectskeleton.RectSkeletonStyles.Companion", + "returnTypeName": "RectSkeletonStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.RectSkeletonStyle", + "modifyReceiverTypeName": "RectSkeletonStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.RectSkeletonStyleBuilder", + "params": [ + { + "name": "type", + "type": "enum", + "required": false, + "typeName": "RectSkeletonType", + "typeQualifiedName": "com.sdds.sbcom.styles.rectskeleton.RectSkeletonType", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "pulse", + "codeName": "Pulse" + } + ] + } + ] + }, "variations": [ { "name": "default", - "composeReference": "RectSkeleton.Default" + "composeReference": "RectSkeleton.Default", + "props": [ + { + "name": "type", + "value": "default" + } + ] }, { "name": "pulse", - "composeReference": "RectSkeleton.Pulse" + "composeReference": "RectSkeleton.Pulse", + "props": [ + { + "name": "type", + "value": "pulse" + } + ] } ] }, @@ -750,86 +3227,384 @@ "key": "spinner", "coreName": "Spinner", "styleName": "Spinner", + "props": [ + { + "name": "size", + "values": [ + "size-40", + "size-32", + "size-24", + "size-16" + ], + "defaultValue": "size-40" + }, + { + "name": "mode-color", + "values": [ + "primary", + "secondary", + "global-white", + "accent", + "danger" + ], + "defaultValue": "primary" + } + ], + "styleApi": { + "packageName": "com.sdds.sbcom.styles.spinner", + "stylesClassName": "SpinnerStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.spinner.SpinnerStyles", + "receiverClassName": "SpinnerStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.spinner.SpinnerStyles.Companion", + "returnTypeName": "SpinnerStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.SpinnerStyle", + "modifyReceiverTypeName": "SpinnerStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.SpinnerStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "SpinnerSize", + "typeQualifiedName": "com.sdds.sbcom.styles.spinner.SpinnerSize", + "defaultValue": { + "value": "size-40", + "codeName": "Size40" + }, + "values": [ + { + "value": "size-40", + "codeName": "Size40" + }, + { + "value": "size-32", + "codeName": "Size32" + }, + { + "value": "size-24", + "codeName": "Size24" + }, + { + "value": "size-16", + "codeName": "Size16" + } + ] + }, + { + "name": "modeColor", + "type": "enum", + "required": false, + "typeName": "SpinnerModeColor", + "typeQualifiedName": "com.sdds.sbcom.styles.spinner.SpinnerModeColor", + "defaultValue": { + "value": "primary", + "codeName": "Primary" + }, + "values": [ + { + "value": "primary", + "codeName": "Primary" + }, + { + "value": "secondary", + "codeName": "Secondary" + }, + { + "value": "global-white", + "codeName": "GlobalWhite" + }, + { + "value": "accent", + "codeName": "Accent" + }, + { + "value": "danger", + "codeName": "Danger" + } + ] + } + ] + }, "variations": [ { "name": "size-40.mode-color-primary", - "composeReference": "Spinner.Size40.ModeColorPrimary" + "composeReference": "Spinner.Size40.ModeColorPrimary", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "mode-color", + "value": "primary" + } + ] }, { "name": "size-40.mode-color-secondary", - "composeReference": "Spinner.Size40.ModeColorSecondary" + "composeReference": "Spinner.Size40.ModeColorSecondary", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "mode-color", + "value": "secondary" + } + ] }, { "name": "size-40.mode-color-global-white", - "composeReference": "Spinner.Size40.ModeColorGlobalWhite" + "composeReference": "Spinner.Size40.ModeColorGlobalWhite", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "mode-color", + "value": "global-white" + } + ] }, { "name": "size-40.mode-color-accent", - "composeReference": "Spinner.Size40.ModeColorAccent" + "composeReference": "Spinner.Size40.ModeColorAccent", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "mode-color", + "value": "accent" + } + ] }, { "name": "size-40.mode-color-danger", - "composeReference": "Spinner.Size40.ModeColorDanger" + "composeReference": "Spinner.Size40.ModeColorDanger", + "props": [ + { + "name": "size", + "value": "size-40" + }, + { + "name": "mode-color", + "value": "danger" + } + ] }, { "name": "size-32.mode-color-primary", - "composeReference": "Spinner.Size32.ModeColorPrimary" + "composeReference": "Spinner.Size32.ModeColorPrimary", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "mode-color", + "value": "primary" + } + ] }, { "name": "size-32.mode-color-secondary", - "composeReference": "Spinner.Size32.ModeColorSecondary" + "composeReference": "Spinner.Size32.ModeColorSecondary", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "mode-color", + "value": "secondary" + } + ] }, { "name": "size-32.mode-color-global-white", - "composeReference": "Spinner.Size32.ModeColorGlobalWhite" + "composeReference": "Spinner.Size32.ModeColorGlobalWhite", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "mode-color", + "value": "global-white" + } + ] }, { "name": "size-32.mode-color-accent", - "composeReference": "Spinner.Size32.ModeColorAccent" + "composeReference": "Spinner.Size32.ModeColorAccent", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "mode-color", + "value": "accent" + } + ] }, { "name": "size-32.mode-color-danger", - "composeReference": "Spinner.Size32.ModeColorDanger" + "composeReference": "Spinner.Size32.ModeColorDanger", + "props": [ + { + "name": "size", + "value": "size-32" + }, + { + "name": "mode-color", + "value": "danger" + } + ] }, { "name": "size-24.mode-color-primary", - "composeReference": "Spinner.Size24.ModeColorPrimary" + "composeReference": "Spinner.Size24.ModeColorPrimary", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "mode-color", + "value": "primary" + } + ] }, { "name": "size-24.mode-color-secondary", - "composeReference": "Spinner.Size24.ModeColorSecondary" + "composeReference": "Spinner.Size24.ModeColorSecondary", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "mode-color", + "value": "secondary" + } + ] }, { "name": "size-24.mode-color-global-white", - "composeReference": "Spinner.Size24.ModeColorGlobalWhite" + "composeReference": "Spinner.Size24.ModeColorGlobalWhite", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "mode-color", + "value": "global-white" + } + ] }, { "name": "size-24.mode-color-accent", - "composeReference": "Spinner.Size24.ModeColorAccent" + "composeReference": "Spinner.Size24.ModeColorAccent", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "mode-color", + "value": "accent" + } + ] }, { "name": "size-24.mode-color-danger", - "composeReference": "Spinner.Size24.ModeColorDanger" + "composeReference": "Spinner.Size24.ModeColorDanger", + "props": [ + { + "name": "size", + "value": "size-24" + }, + { + "name": "mode-color", + "value": "danger" + } + ] }, { "name": "size-16.mode-color-primary", - "composeReference": "Spinner.Size16.ModeColorPrimary" + "composeReference": "Spinner.Size16.ModeColorPrimary", + "props": [ + { + "name": "size", + "value": "size-16" + }, + { + "name": "mode-color", + "value": "primary" + } + ] }, { "name": "size-16.mode-color-secondary", - "composeReference": "Spinner.Size16.ModeColorSecondary" + "composeReference": "Spinner.Size16.ModeColorSecondary", + "props": [ + { + "name": "size", + "value": "size-16" + }, + { + "name": "mode-color", + "value": "secondary" + } + ] }, { "name": "size-16.mode-color-global-white", - "composeReference": "Spinner.Size16.ModeColorGlobalWhite" + "composeReference": "Spinner.Size16.ModeColorGlobalWhite", + "props": [ + { + "name": "size", + "value": "size-16" + }, + { + "name": "mode-color", + "value": "global-white" + } + ] }, { "name": "size-16.mode-color-accent", - "composeReference": "Spinner.Size16.ModeColorAccent" + "composeReference": "Spinner.Size16.ModeColorAccent", + "props": [ + { + "name": "size", + "value": "size-16" + }, + { + "name": "mode-color", + "value": "accent" + } + ] }, { "name": "size-16.mode-color-danger", - "composeReference": "Spinner.Size16.ModeColorDanger" + "composeReference": "Spinner.Size16.ModeColorDanger", + "props": [ + { + "name": "size", + "value": "size-16" + }, + { + "name": "mode-color", + "value": "danger" + } + ] } ] }, @@ -837,6 +3612,18 @@ "key": "list", "coreName": "List", "styleName": "DropdownMenuList", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.list", + "stylesClassName": "ListStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.list.ListStyles", + "receiverClassName": "ListStyles.DropdownMenuList", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.list.ListStyles.DropdownMenuList", + "returnTypeName": "ListStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ListStyle", + "modifyReceiverTypeName": "ListStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ListStyleBuilder", + "holderName": "DropdownMenuList" + }, "variations": [ { "name": "Default", @@ -845,24 +3632,48 @@ ] }, { - "key": "list-item", - "coreName": "ListItem", - "styleName": "DropdownMenuItem", + "key": "list", + "coreName": "List", + "styleName": "List", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.list", + "stylesClassName": "ListStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.list.ListStyles", + "receiverClassName": "ListStyles.Default", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.list.ListStyles.Default", + "returnTypeName": "ListStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ListStyle", + "modifyReceiverTypeName": "ListStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ListStyleBuilder", + "holderName": "Default" + }, "variations": [ { "name": "Default", - "composeReference": "DropdownMenuItem.Default" + "composeReference": "List.Default" } ] }, { - "key": "list", - "coreName": "List", - "styleName": "List", + "key": "list-item", + "coreName": "ListItem", + "styleName": "DropdownMenuItem", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.listitem", + "stylesClassName": "ListItemStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.listitem.ListItemStyles", + "receiverClassName": "ListItemStyles.DropdownMenuItem", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.listitem.ListItemStyles.DropdownMenuItem", + "returnTypeName": "ListItemStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ListItemStyle", + "modifyReceiverTypeName": "ListItemStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ListItemStyleBuilder", + "holderName": "DropdownMenuItem" + }, "variations": [ { "name": "Default", - "composeReference": "List.Default" + "composeReference": "DropdownMenuItem.Default" } ] }, @@ -870,6 +3681,18 @@ "key": "list-item", "coreName": "ListItem", "styleName": "ListItem", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.listitem", + "stylesClassName": "ListItemStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.listitem.ListItemStyles", + "receiverClassName": "ListItemStyles.Default", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.listitem.ListItemStyles.Default", + "returnTypeName": "ListItemStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ListItemStyle", + "modifyReceiverTypeName": "ListItemStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ListItemStyleBuilder", + "holderName": "Default" + }, "variations": [ { "name": "Default", @@ -881,6 +3704,17 @@ "key": "dropdown-menu", "coreName": "DropdownMenu", "styleName": "DropdownMenu", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.dropdownmenu", + "stylesClassName": "DropdownMenuStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.dropdownmenu.DropdownMenuStyles", + "receiverClassName": "DropdownMenuStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.dropdownmenu.DropdownMenuStyles.Companion", + "returnTypeName": "DropdownMenuStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.DropdownMenuStyle", + "modifyReceiverTypeName": "DropdownMenuStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.DropdownMenuStyleBuilder" + }, "variations": [ { "name": "Default", @@ -892,6 +3726,17 @@ "key": "scroll-bar", "coreName": "ScrollBar", "styleName": "ScrollBar", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.scrollbar", + "stylesClassName": "ScrollBarStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.scrollbar.ScrollBarStyles", + "receiverClassName": "ScrollBarStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.scrollbar.ScrollBarStyles.Companion", + "returnTypeName": "ScrollBarStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ScrollBarStyle", + "modifyReceiverTypeName": "ScrollBarStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ScrollBarStyleBuilder" + }, "variations": [ { "name": "Default", @@ -903,6 +3748,18 @@ "key": "button-group", "coreName": "ButtonGroup", "styleName": "BasicButtonGroup", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.buttongroup", + "stylesClassName": "ButtonGroupStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.buttongroup.ButtonGroupStyles", + "receiverClassName": "ButtonGroupStyles.BasicButtonGroup", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.buttongroup.ButtonGroupStyles.BasicButtonGroup", + "returnTypeName": "ButtonGroupStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ButtonGroupStyle", + "modifyReceiverTypeName": "ButtonGroupStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ButtonGroupStyleBuilder", + "holderName": "BasicButtonGroup" + }, "variations": [ { "name": "Default", @@ -914,6 +3771,18 @@ "key": "button-group", "coreName": "ButtonGroup", "styleName": "IconButtonGroup", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.buttongroup", + "stylesClassName": "ButtonGroupStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.buttongroup.ButtonGroupStyles", + "receiverClassName": "ButtonGroupStyles.IconButtonGroup", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.buttongroup.ButtonGroupStyles.IconButtonGroup", + "returnTypeName": "ButtonGroupStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ButtonGroupStyle", + "modifyReceiverTypeName": "ButtonGroupStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ButtonGroupStyleBuilder", + "holderName": "IconButtonGroup" + }, "variations": [ { "name": "Default", @@ -925,6 +3794,17 @@ "key": "tab-bar", "coreName": "TabBar", "styleName": "TabBar", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.tabbar", + "stylesClassName": "TabBarStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.tabbar.TabBarStyles", + "receiverClassName": "TabBarStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.tabbar.TabBarStyles.Companion", + "returnTypeName": "TabBarStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.TabBarStyle", + "modifyReceiverTypeName": "TabBarStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.TabBarStyleBuilder" + }, "variations": [ { "name": "Default", @@ -936,6 +3816,17 @@ "key": "tab-bar-item", "coreName": "TabBarItem", "styleName": "TabBarItem", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.tabbaritem", + "stylesClassName": "TabBarItemStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.tabbaritem.TabBarItemStyles", + "receiverClassName": "TabBarItemStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.tabbaritem.TabBarItemStyles.Companion", + "returnTypeName": "TabBarItemStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.TabBarItemStyle", + "modifyReceiverTypeName": "TabBarItemStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.TabBarItemStyleBuilder" + }, "variations": [ { "name": "Default", @@ -947,6 +3838,17 @@ "key": "tabs", "coreName": "Tabs", "styleName": "TabsFolder", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.tabs", + "stylesClassName": "TabsStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.tabs.TabsStyles", + "receiverClassName": "TabsStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.tabs.TabsStyles.Companion", + "returnTypeName": "TabsStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.TabsStyle", + "modifyReceiverTypeName": "TabsStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.TabsStyleBuilder" + }, "variations": [ { "name": "Default", @@ -958,6 +3860,17 @@ "key": "tab-item", "coreName": "TabItem", "styleName": "TabItemFolder", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.tabitem", + "stylesClassName": "TabItemStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.tabitem.TabItemStyles", + "receiverClassName": "TabItemStyles.Companion", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.tabitem.TabItemStyles.Companion", + "returnTypeName": "TabItemStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.TabItemStyle", + "modifyReceiverTypeName": "TabItemStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.TabItemStyleBuilder" + }, "variations": [ { "name": "Default", @@ -969,6 +3882,18 @@ "key": "collapsing-navigation-bar", "coreName": "CollapsingNavigationBar", "styleName": "CollapsingNavigationBarMainPage", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.collapsingnavigationbar", + "stylesClassName": "CollapsingNavigationBarStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.collapsingnavigationbar.CollapsingNavigationBarStyles", + "receiverClassName": "CollapsingNavigationBarStyles.MainPage", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.collapsingnavigationbar.CollapsingNavigationBarStyles.MainPage", + "returnTypeName": "CollapsingNavigationBarStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.CollapsingNavigationBarStyle", + "modifyReceiverTypeName": "CollapsingNavigationBarStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.CollapsingNavigationBarStyleBuilder", + "holderName": "MainPage" + }, "variations": [ { "name": "Default", @@ -980,6 +3905,18 @@ "key": "collapsing-navigation-bar", "coreName": "CollapsingNavigationBar", "styleName": "CollapsingNavigationBarInternalPage", + "styleApi": { + "packageName": "com.sdds.sbcom.styles.collapsingnavigationbar", + "stylesClassName": "CollapsingNavigationBarStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.collapsingnavigationbar.CollapsingNavigationBarStyles", + "receiverClassName": "CollapsingNavigationBarStyles.InternalPage", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.collapsingnavigationbar.CollapsingNavigationBarStyles.InternalPage", + "returnTypeName": "CollapsingNavigationBarStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.CollapsingNavigationBarStyle", + "modifyReceiverTypeName": "CollapsingNavigationBarStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.CollapsingNavigationBarStyleBuilder", + "holderName": "InternalPage" + }, "variations": [ { "name": "Default", @@ -987,29 +3924,75 @@ } ] }, - { - "key": "text-field", - "coreName": "TextField", - "styleName": "SearchBar", - "variations": [ - { - "name": "Default", - "composeReference": "SearchBar.Default" - } - ] - }, { "key": "icon-badge", "coreName": "IconBadge", "styleName": "Mention", + "props": [ + { + "name": "mute", + "values": [ + "no", + "yes" + ], + "defaultValue": "no" + } + ], + "styleApi": { + "packageName": "com.sdds.sbcom.styles.iconbadge", + "stylesClassName": "IconBadgeStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.iconbadge.IconBadgeStyles", + "receiverClassName": "IconBadgeStyles.Mention", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.iconbadge.IconBadgeStyles.Mention", + "returnTypeName": "BadgeStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.BadgeStyle", + "modifyReceiverTypeName": "IconBadgeStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.IconBadgeStyleBuilder", + "holderName": "Mention", + "params": [ + { + "name": "mute", + "type": "enum", + "required": false, + "typeName": "IconBadgeMentionMute", + "typeQualifiedName": "com.sdds.sbcom.styles.iconbadge.IconBadgeMentionMute", + "defaultValue": { + "value": "no", + "codeName": "No" + }, + "values": [ + { + "value": "no", + "codeName": "No" + }, + { + "value": "yes", + "codeName": "Yes" + } + ] + } + ] + }, "variations": [ { "name": "mute-no", - "composeReference": "Mention.MuteNo" + "composeReference": "Mention.MuteNo", + "props": [ + { + "name": "mute", + "value": "no" + } + ] }, { "name": "mute-yes", - "composeReference": "Mention.MuteYes" + "composeReference": "Mention.MuteYes", + "props": [ + { + "name": "mute", + "value": "yes" + } + ] } ] }, @@ -1017,22 +4000,101 @@ "key": "icon-badge", "coreName": "IconBadge", "styleName": "VoiceChatBadge", + "props": [ + { + "name": "size", + "values": [ + "size-20", + "size-18", + "size-16", + "size-14" + ], + "defaultValue": "size-20" + } + ], + "styleApi": { + "packageName": "com.sdds.sbcom.styles.iconbadge", + "stylesClassName": "IconBadgeStyles", + "stylesClassQualifiedName": "com.sdds.sbcom.styles.iconbadge.IconBadgeStyles", + "receiverClassName": "IconBadgeStyles.VoiceChatBadge", + "receiverClassQualifiedName": "com.sdds.sbcom.styles.iconbadge.IconBadgeStyles.VoiceChatBadge", + "returnTypeName": "BadgeStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.BadgeStyle", + "modifyReceiverTypeName": "IconBadgeStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.IconBadgeStyleBuilder", + "holderName": "VoiceChatBadge", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "IconBadgeVoiceChatBadgeSize", + "typeQualifiedName": "com.sdds.sbcom.styles.iconbadge.IconBadgeVoiceChatBadgeSize", + "defaultValue": { + "value": "size-20", + "codeName": "Size20" + }, + "values": [ + { + "value": "size-20", + "codeName": "Size20" + }, + { + "value": "size-18", + "codeName": "Size18" + }, + { + "value": "size-16", + "codeName": "Size16" + }, + { + "value": "size-14", + "codeName": "Size14" + } + ] + } + ] + }, "variations": [ { "name": "size-20", - "composeReference": "VoiceChatBadge.Size20" + "composeReference": "VoiceChatBadge.Size20", + "props": [ + { + "name": "size", + "value": "size-20" + } + ] }, { "name": "size-18", - "composeReference": "VoiceChatBadge.Size18" + "composeReference": "VoiceChatBadge.Size18", + "props": [ + { + "name": "size", + "value": "size-18" + } + ] }, { "name": "size-16", - "composeReference": "VoiceChatBadge.Size16" + "composeReference": "VoiceChatBadge.Size16", + "props": [ + { + "name": "size", + "value": "size-16" + } + ] }, { "name": "size-14", - "composeReference": "VoiceChatBadge.Size14" + "composeReference": "VoiceChatBadge.Size14", + "props": [ + { + "name": "size", + "value": "size-14" + } + ] } ] } diff --git a/tokens/sdds-sbcom-compose/gradle.properties b/tokens/sdds-sbcom-compose/gradle.properties index 2d1a971094..b2733a21b8 100644 --- a/tokens/sdds-sbcom-compose/gradle.properties +++ b/tokens/sdds-sbcom-compose/gradle.properties @@ -6,7 +6,7 @@ versionMinor=4 versionPatch=0 theme-version=0.8.0-alpha -components-version=0.2.0 +components-version=0.3.0 summary.key=sdds-sbcom diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarGroupVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarGroupVariationsCompose.kt index 30c9d37816..21ef29eb20 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarGroupVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarGroupVariationsCompose.kt @@ -11,12 +11,30 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.AvatarGroupStyle import com.sdds.compose.uikit.style.style +import com.sdds.sandbox.Property import com.sdds.sbcom.styles.avatargroup.AvatarGroup +import com.sdds.sbcom.styles.avatargroup.AvatarGroupSize +import com.sdds.sbcom.styles.avatargroup.AvatarGroupStyles import com.sdds.sbcom.styles.avatargroup.Size24 +import com.sdds.sbcom.styles.avatargroup.resolve internal object SddsSbcomAvatarGroupVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "Size24", variants = listOf("Size24")), + ) + override val variations: Map> = mapOf( - "Size24" to ComposeStyleReference { AvatarGroup.Size24.style() }, + "AvatarGroup.Size24" to ComposeStyleReference { AvatarGroup.Size24.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return AvatarGroupStyles.resolve( + size = when (bindings["size"]?.toString()) { + "Size24" -> AvatarGroupSize.Size24 + else -> AvatarGroupSize.Size24 + }, + ).key + } } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarIndicatorVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarIndicatorVariationsCompose.kt index 69078f8e0e..2262e1f23a 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarIndicatorVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarIndicatorVariationsCompose.kt @@ -11,20 +11,46 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.IndicatorStyle import com.sdds.compose.uikit.style.style +import com.sdds.sandbox.Property import com.sdds.sbcom.styles.indicator.AvatarIndicator +import com.sdds.sbcom.styles.indicator.IndicatorAvatarIndicatorSize +import com.sdds.sbcom.styles.indicator.IndicatorStyles import com.sdds.sbcom.styles.indicator.Size10 import com.sdds.sbcom.styles.indicator.Size12 import com.sdds.sbcom.styles.indicator.Size14 import com.sdds.sbcom.styles.indicator.Size6 import com.sdds.sbcom.styles.indicator.Size8 +import com.sdds.sbcom.styles.indicator.resolve internal object SddsSbcomAvatarIndicatorVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "size", + value = "Size14", + variants = listOf("Size14", "Size12", "Size10", "Size8", "Size6"), + ), + ) + override val variations: Map> = mapOf( - "Size14" to ComposeStyleReference { AvatarIndicator.Size14.style() }, - "Size12" to ComposeStyleReference { AvatarIndicator.Size12.style() }, - "Size10" to ComposeStyleReference { AvatarIndicator.Size10.style() }, - "Size8" to ComposeStyleReference { AvatarIndicator.Size8.style() }, - "Size6" to ComposeStyleReference { AvatarIndicator.Size6.style() }, + "AvatarIndicator.Size14" to ComposeStyleReference { AvatarIndicator.Size14.style() }, + "AvatarIndicator.Size12" to ComposeStyleReference { AvatarIndicator.Size12.style() }, + "AvatarIndicator.Size10" to ComposeStyleReference { AvatarIndicator.Size10.style() }, + "AvatarIndicator.Size8" to ComposeStyleReference { AvatarIndicator.Size8.style() }, + "AvatarIndicator.Size6" to ComposeStyleReference { AvatarIndicator.Size6.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return IndicatorStyles.AvatarIndicator.resolve( + size = when (bindings["size"]?.toString()) { + "Size14" -> IndicatorAvatarIndicatorSize.Size14 + "Size12" -> IndicatorAvatarIndicatorSize.Size12 + "Size10" -> IndicatorAvatarIndicatorSize.Size10 + "Size8" -> IndicatorAvatarIndicatorSize.Size8 + "Size6" -> IndicatorAvatarIndicatorSize.Size6 + else -> IndicatorAvatarIndicatorSize.Size14 + }, + ).key + } } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarVariationsCompose.kt index 69af09adfa..649b286c0f 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarVariationsCompose.kt @@ -11,7 +11,10 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.AvatarStyle import com.sdds.compose.uikit.style.style +import com.sdds.sandbox.Property import com.sdds.sbcom.styles.avatar.Avatar +import com.sdds.sbcom.styles.avatar.AvatarSize +import com.sdds.sbcom.styles.avatar.AvatarStyles import com.sdds.sbcom.styles.avatar.Size24 import com.sdds.sbcom.styles.avatar.Size26 import com.sdds.sbcom.styles.avatar.Size32 @@ -21,18 +24,45 @@ import com.sdds.sbcom.styles.avatar.Size44 import com.sdds.sbcom.styles.avatar.Size56 import com.sdds.sbcom.styles.avatar.Size64 import com.sdds.sbcom.styles.avatar.Size72 +import com.sdds.sbcom.styles.avatar.resolve internal object SddsSbcomAvatarVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "size", + value = "Size72", + variants = listOf("Size72", "Size64", "Size56", "Size44", "Size40", "Size36", "Size32", "Size26", "Size24"), + ), + ) + override val variations: Map> = mapOf( - "Size72" to ComposeStyleReference { Avatar.Size72.style() }, - "Size64" to ComposeStyleReference { Avatar.Size64.style() }, - "Size56" to ComposeStyleReference { Avatar.Size56.style() }, - "Size44" to ComposeStyleReference { Avatar.Size44.style() }, - "Size40" to ComposeStyleReference { Avatar.Size40.style() }, - "Size36" to ComposeStyleReference { Avatar.Size36.style() }, - "Size32" to ComposeStyleReference { Avatar.Size32.style() }, - "Size26" to ComposeStyleReference { Avatar.Size26.style() }, - "Size24" to ComposeStyleReference { Avatar.Size24.style() }, + "Avatar.Size72" to ComposeStyleReference { Avatar.Size72.style() }, + "Avatar.Size64" to ComposeStyleReference { Avatar.Size64.style() }, + "Avatar.Size56" to ComposeStyleReference { Avatar.Size56.style() }, + "Avatar.Size44" to ComposeStyleReference { Avatar.Size44.style() }, + "Avatar.Size40" to ComposeStyleReference { Avatar.Size40.style() }, + "Avatar.Size36" to ComposeStyleReference { Avatar.Size36.style() }, + "Avatar.Size32" to ComposeStyleReference { Avatar.Size32.style() }, + "Avatar.Size26" to ComposeStyleReference { Avatar.Size26.style() }, + "Avatar.Size24" to ComposeStyleReference { Avatar.Size24.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return AvatarStyles.resolve( + size = when (bindings["size"]?.toString()) { + "Size72" -> AvatarSize.Size72 + "Size64" -> AvatarSize.Size64 + "Size56" -> AvatarSize.Size56 + "Size44" -> AvatarSize.Size44 + "Size40" -> AvatarSize.Size40 + "Size36" -> AvatarSize.Size36 + "Size32" -> AvatarSize.Size32 + "Size26" -> AvatarSize.Size26 + "Size24" -> AvatarSize.Size24 + else -> AvatarSize.Size72 + }, + ).key + } } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonGroupVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonGroupVariationsCompose.kt index 7f4b5080e7..901ab5e7e6 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonGroupVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonGroupVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.buttongroup.BasicButtonGroup import com.sdds.sbcom.styles.buttongroup.Default internal object SddsSbcomBasicButtonGroupVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { BasicButtonGroup.Default.style() }, + "BasicButtonGroup.Default" to ComposeStyleReference { BasicButtonGroup.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonVariationsCompose.kt index fc57af3ee7..1a10aa22d2 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonVariationsCompose.kt @@ -11,7 +11,12 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.ButtonStyle import com.sdds.compose.uikit.style.style +import com.sdds.sandbox.Property import com.sdds.sbcom.styles.basicbutton.BasicButton +import com.sdds.sbcom.styles.basicbutton.BasicButtonBg +import com.sdds.sbcom.styles.basicbutton.BasicButtonMode +import com.sdds.sbcom.styles.basicbutton.BasicButtonSize +import com.sdds.sbcom.styles.basicbutton.BasicButtonStyles import com.sdds.sbcom.styles.basicbutton.BgNo import com.sdds.sbcom.styles.basicbutton.ModeAccentFilled import com.sdds.sbcom.styles.basicbutton.ModeAccentGrey @@ -22,49 +27,98 @@ import com.sdds.sbcom.styles.basicbutton.Size24 import com.sdds.sbcom.styles.basicbutton.Size32 import com.sdds.sbcom.styles.basicbutton.Size40 import com.sdds.sbcom.styles.basicbutton.Size48 +import com.sdds.sbcom.styles.basicbutton.resolve internal object SddsSbcomBasicButtonVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "size", + value = "Size48", + variants = listOf("Size48", "Size40", "Size32", "Size24"), + ), + Property.SingleChoiceProperty(name = "bg", value = "Yes", variants = listOf("Yes", "No")), + Property.SingleChoiceProperty( + name = "mode", + value = "Primary", + variants = listOf("Primary", "AccentFilled", "AccentWhite", "AccentGrey", "DangerTint"), + ), + ) + override val variations: Map> = mapOf( - "Size48.ModePrimary" to ComposeStyleReference { BasicButton.Size48.ModePrimary.style() }, - "Size48.ModeAccentFilled" to ComposeStyleReference { BasicButton.Size48.ModeAccentFilled.style() }, - "Size48.ModeAccentWhite" to ComposeStyleReference { BasicButton.Size48.ModeAccentWhite.style() }, - "Size48.ModeAccentGrey" to ComposeStyleReference { BasicButton.Size48.ModeAccentGrey.style() }, - "Size48.ModeDangerTint" to ComposeStyleReference { BasicButton.Size48.ModeDangerTint.style() }, - "Size48.BgNo.ModePrimary" to ComposeStyleReference { BasicButton.Size48.BgNo.ModePrimary.style() }, - "Size48.BgNo.ModeAccentFilled" to ComposeStyleReference { BasicButton.Size48.BgNo.ModeAccentFilled.style() }, - "Size48.BgNo.ModeAccentWhite" to ComposeStyleReference { BasicButton.Size48.BgNo.ModeAccentWhite.style() }, - "Size48.BgNo.ModeAccentGrey" to ComposeStyleReference { BasicButton.Size48.BgNo.ModeAccentGrey.style() }, - "Size48.BgNo.ModeDangerTint" to ComposeStyleReference { BasicButton.Size48.BgNo.ModeDangerTint.style() }, - "Size40.ModePrimary" to ComposeStyleReference { BasicButton.Size40.ModePrimary.style() }, - "Size40.ModeAccentFilled" to ComposeStyleReference { BasicButton.Size40.ModeAccentFilled.style() }, - "Size40.ModeAccentWhite" to ComposeStyleReference { BasicButton.Size40.ModeAccentWhite.style() }, - "Size40.ModeAccentGrey" to ComposeStyleReference { BasicButton.Size40.ModeAccentGrey.style() }, - "Size40.ModeDangerTint" to ComposeStyleReference { BasicButton.Size40.ModeDangerTint.style() }, - "Size40.BgNo.ModePrimary" to ComposeStyleReference { BasicButton.Size40.BgNo.ModePrimary.style() }, - "Size40.BgNo.ModeAccentFilled" to ComposeStyleReference { BasicButton.Size40.BgNo.ModeAccentFilled.style() }, - "Size40.BgNo.ModeAccentWhite" to ComposeStyleReference { BasicButton.Size40.BgNo.ModeAccentWhite.style() }, - "Size40.BgNo.ModeAccentGrey" to ComposeStyleReference { BasicButton.Size40.BgNo.ModeAccentGrey.style() }, - "Size40.BgNo.ModeDangerTint" to ComposeStyleReference { BasicButton.Size40.BgNo.ModeDangerTint.style() }, - "Size32.ModePrimary" to ComposeStyleReference { BasicButton.Size32.ModePrimary.style() }, - "Size32.ModeAccentFilled" to ComposeStyleReference { BasicButton.Size32.ModeAccentFilled.style() }, - "Size32.ModeAccentWhite" to ComposeStyleReference { BasicButton.Size32.ModeAccentWhite.style() }, - "Size32.ModeAccentGrey" to ComposeStyleReference { BasicButton.Size32.ModeAccentGrey.style() }, - "Size32.ModeDangerTint" to ComposeStyleReference { BasicButton.Size32.ModeDangerTint.style() }, - "Size32.BgNo.ModePrimary" to ComposeStyleReference { BasicButton.Size32.BgNo.ModePrimary.style() }, - "Size32.BgNo.ModeAccentFilled" to ComposeStyleReference { BasicButton.Size32.BgNo.ModeAccentFilled.style() }, - "Size32.BgNo.ModeAccentWhite" to ComposeStyleReference { BasicButton.Size32.BgNo.ModeAccentWhite.style() }, - "Size32.BgNo.ModeAccentGrey" to ComposeStyleReference { BasicButton.Size32.BgNo.ModeAccentGrey.style() }, - "Size32.BgNo.ModeDangerTint" to ComposeStyleReference { BasicButton.Size32.BgNo.ModeDangerTint.style() }, - "Size24.ModePrimary" to ComposeStyleReference { BasicButton.Size24.ModePrimary.style() }, - "Size24.ModeAccentFilled" to ComposeStyleReference { BasicButton.Size24.ModeAccentFilled.style() }, - "Size24.ModeAccentWhite" to ComposeStyleReference { BasicButton.Size24.ModeAccentWhite.style() }, - "Size24.ModeAccentGrey" to ComposeStyleReference { BasicButton.Size24.ModeAccentGrey.style() }, - "Size24.ModeDangerTint" to ComposeStyleReference { BasicButton.Size24.ModeDangerTint.style() }, - "Size24.BgNo.ModePrimary" to ComposeStyleReference { BasicButton.Size24.BgNo.ModePrimary.style() }, - "Size24.BgNo.ModeAccentFilled" to ComposeStyleReference { BasicButton.Size24.BgNo.ModeAccentFilled.style() }, - "Size24.BgNo.ModeAccentWhite" to ComposeStyleReference { BasicButton.Size24.BgNo.ModeAccentWhite.style() }, - "Size24.BgNo.ModeAccentGrey" to ComposeStyleReference { BasicButton.Size24.BgNo.ModeAccentGrey.style() }, - "Size24.BgNo.ModeDangerTint" to ComposeStyleReference { BasicButton.Size24.BgNo.ModeDangerTint.style() }, + "BasicButton.Size48.ModePrimary" to ComposeStyleReference { BasicButton.Size48.ModePrimary.style() }, + "BasicButton.Size48.ModeAccentFilled" to ComposeStyleReference { BasicButton.Size48.ModeAccentFilled.style() }, + "BasicButton.Size48.ModeAccentWhite" to ComposeStyleReference { BasicButton.Size48.ModeAccentWhite.style() }, + "BasicButton.Size48.ModeAccentGrey" to ComposeStyleReference { BasicButton.Size48.ModeAccentGrey.style() }, + "BasicButton.Size48.ModeDangerTint" to ComposeStyleReference { BasicButton.Size48.ModeDangerTint.style() }, + "BasicButton.Size48.BgNo.ModePrimary" to ComposeStyleReference { BasicButton.Size48.BgNo.ModePrimary.style() }, + "BasicButton.Size48.BgNo.ModeAccentFilled" to ComposeStyleReference { + BasicButton.Size48.BgNo.ModeAccentFilled.style() + }, + "BasicButton.Size48.BgNo.ModeAccentWhite" to ComposeStyleReference { BasicButton.Size48.BgNo.ModeAccentWhite.style() }, + "BasicButton.Size48.BgNo.ModeAccentGrey" to ComposeStyleReference { BasicButton.Size48.BgNo.ModeAccentGrey.style() }, + "BasicButton.Size48.BgNo.ModeDangerTint" to ComposeStyleReference { BasicButton.Size48.BgNo.ModeDangerTint.style() }, + "BasicButton.Size40.ModePrimary" to ComposeStyleReference { BasicButton.Size40.ModePrimary.style() }, + "BasicButton.Size40.ModeAccentFilled" to ComposeStyleReference { BasicButton.Size40.ModeAccentFilled.style() }, + "BasicButton.Size40.ModeAccentWhite" to ComposeStyleReference { BasicButton.Size40.ModeAccentWhite.style() }, + "BasicButton.Size40.ModeAccentGrey" to ComposeStyleReference { BasicButton.Size40.ModeAccentGrey.style() }, + "BasicButton.Size40.ModeDangerTint" to ComposeStyleReference { BasicButton.Size40.ModeDangerTint.style() }, + "BasicButton.Size40.BgNo.ModePrimary" to ComposeStyleReference { BasicButton.Size40.BgNo.ModePrimary.style() }, + "BasicButton.Size40.BgNo.ModeAccentFilled" to ComposeStyleReference { + BasicButton.Size40.BgNo.ModeAccentFilled.style() + }, + "BasicButton.Size40.BgNo.ModeAccentWhite" to ComposeStyleReference { BasicButton.Size40.BgNo.ModeAccentWhite.style() }, + "BasicButton.Size40.BgNo.ModeAccentGrey" to ComposeStyleReference { BasicButton.Size40.BgNo.ModeAccentGrey.style() }, + "BasicButton.Size40.BgNo.ModeDangerTint" to ComposeStyleReference { BasicButton.Size40.BgNo.ModeDangerTint.style() }, + "BasicButton.Size32.ModePrimary" to ComposeStyleReference { BasicButton.Size32.ModePrimary.style() }, + "BasicButton.Size32.ModeAccentFilled" to ComposeStyleReference { BasicButton.Size32.ModeAccentFilled.style() }, + "BasicButton.Size32.ModeAccentWhite" to ComposeStyleReference { BasicButton.Size32.ModeAccentWhite.style() }, + "BasicButton.Size32.ModeAccentGrey" to ComposeStyleReference { BasicButton.Size32.ModeAccentGrey.style() }, + "BasicButton.Size32.ModeDangerTint" to ComposeStyleReference { BasicButton.Size32.ModeDangerTint.style() }, + "BasicButton.Size32.BgNo.ModePrimary" to ComposeStyleReference { BasicButton.Size32.BgNo.ModePrimary.style() }, + "BasicButton.Size32.BgNo.ModeAccentFilled" to ComposeStyleReference { + BasicButton.Size32.BgNo.ModeAccentFilled.style() + }, + "BasicButton.Size32.BgNo.ModeAccentWhite" to ComposeStyleReference { BasicButton.Size32.BgNo.ModeAccentWhite.style() }, + "BasicButton.Size32.BgNo.ModeAccentGrey" to ComposeStyleReference { BasicButton.Size32.BgNo.ModeAccentGrey.style() }, + "BasicButton.Size32.BgNo.ModeDangerTint" to ComposeStyleReference { BasicButton.Size32.BgNo.ModeDangerTint.style() }, + "BasicButton.Size24.ModePrimary" to ComposeStyleReference { BasicButton.Size24.ModePrimary.style() }, + "BasicButton.Size24.ModeAccentFilled" to ComposeStyleReference { BasicButton.Size24.ModeAccentFilled.style() }, + "BasicButton.Size24.ModeAccentWhite" to ComposeStyleReference { BasicButton.Size24.ModeAccentWhite.style() }, + "BasicButton.Size24.ModeAccentGrey" to ComposeStyleReference { BasicButton.Size24.ModeAccentGrey.style() }, + "BasicButton.Size24.ModeDangerTint" to ComposeStyleReference { BasicButton.Size24.ModeDangerTint.style() }, + "BasicButton.Size24.BgNo.ModePrimary" to ComposeStyleReference { BasicButton.Size24.BgNo.ModePrimary.style() }, + "BasicButton.Size24.BgNo.ModeAccentFilled" to ComposeStyleReference { + BasicButton.Size24.BgNo.ModeAccentFilled.style() + }, + "BasicButton.Size24.BgNo.ModeAccentWhite" to ComposeStyleReference { BasicButton.Size24.BgNo.ModeAccentWhite.style() }, + "BasicButton.Size24.BgNo.ModeAccentGrey" to ComposeStyleReference { BasicButton.Size24.BgNo.ModeAccentGrey.style() }, + "BasicButton.Size24.BgNo.ModeDangerTint" to ComposeStyleReference { BasicButton.Size24.BgNo.ModeDangerTint.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return BasicButtonStyles.resolve( + size = when (bindings["size"]?.toString()) { + "Size48" -> BasicButtonSize.Size48 + "Size40" -> BasicButtonSize.Size40 + "Size32" -> BasicButtonSize.Size32 + "Size24" -> BasicButtonSize.Size24 + else -> BasicButtonSize.Size48 + }, + bg = when (bindings["bg"]?.toString()) { + "Yes" -> BasicButtonBg.Yes + "No" -> BasicButtonBg.No + else -> BasicButtonBg.Yes + }, + mode = when (bindings["mode"]?.toString()) { + "Primary" -> BasicButtonMode.Primary + "AccentFilled" -> BasicButtonMode.AccentFilled + "AccentWhite" -> BasicButtonMode.AccentWhite + "AccentGrey" -> BasicButtonMode.AccentGrey + "DangerTint" -> BasicButtonMode.DangerTint + else -> BasicButtonMode.Primary + }, + ).key + } } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCheckBoxVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCheckBoxVariationsCompose.kt index b1eca900f8..ff632d21e1 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCheckBoxVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCheckBoxVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.checkbox.CheckBox import com.sdds.sbcom.styles.checkbox.Default internal object SddsSbcomCheckBoxVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { CheckBox.Default.style() }, + "CheckBox.Default" to ComposeStyleReference { CheckBox.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomChipGroupVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomChipGroupVariationsCompose.kt index b34f784b94..be6392f5a2 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomChipGroupVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomChipGroupVariationsCompose.kt @@ -11,14 +11,33 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.ChipGroupStyle import com.sdds.compose.uikit.style.style +import com.sdds.sandbox.Property import com.sdds.sbcom.styles.chipgroup.ChipGroup +import com.sdds.sbcom.styles.chipgroup.ChipGroupChipSlot +import com.sdds.sbcom.styles.chipgroup.ChipGroupStyles import com.sdds.sbcom.styles.chipgroup.ChipSlotAvatar import com.sdds.sbcom.styles.chipgroup.ChipSlotPadding +import com.sdds.sbcom.styles.chipgroup.resolve internal object SddsSbcomChipGroupVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "chipSlot", value = "Padding", variants = listOf("Padding", "Avatar")), + ) + override val variations: Map> = mapOf( - "ChipSlotPadding" to ComposeStyleReference { ChipGroup.ChipSlotPadding.style() }, - "ChipSlotAvatar" to ComposeStyleReference { ChipGroup.ChipSlotAvatar.style() }, + "ChipGroup.ChipSlotPadding" to ComposeStyleReference { ChipGroup.ChipSlotPadding.style() }, + "ChipGroup.ChipSlotAvatar" to ComposeStyleReference { ChipGroup.ChipSlotAvatar.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return ChipGroupStyles.resolve( + chipSlot = when (bindings["chipSlot"]?.toString()) { + "Padding" -> ChipGroupChipSlot.Padding + "Avatar" -> ChipGroupChipSlot.Avatar + else -> ChipGroupChipSlot.Padding + }, + ).key + } } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomChipVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomChipVariationsCompose.kt index 15202268e7..4c728cb435 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomChipVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomChipVariationsCompose.kt @@ -11,14 +11,33 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.ChipStyle import com.sdds.compose.uikit.style.style +import com.sdds.sandbox.Property import com.sdds.sbcom.styles.chip.Chip +import com.sdds.sbcom.styles.chip.ChipChipSlot import com.sdds.sbcom.styles.chip.ChipSlotAvatar import com.sdds.sbcom.styles.chip.ChipSlotPadding +import com.sdds.sbcom.styles.chip.ChipStyles +import com.sdds.sbcom.styles.chip.resolve internal object SddsSbcomChipVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "chipSlot", value = "Padding", variants = listOf("Padding", "Avatar")), + ) + override val variations: Map> = mapOf( - "ChipSlotPadding" to ComposeStyleReference { Chip.ChipSlotPadding.style() }, - "ChipSlotAvatar" to ComposeStyleReference { Chip.ChipSlotAvatar.style() }, + "Chip.ChipSlotPadding" to ComposeStyleReference { Chip.ChipSlotPadding.style() }, + "Chip.ChipSlotAvatar" to ComposeStyleReference { Chip.ChipSlotAvatar.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return ChipStyles.resolve( + chipSlot = when (bindings["chipSlot"]?.toString()) { + "Padding" -> ChipChipSlot.Padding + "Avatar" -> ChipChipSlot.Avatar + else -> ChipChipSlot.Padding + }, + ).key + } } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCircularProgressBarVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCircularProgressBarVariationsCompose.kt index 98bc4642a9..550c92f4e3 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCircularProgressBarVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCircularProgressBarVariationsCompose.kt @@ -11,7 +11,11 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.CircularProgressBarStyle import com.sdds.compose.uikit.style.style +import com.sdds.sandbox.Property import com.sdds.sbcom.styles.circularprogressbar.CircularProgressBar +import com.sdds.sbcom.styles.circularprogressbar.CircularProgressBarModeColor +import com.sdds.sbcom.styles.circularprogressbar.CircularProgressBarSize +import com.sdds.sbcom.styles.circularprogressbar.CircularProgressBarStyles import com.sdds.sbcom.styles.circularprogressbar.ModeColorAccent import com.sdds.sbcom.styles.circularprogressbar.ModeColorDanger import com.sdds.sbcom.styles.circularprogressbar.ModeColorGlobalWhite @@ -21,29 +25,104 @@ import com.sdds.sbcom.styles.circularprogressbar.Size16 import com.sdds.sbcom.styles.circularprogressbar.Size24 import com.sdds.sbcom.styles.circularprogressbar.Size32 import com.sdds.sbcom.styles.circularprogressbar.Size40 +import com.sdds.sbcom.styles.circularprogressbar.resolve internal object SddsSbcomCircularProgressBarVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "size", + value = "Size40", + variants = listOf("Size40", "Size32", "Size24", "Size16"), + ), + Property.SingleChoiceProperty( + name = "modeColor", + value = "Primary", + variants = listOf("Primary", "Secondary", "GlobalWhite", "Accent", "Danger"), + ), + ) + override val variations: Map> = mapOf( - "Size40.ModeColorPrimary" to ComposeStyleReference { CircularProgressBar.Size40.ModeColorPrimary.style() }, - "Size40.ModeColorSecondary" to ComposeStyleReference { CircularProgressBar.Size40.ModeColorSecondary.style() }, - "Size40.ModeColorGlobalWhite" to ComposeStyleReference { CircularProgressBar.Size40.ModeColorGlobalWhite.style() }, - "Size40.ModeColorAccent" to ComposeStyleReference { CircularProgressBar.Size40.ModeColorAccent.style() }, - "Size40.ModeColorDanger" to ComposeStyleReference { CircularProgressBar.Size40.ModeColorDanger.style() }, - "Size32.ModeColorPrimary" to ComposeStyleReference { CircularProgressBar.Size32.ModeColorPrimary.style() }, - "Size32.ModeColorSecondary" to ComposeStyleReference { CircularProgressBar.Size32.ModeColorSecondary.style() }, - "Size32.ModeColorGlobalWhite" to ComposeStyleReference { CircularProgressBar.Size32.ModeColorGlobalWhite.style() }, - "Size32.ModeColorAccent" to ComposeStyleReference { CircularProgressBar.Size32.ModeColorAccent.style() }, - "Size32.ModeColorDanger" to ComposeStyleReference { CircularProgressBar.Size32.ModeColorDanger.style() }, - "Size24.ModeColorPrimary" to ComposeStyleReference { CircularProgressBar.Size24.ModeColorPrimary.style() }, - "Size24.ModeColorSecondary" to ComposeStyleReference { CircularProgressBar.Size24.ModeColorSecondary.style() }, - "Size24.ModeColorGlobalWhite" to ComposeStyleReference { CircularProgressBar.Size24.ModeColorGlobalWhite.style() }, - "Size24.ModeColorAccent" to ComposeStyleReference { CircularProgressBar.Size24.ModeColorAccent.style() }, - "Size24.ModeColorDanger" to ComposeStyleReference { CircularProgressBar.Size24.ModeColorDanger.style() }, - "Size16.ModeColorPrimary" to ComposeStyleReference { CircularProgressBar.Size16.ModeColorPrimary.style() }, - "Size16.ModeColorSecondary" to ComposeStyleReference { CircularProgressBar.Size16.ModeColorSecondary.style() }, - "Size16.ModeColorGlobalWhite" to ComposeStyleReference { CircularProgressBar.Size16.ModeColorGlobalWhite.style() }, - "Size16.ModeColorAccent" to ComposeStyleReference { CircularProgressBar.Size16.ModeColorAccent.style() }, - "Size16.ModeColorDanger" to ComposeStyleReference { CircularProgressBar.Size16.ModeColorDanger.style() }, + "CircularProgressBar.Size40.ModeColorPrimary" to ComposeStyleReference { + CircularProgressBar.Size40.ModeColorPrimary.style() + }, + "CircularProgressBar.Size40.ModeColorSecondary" to ComposeStyleReference { + CircularProgressBar.Size40.ModeColorSecondary.style() + }, + "CircularProgressBar.Size40.ModeColorGlobalWhite" to ComposeStyleReference { + CircularProgressBar.Size40.ModeColorGlobalWhite.style() + }, + "CircularProgressBar.Size40.ModeColorAccent" to ComposeStyleReference { + CircularProgressBar.Size40.ModeColorAccent.style() + }, + "CircularProgressBar.Size40.ModeColorDanger" to ComposeStyleReference { + CircularProgressBar.Size40.ModeColorDanger.style() + }, + "CircularProgressBar.Size32.ModeColorPrimary" to ComposeStyleReference { + CircularProgressBar.Size32.ModeColorPrimary.style() + }, + "CircularProgressBar.Size32.ModeColorSecondary" to ComposeStyleReference { + CircularProgressBar.Size32.ModeColorSecondary.style() + }, + "CircularProgressBar.Size32.ModeColorGlobalWhite" to ComposeStyleReference { + CircularProgressBar.Size32.ModeColorGlobalWhite.style() + }, + "CircularProgressBar.Size32.ModeColorAccent" to ComposeStyleReference { + CircularProgressBar.Size32.ModeColorAccent.style() + }, + "CircularProgressBar.Size32.ModeColorDanger" to ComposeStyleReference { + CircularProgressBar.Size32.ModeColorDanger.style() + }, + "CircularProgressBar.Size24.ModeColorPrimary" to ComposeStyleReference { + CircularProgressBar.Size24.ModeColorPrimary.style() + }, + "CircularProgressBar.Size24.ModeColorSecondary" to ComposeStyleReference { + CircularProgressBar.Size24.ModeColorSecondary.style() + }, + "CircularProgressBar.Size24.ModeColorGlobalWhite" to ComposeStyleReference { + CircularProgressBar.Size24.ModeColorGlobalWhite.style() + }, + "CircularProgressBar.Size24.ModeColorAccent" to ComposeStyleReference { + CircularProgressBar.Size24.ModeColorAccent.style() + }, + "CircularProgressBar.Size24.ModeColorDanger" to ComposeStyleReference { + CircularProgressBar.Size24.ModeColorDanger.style() + }, + "CircularProgressBar.Size16.ModeColorPrimary" to ComposeStyleReference { + CircularProgressBar.Size16.ModeColorPrimary.style() + }, + "CircularProgressBar.Size16.ModeColorSecondary" to ComposeStyleReference { + CircularProgressBar.Size16.ModeColorSecondary.style() + }, + "CircularProgressBar.Size16.ModeColorGlobalWhite" to ComposeStyleReference { + CircularProgressBar.Size16.ModeColorGlobalWhite.style() + }, + "CircularProgressBar.Size16.ModeColorAccent" to ComposeStyleReference { + CircularProgressBar.Size16.ModeColorAccent.style() + }, + "CircularProgressBar.Size16.ModeColorDanger" to ComposeStyleReference { + CircularProgressBar.Size16.ModeColorDanger.style() + }, ) + + override fun resolveStyleKey(bindings: Map): String { + return CircularProgressBarStyles.resolve( + size = when (bindings["size"]?.toString()) { + "Size40" -> CircularProgressBarSize.Size40 + "Size32" -> CircularProgressBarSize.Size32 + "Size24" -> CircularProgressBarSize.Size24 + "Size16" -> CircularProgressBarSize.Size16 + else -> CircularProgressBarSize.Size40 + }, + modeColor = when (bindings["modeColor"]?.toString()) { + "Primary" -> CircularProgressBarModeColor.Primary + "Secondary" -> CircularProgressBarModeColor.Secondary + "GlobalWhite" -> CircularProgressBarModeColor.GlobalWhite + "Accent" -> CircularProgressBarModeColor.Accent + "Danger" -> CircularProgressBarModeColor.Danger + else -> CircularProgressBarModeColor.Primary + }, + ).key + } } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarInternalPageVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarInternalPageVariationsCompose.kt index 4d7c888c82..a92914dc14 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarInternalPageVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarInternalPageVariationsCompose.kt @@ -15,8 +15,11 @@ import com.sdds.sbcom.styles.collapsingnavigationbar.CollapsingNavigationBarInte import com.sdds.sbcom.styles.collapsingnavigationbar.Default internal object SddsSbcomCollapsingNavigationBarInternalPageVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { CollapsingNavigationBarInternalPage.Default.style() }, + "CollapsingNavigationBarInternalPage.Default" to ComposeStyleReference { + CollapsingNavigationBarInternalPage.Default.style() + }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarMainPageVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarMainPageVariationsCompose.kt index e30e78af8c..0ff13cb35b 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarMainPageVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarMainPageVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.collapsingnavigationbar.CollapsingNavigationBarMain import com.sdds.sbcom.styles.collapsingnavigationbar.Default internal object SddsSbcomCollapsingNavigationBarMainPageVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { CollapsingNavigationBarMainPage.Default.style() }, + "CollapsingNavigationBarMainPage.Default" to ComposeStyleReference { CollapsingNavigationBarMainPage.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCounterVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCounterVariationsCompose.kt index 34a3e80e15..48d66eb427 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCounterVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCounterVariationsCompose.kt @@ -11,14 +11,33 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.CounterStyle import com.sdds.compose.uikit.style.style +import com.sdds.sandbox.Property import com.sdds.sbcom.styles.counter.Counter +import com.sdds.sbcom.styles.counter.CounterDefaultMute +import com.sdds.sbcom.styles.counter.CounterStyles import com.sdds.sbcom.styles.counter.MuteNo import com.sdds.sbcom.styles.counter.MuteYes +import com.sdds.sbcom.styles.counter.resolve internal object SddsSbcomCounterVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "mute", value = "No", variants = listOf("No", "Yes")), + ) + override val variations: Map> = mapOf( - "MuteNo" to ComposeStyleReference { Counter.MuteNo.style() }, - "MuteYes" to ComposeStyleReference { Counter.MuteYes.style() }, + "Counter.MuteNo" to ComposeStyleReference { Counter.MuteNo.style() }, + "Counter.MuteYes" to ComposeStyleReference { Counter.MuteYes.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return CounterStyles.Default.resolve( + mute = when (bindings["mute"]?.toString()) { + "No" -> CounterDefaultMute.No + "Yes" -> CounterDefaultMute.Yes + else -> CounterDefaultMute.No + }, + ).key + } } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDividerVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDividerVariationsCompose.kt index 83c688a194..5aafe60592 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDividerVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDividerVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.divider.Default import com.sdds.sbcom.styles.divider.Divider internal object SddsSbcomDividerVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { Divider.Default.style() }, + "Divider.Default" to ComposeStyleReference { Divider.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuItemVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuItemVariationsCompose.kt index 7b72459adb..d3f8f5678f 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuItemVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuItemVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.listitem.Default import com.sdds.sbcom.styles.listitem.DropdownMenuItem internal object SddsSbcomDropdownMenuItemVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { DropdownMenuItem.Default.style() }, + "DropdownMenuItem.Default" to ComposeStyleReference { DropdownMenuItem.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuListVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuListVariationsCompose.kt index 8baaa96a0b..2efe5dee7a 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuListVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuListVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.list.Default import com.sdds.sbcom.styles.list.DropdownMenuList internal object SddsSbcomDropdownMenuListVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { DropdownMenuList.Default.style() }, + "DropdownMenuList.Default" to ComposeStyleReference { DropdownMenuList.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuVariationsCompose.kt index 51e187b8c8..62534339ce 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.dropdownmenu.Default import com.sdds.sbcom.styles.dropdownmenu.DropdownMenu internal object SddsSbcomDropdownMenuVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { DropdownMenu.Default.style() }, + "DropdownMenu.Default" to ComposeStyleReference { DropdownMenu.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonGroupVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonGroupVariationsCompose.kt index b9dab43815..805bb371dd 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonGroupVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonGroupVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.buttongroup.Default import com.sdds.sbcom.styles.buttongroup.IconButtonGroup internal object SddsSbcomIconButtonGroupVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { IconButtonGroup.Default.style() }, + "IconButtonGroup.Default" to ComposeStyleReference { IconButtonGroup.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonVariationsCompose.kt index df38a66541..ce9a422d62 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonVariationsCompose.kt @@ -11,8 +11,13 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.ButtonStyle import com.sdds.compose.uikit.style.style +import com.sdds.sandbox.Property import com.sdds.sbcom.styles.iconbutton.BgNo import com.sdds.sbcom.styles.iconbutton.IconButton +import com.sdds.sbcom.styles.iconbutton.IconButtonBg +import com.sdds.sbcom.styles.iconbutton.IconButtonMode +import com.sdds.sbcom.styles.iconbutton.IconButtonSize +import com.sdds.sbcom.styles.iconbutton.IconButtonStyles import com.sdds.sbcom.styles.iconbutton.ModeAccentFilled import com.sdds.sbcom.styles.iconbutton.ModeAccentGrey import com.sdds.sbcom.styles.iconbutton.ModeDangerTint @@ -20,33 +25,72 @@ import com.sdds.sbcom.styles.iconbutton.Size24 import com.sdds.sbcom.styles.iconbutton.Size32 import com.sdds.sbcom.styles.iconbutton.Size40 import com.sdds.sbcom.styles.iconbutton.Size48 +import com.sdds.sbcom.styles.iconbutton.resolve internal object SddsSbcomIconButtonVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "size", + value = "Size48", + variants = listOf("Size48", "Size40", "Size32", "Size24"), + ), + Property.SingleChoiceProperty(name = "bg", value = "Yes", variants = listOf("Yes", "No")), + Property.SingleChoiceProperty( + name = "mode", + value = "AccentFilled", + variants = listOf("AccentFilled", "AccentGrey", "DangerTint"), + ), + ) + override val variations: Map> = mapOf( - "Size48.ModeAccentFilled" to ComposeStyleReference { IconButton.Size48.ModeAccentFilled.style() }, - "Size48.ModeAccentGrey" to ComposeStyleReference { IconButton.Size48.ModeAccentGrey.style() }, - "Size48.ModeDangerTint" to ComposeStyleReference { IconButton.Size48.ModeDangerTint.style() }, - "Size48.BgNo.ModeAccentFilled" to ComposeStyleReference { IconButton.Size48.BgNo.ModeAccentFilled.style() }, - "Size48.BgNo.ModeAccentGrey" to ComposeStyleReference { IconButton.Size48.BgNo.ModeAccentGrey.style() }, - "Size48.BgNo.ModeDangerTint" to ComposeStyleReference { IconButton.Size48.BgNo.ModeDangerTint.style() }, - "Size40.ModeAccentFilled" to ComposeStyleReference { IconButton.Size40.ModeAccentFilled.style() }, - "Size40.ModeAccentGrey" to ComposeStyleReference { IconButton.Size40.ModeAccentGrey.style() }, - "Size40.ModeDangerTint" to ComposeStyleReference { IconButton.Size40.ModeDangerTint.style() }, - "Size40.BgNo.ModeAccentFilled" to ComposeStyleReference { IconButton.Size40.BgNo.ModeAccentFilled.style() }, - "Size40.BgNo.ModeAccentGrey" to ComposeStyleReference { IconButton.Size40.BgNo.ModeAccentGrey.style() }, - "Size40.BgNo.ModeDangerTint" to ComposeStyleReference { IconButton.Size40.BgNo.ModeDangerTint.style() }, - "Size32.ModeAccentFilled" to ComposeStyleReference { IconButton.Size32.ModeAccentFilled.style() }, - "Size32.ModeAccentGrey" to ComposeStyleReference { IconButton.Size32.ModeAccentGrey.style() }, - "Size32.ModeDangerTint" to ComposeStyleReference { IconButton.Size32.ModeDangerTint.style() }, - "Size32.BgNo.ModeAccentFilled" to ComposeStyleReference { IconButton.Size32.BgNo.ModeAccentFilled.style() }, - "Size32.BgNo.ModeAccentGrey" to ComposeStyleReference { IconButton.Size32.BgNo.ModeAccentGrey.style() }, - "Size32.BgNo.ModeDangerTint" to ComposeStyleReference { IconButton.Size32.BgNo.ModeDangerTint.style() }, - "Size24.ModeAccentFilled" to ComposeStyleReference { IconButton.Size24.ModeAccentFilled.style() }, - "Size24.ModeAccentGrey" to ComposeStyleReference { IconButton.Size24.ModeAccentGrey.style() }, - "Size24.ModeDangerTint" to ComposeStyleReference { IconButton.Size24.ModeDangerTint.style() }, - "Size24.BgNo.ModeAccentFilled" to ComposeStyleReference { IconButton.Size24.BgNo.ModeAccentFilled.style() }, - "Size24.BgNo.ModeAccentGrey" to ComposeStyleReference { IconButton.Size24.BgNo.ModeAccentGrey.style() }, - "Size24.BgNo.ModeDangerTint" to ComposeStyleReference { IconButton.Size24.BgNo.ModeDangerTint.style() }, + "IconButton.Size48.ModeAccentFilled" to ComposeStyleReference { IconButton.Size48.ModeAccentFilled.style() }, + "IconButton.Size48.ModeAccentGrey" to ComposeStyleReference { IconButton.Size48.ModeAccentGrey.style() }, + "IconButton.Size48.ModeDangerTint" to ComposeStyleReference { IconButton.Size48.ModeDangerTint.style() }, + "IconButton.Size48.BgNo.ModeAccentFilled" to ComposeStyleReference { IconButton.Size48.BgNo.ModeAccentFilled.style() }, + "IconButton.Size48.BgNo.ModeAccentGrey" to ComposeStyleReference { IconButton.Size48.BgNo.ModeAccentGrey.style() }, + "IconButton.Size48.BgNo.ModeDangerTint" to ComposeStyleReference { IconButton.Size48.BgNo.ModeDangerTint.style() }, + "IconButton.Size40.ModeAccentFilled" to ComposeStyleReference { IconButton.Size40.ModeAccentFilled.style() }, + "IconButton.Size40.ModeAccentGrey" to ComposeStyleReference { IconButton.Size40.ModeAccentGrey.style() }, + "IconButton.Size40.ModeDangerTint" to ComposeStyleReference { IconButton.Size40.ModeDangerTint.style() }, + "IconButton.Size40.BgNo.ModeAccentFilled" to ComposeStyleReference { IconButton.Size40.BgNo.ModeAccentFilled.style() }, + "IconButton.Size40.BgNo.ModeAccentGrey" to ComposeStyleReference { IconButton.Size40.BgNo.ModeAccentGrey.style() }, + "IconButton.Size40.BgNo.ModeDangerTint" to ComposeStyleReference { IconButton.Size40.BgNo.ModeDangerTint.style() }, + "IconButton.Size32.ModeAccentFilled" to ComposeStyleReference { IconButton.Size32.ModeAccentFilled.style() }, + "IconButton.Size32.ModeAccentGrey" to ComposeStyleReference { IconButton.Size32.ModeAccentGrey.style() }, + "IconButton.Size32.ModeDangerTint" to ComposeStyleReference { IconButton.Size32.ModeDangerTint.style() }, + "IconButton.Size32.BgNo.ModeAccentFilled" to ComposeStyleReference { IconButton.Size32.BgNo.ModeAccentFilled.style() }, + "IconButton.Size32.BgNo.ModeAccentGrey" to ComposeStyleReference { IconButton.Size32.BgNo.ModeAccentGrey.style() }, + "IconButton.Size32.BgNo.ModeDangerTint" to ComposeStyleReference { IconButton.Size32.BgNo.ModeDangerTint.style() }, + "IconButton.Size24.ModeAccentFilled" to ComposeStyleReference { IconButton.Size24.ModeAccentFilled.style() }, + "IconButton.Size24.ModeAccentGrey" to ComposeStyleReference { IconButton.Size24.ModeAccentGrey.style() }, + "IconButton.Size24.ModeDangerTint" to ComposeStyleReference { IconButton.Size24.ModeDangerTint.style() }, + "IconButton.Size24.BgNo.ModeAccentFilled" to ComposeStyleReference { IconButton.Size24.BgNo.ModeAccentFilled.style() }, + "IconButton.Size24.BgNo.ModeAccentGrey" to ComposeStyleReference { IconButton.Size24.BgNo.ModeAccentGrey.style() }, + "IconButton.Size24.BgNo.ModeDangerTint" to ComposeStyleReference { IconButton.Size24.BgNo.ModeDangerTint.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return IconButtonStyles.resolve( + size = when (bindings["size"]?.toString()) { + "Size48" -> IconButtonSize.Size48 + "Size40" -> IconButtonSize.Size40 + "Size32" -> IconButtonSize.Size32 + "Size24" -> IconButtonSize.Size24 + else -> IconButtonSize.Size48 + }, + bg = when (bindings["bg"]?.toString()) { + "Yes" -> IconButtonBg.Yes + "No" -> IconButtonBg.No + else -> IconButtonBg.Yes + }, + mode = when (bindings["mode"]?.toString()) { + "AccentFilled" -> IconButtonMode.AccentFilled + "AccentGrey" -> IconButtonMode.AccentGrey + "DangerTint" -> IconButtonMode.DangerTint + else -> IconButtonMode.AccentFilled + }, + ).key + } } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIndicatorVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIndicatorVariationsCompose.kt index 05d2768e1c..da4c4e6a0e 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIndicatorVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIndicatorVariationsCompose.kt @@ -11,20 +11,46 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.IndicatorStyle import com.sdds.compose.uikit.style.style +import com.sdds.sandbox.Property import com.sdds.sbcom.styles.indicator.Indicator +import com.sdds.sbcom.styles.indicator.IndicatorDefaultState +import com.sdds.sbcom.styles.indicator.IndicatorStyles import com.sdds.sbcom.styles.indicator.StateDanger import com.sdds.sbcom.styles.indicator.StateGlobalWhite import com.sdds.sbcom.styles.indicator.StateMute import com.sdds.sbcom.styles.indicator.StateSuccess import com.sdds.sbcom.styles.indicator.StateWarning +import com.sdds.sbcom.styles.indicator.resolve internal object SddsSbcomIndicatorVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "state", + value = "Success", + variants = listOf("Success", "GlobalWhite", "Mute", "Danger", "Warning"), + ), + ) + override val variations: Map> = mapOf( - "StateSuccess" to ComposeStyleReference { Indicator.StateSuccess.style() }, - "StateGlobalWhite" to ComposeStyleReference { Indicator.StateGlobalWhite.style() }, - "StateMute" to ComposeStyleReference { Indicator.StateMute.style() }, - "StateDanger" to ComposeStyleReference { Indicator.StateDanger.style() }, - "StateWarning" to ComposeStyleReference { Indicator.StateWarning.style() }, + "Indicator.StateSuccess" to ComposeStyleReference { Indicator.StateSuccess.style() }, + "Indicator.StateGlobalWhite" to ComposeStyleReference { Indicator.StateGlobalWhite.style() }, + "Indicator.StateMute" to ComposeStyleReference { Indicator.StateMute.style() }, + "Indicator.StateDanger" to ComposeStyleReference { Indicator.StateDanger.style() }, + "Indicator.StateWarning" to ComposeStyleReference { Indicator.StateWarning.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return IndicatorStyles.Default.resolve( + state = when (bindings["state"]?.toString()) { + "Success" -> IndicatorDefaultState.Success + "GlobalWhite" -> IndicatorDefaultState.GlobalWhite + "Mute" -> IndicatorDefaultState.Mute + "Danger" -> IndicatorDefaultState.Danger + "Warning" -> IndicatorDefaultState.Warning + else -> IndicatorDefaultState.Success + }, + ).key + } } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomListItemVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomListItemVariationsCompose.kt index e42b36f446..e8d109ed74 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomListItemVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomListItemVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.listitem.Default import com.sdds.sbcom.styles.listitem.ListItem internal object SddsSbcomListItemVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { ListItem.Default.style() }, + "ListItem.Default" to ComposeStyleReference { ListItem.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomListVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomListVariationsCompose.kt index 7696f98797..40b5c4c931 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomListVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomListVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.list.Default import com.sdds.sbcom.styles.list.List internal object SddsSbcomListVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { List.Default.style() }, + "List.Default" to ComposeStyleReference { List.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomLoaderVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomLoaderVariationsCompose.kt index dc85551b00..13f9d3f967 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomLoaderVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomLoaderVariationsCompose.kt @@ -11,7 +11,11 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.LoaderStyle import com.sdds.compose.uikit.style.style +import com.sdds.sandbox.Property import com.sdds.sbcom.styles.loader.Loader +import com.sdds.sbcom.styles.loader.LoaderModeColor +import com.sdds.sbcom.styles.loader.LoaderSize +import com.sdds.sbcom.styles.loader.LoaderStyles import com.sdds.sbcom.styles.loader.ModeColorAccent import com.sdds.sbcom.styles.loader.ModeColorDanger import com.sdds.sbcom.styles.loader.ModeColorGlobalWhite @@ -21,29 +25,64 @@ import com.sdds.sbcom.styles.loader.Size16 import com.sdds.sbcom.styles.loader.Size24 import com.sdds.sbcom.styles.loader.Size32 import com.sdds.sbcom.styles.loader.Size40 +import com.sdds.sbcom.styles.loader.resolve internal object SddsSbcomLoaderVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "size", + value = "Size40", + variants = listOf("Size40", "Size32", "Size24", "Size16"), + ), + Property.SingleChoiceProperty( + name = "modeColor", + value = "Primary", + variants = listOf("Primary", "Secondary", "GlobalWhite", "Accent", "Danger"), + ), + ) + override val variations: Map> = mapOf( - "Size40.ModeColorPrimary" to ComposeStyleReference { Loader.Size40.ModeColorPrimary.style() }, - "Size40.ModeColorSecondary" to ComposeStyleReference { Loader.Size40.ModeColorSecondary.style() }, - "Size40.ModeColorGlobalWhite" to ComposeStyleReference { Loader.Size40.ModeColorGlobalWhite.style() }, - "Size40.ModeColorAccent" to ComposeStyleReference { Loader.Size40.ModeColorAccent.style() }, - "Size40.ModeColorDanger" to ComposeStyleReference { Loader.Size40.ModeColorDanger.style() }, - "Size32.ModeColorPrimary" to ComposeStyleReference { Loader.Size32.ModeColorPrimary.style() }, - "Size32.ModeColorSecondary" to ComposeStyleReference { Loader.Size32.ModeColorSecondary.style() }, - "Size32.ModeColorGlobalWhite" to ComposeStyleReference { Loader.Size32.ModeColorGlobalWhite.style() }, - "Size32.ModeColorAccent" to ComposeStyleReference { Loader.Size32.ModeColorAccent.style() }, - "Size32.ModeColorDanger" to ComposeStyleReference { Loader.Size32.ModeColorDanger.style() }, - "Size24.ModeColorPrimary" to ComposeStyleReference { Loader.Size24.ModeColorPrimary.style() }, - "Size24.ModeColorSecondary" to ComposeStyleReference { Loader.Size24.ModeColorSecondary.style() }, - "Size24.ModeColorGlobalWhite" to ComposeStyleReference { Loader.Size24.ModeColorGlobalWhite.style() }, - "Size24.ModeColorAccent" to ComposeStyleReference { Loader.Size24.ModeColorAccent.style() }, - "Size24.ModeColorDanger" to ComposeStyleReference { Loader.Size24.ModeColorDanger.style() }, - "Size16.ModeColorPrimary" to ComposeStyleReference { Loader.Size16.ModeColorPrimary.style() }, - "Size16.ModeColorSecondary" to ComposeStyleReference { Loader.Size16.ModeColorSecondary.style() }, - "Size16.ModeColorGlobalWhite" to ComposeStyleReference { Loader.Size16.ModeColorGlobalWhite.style() }, - "Size16.ModeColorAccent" to ComposeStyleReference { Loader.Size16.ModeColorAccent.style() }, - "Size16.ModeColorDanger" to ComposeStyleReference { Loader.Size16.ModeColorDanger.style() }, + "Loader.Size40.ModeColorPrimary" to ComposeStyleReference { Loader.Size40.ModeColorPrimary.style() }, + "Loader.Size40.ModeColorSecondary" to ComposeStyleReference { Loader.Size40.ModeColorSecondary.style() }, + "Loader.Size40.ModeColorGlobalWhite" to ComposeStyleReference { Loader.Size40.ModeColorGlobalWhite.style() }, + "Loader.Size40.ModeColorAccent" to ComposeStyleReference { Loader.Size40.ModeColorAccent.style() }, + "Loader.Size40.ModeColorDanger" to ComposeStyleReference { Loader.Size40.ModeColorDanger.style() }, + "Loader.Size32.ModeColorPrimary" to ComposeStyleReference { Loader.Size32.ModeColorPrimary.style() }, + "Loader.Size32.ModeColorSecondary" to ComposeStyleReference { Loader.Size32.ModeColorSecondary.style() }, + "Loader.Size32.ModeColorGlobalWhite" to ComposeStyleReference { Loader.Size32.ModeColorGlobalWhite.style() }, + "Loader.Size32.ModeColorAccent" to ComposeStyleReference { Loader.Size32.ModeColorAccent.style() }, + "Loader.Size32.ModeColorDanger" to ComposeStyleReference { Loader.Size32.ModeColorDanger.style() }, + "Loader.Size24.ModeColorPrimary" to ComposeStyleReference { Loader.Size24.ModeColorPrimary.style() }, + "Loader.Size24.ModeColorSecondary" to ComposeStyleReference { Loader.Size24.ModeColorSecondary.style() }, + "Loader.Size24.ModeColorGlobalWhite" to ComposeStyleReference { Loader.Size24.ModeColorGlobalWhite.style() }, + "Loader.Size24.ModeColorAccent" to ComposeStyleReference { Loader.Size24.ModeColorAccent.style() }, + "Loader.Size24.ModeColorDanger" to ComposeStyleReference { Loader.Size24.ModeColorDanger.style() }, + "Loader.Size16.ModeColorPrimary" to ComposeStyleReference { Loader.Size16.ModeColorPrimary.style() }, + "Loader.Size16.ModeColorSecondary" to ComposeStyleReference { Loader.Size16.ModeColorSecondary.style() }, + "Loader.Size16.ModeColorGlobalWhite" to ComposeStyleReference { Loader.Size16.ModeColorGlobalWhite.style() }, + "Loader.Size16.ModeColorAccent" to ComposeStyleReference { Loader.Size16.ModeColorAccent.style() }, + "Loader.Size16.ModeColorDanger" to ComposeStyleReference { Loader.Size16.ModeColorDanger.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return LoaderStyles.resolve( + size = when (bindings["size"]?.toString()) { + "Size40" -> LoaderSize.Size40 + "Size32" -> LoaderSize.Size32 + "Size24" -> LoaderSize.Size24 + "Size16" -> LoaderSize.Size16 + else -> LoaderSize.Size40 + }, + modeColor = when (bindings["modeColor"]?.toString()) { + "Primary" -> LoaderModeColor.Primary + "Secondary" -> LoaderModeColor.Secondary + "GlobalWhite" -> LoaderModeColor.GlobalWhite + "Accent" -> LoaderModeColor.Accent + "Danger" -> LoaderModeColor.Danger + else -> LoaderModeColor.Primary + }, + ).key + } } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomMentionVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomMentionVariationsCompose.kt index 776deaf319..66f2d655a5 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomMentionVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomMentionVariationsCompose.kt @@ -11,14 +11,33 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.BadgeStyle import com.sdds.compose.uikit.style.style +import com.sdds.sandbox.Property +import com.sdds.sbcom.styles.iconbadge.IconBadgeMentionMute +import com.sdds.sbcom.styles.iconbadge.IconBadgeStyles import com.sdds.sbcom.styles.iconbadge.Mention import com.sdds.sbcom.styles.iconbadge.MuteNo import com.sdds.sbcom.styles.iconbadge.MuteYes +import com.sdds.sbcom.styles.iconbadge.resolve internal object SddsSbcomMentionVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "mute", value = "No", variants = listOf("No", "Yes")), + ) + override val variations: Map> = mapOf( - "MuteNo" to ComposeStyleReference { Mention.MuteNo.style() }, - "MuteYes" to ComposeStyleReference { Mention.MuteYes.style() }, + "Mention.MuteNo" to ComposeStyleReference { Mention.MuteNo.style() }, + "Mention.MuteYes" to ComposeStyleReference { Mention.MuteYes.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return IconBadgeStyles.Mention.resolve( + mute = when (bindings["mute"]?.toString()) { + "No" -> IconBadgeMentionMute.No + "Yes" -> IconBadgeMentionMute.Yes + else -> IconBadgeMentionMute.No + }, + ).key + } } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomModalBottomSheetVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomModalBottomSheetVariationsCompose.kt index 276761fc4b..1a5f6ef04a 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomModalBottomSheetVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomModalBottomSheetVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.bottomsheet.Default import com.sdds.sbcom.styles.bottomsheet.ModalBottomSheet internal object SddsSbcomModalBottomSheetVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { ModalBottomSheet.Default.style() }, + "ModalBottomSheet.Default" to ComposeStyleReference { ModalBottomSheet.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomModalVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomModalVariationsCompose.kt index fb3784bb51..21fb3dd1f3 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomModalVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomModalVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.modal.Default import com.sdds.sbcom.styles.modal.Modal internal object SddsSbcomModalVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { Modal.Default.style() }, + "Modal.Default" to ComposeStyleReference { Modal.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomOverlayVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomOverlayVariationsCompose.kt index 280fc62e56..249146e6f5 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomOverlayVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomOverlayVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.overlay.Default import com.sdds.sbcom.styles.overlay.Overlay internal object SddsSbcomOverlayVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { Overlay.Default.style() }, + "Overlay.Default" to ComposeStyleReference { Overlay.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomPopoverVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomPopoverVariationsCompose.kt index 8b51f44a47..7da6338df3 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomPopoverVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomPopoverVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.popover.Default import com.sdds.sbcom.styles.popover.Popover internal object SddsSbcomPopoverVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { Popover.Default.style() }, + "Popover.Default" to ComposeStyleReference { Popover.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomRadioBoxVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomRadioBoxVariationsCompose.kt index e6bfc2aaa8..a8b5a9875d 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomRadioBoxVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomRadioBoxVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.radiobox.Default import com.sdds.sbcom.styles.radiobox.RadioBox internal object SddsSbcomRadioBoxVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { RadioBox.Default.style() }, + "RadioBox.Default" to ComposeStyleReference { RadioBox.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomRectSkeletonVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomRectSkeletonVariationsCompose.kt index 7e7062a51c..9cb16f5522 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomRectSkeletonVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomRectSkeletonVariationsCompose.kt @@ -11,14 +11,33 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.RectSkeletonStyle import com.sdds.compose.uikit.style.style +import com.sdds.sandbox.Property import com.sdds.sbcom.styles.rectskeleton.Default import com.sdds.sbcom.styles.rectskeleton.Pulse import com.sdds.sbcom.styles.rectskeleton.RectSkeleton +import com.sdds.sbcom.styles.rectskeleton.RectSkeletonStyles +import com.sdds.sbcom.styles.rectskeleton.RectSkeletonType +import com.sdds.sbcom.styles.rectskeleton.resolve internal object SddsSbcomRectSkeletonVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "type", value = "Default", variants = listOf("Default", "Pulse")), + ) + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { RectSkeleton.Default.style() }, - "Pulse" to ComposeStyleReference { RectSkeleton.Pulse.style() }, + "RectSkeleton.Default" to ComposeStyleReference { RectSkeleton.Default.style() }, + "RectSkeleton.Pulse" to ComposeStyleReference { RectSkeleton.Pulse.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return RectSkeletonStyles.resolve( + type = when (bindings["type"]?.toString()) { + "Default" -> RectSkeletonType.Default + "Pulse" -> RectSkeletonType.Pulse + else -> RectSkeletonType.Default + }, + ).key + } } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomScrollBarVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomScrollBarVariationsCompose.kt index 78210539eb..0a045ec86c 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomScrollBarVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomScrollBarVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.scrollbar.Default import com.sdds.sbcom.styles.scrollbar.ScrollBar internal object SddsSbcomScrollBarVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { ScrollBar.Default.style() }, + "ScrollBar.Default" to ComposeStyleReference { ScrollBar.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSearchBarVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSearchBarVariationsCompose.kt index d702f164ba..fac9350df7 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSearchBarVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSearchBarVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.textfield.Default import com.sdds.sbcom.styles.textfield.SearchBar internal object SddsSbcomSearchBarVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { SearchBar.Default.style() }, + "SearchBar.Default" to ComposeStyleReference { SearchBar.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSpinnerVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSpinnerVariationsCompose.kt index 44a184324c..c251400e02 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSpinnerVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSpinnerVariationsCompose.kt @@ -11,6 +11,7 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.SpinnerStyle import com.sdds.compose.uikit.style.style +import com.sdds.sandbox.Property import com.sdds.sbcom.styles.spinner.ModeColorAccent import com.sdds.sbcom.styles.spinner.ModeColorDanger import com.sdds.sbcom.styles.spinner.ModeColorGlobalWhite @@ -21,29 +22,67 @@ import com.sdds.sbcom.styles.spinner.Size24 import com.sdds.sbcom.styles.spinner.Size32 import com.sdds.sbcom.styles.spinner.Size40 import com.sdds.sbcom.styles.spinner.Spinner +import com.sdds.sbcom.styles.spinner.SpinnerModeColor +import com.sdds.sbcom.styles.spinner.SpinnerSize +import com.sdds.sbcom.styles.spinner.SpinnerStyles +import com.sdds.sbcom.styles.spinner.resolve internal object SddsSbcomSpinnerVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "size", + value = "Size40", + variants = listOf("Size40", "Size32", "Size24", "Size16"), + ), + Property.SingleChoiceProperty( + name = "modeColor", + value = "Primary", + variants = listOf("Primary", "Secondary", "GlobalWhite", "Accent", "Danger"), + ), + ) + override val variations: Map> = mapOf( - "Size40.ModeColorPrimary" to ComposeStyleReference { Spinner.Size40.ModeColorPrimary.style() }, - "Size40.ModeColorSecondary" to ComposeStyleReference { Spinner.Size40.ModeColorSecondary.style() }, - "Size40.ModeColorGlobalWhite" to ComposeStyleReference { Spinner.Size40.ModeColorGlobalWhite.style() }, - "Size40.ModeColorAccent" to ComposeStyleReference { Spinner.Size40.ModeColorAccent.style() }, - "Size40.ModeColorDanger" to ComposeStyleReference { Spinner.Size40.ModeColorDanger.style() }, - "Size32.ModeColorPrimary" to ComposeStyleReference { Spinner.Size32.ModeColorPrimary.style() }, - "Size32.ModeColorSecondary" to ComposeStyleReference { Spinner.Size32.ModeColorSecondary.style() }, - "Size32.ModeColorGlobalWhite" to ComposeStyleReference { Spinner.Size32.ModeColorGlobalWhite.style() }, - "Size32.ModeColorAccent" to ComposeStyleReference { Spinner.Size32.ModeColorAccent.style() }, - "Size32.ModeColorDanger" to ComposeStyleReference { Spinner.Size32.ModeColorDanger.style() }, - "Size24.ModeColorPrimary" to ComposeStyleReference { Spinner.Size24.ModeColorPrimary.style() }, - "Size24.ModeColorSecondary" to ComposeStyleReference { Spinner.Size24.ModeColorSecondary.style() }, - "Size24.ModeColorGlobalWhite" to ComposeStyleReference { Spinner.Size24.ModeColorGlobalWhite.style() }, - "Size24.ModeColorAccent" to ComposeStyleReference { Spinner.Size24.ModeColorAccent.style() }, - "Size24.ModeColorDanger" to ComposeStyleReference { Spinner.Size24.ModeColorDanger.style() }, - "Size16.ModeColorPrimary" to ComposeStyleReference { Spinner.Size16.ModeColorPrimary.style() }, - "Size16.ModeColorSecondary" to ComposeStyleReference { Spinner.Size16.ModeColorSecondary.style() }, - "Size16.ModeColorGlobalWhite" to ComposeStyleReference { Spinner.Size16.ModeColorGlobalWhite.style() }, - "Size16.ModeColorAccent" to ComposeStyleReference { Spinner.Size16.ModeColorAccent.style() }, - "Size16.ModeColorDanger" to ComposeStyleReference { Spinner.Size16.ModeColorDanger.style() }, + "Spinner.Size40.ModeColorPrimary" to ComposeStyleReference { Spinner.Size40.ModeColorPrimary.style() }, + "Spinner.Size40.ModeColorSecondary" to ComposeStyleReference { Spinner.Size40.ModeColorSecondary.style() }, + "Spinner.Size40.ModeColorGlobalWhite" to ComposeStyleReference { Spinner.Size40.ModeColorGlobalWhite.style() }, + "Spinner.Size40.ModeColorAccent" to ComposeStyleReference { Spinner.Size40.ModeColorAccent.style() }, + "Spinner.Size40.ModeColorDanger" to ComposeStyleReference { Spinner.Size40.ModeColorDanger.style() }, + "Spinner.Size32.ModeColorPrimary" to ComposeStyleReference { Spinner.Size32.ModeColorPrimary.style() }, + "Spinner.Size32.ModeColorSecondary" to ComposeStyleReference { Spinner.Size32.ModeColorSecondary.style() }, + "Spinner.Size32.ModeColorGlobalWhite" to ComposeStyleReference { Spinner.Size32.ModeColorGlobalWhite.style() }, + "Spinner.Size32.ModeColorAccent" to ComposeStyleReference { Spinner.Size32.ModeColorAccent.style() }, + "Spinner.Size32.ModeColorDanger" to ComposeStyleReference { Spinner.Size32.ModeColorDanger.style() }, + "Spinner.Size24.ModeColorPrimary" to ComposeStyleReference { Spinner.Size24.ModeColorPrimary.style() }, + "Spinner.Size24.ModeColorSecondary" to ComposeStyleReference { Spinner.Size24.ModeColorSecondary.style() }, + "Spinner.Size24.ModeColorGlobalWhite" to ComposeStyleReference { Spinner.Size24.ModeColorGlobalWhite.style() }, + "Spinner.Size24.ModeColorAccent" to ComposeStyleReference { Spinner.Size24.ModeColorAccent.style() }, + "Spinner.Size24.ModeColorDanger" to ComposeStyleReference { Spinner.Size24.ModeColorDanger.style() }, + "Spinner.Size16.ModeColorPrimary" to ComposeStyleReference { Spinner.Size16.ModeColorPrimary.style() }, + "Spinner.Size16.ModeColorSecondary" to ComposeStyleReference { Spinner.Size16.ModeColorSecondary.style() }, + "Spinner.Size16.ModeColorGlobalWhite" to ComposeStyleReference { Spinner.Size16.ModeColorGlobalWhite.style() }, + "Spinner.Size16.ModeColorAccent" to ComposeStyleReference { Spinner.Size16.ModeColorAccent.style() }, + "Spinner.Size16.ModeColorDanger" to ComposeStyleReference { Spinner.Size16.ModeColorDanger.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return SpinnerStyles.resolve( + size = when (bindings["size"]?.toString()) { + "Size40" -> SpinnerSize.Size40 + "Size32" -> SpinnerSize.Size32 + "Size24" -> SpinnerSize.Size24 + "Size16" -> SpinnerSize.Size16 + else -> SpinnerSize.Size40 + }, + modeColor = when (bindings["modeColor"]?.toString()) { + "Primary" -> SpinnerModeColor.Primary + "Secondary" -> SpinnerModeColor.Secondary + "GlobalWhite" -> SpinnerModeColor.GlobalWhite + "Accent" -> SpinnerModeColor.Accent + "Danger" -> SpinnerModeColor.Danger + else -> SpinnerModeColor.Primary + }, + ).key + } } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSwitchVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSwitchVariationsCompose.kt index 9decb72c8c..92a552662d 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSwitchVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSwitchVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.switcher.Default import com.sdds.sbcom.styles.switcher.Switch internal object SddsSbcomSwitchVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { Switch.Default.style() }, + "Switch.Default" to ComposeStyleReference { Switch.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarCounterVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarCounterVariationsCompose.kt index f75d2de37c..82d9e2438a 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarCounterVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarCounterVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.counter.Default import com.sdds.sbcom.styles.counter.TabBarCounter internal object SddsSbcomTabBarCounterVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { TabBarCounter.Default.style() }, + "TabBarCounter.Default" to ComposeStyleReference { TabBarCounter.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarItemVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarItemVariationsCompose.kt index 46d922585f..eaf570eb39 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarItemVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarItemVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.tabbaritem.Default import com.sdds.sbcom.styles.tabbaritem.TabBarItem internal object SddsSbcomTabBarItemVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { TabBarItem.Default.style() }, + "TabBarItem.Default" to ComposeStyleReference { TabBarItem.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarVariationsCompose.kt index bc57ef93e1..f0ff7726dd 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.tabbar.Default import com.sdds.sbcom.styles.tabbar.TabBar internal object SddsSbcomTabBarVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { TabBar.Default.style() }, + "TabBar.Default" to ComposeStyleReference { TabBar.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabItemFolderCounterVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabItemFolderCounterVariationsCompose.kt index f05ce3c227..5abb9bbdab 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabItemFolderCounterVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabItemFolderCounterVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.counter.Default import com.sdds.sbcom.styles.counter.TabItemFolderCounter internal object SddsSbcomTabItemFolderCounterVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { TabItemFolderCounter.Default.style() }, + "TabItemFolderCounter.Default" to ComposeStyleReference { TabItemFolderCounter.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabItemFolderVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabItemFolderVariationsCompose.kt index 5dfaa947ef..4cf5973699 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabItemFolderVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabItemFolderVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.tabitem.Default import com.sdds.sbcom.styles.tabitem.TabItemFolder internal object SddsSbcomTabItemFolderVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { TabItemFolder.Default.style() }, + "TabItemFolder.Default" to ComposeStyleReference { TabItemFolder.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabsFolderVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabsFolderVariationsCompose.kt index f8bf712b56..5edfad9cc0 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabsFolderVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabsFolderVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.tabs.Default import com.sdds.sbcom.styles.tabs.TabsFolder internal object SddsSbcomTabsFolderVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { TabsFolder.Default.style() }, + "TabsFolder.Default" to ComposeStyleReference { TabsFolder.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTextFieldVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTextFieldVariationsCompose.kt index ae2e156e0c..e3c667f24d 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTextFieldVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTextFieldVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.textfield.Default import com.sdds.sbcom.styles.textfield.TextField internal object SddsSbcomTextFieldVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { TextField.Default.style() }, + "TextField.Default" to ComposeStyleReference { TextField.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTooltipVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTooltipVariationsCompose.kt index 1102ad370a..dcfc041de2 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTooltipVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTooltipVariationsCompose.kt @@ -15,8 +15,9 @@ import com.sdds.sbcom.styles.tooltip.Default import com.sdds.sbcom.styles.tooltip.Tooltip internal object SddsSbcomTooltipVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { Tooltip.Default.style() }, + "Tooltip.Default" to ComposeStyleReference { Tooltip.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomVoiceChatBadgeVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomVoiceChatBadgeVariationsCompose.kt index e7b7117bdc..db24f5f3d3 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomVoiceChatBadgeVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomVoiceChatBadgeVariationsCompose.kt @@ -11,18 +11,43 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.BadgeStyle import com.sdds.compose.uikit.style.style +import com.sdds.sandbox.Property +import com.sdds.sbcom.styles.iconbadge.IconBadgeStyles +import com.sdds.sbcom.styles.iconbadge.IconBadgeVoiceChatBadgeSize import com.sdds.sbcom.styles.iconbadge.Size14 import com.sdds.sbcom.styles.iconbadge.Size16 import com.sdds.sbcom.styles.iconbadge.Size18 import com.sdds.sbcom.styles.iconbadge.Size20 import com.sdds.sbcom.styles.iconbadge.VoiceChatBadge +import com.sdds.sbcom.styles.iconbadge.resolve internal object SddsSbcomVoiceChatBadgeVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "size", + value = "Size20", + variants = listOf("Size20", "Size18", "Size16", "Size14"), + ), + ) + override val variations: Map> = mapOf( - "Size20" to ComposeStyleReference { VoiceChatBadge.Size20.style() }, - "Size18" to ComposeStyleReference { VoiceChatBadge.Size18.style() }, - "Size16" to ComposeStyleReference { VoiceChatBadge.Size16.style() }, - "Size14" to ComposeStyleReference { VoiceChatBadge.Size14.style() }, + "VoiceChatBadge.Size20" to ComposeStyleReference { VoiceChatBadge.Size20.style() }, + "VoiceChatBadge.Size18" to ComposeStyleReference { VoiceChatBadge.Size18.style() }, + "VoiceChatBadge.Size16" to ComposeStyleReference { VoiceChatBadge.Size16.style() }, + "VoiceChatBadge.Size14" to ComposeStyleReference { VoiceChatBadge.Size14.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return IconBadgeStyles.VoiceChatBadge.resolve( + size = when (bindings["size"]?.toString()) { + "Size20" -> IconBadgeVoiceChatBadgeSize.Size20 + "Size18" -> IconBadgeVoiceChatBadgeSize.Size18 + "Size16" -> IconBadgeVoiceChatBadgeSize.Size16 + "Size14" -> IconBadgeVoiceChatBadgeSize.Size14 + else -> IconBadgeVoiceChatBadgeSize.Size20 + }, + ).key + } } diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/avatar/AvatarStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/avatar/AvatarStylesCollection.kt index 450fe213dc..370f9910a4 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/avatar/AvatarStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/avatar/AvatarStylesCollection.kt @@ -34,13 +34,34 @@ public enum class AvatarStyles( AvatarSize32("Avatar.Size32"), AvatarSize26("Avatar.Size26"), AvatarSize24("Avatar.Size24"), + ; + + /** + * Typed API для подбора стиля avatar + */ + public companion object +} + +/** + * Возможные значения свойства size для avatar + */ +public enum class AvatarSize { + Size72, + Size64, + Size56, + Size44, + Size40, + Size36, + Size32, + Size26, + Size24, } /** * Возвращает [AvatarStyle] для [AvatarStyles] */ @Composable -public fun AvatarStyles.style(modifyAction: @Composable AvatarStyleBuilder.() -> Unit = {}): AvatarStyle { +public fun AvatarStyles.style(modify: @Composable AvatarStyleBuilder.() -> Unit = {}): AvatarStyle { val builder = when (this) { AvatarStyles.AvatarSize72 -> Avatar.Size72 AvatarStyles.AvatarSize64 -> Avatar.Size64 @@ -52,5 +73,31 @@ public fun AvatarStyles.style(modifyAction: @Composable AvatarStyleBuilder.() -> AvatarStyles.AvatarSize26 -> Avatar.Size26 AvatarStyles.AvatarSize24 -> Avatar.Size24 } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [AvatarStyles] для avatar + */ +public fun AvatarStyles.Companion.resolve(size: AvatarSize = AvatarSize.Size72): AvatarStyles = when { + size == AvatarSize.Size72 -> AvatarStyles.AvatarSize72 + size == AvatarSize.Size64 -> AvatarStyles.AvatarSize64 + size == AvatarSize.Size56 -> AvatarStyles.AvatarSize56 + size == AvatarSize.Size44 -> AvatarStyles.AvatarSize44 + size == AvatarSize.Size40 -> AvatarStyles.AvatarSize40 + size == AvatarSize.Size36 -> AvatarStyles.AvatarSize36 + size == AvatarSize.Size32 -> AvatarStyles.AvatarSize32 + size == AvatarSize.Size26 -> AvatarStyles.AvatarSize26 + size == AvatarSize.Size24 -> AvatarStyles.AvatarSize24 + else -> error("Unsupported avatar style combination") +} + +/** + * Возвращает [AvatarStyle] для avatar + */ +@Composable +public fun AvatarStyles.Companion.style( + size: AvatarSize = AvatarSize.Size72, + modify: @Composable + AvatarStyleBuilder.() -> Unit = {}, +): AvatarStyle = resolve(size).style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/avatargroup/AvatarGroupStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/avatargroup/AvatarGroupStylesCollection.kt index be33a4e4d3..436c35df8e 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/avatargroup/AvatarGroupStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/avatargroup/AvatarGroupStylesCollection.kt @@ -26,18 +26,47 @@ public enum class AvatarGroupStyles( public val key: String, ) { AvatarGroupSize24("AvatarGroup.Size24"), + ; + + /** + * Typed API для подбора стиля avatar-group + */ + public companion object +} + +/** + * Возможные значения свойства size для avatar-group + */ +public enum class AvatarGroupSize { + Size24, } /** * Возвращает [AvatarGroupStyle] для [AvatarGroupStyles] */ @Composable -public fun AvatarGroupStyles.style( - modifyAction: @Composable AvatarGroupStyleBuilder.() -> Unit = - {}, -): AvatarGroupStyle { +public fun AvatarGroupStyles.style(modify: @Composable AvatarGroupStyleBuilder.() -> Unit = {}): AvatarGroupStyle { val builder = when (this) { AvatarGroupStyles.AvatarGroupSize24 -> AvatarGroup.Size24 } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [AvatarGroupStyles] для avatar-group + */ +public fun AvatarGroupStyles.Companion.resolve(size: AvatarGroupSize = AvatarGroupSize.Size24): + AvatarGroupStyles = when { + size == AvatarGroupSize.Size24 -> AvatarGroupStyles.AvatarGroupSize24 + else -> error("Unsupported avatar-group style combination") +} + +/** + * Возвращает [AvatarGroupStyle] для avatar-group + */ +@Composable +public fun AvatarGroupStyles.Companion.style( + size: AvatarGroupSize = AvatarGroupSize.Size24, + modify: @Composable AvatarGroupStyleBuilder.() -> Unit = {}, +): AvatarGroupStyle = + resolve(size).style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/basicbutton/BasicButtonStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/basicbutton/BasicButtonStylesCollection.kt index d321dbdf76..58acfb8fed 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/basicbutton/BasicButtonStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/basicbutton/BasicButtonStylesCollection.kt @@ -65,16 +65,48 @@ public enum class BasicButtonStyles( BasicButtonSize24BgNoModeAccentWhite("BasicButton.Size24.BgNo.ModeAccentWhite"), BasicButtonSize24BgNoModeAccentGrey("BasicButton.Size24.BgNo.ModeAccentGrey"), BasicButtonSize24BgNoModeDangerTint("BasicButton.Size24.BgNo.ModeDangerTint"), + ; + + /** + * Typed API для подбора стиля basic-button + */ + public companion object +} + +/** + * Возможные значения свойства size для basic-button + */ +public enum class BasicButtonSize { + Size48, + Size40, + Size32, + Size24, +} + +/** + * Возможные значения свойства bg для basic-button + */ +public enum class BasicButtonBg { + Yes, + No, +} + +/** + * Возможные значения свойства mode для basic-button + */ +public enum class BasicButtonMode { + Primary, + AccentFilled, + AccentWhite, + AccentGrey, + DangerTint, } /** * Возвращает [ButtonStyle] для [BasicButtonStyles] */ @Composable -public fun BasicButtonStyles.style( - modifyAction: @Composable BasicButtonStyleBuilder.() -> Unit = - {}, -): ButtonStyle { +public fun BasicButtonStyles.style(modify: @Composable BasicButtonStyleBuilder.() -> Unit = {}): ButtonStyle { val builder = when (this) { BasicButtonStyles.BasicButtonSize48ModePrimary -> BasicButton.Size48.ModePrimary BasicButtonStyles.BasicButtonSize48ModeAccentFilled -> BasicButton.Size48.ModeAccentFilled @@ -133,5 +165,107 @@ public fun BasicButtonStyles.style( BasicButtonStyles.BasicButtonSize24BgNoModeDangerTint -> BasicButton.Size24.BgNo.ModeDangerTint } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() +} + +/** + * Возвращает экземпляр [BasicButtonStyles] для basic-button + */ +public fun BasicButtonStyles.Companion.resolve( + size: BasicButtonSize = BasicButtonSize.Size48, + bg: BasicButtonBg = BasicButtonBg.Yes, + mode: BasicButtonMode = BasicButtonMode.Primary, +): BasicButtonStyles = when { + size == BasicButtonSize.Size48 && bg == BasicButtonBg.Yes && mode == BasicButtonMode.Primary -> + BasicButtonStyles.BasicButtonSize48ModePrimary + size == BasicButtonSize.Size48 && bg == BasicButtonBg.Yes && mode == + BasicButtonMode.AccentFilled -> BasicButtonStyles.BasicButtonSize48ModeAccentFilled + size == BasicButtonSize.Size48 && bg == BasicButtonBg.Yes && mode == + BasicButtonMode.AccentWhite -> BasicButtonStyles.BasicButtonSize48ModeAccentWhite + size == BasicButtonSize.Size48 && bg == BasicButtonBg.Yes && mode == + BasicButtonMode.AccentGrey -> BasicButtonStyles.BasicButtonSize48ModeAccentGrey + size == BasicButtonSize.Size48 && bg == BasicButtonBg.Yes && mode == + BasicButtonMode.DangerTint -> BasicButtonStyles.BasicButtonSize48ModeDangerTint + size == BasicButtonSize.Size48 && bg == BasicButtonBg.No && mode == BasicButtonMode.Primary -> + BasicButtonStyles.BasicButtonSize48BgNoModePrimary + size == BasicButtonSize.Size48 && bg == BasicButtonBg.No && mode == + BasicButtonMode.AccentFilled -> BasicButtonStyles.BasicButtonSize48BgNoModeAccentFilled + size == BasicButtonSize.Size48 && bg == BasicButtonBg.No && mode == + BasicButtonMode.AccentWhite -> BasicButtonStyles.BasicButtonSize48BgNoModeAccentWhite + size == BasicButtonSize.Size48 && bg == BasicButtonBg.No && mode == + BasicButtonMode.AccentGrey -> BasicButtonStyles.BasicButtonSize48BgNoModeAccentGrey + size == BasicButtonSize.Size48 && bg == BasicButtonBg.No && mode == + BasicButtonMode.DangerTint -> BasicButtonStyles.BasicButtonSize48BgNoModeDangerTint + size == BasicButtonSize.Size40 && bg == BasicButtonBg.Yes && mode == BasicButtonMode.Primary -> + BasicButtonStyles.BasicButtonSize40ModePrimary + size == BasicButtonSize.Size40 && bg == BasicButtonBg.Yes && mode == + BasicButtonMode.AccentFilled -> BasicButtonStyles.BasicButtonSize40ModeAccentFilled + size == BasicButtonSize.Size40 && bg == BasicButtonBg.Yes && mode == + BasicButtonMode.AccentWhite -> BasicButtonStyles.BasicButtonSize40ModeAccentWhite + size == BasicButtonSize.Size40 && bg == BasicButtonBg.Yes && mode == + BasicButtonMode.AccentGrey -> BasicButtonStyles.BasicButtonSize40ModeAccentGrey + size == BasicButtonSize.Size40 && bg == BasicButtonBg.Yes && mode == + BasicButtonMode.DangerTint -> BasicButtonStyles.BasicButtonSize40ModeDangerTint + size == BasicButtonSize.Size40 && bg == BasicButtonBg.No && mode == BasicButtonMode.Primary -> + BasicButtonStyles.BasicButtonSize40BgNoModePrimary + size == BasicButtonSize.Size40 && bg == BasicButtonBg.No && mode == + BasicButtonMode.AccentFilled -> BasicButtonStyles.BasicButtonSize40BgNoModeAccentFilled + size == BasicButtonSize.Size40 && bg == BasicButtonBg.No && mode == + BasicButtonMode.AccentWhite -> BasicButtonStyles.BasicButtonSize40BgNoModeAccentWhite + size == BasicButtonSize.Size40 && bg == BasicButtonBg.No && mode == + BasicButtonMode.AccentGrey -> BasicButtonStyles.BasicButtonSize40BgNoModeAccentGrey + size == BasicButtonSize.Size40 && bg == BasicButtonBg.No && mode == + BasicButtonMode.DangerTint -> BasicButtonStyles.BasicButtonSize40BgNoModeDangerTint + size == BasicButtonSize.Size32 && bg == BasicButtonBg.Yes && mode == BasicButtonMode.Primary -> + BasicButtonStyles.BasicButtonSize32ModePrimary + size == BasicButtonSize.Size32 && bg == BasicButtonBg.Yes && mode == + BasicButtonMode.AccentFilled -> BasicButtonStyles.BasicButtonSize32ModeAccentFilled + size == BasicButtonSize.Size32 && bg == BasicButtonBg.Yes && mode == + BasicButtonMode.AccentWhite -> BasicButtonStyles.BasicButtonSize32ModeAccentWhite + size == BasicButtonSize.Size32 && bg == BasicButtonBg.Yes && mode == + BasicButtonMode.AccentGrey -> BasicButtonStyles.BasicButtonSize32ModeAccentGrey + size == BasicButtonSize.Size32 && bg == BasicButtonBg.Yes && mode == + BasicButtonMode.DangerTint -> BasicButtonStyles.BasicButtonSize32ModeDangerTint + size == BasicButtonSize.Size32 && bg == BasicButtonBg.No && mode == BasicButtonMode.Primary -> + BasicButtonStyles.BasicButtonSize32BgNoModePrimary + size == BasicButtonSize.Size32 && bg == BasicButtonBg.No && mode == + BasicButtonMode.AccentFilled -> BasicButtonStyles.BasicButtonSize32BgNoModeAccentFilled + size == BasicButtonSize.Size32 && bg == BasicButtonBg.No && mode == + BasicButtonMode.AccentWhite -> BasicButtonStyles.BasicButtonSize32BgNoModeAccentWhite + size == BasicButtonSize.Size32 && bg == BasicButtonBg.No && mode == + BasicButtonMode.AccentGrey -> BasicButtonStyles.BasicButtonSize32BgNoModeAccentGrey + size == BasicButtonSize.Size32 && bg == BasicButtonBg.No && mode == + BasicButtonMode.DangerTint -> BasicButtonStyles.BasicButtonSize32BgNoModeDangerTint + size == BasicButtonSize.Size24 && bg == BasicButtonBg.Yes && mode == BasicButtonMode.Primary -> + BasicButtonStyles.BasicButtonSize24ModePrimary + size == BasicButtonSize.Size24 && bg == BasicButtonBg.Yes && mode == + BasicButtonMode.AccentFilled -> BasicButtonStyles.BasicButtonSize24ModeAccentFilled + size == BasicButtonSize.Size24 && bg == BasicButtonBg.Yes && mode == + BasicButtonMode.AccentWhite -> BasicButtonStyles.BasicButtonSize24ModeAccentWhite + size == BasicButtonSize.Size24 && bg == BasicButtonBg.Yes && mode == + BasicButtonMode.AccentGrey -> BasicButtonStyles.BasicButtonSize24ModeAccentGrey + size == BasicButtonSize.Size24 && bg == BasicButtonBg.Yes && mode == + BasicButtonMode.DangerTint -> BasicButtonStyles.BasicButtonSize24ModeDangerTint + size == BasicButtonSize.Size24 && bg == BasicButtonBg.No && mode == BasicButtonMode.Primary -> + BasicButtonStyles.BasicButtonSize24BgNoModePrimary + size == BasicButtonSize.Size24 && bg == BasicButtonBg.No && mode == + BasicButtonMode.AccentFilled -> BasicButtonStyles.BasicButtonSize24BgNoModeAccentFilled + size == BasicButtonSize.Size24 && bg == BasicButtonBg.No && mode == + BasicButtonMode.AccentWhite -> BasicButtonStyles.BasicButtonSize24BgNoModeAccentWhite + size == BasicButtonSize.Size24 && bg == BasicButtonBg.No && mode == + BasicButtonMode.AccentGrey -> BasicButtonStyles.BasicButtonSize24BgNoModeAccentGrey + size == BasicButtonSize.Size24 && bg == BasicButtonBg.No && mode == + BasicButtonMode.DangerTint -> BasicButtonStyles.BasicButtonSize24BgNoModeDangerTint + else -> error("Unsupported basic-button style combination") } + +/** + * Возвращает [ButtonStyle] для basic-button + */ +@Composable +public fun BasicButtonStyles.Companion.style( + size: BasicButtonSize = BasicButtonSize.Size48, + bg: BasicButtonBg = BasicButtonBg.Yes, + mode: BasicButtonMode = BasicButtonMode.Primary, + modify: @Composable BasicButtonStyleBuilder.() -> Unit = {}, +): ButtonStyle = resolve(size, bg, mode).style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/bottomsheet/BottomSheetStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/bottomsheet/BottomSheetStylesCollection.kt index ec207c11ad..33bb720513 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/bottomsheet/BottomSheetStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/bottomsheet/BottomSheetStylesCollection.kt @@ -26,6 +26,12 @@ public enum class BottomSheetStyles( public val key: String, ) { ModalBottomSheetDefault("ModalBottomSheet.Default"), + ; + + /** + * Typed API для подбора стиля modal-bottom-sheet + */ + public companion object } /** @@ -33,11 +39,27 @@ public enum class BottomSheetStyles( */ @Composable public fun BottomSheetStyles.style( - modifyAction: @Composable ModalBottomSheetStyleBuilder.() -> Unit = + modify: @Composable ModalBottomSheetStyleBuilder.() -> Unit = {}, ): ModalBottomSheetStyle { val builder = when (this) { BottomSheetStyles.ModalBottomSheetDefault -> ModalBottomSheet.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [BottomSheetStyles] для modal-bottom-sheet + */ +public fun BottomSheetStyles.Companion.resolve(): BottomSheetStyles = + BottomSheetStyles.ModalBottomSheetDefault + +/** + * Возвращает [ModalBottomSheetStyle] для modal-bottom-sheet + */ +@Composable +public fun BottomSheetStyles.Companion.style( + modify: @Composable + ModalBottomSheetStyleBuilder.() -> Unit = {}, +): ModalBottomSheetStyle = + resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/buttongroup/ButtonGroupStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/buttongroup/ButtonGroupStylesCollection.kt index 5e31567ca3..9be722453f 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/buttongroup/ButtonGroupStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/buttongroup/ButtonGroupStylesCollection.kt @@ -27,19 +27,57 @@ public enum class ButtonGroupStyles( ) { BasicButtonGroupDefault("BasicButtonGroup.Default"), IconButtonGroupDefault("IconButtonGroup.Default"), + ; + + /** + * Typed API для подбора стиля basic-button-group + */ + public object BasicButtonGroup + + /** + * Typed API для подбора стиля icon-button-group + */ + public object IconButtonGroup } /** * Возвращает [ButtonGroupStyle] для [ButtonGroupStyles] */ @Composable -public fun ButtonGroupStyles.style( - modifyAction: @Composable ButtonGroupStyleBuilder.() -> Unit = - {}, -): ButtonGroupStyle { +public fun ButtonGroupStyles.style(modify: @Composable ButtonGroupStyleBuilder.() -> Unit = {}): ButtonGroupStyle { val builder = when (this) { ButtonGroupStyles.BasicButtonGroupDefault -> BasicButtonGroup.Default ButtonGroupStyles.IconButtonGroupDefault -> IconButtonGroup.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [ButtonGroupStyles] для basic-button-group + */ +public fun ButtonGroupStyles.BasicButtonGroup.resolve(): ButtonGroupStyles = + ButtonGroupStyles.BasicButtonGroupDefault + +/** + * Возвращает [ButtonGroupStyle] для basic-button-group + */ +@Composable +public fun ButtonGroupStyles.BasicButtonGroup.style( + modify: @Composable + ButtonGroupStyleBuilder.() -> Unit = {}, +): ButtonGroupStyle = resolve().style(modify) + +/** + * Возвращает экземпляр [ButtonGroupStyles] для icon-button-group + */ +public fun ButtonGroupStyles.IconButtonGroup.resolve(): ButtonGroupStyles = + ButtonGroupStyles.IconButtonGroupDefault + +/** + * Возвращает [ButtonGroupStyle] для icon-button-group + */ +@Composable +public fun ButtonGroupStyles.IconButtonGroup.style( + modify: @Composable + ButtonGroupStyleBuilder.() -> Unit = {}, +): ButtonGroupStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/checkbox/CheckBoxStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/checkbox/CheckBoxStylesCollection.kt index a8e5024cd9..6b92235a9c 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/checkbox/CheckBoxStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/checkbox/CheckBoxStylesCollection.kt @@ -26,15 +26,33 @@ public enum class CheckBoxStyles( public val key: String, ) { CheckBoxDefault("CheckBox.Default"), + ; + + /** + * Typed API для подбора стиля check-box + */ + public companion object } /** * Возвращает [CheckBoxStyle] для [CheckBoxStyles] */ @Composable -public fun CheckBoxStyles.style(modifyAction: @Composable CheckBoxStyleBuilder.() -> Unit = {}): CheckBoxStyle { +public fun CheckBoxStyles.style(modify: @Composable CheckBoxStyleBuilder.() -> Unit = {}): CheckBoxStyle { val builder = when (this) { CheckBoxStyles.CheckBoxDefault -> CheckBox.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [CheckBoxStyles] для check-box + */ +public fun CheckBoxStyles.Companion.resolve(): CheckBoxStyles = CheckBoxStyles.CheckBoxDefault + +/** + * Возвращает [CheckBoxStyle] для check-box + */ +@Composable +public fun CheckBoxStyles.Companion.style(modify: @Composable CheckBoxStyleBuilder.() -> Unit = {}): + CheckBoxStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/chip/ChipStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/chip/ChipStylesCollection.kt index 80e6424aaa..2ec8fad2c8 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/chip/ChipStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/chip/ChipStylesCollection.kt @@ -27,16 +27,50 @@ public enum class ChipStyles( ) { ChipChipSlotPadding("Chip.ChipSlotPadding"), ChipChipSlotAvatar("Chip.ChipSlotAvatar"), + ; + + /** + * Typed API для подбора стиля chip + */ + public companion object +} + +/** + * Возможные значения свойства chip-slot для chip + */ +public enum class ChipChipSlot { + Padding, + Avatar, } /** * Возвращает [ChipStyle] для [ChipStyles] */ @Composable -public fun ChipStyles.style(modifyAction: @Composable ChipStyleBuilder.() -> Unit = {}): ChipStyle { +public fun ChipStyles.style(modify: @Composable ChipStyleBuilder.() -> Unit = {}): ChipStyle { val builder = when (this) { ChipStyles.ChipChipSlotPadding -> Chip.ChipSlotPadding ChipStyles.ChipChipSlotAvatar -> Chip.ChipSlotAvatar } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [ChipStyles] для chip + */ +public fun ChipStyles.Companion.resolve(chipSlot: ChipChipSlot = ChipChipSlot.Padding): ChipStyles = + when { + chipSlot == ChipChipSlot.Padding -> ChipStyles.ChipChipSlotPadding + chipSlot == ChipChipSlot.Avatar -> ChipStyles.ChipChipSlotAvatar + else -> error("Unsupported chip style combination") + } + +/** + * Возвращает [ChipStyle] для chip + */ +@Composable +public fun ChipStyles.Companion.style( + chipSlot: ChipChipSlot = ChipChipSlot.Padding, + modify: @Composable ChipStyleBuilder.() -> Unit = {}, +): ChipStyle = + resolve(chipSlot).style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/chipgroup/ChipGroupStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/chipgroup/ChipGroupStylesCollection.kt index 64b49de7c5..f50b05484a 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/chipgroup/ChipGroupStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/chipgroup/ChipGroupStylesCollection.kt @@ -27,16 +27,52 @@ public enum class ChipGroupStyles( ) { ChipGroupChipSlotPadding("ChipGroup.ChipSlotPadding"), ChipGroupChipSlotAvatar("ChipGroup.ChipSlotAvatar"), + ; + + /** + * Typed API для подбора стиля chip-group + */ + public companion object +} + +/** + * Возможные значения свойства chip-slot для chip-group + */ +public enum class ChipGroupChipSlot { + Padding, + Avatar, } /** * Возвращает [ChipGroupStyle] для [ChipGroupStyles] */ @Composable -public fun ChipGroupStyles.style(modifyAction: @Composable ChipGroupStyleBuilder.() -> Unit = {}): ChipGroupStyle { +public fun ChipGroupStyles.style(modify: @Composable ChipGroupStyleBuilder.() -> Unit = {}): ChipGroupStyle { val builder = when (this) { ChipGroupStyles.ChipGroupChipSlotPadding -> ChipGroup.ChipSlotPadding ChipGroupStyles.ChipGroupChipSlotAvatar -> ChipGroup.ChipSlotAvatar } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [ChipGroupStyles] для chip-group + */ +public fun ChipGroupStyles.Companion.resolve( + chipSlot: ChipGroupChipSlot = + ChipGroupChipSlot.Padding, +): ChipGroupStyles = when { + chipSlot == ChipGroupChipSlot.Padding -> ChipGroupStyles.ChipGroupChipSlotPadding + chipSlot == ChipGroupChipSlot.Avatar -> ChipGroupStyles.ChipGroupChipSlotAvatar + else -> error("Unsupported chip-group style combination") +} + +/** + * Возвращает [ChipGroupStyle] для chip-group + */ +@Composable +public fun ChipGroupStyles.Companion.style( + chipSlot: ChipGroupChipSlot = ChipGroupChipSlot.Padding, + modify: @Composable ChipGroupStyleBuilder.() -> Unit = {}, +): ChipGroupStyle = + resolve(chipSlot).style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/circularprogressbar/CircularProgressBarStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/circularprogressbar/CircularProgressBarStylesCollection.kt index 0090bbbe87..97c0083ed5 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/circularprogressbar/CircularProgressBarStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/circularprogressbar/CircularProgressBarStylesCollection.kt @@ -45,6 +45,33 @@ public enum class CircularProgressBarStyles( CircularProgressBarSize16ModeColorGlobalWhite("CircularProgressBar.Size16.ModeColorGlobalWhite"), CircularProgressBarSize16ModeColorAccent("CircularProgressBar.Size16.ModeColorAccent"), CircularProgressBarSize16ModeColorDanger("CircularProgressBar.Size16.ModeColorDanger"), + ; + + /** + * Typed API для подбора стиля circular-progress-bar + */ + public companion object +} + +/** + * Возможные значения свойства size для circular-progress-bar + */ +public enum class CircularProgressBarSize { + Size40, + Size32, + Size24, + Size16, +} + +/** + * Возможные значения свойства mode-color для circular-progress-bar + */ +public enum class CircularProgressBarModeColor { + Primary, + Secondary, + GlobalWhite, + Accent, + Danger, } /** @@ -52,7 +79,7 @@ public enum class CircularProgressBarStyles( */ @Composable public fun CircularProgressBarStyles.style( - modifyAction: @Composable + modify: @Composable CircularProgressBarStyleBuilder.() -> Unit = {}, ): CircularProgressBarStyle { val builder = when (this) { @@ -97,5 +124,71 @@ public fun CircularProgressBarStyles.style( CircularProgressBarStyles.CircularProgressBarSize16ModeColorDanger -> CircularProgressBar.Size16.ModeColorDanger } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [CircularProgressBarStyles] для circular-progress-bar + */ +public fun CircularProgressBarStyles.Companion.resolve( + size: CircularProgressBarSize = + CircularProgressBarSize.Size40, + modeColor: CircularProgressBarModeColor = + CircularProgressBarModeColor.Primary, +): CircularProgressBarStyles = when { + size == CircularProgressBarSize.Size40 && modeColor == CircularProgressBarModeColor.Primary -> + CircularProgressBarStyles.CircularProgressBarSize40ModeColorPrimary + size == CircularProgressBarSize.Size40 && modeColor == CircularProgressBarModeColor.Secondary -> + CircularProgressBarStyles.CircularProgressBarSize40ModeColorSecondary + size == CircularProgressBarSize.Size40 && modeColor == + CircularProgressBarModeColor.GlobalWhite -> + CircularProgressBarStyles.CircularProgressBarSize40ModeColorGlobalWhite + size == CircularProgressBarSize.Size40 && modeColor == CircularProgressBarModeColor.Accent -> + CircularProgressBarStyles.CircularProgressBarSize40ModeColorAccent + size == CircularProgressBarSize.Size40 && modeColor == CircularProgressBarModeColor.Danger -> + CircularProgressBarStyles.CircularProgressBarSize40ModeColorDanger + size == CircularProgressBarSize.Size32 && modeColor == CircularProgressBarModeColor.Primary -> + CircularProgressBarStyles.CircularProgressBarSize32ModeColorPrimary + size == CircularProgressBarSize.Size32 && modeColor == CircularProgressBarModeColor.Secondary -> + CircularProgressBarStyles.CircularProgressBarSize32ModeColorSecondary + size == CircularProgressBarSize.Size32 && modeColor == + CircularProgressBarModeColor.GlobalWhite -> + CircularProgressBarStyles.CircularProgressBarSize32ModeColorGlobalWhite + size == CircularProgressBarSize.Size32 && modeColor == CircularProgressBarModeColor.Accent -> + CircularProgressBarStyles.CircularProgressBarSize32ModeColorAccent + size == CircularProgressBarSize.Size32 && modeColor == CircularProgressBarModeColor.Danger -> + CircularProgressBarStyles.CircularProgressBarSize32ModeColorDanger + size == CircularProgressBarSize.Size24 && modeColor == CircularProgressBarModeColor.Primary -> + CircularProgressBarStyles.CircularProgressBarSize24ModeColorPrimary + size == CircularProgressBarSize.Size24 && modeColor == CircularProgressBarModeColor.Secondary -> + CircularProgressBarStyles.CircularProgressBarSize24ModeColorSecondary + size == CircularProgressBarSize.Size24 && modeColor == + CircularProgressBarModeColor.GlobalWhite -> + CircularProgressBarStyles.CircularProgressBarSize24ModeColorGlobalWhite + size == CircularProgressBarSize.Size24 && modeColor == CircularProgressBarModeColor.Accent -> + CircularProgressBarStyles.CircularProgressBarSize24ModeColorAccent + size == CircularProgressBarSize.Size24 && modeColor == CircularProgressBarModeColor.Danger -> + CircularProgressBarStyles.CircularProgressBarSize24ModeColorDanger + size == CircularProgressBarSize.Size16 && modeColor == CircularProgressBarModeColor.Primary -> + CircularProgressBarStyles.CircularProgressBarSize16ModeColorPrimary + size == CircularProgressBarSize.Size16 && modeColor == CircularProgressBarModeColor.Secondary -> + CircularProgressBarStyles.CircularProgressBarSize16ModeColorSecondary + size == CircularProgressBarSize.Size16 && modeColor == + CircularProgressBarModeColor.GlobalWhite -> + CircularProgressBarStyles.CircularProgressBarSize16ModeColorGlobalWhite + size == CircularProgressBarSize.Size16 && modeColor == CircularProgressBarModeColor.Accent -> + CircularProgressBarStyles.CircularProgressBarSize16ModeColorAccent + size == CircularProgressBarSize.Size16 && modeColor == CircularProgressBarModeColor.Danger -> + CircularProgressBarStyles.CircularProgressBarSize16ModeColorDanger + else -> error("Unsupported circular-progress-bar style combination") +} + +/** + * Возвращает [CircularProgressBarStyle] для circular-progress-bar + */ +@Composable +public fun CircularProgressBarStyles.Companion.style( + size: CircularProgressBarSize = CircularProgressBarSize.Size40, + modeColor: CircularProgressBarModeColor = CircularProgressBarModeColor.Primary, + modify: @Composable CircularProgressBarStyleBuilder.() -> Unit = {}, +): CircularProgressBarStyle = resolve(size, modeColor).style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/collapsingnavigationbar/CollapsingNavigationBarStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/collapsingnavigationbar/CollapsingNavigationBarStylesCollection.kt index f780170062..4ed38a8510 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/collapsingnavigationbar/CollapsingNavigationBarStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/collapsingnavigationbar/CollapsingNavigationBarStylesCollection.kt @@ -27,6 +27,17 @@ public enum class CollapsingNavigationBarStyles( ) { CollapsingNavigationBarMainPageDefault("CollapsingNavigationBarMainPage.Default"), CollapsingNavigationBarInternalPageDefault("CollapsingNavigationBarInternalPage.Default"), + ; + + /** + * Typed API для подбора стиля collapsing-navigation-bar-main-page + */ + public object MainPage + + /** + * Typed API для подбора стиля collapsing-navigation-bar-internal-page + */ + public object InternalPage } /** @@ -34,7 +45,7 @@ public enum class CollapsingNavigationBarStyles( */ @Composable public fun CollapsingNavigationBarStyles.style( - modifyAction: @Composable + modify: @Composable CollapsingNavigationBarStyleBuilder.() -> Unit = {}, ): CollapsingNavigationBarStyle { val builder = when (this) { @@ -43,5 +54,37 @@ public fun CollapsingNavigationBarStyles.style( CollapsingNavigationBarStyles.CollapsingNavigationBarInternalPageDefault -> CollapsingNavigationBarInternalPage.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [CollapsingNavigationBarStyles] для collapsing-navigation-bar-main-page + */ +public fun CollapsingNavigationBarStyles.MainPage.resolve(): CollapsingNavigationBarStyles = + CollapsingNavigationBarStyles.CollapsingNavigationBarMainPageDefault + +/** + * Возвращает [CollapsingNavigationBarStyle] для collapsing-navigation-bar-main-page + */ +@Composable +public fun CollapsingNavigationBarStyles.MainPage.style( + modify: @Composable + CollapsingNavigationBarStyleBuilder.() -> Unit = {}, +): CollapsingNavigationBarStyle = + resolve().style(modify) + +/** + * Возвращает экземпляр [CollapsingNavigationBarStyles] для collapsing-navigation-bar-internal-page + */ +public fun CollapsingNavigationBarStyles.InternalPage.resolve(): CollapsingNavigationBarStyles = + CollapsingNavigationBarStyles.CollapsingNavigationBarInternalPageDefault + +/** + * Возвращает [CollapsingNavigationBarStyle] для collapsing-navigation-bar-internal-page + */ +@Composable +public fun CollapsingNavigationBarStyles.InternalPage.style( + modify: @Composable + CollapsingNavigationBarStyleBuilder.() -> Unit = {}, +): CollapsingNavigationBarStyle = + resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/counter/CounterStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/counter/CounterStylesCollection.kt index dc11b19909..4432927b07 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/counter/CounterStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/counter/CounterStylesCollection.kt @@ -29,18 +29,90 @@ public enum class CounterStyles( CounterMuteYes("Counter.MuteYes"), TabBarCounterDefault("TabBarCounter.Default"), TabItemFolderCounterDefault("TabItemFolderCounter.Default"), + ; + + /** + * Typed API для подбора стиля counter + */ + public object Default + + /** + * Typed API для подбора стиля tab-bar-counter + */ + public object TabBarCounter + + /** + * Typed API для подбора стиля tab-item-folder-counter + */ + public object TabItemFolderCounter +} + +/** + * Возможные значения свойства mute для counter + */ +public enum class CounterDefaultMute { + No, + Yes, } /** * Возвращает [CounterStyle] для [CounterStyles] */ @Composable -public fun CounterStyles.style(modifyAction: @Composable CounterStyleBuilder.() -> Unit = {}): CounterStyle { +public fun CounterStyles.style(modify: @Composable CounterStyleBuilder.() -> Unit = {}): CounterStyle { val builder = when (this) { CounterStyles.CounterMuteNo -> Counter.MuteNo CounterStyles.CounterMuteYes -> Counter.MuteYes CounterStyles.TabBarCounterDefault -> TabBarCounter.Default CounterStyles.TabItemFolderCounterDefault -> TabItemFolderCounter.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [CounterStyles] для counter + */ +public fun CounterStyles.Default.resolve(mute: CounterDefaultMute = CounterDefaultMute.No): CounterStyles = when { + mute == CounterDefaultMute.No -> CounterStyles.CounterMuteNo + mute == CounterDefaultMute.Yes -> CounterStyles.CounterMuteYes + else -> error("Unsupported counter style combination") +} + +/** + * Возвращает [CounterStyle] для counter + */ +@Composable +public fun CounterStyles.Default.style( + mute: CounterDefaultMute = CounterDefaultMute.No, + modify: @Composable CounterStyleBuilder.() -> Unit = {}, +): CounterStyle = + resolve(mute).style(modify) + +/** + * Возвращает экземпляр [CounterStyles] для tab-bar-counter + */ +public fun CounterStyles.TabBarCounter.resolve(): CounterStyles = CounterStyles.TabBarCounterDefault + +/** + * Возвращает [CounterStyle] для tab-bar-counter + */ +@Composable +public fun CounterStyles.TabBarCounter.style( + modify: @Composable CounterStyleBuilder.() -> Unit = + {}, +): CounterStyle = resolve().style(modify) + +/** + * Возвращает экземпляр [CounterStyles] для tab-item-folder-counter + */ +public fun CounterStyles.TabItemFolderCounter.resolve(): CounterStyles = + CounterStyles.TabItemFolderCounterDefault + +/** + * Возвращает [CounterStyle] для tab-item-folder-counter + */ +@Composable +public fun CounterStyles.TabItemFolderCounter.style( + modify: @Composable + CounterStyleBuilder.() -> Unit = {}, +): CounterStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/divider/DividerStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/divider/DividerStylesCollection.kt index 5f178bede2..56c2ff13f0 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/divider/DividerStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/divider/DividerStylesCollection.kt @@ -26,15 +26,33 @@ public enum class DividerStyles( public val key: String, ) { DividerDefault("Divider.Default"), + ; + + /** + * Typed API для подбора стиля divider + */ + public companion object } /** * Возвращает [DividerStyle] для [DividerStyles] */ @Composable -public fun DividerStyles.style(modifyAction: @Composable DividerStyleBuilder.() -> Unit = {}): DividerStyle { +public fun DividerStyles.style(modify: @Composable DividerStyleBuilder.() -> Unit = {}): DividerStyle { val builder = when (this) { DividerStyles.DividerDefault -> Divider.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [DividerStyles] для divider + */ +public fun DividerStyles.Companion.resolve(): DividerStyles = DividerStyles.DividerDefault + +/** + * Возвращает [DividerStyle] для divider + */ +@Composable +public fun DividerStyles.Companion.style(modify: @Composable DividerStyleBuilder.() -> Unit = {}): + DividerStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/dropdownmenu/DropdownMenuStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/dropdownmenu/DropdownMenuStylesCollection.kt index a7eb8e9daa..cdf77f48c6 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/dropdownmenu/DropdownMenuStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/dropdownmenu/DropdownMenuStylesCollection.kt @@ -26,18 +26,36 @@ public enum class DropdownMenuStyles( public val key: String, ) { DropdownMenuDefault("DropdownMenu.Default"), + ; + + /** + * Typed API для подбора стиля dropdown-menu + */ + public companion object } /** * Возвращает [DropdownMenuStyle] для [DropdownMenuStyles] */ @Composable -public fun DropdownMenuStyles.style( - modifyAction: @Composable DropdownMenuStyleBuilder.() -> Unit = - {}, -): DropdownMenuStyle { +public fun DropdownMenuStyles.style(modify: @Composable DropdownMenuStyleBuilder.() -> Unit = {}): DropdownMenuStyle { val builder = when (this) { DropdownMenuStyles.DropdownMenuDefault -> DropdownMenu.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [DropdownMenuStyles] для dropdown-menu + */ +public fun DropdownMenuStyles.Companion.resolve(): DropdownMenuStyles = + DropdownMenuStyles.DropdownMenuDefault + +/** + * Возвращает [DropdownMenuStyle] для dropdown-menu + */ +@Composable +public fun DropdownMenuStyles.Companion.style( + modify: @Composable + DropdownMenuStyleBuilder.() -> Unit = {}, +): DropdownMenuStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/iconbadge/IconBadgeStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/iconbadge/IconBadgeStylesCollection.kt index 46f8734028..0410b7b9d3 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/iconbadge/IconBadgeStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/iconbadge/IconBadgeStylesCollection.kt @@ -31,13 +31,42 @@ public enum class IconBadgeStyles( VoiceChatBadgeSize18("VoiceChatBadge.Size18"), VoiceChatBadgeSize16("VoiceChatBadge.Size16"), VoiceChatBadgeSize14("VoiceChatBadge.Size14"), + ; + + /** + * Typed API для подбора стиля mention + */ + public object Mention + + /** + * Typed API для подбора стиля voice-chat-badge + */ + public object VoiceChatBadge +} + +/** + * Возможные значения свойства mute для mention + */ +public enum class IconBadgeMentionMute { + No, + Yes, +} + +/** + * Возможные значения свойства size для voice-chat-badge + */ +public enum class IconBadgeVoiceChatBadgeSize { + Size20, + Size18, + Size16, + Size14, } /** * Возвращает [BadgeStyle] для [IconBadgeStyles] */ @Composable -public fun IconBadgeStyles.style(modifyAction: @Composable IconBadgeStyleBuilder.() -> Unit = {}): BadgeStyle { +public fun IconBadgeStyles.style(modify: @Composable IconBadgeStyleBuilder.() -> Unit = {}): BadgeStyle { val builder = when (this) { IconBadgeStyles.MentionMuteNo -> Mention.MuteNo IconBadgeStyles.MentionMuteYes -> Mention.MuteYes @@ -46,5 +75,50 @@ public fun IconBadgeStyles.style(modifyAction: @Composable IconBadgeStyleBuilder IconBadgeStyles.VoiceChatBadgeSize16 -> VoiceChatBadge.Size16 IconBadgeStyles.VoiceChatBadgeSize14 -> VoiceChatBadge.Size14 } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() +} + +/** + * Возвращает экземпляр [IconBadgeStyles] для mention + */ +public fun IconBadgeStyles.Mention.resolve(mute: IconBadgeMentionMute = IconBadgeMentionMute.No): + IconBadgeStyles = when { + mute == IconBadgeMentionMute.No -> IconBadgeStyles.MentionMuteNo + mute == IconBadgeMentionMute.Yes -> IconBadgeStyles.MentionMuteYes + else -> error("Unsupported mention style combination") } + +/** + * Возвращает [BadgeStyle] для mention + */ +@Composable +public fun IconBadgeStyles.Mention.style( + mute: IconBadgeMentionMute = IconBadgeMentionMute.No, + modify: @Composable IconBadgeStyleBuilder.() -> Unit = {}, +): BadgeStyle = + resolve(mute).style(modify) + +/** + * Возвращает экземпляр [IconBadgeStyles] для voice-chat-badge + */ +public fun IconBadgeStyles.VoiceChatBadge.resolve( + size: IconBadgeVoiceChatBadgeSize = + IconBadgeVoiceChatBadgeSize.Size20, +): IconBadgeStyles = when { + size == IconBadgeVoiceChatBadgeSize.Size20 -> IconBadgeStyles.VoiceChatBadgeSize20 + size == IconBadgeVoiceChatBadgeSize.Size18 -> IconBadgeStyles.VoiceChatBadgeSize18 + size == IconBadgeVoiceChatBadgeSize.Size16 -> IconBadgeStyles.VoiceChatBadgeSize16 + size == IconBadgeVoiceChatBadgeSize.Size14 -> IconBadgeStyles.VoiceChatBadgeSize14 + else -> error("Unsupported voice-chat-badge style combination") +} + +/** + * Возвращает [BadgeStyle] для voice-chat-badge + */ +@Composable +public fun IconBadgeStyles.VoiceChatBadge.style( + size: IconBadgeVoiceChatBadgeSize = + IconBadgeVoiceChatBadgeSize.Size20, + modify: @Composable IconBadgeStyleBuilder.() -> Unit = + {}, +): BadgeStyle = resolve(size).style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/iconbutton/IconButtonStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/iconbutton/IconButtonStylesCollection.kt index 5d59594984..eebc9a89c7 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/iconbutton/IconButtonStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/iconbutton/IconButtonStylesCollection.kt @@ -49,13 +49,46 @@ public enum class IconButtonStyles( IconButtonSize24BgNoModeAccentFilled("IconButton.Size24.BgNo.ModeAccentFilled"), IconButtonSize24BgNoModeAccentGrey("IconButton.Size24.BgNo.ModeAccentGrey"), IconButtonSize24BgNoModeDangerTint("IconButton.Size24.BgNo.ModeDangerTint"), + ; + + /** + * Typed API для подбора стиля icon-button + */ + public companion object +} + +/** + * Возможные значения свойства size для icon-button + */ +public enum class IconButtonSize { + Size48, + Size40, + Size32, + Size24, +} + +/** + * Возможные значения свойства bg для icon-button + */ +public enum class IconButtonBg { + Yes, + No, +} + +/** + * Возможные значения свойства mode для icon-button + */ +public enum class IconButtonMode { + AccentFilled, + AccentGrey, + DangerTint, } /** * Возвращает [ButtonStyle] для [IconButtonStyles] */ @Composable -public fun IconButtonStyles.style(modifyAction: @Composable IconButtonStyleBuilder.() -> Unit = {}): ButtonStyle { +public fun IconButtonStyles.style(modify: @Composable IconButtonStyleBuilder.() -> Unit = {}): ButtonStyle { val builder = when (this) { IconButtonStyles.IconButtonSize48ModeAccentFilled -> IconButton.Size48.ModeAccentFilled IconButtonStyles.IconButtonSize48ModeAccentGrey -> IconButton.Size48.ModeAccentGrey @@ -86,5 +119,75 @@ public fun IconButtonStyles.style(modifyAction: @Composable IconButtonStyleBuild IconButtonStyles.IconButtonSize24BgNoModeAccentGrey -> IconButton.Size24.BgNo.ModeAccentGrey IconButtonStyles.IconButtonSize24BgNoModeDangerTint -> IconButton.Size24.BgNo.ModeDangerTint } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() +} + +/** + * Возвращает экземпляр [IconButtonStyles] для icon-button + */ +public fun IconButtonStyles.Companion.resolve( + size: IconButtonSize = IconButtonSize.Size48, + bg: IconButtonBg = IconButtonBg.Yes, + mode: IconButtonMode = IconButtonMode.AccentFilled, +): IconButtonStyles = when { + size == IconButtonSize.Size48 && bg == IconButtonBg.Yes && mode == + IconButtonMode.AccentFilled -> IconButtonStyles.IconButtonSize48ModeAccentFilled + size == IconButtonSize.Size48 && bg == IconButtonBg.Yes && mode == IconButtonMode.AccentGrey -> + IconButtonStyles.IconButtonSize48ModeAccentGrey + size == IconButtonSize.Size48 && bg == IconButtonBg.Yes && mode == IconButtonMode.DangerTint -> + IconButtonStyles.IconButtonSize48ModeDangerTint + size == IconButtonSize.Size48 && bg == IconButtonBg.No && mode == IconButtonMode.AccentFilled -> + IconButtonStyles.IconButtonSize48BgNoModeAccentFilled + size == IconButtonSize.Size48 && bg == IconButtonBg.No && mode == IconButtonMode.AccentGrey -> + IconButtonStyles.IconButtonSize48BgNoModeAccentGrey + size == IconButtonSize.Size48 && bg == IconButtonBg.No && mode == IconButtonMode.DangerTint -> + IconButtonStyles.IconButtonSize48BgNoModeDangerTint + size == IconButtonSize.Size40 && bg == IconButtonBg.Yes && mode == + IconButtonMode.AccentFilled -> IconButtonStyles.IconButtonSize40ModeAccentFilled + size == IconButtonSize.Size40 && bg == IconButtonBg.Yes && mode == IconButtonMode.AccentGrey -> + IconButtonStyles.IconButtonSize40ModeAccentGrey + size == IconButtonSize.Size40 && bg == IconButtonBg.Yes && mode == IconButtonMode.DangerTint -> + IconButtonStyles.IconButtonSize40ModeDangerTint + size == IconButtonSize.Size40 && bg == IconButtonBg.No && mode == IconButtonMode.AccentFilled -> + IconButtonStyles.IconButtonSize40BgNoModeAccentFilled + size == IconButtonSize.Size40 && bg == IconButtonBg.No && mode == IconButtonMode.AccentGrey -> + IconButtonStyles.IconButtonSize40BgNoModeAccentGrey + size == IconButtonSize.Size40 && bg == IconButtonBg.No && mode == IconButtonMode.DangerTint -> + IconButtonStyles.IconButtonSize40BgNoModeDangerTint + size == IconButtonSize.Size32 && bg == IconButtonBg.Yes && mode == + IconButtonMode.AccentFilled -> IconButtonStyles.IconButtonSize32ModeAccentFilled + size == IconButtonSize.Size32 && bg == IconButtonBg.Yes && mode == IconButtonMode.AccentGrey -> + IconButtonStyles.IconButtonSize32ModeAccentGrey + size == IconButtonSize.Size32 && bg == IconButtonBg.Yes && mode == IconButtonMode.DangerTint -> + IconButtonStyles.IconButtonSize32ModeDangerTint + size == IconButtonSize.Size32 && bg == IconButtonBg.No && mode == IconButtonMode.AccentFilled -> + IconButtonStyles.IconButtonSize32BgNoModeAccentFilled + size == IconButtonSize.Size32 && bg == IconButtonBg.No && mode == IconButtonMode.AccentGrey -> + IconButtonStyles.IconButtonSize32BgNoModeAccentGrey + size == IconButtonSize.Size32 && bg == IconButtonBg.No && mode == IconButtonMode.DangerTint -> + IconButtonStyles.IconButtonSize32BgNoModeDangerTint + size == IconButtonSize.Size24 && bg == IconButtonBg.Yes && mode == + IconButtonMode.AccentFilled -> IconButtonStyles.IconButtonSize24ModeAccentFilled + size == IconButtonSize.Size24 && bg == IconButtonBg.Yes && mode == IconButtonMode.AccentGrey -> + IconButtonStyles.IconButtonSize24ModeAccentGrey + size == IconButtonSize.Size24 && bg == IconButtonBg.Yes && mode == IconButtonMode.DangerTint -> + IconButtonStyles.IconButtonSize24ModeDangerTint + size == IconButtonSize.Size24 && bg == IconButtonBg.No && mode == IconButtonMode.AccentFilled -> + IconButtonStyles.IconButtonSize24BgNoModeAccentFilled + size == IconButtonSize.Size24 && bg == IconButtonBg.No && mode == IconButtonMode.AccentGrey -> + IconButtonStyles.IconButtonSize24BgNoModeAccentGrey + size == IconButtonSize.Size24 && bg == IconButtonBg.No && mode == IconButtonMode.DangerTint -> + IconButtonStyles.IconButtonSize24BgNoModeDangerTint + else -> error("Unsupported icon-button style combination") } + +/** + * Возвращает [ButtonStyle] для icon-button + */ +@Composable +public fun IconButtonStyles.Companion.style( + size: IconButtonSize = IconButtonSize.Size48, + bg: IconButtonBg = IconButtonBg.Yes, + mode: IconButtonMode = IconButtonMode.AccentFilled, + modify: @Composable IconButtonStyleBuilder.() -> Unit = {}, +): ButtonStyle = resolve(size, bg, mode).style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/indicator/IndicatorStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/indicator/IndicatorStylesCollection.kt index 68cdeb05ef..23d6f66031 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/indicator/IndicatorStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/indicator/IndicatorStylesCollection.kt @@ -35,13 +35,46 @@ public enum class IndicatorStyles( IndicatorStateMute("Indicator.StateMute"), IndicatorStateDanger("Indicator.StateDanger"), IndicatorStateWarning("Indicator.StateWarning"), + ; + + /** + * Typed API для подбора стиля avatar-indicator + */ + public object AvatarIndicator + + /** + * Typed API для подбора стиля indicator + */ + public object Default +} + +/** + * Возможные значения свойства size для avatar-indicator + */ +public enum class IndicatorAvatarIndicatorSize { + Size14, + Size12, + Size10, + Size8, + Size6, +} + +/** + * Возможные значения свойства state для indicator + */ +public enum class IndicatorDefaultState { + Success, + GlobalWhite, + Mute, + Danger, + Warning, } /** * Возвращает [IndicatorStyle] для [IndicatorStyles] */ @Composable -public fun IndicatorStyles.style(modifyAction: @Composable IndicatorStyleBuilder.() -> Unit = {}): IndicatorStyle { +public fun IndicatorStyles.style(modify: @Composable IndicatorStyleBuilder.() -> Unit = {}): IndicatorStyle { val builder = when (this) { IndicatorStyles.AvatarIndicatorSize14 -> AvatarIndicator.Size14 IndicatorStyles.AvatarIndicatorSize12 -> AvatarIndicator.Size12 @@ -54,5 +87,56 @@ public fun IndicatorStyles.style(modifyAction: @Composable IndicatorStyleBuilder IndicatorStyles.IndicatorStateDanger -> Indicator.StateDanger IndicatorStyles.IndicatorStateWarning -> Indicator.StateWarning } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() +} + +/** + * Возвращает экземпляр [IndicatorStyles] для avatar-indicator + */ +public fun IndicatorStyles.AvatarIndicator.resolve( + size: IndicatorAvatarIndicatorSize = + IndicatorAvatarIndicatorSize.Size14, +): IndicatorStyles = when { + size == IndicatorAvatarIndicatorSize.Size14 -> IndicatorStyles.AvatarIndicatorSize14 + size == IndicatorAvatarIndicatorSize.Size12 -> IndicatorStyles.AvatarIndicatorSize12 + size == IndicatorAvatarIndicatorSize.Size10 -> IndicatorStyles.AvatarIndicatorSize10 + size == IndicatorAvatarIndicatorSize.Size8 -> IndicatorStyles.AvatarIndicatorSize8 + size == IndicatorAvatarIndicatorSize.Size6 -> IndicatorStyles.AvatarIndicatorSize6 + else -> error("Unsupported avatar-indicator style combination") } + +/** + * Возвращает [IndicatorStyle] для avatar-indicator + */ +@Composable +public fun IndicatorStyles.AvatarIndicator.style( + size: IndicatorAvatarIndicatorSize = + IndicatorAvatarIndicatorSize.Size14, + modify: @Composable IndicatorStyleBuilder.() -> Unit = + {}, +): IndicatorStyle = resolve(size).style(modify) + +/** + * Возвращает экземпляр [IndicatorStyles] для indicator + */ +public fun IndicatorStyles.Default.resolve( + state: IndicatorDefaultState = + IndicatorDefaultState.Success, +): IndicatorStyles = when { + state == IndicatorDefaultState.Success -> IndicatorStyles.IndicatorStateSuccess + state == IndicatorDefaultState.GlobalWhite -> IndicatorStyles.IndicatorStateGlobalWhite + state == IndicatorDefaultState.Mute -> IndicatorStyles.IndicatorStateMute + state == IndicatorDefaultState.Danger -> IndicatorStyles.IndicatorStateDanger + state == IndicatorDefaultState.Warning -> IndicatorStyles.IndicatorStateWarning + else -> error("Unsupported indicator style combination") +} + +/** + * Возвращает [IndicatorStyle] для indicator + */ +@Composable +public fun IndicatorStyles.Default.style( + state: IndicatorDefaultState = + IndicatorDefaultState.Success, + modify: @Composable IndicatorStyleBuilder.() -> Unit = {}, +): IndicatorStyle = resolve(state).style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/list/ListStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/list/ListStylesCollection.kt index a92f6a1931..5ced16b31a 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/list/ListStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/list/ListStylesCollection.kt @@ -27,16 +27,52 @@ public enum class ListStyles( ) { DropdownMenuListDefault("DropdownMenuList.Default"), ListDefault("List.Default"), + ; + + /** + * Typed API для подбора стиля dropdown-menu-list + */ + public object DropdownMenuList + + /** + * Typed API для подбора стиля list + */ + public object Default } /** * Возвращает [ListStyle] для [ListStyles] */ @Composable -public fun ListStyles.style(modifyAction: @Composable ListStyleBuilder.() -> Unit = {}): ListStyle { +public fun ListStyles.style(modify: @Composable ListStyleBuilder.() -> Unit = {}): ListStyle { val builder = when (this) { ListStyles.DropdownMenuListDefault -> DropdownMenuList.Default ListStyles.ListDefault -> List.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [ListStyles] для dropdown-menu-list + */ +public fun ListStyles.DropdownMenuList.resolve(): ListStyles = ListStyles.DropdownMenuListDefault + +/** + * Возвращает [ListStyle] для dropdown-menu-list + */ +@Composable +public fun ListStyles.DropdownMenuList.style(modify: @Composable ListStyleBuilder.() -> Unit = {}): + ListStyle = resolve().style(modify) + +/** + * Возвращает экземпляр [ListStyles] для list + */ +public fun ListStyles.Default.resolve(): ListStyles = ListStyles.ListDefault + +/** + * Возвращает [ListStyle] для list + */ +@Composable +public fun ListStyles.Default.style( + modify: @Composable ListStyleBuilder.() -> Unit = {}, +): ListStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/listitem/ListItemStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/listitem/ListItemStylesCollection.kt index 660121debc..0b6908c48f 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/listitem/ListItemStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/listitem/ListItemStylesCollection.kt @@ -27,16 +27,54 @@ public enum class ListItemStyles( ) { DropdownMenuItemDefault("DropdownMenuItem.Default"), ListItemDefault("ListItem.Default"), + ; + + /** + * Typed API для подбора стиля dropdown-menu-item + */ + public object DropdownMenuItem + + /** + * Typed API для подбора стиля list-item + */ + public object Default } /** * Возвращает [ListItemStyle] для [ListItemStyles] */ @Composable -public fun ListItemStyles.style(modifyAction: @Composable ListItemStyleBuilder.() -> Unit = {}): ListItemStyle { +public fun ListItemStyles.style(modify: @Composable ListItemStyleBuilder.() -> Unit = {}): ListItemStyle { val builder = when (this) { ListItemStyles.DropdownMenuItemDefault -> DropdownMenuItem.Default ListItemStyles.ListItemDefault -> ListItem.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [ListItemStyles] для dropdown-menu-item + */ +public fun ListItemStyles.DropdownMenuItem.resolve(): ListItemStyles = + ListItemStyles.DropdownMenuItemDefault + +/** + * Возвращает [ListItemStyle] для dropdown-menu-item + */ +@Composable +public fun ListItemStyles.DropdownMenuItem.style( + modify: @Composable ListItemStyleBuilder.() -> Unit = + {}, +): ListItemStyle = resolve().style(modify) + +/** + * Возвращает экземпляр [ListItemStyles] для list-item + */ +public fun ListItemStyles.Default.resolve(): ListItemStyles = ListItemStyles.ListItemDefault + +/** + * Возвращает [ListItemStyle] для list-item + */ +@Composable +public fun ListItemStyles.Default.style(modify: @Composable ListItemStyleBuilder.() -> Unit = {}): + ListItemStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/loader/LoaderStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/loader/LoaderStylesCollection.kt index f1346c00d7..447eb0bafb 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/loader/LoaderStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/loader/LoaderStylesCollection.kt @@ -45,13 +45,40 @@ public enum class LoaderStyles( LoaderSize16ModeColorGlobalWhite("Loader.Size16.ModeColorGlobalWhite"), LoaderSize16ModeColorAccent("Loader.Size16.ModeColorAccent"), LoaderSize16ModeColorDanger("Loader.Size16.ModeColorDanger"), + ; + + /** + * Typed API для подбора стиля loader + */ + public companion object +} + +/** + * Возможные значения свойства size для loader + */ +public enum class LoaderSize { + Size40, + Size32, + Size24, + Size16, +} + +/** + * Возможные значения свойства mode-color для loader + */ +public enum class LoaderModeColor { + Primary, + Secondary, + GlobalWhite, + Accent, + Danger, } /** * Возвращает [LoaderStyle] для [LoaderStyles] */ @Composable -public fun LoaderStyles.style(modifyAction: @Composable LoaderStyleBuilder.() -> Unit = {}): LoaderStyle { +public fun LoaderStyles.style(modify: @Composable LoaderStyleBuilder.() -> Unit = {}): LoaderStyle { val builder = when (this) { LoaderStyles.LoaderSize40ModeColorPrimary -> Loader.Size40.ModeColorPrimary LoaderStyles.LoaderSize40ModeColorSecondary -> Loader.Size40.ModeColorSecondary @@ -74,5 +101,65 @@ public fun LoaderStyles.style(modifyAction: @Composable LoaderStyleBuilder.() -> LoaderStyles.LoaderSize16ModeColorAccent -> Loader.Size16.ModeColorAccent LoaderStyles.LoaderSize16ModeColorDanger -> Loader.Size16.ModeColorDanger } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [LoaderStyles] для loader + */ +public fun LoaderStyles.Companion.resolve( + size: LoaderSize = LoaderSize.Size40, + modeColor: LoaderModeColor = LoaderModeColor.Primary, +): LoaderStyles = when { + size == LoaderSize.Size40 && modeColor == LoaderModeColor.Primary -> + LoaderStyles.LoaderSize40ModeColorPrimary + size == LoaderSize.Size40 && modeColor == LoaderModeColor.Secondary -> + LoaderStyles.LoaderSize40ModeColorSecondary + size == LoaderSize.Size40 && modeColor == LoaderModeColor.GlobalWhite -> + LoaderStyles.LoaderSize40ModeColorGlobalWhite + size == LoaderSize.Size40 && modeColor == LoaderModeColor.Accent -> + LoaderStyles.LoaderSize40ModeColorAccent + size == LoaderSize.Size40 && modeColor == LoaderModeColor.Danger -> + LoaderStyles.LoaderSize40ModeColorDanger + size == LoaderSize.Size32 && modeColor == LoaderModeColor.Primary -> + LoaderStyles.LoaderSize32ModeColorPrimary + size == LoaderSize.Size32 && modeColor == LoaderModeColor.Secondary -> + LoaderStyles.LoaderSize32ModeColorSecondary + size == LoaderSize.Size32 && modeColor == LoaderModeColor.GlobalWhite -> + LoaderStyles.LoaderSize32ModeColorGlobalWhite + size == LoaderSize.Size32 && modeColor == LoaderModeColor.Accent -> + LoaderStyles.LoaderSize32ModeColorAccent + size == LoaderSize.Size32 && modeColor == LoaderModeColor.Danger -> + LoaderStyles.LoaderSize32ModeColorDanger + size == LoaderSize.Size24 && modeColor == LoaderModeColor.Primary -> + LoaderStyles.LoaderSize24ModeColorPrimary + size == LoaderSize.Size24 && modeColor == LoaderModeColor.Secondary -> + LoaderStyles.LoaderSize24ModeColorSecondary + size == LoaderSize.Size24 && modeColor == LoaderModeColor.GlobalWhite -> + LoaderStyles.LoaderSize24ModeColorGlobalWhite + size == LoaderSize.Size24 && modeColor == LoaderModeColor.Accent -> + LoaderStyles.LoaderSize24ModeColorAccent + size == LoaderSize.Size24 && modeColor == LoaderModeColor.Danger -> + LoaderStyles.LoaderSize24ModeColorDanger + size == LoaderSize.Size16 && modeColor == LoaderModeColor.Primary -> + LoaderStyles.LoaderSize16ModeColorPrimary + size == LoaderSize.Size16 && modeColor == LoaderModeColor.Secondary -> + LoaderStyles.LoaderSize16ModeColorSecondary + size == LoaderSize.Size16 && modeColor == LoaderModeColor.GlobalWhite -> + LoaderStyles.LoaderSize16ModeColorGlobalWhite + size == LoaderSize.Size16 && modeColor == LoaderModeColor.Accent -> + LoaderStyles.LoaderSize16ModeColorAccent + size == LoaderSize.Size16 && modeColor == LoaderModeColor.Danger -> + LoaderStyles.LoaderSize16ModeColorDanger + else -> error("Unsupported loader style combination") +} + +/** + * Возвращает [LoaderStyle] для loader + */ +@Composable +public fun LoaderStyles.Companion.style( + size: LoaderSize = LoaderSize.Size40, + modeColor: LoaderModeColor = LoaderModeColor.Primary, + modify: @Composable LoaderStyleBuilder.() -> Unit = {}, +): LoaderStyle = resolve(size, modeColor).style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/modal/ModalStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/modal/ModalStylesCollection.kt index 512cf6234a..912a5eb8f8 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/modal/ModalStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/modal/ModalStylesCollection.kt @@ -26,15 +26,33 @@ public enum class ModalStyles( public val key: String, ) { ModalDefault("Modal.Default"), + ; + + /** + * Typed API для подбора стиля modal + */ + public companion object } /** * Возвращает [ModalStyle] для [ModalStyles] */ @Composable -public fun ModalStyles.style(modifyAction: @Composable ModalStyleBuilder.() -> Unit = {}): ModalStyle { +public fun ModalStyles.style(modify: @Composable ModalStyleBuilder.() -> Unit = {}): ModalStyle { val builder = when (this) { ModalStyles.ModalDefault -> Modal.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [ModalStyles] для modal + */ +public fun ModalStyles.Companion.resolve(): ModalStyles = ModalStyles.ModalDefault + +/** + * Возвращает [ModalStyle] для modal + */ +@Composable +public fun ModalStyles.Companion.style(modify: @Composable ModalStyleBuilder.() -> Unit = {}): + ModalStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/overlay/OverlayStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/overlay/OverlayStylesCollection.kt index 32c0ba90d7..bf3fede59a 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/overlay/OverlayStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/overlay/OverlayStylesCollection.kt @@ -26,15 +26,33 @@ public enum class OverlayStyles( public val key: String, ) { OverlayDefault("Overlay.Default"), + ; + + /** + * Typed API для подбора стиля overlay + */ + public companion object } /** * Возвращает [OverlayStyle] для [OverlayStyles] */ @Composable -public fun OverlayStyles.style(modifyAction: @Composable OverlayStyleBuilder.() -> Unit = {}): OverlayStyle { +public fun OverlayStyles.style(modify: @Composable OverlayStyleBuilder.() -> Unit = {}): OverlayStyle { val builder = when (this) { OverlayStyles.OverlayDefault -> Overlay.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [OverlayStyles] для overlay + */ +public fun OverlayStyles.Companion.resolve(): OverlayStyles = OverlayStyles.OverlayDefault + +/** + * Возвращает [OverlayStyle] для overlay + */ +@Composable +public fun OverlayStyles.Companion.style(modify: @Composable OverlayStyleBuilder.() -> Unit = {}): + OverlayStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/popover/PopoverStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/popover/PopoverStylesCollection.kt index d7a2c140e9..4de53b984f 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/popover/PopoverStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/popover/PopoverStylesCollection.kt @@ -26,15 +26,33 @@ public enum class PopoverStyles( public val key: String, ) { PopoverDefault("Popover.Default"), + ; + + /** + * Typed API для подбора стиля popover + */ + public companion object } /** * Возвращает [PopoverStyle] для [PopoverStyles] */ @Composable -public fun PopoverStyles.style(modifyAction: @Composable PopoverStyleBuilder.() -> Unit = {}): PopoverStyle { +public fun PopoverStyles.style(modify: @Composable PopoverStyleBuilder.() -> Unit = {}): PopoverStyle { val builder = when (this) { PopoverStyles.PopoverDefault -> Popover.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [PopoverStyles] для popover + */ +public fun PopoverStyles.Companion.resolve(): PopoverStyles = PopoverStyles.PopoverDefault + +/** + * Возвращает [PopoverStyle] для popover + */ +@Composable +public fun PopoverStyles.Companion.style(modify: @Composable PopoverStyleBuilder.() -> Unit = {}): + PopoverStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/radiobox/RadioBoxStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/radiobox/RadioBoxStylesCollection.kt index 772cc582f9..261c3d8667 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/radiobox/RadioBoxStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/radiobox/RadioBoxStylesCollection.kt @@ -26,15 +26,33 @@ public enum class RadioBoxStyles( public val key: String, ) { RadioBoxDefault("RadioBox.Default"), + ; + + /** + * Typed API для подбора стиля radio-box + */ + public companion object } /** * Возвращает [RadioBoxStyle] для [RadioBoxStyles] */ @Composable -public fun RadioBoxStyles.style(modifyAction: @Composable RadioBoxStyleBuilder.() -> Unit = {}): RadioBoxStyle { +public fun RadioBoxStyles.style(modify: @Composable RadioBoxStyleBuilder.() -> Unit = {}): RadioBoxStyle { val builder = when (this) { RadioBoxStyles.RadioBoxDefault -> RadioBox.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [RadioBoxStyles] для radio-box + */ +public fun RadioBoxStyles.Companion.resolve(): RadioBoxStyles = RadioBoxStyles.RadioBoxDefault + +/** + * Возвращает [RadioBoxStyle] для radio-box + */ +@Composable +public fun RadioBoxStyles.Companion.style(modify: @Composable RadioBoxStyleBuilder.() -> Unit = {}): + RadioBoxStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/rectskeleton/RectSkeletonStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/rectskeleton/RectSkeletonStylesCollection.kt index efcb686a38..7c65e5a944 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/rectskeleton/RectSkeletonStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/rectskeleton/RectSkeletonStylesCollection.kt @@ -27,19 +27,50 @@ public enum class RectSkeletonStyles( ) { RectSkeletonDefault("RectSkeleton.Default"), RectSkeletonPulse("RectSkeleton.Pulse"), + ; + + /** + * Typed API для подбора стиля rect-skeleton + */ + public companion object +} + +/** + * Возможные значения свойства type для rect-skeleton + */ +public enum class RectSkeletonType { + Default, + Pulse, } /** * Возвращает [RectSkeletonStyle] для [RectSkeletonStyles] */ @Composable -public fun RectSkeletonStyles.style( - modifyAction: @Composable RectSkeletonStyleBuilder.() -> Unit = - {}, -): RectSkeletonStyle { +public fun RectSkeletonStyles.style(modify: @Composable RectSkeletonStyleBuilder.() -> Unit = {}): RectSkeletonStyle { val builder = when (this) { RectSkeletonStyles.RectSkeletonDefault -> RectSkeleton.Default RectSkeletonStyles.RectSkeletonPulse -> RectSkeleton.Pulse } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [RectSkeletonStyles] для rect-skeleton + */ +public fun RectSkeletonStyles.Companion.resolve(type: RectSkeletonType = RectSkeletonType.Default): + RectSkeletonStyles = when { + type == RectSkeletonType.Default -> RectSkeletonStyles.RectSkeletonDefault + type == RectSkeletonType.Pulse -> RectSkeletonStyles.RectSkeletonPulse + else -> error("Unsupported rect-skeleton style combination") +} + +/** + * Возвращает [RectSkeletonStyle] для rect-skeleton + */ +@Composable +public fun RectSkeletonStyles.Companion.style( + type: RectSkeletonType = RectSkeletonType.Default, + modify: @Composable RectSkeletonStyleBuilder.() -> Unit = {}, +): RectSkeletonStyle = + resolve(type).style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/scrollbar/ScrollBarStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/scrollbar/ScrollBarStylesCollection.kt index 4af9a385cd..4ab64b2280 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/scrollbar/ScrollBarStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/scrollbar/ScrollBarStylesCollection.kt @@ -26,15 +26,35 @@ public enum class ScrollBarStyles( public val key: String, ) { ScrollBarDefault("ScrollBar.Default"), + ; + + /** + * Typed API для подбора стиля scroll-bar + */ + public companion object } /** * Возвращает [ScrollBarStyle] для [ScrollBarStyles] */ @Composable -public fun ScrollBarStyles.style(modifyAction: @Composable ScrollBarStyleBuilder.() -> Unit = {}): ScrollBarStyle { +public fun ScrollBarStyles.style(modify: @Composable ScrollBarStyleBuilder.() -> Unit = {}): ScrollBarStyle { val builder = when (this) { ScrollBarStyles.ScrollBarDefault -> ScrollBar.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [ScrollBarStyles] для scroll-bar + */ +public fun ScrollBarStyles.Companion.resolve(): ScrollBarStyles = ScrollBarStyles.ScrollBarDefault + +/** + * Возвращает [ScrollBarStyle] для scroll-bar + */ +@Composable +public fun ScrollBarStyles.Companion.style( + modify: @Composable ScrollBarStyleBuilder.() -> Unit = + {}, +): ScrollBarStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/spinner/SpinnerStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/spinner/SpinnerStylesCollection.kt index bb93426d6c..ece0655838 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/spinner/SpinnerStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/spinner/SpinnerStylesCollection.kt @@ -45,13 +45,40 @@ public enum class SpinnerStyles( SpinnerSize16ModeColorGlobalWhite("Spinner.Size16.ModeColorGlobalWhite"), SpinnerSize16ModeColorAccent("Spinner.Size16.ModeColorAccent"), SpinnerSize16ModeColorDanger("Spinner.Size16.ModeColorDanger"), + ; + + /** + * Typed API для подбора стиля spinner + */ + public companion object +} + +/** + * Возможные значения свойства size для spinner + */ +public enum class SpinnerSize { + Size40, + Size32, + Size24, + Size16, +} + +/** + * Возможные значения свойства mode-color для spinner + */ +public enum class SpinnerModeColor { + Primary, + Secondary, + GlobalWhite, + Accent, + Danger, } /** * Возвращает [SpinnerStyle] для [SpinnerStyles] */ @Composable -public fun SpinnerStyles.style(modifyAction: @Composable SpinnerStyleBuilder.() -> Unit = {}): SpinnerStyle { +public fun SpinnerStyles.style(modify: @Composable SpinnerStyleBuilder.() -> Unit = {}): SpinnerStyle { val builder = when (this) { SpinnerStyles.SpinnerSize40ModeColorPrimary -> Spinner.Size40.ModeColorPrimary SpinnerStyles.SpinnerSize40ModeColorSecondary -> Spinner.Size40.ModeColorSecondary @@ -74,5 +101,65 @@ public fun SpinnerStyles.style(modifyAction: @Composable SpinnerStyleBuilder.() SpinnerStyles.SpinnerSize16ModeColorAccent -> Spinner.Size16.ModeColorAccent SpinnerStyles.SpinnerSize16ModeColorDanger -> Spinner.Size16.ModeColorDanger } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [SpinnerStyles] для spinner + */ +public fun SpinnerStyles.Companion.resolve( + size: SpinnerSize = SpinnerSize.Size40, + modeColor: SpinnerModeColor = SpinnerModeColor.Primary, +): SpinnerStyles = when { + size == SpinnerSize.Size40 && modeColor == SpinnerModeColor.Primary -> + SpinnerStyles.SpinnerSize40ModeColorPrimary + size == SpinnerSize.Size40 && modeColor == SpinnerModeColor.Secondary -> + SpinnerStyles.SpinnerSize40ModeColorSecondary + size == SpinnerSize.Size40 && modeColor == SpinnerModeColor.GlobalWhite -> + SpinnerStyles.SpinnerSize40ModeColorGlobalWhite + size == SpinnerSize.Size40 && modeColor == SpinnerModeColor.Accent -> + SpinnerStyles.SpinnerSize40ModeColorAccent + size == SpinnerSize.Size40 && modeColor == SpinnerModeColor.Danger -> + SpinnerStyles.SpinnerSize40ModeColorDanger + size == SpinnerSize.Size32 && modeColor == SpinnerModeColor.Primary -> + SpinnerStyles.SpinnerSize32ModeColorPrimary + size == SpinnerSize.Size32 && modeColor == SpinnerModeColor.Secondary -> + SpinnerStyles.SpinnerSize32ModeColorSecondary + size == SpinnerSize.Size32 && modeColor == SpinnerModeColor.GlobalWhite -> + SpinnerStyles.SpinnerSize32ModeColorGlobalWhite + size == SpinnerSize.Size32 && modeColor == SpinnerModeColor.Accent -> + SpinnerStyles.SpinnerSize32ModeColorAccent + size == SpinnerSize.Size32 && modeColor == SpinnerModeColor.Danger -> + SpinnerStyles.SpinnerSize32ModeColorDanger + size == SpinnerSize.Size24 && modeColor == SpinnerModeColor.Primary -> + SpinnerStyles.SpinnerSize24ModeColorPrimary + size == SpinnerSize.Size24 && modeColor == SpinnerModeColor.Secondary -> + SpinnerStyles.SpinnerSize24ModeColorSecondary + size == SpinnerSize.Size24 && modeColor == SpinnerModeColor.GlobalWhite -> + SpinnerStyles.SpinnerSize24ModeColorGlobalWhite + size == SpinnerSize.Size24 && modeColor == SpinnerModeColor.Accent -> + SpinnerStyles.SpinnerSize24ModeColorAccent + size == SpinnerSize.Size24 && modeColor == SpinnerModeColor.Danger -> + SpinnerStyles.SpinnerSize24ModeColorDanger + size == SpinnerSize.Size16 && modeColor == SpinnerModeColor.Primary -> + SpinnerStyles.SpinnerSize16ModeColorPrimary + size == SpinnerSize.Size16 && modeColor == SpinnerModeColor.Secondary -> + SpinnerStyles.SpinnerSize16ModeColorSecondary + size == SpinnerSize.Size16 && modeColor == SpinnerModeColor.GlobalWhite -> + SpinnerStyles.SpinnerSize16ModeColorGlobalWhite + size == SpinnerSize.Size16 && modeColor == SpinnerModeColor.Accent -> + SpinnerStyles.SpinnerSize16ModeColorAccent + size == SpinnerSize.Size16 && modeColor == SpinnerModeColor.Danger -> + SpinnerStyles.SpinnerSize16ModeColorDanger + else -> error("Unsupported spinner style combination") +} + +/** + * Возвращает [SpinnerStyle] для spinner + */ +@Composable +public fun SpinnerStyles.Companion.style( + size: SpinnerSize = SpinnerSize.Size40, + modeColor: SpinnerModeColor = SpinnerModeColor.Primary, + modify: @Composable SpinnerStyleBuilder.() -> Unit = {}, +): SpinnerStyle = resolve(size, modeColor).style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/switcher/SwitchStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/switcher/SwitchStylesCollection.kt index cec9179469..71207e230b 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/switcher/SwitchStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/switcher/SwitchStylesCollection.kt @@ -26,15 +26,33 @@ public enum class SwitchStyles( public val key: String, ) { SwitchDefault("Switch.Default"), + ; + + /** + * Typed API для подбора стиля switch + */ + public companion object } /** * Возвращает [SwitchStyle] для [SwitchStyles] */ @Composable -public fun SwitchStyles.style(modifyAction: @Composable SwitchStyleBuilder.() -> Unit = {}): SwitchStyle { +public fun SwitchStyles.style(modify: @Composable SwitchStyleBuilder.() -> Unit = {}): SwitchStyle { val builder = when (this) { SwitchStyles.SwitchDefault -> Switch.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [SwitchStyles] для switch + */ +public fun SwitchStyles.Companion.resolve(): SwitchStyles = SwitchStyles.SwitchDefault + +/** + * Возвращает [SwitchStyle] для switch + */ +@Composable +public fun SwitchStyles.Companion.style(modify: @Composable SwitchStyleBuilder.() -> Unit = {}): + SwitchStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tabbar/TabBarStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tabbar/TabBarStylesCollection.kt index 8e8149474a..eb3ea981ec 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tabbar/TabBarStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tabbar/TabBarStylesCollection.kt @@ -26,15 +26,33 @@ public enum class TabBarStyles( public val key: String, ) { TabBarDefault("TabBar.Default"), + ; + + /** + * Typed API для подбора стиля tab-bar + */ + public companion object } /** * Возвращает [TabBarStyle] для [TabBarStyles] */ @Composable -public fun TabBarStyles.style(modifyAction: @Composable TabBarStyleBuilder.() -> Unit = {}): TabBarStyle { +public fun TabBarStyles.style(modify: @Composable TabBarStyleBuilder.() -> Unit = {}): TabBarStyle { val builder = when (this) { TabBarStyles.TabBarDefault -> TabBar.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [TabBarStyles] для tab-bar + */ +public fun TabBarStyles.Companion.resolve(): TabBarStyles = TabBarStyles.TabBarDefault + +/** + * Возвращает [TabBarStyle] для tab-bar + */ +@Composable +public fun TabBarStyles.Companion.style(modify: @Composable TabBarStyleBuilder.() -> Unit = {}): + TabBarStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tabbaritem/TabBarItemStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tabbaritem/TabBarItemStylesCollection.kt index e23033b51e..d05857b521 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tabbaritem/TabBarItemStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tabbaritem/TabBarItemStylesCollection.kt @@ -26,15 +26,36 @@ public enum class TabBarItemStyles( public val key: String, ) { TabBarItemDefault("TabBarItem.Default"), + ; + + /** + * Typed API для подбора стиля tab-bar-item + */ + public companion object } /** * Возвращает [TabBarItemStyle] для [TabBarItemStyles] */ @Composable -public fun TabBarItemStyles.style(modifyAction: @Composable TabBarItemStyleBuilder.() -> Unit = {}): TabBarItemStyle { +public fun TabBarItemStyles.style(modify: @Composable TabBarItemStyleBuilder.() -> Unit = {}): TabBarItemStyle { val builder = when (this) { TabBarItemStyles.TabBarItemDefault -> TabBarItem.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [TabBarItemStyles] для tab-bar-item + */ +public fun TabBarItemStyles.Companion.resolve(): TabBarItemStyles = + TabBarItemStyles.TabBarItemDefault + +/** + * Возвращает [TabBarItemStyle] для tab-bar-item + */ +@Composable +public fun TabBarItemStyles.Companion.style( + modify: @Composable TabBarItemStyleBuilder.() -> Unit = + {}, +): TabBarItemStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tabitem/TabItemStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tabitem/TabItemStylesCollection.kt index 64220e74f7..5e41a23c37 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tabitem/TabItemStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tabitem/TabItemStylesCollection.kt @@ -26,15 +26,33 @@ public enum class TabItemStyles( public val key: String, ) { TabItemFolderDefault("TabItemFolder.Default"), + ; + + /** + * Typed API для подбора стиля tab-item-folder + */ + public companion object } /** * Возвращает [TabItemStyle] для [TabItemStyles] */ @Composable -public fun TabItemStyles.style(modifyAction: @Composable TabItemStyleBuilder.() -> Unit = {}): TabItemStyle { +public fun TabItemStyles.style(modify: @Composable TabItemStyleBuilder.() -> Unit = {}): TabItemStyle { val builder = when (this) { TabItemStyles.TabItemFolderDefault -> TabItemFolder.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [TabItemStyles] для tab-item-folder + */ +public fun TabItemStyles.Companion.resolve(): TabItemStyles = TabItemStyles.TabItemFolderDefault + +/** + * Возвращает [TabItemStyle] для tab-item-folder + */ +@Composable +public fun TabItemStyles.Companion.style(modify: @Composable TabItemStyleBuilder.() -> Unit = {}): + TabItemStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tabs/TabsStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tabs/TabsStylesCollection.kt index 78f3b1520f..4f8aed2952 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tabs/TabsStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tabs/TabsStylesCollection.kt @@ -26,15 +26,33 @@ public enum class TabsStyles( public val key: String, ) { TabsFolderDefault("TabsFolder.Default"), + ; + + /** + * Typed API для подбора стиля tabs-folder + */ + public companion object } /** * Возвращает [TabsStyle] для [TabsStyles] */ @Composable -public fun TabsStyles.style(modifyAction: @Composable TabsStyleBuilder.() -> Unit = {}): TabsStyle { +public fun TabsStyles.style(modify: @Composable TabsStyleBuilder.() -> Unit = {}): TabsStyle { val builder = when (this) { TabsStyles.TabsFolderDefault -> TabsFolder.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [TabsStyles] для tabs-folder + */ +public fun TabsStyles.Companion.resolve(): TabsStyles = TabsStyles.TabsFolderDefault + +/** + * Возвращает [TabsStyle] для tabs-folder + */ +@Composable +public fun TabsStyles.Companion.style(modify: @Composable TabsStyleBuilder.() -> Unit = {}): + TabsStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/textfield/TextFieldStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/textfield/TextFieldStylesCollection.kt index ced0c6b225..b9fd203a85 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/textfield/TextFieldStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/textfield/TextFieldStylesCollection.kt @@ -27,16 +27,53 @@ public enum class TextFieldStyles( ) { TextFieldDefault("TextField.Default"), SearchBarDefault("SearchBar.Default"), + ; + + /** + * Typed API для подбора стиля text-field + */ + public object Default + + /** + * Typed API для подбора стиля search-bar + */ + public object SearchBar } /** * Возвращает [TextFieldStyle] для [TextFieldStyles] */ @Composable -public fun TextFieldStyles.style(modifyAction: @Composable TextFieldStyleBuilder.() -> Unit = {}): TextFieldStyle { +public fun TextFieldStyles.style(modify: @Composable TextFieldStyleBuilder.() -> Unit = {}): TextFieldStyle { val builder = when (this) { TextFieldStyles.TextFieldDefault -> TextField.Default TextFieldStyles.SearchBarDefault -> SearchBar.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [TextFieldStyles] для text-field + */ +public fun TextFieldStyles.Default.resolve(): TextFieldStyles = TextFieldStyles.TextFieldDefault + +/** + * Возвращает [TextFieldStyle] для text-field + */ +@Composable +public fun TextFieldStyles.Default.style(modify: @Composable TextFieldStyleBuilder.() -> Unit = {}): + TextFieldStyle = resolve().style(modify) + +/** + * Возвращает экземпляр [TextFieldStyles] для search-bar + */ +public fun TextFieldStyles.SearchBar.resolve(): TextFieldStyles = TextFieldStyles.SearchBarDefault + +/** + * Возвращает [TextFieldStyle] для search-bar + */ +@Composable +public fun TextFieldStyles.SearchBar.style( + modify: @Composable TextFieldStyleBuilder.() -> Unit = + {}, +): TextFieldStyle = resolve().style(modify) diff --git a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tooltip/TooltipStylesCollection.kt b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tooltip/TooltipStylesCollection.kt index cca80030ec..81079a960f 100644 --- a/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tooltip/TooltipStylesCollection.kt +++ b/tokens/sdds-sbcom-compose/src/main/kotlin/com/sdds/sbcom/styles/tooltip/TooltipStylesCollection.kt @@ -26,15 +26,33 @@ public enum class TooltipStyles( public val key: String, ) { TooltipDefault("Tooltip.Default"), + ; + + /** + * Typed API для подбора стиля tooltip + */ + public companion object } /** * Возвращает [TooltipStyle] для [TooltipStyles] */ @Composable -public fun TooltipStyles.style(modifyAction: @Composable TooltipStyleBuilder.() -> Unit = {}): TooltipStyle { +public fun TooltipStyles.style(modify: @Composable TooltipStyleBuilder.() -> Unit = {}): TooltipStyle { val builder = when (this) { TooltipStyles.TooltipDefault -> Tooltip.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [TooltipStyles] для tooltip + */ +public fun TooltipStyles.Companion.resolve(): TooltipStyles = TooltipStyles.TooltipDefault + +/** + * Возвращает [TooltipStyle] для tooltip + */ +@Composable +public fun TooltipStyles.Companion.style(modify: @Composable TooltipStyleBuilder.() -> Unit = {}): + TooltipStyle = resolve().style(modify) From 5726af96db3f17782961ebc8c96e6c0f072dd93d Mon Sep 17 00:00:00 2001 From: malilex Date: Tue, 21 Apr 2026 16:39:55 +0300 Subject: [PATCH 5/9] chore: Fix detekt issues. --- .../resources/ComposeStyleProviderKt_V2.txt | 2 + .../compose/sandbox/ComposeStyleProvider.kt | 9 +- .../base/compose/ComposeMetaClassGenerator.kt | 2 +- .../base/compose/ComposeVariationGenerator.kt | 1 + .../SddsSbcomAvatarGroupVariationsCompose.kt | 2 + ...dsSbcomAvatarIndicatorVariationsCompose.kt | 8 +- .../SddsSbcomAvatarVariationsCompose.kt | 8 +- ...sSbcomBasicButtonGroupVariationsCompose.kt | 2 + .../SddsSbcomBasicButtonVariationsCompose.kt | 30 ++---- .../SddsSbcomCheckBoxVariationsCompose.kt | 2 + .../SddsSbcomChipGroupVariationsCompose.kt | 2 + .../SddsSbcomChipVariationsCompose.kt | 2 + ...comCircularProgressBarVariationsCompose.kt | 94 +++++-------------- ...igationBarInternalPageVariationsCompose.kt | 6 +- ...gNavigationBarMainPageVariationsCompose.kt | 2 + .../SddsSbcomCounterVariationsCompose.kt | 2 + .../SddsSbcomDividerVariationsCompose.kt | 2 + ...sSbcomDropdownMenuItemVariationsCompose.kt | 2 + ...sSbcomDropdownMenuListVariationsCompose.kt | 2 + .../SddsSbcomDropdownMenuVariationsCompose.kt | 2 + ...dsSbcomIconButtonGroupVariationsCompose.kt | 2 + .../SddsSbcomIconButtonVariationsCompose.kt | 14 +-- .../SddsSbcomIndicatorVariationsCompose.kt | 8 +- .../SddsSbcomListItemVariationsCompose.kt | 2 + .../SddsSbcomListVariationsCompose.kt | 2 + .../SddsSbcomLoaderVariationsCompose.kt | 14 +-- .../SddsSbcomMentionVariationsCompose.kt | 2 + ...sSbcomModalBottomSheetVariationsCompose.kt | 2 + .../SddsSbcomModalVariationsCompose.kt | 2 + .../SddsSbcomOverlayVariationsCompose.kt | 2 + .../SddsSbcomPopoverVariationsCompose.kt | 2 + .../SddsSbcomRadioBoxVariationsCompose.kt | 2 + .../SddsSbcomRectSkeletonVariationsCompose.kt | 2 + .../SddsSbcomScrollBarVariationsCompose.kt | 2 + .../SddsSbcomSearchBarVariationsCompose.kt | 2 + .../SddsSbcomSpinnerVariationsCompose.kt | 14 +-- .../SddsSbcomSwitchVariationsCompose.kt | 2 + ...SddsSbcomTabBarCounterVariationsCompose.kt | 2 + .../SddsSbcomTabBarItemVariationsCompose.kt | 2 + .../SddsSbcomTabBarVariationsCompose.kt | 2 + ...omTabItemFolderCounterVariationsCompose.kt | 2 + ...SddsSbcomTabItemFolderVariationsCompose.kt | 2 + .../SddsSbcomTabsFolderVariationsCompose.kt | 2 + .../SddsSbcomTextFieldVariationsCompose.kt | 2 + .../SddsSbcomTooltipVariationsCompose.kt | 2 + ...ddsSbcomVoiceChatBadgeVariationsCompose.kt | 8 +- 46 files changed, 133 insertions(+), 149 deletions(-) diff --git a/build-system/conventions/src/main/resources/ComposeStyleProviderKt_V2.txt b/build-system/conventions/src/main/resources/ComposeStyleProviderKt_V2.txt index d8b4f43614..c81fda7ca1 100644 --- a/build-system/conventions/src/main/resources/ComposeStyleProviderKt_V2.txt +++ b/build-system/conventions/src/main/resources/ComposeStyleProviderKt_V2.txt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/ComposeStyleProvider.kt b/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/ComposeStyleProvider.kt index 96fc601038..df5d51228d 100644 --- a/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/ComposeStyleProvider.kt +++ b/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/ComposeStyleProvider.kt @@ -47,6 +47,9 @@ class ComposeStyleReference( */ abstract class ComposeStyleProvider : StyleProvider>() { + /** + * Параметры выбора стиля + */ open val bindings: Set> = emptySet() /** @@ -69,9 +72,9 @@ abstract class ComposeStyleProvider : StyleProvider : StyleProvider error(\"Unsupported ${appearance.appearance.name} style combination\")\n", "}\n", ), diff --git a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeVariationGenerator.kt b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeVariationGenerator.kt index 2ce5d3037c..01e4c7a5b8 100644 --- a/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeVariationGenerator.kt +++ b/sdds-core/plugin_theme_builder/src/main/kotlin/com/sdds/plugin/themebuilder/internal/components/base/compose/ComposeVariationGenerator.kt @@ -373,6 +373,7 @@ internal abstract class ComposeVariationGenerator( } } + @Suppress("NestedBlockDepth") private fun getVariationPropsDict() = mutableMapOf>().apply { if (variations.isEmpty()) { if (viewVariations.isEmpty()) { diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarGroupVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarGroupVariationsCompose.kt index 21ef29eb20..078a8b13be 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarGroupVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarGroupVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarIndicatorVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarIndicatorVariationsCompose.kt index 2262e1f23a..1076df6e91 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarIndicatorVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarIndicatorVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -25,11 +27,7 @@ import com.sdds.sbcom.styles.indicator.resolve internal object SddsSbcomAvatarIndicatorVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty( - name = "size", - value = "Size14", - variants = listOf("Size14", "Size12", "Size10", "Size8", "Size6"), - ), + Property.SingleChoiceProperty(name = "size", value = "Size14", variants = listOf("Size14", "Size12", "Size10", "Size8", "Size6")), ) override val variations: Map> = diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarVariationsCompose.kt index 649b286c0f..1b72ece363 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -29,11 +31,7 @@ import com.sdds.sbcom.styles.avatar.resolve internal object SddsSbcomAvatarVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty( - name = "size", - value = "Size72", - variants = listOf("Size72", "Size64", "Size56", "Size44", "Size40", "Size36", "Size32", "Size26", "Size24"), - ), + Property.SingleChoiceProperty(name = "size", value = "Size72", variants = listOf("Size72", "Size64", "Size56", "Size44", "Size40", "Size36", "Size32", "Size26", "Size24")), ) override val variations: Map> = diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonGroupVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonGroupVariationsCompose.kt index 901ab5e7e6..9a71a8337d 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonGroupVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonGroupVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonVariationsCompose.kt index 1a10aa22d2..b944c759a4 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -32,17 +34,9 @@ import com.sdds.sbcom.styles.basicbutton.resolve internal object SddsSbcomBasicButtonVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty( - name = "size", - value = "Size48", - variants = listOf("Size48", "Size40", "Size32", "Size24"), - ), + Property.SingleChoiceProperty(name = "size", value = "Size48", variants = listOf("Size48", "Size40", "Size32", "Size24")), Property.SingleChoiceProperty(name = "bg", value = "Yes", variants = listOf("Yes", "No")), - Property.SingleChoiceProperty( - name = "mode", - value = "Primary", - variants = listOf("Primary", "AccentFilled", "AccentWhite", "AccentGrey", "DangerTint"), - ), + Property.SingleChoiceProperty(name = "mode", value = "Primary", variants = listOf("Primary", "AccentFilled", "AccentWhite", "AccentGrey", "DangerTint")), ) override val variations: Map> = @@ -53,9 +47,7 @@ internal object SddsSbcomBasicButtonVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty( - name = "size", - value = "Size40", - variants = listOf("Size40", "Size32", "Size24", "Size16"), - ), - Property.SingleChoiceProperty( - name = "modeColor", - value = "Primary", - variants = listOf("Primary", "Secondary", "GlobalWhite", "Accent", "Danger"), - ), + Property.SingleChoiceProperty(name = "size", value = "Size40", variants = listOf("Size40", "Size32", "Size24", "Size16")), + Property.SingleChoiceProperty(name = "modeColor", value = "Primary", variants = listOf("Primary", "Secondary", "GlobalWhite", "Accent", "Danger")), ) override val variations: Map> = mapOf( - "CircularProgressBar.Size40.ModeColorPrimary" to ComposeStyleReference { - CircularProgressBar.Size40.ModeColorPrimary.style() - }, - "CircularProgressBar.Size40.ModeColorSecondary" to ComposeStyleReference { - CircularProgressBar.Size40.ModeColorSecondary.style() - }, - "CircularProgressBar.Size40.ModeColorGlobalWhite" to ComposeStyleReference { - CircularProgressBar.Size40.ModeColorGlobalWhite.style() - }, - "CircularProgressBar.Size40.ModeColorAccent" to ComposeStyleReference { - CircularProgressBar.Size40.ModeColorAccent.style() - }, - "CircularProgressBar.Size40.ModeColorDanger" to ComposeStyleReference { - CircularProgressBar.Size40.ModeColorDanger.style() - }, - "CircularProgressBar.Size32.ModeColorPrimary" to ComposeStyleReference { - CircularProgressBar.Size32.ModeColorPrimary.style() - }, - "CircularProgressBar.Size32.ModeColorSecondary" to ComposeStyleReference { - CircularProgressBar.Size32.ModeColorSecondary.style() - }, - "CircularProgressBar.Size32.ModeColorGlobalWhite" to ComposeStyleReference { - CircularProgressBar.Size32.ModeColorGlobalWhite.style() - }, - "CircularProgressBar.Size32.ModeColorAccent" to ComposeStyleReference { - CircularProgressBar.Size32.ModeColorAccent.style() - }, - "CircularProgressBar.Size32.ModeColorDanger" to ComposeStyleReference { - CircularProgressBar.Size32.ModeColorDanger.style() - }, - "CircularProgressBar.Size24.ModeColorPrimary" to ComposeStyleReference { - CircularProgressBar.Size24.ModeColorPrimary.style() - }, - "CircularProgressBar.Size24.ModeColorSecondary" to ComposeStyleReference { - CircularProgressBar.Size24.ModeColorSecondary.style() - }, - "CircularProgressBar.Size24.ModeColorGlobalWhite" to ComposeStyleReference { - CircularProgressBar.Size24.ModeColorGlobalWhite.style() - }, - "CircularProgressBar.Size24.ModeColorAccent" to ComposeStyleReference { - CircularProgressBar.Size24.ModeColorAccent.style() - }, - "CircularProgressBar.Size24.ModeColorDanger" to ComposeStyleReference { - CircularProgressBar.Size24.ModeColorDanger.style() - }, - "CircularProgressBar.Size16.ModeColorPrimary" to ComposeStyleReference { - CircularProgressBar.Size16.ModeColorPrimary.style() - }, - "CircularProgressBar.Size16.ModeColorSecondary" to ComposeStyleReference { - CircularProgressBar.Size16.ModeColorSecondary.style() - }, - "CircularProgressBar.Size16.ModeColorGlobalWhite" to ComposeStyleReference { - CircularProgressBar.Size16.ModeColorGlobalWhite.style() - }, - "CircularProgressBar.Size16.ModeColorAccent" to ComposeStyleReference { - CircularProgressBar.Size16.ModeColorAccent.style() - }, - "CircularProgressBar.Size16.ModeColorDanger" to ComposeStyleReference { - CircularProgressBar.Size16.ModeColorDanger.style() - }, + "CircularProgressBar.Size40.ModeColorPrimary" to ComposeStyleReference { CircularProgressBar.Size40.ModeColorPrimary.style() }, + "CircularProgressBar.Size40.ModeColorSecondary" to ComposeStyleReference { CircularProgressBar.Size40.ModeColorSecondary.style() }, + "CircularProgressBar.Size40.ModeColorGlobalWhite" to ComposeStyleReference { CircularProgressBar.Size40.ModeColorGlobalWhite.style() }, + "CircularProgressBar.Size40.ModeColorAccent" to ComposeStyleReference { CircularProgressBar.Size40.ModeColorAccent.style() }, + "CircularProgressBar.Size40.ModeColorDanger" to ComposeStyleReference { CircularProgressBar.Size40.ModeColorDanger.style() }, + "CircularProgressBar.Size32.ModeColorPrimary" to ComposeStyleReference { CircularProgressBar.Size32.ModeColorPrimary.style() }, + "CircularProgressBar.Size32.ModeColorSecondary" to ComposeStyleReference { CircularProgressBar.Size32.ModeColorSecondary.style() }, + "CircularProgressBar.Size32.ModeColorGlobalWhite" to ComposeStyleReference { CircularProgressBar.Size32.ModeColorGlobalWhite.style() }, + "CircularProgressBar.Size32.ModeColorAccent" to ComposeStyleReference { CircularProgressBar.Size32.ModeColorAccent.style() }, + "CircularProgressBar.Size32.ModeColorDanger" to ComposeStyleReference { CircularProgressBar.Size32.ModeColorDanger.style() }, + "CircularProgressBar.Size24.ModeColorPrimary" to ComposeStyleReference { CircularProgressBar.Size24.ModeColorPrimary.style() }, + "CircularProgressBar.Size24.ModeColorSecondary" to ComposeStyleReference { CircularProgressBar.Size24.ModeColorSecondary.style() }, + "CircularProgressBar.Size24.ModeColorGlobalWhite" to ComposeStyleReference { CircularProgressBar.Size24.ModeColorGlobalWhite.style() }, + "CircularProgressBar.Size24.ModeColorAccent" to ComposeStyleReference { CircularProgressBar.Size24.ModeColorAccent.style() }, + "CircularProgressBar.Size24.ModeColorDanger" to ComposeStyleReference { CircularProgressBar.Size24.ModeColorDanger.style() }, + "CircularProgressBar.Size16.ModeColorPrimary" to ComposeStyleReference { CircularProgressBar.Size16.ModeColorPrimary.style() }, + "CircularProgressBar.Size16.ModeColorSecondary" to ComposeStyleReference { CircularProgressBar.Size16.ModeColorSecondary.style() }, + "CircularProgressBar.Size16.ModeColorGlobalWhite" to ComposeStyleReference { CircularProgressBar.Size16.ModeColorGlobalWhite.style() }, + "CircularProgressBar.Size16.ModeColorAccent" to ComposeStyleReference { CircularProgressBar.Size16.ModeColorAccent.style() }, + "CircularProgressBar.Size16.ModeColorDanger" to ComposeStyleReference { CircularProgressBar.Size16.ModeColorDanger.style() }, ) override fun resolveStyleKey(bindings: Map): String { diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarInternalPageVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarInternalPageVariationsCompose.kt index a92914dc14..8980c1b159 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarInternalPageVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarInternalPageVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -18,8 +20,6 @@ internal object SddsSbcomCollapsingNavigationBarInternalPageVariationsCompose : override val variations: Map> = mapOf( - "CollapsingNavigationBarInternalPage.Default" to ComposeStyleReference { - CollapsingNavigationBarInternalPage.Default.style() - }, + "CollapsingNavigationBarInternalPage.Default" to ComposeStyleReference { CollapsingNavigationBarInternalPage.Default.style() }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarMainPageVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarMainPageVariationsCompose.kt index 0ff13cb35b..ca347c0062 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarMainPageVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarMainPageVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCounterVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCounterVariationsCompose.kt index 48d66eb427..c5de14f916 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCounterVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCounterVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDividerVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDividerVariationsCompose.kt index 5aafe60592..0e728a8db6 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDividerVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDividerVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuItemVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuItemVariationsCompose.kt index d3f8f5678f..167e552820 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuItemVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuItemVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuListVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuListVariationsCompose.kt index 2efe5dee7a..bc2ddb441d 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuListVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuListVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuVariationsCompose.kt index 62534339ce..a26e2f4faf 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomDropdownMenuVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonGroupVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonGroupVariationsCompose.kt index 805bb371dd..11c78c630b 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonGroupVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonGroupVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonVariationsCompose.kt index ce9a422d62..dc8f8b51b9 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -30,17 +32,9 @@ import com.sdds.sbcom.styles.iconbutton.resolve internal object SddsSbcomIconButtonVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty( - name = "size", - value = "Size48", - variants = listOf("Size48", "Size40", "Size32", "Size24"), - ), + Property.SingleChoiceProperty(name = "size", value = "Size48", variants = listOf("Size48", "Size40", "Size32", "Size24")), Property.SingleChoiceProperty(name = "bg", value = "Yes", variants = listOf("Yes", "No")), - Property.SingleChoiceProperty( - name = "mode", - value = "AccentFilled", - variants = listOf("AccentFilled", "AccentGrey", "DangerTint"), - ), + Property.SingleChoiceProperty(name = "mode", value = "AccentFilled", variants = listOf("AccentFilled", "AccentGrey", "DangerTint")), ) override val variations: Map> = diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIndicatorVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIndicatorVariationsCompose.kt index da4c4e6a0e..f941f2ee76 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIndicatorVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIndicatorVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -25,11 +27,7 @@ import com.sdds.sbcom.styles.indicator.resolve internal object SddsSbcomIndicatorVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty( - name = "state", - value = "Success", - variants = listOf("Success", "GlobalWhite", "Mute", "Danger", "Warning"), - ), + Property.SingleChoiceProperty(name = "state", value = "Success", variants = listOf("Success", "GlobalWhite", "Mute", "Danger", "Warning")), ) override val variations: Map> = diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomListItemVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomListItemVariationsCompose.kt index e8d109ed74..8e83811929 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomListItemVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomListItemVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomListVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomListVariationsCompose.kt index 40b5c4c931..655dd0e0d0 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomListVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomListVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomLoaderVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomLoaderVariationsCompose.kt index 13f9d3f967..a632ae5f75 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomLoaderVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomLoaderVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -30,16 +32,8 @@ import com.sdds.sbcom.styles.loader.resolve internal object SddsSbcomLoaderVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty( - name = "size", - value = "Size40", - variants = listOf("Size40", "Size32", "Size24", "Size16"), - ), - Property.SingleChoiceProperty( - name = "modeColor", - value = "Primary", - variants = listOf("Primary", "Secondary", "GlobalWhite", "Accent", "Danger"), - ), + Property.SingleChoiceProperty(name = "size", value = "Size40", variants = listOf("Size40", "Size32", "Size24", "Size16")), + Property.SingleChoiceProperty(name = "modeColor", value = "Primary", variants = listOf("Primary", "Secondary", "GlobalWhite", "Accent", "Danger")), ) override val variations: Map> = diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomMentionVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomMentionVariationsCompose.kt index 66f2d655a5..b513c69576 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomMentionVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomMentionVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomModalBottomSheetVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomModalBottomSheetVariationsCompose.kt index 1a5f6ef04a..29c40ea206 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomModalBottomSheetVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomModalBottomSheetVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomModalVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomModalVariationsCompose.kt index 21fb3dd1f3..818e965259 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomModalVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomModalVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomOverlayVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomOverlayVariationsCompose.kt index 249146e6f5..0723fb0984 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomOverlayVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomOverlayVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomPopoverVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomPopoverVariationsCompose.kt index 7da6338df3..6028694ad7 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomPopoverVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomPopoverVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomRadioBoxVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomRadioBoxVariationsCompose.kt index a8b5a9875d..93b8d6eacd 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomRadioBoxVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomRadioBoxVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomRectSkeletonVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomRectSkeletonVariationsCompose.kt index 9cb16f5522..cca5c6ad97 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomRectSkeletonVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomRectSkeletonVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomScrollBarVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomScrollBarVariationsCompose.kt index 0a045ec86c..eb42eab94c 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomScrollBarVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomScrollBarVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSearchBarVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSearchBarVariationsCompose.kt index fac9350df7..ef42ffb8d7 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSearchBarVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSearchBarVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSpinnerVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSpinnerVariationsCompose.kt index c251400e02..9082f441b4 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSpinnerVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSpinnerVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -30,16 +32,8 @@ import com.sdds.sbcom.styles.spinner.resolve internal object SddsSbcomSpinnerVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty( - name = "size", - value = "Size40", - variants = listOf("Size40", "Size32", "Size24", "Size16"), - ), - Property.SingleChoiceProperty( - name = "modeColor", - value = "Primary", - variants = listOf("Primary", "Secondary", "GlobalWhite", "Accent", "Danger"), - ), + Property.SingleChoiceProperty(name = "size", value = "Size40", variants = listOf("Size40", "Size32", "Size24", "Size16")), + Property.SingleChoiceProperty(name = "modeColor", value = "Primary", variants = listOf("Primary", "Secondary", "GlobalWhite", "Accent", "Danger")), ) override val variations: Map> = diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSwitchVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSwitchVariationsCompose.kt index 92a552662d..8921e04105 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSwitchVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSwitchVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarCounterVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarCounterVariationsCompose.kt index 82d9e2438a..c925bbc469 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarCounterVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarCounterVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarItemVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarItemVariationsCompose.kt index eaf570eb39..bfd538e791 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarItemVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarItemVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarVariationsCompose.kt index f0ff7726dd..d3e42399ea 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabBarVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabItemFolderCounterVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabItemFolderCounterVariationsCompose.kt index 5abb9bbdab..203f278b0f 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabItemFolderCounterVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabItemFolderCounterVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabItemFolderVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabItemFolderVariationsCompose.kt index 4cf5973699..fce8560251 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabItemFolderVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabItemFolderVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabsFolderVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabsFolderVariationsCompose.kt index 5edfad9cc0..d80e256426 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabsFolderVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTabsFolderVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTextFieldVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTextFieldVariationsCompose.kt index e3c667f24d..8d45d6433a 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTextFieldVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTextFieldVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTooltipVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTooltipVariationsCompose.kt index dcfc041de2..e369e261ba 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTooltipVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomTooltipVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomVoiceChatBadgeVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomVoiceChatBadgeVariationsCompose.kt index db24f5f3d3..b50ccd91b1 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomVoiceChatBadgeVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomVoiceChatBadgeVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -24,11 +26,7 @@ import com.sdds.sbcom.styles.iconbadge.resolve internal object SddsSbcomVoiceChatBadgeVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty( - name = "size", - value = "Size20", - variants = listOf("Size20", "Size18", "Size16", "Size14"), - ), + Property.SingleChoiceProperty(name = "size", value = "Size20", variants = listOf("Size20", "Size18", "Size16", "Size14")), ) override val variations: Map> = From 5fd9f03143ed755be570eeffddcebf67f2d0f3c4 Mon Sep 17 00:00:00 2001 From: malilex Date: Tue, 21 Apr 2026 17:36:16 +0300 Subject: [PATCH 6/9] feat(sdds-alibs/plasma-homeds): Add binding properties to Plasma HomeDS. --- .../config-info-compose.json | 15893 +++++++++++++++- .../plasma.homeds.compose/gradle.properties | 2 +- ...lasmaHomedsAvatarGroupVariationsCompose.kt | 22 +- .../PlasmaHomedsAvatarVariationsCompose.kt | 47 +- ...PlasmaHomedsBadgeClearVariationsCompose.kt | 158 +- ...PlasmaHomedsBadgeSolidVariationsCompose.kt | 158 +- ...HomedsBadgeTransparentVariationsCompose.kt | 158 +- ...HomedsBasicButtonGroupVariationsCompose.kt | 97 +- ...lasmaHomedsBasicButtonVariationsCompose.kt | 80 +- .../PlasmaHomedsCardVariationsCompose.kt | 41 +- .../PlasmaHomedsCellVariationsCompose.kt | 31 +- ...smaHomedsCheckBoxGroupVariationsCompose.kt | 28 +- .../PlasmaHomedsCheckBoxVariationsCompose.kt | 41 +- ...maHomedsChipGroupDenseVariationsCompose.kt | 78 +- ...smaHomedsChipGroupWideVariationsCompose.kt | 78 +- .../PlasmaHomedsChipVariationsCompose.kt | 78 +- ...edsCircularProgressBarVariationsCompose.kt | 168 +- ...igationBarInternalPageVariationsCompose.kt | 7 +- ...gNavigationBarMainPageVariationsCompose.kt | 5 +- .../PlasmaHomedsCounterVariationsCompose.kt | 130 +- .../PlasmaHomedsDividerVariationsCompose.kt | 5 +- .../PlasmaHomedsEditableVariationsCompose.kt | 56 +- .../PlasmaHomedsFormItemVariationsCompose.kt | 35 +- ...maHomedsIconBadgeClearVariationsCompose.kt | 158 +- ...maHomedsIconBadgeSolidVariationsCompose.kt | 158 +- ...dsIconBadgeTransparentVariationsCompose.kt | 158 +- ...aHomedsIconButtonGroupVariationsCompose.kt | 118 +- ...PlasmaHomedsIconButtonVariationsCompose.kt | 95 +- .../PlasmaHomedsImageVariationsCompose.kt | 44 +- .../PlasmaHomedsIndicatorVariationsCompose.kt | 94 +- ...PlasmaHomedsLinkButtonVariationsCompose.kt | 129 +- .../PlasmaHomedsListItemVariationsCompose.kt | 26 +- ...HomedsListNumberedItemVariationsCompose.kt | 22 +- ...asmaHomedsListNumberedVariationsCompose.kt | 22 +- .../PlasmaHomedsListVariationsCompose.kt | 32 +- .../PlasmaHomedsLoaderVariationsCompose.kt | 5 +- ...HomedsModalBottomSheetVariationsCompose.kt | 5 +- ...igationBarInternalPageVariationsCompose.kt | 5 +- ...sNavigationBarMainPageVariationsCompose.kt | 5 +- ...lasmaHomedsNoteCompactVariationsCompose.kt | 91 +- .../PlasmaHomedsNoteVariationsCompose.kt | 91 +- .../PlasmaHomedsOverlayVariationsCompose.kt | 32 +- ...smaHomedsRadioBoxGroupVariationsCompose.kt | 25 +- .../PlasmaHomedsRadioBoxVariationsCompose.kt | 28 +- ...asmaHomedsRectSkeletonVariationsCompose.kt | 5 +- .../integration/PlasmaHomedsRegisterTheme.kt | 2 +- .../PlasmaHomedsSpinnerVariationsCompose.kt | 114 +- .../PlasmaHomedsSwitchVariationsCompose.kt | 41 +- ...PlasmaHomedsTabBarItemVariationsCompose.kt | 5 +- .../PlasmaHomedsTabBarVariationsCompose.kt | 5 +- .../PlasmaHomedsTextFieldVariationsCompose.kt | 144 +- ...HomedsTextSkeletonBodyVariationsCompose.kt | 34 +- ...edsTextSkeletonDisplayVariationsCompose.kt | 28 +- ...medsTextSkeletonHeaderVariationsCompose.kt | 41 +- ...HomedsTextSkeletonTextVariationsCompose.kt | 31 +- .../PlasmaHomedsToastVariationsCompose.kt | 32 +- .../PlasmaHomedsTooltipVariationsCompose.kt | 25 +- .../PlasmaHomedsWheelVariationsCompose.kt | 43 +- .../styles/avatar/AvatarStylesCollection.kt | 58 +- .../AvatarGroupStylesCollection.kt | 38 +- .../styles/badge/BadgeStylesCollection.kt | 459 +- .../BasicButtonStylesCollection.kt | 92 +- .../BottomSheetStylesCollection.kt | 26 +- .../ButtonGroupStylesCollection.kt | 278 +- .../styles/card/CardStylesCollection.kt | 50 +- .../styles/cell/CellStylesCollection.kt | 41 +- .../checkbox/CheckBoxStylesCollection.kt | 54 +- .../CheckBoxGroupStylesCollection.kt | 44 +- .../styles/chip/ChipStylesCollection.kt | 89 +- .../chipgroup/ChipGroupStylesCollection.kt | 193 +- .../CircularProgressBarStylesCollection.kt | 171 +- ...CollapsingNavigationBarStylesCollection.kt | 47 +- .../styles/counter/CounterStylesCollection.kt | 96 +- .../styles/divider/DividerStylesCollection.kt | 22 +- .../editable/EditableStylesCollection.kt | 56 +- .../formitem/FormItemStylesCollection.kt | 41 +- .../iconbadge/IconBadgeStylesCollection.kt | 515 +- .../iconbutton/IconButtonStylesCollection.kt | 98 +- .../styles/image/ImageStylesCollection.kt | 47 +- .../indicator/IndicatorStylesCollection.kt | 81 +- .../linkbutton/LinkButtonStylesCollection.kt | 130 +- .../styles/list/ListStylesCollection.kt | 76 +- .../listitem/ListItemStylesCollection.kt | 73 +- .../styles/loader/LoaderStylesCollection.kt | 22 +- .../NavigationBarStylesCollection.kt | 49 +- .../styles/note/NoteStylesCollection.kt | 92 +- .../NoteCompactStylesCollection.kt | 97 +- .../styles/overlay/OverlayStylesCollection.kt | 40 +- .../radiobox/RadioBoxStylesCollection.kt | 40 +- .../RadioBoxGroupStylesCollection.kt | 42 +- .../RectSkeletonStylesCollection.kt | 28 +- .../styles/spinner/SpinnerStylesCollection.kt | 96 +- .../styles/switcher/SwitchStylesCollection.kt | 53 +- .../styles/tabbar/TabBarStylesCollection.kt | 22 +- .../tabbaritem/TabBarItemStylesCollection.kt | 25 +- .../styles/textfield/TextFieldStyles.kt | 20 + .../textfield/TextFieldStylesCollection.kt | 176 +- .../TextSkeletonStylesCollection.kt | 164 +- .../styles/toast/ToastStylesCollection.kt | 39 +- .../styles/tooltip/TooltipStylesCollection.kt | 37 +- .../styles/wheel/WheelStylesCollection.kt | 53 +- 101 files changed, 21330 insertions(+), 1929 deletions(-) diff --git a/tokens/plasma.homeds.compose/config-info-compose.json b/tokens/plasma.homeds.compose/config-info-compose.json index 0fc8ee0e19..551c914ec4 100644 --- a/tokens/plasma.homeds.compose/config-info-compose.json +++ b/tokens/plasma.homeds.compose/config-info-compose.json @@ -6,38 +6,190 @@ "key": "avatar", "coreName": "Avatar", "styleName": "Avatar", + "props": [ + { + "name": "size", + "values": [ + "xxl", + "l", + "m", + "s", + "xs" + ], + "defaultValue": "xxl" + }, + { + "name": "shape", + "values": [ + "default", + "pilled" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.avatar", + "stylesClassName": "AvatarStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.avatar.AvatarStyles", + "receiverClassName": "AvatarStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.avatar.AvatarStyles.Companion", + "returnTypeName": "AvatarStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.AvatarStyle", + "modifyReceiverTypeName": "AvatarStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.AvatarStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "AvatarSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.avatar.AvatarSize", + "defaultValue": { + "value": "xxl", + "codeName": "Xxl" + }, + "values": [ + { + "value": "xxl", + "codeName": "Xxl" + }, + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + } + ] + }, + { + "name": "shape", + "type": "enum", + "required": false, + "typeName": "AvatarShape", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.avatar.AvatarShape", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "pilled", + "codeName": "Pilled" + } + ] + } + ] + }, "variations": [ { "name": "xxl", - "composeReference": "Avatar.Xxl" + "composeReference": "Avatar.Xxl", + "props": [ + { + "name": "size", + "value": "xxl" + } + ] }, { "name": "xxl.pilled", - "composeReference": "Avatar.Xxl.Pilled" + "composeReference": "Avatar.Xxl.Pilled", + "props": [ + { + "name": "size", + "value": "xxl" + }, + { + "name": "shape", + "value": "pilled" + } + ] }, { "name": "l", - "composeReference": "Avatar.L" + "composeReference": "Avatar.L", + "props": [ + { + "name": "size", + "value": "l" + } + ] }, { "name": "l.pilled", - "composeReference": "Avatar.L.Pilled" + "composeReference": "Avatar.L.Pilled", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + } + ] }, { "name": "m", - "composeReference": "Avatar.M" + "composeReference": "Avatar.M", + "props": [ + { + "name": "size", + "value": "m" + } + ] }, { "name": "m.pilled", - "composeReference": "Avatar.M.Pilled" + "composeReference": "Avatar.M.Pilled", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + } + ] }, { "name": "s", - "composeReference": "Avatar.S" + "composeReference": "Avatar.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] }, { "name": "s.pilled", - "composeReference": "Avatar.S.Pilled" + "composeReference": "Avatar.S.Pilled", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + } + ] } ] }, @@ -45,10 +197,55 @@ "key": "avatar-group", "coreName": "AvatarGroup", "styleName": "AvatarGroup", + "props": [ + { + "name": "size", + "values": [ + "s" + ], + "defaultValue": "s" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.avatargroup", + "stylesClassName": "AvatarGroupStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.avatargroup.AvatarGroupStyles", + "receiverClassName": "AvatarGroupStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.avatargroup.AvatarGroupStyles.Companion", + "returnTypeName": "AvatarGroupStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.AvatarGroupStyle", + "modifyReceiverTypeName": "AvatarGroupStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.AvatarGroupStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "AvatarGroupSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.avatargroup.AvatarGroupSize", + "defaultValue": { + "value": "s", + "codeName": "S" + }, + "values": [ + { + "value": "s", + "codeName": "S" + } + ] + } + ] + }, "variations": [ { "name": "s", - "composeReference": "AvatarGroup.S" + "composeReference": "AvatarGroup.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] } ] }, @@ -56,230 +253,1040 @@ "key": "badge", "coreName": "Badge", "styleName": "BadgeClear", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s", + "xs" + ], + "defaultValue": "l" + }, + { + "name": "shape", + "values": [ + "default", + "pilled" + ], + "defaultValue": "default" + }, + { + "name": "view", + "values": [ + "default", + "accent", + "negative", + "positive", + "warning", + "dark", + "light" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.badge", + "stylesClassName": "BadgeStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.badge.BadgeStyles", + "receiverClassName": "BadgeStyles.Clear", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.badge.BadgeStyles.Clear", + "returnTypeName": "BadgeStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.BadgeStyle", + "modifyReceiverTypeName": "BadgeStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.BadgeStyleBuilder", + "holderName": "Clear", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "BadgeClearSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.badge.BadgeClearSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + } + ] + }, + { + "name": "shape", + "type": "enum", + "required": false, + "typeName": "BadgeClearShape", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.badge.BadgeClearShape", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "pilled", + "codeName": "Pilled" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "BadgeClearView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.badge.BadgeClearView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "accent", + "codeName": "Accent" + }, + { + "value": "negative", + "codeName": "Negative" + }, + { + "value": "positive", + "codeName": "Positive" + }, + { + "value": "warning", + "codeName": "Warning" + }, + { + "value": "dark", + "codeName": "Dark" + }, + { + "value": "light", + "codeName": "Light" + } + ] + } + ] + }, "variations": [ { "name": "l.default", - "composeReference": "BadgeClear.L.Default" + "composeReference": "BadgeClear.L.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.accent", - "composeReference": "BadgeClear.L.Accent" + "composeReference": "BadgeClear.L.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.negative", - "composeReference": "BadgeClear.L.Negative" + "composeReference": "BadgeClear.L.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.positive", - "composeReference": "BadgeClear.L.Positive" + "composeReference": "BadgeClear.L.Positive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "l.warning", - "composeReference": "BadgeClear.L.Warning" + "composeReference": "BadgeClear.L.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.dark", - "composeReference": "BadgeClear.L.Dark" + "composeReference": "BadgeClear.L.Dark", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "l.light", - "composeReference": "BadgeClear.L.Light" + "composeReference": "BadgeClear.L.Light", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "l.pilled.default", - "composeReference": "BadgeClear.L.Pilled.Default" + "composeReference": "BadgeClear.L.Pilled.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.pilled.accent", - "composeReference": "BadgeClear.L.Pilled.Accent" + "composeReference": "BadgeClear.L.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.pilled.negative", - "composeReference": "BadgeClear.L.Pilled.Negative" + "composeReference": "BadgeClear.L.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.pilled.positive", - "composeReference": "BadgeClear.L.Pilled.Positive" + "composeReference": "BadgeClear.L.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "l.pilled.warning", - "composeReference": "BadgeClear.L.Pilled.Warning" + "composeReference": "BadgeClear.L.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.pilled.dark", - "composeReference": "BadgeClear.L.Pilled.Dark" + "composeReference": "BadgeClear.L.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "l.pilled.light", - "composeReference": "BadgeClear.L.Pilled.Light" + "composeReference": "BadgeClear.L.Pilled.Light", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "m.default", - "composeReference": "BadgeClear.M.Default" + "composeReference": "BadgeClear.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.accent", - "composeReference": "BadgeClear.M.Accent" + "composeReference": "BadgeClear.M.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.negative", - "composeReference": "BadgeClear.M.Negative" + "composeReference": "BadgeClear.M.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.positive", - "composeReference": "BadgeClear.M.Positive" + "composeReference": "BadgeClear.M.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.warning", - "composeReference": "BadgeClear.M.Warning" + "composeReference": "BadgeClear.M.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.dark", - "composeReference": "BadgeClear.M.Dark" + "composeReference": "BadgeClear.M.Dark", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "m.light", - "composeReference": "BadgeClear.M.Light" + "composeReference": "BadgeClear.M.Light", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "m.pilled.default", - "composeReference": "BadgeClear.M.Pilled.Default" + "composeReference": "BadgeClear.M.Pilled.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.pilled.accent", - "composeReference": "BadgeClear.M.Pilled.Accent" + "composeReference": "BadgeClear.M.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.pilled.negative", - "composeReference": "BadgeClear.M.Pilled.Negative" + "composeReference": "BadgeClear.M.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.pilled.positive", - "composeReference": "BadgeClear.M.Pilled.Positive" + "composeReference": "BadgeClear.M.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.pilled.warning", - "composeReference": "BadgeClear.M.Pilled.Warning" + "composeReference": "BadgeClear.M.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.pilled.dark", - "composeReference": "BadgeClear.M.Pilled.Dark" + "composeReference": "BadgeClear.M.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "m.pilled.light", - "composeReference": "BadgeClear.M.Pilled.Light" + "composeReference": "BadgeClear.M.Pilled.Light", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "s.default", - "composeReference": "BadgeClear.S.Default" + "composeReference": "BadgeClear.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.accent", - "composeReference": "BadgeClear.S.Accent" + "composeReference": "BadgeClear.S.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.negative", - "composeReference": "BadgeClear.S.Negative" + "composeReference": "BadgeClear.S.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.positive", - "composeReference": "BadgeClear.S.Positive" + "composeReference": "BadgeClear.S.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.warning", - "composeReference": "BadgeClear.S.Warning" + "composeReference": "BadgeClear.S.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.dark", - "composeReference": "BadgeClear.S.Dark" + "composeReference": "BadgeClear.S.Dark", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "s.light", - "composeReference": "BadgeClear.S.Light" + "composeReference": "BadgeClear.S.Light", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "s.pilled.default", - "composeReference": "BadgeClear.S.Pilled.Default" + "composeReference": "BadgeClear.S.Pilled.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.pilled.accent", - "composeReference": "BadgeClear.S.Pilled.Accent" + "composeReference": "BadgeClear.S.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.pilled.negative", - "composeReference": "BadgeClear.S.Pilled.Negative" + "composeReference": "BadgeClear.S.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.pilled.positive", - "composeReference": "BadgeClear.S.Pilled.Positive" + "composeReference": "BadgeClear.S.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.pilled.warning", - "composeReference": "BadgeClear.S.Pilled.Warning" + "composeReference": "BadgeClear.S.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.pilled.dark", - "composeReference": "BadgeClear.S.Pilled.Dark" + "composeReference": "BadgeClear.S.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "s.pilled.light", - "composeReference": "BadgeClear.S.Pilled.Light" + "composeReference": "BadgeClear.S.Pilled.Light", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "xs.default", - "composeReference": "BadgeClear.Xs.Default" + "composeReference": "BadgeClear.Xs.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.accent", - "composeReference": "BadgeClear.Xs.Accent" + "composeReference": "BadgeClear.Xs.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.negative", - "composeReference": "BadgeClear.Xs.Negative" + "composeReference": "BadgeClear.Xs.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.positive", - "composeReference": "BadgeClear.Xs.Positive" + "composeReference": "BadgeClear.Xs.Positive", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xs.warning", - "composeReference": "BadgeClear.Xs.Warning" + "composeReference": "BadgeClear.Xs.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.dark", - "composeReference": "BadgeClear.Xs.Dark" + "composeReference": "BadgeClear.Xs.Dark", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "xs.light", - "composeReference": "BadgeClear.Xs.Light" + "composeReference": "BadgeClear.Xs.Light", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "xs.pilled.default", - "composeReference": "BadgeClear.Xs.Pilled.Default" + "composeReference": "BadgeClear.Xs.Pilled.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.pilled.accent", - "composeReference": "BadgeClear.Xs.Pilled.Accent" + "composeReference": "BadgeClear.Xs.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.pilled.negative", - "composeReference": "BadgeClear.Xs.Pilled.Negative" + "composeReference": "BadgeClear.Xs.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.pilled.positive", - "composeReference": "BadgeClear.Xs.Pilled.Positive" + "composeReference": "BadgeClear.Xs.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xs.pilled.warning", - "composeReference": "BadgeClear.Xs.Pilled.Warning" + "composeReference": "BadgeClear.Xs.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.pilled.dark", - "composeReference": "BadgeClear.Xs.Pilled.Dark" + "composeReference": "BadgeClear.Xs.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "xs.pilled.light", - "composeReference": "BadgeClear.Xs.Pilled.Light" + "composeReference": "BadgeClear.Xs.Pilled.Light", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] } ] }, @@ -287,230 +1294,1040 @@ "key": "badge", "coreName": "Badge", "styleName": "BadgeSolid", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s", + "xs" + ], + "defaultValue": "l" + }, + { + "name": "shape", + "values": [ + "default", + "pilled" + ], + "defaultValue": "default" + }, + { + "name": "view", + "values": [ + "default", + "accent", + "negative", + "positive", + "warning", + "dark", + "light" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.badge", + "stylesClassName": "BadgeStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.badge.BadgeStyles", + "receiverClassName": "BadgeStyles.Solid", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.badge.BadgeStyles.Solid", + "returnTypeName": "BadgeStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.BadgeStyle", + "modifyReceiverTypeName": "BadgeStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.BadgeStyleBuilder", + "holderName": "Solid", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "BadgeSolidSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.badge.BadgeSolidSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + } + ] + }, + { + "name": "shape", + "type": "enum", + "required": false, + "typeName": "BadgeSolidShape", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.badge.BadgeSolidShape", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "pilled", + "codeName": "Pilled" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "BadgeSolidView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.badge.BadgeSolidView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "accent", + "codeName": "Accent" + }, + { + "value": "negative", + "codeName": "Negative" + }, + { + "value": "positive", + "codeName": "Positive" + }, + { + "value": "warning", + "codeName": "Warning" + }, + { + "value": "dark", + "codeName": "Dark" + }, + { + "value": "light", + "codeName": "Light" + } + ] + } + ] + }, "variations": [ { "name": "l.default", - "composeReference": "BadgeSolid.L.Default" + "composeReference": "BadgeSolid.L.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.accent", - "composeReference": "BadgeSolid.L.Accent" + "composeReference": "BadgeSolid.L.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.negative", - "composeReference": "BadgeSolid.L.Negative" + "composeReference": "BadgeSolid.L.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.positive", - "composeReference": "BadgeSolid.L.Positive" + "composeReference": "BadgeSolid.L.Positive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "l.warning", - "composeReference": "BadgeSolid.L.Warning" + "composeReference": "BadgeSolid.L.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.dark", - "composeReference": "BadgeSolid.L.Dark" + "composeReference": "BadgeSolid.L.Dark", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "l.light", - "composeReference": "BadgeSolid.L.Light" + "composeReference": "BadgeSolid.L.Light", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "l.pilled.default", - "composeReference": "BadgeSolid.L.Pilled.Default" + "composeReference": "BadgeSolid.L.Pilled.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.pilled.accent", - "composeReference": "BadgeSolid.L.Pilled.Accent" + "composeReference": "BadgeSolid.L.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.pilled.negative", - "composeReference": "BadgeSolid.L.Pilled.Negative" + "composeReference": "BadgeSolid.L.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.pilled.positive", - "composeReference": "BadgeSolid.L.Pilled.Positive" + "composeReference": "BadgeSolid.L.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "l.pilled.warning", - "composeReference": "BadgeSolid.L.Pilled.Warning" + "composeReference": "BadgeSolid.L.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.pilled.dark", - "composeReference": "BadgeSolid.L.Pilled.Dark" + "composeReference": "BadgeSolid.L.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "l.pilled.light", - "composeReference": "BadgeSolid.L.Pilled.Light" + "composeReference": "BadgeSolid.L.Pilled.Light", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "m.default", - "composeReference": "BadgeSolid.M.Default" + "composeReference": "BadgeSolid.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.accent", - "composeReference": "BadgeSolid.M.Accent" + "composeReference": "BadgeSolid.M.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.negative", - "composeReference": "BadgeSolid.M.Negative" + "composeReference": "BadgeSolid.M.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.positive", - "composeReference": "BadgeSolid.M.Positive" + "composeReference": "BadgeSolid.M.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.warning", - "composeReference": "BadgeSolid.M.Warning" + "composeReference": "BadgeSolid.M.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.dark", - "composeReference": "BadgeSolid.M.Dark" + "composeReference": "BadgeSolid.M.Dark", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "m.light", - "composeReference": "BadgeSolid.M.Light" + "composeReference": "BadgeSolid.M.Light", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "m.pilled.default", - "composeReference": "BadgeSolid.M.Pilled.Default" + "composeReference": "BadgeSolid.M.Pilled.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.pilled.accent", - "composeReference": "BadgeSolid.M.Pilled.Accent" + "composeReference": "BadgeSolid.M.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.pilled.negative", - "composeReference": "BadgeSolid.M.Pilled.Negative" + "composeReference": "BadgeSolid.M.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.pilled.positive", - "composeReference": "BadgeSolid.M.Pilled.Positive" + "composeReference": "BadgeSolid.M.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.pilled.warning", - "composeReference": "BadgeSolid.M.Pilled.Warning" + "composeReference": "BadgeSolid.M.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.pilled.dark", - "composeReference": "BadgeSolid.M.Pilled.Dark" + "composeReference": "BadgeSolid.M.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "m.pilled.light", - "composeReference": "BadgeSolid.M.Pilled.Light" + "composeReference": "BadgeSolid.M.Pilled.Light", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "s.default", - "composeReference": "BadgeSolid.S.Default" + "composeReference": "BadgeSolid.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.accent", - "composeReference": "BadgeSolid.S.Accent" + "composeReference": "BadgeSolid.S.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.negative", - "composeReference": "BadgeSolid.S.Negative" + "composeReference": "BadgeSolid.S.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.positive", - "composeReference": "BadgeSolid.S.Positive" + "composeReference": "BadgeSolid.S.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.warning", - "composeReference": "BadgeSolid.S.Warning" + "composeReference": "BadgeSolid.S.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.dark", - "composeReference": "BadgeSolid.S.Dark" + "composeReference": "BadgeSolid.S.Dark", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "s.light", - "composeReference": "BadgeSolid.S.Light" + "composeReference": "BadgeSolid.S.Light", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "s.pilled.default", - "composeReference": "BadgeSolid.S.Pilled.Default" + "composeReference": "BadgeSolid.S.Pilled.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.pilled.accent", - "composeReference": "BadgeSolid.S.Pilled.Accent" + "composeReference": "BadgeSolid.S.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.pilled.negative", - "composeReference": "BadgeSolid.S.Pilled.Negative" + "composeReference": "BadgeSolid.S.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.pilled.positive", - "composeReference": "BadgeSolid.S.Pilled.Positive" + "composeReference": "BadgeSolid.S.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.pilled.warning", - "composeReference": "BadgeSolid.S.Pilled.Warning" + "composeReference": "BadgeSolid.S.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.pilled.dark", - "composeReference": "BadgeSolid.S.Pilled.Dark" + "composeReference": "BadgeSolid.S.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "s.pilled.light", - "composeReference": "BadgeSolid.S.Pilled.Light" + "composeReference": "BadgeSolid.S.Pilled.Light", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "xs.default", - "composeReference": "BadgeSolid.Xs.Default" + "composeReference": "BadgeSolid.Xs.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.accent", - "composeReference": "BadgeSolid.Xs.Accent" + "composeReference": "BadgeSolid.Xs.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.negative", - "composeReference": "BadgeSolid.Xs.Negative" + "composeReference": "BadgeSolid.Xs.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.positive", - "composeReference": "BadgeSolid.Xs.Positive" + "composeReference": "BadgeSolid.Xs.Positive", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xs.warning", - "composeReference": "BadgeSolid.Xs.Warning" + "composeReference": "BadgeSolid.Xs.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.dark", - "composeReference": "BadgeSolid.Xs.Dark" + "composeReference": "BadgeSolid.Xs.Dark", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "xs.light", - "composeReference": "BadgeSolid.Xs.Light" + "composeReference": "BadgeSolid.Xs.Light", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "xs.pilled.default", - "composeReference": "BadgeSolid.Xs.Pilled.Default" + "composeReference": "BadgeSolid.Xs.Pilled.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.pilled.accent", - "composeReference": "BadgeSolid.Xs.Pilled.Accent" + "composeReference": "BadgeSolid.Xs.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.pilled.negative", - "composeReference": "BadgeSolid.Xs.Pilled.Negative" + "composeReference": "BadgeSolid.Xs.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.pilled.positive", - "composeReference": "BadgeSolid.Xs.Pilled.Positive" + "composeReference": "BadgeSolid.Xs.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xs.pilled.warning", - "composeReference": "BadgeSolid.Xs.Pilled.Warning" + "composeReference": "BadgeSolid.Xs.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.pilled.dark", - "composeReference": "BadgeSolid.Xs.Pilled.Dark" + "composeReference": "BadgeSolid.Xs.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "xs.pilled.light", - "composeReference": "BadgeSolid.Xs.Pilled.Light" + "composeReference": "BadgeSolid.Xs.Pilled.Light", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] } ] }, @@ -518,230 +2335,1040 @@ "key": "badge", "coreName": "Badge", "styleName": "BadgeTransparent", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s", + "xs" + ], + "defaultValue": "l" + }, + { + "name": "shape", + "values": [ + "default", + "pilled" + ], + "defaultValue": "default" + }, + { + "name": "view", + "values": [ + "default", + "accent", + "negative", + "positive", + "warning", + "dark", + "light" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.badge", + "stylesClassName": "BadgeStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.badge.BadgeStyles", + "receiverClassName": "BadgeStyles.Transparent", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.badge.BadgeStyles.Transparent", + "returnTypeName": "BadgeStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.BadgeStyle", + "modifyReceiverTypeName": "BadgeStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.BadgeStyleBuilder", + "holderName": "Transparent", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "BadgeTransparentSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.badge.BadgeTransparentSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + } + ] + }, + { + "name": "shape", + "type": "enum", + "required": false, + "typeName": "BadgeTransparentShape", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.badge.BadgeTransparentShape", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "pilled", + "codeName": "Pilled" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "BadgeTransparentView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.badge.BadgeTransparentView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "accent", + "codeName": "Accent" + }, + { + "value": "negative", + "codeName": "Negative" + }, + { + "value": "positive", + "codeName": "Positive" + }, + { + "value": "warning", + "codeName": "Warning" + }, + { + "value": "dark", + "codeName": "Dark" + }, + { + "value": "light", + "codeName": "Light" + } + ] + } + ] + }, "variations": [ { "name": "l.default", - "composeReference": "BadgeTransparent.L.Default" + "composeReference": "BadgeTransparent.L.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.accent", - "composeReference": "BadgeTransparent.L.Accent" + "composeReference": "BadgeTransparent.L.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.negative", - "composeReference": "BadgeTransparent.L.Negative" + "composeReference": "BadgeTransparent.L.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.positive", - "composeReference": "BadgeTransparent.L.Positive" + "composeReference": "BadgeTransparent.L.Positive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "l.warning", - "composeReference": "BadgeTransparent.L.Warning" + "composeReference": "BadgeTransparent.L.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.dark", - "composeReference": "BadgeTransparent.L.Dark" + "composeReference": "BadgeTransparent.L.Dark", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "l.light", - "composeReference": "BadgeTransparent.L.Light" + "composeReference": "BadgeTransparent.L.Light", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "l.pilled.default", - "composeReference": "BadgeTransparent.L.Pilled.Default" + "composeReference": "BadgeTransparent.L.Pilled.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.pilled.accent", - "composeReference": "BadgeTransparent.L.Pilled.Accent" + "composeReference": "BadgeTransparent.L.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.pilled.negative", - "composeReference": "BadgeTransparent.L.Pilled.Negative" + "composeReference": "BadgeTransparent.L.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.pilled.positive", - "composeReference": "BadgeTransparent.L.Pilled.Positive" + "composeReference": "BadgeTransparent.L.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "l.pilled.warning", - "composeReference": "BadgeTransparent.L.Pilled.Warning" + "composeReference": "BadgeTransparent.L.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.pilled.dark", - "composeReference": "BadgeTransparent.L.Pilled.Dark" + "composeReference": "BadgeTransparent.L.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "l.pilled.light", - "composeReference": "BadgeTransparent.L.Pilled.Light" + "composeReference": "BadgeTransparent.L.Pilled.Light", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "m.default", - "composeReference": "BadgeTransparent.M.Default" + "composeReference": "BadgeTransparent.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.accent", - "composeReference": "BadgeTransparent.M.Accent" + "composeReference": "BadgeTransparent.M.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.negative", - "composeReference": "BadgeTransparent.M.Negative" + "composeReference": "BadgeTransparent.M.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.positive", - "composeReference": "BadgeTransparent.M.Positive" + "composeReference": "BadgeTransparent.M.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.warning", - "composeReference": "BadgeTransparent.M.Warning" + "composeReference": "BadgeTransparent.M.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.dark", - "composeReference": "BadgeTransparent.M.Dark" + "composeReference": "BadgeTransparent.M.Dark", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "m.light", - "composeReference": "BadgeTransparent.M.Light" + "composeReference": "BadgeTransparent.M.Light", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "m.pilled.default", - "composeReference": "BadgeTransparent.M.Pilled.Default" + "composeReference": "BadgeTransparent.M.Pilled.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.pilled.accent", - "composeReference": "BadgeTransparent.M.Pilled.Accent" + "composeReference": "BadgeTransparent.M.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.pilled.negative", - "composeReference": "BadgeTransparent.M.Pilled.Negative" + "composeReference": "BadgeTransparent.M.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.pilled.positive", - "composeReference": "BadgeTransparent.M.Pilled.Positive" + "composeReference": "BadgeTransparent.M.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.pilled.warning", - "composeReference": "BadgeTransparent.M.Pilled.Warning" + "composeReference": "BadgeTransparent.M.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.pilled.dark", - "composeReference": "BadgeTransparent.M.Pilled.Dark" + "composeReference": "BadgeTransparent.M.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "m.pilled.light", - "composeReference": "BadgeTransparent.M.Pilled.Light" + "composeReference": "BadgeTransparent.M.Pilled.Light", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "s.default", - "composeReference": "BadgeTransparent.S.Default" + "composeReference": "BadgeTransparent.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.accent", - "composeReference": "BadgeTransparent.S.Accent" + "composeReference": "BadgeTransparent.S.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.negative", - "composeReference": "BadgeTransparent.S.Negative" + "composeReference": "BadgeTransparent.S.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.positive", - "composeReference": "BadgeTransparent.S.Positive" + "composeReference": "BadgeTransparent.S.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.warning", - "composeReference": "BadgeTransparent.S.Warning" + "composeReference": "BadgeTransparent.S.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.dark", - "composeReference": "BadgeTransparent.S.Dark" + "composeReference": "BadgeTransparent.S.Dark", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "s.light", - "composeReference": "BadgeTransparent.S.Light" + "composeReference": "BadgeTransparent.S.Light", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "s.pilled.default", - "composeReference": "BadgeTransparent.S.Pilled.Default" + "composeReference": "BadgeTransparent.S.Pilled.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.pilled.accent", - "composeReference": "BadgeTransparent.S.Pilled.Accent" + "composeReference": "BadgeTransparent.S.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.pilled.negative", - "composeReference": "BadgeTransparent.S.Pilled.Negative" + "composeReference": "BadgeTransparent.S.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.pilled.positive", - "composeReference": "BadgeTransparent.S.Pilled.Positive" + "composeReference": "BadgeTransparent.S.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.pilled.warning", - "composeReference": "BadgeTransparent.S.Pilled.Warning" + "composeReference": "BadgeTransparent.S.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.pilled.dark", - "composeReference": "BadgeTransparent.S.Pilled.Dark" + "composeReference": "BadgeTransparent.S.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "s.pilled.light", - "composeReference": "BadgeTransparent.S.Pilled.Light" + "composeReference": "BadgeTransparent.S.Pilled.Light", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "xs.default", - "composeReference": "BadgeTransparent.Xs.Default" + "composeReference": "BadgeTransparent.Xs.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.accent", - "composeReference": "BadgeTransparent.Xs.Accent" + "composeReference": "BadgeTransparent.Xs.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.negative", - "composeReference": "BadgeTransparent.Xs.Negative" + "composeReference": "BadgeTransparent.Xs.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.positive", - "composeReference": "BadgeTransparent.Xs.Positive" + "composeReference": "BadgeTransparent.Xs.Positive", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xs.warning", - "composeReference": "BadgeTransparent.Xs.Warning" + "composeReference": "BadgeTransparent.Xs.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.dark", - "composeReference": "BadgeTransparent.Xs.Dark" + "composeReference": "BadgeTransparent.Xs.Dark", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "xs.light", - "composeReference": "BadgeTransparent.Xs.Light" + "composeReference": "BadgeTransparent.Xs.Light", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "xs.pilled.default", - "composeReference": "BadgeTransparent.Xs.Pilled.Default" + "composeReference": "BadgeTransparent.Xs.Pilled.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.pilled.accent", - "composeReference": "BadgeTransparent.Xs.Pilled.Accent" + "composeReference": "BadgeTransparent.Xs.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.pilled.negative", - "composeReference": "BadgeTransparent.Xs.Pilled.Negative" + "composeReference": "BadgeTransparent.Xs.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.pilled.positive", - "composeReference": "BadgeTransparent.Xs.Pilled.Positive" + "composeReference": "BadgeTransparent.Xs.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xs.pilled.warning", - "composeReference": "BadgeTransparent.Xs.Pilled.Warning" + "composeReference": "BadgeTransparent.Xs.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.pilled.dark", - "composeReference": "BadgeTransparent.Xs.Pilled.Dark" + "composeReference": "BadgeTransparent.Xs.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "xs.pilled.light", - "composeReference": "BadgeTransparent.Xs.Pilled.Light" + "composeReference": "BadgeTransparent.Xs.Pilled.Light", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] } ] }, @@ -749,230 +3376,1040 @@ "key": "icon-badge", "coreName": "IconBadge", "styleName": "IconBadgeClear", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s", + "xs" + ], + "defaultValue": "l" + }, + { + "name": "shape", + "values": [ + "default", + "pilled" + ], + "defaultValue": "default" + }, + { + "name": "view", + "values": [ + "default", + "accent", + "negative", + "positive", + "warning", + "dark", + "light" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.iconbadge", + "stylesClassName": "IconBadgeStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.iconbadge.IconBadgeStyles", + "receiverClassName": "IconBadgeStyles.Clear", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.iconbadge.IconBadgeStyles.Clear", + "returnTypeName": "BadgeStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.BadgeStyle", + "modifyReceiverTypeName": "IconBadgeStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.IconBadgeStyleBuilder", + "holderName": "Clear", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "IconBadgeClearSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.iconbadge.IconBadgeClearSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + } + ] + }, + { + "name": "shape", + "type": "enum", + "required": false, + "typeName": "IconBadgeClearShape", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.iconbadge.IconBadgeClearShape", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "pilled", + "codeName": "Pilled" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "IconBadgeClearView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.iconbadge.IconBadgeClearView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "accent", + "codeName": "Accent" + }, + { + "value": "negative", + "codeName": "Negative" + }, + { + "value": "positive", + "codeName": "Positive" + }, + { + "value": "warning", + "codeName": "Warning" + }, + { + "value": "dark", + "codeName": "Dark" + }, + { + "value": "light", + "codeName": "Light" + } + ] + } + ] + }, "variations": [ { "name": "l.default", - "composeReference": "IconBadgeClear.L.Default" + "composeReference": "IconBadgeClear.L.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.accent", - "composeReference": "IconBadgeClear.L.Accent" + "composeReference": "IconBadgeClear.L.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.negative", - "composeReference": "IconBadgeClear.L.Negative" + "composeReference": "IconBadgeClear.L.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.positive", - "composeReference": "IconBadgeClear.L.Positive" + "composeReference": "IconBadgeClear.L.Positive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "l.warning", - "composeReference": "IconBadgeClear.L.Warning" + "composeReference": "IconBadgeClear.L.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.dark", - "composeReference": "IconBadgeClear.L.Dark" + "composeReference": "IconBadgeClear.L.Dark", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "l.light", - "composeReference": "IconBadgeClear.L.Light" + "composeReference": "IconBadgeClear.L.Light", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "l.pilled.default", - "composeReference": "IconBadgeClear.L.Pilled.Default" + "composeReference": "IconBadgeClear.L.Pilled.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.pilled.accent", - "composeReference": "IconBadgeClear.L.Pilled.Accent" + "composeReference": "IconBadgeClear.L.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.pilled.negative", - "composeReference": "IconBadgeClear.L.Pilled.Negative" + "composeReference": "IconBadgeClear.L.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.pilled.positive", - "composeReference": "IconBadgeClear.L.Pilled.Positive" + "composeReference": "IconBadgeClear.L.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "l.pilled.warning", - "composeReference": "IconBadgeClear.L.Pilled.Warning" + "composeReference": "IconBadgeClear.L.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.pilled.dark", - "composeReference": "IconBadgeClear.L.Pilled.Dark" + "composeReference": "IconBadgeClear.L.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "l.pilled.light", - "composeReference": "IconBadgeClear.L.Pilled.Light" + "composeReference": "IconBadgeClear.L.Pilled.Light", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "m.default", - "composeReference": "IconBadgeClear.M.Default" + "composeReference": "IconBadgeClear.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.accent", - "composeReference": "IconBadgeClear.M.Accent" + "composeReference": "IconBadgeClear.M.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.negative", - "composeReference": "IconBadgeClear.M.Negative" + "composeReference": "IconBadgeClear.M.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.positive", - "composeReference": "IconBadgeClear.M.Positive" + "composeReference": "IconBadgeClear.M.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.warning", - "composeReference": "IconBadgeClear.M.Warning" + "composeReference": "IconBadgeClear.M.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.dark", - "composeReference": "IconBadgeClear.M.Dark" + "composeReference": "IconBadgeClear.M.Dark", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "m.light", - "composeReference": "IconBadgeClear.M.Light" + "composeReference": "IconBadgeClear.M.Light", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "m.pilled.default", - "composeReference": "IconBadgeClear.M.Pilled.Default" + "composeReference": "IconBadgeClear.M.Pilled.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.pilled.accent", - "composeReference": "IconBadgeClear.M.Pilled.Accent" + "composeReference": "IconBadgeClear.M.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.pilled.negative", - "composeReference": "IconBadgeClear.M.Pilled.Negative" + "composeReference": "IconBadgeClear.M.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.pilled.positive", - "composeReference": "IconBadgeClear.M.Pilled.Positive" + "composeReference": "IconBadgeClear.M.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.pilled.warning", - "composeReference": "IconBadgeClear.M.Pilled.Warning" + "composeReference": "IconBadgeClear.M.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.pilled.dark", - "composeReference": "IconBadgeClear.M.Pilled.Dark" + "composeReference": "IconBadgeClear.M.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "m.pilled.light", - "composeReference": "IconBadgeClear.M.Pilled.Light" + "composeReference": "IconBadgeClear.M.Pilled.Light", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "s.default", - "composeReference": "IconBadgeClear.S.Default" + "composeReference": "IconBadgeClear.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.accent", - "composeReference": "IconBadgeClear.S.Accent" + "composeReference": "IconBadgeClear.S.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.negative", - "composeReference": "IconBadgeClear.S.Negative" + "composeReference": "IconBadgeClear.S.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.positive", - "composeReference": "IconBadgeClear.S.Positive" + "composeReference": "IconBadgeClear.S.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.warning", - "composeReference": "IconBadgeClear.S.Warning" + "composeReference": "IconBadgeClear.S.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.dark", - "composeReference": "IconBadgeClear.S.Dark" + "composeReference": "IconBadgeClear.S.Dark", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "s.light", - "composeReference": "IconBadgeClear.S.Light" + "composeReference": "IconBadgeClear.S.Light", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "s.pilled.default", - "composeReference": "IconBadgeClear.S.Pilled.Default" + "composeReference": "IconBadgeClear.S.Pilled.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.pilled.accent", - "composeReference": "IconBadgeClear.S.Pilled.Accent" + "composeReference": "IconBadgeClear.S.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.pilled.negative", - "composeReference": "IconBadgeClear.S.Pilled.Negative" + "composeReference": "IconBadgeClear.S.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.pilled.positive", - "composeReference": "IconBadgeClear.S.Pilled.Positive" + "composeReference": "IconBadgeClear.S.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.pilled.warning", - "composeReference": "IconBadgeClear.S.Pilled.Warning" + "composeReference": "IconBadgeClear.S.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.pilled.dark", - "composeReference": "IconBadgeClear.S.Pilled.Dark" + "composeReference": "IconBadgeClear.S.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "s.pilled.light", - "composeReference": "IconBadgeClear.S.Pilled.Light" + "composeReference": "IconBadgeClear.S.Pilled.Light", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "xs.default", - "composeReference": "IconBadgeClear.Xs.Default" + "composeReference": "IconBadgeClear.Xs.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.accent", - "composeReference": "IconBadgeClear.Xs.Accent" + "composeReference": "IconBadgeClear.Xs.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.negative", - "composeReference": "IconBadgeClear.Xs.Negative" + "composeReference": "IconBadgeClear.Xs.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.positive", - "composeReference": "IconBadgeClear.Xs.Positive" + "composeReference": "IconBadgeClear.Xs.Positive", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xs.warning", - "composeReference": "IconBadgeClear.Xs.Warning" + "composeReference": "IconBadgeClear.Xs.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.dark", - "composeReference": "IconBadgeClear.Xs.Dark" + "composeReference": "IconBadgeClear.Xs.Dark", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "xs.light", - "composeReference": "IconBadgeClear.Xs.Light" + "composeReference": "IconBadgeClear.Xs.Light", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "xs.pilled.default", - "composeReference": "IconBadgeClear.Xs.Pilled.Default" + "composeReference": "IconBadgeClear.Xs.Pilled.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.pilled.accent", - "composeReference": "IconBadgeClear.Xs.Pilled.Accent" + "composeReference": "IconBadgeClear.Xs.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.pilled.negative", - "composeReference": "IconBadgeClear.Xs.Pilled.Negative" + "composeReference": "IconBadgeClear.Xs.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.pilled.positive", - "composeReference": "IconBadgeClear.Xs.Pilled.Positive" + "composeReference": "IconBadgeClear.Xs.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xs.pilled.warning", - "composeReference": "IconBadgeClear.Xs.Pilled.Warning" + "composeReference": "IconBadgeClear.Xs.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.pilled.dark", - "composeReference": "IconBadgeClear.Xs.Pilled.Dark" + "composeReference": "IconBadgeClear.Xs.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "xs.pilled.light", - "composeReference": "IconBadgeClear.Xs.Pilled.Light" + "composeReference": "IconBadgeClear.Xs.Pilled.Light", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] } ] }, @@ -980,230 +4417,1040 @@ "key": "icon-badge", "coreName": "IconBadge", "styleName": "IconBadgeSolid", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s", + "xs" + ], + "defaultValue": "l" + }, + { + "name": "shape", + "values": [ + "default", + "pilled" + ], + "defaultValue": "default" + }, + { + "name": "view", + "values": [ + "default", + "accent", + "negative", + "positive", + "warning", + "dark", + "light" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.iconbadge", + "stylesClassName": "IconBadgeStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.iconbadge.IconBadgeStyles", + "receiverClassName": "IconBadgeStyles.Solid", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.iconbadge.IconBadgeStyles.Solid", + "returnTypeName": "BadgeStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.BadgeStyle", + "modifyReceiverTypeName": "IconBadgeStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.IconBadgeStyleBuilder", + "holderName": "Solid", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "IconBadgeSolidSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.iconbadge.IconBadgeSolidSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + } + ] + }, + { + "name": "shape", + "type": "enum", + "required": false, + "typeName": "IconBadgeSolidShape", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.iconbadge.IconBadgeSolidShape", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "pilled", + "codeName": "Pilled" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "IconBadgeSolidView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.iconbadge.IconBadgeSolidView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "accent", + "codeName": "Accent" + }, + { + "value": "negative", + "codeName": "Negative" + }, + { + "value": "positive", + "codeName": "Positive" + }, + { + "value": "warning", + "codeName": "Warning" + }, + { + "value": "dark", + "codeName": "Dark" + }, + { + "value": "light", + "codeName": "Light" + } + ] + } + ] + }, "variations": [ { "name": "l.default", - "composeReference": "IconBadgeSolid.L.Default" + "composeReference": "IconBadgeSolid.L.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.accent", - "composeReference": "IconBadgeSolid.L.Accent" + "composeReference": "IconBadgeSolid.L.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.negative", - "composeReference": "IconBadgeSolid.L.Negative" + "composeReference": "IconBadgeSolid.L.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.positive", - "composeReference": "IconBadgeSolid.L.Positive" + "composeReference": "IconBadgeSolid.L.Positive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "l.warning", - "composeReference": "IconBadgeSolid.L.Warning" + "composeReference": "IconBadgeSolid.L.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.dark", - "composeReference": "IconBadgeSolid.L.Dark" + "composeReference": "IconBadgeSolid.L.Dark", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "l.light", - "composeReference": "IconBadgeSolid.L.Light" + "composeReference": "IconBadgeSolid.L.Light", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "l.pilled.default", - "composeReference": "IconBadgeSolid.L.Pilled.Default" + "composeReference": "IconBadgeSolid.L.Pilled.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.pilled.accent", - "composeReference": "IconBadgeSolid.L.Pilled.Accent" + "composeReference": "IconBadgeSolid.L.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.pilled.negative", - "composeReference": "IconBadgeSolid.L.Pilled.Negative" + "composeReference": "IconBadgeSolid.L.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.pilled.positive", - "composeReference": "IconBadgeSolid.L.Pilled.Positive" + "composeReference": "IconBadgeSolid.L.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "l.pilled.warning", - "composeReference": "IconBadgeSolid.L.Pilled.Warning" + "composeReference": "IconBadgeSolid.L.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.pilled.dark", - "composeReference": "IconBadgeSolid.L.Pilled.Dark" + "composeReference": "IconBadgeSolid.L.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "l.pilled.light", - "composeReference": "IconBadgeSolid.L.Pilled.Light" + "composeReference": "IconBadgeSolid.L.Pilled.Light", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "m.default", - "composeReference": "IconBadgeSolid.M.Default" + "composeReference": "IconBadgeSolid.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.accent", - "composeReference": "IconBadgeSolid.M.Accent" + "composeReference": "IconBadgeSolid.M.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.negative", - "composeReference": "IconBadgeSolid.M.Negative" + "composeReference": "IconBadgeSolid.M.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.positive", - "composeReference": "IconBadgeSolid.M.Positive" + "composeReference": "IconBadgeSolid.M.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.warning", - "composeReference": "IconBadgeSolid.M.Warning" + "composeReference": "IconBadgeSolid.M.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.dark", - "composeReference": "IconBadgeSolid.M.Dark" + "composeReference": "IconBadgeSolid.M.Dark", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "m.light", - "composeReference": "IconBadgeSolid.M.Light" + "composeReference": "IconBadgeSolid.M.Light", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "m.pilled.default", - "composeReference": "IconBadgeSolid.M.Pilled.Default" + "composeReference": "IconBadgeSolid.M.Pilled.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.pilled.accent", - "composeReference": "IconBadgeSolid.M.Pilled.Accent" + "composeReference": "IconBadgeSolid.M.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.pilled.negative", - "composeReference": "IconBadgeSolid.M.Pilled.Negative" + "composeReference": "IconBadgeSolid.M.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.pilled.positive", - "composeReference": "IconBadgeSolid.M.Pilled.Positive" + "composeReference": "IconBadgeSolid.M.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.pilled.warning", - "composeReference": "IconBadgeSolid.M.Pilled.Warning" + "composeReference": "IconBadgeSolid.M.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.pilled.dark", - "composeReference": "IconBadgeSolid.M.Pilled.Dark" + "composeReference": "IconBadgeSolid.M.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "m.pilled.light", - "composeReference": "IconBadgeSolid.M.Pilled.Light" + "composeReference": "IconBadgeSolid.M.Pilled.Light", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "s.default", - "composeReference": "IconBadgeSolid.S.Default" + "composeReference": "IconBadgeSolid.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.accent", - "composeReference": "IconBadgeSolid.S.Accent" + "composeReference": "IconBadgeSolid.S.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.negative", - "composeReference": "IconBadgeSolid.S.Negative" + "composeReference": "IconBadgeSolid.S.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.positive", - "composeReference": "IconBadgeSolid.S.Positive" + "composeReference": "IconBadgeSolid.S.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.warning", - "composeReference": "IconBadgeSolid.S.Warning" + "composeReference": "IconBadgeSolid.S.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.dark", - "composeReference": "IconBadgeSolid.S.Dark" + "composeReference": "IconBadgeSolid.S.Dark", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "s.light", - "composeReference": "IconBadgeSolid.S.Light" + "composeReference": "IconBadgeSolid.S.Light", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "s.pilled.default", - "composeReference": "IconBadgeSolid.S.Pilled.Default" + "composeReference": "IconBadgeSolid.S.Pilled.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.pilled.accent", - "composeReference": "IconBadgeSolid.S.Pilled.Accent" + "composeReference": "IconBadgeSolid.S.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.pilled.negative", - "composeReference": "IconBadgeSolid.S.Pilled.Negative" + "composeReference": "IconBadgeSolid.S.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.pilled.positive", - "composeReference": "IconBadgeSolid.S.Pilled.Positive" + "composeReference": "IconBadgeSolid.S.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.pilled.warning", - "composeReference": "IconBadgeSolid.S.Pilled.Warning" + "composeReference": "IconBadgeSolid.S.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.pilled.dark", - "composeReference": "IconBadgeSolid.S.Pilled.Dark" + "composeReference": "IconBadgeSolid.S.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "s.pilled.light", - "composeReference": "IconBadgeSolid.S.Pilled.Light" + "composeReference": "IconBadgeSolid.S.Pilled.Light", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "xs.default", - "composeReference": "IconBadgeSolid.Xs.Default" + "composeReference": "IconBadgeSolid.Xs.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.accent", - "composeReference": "IconBadgeSolid.Xs.Accent" + "composeReference": "IconBadgeSolid.Xs.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.negative", - "composeReference": "IconBadgeSolid.Xs.Negative" + "composeReference": "IconBadgeSolid.Xs.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.positive", - "composeReference": "IconBadgeSolid.Xs.Positive" + "composeReference": "IconBadgeSolid.Xs.Positive", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xs.warning", - "composeReference": "IconBadgeSolid.Xs.Warning" + "composeReference": "IconBadgeSolid.Xs.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.dark", - "composeReference": "IconBadgeSolid.Xs.Dark" + "composeReference": "IconBadgeSolid.Xs.Dark", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "xs.light", - "composeReference": "IconBadgeSolid.Xs.Light" + "composeReference": "IconBadgeSolid.Xs.Light", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "xs.pilled.default", - "composeReference": "IconBadgeSolid.Xs.Pilled.Default" + "composeReference": "IconBadgeSolid.Xs.Pilled.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.pilled.accent", - "composeReference": "IconBadgeSolid.Xs.Pilled.Accent" + "composeReference": "IconBadgeSolid.Xs.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.pilled.negative", - "composeReference": "IconBadgeSolid.Xs.Pilled.Negative" + "composeReference": "IconBadgeSolid.Xs.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.pilled.positive", - "composeReference": "IconBadgeSolid.Xs.Pilled.Positive" + "composeReference": "IconBadgeSolid.Xs.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xs.pilled.warning", - "composeReference": "IconBadgeSolid.Xs.Pilled.Warning" + "composeReference": "IconBadgeSolid.Xs.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.pilled.dark", - "composeReference": "IconBadgeSolid.Xs.Pilled.Dark" + "composeReference": "IconBadgeSolid.Xs.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "xs.pilled.light", - "composeReference": "IconBadgeSolid.Xs.Pilled.Light" + "composeReference": "IconBadgeSolid.Xs.Pilled.Light", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] } ] }, @@ -1211,230 +5458,1040 @@ "key": "icon-badge", "coreName": "IconBadge", "styleName": "IconBadgeTransparent", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s", + "xs" + ], + "defaultValue": "l" + }, + { + "name": "shape", + "values": [ + "default", + "pilled" + ], + "defaultValue": "default" + }, + { + "name": "view", + "values": [ + "default", + "accent", + "negative", + "positive", + "warning", + "dark", + "light" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.iconbadge", + "stylesClassName": "IconBadgeStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.iconbadge.IconBadgeStyles", + "receiverClassName": "IconBadgeStyles.Transparent", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.iconbadge.IconBadgeStyles.Transparent", + "returnTypeName": "BadgeStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.BadgeStyle", + "modifyReceiverTypeName": "IconBadgeStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.IconBadgeStyleBuilder", + "holderName": "Transparent", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "IconBadgeTransparentSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.iconbadge.IconBadgeTransparentSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + } + ] + }, + { + "name": "shape", + "type": "enum", + "required": false, + "typeName": "IconBadgeTransparentShape", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.iconbadge.IconBadgeTransparentShape", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "pilled", + "codeName": "Pilled" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "IconBadgeTransparentView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.iconbadge.IconBadgeTransparentView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "accent", + "codeName": "Accent" + }, + { + "value": "negative", + "codeName": "Negative" + }, + { + "value": "positive", + "codeName": "Positive" + }, + { + "value": "warning", + "codeName": "Warning" + }, + { + "value": "dark", + "codeName": "Dark" + }, + { + "value": "light", + "codeName": "Light" + } + ] + } + ] + }, "variations": [ { "name": "l.default", - "composeReference": "IconBadgeTransparent.L.Default" + "composeReference": "IconBadgeTransparent.L.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.accent", - "composeReference": "IconBadgeTransparent.L.Accent" + "composeReference": "IconBadgeTransparent.L.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.negative", - "composeReference": "IconBadgeTransparent.L.Negative" + "composeReference": "IconBadgeTransparent.L.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.positive", - "composeReference": "IconBadgeTransparent.L.Positive" + "composeReference": "IconBadgeTransparent.L.Positive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "l.warning", - "composeReference": "IconBadgeTransparent.L.Warning" + "composeReference": "IconBadgeTransparent.L.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.dark", - "composeReference": "IconBadgeTransparent.L.Dark" + "composeReference": "IconBadgeTransparent.L.Dark", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "l.light", - "composeReference": "IconBadgeTransparent.L.Light" + "composeReference": "IconBadgeTransparent.L.Light", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "l.pilled.default", - "composeReference": "IconBadgeTransparent.L.Pilled.Default" + "composeReference": "IconBadgeTransparent.L.Pilled.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.pilled.accent", - "composeReference": "IconBadgeTransparent.L.Pilled.Accent" + "composeReference": "IconBadgeTransparent.L.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.pilled.negative", - "composeReference": "IconBadgeTransparent.L.Pilled.Negative" + "composeReference": "IconBadgeTransparent.L.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.pilled.positive", - "composeReference": "IconBadgeTransparent.L.Pilled.Positive" + "composeReference": "IconBadgeTransparent.L.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "l.pilled.warning", - "composeReference": "IconBadgeTransparent.L.Pilled.Warning" + "composeReference": "IconBadgeTransparent.L.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.pilled.dark", - "composeReference": "IconBadgeTransparent.L.Pilled.Dark" + "composeReference": "IconBadgeTransparent.L.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "l.pilled.light", - "composeReference": "IconBadgeTransparent.L.Pilled.Light" + "composeReference": "IconBadgeTransparent.L.Pilled.Light", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "m.default", - "composeReference": "IconBadgeTransparent.M.Default" + "composeReference": "IconBadgeTransparent.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.accent", - "composeReference": "IconBadgeTransparent.M.Accent" + "composeReference": "IconBadgeTransparent.M.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.negative", - "composeReference": "IconBadgeTransparent.M.Negative" + "composeReference": "IconBadgeTransparent.M.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.positive", - "composeReference": "IconBadgeTransparent.M.Positive" + "composeReference": "IconBadgeTransparent.M.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.warning", - "composeReference": "IconBadgeTransparent.M.Warning" + "composeReference": "IconBadgeTransparent.M.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.dark", - "composeReference": "IconBadgeTransparent.M.Dark" + "composeReference": "IconBadgeTransparent.M.Dark", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "m.light", - "composeReference": "IconBadgeTransparent.M.Light" + "composeReference": "IconBadgeTransparent.M.Light", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "m.pilled.default", - "composeReference": "IconBadgeTransparent.M.Pilled.Default" + "composeReference": "IconBadgeTransparent.M.Pilled.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.pilled.accent", - "composeReference": "IconBadgeTransparent.M.Pilled.Accent" + "composeReference": "IconBadgeTransparent.M.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.pilled.negative", - "composeReference": "IconBadgeTransparent.M.Pilled.Negative" + "composeReference": "IconBadgeTransparent.M.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.pilled.positive", - "composeReference": "IconBadgeTransparent.M.Pilled.Positive" + "composeReference": "IconBadgeTransparent.M.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.pilled.warning", - "composeReference": "IconBadgeTransparent.M.Pilled.Warning" + "composeReference": "IconBadgeTransparent.M.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.pilled.dark", - "composeReference": "IconBadgeTransparent.M.Pilled.Dark" + "composeReference": "IconBadgeTransparent.M.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "m.pilled.light", - "composeReference": "IconBadgeTransparent.M.Pilled.Light" + "composeReference": "IconBadgeTransparent.M.Pilled.Light", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "s.default", - "composeReference": "IconBadgeTransparent.S.Default" + "composeReference": "IconBadgeTransparent.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.accent", - "composeReference": "IconBadgeTransparent.S.Accent" + "composeReference": "IconBadgeTransparent.S.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.negative", - "composeReference": "IconBadgeTransparent.S.Negative" + "composeReference": "IconBadgeTransparent.S.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.positive", - "composeReference": "IconBadgeTransparent.S.Positive" + "composeReference": "IconBadgeTransparent.S.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.warning", - "composeReference": "IconBadgeTransparent.S.Warning" + "composeReference": "IconBadgeTransparent.S.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.dark", - "composeReference": "IconBadgeTransparent.S.Dark" + "composeReference": "IconBadgeTransparent.S.Dark", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "s.light", - "composeReference": "IconBadgeTransparent.S.Light" + "composeReference": "IconBadgeTransparent.S.Light", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "s.pilled.default", - "composeReference": "IconBadgeTransparent.S.Pilled.Default" + "composeReference": "IconBadgeTransparent.S.Pilled.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.pilled.accent", - "composeReference": "IconBadgeTransparent.S.Pilled.Accent" + "composeReference": "IconBadgeTransparent.S.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.pilled.negative", - "composeReference": "IconBadgeTransparent.S.Pilled.Negative" + "composeReference": "IconBadgeTransparent.S.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.pilled.positive", - "composeReference": "IconBadgeTransparent.S.Pilled.Positive" + "composeReference": "IconBadgeTransparent.S.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.pilled.warning", - "composeReference": "IconBadgeTransparent.S.Pilled.Warning" + "composeReference": "IconBadgeTransparent.S.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.pilled.dark", - "composeReference": "IconBadgeTransparent.S.Pilled.Dark" + "composeReference": "IconBadgeTransparent.S.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "s.pilled.light", - "composeReference": "IconBadgeTransparent.S.Pilled.Light" + "composeReference": "IconBadgeTransparent.S.Pilled.Light", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "xs.default", - "composeReference": "IconBadgeTransparent.Xs.Default" + "composeReference": "IconBadgeTransparent.Xs.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.accent", - "composeReference": "IconBadgeTransparent.Xs.Accent" + "composeReference": "IconBadgeTransparent.Xs.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.negative", - "composeReference": "IconBadgeTransparent.Xs.Negative" + "composeReference": "IconBadgeTransparent.Xs.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.positive", - "composeReference": "IconBadgeTransparent.Xs.Positive" + "composeReference": "IconBadgeTransparent.Xs.Positive", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xs.warning", - "composeReference": "IconBadgeTransparent.Xs.Warning" + "composeReference": "IconBadgeTransparent.Xs.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.dark", - "composeReference": "IconBadgeTransparent.Xs.Dark" + "composeReference": "IconBadgeTransparent.Xs.Dark", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "xs.light", - "composeReference": "IconBadgeTransparent.Xs.Light" + "composeReference": "IconBadgeTransparent.Xs.Light", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "light" + } + ] }, { "name": "xs.pilled.default", - "composeReference": "IconBadgeTransparent.Xs.Pilled.Default" + "composeReference": "IconBadgeTransparent.Xs.Pilled.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.pilled.accent", - "composeReference": "IconBadgeTransparent.Xs.Pilled.Accent" + "composeReference": "IconBadgeTransparent.Xs.Pilled.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.pilled.negative", - "composeReference": "IconBadgeTransparent.Xs.Pilled.Negative" + "composeReference": "IconBadgeTransparent.Xs.Pilled.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.pilled.positive", - "composeReference": "IconBadgeTransparent.Xs.Pilled.Positive" + "composeReference": "IconBadgeTransparent.Xs.Pilled.Positive", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xs.pilled.warning", - "composeReference": "IconBadgeTransparent.Xs.Pilled.Warning" + "composeReference": "IconBadgeTransparent.Xs.Pilled.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.pilled.dark", - "composeReference": "IconBadgeTransparent.Xs.Pilled.Dark" + "composeReference": "IconBadgeTransparent.Xs.Pilled.Dark", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "xs.pilled.light", - "composeReference": "IconBadgeTransparent.Xs.Pilled.Light" + "composeReference": "IconBadgeTransparent.Xs.Pilled.Light", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "light" + } + ] } ] }, @@ -1442,30 +6499,168 @@ "key": "check-box", "coreName": "CheckBox", "styleName": "CheckBox", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s" + ], + "defaultValue": "l" + }, + { + "name": "view", + "values": [ + "default", + "negative" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.checkbox", + "stylesClassName": "CheckBoxStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.checkbox.CheckBoxStyles", + "receiverClassName": "CheckBoxStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.checkbox.CheckBoxStyles.Companion", + "returnTypeName": "CheckBoxStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.CheckBoxStyle", + "modifyReceiverTypeName": "CheckBoxStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.CheckBoxStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "CheckBoxSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.checkbox.CheckBoxSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "CheckBoxView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.checkbox.CheckBoxView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "negative", + "codeName": "Negative" + } + ] + } + ] + }, "variations": [ { "name": "l.default", - "composeReference": "CheckBox.L.Default" + "composeReference": "CheckBox.L.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.negative", - "composeReference": "CheckBox.L.Negative" + "composeReference": "CheckBox.L.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.default", - "composeReference": "CheckBox.M.Default" + "composeReference": "CheckBox.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.negative", - "composeReference": "CheckBox.M.Negative" + "composeReference": "CheckBox.M.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.default", - "composeReference": "CheckBox.S.Default" + "composeReference": "CheckBox.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.negative", - "composeReference": "CheckBox.S.Negative" + "composeReference": "CheckBox.S.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "negative" + } + ] } ] }, @@ -1473,18 +6668,85 @@ "key": "check-box-group", "coreName": "CheckBoxGroup", "styleName": "CheckBoxGroup", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s" + ], + "defaultValue": "l" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.checkboxgroup", + "stylesClassName": "CheckBoxGroupStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.checkboxgroup.CheckBoxGroupStyles", + "receiverClassName": "CheckBoxGroupStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.checkboxgroup.CheckBoxGroupStyles.Companion", + "returnTypeName": "CheckBoxGroupStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.CheckBoxGroupStyle", + "modifyReceiverTypeName": "CheckBoxGroupStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.CheckBoxGroupStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "CheckBoxGroupSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.checkboxgroup.CheckBoxGroupSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + } + ] + } + ] + }, "variations": [ { "name": "l", - "composeReference": "CheckBoxGroup.L" + "composeReference": "CheckBoxGroup.L", + "props": [ + { + "name": "size", + "value": "l" + } + ] }, { "name": "m", - "composeReference": "CheckBoxGroup.M" + "composeReference": "CheckBoxGroup.M", + "props": [ + { + "name": "size", + "value": "m" + } + ] }, { "name": "s", - "composeReference": "CheckBoxGroup.S" + "composeReference": "CheckBoxGroup.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] } ] }, @@ -1492,18 +6754,85 @@ "key": "radio-box", "coreName": "RadioBox", "styleName": "RadioBox", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s" + ], + "defaultValue": "l" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.radiobox", + "stylesClassName": "RadioBoxStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.radiobox.RadioBoxStyles", + "receiverClassName": "RadioBoxStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.radiobox.RadioBoxStyles.Companion", + "returnTypeName": "RadioBoxStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.RadioBoxStyle", + "modifyReceiverTypeName": "RadioBoxStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.RadioBoxStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "RadioBoxSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.radiobox.RadioBoxSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + } + ] + } + ] + }, "variations": [ { "name": "l", - "composeReference": "RadioBox.L" + "composeReference": "RadioBox.L", + "props": [ + { + "name": "size", + "value": "l" + } + ] }, { "name": "m", - "composeReference": "RadioBox.M" + "composeReference": "RadioBox.M", + "props": [ + { + "name": "size", + "value": "m" + } + ] }, { "name": "s", - "composeReference": "RadioBox.S" + "composeReference": "RadioBox.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] } ] }, @@ -1511,14 +6840,70 @@ "key": "radio-box-group", "coreName": "RadioBoxGroup", "styleName": "RadioBoxGroup", + "props": [ + { + "name": "size", + "values": [ + "m", + "s" + ], + "defaultValue": "m" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.radioboxgroup", + "stylesClassName": "RadioBoxGroupStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.radioboxgroup.RadioBoxGroupStyles", + "receiverClassName": "RadioBoxGroupStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.radioboxgroup.RadioBoxGroupStyles.Companion", + "returnTypeName": "RadioBoxGroupStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.RadioBoxGroupStyle", + "modifyReceiverTypeName": "RadioBoxGroupStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.RadioBoxGroupStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "RadioBoxGroupSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.radioboxgroup.RadioBoxGroupSize", + "defaultValue": { + "value": "m", + "codeName": "M" + }, + "values": [ + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + } + ] + } + ] + }, "variations": [ { "name": "m", - "composeReference": "RadioBoxGroup.M" + "composeReference": "RadioBoxGroup.M", + "props": [ + { + "name": "size", + "value": "m" + } + ] }, { "name": "s", - "composeReference": "RadioBoxGroup.S" + "composeReference": "RadioBoxGroup.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] } ] }, @@ -1526,30 +6911,168 @@ "key": "switch", "coreName": "Switch", "styleName": "Switch", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s" + ], + "defaultValue": "l" + }, + { + "name": "toggle-size", + "values": [ + "l", + "s" + ], + "defaultValue": "l" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.switcher", + "stylesClassName": "SwitchStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.switcher.SwitchStyles", + "receiverClassName": "SwitchStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.switcher.SwitchStyles.Companion", + "returnTypeName": "SwitchStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.SwitchStyle", + "modifyReceiverTypeName": "SwitchStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.SwitchStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "SwitchSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.switcher.SwitchSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + } + ] + }, + { + "name": "toggleSize", + "type": "enum", + "required": false, + "typeName": "SwitchToggleSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.switcher.SwitchToggleSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "s", + "codeName": "S" + } + ] + } + ] + }, "variations": [ { "name": "l", - "composeReference": "Switch.L" + "composeReference": "Switch.L", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "toggle-size", + "value": "l" + } + ] }, { "name": "l.toggle-s", - "composeReference": "Switch.L.ToggleS" + "composeReference": "Switch.L.ToggleS", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "toggle-size", + "value": "s" + } + ] }, { "name": "m", - "composeReference": "Switch.M" + "composeReference": "Switch.M", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "toggle-size", + "value": "l" + } + ] }, { "name": "m.toggle-s", - "composeReference": "Switch.M.ToggleS" + "composeReference": "Switch.M.ToggleS", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "toggle-size", + "value": "s" + } + ] }, { "name": "s", - "composeReference": "Switch.S" + "composeReference": "Switch.S", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "toggle-size", + "value": "l" + } + ] }, { "name": "s.toggle-s", - "composeReference": "Switch.S.ToggleS" + "composeReference": "Switch.S.ToggleS", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "toggle-size", + "value": "s" + } + ] } ] }, @@ -1557,6 +7080,17 @@ "key": "tab-bar", "coreName": "TabBar", "styleName": "TabBar", + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.tabbar", + "stylesClassName": "TabBarStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.tabbar.TabBarStyles", + "receiverClassName": "TabBarStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.tabbar.TabBarStyles.Companion", + "returnTypeName": "TabBarStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.TabBarStyle", + "modifyReceiverTypeName": "TabBarStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.TabBarStyleBuilder" + }, "variations": [ { "name": "Default", @@ -1568,6 +7102,17 @@ "key": "tab-bar-item", "coreName": "TabBarItem", "styleName": "TabBarItem", + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.tabbaritem", + "stylesClassName": "TabBarItemStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.tabbaritem.TabBarItemStyles", + "receiverClassName": "TabBarItemStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.tabbaritem.TabBarItemStyles.Companion", + "returnTypeName": "TabBarItemStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.TabBarItemStyle", + "modifyReceiverTypeName": "TabBarItemStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.TabBarItemStyleBuilder" + }, "variations": [ { "name": "Default", @@ -1579,6 +7124,18 @@ "key": "navigation-bar", "coreName": "NavigationBar", "styleName": "NavigationBarMainPage", + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.navigationbar", + "stylesClassName": "NavigationBarStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.navigationbar.NavigationBarStyles", + "receiverClassName": "NavigationBarStyles.MainPage", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.navigationbar.NavigationBarStyles.MainPage", + "returnTypeName": "NavigationBarStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.NavigationBarStyle", + "modifyReceiverTypeName": "NavigationBarStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.NavigationBarStyleBuilder", + "holderName": "MainPage" + }, "variations": [ { "name": "Default", @@ -1590,6 +7147,18 @@ "key": "navigation-bar", "coreName": "NavigationBar", "styleName": "NavigationBarInternalPage", + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.navigationbar", + "stylesClassName": "NavigationBarStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.navigationbar.NavigationBarStyles", + "receiverClassName": "NavigationBarStyles.InternalPage", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.navigationbar.NavigationBarStyles.InternalPage", + "returnTypeName": "NavigationBarStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.NavigationBarStyle", + "modifyReceiverTypeName": "NavigationBarStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.NavigationBarStyleBuilder", + "holderName": "InternalPage" + }, "variations": [ { "name": "Default", @@ -1601,6 +7170,18 @@ "key": "collapsing-navigation-bar", "coreName": "CollapsingNavigationBar", "styleName": "CollapsingNavigationBarMainPage", + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.collapsingnavigationbar", + "stylesClassName": "CollapsingNavigationBarStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.collapsingnavigationbar.CollapsingNavigationBarStyles", + "receiverClassName": "CollapsingNavigationBarStyles.MainPage", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.collapsingnavigationbar.CollapsingNavigationBarStyles.MainPage", + "returnTypeName": "CollapsingNavigationBarStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.CollapsingNavigationBarStyle", + "modifyReceiverTypeName": "CollapsingNavigationBarStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.CollapsingNavigationBarStyleBuilder", + "holderName": "MainPage" + }, "variations": [ { "name": "Default", @@ -1612,6 +7193,18 @@ "key": "collapsing-navigation-bar", "coreName": "CollapsingNavigationBar", "styleName": "CollapsingNavigationBarInternalPage", + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.collapsingnavigationbar", + "stylesClassName": "CollapsingNavigationBarStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.collapsingnavigationbar.CollapsingNavigationBarStyles", + "receiverClassName": "CollapsingNavigationBarStyles.InternalPage", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.collapsingnavigationbar.CollapsingNavigationBarStyles.InternalPage", + "returnTypeName": "CollapsingNavigationBarStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.CollapsingNavigationBarStyle", + "modifyReceiverTypeName": "CollapsingNavigationBarStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.CollapsingNavigationBarStyleBuilder", + "holderName": "InternalPage" + }, "variations": [ { "name": "Default", @@ -1623,90 +7216,393 @@ "key": "basic-button", "coreName": "BasicButton", "styleName": "BasicButton", + "props": [ + { + "name": "size", + "values": [ + "m", + "s", + "xs" + ] + }, + { + "name": "view", + "values": [ + "default", + "secondary", + "dark", + "negative", + "warning", + "accent", + "clear" + ] + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.basicbutton", + "stylesClassName": "BasicButtonStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.basicbutton.BasicButtonStyles", + "receiverClassName": "BasicButtonStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.basicbutton.BasicButtonStyles.Companion", + "returnTypeName": "ButtonStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ButtonStyle", + "modifyReceiverTypeName": "BasicButtonStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.BasicButtonStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": true, + "typeName": "BasicButtonSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.basicbutton.BasicButtonSize", + "values": [ + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": true, + "typeName": "BasicButtonView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.basicbutton.BasicButtonView", + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "secondary", + "codeName": "Secondary" + }, + { + "value": "dark", + "codeName": "Dark" + }, + { + "value": "negative", + "codeName": "Negative" + }, + { + "value": "warning", + "codeName": "Warning" + }, + { + "value": "accent", + "codeName": "Accent" + }, + { + "value": "clear", + "codeName": "Clear" + } + ] + } + ] + }, "variations": [ { "name": "m.default", - "composeReference": "BasicButton.M.Default" + "composeReference": "BasicButton.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.secondary", - "composeReference": "BasicButton.M.Secondary" + "composeReference": "BasicButton.M.Secondary", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "m.dark", - "composeReference": "BasicButton.M.Dark" + "composeReference": "BasicButton.M.Dark", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "m.negative", - "composeReference": "BasicButton.M.Negative" + "composeReference": "BasicButton.M.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.warning", - "composeReference": "BasicButton.M.Warning" + "composeReference": "BasicButton.M.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.accent", - "composeReference": "BasicButton.M.Accent" + "composeReference": "BasicButton.M.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.clear", - "composeReference": "BasicButton.M.Clear" + "composeReference": "BasicButton.M.Clear", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "clear" + } + ] }, { "name": "s.default", - "composeReference": "BasicButton.S.Default" + "composeReference": "BasicButton.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.secondary", - "composeReference": "BasicButton.S.Secondary" + "composeReference": "BasicButton.S.Secondary", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "s.dark", - "composeReference": "BasicButton.S.Dark" + "composeReference": "BasicButton.S.Dark", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "s.negative", - "composeReference": "BasicButton.S.Negative" + "composeReference": "BasicButton.S.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.warning", - "composeReference": "BasicButton.S.Warning" + "composeReference": "BasicButton.S.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.accent", - "composeReference": "BasicButton.S.Accent" + "composeReference": "BasicButton.S.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.clear", - "composeReference": "BasicButton.S.Clear" + "composeReference": "BasicButton.S.Clear", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "clear" + } + ] }, { "name": "xs.default", - "composeReference": "BasicButton.Xs.Default" + "composeReference": "BasicButton.Xs.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.secondary", - "composeReference": "BasicButton.Xs.Secondary" + "composeReference": "BasicButton.Xs.Secondary", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xs.dark", - "composeReference": "BasicButton.Xs.Dark" + "composeReference": "BasicButton.Xs.Dark", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "xs.negative", - "composeReference": "BasicButton.Xs.Negative" + "composeReference": "BasicButton.Xs.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.warning", - "composeReference": "BasicButton.Xs.Warning" + "composeReference": "BasicButton.Xs.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.accent", - "composeReference": "BasicButton.Xs.Accent" + "composeReference": "BasicButton.Xs.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.clear", - "composeReference": "BasicButton.Xs.Clear" + "composeReference": "BasicButton.Xs.Clear", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "clear" + } + ] } ] }, @@ -1714,118 +7610,506 @@ "key": "icon-button", "coreName": "IconButton", "styleName": "IconButton", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s", + "xs" + ], + "defaultValue": "l" + }, + { + "name": "view", + "values": [ + "default", + "secondary", + "dark", + "negative", + "warning", + "accent", + "clear" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.iconbutton", + "stylesClassName": "IconButtonStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.iconbutton.IconButtonStyles", + "receiverClassName": "IconButtonStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.iconbutton.IconButtonStyles.Companion", + "returnTypeName": "ButtonStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ButtonStyle", + "modifyReceiverTypeName": "IconButtonStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.IconButtonStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "IconButtonSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.iconbutton.IconButtonSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "IconButtonView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.iconbutton.IconButtonView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "secondary", + "codeName": "Secondary" + }, + { + "value": "dark", + "codeName": "Dark" + }, + { + "value": "negative", + "codeName": "Negative" + }, + { + "value": "warning", + "codeName": "Warning" + }, + { + "value": "accent", + "codeName": "Accent" + }, + { + "value": "clear", + "codeName": "Clear" + } + ] + } + ] + }, "variations": [ { "name": "l.default", - "composeReference": "IconButton.L.Default" + "composeReference": "IconButton.L.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.secondary", - "composeReference": "IconButton.L.Secondary" + "composeReference": "IconButton.L.Secondary", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "l.dark", - "composeReference": "IconButton.L.Dark" + "composeReference": "IconButton.L.Dark", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "l.negative", - "composeReference": "IconButton.L.Negative" + "composeReference": "IconButton.L.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.warning", - "composeReference": "IconButton.L.Warning" + "composeReference": "IconButton.L.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.accent", - "composeReference": "IconButton.L.Accent" + "composeReference": "IconButton.L.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.clear", - "composeReference": "IconButton.L.Clear" + "composeReference": "IconButton.L.Clear", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "clear" + } + ] }, { "name": "m.default", - "composeReference": "IconButton.M.Default" + "composeReference": "IconButton.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.secondary", - "composeReference": "IconButton.M.Secondary" + "composeReference": "IconButton.M.Secondary", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "m.dark", - "composeReference": "IconButton.M.Dark" + "composeReference": "IconButton.M.Dark", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "m.negative", - "composeReference": "IconButton.M.Negative" + "composeReference": "IconButton.M.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.warning", - "composeReference": "IconButton.M.Warning" + "composeReference": "IconButton.M.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.accent", - "composeReference": "IconButton.M.Accent" + "composeReference": "IconButton.M.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.clear", - "composeReference": "IconButton.M.Clear" + "composeReference": "IconButton.M.Clear", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "clear" + } + ] }, { "name": "s.default", - "composeReference": "IconButton.S.Default" + "composeReference": "IconButton.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.secondary", - "composeReference": "IconButton.S.Secondary" + "composeReference": "IconButton.S.Secondary", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "s.dark", - "composeReference": "IconButton.S.Dark" + "composeReference": "IconButton.S.Dark", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "s.negative", - "composeReference": "IconButton.S.Negative" + "composeReference": "IconButton.S.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.warning", - "composeReference": "IconButton.S.Warning" + "composeReference": "IconButton.S.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.accent", - "composeReference": "IconButton.S.Accent" + "composeReference": "IconButton.S.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.clear", - "composeReference": "IconButton.S.Clear" + "composeReference": "IconButton.S.Clear", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "clear" + } + ] }, { "name": "xs.default", - "composeReference": "IconButton.Xs.Default" + "composeReference": "IconButton.Xs.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.secondary", - "composeReference": "IconButton.Xs.Secondary" + "composeReference": "IconButton.Xs.Secondary", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xs.dark", - "composeReference": "IconButton.Xs.Dark" + "composeReference": "IconButton.Xs.Dark", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "xs.negative", - "composeReference": "IconButton.Xs.Negative" + "composeReference": "IconButton.Xs.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.warning", - "composeReference": "IconButton.Xs.Warning" + "composeReference": "IconButton.Xs.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.accent", - "composeReference": "IconButton.Xs.Accent" + "composeReference": "IconButton.Xs.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.clear", - "composeReference": "IconButton.Xs.Clear" + "composeReference": "IconButton.Xs.Clear", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "clear" + } + ] } ] }, @@ -1833,126 +8117,599 @@ "key": "button-group", "coreName": "ButtonGroup", "styleName": "BasicButtonGroup", + "props": [ + { + "name": "size", + "values": [ + "xs", + "s", + "m" + ], + "defaultValue": "xs" + }, + { + "name": "gap", + "values": [ + "none", + "wide", + "dense" + ], + "defaultValue": "none" + }, + { + "name": "shape", + "values": [ + "default", + "segmented" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.buttongroup", + "stylesClassName": "ButtonGroupStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupStyles", + "receiverClassName": "ButtonGroupStyles.BasicButtonGroup", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupStyles.BasicButtonGroup", + "returnTypeName": "ButtonGroupStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ButtonGroupStyle", + "modifyReceiverTypeName": "ButtonGroupStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ButtonGroupStyleBuilder", + "holderName": "BasicButtonGroup", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "ButtonGroupBasicButtonGroupSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupBasicButtonGroupSize", + "defaultValue": { + "value": "xs", + "codeName": "Xs" + }, + "values": [ + { + "value": "xs", + "codeName": "Xs" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "m", + "codeName": "M" + } + ] + }, + { + "name": "gap", + "type": "enum", + "required": false, + "typeName": "ButtonGroupBasicButtonGroupGap", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupBasicButtonGroupGap", + "defaultValue": { + "value": "none", + "codeName": "None" + }, + "values": [ + { + "value": "none", + "codeName": "None" + }, + { + "value": "wide", + "codeName": "Wide" + }, + { + "value": "dense", + "codeName": "Dense" + } + ] + }, + { + "name": "shape", + "type": "enum", + "required": false, + "typeName": "ButtonGroupBasicButtonGroupShape", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupBasicButtonGroupShape", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "segmented", + "codeName": "Segmented" + } + ] + } + ] + }, "variations": [ { "name": "xs", - "composeReference": "BasicButtonGroup.Xs" + "composeReference": "BasicButtonGroup.Xs", + "props": [ + { + "name": "size", + "value": "xs" + } + ] }, { "name": "xs.wide", - "composeReference": "BasicButtonGroup.Xs.Wide" + "composeReference": "BasicButtonGroup.Xs.Wide", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "wide" + } + ] }, { "name": "xs.wide.default", - "composeReference": "BasicButtonGroup.Xs.Wide.Default" + "composeReference": "BasicButtonGroup.Xs.Wide.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "wide" + }, + { + "name": "shape", + "value": "default" + } + ] }, { "name": "xs.wide.segmented", - "composeReference": "BasicButtonGroup.Xs.Wide.Segmented" + "composeReference": "BasicButtonGroup.Xs.Wide.Segmented", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "wide" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "xs.dense", - "composeReference": "BasicButtonGroup.Xs.Dense" + "composeReference": "BasicButtonGroup.Xs.Dense", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "dense" + } + ] }, { "name": "xs.dense.default", - "composeReference": "BasicButtonGroup.Xs.Dense.Default" + "composeReference": "BasicButtonGroup.Xs.Dense.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "dense" + }, + { + "name": "shape", + "value": "default" + } + ] }, { "name": "xs.dense.segmented", - "composeReference": "BasicButtonGroup.Xs.Dense.Segmented" + "composeReference": "BasicButtonGroup.Xs.Dense.Segmented", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "dense" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "xs.no-gap", - "composeReference": "BasicButtonGroup.Xs.NoGap" + "composeReference": "BasicButtonGroup.Xs.NoGap", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "none" + } + ] }, { "name": "xs.no-gap.default", - "composeReference": "BasicButtonGroup.Xs.NoGap.Default" + "composeReference": "BasicButtonGroup.Xs.NoGap.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "none" + }, + { + "name": "shape", + "value": "default" + } + ] }, { "name": "xs.no-gap.segmented", - "composeReference": "BasicButtonGroup.Xs.NoGap.Segmented" + "composeReference": "BasicButtonGroup.Xs.NoGap.Segmented", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "none" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "s", - "composeReference": "BasicButtonGroup.S" + "composeReference": "BasicButtonGroup.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] }, { "name": "s.wide", - "composeReference": "BasicButtonGroup.S.Wide" + "composeReference": "BasicButtonGroup.S.Wide", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "wide" + } + ] }, { "name": "s.wide.default", - "composeReference": "BasicButtonGroup.S.Wide.Default" + "composeReference": "BasicButtonGroup.S.Wide.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "wide" + }, + { + "name": "shape", + "value": "default" + } + ] }, { "name": "s.wide.segmented", - "composeReference": "BasicButtonGroup.S.Wide.Segmented" + "composeReference": "BasicButtonGroup.S.Wide.Segmented", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "wide" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "s.dense", - "composeReference": "BasicButtonGroup.S.Dense" + "composeReference": "BasicButtonGroup.S.Dense", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "dense" + } + ] }, { "name": "s.dense.default", - "composeReference": "BasicButtonGroup.S.Dense.Default" + "composeReference": "BasicButtonGroup.S.Dense.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "dense" + }, + { + "name": "shape", + "value": "default" + } + ] }, { "name": "s.dense.segmented", - "composeReference": "BasicButtonGroup.S.Dense.Segmented" + "composeReference": "BasicButtonGroup.S.Dense.Segmented", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "dense" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "s.no-gap", - "composeReference": "BasicButtonGroup.S.NoGap" + "composeReference": "BasicButtonGroup.S.NoGap", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "none" + } + ] }, { "name": "s.no-gap.default", - "composeReference": "BasicButtonGroup.S.NoGap.Default" + "composeReference": "BasicButtonGroup.S.NoGap.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "none" + }, + { + "name": "shape", + "value": "default" + } + ] }, { "name": "s.no-gap.segmented", - "composeReference": "BasicButtonGroup.S.NoGap.Segmented" + "composeReference": "BasicButtonGroup.S.NoGap.Segmented", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "none" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "m", - "composeReference": "BasicButtonGroup.M" + "composeReference": "BasicButtonGroup.M", + "props": [ + { + "name": "size", + "value": "m" + } + ] }, { "name": "m.wide", - "composeReference": "BasicButtonGroup.M.Wide" + "composeReference": "BasicButtonGroup.M.Wide", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "wide" + } + ] }, { "name": "m.wide.default", - "composeReference": "BasicButtonGroup.M.Wide.Default" + "composeReference": "BasicButtonGroup.M.Wide.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "wide" + }, + { + "name": "shape", + "value": "default" + } + ] }, { "name": "m.wide.segmented", - "composeReference": "BasicButtonGroup.M.Wide.Segmented" + "composeReference": "BasicButtonGroup.M.Wide.Segmented", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "wide" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "m.dense", - "composeReference": "BasicButtonGroup.M.Dense" + "composeReference": "BasicButtonGroup.M.Dense", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "dense" + } + ] }, { "name": "m.dense.default", - "composeReference": "BasicButtonGroup.M.Dense.Default" + "composeReference": "BasicButtonGroup.M.Dense.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "dense" + }, + { + "name": "shape", + "value": "default" + } + ] }, { "name": "m.dense.segmented", - "composeReference": "BasicButtonGroup.M.Dense.Segmented" + "composeReference": "BasicButtonGroup.M.Dense.Segmented", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "dense" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "m.no-gap", - "composeReference": "BasicButtonGroup.M.NoGap" + "composeReference": "BasicButtonGroup.M.NoGap", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "none" + } + ] }, { "name": "m.no-gap.default", - "composeReference": "BasicButtonGroup.M.NoGap.Default" + "composeReference": "BasicButtonGroup.M.NoGap.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "none" + }, + { + "name": "shape", + "value": "default" + } + ] }, { "name": "m.no-gap.segmented", - "composeReference": "BasicButtonGroup.M.NoGap.Segmented" + "composeReference": "BasicButtonGroup.M.NoGap.Segmented", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "none" + }, + { + "name": "shape", + "value": "segmented" + } + ] } ] }, @@ -1960,166 +8717,764 @@ "key": "button-group", "coreName": "ButtonGroup", "styleName": "IconButtonGroup", + "props": [ + { + "name": "size", + "values": [ + "xs", + "s", + "m", + "l" + ], + "defaultValue": "xs" + }, + { + "name": "gap", + "values": [ + "wide", + "dense", + "none" + ], + "defaultValue": "wide" + }, + { + "name": "shape", + "values": [ + "pilled", + "segmented" + ], + "defaultValue": "pilled" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.buttongroup", + "stylesClassName": "ButtonGroupStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupStyles", + "receiverClassName": "ButtonGroupStyles.IconButtonGroup", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupStyles.IconButtonGroup", + "returnTypeName": "ButtonGroupStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ButtonGroupStyle", + "modifyReceiverTypeName": "ButtonGroupStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ButtonGroupStyleBuilder", + "holderName": "IconButtonGroup", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "ButtonGroupIconButtonGroupSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupIconButtonGroupSize", + "defaultValue": { + "value": "xs", + "codeName": "Xs" + }, + "values": [ + { + "value": "xs", + "codeName": "Xs" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "l", + "codeName": "L" + } + ] + }, + { + "name": "gap", + "type": "enum", + "required": false, + "typeName": "ButtonGroupIconButtonGroupGap", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupIconButtonGroupGap", + "defaultValue": { + "value": "wide", + "codeName": "Wide" + }, + "values": [ + { + "value": "wide", + "codeName": "Wide" + }, + { + "value": "dense", + "codeName": "Dense" + }, + { + "value": "none", + "codeName": "None" + } + ] + }, + { + "name": "shape", + "type": "enum", + "required": false, + "typeName": "ButtonGroupIconButtonGroupShape", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupIconButtonGroupShape", + "defaultValue": { + "value": "pilled", + "codeName": "Pilled" + }, + "values": [ + { + "value": "pilled", + "codeName": "Pilled" + }, + { + "value": "segmented", + "codeName": "Segmented" + } + ] + } + ] + }, "variations": [ { "name": "xs", - "composeReference": "IconButtonGroup.Xs" + "composeReference": "IconButtonGroup.Xs", + "props": [ + { + "name": "size", + "value": "xs" + } + ] }, { "name": "xs.wide", - "composeReference": "IconButtonGroup.Xs.Wide" + "composeReference": "IconButtonGroup.Xs.Wide", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "wide" + } + ] }, { "name": "xs.wide.pilled", - "composeReference": "IconButtonGroup.Xs.Wide.Pilled" + "composeReference": "IconButtonGroup.Xs.Wide.Pilled", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "wide" + }, + { + "name": "shape", + "value": "pilled" + } + ] }, { "name": "xs.wide.segmented", - "composeReference": "IconButtonGroup.Xs.Wide.Segmented" + "composeReference": "IconButtonGroup.Xs.Wide.Segmented", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "wide" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "xs.dense", - "composeReference": "IconButtonGroup.Xs.Dense" + "composeReference": "IconButtonGroup.Xs.Dense", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "dense" + } + ] }, { "name": "xs.dense.pilled", - "composeReference": "IconButtonGroup.Xs.Dense.Pilled" + "composeReference": "IconButtonGroup.Xs.Dense.Pilled", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "dense" + }, + { + "name": "shape", + "value": "pilled" + } + ] }, { "name": "xs.dense.segmented", - "composeReference": "IconButtonGroup.Xs.Dense.Segmented" + "composeReference": "IconButtonGroup.Xs.Dense.Segmented", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "dense" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "xs.no-gap", - "composeReference": "IconButtonGroup.Xs.NoGap" + "composeReference": "IconButtonGroup.Xs.NoGap", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "none" + } + ] }, { "name": "xs.no-gap.pilled", - "composeReference": "IconButtonGroup.Xs.NoGap.Pilled" + "composeReference": "IconButtonGroup.Xs.NoGap.Pilled", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "none" + }, + { + "name": "shape", + "value": "pilled" + } + ] }, { "name": "xs.no-gap.segmented", - "composeReference": "IconButtonGroup.Xs.NoGap.Segmented" + "composeReference": "IconButtonGroup.Xs.NoGap.Segmented", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "gap", + "value": "none" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "s", - "composeReference": "IconButtonGroup.S" + "composeReference": "IconButtonGroup.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] }, { "name": "s.wide", - "composeReference": "IconButtonGroup.S.Wide" + "composeReference": "IconButtonGroup.S.Wide", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "wide" + } + ] }, { "name": "s.wide.pilled", - "composeReference": "IconButtonGroup.S.Wide.Pilled" + "composeReference": "IconButtonGroup.S.Wide.Pilled", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "wide" + }, + { + "name": "shape", + "value": "pilled" + } + ] }, { "name": "s.wide.segmented", - "composeReference": "IconButtonGroup.S.Wide.Segmented" + "composeReference": "IconButtonGroup.S.Wide.Segmented", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "wide" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "s.dense", - "composeReference": "IconButtonGroup.S.Dense" + "composeReference": "IconButtonGroup.S.Dense", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "dense" + } + ] }, { "name": "s.dense.pilled", - "composeReference": "IconButtonGroup.S.Dense.Pilled" + "composeReference": "IconButtonGroup.S.Dense.Pilled", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "dense" + }, + { + "name": "shape", + "value": "pilled" + } + ] }, { "name": "s.dense.segmented", - "composeReference": "IconButtonGroup.S.Dense.Segmented" + "composeReference": "IconButtonGroup.S.Dense.Segmented", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "dense" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "s.no-gap", - "composeReference": "IconButtonGroup.S.NoGap" + "composeReference": "IconButtonGroup.S.NoGap", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "none" + } + ] }, { "name": "s.no-gap.pilled", - "composeReference": "IconButtonGroup.S.NoGap.Pilled" + "composeReference": "IconButtonGroup.S.NoGap.Pilled", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "none" + }, + { + "name": "shape", + "value": "pilled" + } + ] }, { "name": "s.no-gap.segmented", - "composeReference": "IconButtonGroup.S.NoGap.Segmented" + "composeReference": "IconButtonGroup.S.NoGap.Segmented", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "gap", + "value": "none" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "m", - "composeReference": "IconButtonGroup.M" + "composeReference": "IconButtonGroup.M", + "props": [ + { + "name": "size", + "value": "m" + } + ] }, { "name": "m.wide", - "composeReference": "IconButtonGroup.M.Wide" + "composeReference": "IconButtonGroup.M.Wide", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "wide" + } + ] }, { "name": "m.wide.pilled", - "composeReference": "IconButtonGroup.M.Wide.Pilled" + "composeReference": "IconButtonGroup.M.Wide.Pilled", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "wide" + }, + { + "name": "shape", + "value": "pilled" + } + ] }, { "name": "m.wide.segmented", - "composeReference": "IconButtonGroup.M.Wide.Segmented" + "composeReference": "IconButtonGroup.M.Wide.Segmented", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "wide" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "m.dense", - "composeReference": "IconButtonGroup.M.Dense" + "composeReference": "IconButtonGroup.M.Dense", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "dense" + } + ] }, { "name": "m.dense.pilled", - "composeReference": "IconButtonGroup.M.Dense.Pilled" + "composeReference": "IconButtonGroup.M.Dense.Pilled", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "dense" + }, + { + "name": "shape", + "value": "pilled" + } + ] }, { "name": "m.dense.segmented", - "composeReference": "IconButtonGroup.M.Dense.Segmented" + "composeReference": "IconButtonGroup.M.Dense.Segmented", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "dense" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "m.no-gap", - "composeReference": "IconButtonGroup.M.NoGap" + "composeReference": "IconButtonGroup.M.NoGap", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "none" + } + ] }, { "name": "m.no-gap.pilled", - "composeReference": "IconButtonGroup.M.NoGap.Pilled" + "composeReference": "IconButtonGroup.M.NoGap.Pilled", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "none" + }, + { + "name": "shape", + "value": "pilled" + } + ] }, { "name": "m.no-gap.segmented", - "composeReference": "IconButtonGroup.M.NoGap.Segmented" + "composeReference": "IconButtonGroup.M.NoGap.Segmented", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "gap", + "value": "none" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "l", - "composeReference": "IconButtonGroup.L" + "composeReference": "IconButtonGroup.L", + "props": [ + { + "name": "size", + "value": "l" + } + ] }, { "name": "l.wide", - "composeReference": "IconButtonGroup.L.Wide" + "composeReference": "IconButtonGroup.L.Wide", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "gap", + "value": "wide" + } + ] }, { "name": "l.wide.pilled", - "composeReference": "IconButtonGroup.L.Wide.Pilled" + "composeReference": "IconButtonGroup.L.Wide.Pilled", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "gap", + "value": "wide" + }, + { + "name": "shape", + "value": "pilled" + } + ] }, { "name": "l.wide.segmented", - "composeReference": "IconButtonGroup.L.Wide.Segmented" + "composeReference": "IconButtonGroup.L.Wide.Segmented", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "gap", + "value": "wide" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "l.dense", - "composeReference": "IconButtonGroup.L.Dense" + "composeReference": "IconButtonGroup.L.Dense", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "gap", + "value": "dense" + } + ] }, { "name": "l.dense.pilled", - "composeReference": "IconButtonGroup.L.Dense.Pilled" + "composeReference": "IconButtonGroup.L.Dense.Pilled", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "gap", + "value": "dense" + }, + { + "name": "shape", + "value": "pilled" + } + ] }, { "name": "l.dense.segmented", - "composeReference": "IconButtonGroup.L.Dense.Segmented" + "composeReference": "IconButtonGroup.L.Dense.Segmented", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "gap", + "value": "dense" + }, + { + "name": "shape", + "value": "segmented" + } + ] }, { "name": "l.no-gap", - "composeReference": "IconButtonGroup.L.NoGap" + "composeReference": "IconButtonGroup.L.NoGap", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "gap", + "value": "none" + } + ] }, { "name": "l.no-gap.pilled", - "composeReference": "IconButtonGroup.L.NoGap.Pilled" + "composeReference": "IconButtonGroup.L.NoGap.Pilled", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "gap", + "value": "none" + }, + { + "name": "shape", + "value": "pilled" + } + ] }, { "name": "l.no-gap.segmented", - "composeReference": "IconButtonGroup.L.NoGap.Segmented" + "composeReference": "IconButtonGroup.L.NoGap.Segmented", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "gap", + "value": "none" + }, + { + "name": "shape", + "value": "segmented" + } + ] } ] }, @@ -2127,38 +9482,181 @@ "key": "card", "coreName": "Card", "styleName": "Card", + "props": [ + { + "name": "size", + "values": [ + "xl", + "l", + "m", + "s" + ], + "defaultValue": "xl" + }, + { + "name": "has-inner-paddings", + "defaultValue": "false" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.card", + "stylesClassName": "CardStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.card.CardStyles", + "receiverClassName": "CardStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.card.CardStyles.Companion", + "returnTypeName": "CardStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.CardStyle", + "modifyReceiverTypeName": "CardStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.CardStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "CardSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.card.CardSize", + "defaultValue": { + "value": "xl", + "codeName": "Xl" + }, + "values": [ + { + "value": "xl", + "codeName": "Xl" + }, + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + } + ] + }, + { + "name": "hasInnerPaddings", + "type": "boolean", + "required": false, + "typeName": "Boolean", + "typeQualifiedName": "kotlin.Boolean", + "defaultValue": { + "value": "false", + "codeName": "false" + }, + "values": [ + { + "value": "true", + "codeName": "true" + }, + { + "value": "false", + "codeName": "false" + } + ] + } + ] + }, "variations": [ { "name": "xl", - "composeReference": "Card.Xl" + "composeReference": "Card.Xl", + "props": [ + { + "name": "size", + "value": "xl" + } + ] }, { "name": "xl.has-inner-paddings", - "composeReference": "Card.Xl.HasInnerPaddings" + "composeReference": "Card.Xl.HasInnerPaddings", + "props": [ + { + "name": "size", + "value": "xl" + }, + { + "name": "has-inner-paddings", + "value": "true" + } + ] }, { "name": "l", - "composeReference": "Card.L" + "composeReference": "Card.L", + "props": [ + { + "name": "size", + "value": "l" + } + ] }, { "name": "l.has-inner-paddings", - "composeReference": "Card.L.HasInnerPaddings" + "composeReference": "Card.L.HasInnerPaddings", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "has-inner-paddings", + "value": "true" + } + ] }, { "name": "m", - "composeReference": "Card.M" + "composeReference": "Card.M", + "props": [ + { + "name": "size", + "value": "m" + } + ] }, { "name": "m.has-inner-paddings", - "composeReference": "Card.M.HasInnerPaddings" + "composeReference": "Card.M.HasInnerPaddings", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "has-inner-paddings", + "value": "true" + } + ] }, { "name": "s", - "composeReference": "Card.S" + "composeReference": "Card.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] }, { "name": "s.has-inner-paddings", - "composeReference": "Card.S.HasInnerPaddings" + "composeReference": "Card.S.HasInnerPaddings", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "has-inner-paddings", + "value": "true" + } + ] } ] }, @@ -2166,22 +9664,100 @@ "key": "cell", "coreName": "Cell", "styleName": "Cell", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s", + "xs" + ], + "defaultValue": "l" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.cell", + "stylesClassName": "CellStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.cell.CellStyles", + "receiverClassName": "CellStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.cell.CellStyles.Companion", + "returnTypeName": "CellStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.CellStyle", + "modifyReceiverTypeName": "CellStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.CellStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "CellSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.cell.CellSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + } + ] + } + ] + }, "variations": [ { "name": "l", - "composeReference": "Cell.L" + "composeReference": "Cell.L", + "props": [ + { + "name": "size", + "value": "l" + } + ] }, { "name": "m", - "composeReference": "Cell.M" + "composeReference": "Cell.M", + "props": [ + { + "name": "size", + "value": "m" + } + ] }, { "name": "s", - "composeReference": "Cell.S" + "composeReference": "Cell.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] }, { "name": "xs", - "composeReference": "Cell.Xs" + "composeReference": "Cell.Xs", + "props": [ + { + "name": "size", + "value": "xs" + } + ] } ] }, @@ -2189,230 +9765,918 @@ "key": "circular-progress-bar", "coreName": "CircularProgressBar", "styleName": "CircularProgressBar", + "props": [ + { + "name": "size", + "values": [ + "xxl", + "xl", + "l", + "m", + "s", + "xs", + "xxs" + ], + "defaultValue": "xxl" + }, + { + "name": "view", + "values": [ + "default", + "secondary", + "accent", + "gradient", + "info", + "negative", + "positive", + "warning" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.circularprogressbar", + "stylesClassName": "CircularProgressBarStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.circularprogressbar.CircularProgressBarStyles", + "receiverClassName": "CircularProgressBarStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.circularprogressbar.CircularProgressBarStyles.Companion", + "returnTypeName": "CircularProgressBarStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.CircularProgressBarStyle", + "modifyReceiverTypeName": "CircularProgressBarStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.CircularProgressBarStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "CircularProgressBarSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.circularprogressbar.CircularProgressBarSize", + "defaultValue": { + "value": "xxl", + "codeName": "Xxl" + }, + "values": [ + { + "value": "xxl", + "codeName": "Xxl" + }, + { + "value": "xl", + "codeName": "Xl" + }, + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + }, + { + "value": "xxs", + "codeName": "Xxs" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "CircularProgressBarView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.circularprogressbar.CircularProgressBarView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "secondary", + "codeName": "Secondary" + }, + { + "value": "accent", + "codeName": "Accent" + }, + { + "value": "gradient", + "codeName": "Gradient" + }, + { + "value": "info", + "codeName": "Info" + }, + { + "value": "negative", + "codeName": "Negative" + }, + { + "value": "positive", + "codeName": "Positive" + }, + { + "value": "warning", + "codeName": "Warning" + } + ] + } + ] + }, "variations": [ { "name": "xxl.default", - "composeReference": "CircularProgressBar.Xxl.Default" + "composeReference": "CircularProgressBar.Xxl.Default", + "props": [ + { + "name": "size", + "value": "xxl" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xxl.secondary", - "composeReference": "CircularProgressBar.Xxl.Secondary" + "composeReference": "CircularProgressBar.Xxl.Secondary", + "props": [ + { + "name": "size", + "value": "xxl" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xxl.accent", - "composeReference": "CircularProgressBar.Xxl.Accent" + "composeReference": "CircularProgressBar.Xxl.Accent", + "props": [ + { + "name": "size", + "value": "xxl" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xxl.gradient", - "composeReference": "CircularProgressBar.Xxl.Gradient" + "composeReference": "CircularProgressBar.Xxl.Gradient", + "props": [ + { + "name": "size", + "value": "xxl" + }, + { + "name": "view", + "value": "gradient" + } + ] }, { "name": "xxl.info", - "composeReference": "CircularProgressBar.Xxl.Info" + "composeReference": "CircularProgressBar.Xxl.Info", + "props": [ + { + "name": "size", + "value": "xxl" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "xxl.negative", - "composeReference": "CircularProgressBar.Xxl.Negative" + "composeReference": "CircularProgressBar.Xxl.Negative", + "props": [ + { + "name": "size", + "value": "xxl" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xxl.positive", - "composeReference": "CircularProgressBar.Xxl.Positive" + "composeReference": "CircularProgressBar.Xxl.Positive", + "props": [ + { + "name": "size", + "value": "xxl" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xxl.warning", - "composeReference": "CircularProgressBar.Xxl.Warning" + "composeReference": "CircularProgressBar.Xxl.Warning", + "props": [ + { + "name": "size", + "value": "xxl" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xl.default", - "composeReference": "CircularProgressBar.Xl.Default" + "composeReference": "CircularProgressBar.Xl.Default", + "props": [ + { + "name": "size", + "value": "xl" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xl.secondary", - "composeReference": "CircularProgressBar.Xl.Secondary" + "composeReference": "CircularProgressBar.Xl.Secondary", + "props": [ + { + "name": "size", + "value": "xl" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xl.accent", - "composeReference": "CircularProgressBar.Xl.Accent" + "composeReference": "CircularProgressBar.Xl.Accent", + "props": [ + { + "name": "size", + "value": "xl" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xl.gradient", - "composeReference": "CircularProgressBar.Xl.Gradient" + "composeReference": "CircularProgressBar.Xl.Gradient", + "props": [ + { + "name": "size", + "value": "xl" + }, + { + "name": "view", + "value": "gradient" + } + ] }, { "name": "xl.info", - "composeReference": "CircularProgressBar.Xl.Info" + "composeReference": "CircularProgressBar.Xl.Info", + "props": [ + { + "name": "size", + "value": "xl" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "xl.negative", - "composeReference": "CircularProgressBar.Xl.Negative" + "composeReference": "CircularProgressBar.Xl.Negative", + "props": [ + { + "name": "size", + "value": "xl" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xl.positive", - "composeReference": "CircularProgressBar.Xl.Positive" + "composeReference": "CircularProgressBar.Xl.Positive", + "props": [ + { + "name": "size", + "value": "xl" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xl.warning", - "composeReference": "CircularProgressBar.Xl.Warning" + "composeReference": "CircularProgressBar.Xl.Warning", + "props": [ + { + "name": "size", + "value": "xl" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.default", - "composeReference": "CircularProgressBar.L.Default" + "composeReference": "CircularProgressBar.L.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.secondary", - "composeReference": "CircularProgressBar.L.Secondary" + "composeReference": "CircularProgressBar.L.Secondary", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "l.accent", - "composeReference": "CircularProgressBar.L.Accent" + "composeReference": "CircularProgressBar.L.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.gradient", - "composeReference": "CircularProgressBar.L.Gradient" + "composeReference": "CircularProgressBar.L.Gradient", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "gradient" + } + ] }, { "name": "l.info", - "composeReference": "CircularProgressBar.L.Info" + "composeReference": "CircularProgressBar.L.Info", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "l.negative", - "composeReference": "CircularProgressBar.L.Negative" + "composeReference": "CircularProgressBar.L.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.positive", - "composeReference": "CircularProgressBar.L.Positive" + "composeReference": "CircularProgressBar.L.Positive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "l.warning", - "composeReference": "CircularProgressBar.L.Warning" + "composeReference": "CircularProgressBar.L.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.default", - "composeReference": "CircularProgressBar.M.Default" + "composeReference": "CircularProgressBar.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.secondary", - "composeReference": "CircularProgressBar.M.Secondary" + "composeReference": "CircularProgressBar.M.Secondary", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "m.accent", - "composeReference": "CircularProgressBar.M.Accent" + "composeReference": "CircularProgressBar.M.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.gradient", - "composeReference": "CircularProgressBar.M.Gradient" + "composeReference": "CircularProgressBar.M.Gradient", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "gradient" + } + ] }, { "name": "m.info", - "composeReference": "CircularProgressBar.M.Info" + "composeReference": "CircularProgressBar.M.Info", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "m.negative", - "composeReference": "CircularProgressBar.M.Negative" + "composeReference": "CircularProgressBar.M.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.positive", - "composeReference": "CircularProgressBar.M.Positive" + "composeReference": "CircularProgressBar.M.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.warning", - "composeReference": "CircularProgressBar.M.Warning" + "composeReference": "CircularProgressBar.M.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.default", - "composeReference": "CircularProgressBar.S.Default" + "composeReference": "CircularProgressBar.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.secondary", - "composeReference": "CircularProgressBar.S.Secondary" + "composeReference": "CircularProgressBar.S.Secondary", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "s.accent", - "composeReference": "CircularProgressBar.S.Accent" + "composeReference": "CircularProgressBar.S.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.gradient", - "composeReference": "CircularProgressBar.S.Gradient" + "composeReference": "CircularProgressBar.S.Gradient", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "gradient" + } + ] }, { "name": "s.info", - "composeReference": "CircularProgressBar.S.Info" + "composeReference": "CircularProgressBar.S.Info", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "s.negative", - "composeReference": "CircularProgressBar.S.Negative" + "composeReference": "CircularProgressBar.S.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.positive", - "composeReference": "CircularProgressBar.S.Positive" + "composeReference": "CircularProgressBar.S.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.warning", - "composeReference": "CircularProgressBar.S.Warning" + "composeReference": "CircularProgressBar.S.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.default", - "composeReference": "CircularProgressBar.Xs.Default" + "composeReference": "CircularProgressBar.Xs.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.secondary", - "composeReference": "CircularProgressBar.Xs.Secondary" + "composeReference": "CircularProgressBar.Xs.Secondary", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xs.accent", - "composeReference": "CircularProgressBar.Xs.Accent" + "composeReference": "CircularProgressBar.Xs.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.gradient", - "composeReference": "CircularProgressBar.Xs.Gradient" + "composeReference": "CircularProgressBar.Xs.Gradient", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "gradient" + } + ] }, { "name": "xs.info", - "composeReference": "CircularProgressBar.Xs.Info" + "composeReference": "CircularProgressBar.Xs.Info", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "xs.negative", - "composeReference": "CircularProgressBar.Xs.Negative" + "composeReference": "CircularProgressBar.Xs.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.positive", - "composeReference": "CircularProgressBar.Xs.Positive" + "composeReference": "CircularProgressBar.Xs.Positive", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xs.warning", - "composeReference": "CircularProgressBar.Xs.Warning" + "composeReference": "CircularProgressBar.Xs.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xxs.default", - "composeReference": "CircularProgressBar.Xxs.Default" + "composeReference": "CircularProgressBar.Xxs.Default", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xxs.secondary", - "composeReference": "CircularProgressBar.Xxs.Secondary" + "composeReference": "CircularProgressBar.Xxs.Secondary", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xxs.accent", - "composeReference": "CircularProgressBar.Xxs.Accent" + "composeReference": "CircularProgressBar.Xxs.Accent", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xxs.gradient", - "composeReference": "CircularProgressBar.Xxs.Gradient" + "composeReference": "CircularProgressBar.Xxs.Gradient", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "gradient" + } + ] }, { "name": "xxs.info", - "composeReference": "CircularProgressBar.Xxs.Info" + "composeReference": "CircularProgressBar.Xxs.Info", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "xxs.negative", - "composeReference": "CircularProgressBar.Xxs.Negative" + "composeReference": "CircularProgressBar.Xxs.Negative", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xxs.positive", - "composeReference": "CircularProgressBar.Xxs.Positive" + "composeReference": "CircularProgressBar.Xxs.Positive", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xxs.warning", - "composeReference": "CircularProgressBar.Xxs.Warning" + "composeReference": "CircularProgressBar.Xxs.Warning", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "warning" + } + ] } ] }, @@ -2420,86 +10684,443 @@ "key": "chip", "coreName": "Chip", "styleName": "Chip", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s", + "xs", + "xxs" + ], + "defaultValue": "l" + }, + { + "name": "shape", + "values": [ + "default", + "pilled" + ], + "defaultValue": "default" + }, + { + "name": "view", + "values": [ + "default", + "secondary" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.chip", + "stylesClassName": "ChipStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.chip.ChipStyles", + "receiverClassName": "ChipStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.chip.ChipStyles.Companion", + "returnTypeName": "ChipStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ChipStyle", + "modifyReceiverTypeName": "ChipStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ChipStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "ChipSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.chip.ChipSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + }, + { + "value": "xxs", + "codeName": "Xxs" + } + ] + }, + { + "name": "shape", + "type": "enum", + "required": false, + "typeName": "ChipShape", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.chip.ChipShape", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "pilled", + "codeName": "Pilled" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "ChipView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.chip.ChipView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "secondary", + "codeName": "Secondary" + } + ] + } + ] + }, "variations": [ { "name": "l.default", - "composeReference": "Chip.L.Default" + "composeReference": "Chip.L.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.secondary", - "composeReference": "Chip.L.Secondary" + "composeReference": "Chip.L.Secondary", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "l.pilled.default", - "composeReference": "Chip.L.Pilled.Default" + "composeReference": "Chip.L.Pilled.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.pilled.secondary", - "composeReference": "Chip.L.Pilled.Secondary" + "composeReference": "Chip.L.Pilled.Secondary", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "m.default", - "composeReference": "Chip.M.Default" + "composeReference": "Chip.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.secondary", - "composeReference": "Chip.M.Secondary" + "composeReference": "Chip.M.Secondary", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "m.pilled.default", - "composeReference": "Chip.M.Pilled.Default" + "composeReference": "Chip.M.Pilled.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.pilled.secondary", - "composeReference": "Chip.M.Pilled.Secondary" + "composeReference": "Chip.M.Pilled.Secondary", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "s.default", - "composeReference": "Chip.S.Default" + "composeReference": "Chip.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.secondary", - "composeReference": "Chip.S.Secondary" + "composeReference": "Chip.S.Secondary", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "s.pilled.default", - "composeReference": "Chip.S.Pilled.Default" + "composeReference": "Chip.S.Pilled.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.pilled.secondary", - "composeReference": "Chip.S.Pilled.Secondary" + "composeReference": "Chip.S.Pilled.Secondary", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xs.default", - "composeReference": "Chip.Xs.Default" + "composeReference": "Chip.Xs.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.secondary", - "composeReference": "Chip.Xs.Secondary" + "composeReference": "Chip.Xs.Secondary", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xs.pilled.default", - "composeReference": "Chip.Xs.Pilled.Default" + "composeReference": "Chip.Xs.Pilled.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.pilled.secondary", - "composeReference": "Chip.Xs.Pilled.Secondary" + "composeReference": "Chip.Xs.Pilled.Secondary", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xxs.default", - "composeReference": "Chip.Xxs.Default" + "composeReference": "Chip.Xxs.Default", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xxs.secondary", - "composeReference": "Chip.Xxs.Secondary" + "composeReference": "Chip.Xxs.Secondary", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xxs.pilled.default", - "composeReference": "Chip.Xxs.Pilled.Default" + "composeReference": "Chip.Xxs.Pilled.Default", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xxs.pilled.secondary", - "composeReference": "Chip.Xxs.Pilled.Secondary" + "composeReference": "Chip.Xxs.Pilled.Secondary", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "secondary" + } + ] } ] }, @@ -2507,86 +11128,439 @@ "key": "chip-group", "coreName": "ChipGroup", "styleName": "ChipGroupDense", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s", + "xs", + "xxs" + ], + "defaultValue": "l" + }, + { + "name": "shape", + "values": [ + "default", + "pilled" + ], + "defaultValue": "default" + }, + { + "name": "view", + "values": [ + "default", + "secondary" + ] + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.chipgroup", + "stylesClassName": "ChipGroupStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.chipgroup.ChipGroupStyles", + "receiverClassName": "ChipGroupStyles.Dense", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.chipgroup.ChipGroupStyles.Dense", + "returnTypeName": "ChipGroupStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ChipGroupStyle", + "modifyReceiverTypeName": "ChipGroupStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ChipGroupStyleBuilder", + "holderName": "Dense", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "ChipGroupDenseSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.chipgroup.ChipGroupDenseSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + }, + { + "value": "xxs", + "codeName": "Xxs" + } + ] + }, + { + "name": "shape", + "type": "enum", + "required": false, + "typeName": "ChipGroupDenseShape", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.chipgroup.ChipGroupDenseShape", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "pilled", + "codeName": "Pilled" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": true, + "typeName": "ChipGroupDenseView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.chipgroup.ChipGroupDenseView", + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "secondary", + "codeName": "Secondary" + } + ] + } + ] + }, "variations": [ { "name": "l.default", - "composeReference": "ChipGroupDense.L.Default" + "composeReference": "ChipGroupDense.L.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.secondary", - "composeReference": "ChipGroupDense.L.Secondary" + "composeReference": "ChipGroupDense.L.Secondary", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "l.pilled.default", - "composeReference": "ChipGroupDense.L.Pilled.Default" + "composeReference": "ChipGroupDense.L.Pilled.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.pilled.secondary", - "composeReference": "ChipGroupDense.L.Pilled.Secondary" + "composeReference": "ChipGroupDense.L.Pilled.Secondary", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "m.default", - "composeReference": "ChipGroupDense.M.Default" + "composeReference": "ChipGroupDense.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.secondary", - "composeReference": "ChipGroupDense.M.Secondary" + "composeReference": "ChipGroupDense.M.Secondary", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "m.pilled.default", - "composeReference": "ChipGroupDense.M.Pilled.Default" + "composeReference": "ChipGroupDense.M.Pilled.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.pilled.secondary", - "composeReference": "ChipGroupDense.M.Pilled.Secondary" + "composeReference": "ChipGroupDense.M.Pilled.Secondary", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "s.default", - "composeReference": "ChipGroupDense.S.Default" + "composeReference": "ChipGroupDense.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.secondary", - "composeReference": "ChipGroupDense.S.Secondary" + "composeReference": "ChipGroupDense.S.Secondary", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "s.pilled.default", - "composeReference": "ChipGroupDense.S.Pilled.Default" + "composeReference": "ChipGroupDense.S.Pilled.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.pilled.secondary", - "composeReference": "ChipGroupDense.S.Pilled.Secondary" + "composeReference": "ChipGroupDense.S.Pilled.Secondary", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xs.default", - "composeReference": "ChipGroupDense.Xs.Default" + "composeReference": "ChipGroupDense.Xs.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.secondary", - "composeReference": "ChipGroupDense.Xs.Secondary" + "composeReference": "ChipGroupDense.Xs.Secondary", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xs.pilled.default", - "composeReference": "ChipGroupDense.Xs.Pilled.Default" + "composeReference": "ChipGroupDense.Xs.Pilled.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.pilled.secondary", - "composeReference": "ChipGroupDense.Xs.Pilled.Secondary" + "composeReference": "ChipGroupDense.Xs.Pilled.Secondary", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xxs.default", - "composeReference": "ChipGroupDense.Xxs.Default" + "composeReference": "ChipGroupDense.Xxs.Default", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xxs.secondary", - "composeReference": "ChipGroupDense.Xxs.Secondary" + "composeReference": "ChipGroupDense.Xxs.Secondary", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xxs.pilled.default", - "composeReference": "ChipGroupDense.Xxs.Pilled.Default" + "composeReference": "ChipGroupDense.Xxs.Pilled.Default", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xxs.pilled.secondary", - "composeReference": "ChipGroupDense.Xxs.Pilled.Secondary" + "composeReference": "ChipGroupDense.Xxs.Pilled.Secondary", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "secondary" + } + ] } ] }, @@ -2594,86 +11568,439 @@ "key": "chip-group", "coreName": "ChipGroup", "styleName": "ChipGroupWide", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s", + "xs", + "xxs" + ], + "defaultValue": "l" + }, + { + "name": "shape", + "values": [ + "default", + "pilled" + ], + "defaultValue": "default" + }, + { + "name": "view", + "values": [ + "default", + "secondary" + ] + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.chipgroup", + "stylesClassName": "ChipGroupStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.chipgroup.ChipGroupStyles", + "receiverClassName": "ChipGroupStyles.Wide", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.chipgroup.ChipGroupStyles.Wide", + "returnTypeName": "ChipGroupStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ChipGroupStyle", + "modifyReceiverTypeName": "ChipGroupStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ChipGroupStyleBuilder", + "holderName": "Wide", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "ChipGroupWideSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.chipgroup.ChipGroupWideSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + }, + { + "value": "xxs", + "codeName": "Xxs" + } + ] + }, + { + "name": "shape", + "type": "enum", + "required": false, + "typeName": "ChipGroupWideShape", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.chipgroup.ChipGroupWideShape", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "pilled", + "codeName": "Pilled" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": true, + "typeName": "ChipGroupWideView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.chipgroup.ChipGroupWideView", + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "secondary", + "codeName": "Secondary" + } + ] + } + ] + }, "variations": [ { "name": "l.default", - "composeReference": "ChipGroupWide.L.Default" + "composeReference": "ChipGroupWide.L.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.secondary", - "composeReference": "ChipGroupWide.L.Secondary" + "composeReference": "ChipGroupWide.L.Secondary", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "l.pilled.default", - "composeReference": "ChipGroupWide.L.Pilled.Default" + "composeReference": "ChipGroupWide.L.Pilled.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.pilled.secondary", - "composeReference": "ChipGroupWide.L.Pilled.Secondary" + "composeReference": "ChipGroupWide.L.Pilled.Secondary", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "m.default", - "composeReference": "ChipGroupWide.M.Default" + "composeReference": "ChipGroupWide.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.secondary", - "composeReference": "ChipGroupWide.M.Secondary" + "composeReference": "ChipGroupWide.M.Secondary", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "m.pilled.default", - "composeReference": "ChipGroupWide.M.Pilled.Default" + "composeReference": "ChipGroupWide.M.Pilled.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.pilled.secondary", - "composeReference": "ChipGroupWide.M.Pilled.Secondary" + "composeReference": "ChipGroupWide.M.Pilled.Secondary", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "s.default", - "composeReference": "ChipGroupWide.S.Default" + "composeReference": "ChipGroupWide.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.secondary", - "composeReference": "ChipGroupWide.S.Secondary" + "composeReference": "ChipGroupWide.S.Secondary", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "s.pilled.default", - "composeReference": "ChipGroupWide.S.Pilled.Default" + "composeReference": "ChipGroupWide.S.Pilled.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.pilled.secondary", - "composeReference": "ChipGroupWide.S.Pilled.Secondary" + "composeReference": "ChipGroupWide.S.Pilled.Secondary", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xs.default", - "composeReference": "ChipGroupWide.Xs.Default" + "composeReference": "ChipGroupWide.Xs.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.secondary", - "composeReference": "ChipGroupWide.Xs.Secondary" + "composeReference": "ChipGroupWide.Xs.Secondary", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xs.pilled.default", - "composeReference": "ChipGroupWide.Xs.Pilled.Default" + "composeReference": "ChipGroupWide.Xs.Pilled.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.pilled.secondary", - "composeReference": "ChipGroupWide.Xs.Pilled.Secondary" + "composeReference": "ChipGroupWide.Xs.Pilled.Secondary", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xxs.default", - "composeReference": "ChipGroupWide.Xxs.Default" + "composeReference": "ChipGroupWide.Xxs.Default", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xxs.secondary", - "composeReference": "ChipGroupWide.Xxs.Secondary" + "composeReference": "ChipGroupWide.Xxs.Secondary", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xxs.pilled.default", - "composeReference": "ChipGroupWide.Xxs.Pilled.Default" + "composeReference": "ChipGroupWide.Xxs.Pilled.Default", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xxs.pilled.secondary", - "composeReference": "ChipGroupWide.Xxs.Pilled.Secondary" + "composeReference": "ChipGroupWide.Xxs.Pilled.Secondary", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "shape", + "value": "pilled" + }, + { + "name": "view", + "value": "secondary" + } + ] } ] }, @@ -2681,166 +12008,684 @@ "key": "counter", "coreName": "Counter", "styleName": "Counter", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s", + "xs", + "xxs" + ], + "defaultValue": "l" + }, + { + "name": "view", + "values": [ + "default", + "secondary", + "accent", + "positive", + "warning", + "negative", + "black", + "white" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.counter", + "stylesClassName": "CounterStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.counter.CounterStyles", + "receiverClassName": "CounterStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.counter.CounterStyles.Companion", + "returnTypeName": "CounterStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.CounterStyle", + "modifyReceiverTypeName": "CounterStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.CounterStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "CounterSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.counter.CounterSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + }, + { + "value": "xxs", + "codeName": "Xxs" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "CounterView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.counter.CounterView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "secondary", + "codeName": "Secondary" + }, + { + "value": "accent", + "codeName": "Accent" + }, + { + "value": "positive", + "codeName": "Positive" + }, + { + "value": "warning", + "codeName": "Warning" + }, + { + "value": "negative", + "codeName": "Negative" + }, + { + "value": "black", + "codeName": "Black" + }, + { + "value": "white", + "codeName": "White" + } + ] + } + ] + }, "variations": [ { "name": "l.default", - "composeReference": "Counter.L.Default" + "composeReference": "Counter.L.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.secondary", - "composeReference": "Counter.L.Secondary" + "composeReference": "Counter.L.Secondary", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "l.accent", - "composeReference": "Counter.L.Accent" + "composeReference": "Counter.L.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.positive", - "composeReference": "Counter.L.Positive" + "composeReference": "Counter.L.Positive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "l.warning", - "composeReference": "Counter.L.Warning" + "composeReference": "Counter.L.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.negative", - "composeReference": "Counter.L.Negative" + "composeReference": "Counter.L.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.black", - "composeReference": "Counter.L.Black" + "composeReference": "Counter.L.Black", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "black" + } + ] }, { "name": "l.white", - "composeReference": "Counter.L.White" + "composeReference": "Counter.L.White", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "white" + } + ] }, { "name": "m.default", - "composeReference": "Counter.M.Default" + "composeReference": "Counter.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.secondary", - "composeReference": "Counter.M.Secondary" + "composeReference": "Counter.M.Secondary", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "m.accent", - "composeReference": "Counter.M.Accent" + "composeReference": "Counter.M.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.positive", - "composeReference": "Counter.M.Positive" + "composeReference": "Counter.M.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.warning", - "composeReference": "Counter.M.Warning" + "composeReference": "Counter.M.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.negative", - "composeReference": "Counter.M.Negative" + "composeReference": "Counter.M.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.black", - "composeReference": "Counter.M.Black" + "composeReference": "Counter.M.Black", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "black" + } + ] }, { "name": "m.white", - "composeReference": "Counter.M.White" + "composeReference": "Counter.M.White", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "white" + } + ] }, { "name": "s.default", - "composeReference": "Counter.S.Default" + "composeReference": "Counter.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.secondary", - "composeReference": "Counter.S.Secondary" + "composeReference": "Counter.S.Secondary", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "s.accent", - "composeReference": "Counter.S.Accent" + "composeReference": "Counter.S.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.positive", - "composeReference": "Counter.S.Positive" + "composeReference": "Counter.S.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.warning", - "composeReference": "Counter.S.Warning" + "composeReference": "Counter.S.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.negative", - "composeReference": "Counter.S.Negative" + "composeReference": "Counter.S.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.black", - "composeReference": "Counter.S.Black" + "composeReference": "Counter.S.Black", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "black" + } + ] }, { "name": "s.white", - "composeReference": "Counter.S.White" + "composeReference": "Counter.S.White", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "white" + } + ] }, { "name": "xs.default", - "composeReference": "Counter.Xs.Default" + "composeReference": "Counter.Xs.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.secondary", - "composeReference": "Counter.Xs.Secondary" + "composeReference": "Counter.Xs.Secondary", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xs.accent", - "composeReference": "Counter.Xs.Accent" + "composeReference": "Counter.Xs.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.positive", - "composeReference": "Counter.Xs.Positive" + "composeReference": "Counter.Xs.Positive", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xs.warning", - "composeReference": "Counter.Xs.Warning" + "composeReference": "Counter.Xs.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.negative", - "composeReference": "Counter.Xs.Negative" + "composeReference": "Counter.Xs.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.black", - "composeReference": "Counter.Xs.Black" + "composeReference": "Counter.Xs.Black", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "black" + } + ] }, { "name": "xs.white", - "composeReference": "Counter.Xs.White" + "composeReference": "Counter.Xs.White", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "white" + } + ] }, { "name": "xxs.default", - "composeReference": "Counter.Xxs.Default" + "composeReference": "Counter.Xxs.Default", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xxs.secondary", - "composeReference": "Counter.Xxs.Secondary" + "composeReference": "Counter.Xxs.Secondary", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xxs.accent", - "composeReference": "Counter.Xxs.Accent" + "composeReference": "Counter.Xxs.Accent", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xxs.positive", - "composeReference": "Counter.Xxs.Positive" + "composeReference": "Counter.Xxs.Positive", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xxs.warning", - "composeReference": "Counter.Xxs.Warning" + "composeReference": "Counter.Xxs.Warning", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xxs.negative", - "composeReference": "Counter.Xxs.Negative" + "composeReference": "Counter.Xxs.Negative", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xxs.black", - "composeReference": "Counter.Xxs.Black" + "composeReference": "Counter.Xxs.Black", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "black" + } + ] }, { "name": "xxs.white", - "composeReference": "Counter.Xxs.White" + "composeReference": "Counter.Xxs.White", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "white" + } + ] } ] }, @@ -2848,6 +12693,17 @@ "key": "divider", "coreName": "Divider", "styleName": "Divider", + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.divider", + "stylesClassName": "DividerStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.divider.DividerStyles", + "receiverClassName": "DividerStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.divider.DividerStyles.Companion", + "returnTypeName": "DividerStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.DividerStyle", + "modifyReceiverTypeName": "DividerStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.DividerStyleBuilder" + }, "variations": [ { "name": "Default", @@ -2859,114 +12715,497 @@ "key": "indicator", "coreName": "Indicator", "styleName": "Indicator", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s" + ], + "defaultValue": "l" + }, + { + "name": "view", + "values": [ + "default", + "accent", + "inactive", + "positive", + "warning", + "negative", + "dark", + "black", + "white" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.indicator", + "stylesClassName": "IndicatorStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.indicator.IndicatorStyles", + "receiverClassName": "IndicatorStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.indicator.IndicatorStyles.Companion", + "returnTypeName": "IndicatorStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.IndicatorStyle", + "modifyReceiverTypeName": "IndicatorStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.IndicatorStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "IndicatorSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.indicator.IndicatorSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "IndicatorView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.indicator.IndicatorView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "accent", + "codeName": "Accent" + }, + { + "value": "inactive", + "codeName": "Inactive" + }, + { + "value": "positive", + "codeName": "Positive" + }, + { + "value": "warning", + "codeName": "Warning" + }, + { + "value": "negative", + "codeName": "Negative" + }, + { + "value": "dark", + "codeName": "Dark" + }, + { + "value": "black", + "codeName": "Black" + }, + { + "value": "white", + "codeName": "White" + } + ] + } + ] + }, "variations": [ { "name": "l.default", - "composeReference": "Indicator.L.Default" + "composeReference": "Indicator.L.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.accent", - "composeReference": "Indicator.L.Accent" + "composeReference": "Indicator.L.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.inactive", - "composeReference": "Indicator.L.Inactive" + "composeReference": "Indicator.L.Inactive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "inactive" + } + ] }, { "name": "l.positive", - "composeReference": "Indicator.L.Positive" + "composeReference": "Indicator.L.Positive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "l.warning", - "composeReference": "Indicator.L.Warning" + "composeReference": "Indicator.L.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.negative", - "composeReference": "Indicator.L.Negative" + "composeReference": "Indicator.L.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.dark", - "composeReference": "Indicator.L.Dark" + "composeReference": "Indicator.L.Dark", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "l.black", - "composeReference": "Indicator.L.Black" + "composeReference": "Indicator.L.Black", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "black" + } + ] }, { "name": "l.white", - "composeReference": "Indicator.L.White" + "composeReference": "Indicator.L.White", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "white" + } + ] }, { "name": "m.default", - "composeReference": "Indicator.M.Default" + "composeReference": "Indicator.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.accent", - "composeReference": "Indicator.M.Accent" + "composeReference": "Indicator.M.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.inactive", - "composeReference": "Indicator.M.Inactive" + "composeReference": "Indicator.M.Inactive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "inactive" + } + ] }, { "name": "m.positive", - "composeReference": "Indicator.M.Positive" + "composeReference": "Indicator.M.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.warning", - "composeReference": "Indicator.M.Warning" + "composeReference": "Indicator.M.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.negative", - "composeReference": "Indicator.M.Negative" + "composeReference": "Indicator.M.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.dark", - "composeReference": "Indicator.M.Dark" + "composeReference": "Indicator.M.Dark", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "m.black", - "composeReference": "Indicator.M.Black" + "composeReference": "Indicator.M.Black", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "black" + } + ] }, { "name": "m.white", - "composeReference": "Indicator.M.White" + "composeReference": "Indicator.M.White", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "white" + } + ] }, { "name": "s.default", - "composeReference": "Indicator.S.Default" + "composeReference": "Indicator.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.accent", - "composeReference": "Indicator.S.Accent" + "composeReference": "Indicator.S.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.inactive", - "composeReference": "Indicator.S.Inactive" + "composeReference": "Indicator.S.Inactive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "inactive" + } + ] }, { "name": "s.positive", - "composeReference": "Indicator.S.Positive" + "composeReference": "Indicator.S.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.warning", - "composeReference": "Indicator.S.Warning" + "composeReference": "Indicator.S.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.negative", - "composeReference": "Indicator.S.Negative" + "composeReference": "Indicator.S.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.dark", - "composeReference": "Indicator.S.Dark" + "composeReference": "Indicator.S.Dark", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "dark" + } + ] }, { "name": "s.black", - "composeReference": "Indicator.S.Black" + "composeReference": "Indicator.S.Black", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "black" + } + ] }, { "name": "s.white", - "composeReference": "Indicator.S.White" + "composeReference": "Indicator.S.White", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "white" + } + ] } ] }, @@ -2974,34 +13213,145 @@ "key": "image", "coreName": "Image", "styleName": "Image", + "props": [ + { + "name": "ratio", + "values": [ + "ratio_1_2", + "ratio_9_16", + "ratio_3_4", + "ratio_2_1", + "ratio_16_9", + "ratio_4_3", + "ratio_1_1" + ], + "defaultValue": "ratio_1_2" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.image", + "stylesClassName": "ImageStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.image.ImageStyles", + "receiverClassName": "ImageStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.image.ImageStyles.Companion", + "returnTypeName": "ImageStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ImageStyle", + "modifyReceiverTypeName": "ImageStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ImageStyleBuilder", + "params": [ + { + "name": "ratio", + "type": "enum", + "required": false, + "typeName": "ImageRatio", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.image.ImageRatio", + "defaultValue": { + "value": "ratio_1_2", + "codeName": "Ratio12" + }, + "values": [ + { + "value": "ratio_1_2", + "codeName": "Ratio12" + }, + { + "value": "ratio_9_16", + "codeName": "Ratio916" + }, + { + "value": "ratio_3_4", + "codeName": "Ratio34" + }, + { + "value": "ratio_2_1", + "codeName": "Ratio21" + }, + { + "value": "ratio_16_9", + "codeName": "Ratio169" + }, + { + "value": "ratio_4_3", + "codeName": "Ratio43" + }, + { + "value": "ratio_1_1", + "codeName": "Ratio11" + } + ] + } + ] + }, "variations": [ { "name": "ratio_1_2", - "composeReference": "Image.Ratio1x2" + "composeReference": "Image.Ratio1x2", + "props": [ + { + "name": "ratio", + "value": "ratio_1_2" + } + ] }, { "name": "ratio_9_16", - "composeReference": "Image.Ratio9x16" + "composeReference": "Image.Ratio9x16", + "props": [ + { + "name": "ratio", + "value": "ratio_9_16" + } + ] }, { "name": "ratio_3_4", - "composeReference": "Image.Ratio3x4" + "composeReference": "Image.Ratio3x4", + "props": [ + { + "name": "ratio", + "value": "ratio_3_4" + } + ] }, { "name": "ratio_2_1", - "composeReference": "Image.Ratio2x1" + "composeReference": "Image.Ratio2x1", + "props": [ + { + "name": "ratio", + "value": "ratio_2_1" + } + ] }, { "name": "ratio_16_9", - "composeReference": "Image.Ratio16x9" + "composeReference": "Image.Ratio16x9", + "props": [ + { + "name": "ratio", + "value": "ratio_16_9" + } + ] }, { "name": "ratio_4_3", - "composeReference": "Image.Ratio4x3" + "composeReference": "Image.Ratio4x3", + "props": [ + { + "name": "ratio", + "value": "ratio_4_3" + } + ] }, { "name": "ratio_1_1", - "composeReference": "Image.Ratio1x1" + "composeReference": "Image.Ratio1x1", + "props": [ + { + "name": "ratio", + "value": "ratio_1_1" + } + ] } ] }, @@ -3009,22 +13359,209 @@ "key": "list", "coreName": "List", "styleName": "List", + "props": [ + { + "name": "size", + "values": [ + "s" + ], + "defaultValue": "s" + }, + { + "name": "has-background", + "defaultValue": "false" + }, + { + "name": "has-item-background", + "defaultValue": "false" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.list", + "stylesClassName": "ListStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.list.ListStyles", + "receiverClassName": "ListStyles.Default", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.list.ListStyles.Default", + "returnTypeName": "ListStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ListStyle", + "modifyReceiverTypeName": "ListStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ListStyleBuilder", + "holderName": "Default", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "ListDefaultSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.list.ListDefaultSize", + "defaultValue": { + "value": "s", + "codeName": "S" + }, + "values": [ + { + "value": "s", + "codeName": "S" + } + ] + }, + { + "name": "hasBackground", + "type": "boolean", + "required": false, + "typeName": "Boolean", + "typeQualifiedName": "kotlin.Boolean", + "defaultValue": { + "value": "false", + "codeName": "false" + }, + "values": [ + { + "value": "true", + "codeName": "true" + }, + { + "value": "false", + "codeName": "false" + } + ] + }, + { + "name": "hasItemBackground", + "type": "boolean", + "required": false, + "typeName": "Boolean", + "typeQualifiedName": "kotlin.Boolean", + "defaultValue": { + "value": "false", + "codeName": "false" + }, + "values": [ + { + "value": "true", + "codeName": "true" + }, + { + "value": "false", + "codeName": "false" + } + ] + } + ] + }, "variations": [ { "name": "s", - "composeReference": "List.S" + "composeReference": "List.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] }, { "name": "s.no-background", - "composeReference": "List.S.NoBackground" + "composeReference": "List.S.NoBackground", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "has-background", + "value": "false" + } + ] }, { "name": "s.no-background.has-item-background", - "composeReference": "List.S.NoBackground.HasItemBackground" + "composeReference": "List.S.NoBackground.HasItemBackground", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "has-background", + "value": "false" + }, + { + "name": "has-item-background", + "value": "true" + } + ] }, { "name": "s.has-background", - "composeReference": "List.S.HasBackground" + "composeReference": "List.S.HasBackground", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "has-background", + "value": "true" + } + ] + } + ] + }, + { + "key": "list", + "coreName": "List", + "styleName": "ListNumbered", + "props": [ + { + "name": "size", + "values": [ + "s" + ], + "defaultValue": "s" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.list", + "stylesClassName": "ListStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.list.ListStyles", + "receiverClassName": "ListStyles.Numbered", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.list.ListStyles.Numbered", + "returnTypeName": "ListStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ListStyle", + "modifyReceiverTypeName": "ListStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ListStyleBuilder", + "holderName": "Numbered", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "ListNumberedSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.list.ListNumberedSize", + "defaultValue": { + "value": "s", + "codeName": "S" + }, + "values": [ + { + "value": "s", + "codeName": "S" + } + ] + } + ] + }, + "variations": [ + { + "name": "s", + "composeReference": "ListNumbered.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] } ] }, @@ -3032,14 +13569,152 @@ "key": "list-item", "coreName": "ListItem", "styleName": "ListItem", + "props": [ + { + "name": "size", + "values": [ + "s" + ], + "defaultValue": "s" + }, + { + "name": "has-background", + "defaultValue": "false" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.listitem", + "stylesClassName": "ListItemStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.listitem.ListItemStyles", + "receiverClassName": "ListItemStyles.Default", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.listitem.ListItemStyles.Default", + "returnTypeName": "ListItemStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ListItemStyle", + "modifyReceiverTypeName": "ListItemStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ListItemStyleBuilder", + "holderName": "Default", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "ListItemDefaultSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.listitem.ListItemDefaultSize", + "defaultValue": { + "value": "s", + "codeName": "S" + }, + "values": [ + { + "value": "s", + "codeName": "S" + } + ] + }, + { + "name": "hasBackground", + "type": "boolean", + "required": false, + "typeName": "Boolean", + "typeQualifiedName": "kotlin.Boolean", + "defaultValue": { + "value": "false", + "codeName": "false" + }, + "values": [ + { + "value": "true", + "codeName": "true" + }, + { + "value": "false", + "codeName": "false" + } + ] + } + ] + }, "variations": [ { "name": "s", - "composeReference": "ListItem.S" + "composeReference": "ListItem.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] }, { "name": "s.has-background", - "composeReference": "ListItem.S.HasBackground" + "composeReference": "ListItem.S.HasBackground", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "has-background", + "value": "true" + } + ] + } + ] + }, + { + "key": "list-item", + "coreName": "ListItem", + "styleName": "ListNumberedItem", + "props": [ + { + "name": "size", + "values": [ + "s" + ], + "defaultValue": "s" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.listitem", + "stylesClassName": "ListItemStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.listitem.ListItemStyles", + "receiverClassName": "ListItemStyles.ListNumberedItem", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.listitem.ListItemStyles.ListNumberedItem", + "returnTypeName": "ListItemStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ListItemStyle", + "modifyReceiverTypeName": "ListItemStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ListItemStyleBuilder", + "holderName": "ListNumberedItem", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "ListItemListNumberedItemSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.listitem.ListItemListNumberedItemSize", + "defaultValue": { + "value": "s", + "codeName": "S" + }, + "values": [ + { + "value": "s", + "codeName": "S" + } + ] + } + ] + }, + "variations": [ + { + "name": "s", + "composeReference": "ListNumberedItem.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] } ] }, @@ -3047,6 +13722,17 @@ "key": "loader", "coreName": "Loader", "styleName": "Loader", + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.loader", + "stylesClassName": "LoaderStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.loader.LoaderStyles", + "receiverClassName": "LoaderStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.loader.LoaderStyles.Companion", + "returnTypeName": "LoaderStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.LoaderStyle", + "modifyReceiverTypeName": "LoaderStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.LoaderStyleBuilder" + }, "variations": [ { "name": "Default", @@ -3058,18 +13744,85 @@ "key": "overlay", "coreName": "Overlay", "styleName": "Overlay", + "props": [ + { + "name": "kind", + "values": [ + "default", + "direction-top", + "direction-bottom" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.overlay", + "stylesClassName": "OverlayStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.overlay.OverlayStyles", + "receiverClassName": "OverlayStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.overlay.OverlayStyles.Companion", + "returnTypeName": "OverlayStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.OverlayStyle", + "modifyReceiverTypeName": "OverlayStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.OverlayStyleBuilder", + "params": [ + { + "name": "kind", + "type": "enum", + "required": false, + "typeName": "OverlayKind", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.overlay.OverlayKind", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "direction-top", + "codeName": "DirectionTop" + }, + { + "value": "direction-bottom", + "codeName": "DirectionBottom" + } + ] + } + ] + }, "variations": [ { "name": "default", - "composeReference": "Overlay.Default" + "composeReference": "Overlay.Default", + "props": [ + { + "name": "kind", + "value": "default" + } + ] }, { "name": "direction-top", - "composeReference": "Overlay.DirectionTop" + "composeReference": "Overlay.DirectionTop", + "props": [ + { + "name": "kind", + "value": "direction-top" + } + ] }, { "name": "direction-bottom", - "composeReference": "Overlay.DirectionBottom" + "composeReference": "Overlay.DirectionBottom", + "props": [ + { + "name": "kind", + "value": "direction-bottom" + } + ] } ] }, @@ -3077,146 +13830,609 @@ "key": "spinner", "coreName": "Spinner", "styleName": "Spinner", + "props": [ + { + "name": "size", + "values": [ + "m", + "s", + "xs", + "xxs", + "scalable" + ], + "defaultValue": "m" + }, + { + "name": "view", + "values": [ + "default", + "secondary", + "accent", + "positive", + "negative", + "warning", + "info" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.spinner", + "stylesClassName": "SpinnerStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.spinner.SpinnerStyles", + "receiverClassName": "SpinnerStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.spinner.SpinnerStyles.Companion", + "returnTypeName": "SpinnerStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.SpinnerStyle", + "modifyReceiverTypeName": "SpinnerStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.SpinnerStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "SpinnerSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.spinner.SpinnerSize", + "defaultValue": { + "value": "m", + "codeName": "M" + }, + "values": [ + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + }, + { + "value": "xxs", + "codeName": "Xxs" + }, + { + "value": "scalable", + "codeName": "Scalable" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "SpinnerView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.spinner.SpinnerView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "secondary", + "codeName": "Secondary" + }, + { + "value": "accent", + "codeName": "Accent" + }, + { + "value": "positive", + "codeName": "Positive" + }, + { + "value": "negative", + "codeName": "Negative" + }, + { + "value": "warning", + "codeName": "Warning" + }, + { + "value": "info", + "codeName": "Info" + } + ] + } + ] + }, "variations": [ { "name": "m.default", - "composeReference": "Spinner.M.Default" + "composeReference": "Spinner.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.secondary", - "composeReference": "Spinner.M.Secondary" + "composeReference": "Spinner.M.Secondary", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "m.accent", - "composeReference": "Spinner.M.Accent" + "composeReference": "Spinner.M.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.positive", - "composeReference": "Spinner.M.Positive" + "composeReference": "Spinner.M.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.negative", - "composeReference": "Spinner.M.Negative" + "composeReference": "Spinner.M.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.warning", - "composeReference": "Spinner.M.Warning" + "composeReference": "Spinner.M.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.info", - "composeReference": "Spinner.M.Info" + "composeReference": "Spinner.M.Info", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "s.default", - "composeReference": "Spinner.S.Default" + "composeReference": "Spinner.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.secondary", - "composeReference": "Spinner.S.Secondary" + "composeReference": "Spinner.S.Secondary", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "s.accent", - "composeReference": "Spinner.S.Accent" + "composeReference": "Spinner.S.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.positive", - "composeReference": "Spinner.S.Positive" + "composeReference": "Spinner.S.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.negative", - "composeReference": "Spinner.S.Negative" + "composeReference": "Spinner.S.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.warning", - "composeReference": "Spinner.S.Warning" + "composeReference": "Spinner.S.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.info", - "composeReference": "Spinner.S.Info" + "composeReference": "Spinner.S.Info", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "xs.default", - "composeReference": "Spinner.Xs.Default" + "composeReference": "Spinner.Xs.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.secondary", - "composeReference": "Spinner.Xs.Secondary" + "composeReference": "Spinner.Xs.Secondary", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xs.accent", - "composeReference": "Spinner.Xs.Accent" + "composeReference": "Spinner.Xs.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.positive", - "composeReference": "Spinner.Xs.Positive" + "composeReference": "Spinner.Xs.Positive", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xs.negative", - "composeReference": "Spinner.Xs.Negative" + "composeReference": "Spinner.Xs.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.warning", - "composeReference": "Spinner.Xs.Warning" + "composeReference": "Spinner.Xs.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.info", - "composeReference": "Spinner.Xs.Info" + "composeReference": "Spinner.Xs.Info", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "xxs.default", - "composeReference": "Spinner.Xxs.Default" + "composeReference": "Spinner.Xxs.Default", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xxs.secondary", - "composeReference": "Spinner.Xxs.Secondary" + "composeReference": "Spinner.Xxs.Secondary", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xxs.accent", - "composeReference": "Spinner.Xxs.Accent" + "composeReference": "Spinner.Xxs.Accent", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xxs.positive", - "composeReference": "Spinner.Xxs.Positive" + "composeReference": "Spinner.Xxs.Positive", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xxs.negative", - "composeReference": "Spinner.Xxs.Negative" + "composeReference": "Spinner.Xxs.Negative", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xxs.warning", - "composeReference": "Spinner.Xxs.Warning" + "composeReference": "Spinner.Xxs.Warning", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xxs.info", - "composeReference": "Spinner.Xxs.Info" + "composeReference": "Spinner.Xxs.Info", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "scalable.default", - "composeReference": "Spinner.Scalable.Default" + "composeReference": "Spinner.Scalable.Default", + "props": [ + { + "name": "size", + "value": "scalable" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "scalable.secondary", - "composeReference": "Spinner.Scalable.Secondary" + "composeReference": "Spinner.Scalable.Secondary", + "props": [ + { + "name": "size", + "value": "scalable" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "scalable.accent", - "composeReference": "Spinner.Scalable.Accent" + "composeReference": "Spinner.Scalable.Accent", + "props": [ + { + "name": "size", + "value": "scalable" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "scalable.positive", - "composeReference": "Spinner.Scalable.Positive" + "composeReference": "Spinner.Scalable.Positive", + "props": [ + { + "name": "size", + "value": "scalable" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "scalable.negative", - "composeReference": "Spinner.Scalable.Negative" + "composeReference": "Spinner.Scalable.Negative", + "props": [ + { + "name": "size", + "value": "scalable" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "scalable.warning", - "composeReference": "Spinner.Scalable.Warning" + "composeReference": "Spinner.Scalable.Warning", + "props": [ + { + "name": "size", + "value": "scalable" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "scalable.info", - "composeReference": "Spinner.Scalable.Info" + "composeReference": "Spinner.Scalable.Info", + "props": [ + { + "name": "size", + "value": "scalable" + }, + { + "name": "view", + "value": "info" + } + ] } ] }, @@ -3224,150 +14440,939 @@ "key": "text-field", "coreName": "TextField", "styleName": "TextField", + "props": [ + { + "name": "size", + "values": [ + "s", + "m", + "l" + ], + "defaultValue": "s" + }, + { + "name": "required-placement", + "values": [ + "none", + "start", + "end" + ], + "defaultValue": "none" + }, + { + "name": "label-placement", + "values": [ + "inner", + "none" + ], + "defaultValue": "inner" + }, + { + "name": "view", + "values": [ + "default", + "error" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.textfield", + "stylesClassName": "TextFieldStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.textfield.TextFieldStyles", + "receiverClassName": "TextFieldStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.textfield.TextFieldStyles.Companion", + "returnTypeName": "TextFieldStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.TextFieldStyle", + "modifyReceiverTypeName": "TextFieldStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.TextFieldStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "TextFieldSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.textfield.TextFieldSize", + "defaultValue": { + "value": "s", + "codeName": "S" + }, + "values": [ + { + "value": "s", + "codeName": "S" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "l", + "codeName": "L" + } + ] + }, + { + "name": "requiredPlacement", + "type": "enum", + "required": false, + "typeName": "TextFieldRequiredPlacement", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.textfield.TextFieldRequiredPlacement", + "defaultValue": { + "value": "none", + "codeName": "None" + }, + "values": [ + { + "value": "none", + "codeName": "None" + }, + { + "value": "start", + "codeName": "Start" + }, + { + "value": "end", + "codeName": "End" + } + ] + }, + { + "name": "labelPlacement", + "type": "enum", + "required": false, + "typeName": "TextFieldLabelPlacement", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.textfield.TextFieldLabelPlacement", + "defaultValue": { + "value": "inner", + "codeName": "Inner" + }, + "values": [ + { + "value": "inner", + "codeName": "Inner" + }, + { + "value": "none", + "codeName": "None" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "TextFieldView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.textfield.TextFieldView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "error", + "codeName": "Error" + } + ] + } + ] + }, "variations": [ { "name": "s.default", - "composeReference": "TextField.S.Default" + "composeReference": "TextField.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "required-placement", + "value": "none" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.error", - "composeReference": "TextField.S.Error" + "composeReference": "TextField.S.Error", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "required-placement", + "value": "none" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "s.required-start.default", - "composeReference": "TextField.S.RequiredStart.Default" + "composeReference": "TextField.S.RequiredStart.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "required-placement", + "value": "start" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.required-start.error", - "composeReference": "TextField.S.RequiredStart.Error" + "composeReference": "TextField.S.RequiredStart.Error", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "required-placement", + "value": "start" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "s.required-end.default", - "composeReference": "TextField.S.RequiredEnd.Default" + "composeReference": "TextField.S.RequiredEnd.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "required-placement", + "value": "end" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.required-end.error", - "composeReference": "TextField.S.RequiredEnd.Error" + "composeReference": "TextField.S.RequiredEnd.Error", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "required-placement", + "value": "end" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "s.inner-label.default", - "composeReference": "TextField.S.InnerLabel.Default" + "composeReference": "TextField.S.InnerLabel.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "required-placement", + "value": "none" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.inner-label.error", - "composeReference": "TextField.S.InnerLabel.Error" + "composeReference": "TextField.S.InnerLabel.Error", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "required-placement", + "value": "none" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "s.inner-label.required-start.default", - "composeReference": "TextField.S.InnerLabel.RequiredStart.Default" + "composeReference": "TextField.S.InnerLabel.RequiredStart.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "required-placement", + "value": "start" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.inner-label.required-start.error", - "composeReference": "TextField.S.InnerLabel.RequiredStart.Error" + "composeReference": "TextField.S.InnerLabel.RequiredStart.Error", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "required-placement", + "value": "start" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "s.inner-label.required-end.default", - "composeReference": "TextField.S.InnerLabel.RequiredEnd.Default" + "composeReference": "TextField.S.InnerLabel.RequiredEnd.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "required-placement", + "value": "end" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.inner-label.required-end.error", - "composeReference": "TextField.S.InnerLabel.RequiredEnd.Error" + "composeReference": "TextField.S.InnerLabel.RequiredEnd.Error", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "required-placement", + "value": "end" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "m.default", - "composeReference": "TextField.M.Default" + "composeReference": "TextField.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "required-placement", + "value": "none" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.error", - "composeReference": "TextField.M.Error" + "composeReference": "TextField.M.Error", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "required-placement", + "value": "none" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "m.required-start.default", - "composeReference": "TextField.M.RequiredStart.Default" + "composeReference": "TextField.M.RequiredStart.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "required-placement", + "value": "start" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.required-start.error", - "composeReference": "TextField.M.RequiredStart.Error" + "composeReference": "TextField.M.RequiredStart.Error", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "required-placement", + "value": "start" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "m.required-end.default", - "composeReference": "TextField.M.RequiredEnd.Default" + "composeReference": "TextField.M.RequiredEnd.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "required-placement", + "value": "end" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.required-end.error", - "composeReference": "TextField.M.RequiredEnd.Error" + "composeReference": "TextField.M.RequiredEnd.Error", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "required-placement", + "value": "end" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "m.inner-label.default", - "composeReference": "TextField.M.InnerLabel.Default" + "composeReference": "TextField.M.InnerLabel.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "required-placement", + "value": "none" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.inner-label.error", - "composeReference": "TextField.M.InnerLabel.Error" + "composeReference": "TextField.M.InnerLabel.Error", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "required-placement", + "value": "none" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "m.inner-label.required-start.default", - "composeReference": "TextField.M.InnerLabel.RequiredStart.Default" + "composeReference": "TextField.M.InnerLabel.RequiredStart.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "required-placement", + "value": "start" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.inner-label.required-start.error", - "composeReference": "TextField.M.InnerLabel.RequiredStart.Error" + "composeReference": "TextField.M.InnerLabel.RequiredStart.Error", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "required-placement", + "value": "start" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "m.inner-label.required-end.default", - "composeReference": "TextField.M.InnerLabel.RequiredEnd.Default" + "composeReference": "TextField.M.InnerLabel.RequiredEnd.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "required-placement", + "value": "end" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.inner-label.required-end.error", - "composeReference": "TextField.M.InnerLabel.RequiredEnd.Error" + "composeReference": "TextField.M.InnerLabel.RequiredEnd.Error", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "required-placement", + "value": "end" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "l.default", - "composeReference": "TextField.L.Default" + "composeReference": "TextField.L.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "required-placement", + "value": "none" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.error", - "composeReference": "TextField.L.Error" + "composeReference": "TextField.L.Error", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "required-placement", + "value": "none" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "l.required-start.default", - "composeReference": "TextField.L.RequiredStart.Default" + "composeReference": "TextField.L.RequiredStart.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "required-placement", + "value": "start" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.required-start.error", - "composeReference": "TextField.L.RequiredStart.Error" + "composeReference": "TextField.L.RequiredStart.Error", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "required-placement", + "value": "start" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "l.required-end.default", - "composeReference": "TextField.L.RequiredEnd.Default" + "composeReference": "TextField.L.RequiredEnd.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "required-placement", + "value": "end" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.required-end.error", - "composeReference": "TextField.L.RequiredEnd.Error" + "composeReference": "TextField.L.RequiredEnd.Error", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "required-placement", + "value": "end" + }, + { + "name": "label-placement", + "value": "none" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "l.inner-label.default", - "composeReference": "TextField.L.InnerLabel.Default" + "composeReference": "TextField.L.InnerLabel.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "required-placement", + "value": "none" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.inner-label.error", - "composeReference": "TextField.L.InnerLabel.Error" + "composeReference": "TextField.L.InnerLabel.Error", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "required-placement", + "value": "none" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "l.inner-label.required-start.default", - "composeReference": "TextField.L.InnerLabel.RequiredStart.Default" + "composeReference": "TextField.L.InnerLabel.RequiredStart.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "required-placement", + "value": "start" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.inner-label.required-start.error", - "composeReference": "TextField.L.InnerLabel.RequiredStart.Error" + "composeReference": "TextField.L.InnerLabel.RequiredStart.Error", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "required-placement", + "value": "start" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "error" + } + ] }, { "name": "l.inner-label.required-end.default", - "composeReference": "TextField.L.InnerLabel.RequiredEnd.Default" + "composeReference": "TextField.L.InnerLabel.RequiredEnd.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "required-placement", + "value": "end" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.inner-label.required-end.error", - "composeReference": "TextField.L.InnerLabel.RequiredEnd.Error" + "composeReference": "TextField.L.InnerLabel.RequiredEnd.Error", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "required-placement", + "value": "end" + }, + { + "name": "label-placement", + "value": "inner" + }, + { + "name": "view", + "value": "error" + } + ] } ] }, @@ -3375,14 +15380,70 @@ "key": "tooltip", "coreName": "Tooltip", "styleName": "Tooltip", + "props": [ + { + "name": "size", + "values": [ + "m", + "s" + ], + "defaultValue": "m" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.tooltip", + "stylesClassName": "TooltipStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.tooltip.TooltipStyles", + "receiverClassName": "TooltipStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.tooltip.TooltipStyles.Companion", + "returnTypeName": "TooltipStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.TooltipStyle", + "modifyReceiverTypeName": "TooltipStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.TooltipStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "TooltipSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.tooltip.TooltipSize", + "defaultValue": { + "value": "m", + "codeName": "M" + }, + "values": [ + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + } + ] + } + ] + }, "variations": [ { "name": "m", - "composeReference": "Tooltip.M" + "composeReference": "Tooltip.M", + "props": [ + { + "name": "size", + "value": "m" + } + ] }, { "name": "s", - "composeReference": "Tooltip.S" + "composeReference": "Tooltip.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] } ] }, @@ -3390,26 +15451,150 @@ "key": "wheel", "coreName": "Wheel", "styleName": "Wheel", + "props": [ + { + "name": "size", + "values": [ + "h1" + ], + "defaultValue": "h1" + }, + { + "name": "alignment", + "values": [ + "left", + "right", + "center", + "mixed" + ], + "defaultValue": "left" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.wheel", + "stylesClassName": "WheelStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.wheel.WheelStyles", + "receiverClassName": "WheelStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.wheel.WheelStyles.Companion", + "returnTypeName": "WheelStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.WheelStyle", + "modifyReceiverTypeName": "WheelStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.WheelStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "WheelSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.wheel.WheelSize", + "defaultValue": { + "value": "h1", + "codeName": "H1" + }, + "values": [ + { + "value": "h1", + "codeName": "H1" + } + ] + }, + { + "name": "alignment", + "type": "enum", + "required": false, + "typeName": "WheelAlignment", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.wheel.WheelAlignment", + "defaultValue": { + "value": "left", + "codeName": "Left" + }, + "values": [ + { + "value": "left", + "codeName": "Left" + }, + { + "value": "right", + "codeName": "Right" + }, + { + "value": "center", + "codeName": "Center" + }, + { + "value": "mixed", + "codeName": "Mixed" + } + ] + } + ] + }, "variations": [ { "name": "h1", - "composeReference": "Wheel.H1" + "composeReference": "Wheel.H1", + "props": [ + { + "name": "size", + "value": "h1" + } + ] }, { "name": "h1.right-align", - "composeReference": "Wheel.H1.RightAlign" + "composeReference": "Wheel.H1.RightAlign", + "props": [ + { + "name": "size", + "value": "h1" + }, + { + "name": "alignment", + "value": "right" + } + ] }, { "name": "h1.center-align", - "composeReference": "Wheel.H1.CenterAlign" + "composeReference": "Wheel.H1.CenterAlign", + "props": [ + { + "name": "size", + "value": "h1" + }, + { + "name": "alignment", + "value": "center" + } + ] }, { "name": "h1.left-align", - "composeReference": "Wheel.H1.LeftAlign" + "composeReference": "Wheel.H1.LeftAlign", + "props": [ + { + "name": "size", + "value": "h1" + }, + { + "name": "alignment", + "value": "left" + } + ] }, { "name": "h1.mixed-align", - "composeReference": "Wheel.H1.MixedAlign" + "composeReference": "Wheel.H1.MixedAlign", + "props": [ + { + "name": "size", + "value": "h1" + }, + { + "name": "alignment", + "value": "mixed" + } + ] } ] }, @@ -3417,86 +15602,439 @@ "key": "note", "coreName": "Note", "styleName": "Note", + "props": [ + { + "name": "content-before", + "values": [ + "fixed", + "scalable" + ], + "defaultValue": "fixed" + }, + { + "name": "has-close", + "defaultValue": "false" + }, + { + "name": "view", + "values": [ + "default", + "positive", + "negative", + "warning", + "info" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.note", + "stylesClassName": "NoteStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.note.NoteStyles", + "receiverClassName": "NoteStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.note.NoteStyles.Companion", + "returnTypeName": "NoteStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.NoteStyle", + "modifyReceiverTypeName": "NoteStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.NoteStyleBuilder", + "params": [ + { + "name": "contentBefore", + "type": "enum", + "required": false, + "typeName": "NoteContentBefore", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.note.NoteContentBefore", + "defaultValue": { + "value": "fixed", + "codeName": "Fixed" + }, + "values": [ + { + "value": "fixed", + "codeName": "Fixed" + }, + { + "value": "scalable", + "codeName": "Scalable" + } + ] + }, + { + "name": "hasClose", + "type": "boolean", + "required": false, + "typeName": "Boolean", + "typeQualifiedName": "kotlin.Boolean", + "defaultValue": { + "value": "false", + "codeName": "false" + }, + "values": [ + { + "value": "true", + "codeName": "true" + }, + { + "value": "false", + "codeName": "false" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "NoteView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.note.NoteView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "positive", + "codeName": "Positive" + }, + { + "value": "negative", + "codeName": "Negative" + }, + { + "value": "warning", + "codeName": "Warning" + }, + { + "value": "info", + "codeName": "Info" + } + ] + } + ] + }, "variations": [ { "name": "content-before-scalable.default", - "composeReference": "Note.ContentBeforeScalable.Default" + "composeReference": "Note.ContentBeforeScalable.Default", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "content-before-scalable.positive", - "composeReference": "Note.ContentBeforeScalable.Positive" + "composeReference": "Note.ContentBeforeScalable.Positive", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "content-before-scalable.negative", - "composeReference": "Note.ContentBeforeScalable.Negative" + "composeReference": "Note.ContentBeforeScalable.Negative", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "content-before-scalable.warning", - "composeReference": "Note.ContentBeforeScalable.Warning" + "composeReference": "Note.ContentBeforeScalable.Warning", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "content-before-scalable.info", - "composeReference": "Note.ContentBeforeScalable.Info" + "composeReference": "Note.ContentBeforeScalable.Info", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "content-before-scalable.has-close.default", - "composeReference": "Note.ContentBeforeScalable.HasClose.Default" + "composeReference": "Note.ContentBeforeScalable.HasClose.Default", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "content-before-scalable.has-close.positive", - "composeReference": "Note.ContentBeforeScalable.HasClose.Positive" + "composeReference": "Note.ContentBeforeScalable.HasClose.Positive", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "content-before-scalable.has-close.negative", - "composeReference": "Note.ContentBeforeScalable.HasClose.Negative" + "composeReference": "Note.ContentBeforeScalable.HasClose.Negative", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "content-before-scalable.has-close.warning", - "composeReference": "Note.ContentBeforeScalable.HasClose.Warning" + "composeReference": "Note.ContentBeforeScalable.HasClose.Warning", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "content-before-scalable.has-close.info", - "composeReference": "Note.ContentBeforeScalable.HasClose.Info" + "composeReference": "Note.ContentBeforeScalable.HasClose.Info", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "content-before-fixed.default", - "composeReference": "Note.ContentBeforeFixed.Default" + "composeReference": "Note.ContentBeforeFixed.Default", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "content-before-fixed.positive", - "composeReference": "Note.ContentBeforeFixed.Positive" + "composeReference": "Note.ContentBeforeFixed.Positive", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "content-before-fixed.negative", - "composeReference": "Note.ContentBeforeFixed.Negative" + "composeReference": "Note.ContentBeforeFixed.Negative", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "content-before-fixed.warning", - "composeReference": "Note.ContentBeforeFixed.Warning" + "composeReference": "Note.ContentBeforeFixed.Warning", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "content-before-fixed.info", - "composeReference": "Note.ContentBeforeFixed.Info" + "composeReference": "Note.ContentBeforeFixed.Info", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "content-before-fixed.has-close.default", - "composeReference": "Note.ContentBeforeFixed.HasClose.Default" + "composeReference": "Note.ContentBeforeFixed.HasClose.Default", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "content-before-fixed.has-close.positive", - "composeReference": "Note.ContentBeforeFixed.HasClose.Positive" + "composeReference": "Note.ContentBeforeFixed.HasClose.Positive", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "content-before-fixed.has-close.negative", - "composeReference": "Note.ContentBeforeFixed.HasClose.Negative" + "composeReference": "Note.ContentBeforeFixed.HasClose.Negative", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "content-before-fixed.has-close.warning", - "composeReference": "Note.ContentBeforeFixed.HasClose.Warning" + "composeReference": "Note.ContentBeforeFixed.HasClose.Warning", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "content-before-fixed.has-close.info", - "composeReference": "Note.ContentBeforeFixed.HasClose.Info" + "composeReference": "Note.ContentBeforeFixed.HasClose.Info", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "info" + } + ] } ] }, @@ -3504,86 +16042,439 @@ "key": "note-compact", "coreName": "NoteCompact", "styleName": "NoteCompact", + "props": [ + { + "name": "content-before", + "values": [ + "fixed", + "scalable" + ], + "defaultValue": "fixed" + }, + { + "name": "has-close", + "defaultValue": "false" + }, + { + "name": "view", + "values": [ + "default", + "positive", + "negative", + "warning", + "info" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.notecompact", + "stylesClassName": "NoteCompactStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.notecompact.NoteCompactStyles", + "receiverClassName": "NoteCompactStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.notecompact.NoteCompactStyles.Companion", + "returnTypeName": "NoteCompactStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.NoteCompactStyle", + "modifyReceiverTypeName": "NoteCompactStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.NoteCompactStyleBuilder", + "params": [ + { + "name": "contentBefore", + "type": "enum", + "required": false, + "typeName": "NoteCompactContentBefore", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.notecompact.NoteCompactContentBefore", + "defaultValue": { + "value": "fixed", + "codeName": "Fixed" + }, + "values": [ + { + "value": "fixed", + "codeName": "Fixed" + }, + { + "value": "scalable", + "codeName": "Scalable" + } + ] + }, + { + "name": "hasClose", + "type": "boolean", + "required": false, + "typeName": "Boolean", + "typeQualifiedName": "kotlin.Boolean", + "defaultValue": { + "value": "false", + "codeName": "false" + }, + "values": [ + { + "value": "true", + "codeName": "true" + }, + { + "value": "false", + "codeName": "false" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "NoteCompactView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.notecompact.NoteCompactView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "positive", + "codeName": "Positive" + }, + { + "value": "negative", + "codeName": "Negative" + }, + { + "value": "warning", + "codeName": "Warning" + }, + { + "value": "info", + "codeName": "Info" + } + ] + } + ] + }, "variations": [ { "name": "content-before-fixed.default", - "composeReference": "NoteCompact.ContentBeforeFixed.Default" + "composeReference": "NoteCompact.ContentBeforeFixed.Default", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "content-before-fixed.positive", - "composeReference": "NoteCompact.ContentBeforeFixed.Positive" + "composeReference": "NoteCompact.ContentBeforeFixed.Positive", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "content-before-fixed.negative", - "composeReference": "NoteCompact.ContentBeforeFixed.Negative" + "composeReference": "NoteCompact.ContentBeforeFixed.Negative", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "content-before-fixed.warning", - "composeReference": "NoteCompact.ContentBeforeFixed.Warning" + "composeReference": "NoteCompact.ContentBeforeFixed.Warning", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "content-before-fixed.info", - "composeReference": "NoteCompact.ContentBeforeFixed.Info" + "composeReference": "NoteCompact.ContentBeforeFixed.Info", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "content-before-fixed.has-close.default", - "composeReference": "NoteCompact.ContentBeforeFixed.HasClose.Default" + "composeReference": "NoteCompact.ContentBeforeFixed.HasClose.Default", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "content-before-fixed.has-close.positive", - "composeReference": "NoteCompact.ContentBeforeFixed.HasClose.Positive" + "composeReference": "NoteCompact.ContentBeforeFixed.HasClose.Positive", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "content-before-fixed.has-close.negative", - "composeReference": "NoteCompact.ContentBeforeFixed.HasClose.Negative" + "composeReference": "NoteCompact.ContentBeforeFixed.HasClose.Negative", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "content-before-fixed.has-close.warning", - "composeReference": "NoteCompact.ContentBeforeFixed.HasClose.Warning" + "composeReference": "NoteCompact.ContentBeforeFixed.HasClose.Warning", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "content-before-fixed.has-close.info", - "composeReference": "NoteCompact.ContentBeforeFixed.HasClose.Info" + "composeReference": "NoteCompact.ContentBeforeFixed.HasClose.Info", + "props": [ + { + "name": "content-before", + "value": "fixed" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "content-before-scalable.default", - "composeReference": "NoteCompact.ContentBeforeScalable.Default" + "composeReference": "NoteCompact.ContentBeforeScalable.Default", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "content-before-scalable.positive", - "composeReference": "NoteCompact.ContentBeforeScalable.Positive" + "composeReference": "NoteCompact.ContentBeforeScalable.Positive", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "content-before-scalable.negative", - "composeReference": "NoteCompact.ContentBeforeScalable.Negative" + "composeReference": "NoteCompact.ContentBeforeScalable.Negative", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "content-before-scalable.warning", - "composeReference": "NoteCompact.ContentBeforeScalable.Warning" + "composeReference": "NoteCompact.ContentBeforeScalable.Warning", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "content-before-scalable.info", - "composeReference": "NoteCompact.ContentBeforeScalable.Info" + "composeReference": "NoteCompact.ContentBeforeScalable.Info", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "content-before-scalable.has-close.default", - "composeReference": "NoteCompact.ContentBeforeScalable.HasClose.Default" + "composeReference": "NoteCompact.ContentBeforeScalable.HasClose.Default", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "content-before-scalable.has-close.positive", - "composeReference": "NoteCompact.ContentBeforeScalable.HasClose.Positive" + "composeReference": "NoteCompact.ContentBeforeScalable.HasClose.Positive", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "content-before-scalable.has-close.negative", - "composeReference": "NoteCompact.ContentBeforeScalable.HasClose.Negative" + "composeReference": "NoteCompact.ContentBeforeScalable.HasClose.Negative", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "content-before-scalable.has-close.warning", - "composeReference": "NoteCompact.ContentBeforeScalable.HasClose.Warning" + "composeReference": "NoteCompact.ContentBeforeScalable.HasClose.Warning", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "content-before-scalable.has-close.info", - "composeReference": "NoteCompact.ContentBeforeScalable.HasClose.Info" + "composeReference": "NoteCompact.ContentBeforeScalable.HasClose.Info", + "props": [ + { + "name": "content-before", + "value": "scalable" + }, + { + "name": "has-close", + "value": "true" + }, + { + "name": "view", + "value": "info" + } + ] } ] }, @@ -3591,40 +16482,85 @@ "key": "toast", "coreName": "Toast", "styleName": "Toast", + "props": [ + { + "name": "view", + "values": [ + "default", + "positive", + "negative" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.toast", + "stylesClassName": "ToastStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.toast.ToastStyles", + "receiverClassName": "ToastStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.toast.ToastStyles.Companion", + "returnTypeName": "ToastStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ToastStyle", + "modifyReceiverTypeName": "ToastStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ToastStyleBuilder", + "params": [ + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "ToastView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.toast.ToastView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "positive", + "codeName": "Positive" + }, + { + "value": "negative", + "codeName": "Negative" + } + ] + } + ] + }, "variations": [ { "name": "default", - "composeReference": "Toast.Default" + "composeReference": "Toast.Default", + "props": [ + { + "name": "view", + "value": "default" + } + ] }, { "name": "positive", - "composeReference": "Toast.Positive" + "composeReference": "Toast.Positive", + "props": [ + { + "name": "view", + "value": "positive" + } + ] }, { "name": "negative", - "composeReference": "Toast.Negative" - } - ] - }, - { - "key": "list", - "coreName": "List", - "styleName": "ListNumbered", - "variations": [ - { - "name": "s", - "composeReference": "ListNumbered.S" - } - ] - }, - { - "key": "list-item", - "coreName": "ListItem", - "styleName": "ListNumberedItem", - "variations": [ - { - "name": "s", - "composeReference": "ListNumberedItem.S" + "composeReference": "Toast.Negative", + "props": [ + { + "name": "view", + "value": "negative" + } + ] } ] }, @@ -3632,174 +16568,712 @@ "key": "link-button", "coreName": "LinkButton", "styleName": "LinkButton", + "props": [ + { + "name": "size", + "values": [ + "xl", + "l", + "m", + "s", + "xs", + "xxs" + ], + "defaultValue": "xl" + }, + { + "name": "view", + "values": [ + "default", + "secondary", + "accent", + "positive", + "negative", + "warning", + "info" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.linkbutton", + "stylesClassName": "LinkButtonStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.linkbutton.LinkButtonStyles", + "receiverClassName": "LinkButtonStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.linkbutton.LinkButtonStyles.Companion", + "returnTypeName": "ButtonStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ButtonStyle", + "modifyReceiverTypeName": "LinkButtonStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.LinkButtonStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "LinkButtonSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.linkbutton.LinkButtonSize", + "defaultValue": { + "value": "xl", + "codeName": "Xl" + }, + "values": [ + { + "value": "xl", + "codeName": "Xl" + }, + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + }, + { + "value": "xxs", + "codeName": "Xxs" + } + ] + }, + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "LinkButtonView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.linkbutton.LinkButtonView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "secondary", + "codeName": "Secondary" + }, + { + "value": "accent", + "codeName": "Accent" + }, + { + "value": "positive", + "codeName": "Positive" + }, + { + "value": "negative", + "codeName": "Negative" + }, + { + "value": "warning", + "codeName": "Warning" + }, + { + "value": "info", + "codeName": "Info" + } + ] + } + ] + }, "variations": [ { "name": "xl.default", - "composeReference": "LinkButton.Xl.Default" + "composeReference": "LinkButton.Xl.Default", + "props": [ + { + "name": "size", + "value": "xl" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xl.secondary", - "composeReference": "LinkButton.Xl.Secondary" + "composeReference": "LinkButton.Xl.Secondary", + "props": [ + { + "name": "size", + "value": "xl" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xl.accent", - "composeReference": "LinkButton.Xl.Accent" + "composeReference": "LinkButton.Xl.Accent", + "props": [ + { + "name": "size", + "value": "xl" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xl.positive", - "composeReference": "LinkButton.Xl.Positive" + "composeReference": "LinkButton.Xl.Positive", + "props": [ + { + "name": "size", + "value": "xl" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xl.negative", - "composeReference": "LinkButton.Xl.Negative" + "composeReference": "LinkButton.Xl.Negative", + "props": [ + { + "name": "size", + "value": "xl" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xl.warning", - "composeReference": "LinkButton.Xl.Warning" + "composeReference": "LinkButton.Xl.Warning", + "props": [ + { + "name": "size", + "value": "xl" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xl.info", - "composeReference": "LinkButton.Xl.Info" + "composeReference": "LinkButton.Xl.Info", + "props": [ + { + "name": "size", + "value": "xl" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "l.default", - "composeReference": "LinkButton.L.Default" + "composeReference": "LinkButton.L.Default", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "l.secondary", - "composeReference": "LinkButton.L.Secondary" + "composeReference": "LinkButton.L.Secondary", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "l.accent", - "composeReference": "LinkButton.L.Accent" + "composeReference": "LinkButton.L.Accent", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "l.positive", - "composeReference": "LinkButton.L.Positive" + "composeReference": "LinkButton.L.Positive", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "l.negative", - "composeReference": "LinkButton.L.Negative" + "composeReference": "LinkButton.L.Negative", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "l.warning", - "composeReference": "LinkButton.L.Warning" + "composeReference": "LinkButton.L.Warning", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "l.info", - "composeReference": "LinkButton.L.Info" + "composeReference": "LinkButton.L.Info", + "props": [ + { + "name": "size", + "value": "l" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "m.default", - "composeReference": "LinkButton.M.Default" + "composeReference": "LinkButton.M.Default", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "m.secondary", - "composeReference": "LinkButton.M.Secondary" + "composeReference": "LinkButton.M.Secondary", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "m.accent", - "composeReference": "LinkButton.M.Accent" + "composeReference": "LinkButton.M.Accent", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "m.positive", - "composeReference": "LinkButton.M.Positive" + "composeReference": "LinkButton.M.Positive", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "m.negative", - "composeReference": "LinkButton.M.Negative" + "composeReference": "LinkButton.M.Negative", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "m.warning", - "composeReference": "LinkButton.M.Warning" + "composeReference": "LinkButton.M.Warning", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "m.info", - "composeReference": "LinkButton.M.Info" + "composeReference": "LinkButton.M.Info", + "props": [ + { + "name": "size", + "value": "m" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "s.default", - "composeReference": "LinkButton.S.Default" + "composeReference": "LinkButton.S.Default", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "s.secondary", - "composeReference": "LinkButton.S.Secondary" + "composeReference": "LinkButton.S.Secondary", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "s.accent", - "composeReference": "LinkButton.S.Accent" + "composeReference": "LinkButton.S.Accent", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "s.positive", - "composeReference": "LinkButton.S.Positive" + "composeReference": "LinkButton.S.Positive", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "s.negative", - "composeReference": "LinkButton.S.Negative" + "composeReference": "LinkButton.S.Negative", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "s.warning", - "composeReference": "LinkButton.S.Warning" + "composeReference": "LinkButton.S.Warning", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "s.info", - "composeReference": "LinkButton.S.Info" + "composeReference": "LinkButton.S.Info", + "props": [ + { + "name": "size", + "value": "s" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "xs.default", - "composeReference": "LinkButton.Xs.Default" + "composeReference": "LinkButton.Xs.Default", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xs.secondary", - "composeReference": "LinkButton.Xs.Secondary" + "composeReference": "LinkButton.Xs.Secondary", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xs.accent", - "composeReference": "LinkButton.Xs.Accent" + "composeReference": "LinkButton.Xs.Accent", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xs.positive", - "composeReference": "LinkButton.Xs.Positive" + "composeReference": "LinkButton.Xs.Positive", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xs.negative", - "composeReference": "LinkButton.Xs.Negative" + "composeReference": "LinkButton.Xs.Negative", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xs.warning", - "composeReference": "LinkButton.Xs.Warning" + "composeReference": "LinkButton.Xs.Warning", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xs.info", - "composeReference": "LinkButton.Xs.Info" + "composeReference": "LinkButton.Xs.Info", + "props": [ + { + "name": "size", + "value": "xs" + }, + { + "name": "view", + "value": "info" + } + ] }, { "name": "xxs.default", - "composeReference": "LinkButton.Xxs.Default" + "composeReference": "LinkButton.Xxs.Default", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "default" + } + ] }, { "name": "xxs.secondary", - "composeReference": "LinkButton.Xxs.Secondary" + "composeReference": "LinkButton.Xxs.Secondary", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "secondary" + } + ] }, { "name": "xxs.accent", - "composeReference": "LinkButton.Xxs.Accent" + "composeReference": "LinkButton.Xxs.Accent", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "accent" + } + ] }, { "name": "xxs.positive", - "composeReference": "LinkButton.Xxs.Positive" + "composeReference": "LinkButton.Xxs.Positive", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "positive" + } + ] }, { "name": "xxs.negative", - "composeReference": "LinkButton.Xxs.Negative" + "composeReference": "LinkButton.Xxs.Negative", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "negative" + } + ] }, { "name": "xxs.warning", - "composeReference": "LinkButton.Xxs.Warning" + "composeReference": "LinkButton.Xxs.Warning", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "warning" + } + ] }, { "name": "xxs.info", - "composeReference": "LinkButton.Xxs.Info" + "composeReference": "LinkButton.Xxs.Info", + "props": [ + { + "name": "size", + "value": "xxs" + }, + { + "name": "view", + "value": "info" + } + ] } ] }, @@ -3807,6 +17281,17 @@ "key": "bottom-sheet", "coreName": "BottomSheet", "styleName": "ModalBottomSheet", + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.bottomsheet", + "stylesClassName": "BottomSheetStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.bottomsheet.BottomSheetStyles", + "receiverClassName": "BottomSheetStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.bottomsheet.BottomSheetStyles.Companion", + "returnTypeName": "ModalBottomSheetStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.ModalBottomSheetStyle", + "modifyReceiverTypeName": "ModalBottomSheetStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.ModalBottomSheetStyleBuilder" + }, "variations": [ { "name": "Default", @@ -3818,6 +17303,17 @@ "key": "rect-skeleton", "coreName": "RectSkeleton", "styleName": "RectSkeleton", + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.rectskeleton", + "stylesClassName": "RectSkeletonStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.rectskeleton.RectSkeletonStyles", + "receiverClassName": "RectSkeletonStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.rectskeleton.RectSkeletonStyles.Companion", + "returnTypeName": "RectSkeletonStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.RectSkeletonStyle", + "modifyReceiverTypeName": "RectSkeletonStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.RectSkeletonStyleBuilder" + }, "variations": [ { "name": "Default", @@ -3829,26 +17325,116 @@ "key": "text-skeleton", "coreName": "TextSkeleton", "styleName": "TextSkeletonBody", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s", + "xs", + "xxs" + ], + "defaultValue": "l" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.textskeleton", + "stylesClassName": "TextSkeletonStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonStyles", + "receiverClassName": "TextSkeletonStyles.Body", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonStyles.Body", + "returnTypeName": "TextSkeletonStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.TextSkeletonStyle", + "modifyReceiverTypeName": "TextSkeletonStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.TextSkeletonStyleBuilder", + "holderName": "Body", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "TextSkeletonBodySize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonBodySize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + }, + { + "value": "xxs", + "codeName": "Xxs" + } + ] + } + ] + }, "variations": [ { "name": "l", - "composeReference": "TextSkeletonBody.L" + "composeReference": "TextSkeletonBody.L", + "props": [ + { + "name": "size", + "value": "l" + } + ] }, { "name": "m", - "composeReference": "TextSkeletonBody.M" + "composeReference": "TextSkeletonBody.M", + "props": [ + { + "name": "size", + "value": "m" + } + ] }, { "name": "s", - "composeReference": "TextSkeletonBody.S" + "composeReference": "TextSkeletonBody.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] }, { "name": "xs", - "composeReference": "TextSkeletonBody.Xs" + "composeReference": "TextSkeletonBody.Xs", + "props": [ + { + "name": "size", + "value": "xs" + } + ] }, { "name": "xxs", - "composeReference": "TextSkeletonBody.Xxs" + "composeReference": "TextSkeletonBody.Xxs", + "props": [ + { + "name": "size", + "value": "xxs" + } + ] } ] }, @@ -3856,18 +17442,86 @@ "key": "text-skeleton", "coreName": "TextSkeleton", "styleName": "TextSkeletonDisplay", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s" + ], + "defaultValue": "l" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.textskeleton", + "stylesClassName": "TextSkeletonStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonStyles", + "receiverClassName": "TextSkeletonStyles.Display", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonStyles.Display", + "returnTypeName": "TextSkeletonStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.TextSkeletonStyle", + "modifyReceiverTypeName": "TextSkeletonStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.TextSkeletonStyleBuilder", + "holderName": "Display", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "TextSkeletonDisplaySize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonDisplaySize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + } + ] + } + ] + }, "variations": [ { "name": "l", - "composeReference": "TextSkeletonDisplay.L" + "composeReference": "TextSkeletonDisplay.L", + "props": [ + { + "name": "size", + "value": "l" + } + ] }, { "name": "m", - "composeReference": "TextSkeletonDisplay.M" + "composeReference": "TextSkeletonDisplay.M", + "props": [ + { + "name": "size", + "value": "m" + } + ] }, { "name": "s", - "composeReference": "TextSkeletonDisplay.S" + "composeReference": "TextSkeletonDisplay.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] } ] }, @@ -3875,30 +17529,131 @@ "key": "text-skeleton", "coreName": "TextSkeleton", "styleName": "TextSkeletonHeader", + "props": [ + { + "name": "size", + "values": [ + "h1", + "h2", + "h3", + "h4", + "h5", + "h6" + ], + "defaultValue": "h1" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.textskeleton", + "stylesClassName": "TextSkeletonStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonStyles", + "receiverClassName": "TextSkeletonStyles.Header", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonStyles.Header", + "returnTypeName": "TextSkeletonStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.TextSkeletonStyle", + "modifyReceiverTypeName": "TextSkeletonStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.TextSkeletonStyleBuilder", + "holderName": "Header", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "TextSkeletonHeaderSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonHeaderSize", + "defaultValue": { + "value": "h1", + "codeName": "H1" + }, + "values": [ + { + "value": "h1", + "codeName": "H1" + }, + { + "value": "h2", + "codeName": "H2" + }, + { + "value": "h3", + "codeName": "H3" + }, + { + "value": "h4", + "codeName": "H4" + }, + { + "value": "h5", + "codeName": "H5" + }, + { + "value": "h6", + "codeName": "H6" + } + ] + } + ] + }, "variations": [ { "name": "h1", - "composeReference": "TextSkeletonHeader.H1" + "composeReference": "TextSkeletonHeader.H1", + "props": [ + { + "name": "size", + "value": "h1" + } + ] }, { "name": "h2", - "composeReference": "TextSkeletonHeader.H2" + "composeReference": "TextSkeletonHeader.H2", + "props": [ + { + "name": "size", + "value": "h2" + } + ] }, { "name": "h3", - "composeReference": "TextSkeletonHeader.H3" + "composeReference": "TextSkeletonHeader.H3", + "props": [ + { + "name": "size", + "value": "h3" + } + ] }, { "name": "h4", - "composeReference": "TextSkeletonHeader.H4" + "composeReference": "TextSkeletonHeader.H4", + "props": [ + { + "name": "size", + "value": "h4" + } + ] }, { "name": "h5", - "composeReference": "TextSkeletonHeader.H5" + "composeReference": "TextSkeletonHeader.H5", + "props": [ + { + "name": "size", + "value": "h5" + } + ] }, { "name": "h6", - "composeReference": "TextSkeletonHeader.H6" + "composeReference": "TextSkeletonHeader.H6", + "props": [ + { + "name": "size", + "value": "h6" + } + ] } ] }, @@ -3906,22 +17661,101 @@ "key": "text-skeleton", "coreName": "TextSkeleton", "styleName": "TextSkeletonText", + "props": [ + { + "name": "size", + "values": [ + "l", + "m", + "s", + "xs" + ], + "defaultValue": "l" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.textskeleton", + "stylesClassName": "TextSkeletonStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonStyles", + "receiverClassName": "TextSkeletonStyles.Text", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonStyles.Text", + "returnTypeName": "TextSkeletonStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.TextSkeletonStyle", + "modifyReceiverTypeName": "TextSkeletonStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.TextSkeletonStyleBuilder", + "holderName": "Text", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "TextSkeletonTextSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonTextSize", + "defaultValue": { + "value": "l", + "codeName": "L" + }, + "values": [ + { + "value": "l", + "codeName": "L" + }, + { + "value": "m", + "codeName": "M" + }, + { + "value": "s", + "codeName": "S" + }, + { + "value": "xs", + "codeName": "Xs" + } + ] + } + ] + }, "variations": [ { "name": "l", - "composeReference": "TextSkeletonText.L" + "composeReference": "TextSkeletonText.L", + "props": [ + { + "name": "size", + "value": "l" + } + ] }, { "name": "m", - "composeReference": "TextSkeletonText.M" + "composeReference": "TextSkeletonText.M", + "props": [ + { + "name": "size", + "value": "m" + } + ] }, { "name": "s", - "composeReference": "TextSkeletonText.S" + "composeReference": "TextSkeletonText.S", + "props": [ + { + "name": "size", + "value": "s" + } + ] }, { "name": "xs", - "composeReference": "TextSkeletonText.Xs" + "composeReference": "TextSkeletonText.Xs", + "props": [ + { + "name": "size", + "value": "xs" + } + ] } ] }, @@ -3929,22 +17763,100 @@ "key": "form-item", "coreName": "FormItem", "styleName": "FormItem", + "props": [ + { + "name": "view", + "values": [ + "default", + "positive", + "negative", + "warning" + ], + "defaultValue": "default" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.formitem", + "stylesClassName": "FormItemStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.formitem.FormItemStyles", + "receiverClassName": "FormItemStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.formitem.FormItemStyles.Companion", + "returnTypeName": "FormItemStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.FormItemStyle", + "modifyReceiverTypeName": "FormItemStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.FormItemStyleBuilder", + "params": [ + { + "name": "view", + "type": "enum", + "required": false, + "typeName": "FormItemView", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.formitem.FormItemView", + "defaultValue": { + "value": "default", + "codeName": "Default" + }, + "values": [ + { + "value": "default", + "codeName": "Default" + }, + { + "value": "positive", + "codeName": "Positive" + }, + { + "value": "negative", + "codeName": "Negative" + }, + { + "value": "warning", + "codeName": "Warning" + } + ] + } + ] + }, "variations": [ { "name": "default", - "composeReference": "FormItem.Default" + "composeReference": "FormItem.Default", + "props": [ + { + "name": "view", + "value": "default" + } + ] }, { "name": "positive", - "composeReference": "FormItem.Positive" + "composeReference": "FormItem.Positive", + "props": [ + { + "name": "view", + "value": "positive" + } + ] }, { "name": "negative", - "composeReference": "FormItem.Negative" + "composeReference": "FormItem.Negative", + "props": [ + { + "name": "view", + "value": "negative" + } + ] }, { "name": "warning", - "composeReference": "FormItem.Warning" + "composeReference": "FormItem.Warning", + "props": [ + { + "name": "view", + "value": "warning" + } + ] } ] }, @@ -3952,50 +17864,205 @@ "key": "editable", "coreName": "Editable", "styleName": "Editable", + "props": [ + { + "name": "size", + "values": [ + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "body-l", + "body-m", + "body-s", + "body-xs", + "body-xxs" + ], + "defaultValue": "h1" + } + ], + "styleApi": { + "packageName": "com.sdds.plasma.homeds.styles.editable", + "stylesClassName": "EditableStyles", + "stylesClassQualifiedName": "com.sdds.plasma.homeds.styles.editable.EditableStyles", + "receiverClassName": "EditableStyles.Companion", + "receiverClassQualifiedName": "com.sdds.plasma.homeds.styles.editable.EditableStyles.Companion", + "returnTypeName": "EditableStyle", + "returnTypeQualifiedName": "com.sdds.compose.uikit.EditableStyle", + "modifyReceiverTypeName": "EditableStyleBuilder", + "modifyReceiverTypeQualifiedName": "com.sdds.compose.uikit.EditableStyleBuilder", + "params": [ + { + "name": "size", + "type": "enum", + "required": false, + "typeName": "EditableSize", + "typeQualifiedName": "com.sdds.plasma.homeds.styles.editable.EditableSize", + "defaultValue": { + "value": "h1", + "codeName": "H1" + }, + "values": [ + { + "value": "h1", + "codeName": "H1" + }, + { + "value": "h2", + "codeName": "H2" + }, + { + "value": "h3", + "codeName": "H3" + }, + { + "value": "h4", + "codeName": "H4" + }, + { + "value": "h5", + "codeName": "H5" + }, + { + "value": "h6", + "codeName": "H6" + }, + { + "value": "body-l", + "codeName": "BodyL" + }, + { + "value": "body-m", + "codeName": "BodyM" + }, + { + "value": "body-s", + "codeName": "BodyS" + }, + { + "value": "body-xs", + "codeName": "BodyXs" + }, + { + "value": "body-xxs", + "codeName": "BodyXxs" + } + ] + } + ] + }, "variations": [ { "name": "h1", - "composeReference": "Editable.H1" + "composeReference": "Editable.H1", + "props": [ + { + "name": "size", + "value": "h1" + } + ] }, { "name": "h2", - "composeReference": "Editable.H2" + "composeReference": "Editable.H2", + "props": [ + { + "name": "size", + "value": "h2" + } + ] }, { "name": "h3", - "composeReference": "Editable.H3" + "composeReference": "Editable.H3", + "props": [ + { + "name": "size", + "value": "h3" + } + ] }, { "name": "h4", - "composeReference": "Editable.H4" + "composeReference": "Editable.H4", + "props": [ + { + "name": "size", + "value": "h4" + } + ] }, { "name": "h5", - "composeReference": "Editable.H5" + "composeReference": "Editable.H5", + "props": [ + { + "name": "size", + "value": "h5" + } + ] }, { "name": "h6", - "composeReference": "Editable.H6" + "composeReference": "Editable.H6", + "props": [ + { + "name": "size", + "value": "h6" + } + ] }, { "name": "body-l", - "composeReference": "Editable.BodyL" + "composeReference": "Editable.BodyL", + "props": [ + { + "name": "size", + "value": "body-l" + } + ] }, { "name": "body-m", - "composeReference": "Editable.BodyM" + "composeReference": "Editable.BodyM", + "props": [ + { + "name": "size", + "value": "body-m" + } + ] }, { "name": "body-s", - "composeReference": "Editable.BodyS" + "composeReference": "Editable.BodyS", + "props": [ + { + "name": "size", + "value": "body-s" + } + ] }, { "name": "body-xs", - "composeReference": "Editable.BodyXs" + "composeReference": "Editable.BodyXs", + "props": [ + { + "name": "size", + "value": "body-xs" + } + ] }, { "name": "body-xxs", - "composeReference": "Editable.BodyXxs" + "composeReference": "Editable.BodyXxs", + "props": [ + { + "name": "size", + "value": "body-xxs" + } + ] } ] } diff --git a/tokens/plasma.homeds.compose/gradle.properties b/tokens/plasma.homeds.compose/gradle.properties index 6270d362aa..0b4436d45a 100644 --- a/tokens/plasma.homeds.compose/gradle.properties +++ b/tokens/plasma.homeds.compose/gradle.properties @@ -6,7 +6,7 @@ versionMinor=19 versionPatch=0 theme-version=0.3.0 -components-version=0.9.0 +components-version=0.10.0 summary.key=plasmaHomeDS diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsAvatarGroupVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsAvatarGroupVariationsCompose.kt index 6b0bcaa9c9..2e3020c787 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsAvatarGroupVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsAvatarGroupVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -12,11 +14,29 @@ import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.AvatarGroupStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.avatargroup.AvatarGroup +import com.sdds.plasma.homeds.styles.avatargroup.AvatarGroupSize +import com.sdds.plasma.homeds.styles.avatargroup.AvatarGroupStyles import com.sdds.plasma.homeds.styles.avatargroup.S +import com.sdds.plasma.homeds.styles.avatargroup.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsAvatarGroupVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "S", variants = listOf("S")), + ) + override val variations: Map> = mapOf( - "S" to ComposeStyleReference { AvatarGroup.S.style() }, + "AvatarGroup.S" to ComposeStyleReference { AvatarGroup.S.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return AvatarGroupStyles.resolve( + size = when (bindings["size"]?.toString()) { + "S" -> AvatarGroupSize.S + else -> AvatarGroupSize.S + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsAvatarVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsAvatarVariationsCompose.kt index 89677203f5..f096180e22 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsAvatarVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsAvatarVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -12,22 +14,51 @@ import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.AvatarStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.avatar.Avatar +import com.sdds.plasma.homeds.styles.avatar.AvatarShape +import com.sdds.plasma.homeds.styles.avatar.AvatarSize +import com.sdds.plasma.homeds.styles.avatar.AvatarStyles import com.sdds.plasma.homeds.styles.avatar.L import com.sdds.plasma.homeds.styles.avatar.M import com.sdds.plasma.homeds.styles.avatar.Pilled import com.sdds.plasma.homeds.styles.avatar.S import com.sdds.plasma.homeds.styles.avatar.Xxl +import com.sdds.plasma.homeds.styles.avatar.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsAvatarVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "Xxl", variants = listOf("Xxl", "L", "M", "S", "Xs")), + Property.SingleChoiceProperty(name = "shape", value = "Default", variants = listOf("Default", "Pilled")), + ) + override val variations: Map> = mapOf( - "Xxl" to ComposeStyleReference { Avatar.Xxl.style() }, - "Xxl.Pilled" to ComposeStyleReference { Avatar.Xxl.Pilled.style() }, - "L" to ComposeStyleReference { Avatar.L.style() }, - "L.Pilled" to ComposeStyleReference { Avatar.L.Pilled.style() }, - "M" to ComposeStyleReference { Avatar.M.style() }, - "M.Pilled" to ComposeStyleReference { Avatar.M.Pilled.style() }, - "S" to ComposeStyleReference { Avatar.S.style() }, - "S.Pilled" to ComposeStyleReference { Avatar.S.Pilled.style() }, + "Avatar.Xxl" to ComposeStyleReference { Avatar.Xxl.style() }, + "Avatar.Xxl.Pilled" to ComposeStyleReference { Avatar.Xxl.Pilled.style() }, + "Avatar.L" to ComposeStyleReference { Avatar.L.style() }, + "Avatar.L.Pilled" to ComposeStyleReference { Avatar.L.Pilled.style() }, + "Avatar.M" to ComposeStyleReference { Avatar.M.style() }, + "Avatar.M.Pilled" to ComposeStyleReference { Avatar.M.Pilled.style() }, + "Avatar.S" to ComposeStyleReference { Avatar.S.style() }, + "Avatar.S.Pilled" to ComposeStyleReference { Avatar.S.Pilled.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return AvatarStyles.resolve( + size = when (bindings["size"]?.toString()) { + "Xxl" -> AvatarSize.Xxl + "L" -> AvatarSize.L + "M" -> AvatarSize.M + "S" -> AvatarSize.S + "Xs" -> AvatarSize.Xs + else -> AvatarSize.Xxl + }, + shape = when (bindings["shape"]?.toString()) { + "Default" -> AvatarShape.Default + "Pilled" -> AvatarShape.Pilled + else -> AvatarShape.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBadgeClearVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBadgeClearVariationsCompose.kt index ac013f7bee..1fe6bb92ab 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBadgeClearVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBadgeClearVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -13,6 +15,10 @@ import com.sdds.compose.uikit.BadgeStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.badge.Accent import com.sdds.plasma.homeds.styles.badge.BadgeClear +import com.sdds.plasma.homeds.styles.badge.BadgeClearShape +import com.sdds.plasma.homeds.styles.badge.BadgeClearSize +import com.sdds.plasma.homeds.styles.badge.BadgeClearView +import com.sdds.plasma.homeds.styles.badge.BadgeStyles import com.sdds.plasma.homeds.styles.badge.Dark import com.sdds.plasma.homeds.styles.badge.Default import com.sdds.plasma.homeds.styles.badge.L @@ -24,65 +30,105 @@ import com.sdds.plasma.homeds.styles.badge.Positive import com.sdds.plasma.homeds.styles.badge.S import com.sdds.plasma.homeds.styles.badge.Warning import com.sdds.plasma.homeds.styles.badge.Xs +import com.sdds.plasma.homeds.styles.badge.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsBadgeClearVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S", "Xs")), + Property.SingleChoiceProperty(name = "shape", value = "Default", variants = listOf("Default", "Pilled")), + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf("Default", "Accent", "Negative", "Positive", "Warning", "Dark", "Light"), + ), + ) + override val variations: Map> = mapOf( - "L.Default" to ComposeStyleReference { BadgeClear.L.Default.style() }, - "L.Accent" to ComposeStyleReference { BadgeClear.L.Accent.style() }, - "L.Negative" to ComposeStyleReference { BadgeClear.L.Negative.style() }, - "L.Positive" to ComposeStyleReference { BadgeClear.L.Positive.style() }, - "L.Warning" to ComposeStyleReference { BadgeClear.L.Warning.style() }, - "L.Dark" to ComposeStyleReference { BadgeClear.L.Dark.style() }, - "L.Light" to ComposeStyleReference { BadgeClear.L.Light.style() }, - "L.Pilled.Default" to ComposeStyleReference { BadgeClear.L.Pilled.Default.style() }, - "L.Pilled.Accent" to ComposeStyleReference { BadgeClear.L.Pilled.Accent.style() }, - "L.Pilled.Negative" to ComposeStyleReference { BadgeClear.L.Pilled.Negative.style() }, - "L.Pilled.Positive" to ComposeStyleReference { BadgeClear.L.Pilled.Positive.style() }, - "L.Pilled.Warning" to ComposeStyleReference { BadgeClear.L.Pilled.Warning.style() }, - "L.Pilled.Dark" to ComposeStyleReference { BadgeClear.L.Pilled.Dark.style() }, - "L.Pilled.Light" to ComposeStyleReference { BadgeClear.L.Pilled.Light.style() }, - "M.Default" to ComposeStyleReference { BadgeClear.M.Default.style() }, - "M.Accent" to ComposeStyleReference { BadgeClear.M.Accent.style() }, - "M.Negative" to ComposeStyleReference { BadgeClear.M.Negative.style() }, - "M.Positive" to ComposeStyleReference { BadgeClear.M.Positive.style() }, - "M.Warning" to ComposeStyleReference { BadgeClear.M.Warning.style() }, - "M.Dark" to ComposeStyleReference { BadgeClear.M.Dark.style() }, - "M.Light" to ComposeStyleReference { BadgeClear.M.Light.style() }, - "M.Pilled.Default" to ComposeStyleReference { BadgeClear.M.Pilled.Default.style() }, - "M.Pilled.Accent" to ComposeStyleReference { BadgeClear.M.Pilled.Accent.style() }, - "M.Pilled.Negative" to ComposeStyleReference { BadgeClear.M.Pilled.Negative.style() }, - "M.Pilled.Positive" to ComposeStyleReference { BadgeClear.M.Pilled.Positive.style() }, - "M.Pilled.Warning" to ComposeStyleReference { BadgeClear.M.Pilled.Warning.style() }, - "M.Pilled.Dark" to ComposeStyleReference { BadgeClear.M.Pilled.Dark.style() }, - "M.Pilled.Light" to ComposeStyleReference { BadgeClear.M.Pilled.Light.style() }, - "S.Default" to ComposeStyleReference { BadgeClear.S.Default.style() }, - "S.Accent" to ComposeStyleReference { BadgeClear.S.Accent.style() }, - "S.Negative" to ComposeStyleReference { BadgeClear.S.Negative.style() }, - "S.Positive" to ComposeStyleReference { BadgeClear.S.Positive.style() }, - "S.Warning" to ComposeStyleReference { BadgeClear.S.Warning.style() }, - "S.Dark" to ComposeStyleReference { BadgeClear.S.Dark.style() }, - "S.Light" to ComposeStyleReference { BadgeClear.S.Light.style() }, - "S.Pilled.Default" to ComposeStyleReference { BadgeClear.S.Pilled.Default.style() }, - "S.Pilled.Accent" to ComposeStyleReference { BadgeClear.S.Pilled.Accent.style() }, - "S.Pilled.Negative" to ComposeStyleReference { BadgeClear.S.Pilled.Negative.style() }, - "S.Pilled.Positive" to ComposeStyleReference { BadgeClear.S.Pilled.Positive.style() }, - "S.Pilled.Warning" to ComposeStyleReference { BadgeClear.S.Pilled.Warning.style() }, - "S.Pilled.Dark" to ComposeStyleReference { BadgeClear.S.Pilled.Dark.style() }, - "S.Pilled.Light" to ComposeStyleReference { BadgeClear.S.Pilled.Light.style() }, - "Xs.Default" to ComposeStyleReference { BadgeClear.Xs.Default.style() }, - "Xs.Accent" to ComposeStyleReference { BadgeClear.Xs.Accent.style() }, - "Xs.Negative" to ComposeStyleReference { BadgeClear.Xs.Negative.style() }, - "Xs.Positive" to ComposeStyleReference { BadgeClear.Xs.Positive.style() }, - "Xs.Warning" to ComposeStyleReference { BadgeClear.Xs.Warning.style() }, - "Xs.Dark" to ComposeStyleReference { BadgeClear.Xs.Dark.style() }, - "Xs.Light" to ComposeStyleReference { BadgeClear.Xs.Light.style() }, - "Xs.Pilled.Default" to ComposeStyleReference { BadgeClear.Xs.Pilled.Default.style() }, - "Xs.Pilled.Accent" to ComposeStyleReference { BadgeClear.Xs.Pilled.Accent.style() }, - "Xs.Pilled.Negative" to ComposeStyleReference { BadgeClear.Xs.Pilled.Negative.style() }, - "Xs.Pilled.Positive" to ComposeStyleReference { BadgeClear.Xs.Pilled.Positive.style() }, - "Xs.Pilled.Warning" to ComposeStyleReference { BadgeClear.Xs.Pilled.Warning.style() }, - "Xs.Pilled.Dark" to ComposeStyleReference { BadgeClear.Xs.Pilled.Dark.style() }, - "Xs.Pilled.Light" to ComposeStyleReference { BadgeClear.Xs.Pilled.Light.style() }, + "BadgeClear.L.Default" to ComposeStyleReference { BadgeClear.L.Default.style() }, + "BadgeClear.L.Accent" to ComposeStyleReference { BadgeClear.L.Accent.style() }, + "BadgeClear.L.Negative" to ComposeStyleReference { BadgeClear.L.Negative.style() }, + "BadgeClear.L.Positive" to ComposeStyleReference { BadgeClear.L.Positive.style() }, + "BadgeClear.L.Warning" to ComposeStyleReference { BadgeClear.L.Warning.style() }, + "BadgeClear.L.Dark" to ComposeStyleReference { BadgeClear.L.Dark.style() }, + "BadgeClear.L.Light" to ComposeStyleReference { BadgeClear.L.Light.style() }, + "BadgeClear.L.Pilled.Default" to ComposeStyleReference { BadgeClear.L.Pilled.Default.style() }, + "BadgeClear.L.Pilled.Accent" to ComposeStyleReference { BadgeClear.L.Pilled.Accent.style() }, + "BadgeClear.L.Pilled.Negative" to ComposeStyleReference { BadgeClear.L.Pilled.Negative.style() }, + "BadgeClear.L.Pilled.Positive" to ComposeStyleReference { BadgeClear.L.Pilled.Positive.style() }, + "BadgeClear.L.Pilled.Warning" to ComposeStyleReference { BadgeClear.L.Pilled.Warning.style() }, + "BadgeClear.L.Pilled.Dark" to ComposeStyleReference { BadgeClear.L.Pilled.Dark.style() }, + "BadgeClear.L.Pilled.Light" to ComposeStyleReference { BadgeClear.L.Pilled.Light.style() }, + "BadgeClear.M.Default" to ComposeStyleReference { BadgeClear.M.Default.style() }, + "BadgeClear.M.Accent" to ComposeStyleReference { BadgeClear.M.Accent.style() }, + "BadgeClear.M.Negative" to ComposeStyleReference { BadgeClear.M.Negative.style() }, + "BadgeClear.M.Positive" to ComposeStyleReference { BadgeClear.M.Positive.style() }, + "BadgeClear.M.Warning" to ComposeStyleReference { BadgeClear.M.Warning.style() }, + "BadgeClear.M.Dark" to ComposeStyleReference { BadgeClear.M.Dark.style() }, + "BadgeClear.M.Light" to ComposeStyleReference { BadgeClear.M.Light.style() }, + "BadgeClear.M.Pilled.Default" to ComposeStyleReference { BadgeClear.M.Pilled.Default.style() }, + "BadgeClear.M.Pilled.Accent" to ComposeStyleReference { BadgeClear.M.Pilled.Accent.style() }, + "BadgeClear.M.Pilled.Negative" to ComposeStyleReference { BadgeClear.M.Pilled.Negative.style() }, + "BadgeClear.M.Pilled.Positive" to ComposeStyleReference { BadgeClear.M.Pilled.Positive.style() }, + "BadgeClear.M.Pilled.Warning" to ComposeStyleReference { BadgeClear.M.Pilled.Warning.style() }, + "BadgeClear.M.Pilled.Dark" to ComposeStyleReference { BadgeClear.M.Pilled.Dark.style() }, + "BadgeClear.M.Pilled.Light" to ComposeStyleReference { BadgeClear.M.Pilled.Light.style() }, + "BadgeClear.S.Default" to ComposeStyleReference { BadgeClear.S.Default.style() }, + "BadgeClear.S.Accent" to ComposeStyleReference { BadgeClear.S.Accent.style() }, + "BadgeClear.S.Negative" to ComposeStyleReference { BadgeClear.S.Negative.style() }, + "BadgeClear.S.Positive" to ComposeStyleReference { BadgeClear.S.Positive.style() }, + "BadgeClear.S.Warning" to ComposeStyleReference { BadgeClear.S.Warning.style() }, + "BadgeClear.S.Dark" to ComposeStyleReference { BadgeClear.S.Dark.style() }, + "BadgeClear.S.Light" to ComposeStyleReference { BadgeClear.S.Light.style() }, + "BadgeClear.S.Pilled.Default" to ComposeStyleReference { BadgeClear.S.Pilled.Default.style() }, + "BadgeClear.S.Pilled.Accent" to ComposeStyleReference { BadgeClear.S.Pilled.Accent.style() }, + "BadgeClear.S.Pilled.Negative" to ComposeStyleReference { BadgeClear.S.Pilled.Negative.style() }, + "BadgeClear.S.Pilled.Positive" to ComposeStyleReference { BadgeClear.S.Pilled.Positive.style() }, + "BadgeClear.S.Pilled.Warning" to ComposeStyleReference { BadgeClear.S.Pilled.Warning.style() }, + "BadgeClear.S.Pilled.Dark" to ComposeStyleReference { BadgeClear.S.Pilled.Dark.style() }, + "BadgeClear.S.Pilled.Light" to ComposeStyleReference { BadgeClear.S.Pilled.Light.style() }, + "BadgeClear.Xs.Default" to ComposeStyleReference { BadgeClear.Xs.Default.style() }, + "BadgeClear.Xs.Accent" to ComposeStyleReference { BadgeClear.Xs.Accent.style() }, + "BadgeClear.Xs.Negative" to ComposeStyleReference { BadgeClear.Xs.Negative.style() }, + "BadgeClear.Xs.Positive" to ComposeStyleReference { BadgeClear.Xs.Positive.style() }, + "BadgeClear.Xs.Warning" to ComposeStyleReference { BadgeClear.Xs.Warning.style() }, + "BadgeClear.Xs.Dark" to ComposeStyleReference { BadgeClear.Xs.Dark.style() }, + "BadgeClear.Xs.Light" to ComposeStyleReference { BadgeClear.Xs.Light.style() }, + "BadgeClear.Xs.Pilled.Default" to ComposeStyleReference { BadgeClear.Xs.Pilled.Default.style() }, + "BadgeClear.Xs.Pilled.Accent" to ComposeStyleReference { BadgeClear.Xs.Pilled.Accent.style() }, + "BadgeClear.Xs.Pilled.Negative" to ComposeStyleReference { BadgeClear.Xs.Pilled.Negative.style() }, + "BadgeClear.Xs.Pilled.Positive" to ComposeStyleReference { BadgeClear.Xs.Pilled.Positive.style() }, + "BadgeClear.Xs.Pilled.Warning" to ComposeStyleReference { BadgeClear.Xs.Pilled.Warning.style() }, + "BadgeClear.Xs.Pilled.Dark" to ComposeStyleReference { BadgeClear.Xs.Pilled.Dark.style() }, + "BadgeClear.Xs.Pilled.Light" to ComposeStyleReference { BadgeClear.Xs.Pilled.Light.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return BadgeStyles.Clear.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> BadgeClearSize.L + "M" -> BadgeClearSize.M + "S" -> BadgeClearSize.S + "Xs" -> BadgeClearSize.Xs + else -> BadgeClearSize.L + }, + shape = when (bindings["shape"]?.toString()) { + "Default" -> BadgeClearShape.Default + "Pilled" -> BadgeClearShape.Pilled + else -> BadgeClearShape.Default + }, + view = when (bindings["view"]?.toString()) { + "Default" -> BadgeClearView.Default + "Accent" -> BadgeClearView.Accent + "Negative" -> BadgeClearView.Negative + "Positive" -> BadgeClearView.Positive + "Warning" -> BadgeClearView.Warning + "Dark" -> BadgeClearView.Dark + "Light" -> BadgeClearView.Light + else -> BadgeClearView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBadgeSolidVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBadgeSolidVariationsCompose.kt index 6add957e54..966d38b1fa 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBadgeSolidVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBadgeSolidVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -13,6 +15,10 @@ import com.sdds.compose.uikit.BadgeStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.badge.Accent import com.sdds.plasma.homeds.styles.badge.BadgeSolid +import com.sdds.plasma.homeds.styles.badge.BadgeSolidShape +import com.sdds.plasma.homeds.styles.badge.BadgeSolidSize +import com.sdds.plasma.homeds.styles.badge.BadgeSolidView +import com.sdds.plasma.homeds.styles.badge.BadgeStyles import com.sdds.plasma.homeds.styles.badge.Dark import com.sdds.plasma.homeds.styles.badge.Default import com.sdds.plasma.homeds.styles.badge.L @@ -24,65 +30,105 @@ import com.sdds.plasma.homeds.styles.badge.Positive import com.sdds.plasma.homeds.styles.badge.S import com.sdds.plasma.homeds.styles.badge.Warning import com.sdds.plasma.homeds.styles.badge.Xs +import com.sdds.plasma.homeds.styles.badge.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsBadgeSolidVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S", "Xs")), + Property.SingleChoiceProperty(name = "shape", value = "Default", variants = listOf("Default", "Pilled")), + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf("Default", "Accent", "Negative", "Positive", "Warning", "Dark", "Light"), + ), + ) + override val variations: Map> = mapOf( - "L.Default" to ComposeStyleReference { BadgeSolid.L.Default.style() }, - "L.Accent" to ComposeStyleReference { BadgeSolid.L.Accent.style() }, - "L.Negative" to ComposeStyleReference { BadgeSolid.L.Negative.style() }, - "L.Positive" to ComposeStyleReference { BadgeSolid.L.Positive.style() }, - "L.Warning" to ComposeStyleReference { BadgeSolid.L.Warning.style() }, - "L.Dark" to ComposeStyleReference { BadgeSolid.L.Dark.style() }, - "L.Light" to ComposeStyleReference { BadgeSolid.L.Light.style() }, - "L.Pilled.Default" to ComposeStyleReference { BadgeSolid.L.Pilled.Default.style() }, - "L.Pilled.Accent" to ComposeStyleReference { BadgeSolid.L.Pilled.Accent.style() }, - "L.Pilled.Negative" to ComposeStyleReference { BadgeSolid.L.Pilled.Negative.style() }, - "L.Pilled.Positive" to ComposeStyleReference { BadgeSolid.L.Pilled.Positive.style() }, - "L.Pilled.Warning" to ComposeStyleReference { BadgeSolid.L.Pilled.Warning.style() }, - "L.Pilled.Dark" to ComposeStyleReference { BadgeSolid.L.Pilled.Dark.style() }, - "L.Pilled.Light" to ComposeStyleReference { BadgeSolid.L.Pilled.Light.style() }, - "M.Default" to ComposeStyleReference { BadgeSolid.M.Default.style() }, - "M.Accent" to ComposeStyleReference { BadgeSolid.M.Accent.style() }, - "M.Negative" to ComposeStyleReference { BadgeSolid.M.Negative.style() }, - "M.Positive" to ComposeStyleReference { BadgeSolid.M.Positive.style() }, - "M.Warning" to ComposeStyleReference { BadgeSolid.M.Warning.style() }, - "M.Dark" to ComposeStyleReference { BadgeSolid.M.Dark.style() }, - "M.Light" to ComposeStyleReference { BadgeSolid.M.Light.style() }, - "M.Pilled.Default" to ComposeStyleReference { BadgeSolid.M.Pilled.Default.style() }, - "M.Pilled.Accent" to ComposeStyleReference { BadgeSolid.M.Pilled.Accent.style() }, - "M.Pilled.Negative" to ComposeStyleReference { BadgeSolid.M.Pilled.Negative.style() }, - "M.Pilled.Positive" to ComposeStyleReference { BadgeSolid.M.Pilled.Positive.style() }, - "M.Pilled.Warning" to ComposeStyleReference { BadgeSolid.M.Pilled.Warning.style() }, - "M.Pilled.Dark" to ComposeStyleReference { BadgeSolid.M.Pilled.Dark.style() }, - "M.Pilled.Light" to ComposeStyleReference { BadgeSolid.M.Pilled.Light.style() }, - "S.Default" to ComposeStyleReference { BadgeSolid.S.Default.style() }, - "S.Accent" to ComposeStyleReference { BadgeSolid.S.Accent.style() }, - "S.Negative" to ComposeStyleReference { BadgeSolid.S.Negative.style() }, - "S.Positive" to ComposeStyleReference { BadgeSolid.S.Positive.style() }, - "S.Warning" to ComposeStyleReference { BadgeSolid.S.Warning.style() }, - "S.Dark" to ComposeStyleReference { BadgeSolid.S.Dark.style() }, - "S.Light" to ComposeStyleReference { BadgeSolid.S.Light.style() }, - "S.Pilled.Default" to ComposeStyleReference { BadgeSolid.S.Pilled.Default.style() }, - "S.Pilled.Accent" to ComposeStyleReference { BadgeSolid.S.Pilled.Accent.style() }, - "S.Pilled.Negative" to ComposeStyleReference { BadgeSolid.S.Pilled.Negative.style() }, - "S.Pilled.Positive" to ComposeStyleReference { BadgeSolid.S.Pilled.Positive.style() }, - "S.Pilled.Warning" to ComposeStyleReference { BadgeSolid.S.Pilled.Warning.style() }, - "S.Pilled.Dark" to ComposeStyleReference { BadgeSolid.S.Pilled.Dark.style() }, - "S.Pilled.Light" to ComposeStyleReference { BadgeSolid.S.Pilled.Light.style() }, - "Xs.Default" to ComposeStyleReference { BadgeSolid.Xs.Default.style() }, - "Xs.Accent" to ComposeStyleReference { BadgeSolid.Xs.Accent.style() }, - "Xs.Negative" to ComposeStyleReference { BadgeSolid.Xs.Negative.style() }, - "Xs.Positive" to ComposeStyleReference { BadgeSolid.Xs.Positive.style() }, - "Xs.Warning" to ComposeStyleReference { BadgeSolid.Xs.Warning.style() }, - "Xs.Dark" to ComposeStyleReference { BadgeSolid.Xs.Dark.style() }, - "Xs.Light" to ComposeStyleReference { BadgeSolid.Xs.Light.style() }, - "Xs.Pilled.Default" to ComposeStyleReference { BadgeSolid.Xs.Pilled.Default.style() }, - "Xs.Pilled.Accent" to ComposeStyleReference { BadgeSolid.Xs.Pilled.Accent.style() }, - "Xs.Pilled.Negative" to ComposeStyleReference { BadgeSolid.Xs.Pilled.Negative.style() }, - "Xs.Pilled.Positive" to ComposeStyleReference { BadgeSolid.Xs.Pilled.Positive.style() }, - "Xs.Pilled.Warning" to ComposeStyleReference { BadgeSolid.Xs.Pilled.Warning.style() }, - "Xs.Pilled.Dark" to ComposeStyleReference { BadgeSolid.Xs.Pilled.Dark.style() }, - "Xs.Pilled.Light" to ComposeStyleReference { BadgeSolid.Xs.Pilled.Light.style() }, + "BadgeSolid.L.Default" to ComposeStyleReference { BadgeSolid.L.Default.style() }, + "BadgeSolid.L.Accent" to ComposeStyleReference { BadgeSolid.L.Accent.style() }, + "BadgeSolid.L.Negative" to ComposeStyleReference { BadgeSolid.L.Negative.style() }, + "BadgeSolid.L.Positive" to ComposeStyleReference { BadgeSolid.L.Positive.style() }, + "BadgeSolid.L.Warning" to ComposeStyleReference { BadgeSolid.L.Warning.style() }, + "BadgeSolid.L.Dark" to ComposeStyleReference { BadgeSolid.L.Dark.style() }, + "BadgeSolid.L.Light" to ComposeStyleReference { BadgeSolid.L.Light.style() }, + "BadgeSolid.L.Pilled.Default" to ComposeStyleReference { BadgeSolid.L.Pilled.Default.style() }, + "BadgeSolid.L.Pilled.Accent" to ComposeStyleReference { BadgeSolid.L.Pilled.Accent.style() }, + "BadgeSolid.L.Pilled.Negative" to ComposeStyleReference { BadgeSolid.L.Pilled.Negative.style() }, + "BadgeSolid.L.Pilled.Positive" to ComposeStyleReference { BadgeSolid.L.Pilled.Positive.style() }, + "BadgeSolid.L.Pilled.Warning" to ComposeStyleReference { BadgeSolid.L.Pilled.Warning.style() }, + "BadgeSolid.L.Pilled.Dark" to ComposeStyleReference { BadgeSolid.L.Pilled.Dark.style() }, + "BadgeSolid.L.Pilled.Light" to ComposeStyleReference { BadgeSolid.L.Pilled.Light.style() }, + "BadgeSolid.M.Default" to ComposeStyleReference { BadgeSolid.M.Default.style() }, + "BadgeSolid.M.Accent" to ComposeStyleReference { BadgeSolid.M.Accent.style() }, + "BadgeSolid.M.Negative" to ComposeStyleReference { BadgeSolid.M.Negative.style() }, + "BadgeSolid.M.Positive" to ComposeStyleReference { BadgeSolid.M.Positive.style() }, + "BadgeSolid.M.Warning" to ComposeStyleReference { BadgeSolid.M.Warning.style() }, + "BadgeSolid.M.Dark" to ComposeStyleReference { BadgeSolid.M.Dark.style() }, + "BadgeSolid.M.Light" to ComposeStyleReference { BadgeSolid.M.Light.style() }, + "BadgeSolid.M.Pilled.Default" to ComposeStyleReference { BadgeSolid.M.Pilled.Default.style() }, + "BadgeSolid.M.Pilled.Accent" to ComposeStyleReference { BadgeSolid.M.Pilled.Accent.style() }, + "BadgeSolid.M.Pilled.Negative" to ComposeStyleReference { BadgeSolid.M.Pilled.Negative.style() }, + "BadgeSolid.M.Pilled.Positive" to ComposeStyleReference { BadgeSolid.M.Pilled.Positive.style() }, + "BadgeSolid.M.Pilled.Warning" to ComposeStyleReference { BadgeSolid.M.Pilled.Warning.style() }, + "BadgeSolid.M.Pilled.Dark" to ComposeStyleReference { BadgeSolid.M.Pilled.Dark.style() }, + "BadgeSolid.M.Pilled.Light" to ComposeStyleReference { BadgeSolid.M.Pilled.Light.style() }, + "BadgeSolid.S.Default" to ComposeStyleReference { BadgeSolid.S.Default.style() }, + "BadgeSolid.S.Accent" to ComposeStyleReference { BadgeSolid.S.Accent.style() }, + "BadgeSolid.S.Negative" to ComposeStyleReference { BadgeSolid.S.Negative.style() }, + "BadgeSolid.S.Positive" to ComposeStyleReference { BadgeSolid.S.Positive.style() }, + "BadgeSolid.S.Warning" to ComposeStyleReference { BadgeSolid.S.Warning.style() }, + "BadgeSolid.S.Dark" to ComposeStyleReference { BadgeSolid.S.Dark.style() }, + "BadgeSolid.S.Light" to ComposeStyleReference { BadgeSolid.S.Light.style() }, + "BadgeSolid.S.Pilled.Default" to ComposeStyleReference { BadgeSolid.S.Pilled.Default.style() }, + "BadgeSolid.S.Pilled.Accent" to ComposeStyleReference { BadgeSolid.S.Pilled.Accent.style() }, + "BadgeSolid.S.Pilled.Negative" to ComposeStyleReference { BadgeSolid.S.Pilled.Negative.style() }, + "BadgeSolid.S.Pilled.Positive" to ComposeStyleReference { BadgeSolid.S.Pilled.Positive.style() }, + "BadgeSolid.S.Pilled.Warning" to ComposeStyleReference { BadgeSolid.S.Pilled.Warning.style() }, + "BadgeSolid.S.Pilled.Dark" to ComposeStyleReference { BadgeSolid.S.Pilled.Dark.style() }, + "BadgeSolid.S.Pilled.Light" to ComposeStyleReference { BadgeSolid.S.Pilled.Light.style() }, + "BadgeSolid.Xs.Default" to ComposeStyleReference { BadgeSolid.Xs.Default.style() }, + "BadgeSolid.Xs.Accent" to ComposeStyleReference { BadgeSolid.Xs.Accent.style() }, + "BadgeSolid.Xs.Negative" to ComposeStyleReference { BadgeSolid.Xs.Negative.style() }, + "BadgeSolid.Xs.Positive" to ComposeStyleReference { BadgeSolid.Xs.Positive.style() }, + "BadgeSolid.Xs.Warning" to ComposeStyleReference { BadgeSolid.Xs.Warning.style() }, + "BadgeSolid.Xs.Dark" to ComposeStyleReference { BadgeSolid.Xs.Dark.style() }, + "BadgeSolid.Xs.Light" to ComposeStyleReference { BadgeSolid.Xs.Light.style() }, + "BadgeSolid.Xs.Pilled.Default" to ComposeStyleReference { BadgeSolid.Xs.Pilled.Default.style() }, + "BadgeSolid.Xs.Pilled.Accent" to ComposeStyleReference { BadgeSolid.Xs.Pilled.Accent.style() }, + "BadgeSolid.Xs.Pilled.Negative" to ComposeStyleReference { BadgeSolid.Xs.Pilled.Negative.style() }, + "BadgeSolid.Xs.Pilled.Positive" to ComposeStyleReference { BadgeSolid.Xs.Pilled.Positive.style() }, + "BadgeSolid.Xs.Pilled.Warning" to ComposeStyleReference { BadgeSolid.Xs.Pilled.Warning.style() }, + "BadgeSolid.Xs.Pilled.Dark" to ComposeStyleReference { BadgeSolid.Xs.Pilled.Dark.style() }, + "BadgeSolid.Xs.Pilled.Light" to ComposeStyleReference { BadgeSolid.Xs.Pilled.Light.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return BadgeStyles.Solid.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> BadgeSolidSize.L + "M" -> BadgeSolidSize.M + "S" -> BadgeSolidSize.S + "Xs" -> BadgeSolidSize.Xs + else -> BadgeSolidSize.L + }, + shape = when (bindings["shape"]?.toString()) { + "Default" -> BadgeSolidShape.Default + "Pilled" -> BadgeSolidShape.Pilled + else -> BadgeSolidShape.Default + }, + view = when (bindings["view"]?.toString()) { + "Default" -> BadgeSolidView.Default + "Accent" -> BadgeSolidView.Accent + "Negative" -> BadgeSolidView.Negative + "Positive" -> BadgeSolidView.Positive + "Warning" -> BadgeSolidView.Warning + "Dark" -> BadgeSolidView.Dark + "Light" -> BadgeSolidView.Light + else -> BadgeSolidView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBadgeTransparentVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBadgeTransparentVariationsCompose.kt index 7bcaeb4a7f..4233a71763 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBadgeTransparentVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBadgeTransparentVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -12,7 +14,11 @@ import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.BadgeStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.badge.Accent +import com.sdds.plasma.homeds.styles.badge.BadgeStyles import com.sdds.plasma.homeds.styles.badge.BadgeTransparent +import com.sdds.plasma.homeds.styles.badge.BadgeTransparentShape +import com.sdds.plasma.homeds.styles.badge.BadgeTransparentSize +import com.sdds.plasma.homeds.styles.badge.BadgeTransparentView import com.sdds.plasma.homeds.styles.badge.Dark import com.sdds.plasma.homeds.styles.badge.Default import com.sdds.plasma.homeds.styles.badge.L @@ -24,65 +30,105 @@ import com.sdds.plasma.homeds.styles.badge.Positive import com.sdds.plasma.homeds.styles.badge.S import com.sdds.plasma.homeds.styles.badge.Warning import com.sdds.plasma.homeds.styles.badge.Xs +import com.sdds.plasma.homeds.styles.badge.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsBadgeTransparentVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S", "Xs")), + Property.SingleChoiceProperty(name = "shape", value = "Default", variants = listOf("Default", "Pilled")), + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf("Default", "Accent", "Negative", "Positive", "Warning", "Dark", "Light"), + ), + ) + override val variations: Map> = mapOf( - "L.Default" to ComposeStyleReference { BadgeTransparent.L.Default.style() }, - "L.Accent" to ComposeStyleReference { BadgeTransparent.L.Accent.style() }, - "L.Negative" to ComposeStyleReference { BadgeTransparent.L.Negative.style() }, - "L.Positive" to ComposeStyleReference { BadgeTransparent.L.Positive.style() }, - "L.Warning" to ComposeStyleReference { BadgeTransparent.L.Warning.style() }, - "L.Dark" to ComposeStyleReference { BadgeTransparent.L.Dark.style() }, - "L.Light" to ComposeStyleReference { BadgeTransparent.L.Light.style() }, - "L.Pilled.Default" to ComposeStyleReference { BadgeTransparent.L.Pilled.Default.style() }, - "L.Pilled.Accent" to ComposeStyleReference { BadgeTransparent.L.Pilled.Accent.style() }, - "L.Pilled.Negative" to ComposeStyleReference { BadgeTransparent.L.Pilled.Negative.style() }, - "L.Pilled.Positive" to ComposeStyleReference { BadgeTransparent.L.Pilled.Positive.style() }, - "L.Pilled.Warning" to ComposeStyleReference { BadgeTransparent.L.Pilled.Warning.style() }, - "L.Pilled.Dark" to ComposeStyleReference { BadgeTransparent.L.Pilled.Dark.style() }, - "L.Pilled.Light" to ComposeStyleReference { BadgeTransparent.L.Pilled.Light.style() }, - "M.Default" to ComposeStyleReference { BadgeTransparent.M.Default.style() }, - "M.Accent" to ComposeStyleReference { BadgeTransparent.M.Accent.style() }, - "M.Negative" to ComposeStyleReference { BadgeTransparent.M.Negative.style() }, - "M.Positive" to ComposeStyleReference { BadgeTransparent.M.Positive.style() }, - "M.Warning" to ComposeStyleReference { BadgeTransparent.M.Warning.style() }, - "M.Dark" to ComposeStyleReference { BadgeTransparent.M.Dark.style() }, - "M.Light" to ComposeStyleReference { BadgeTransparent.M.Light.style() }, - "M.Pilled.Default" to ComposeStyleReference { BadgeTransparent.M.Pilled.Default.style() }, - "M.Pilled.Accent" to ComposeStyleReference { BadgeTransparent.M.Pilled.Accent.style() }, - "M.Pilled.Negative" to ComposeStyleReference { BadgeTransparent.M.Pilled.Negative.style() }, - "M.Pilled.Positive" to ComposeStyleReference { BadgeTransparent.M.Pilled.Positive.style() }, - "M.Pilled.Warning" to ComposeStyleReference { BadgeTransparent.M.Pilled.Warning.style() }, - "M.Pilled.Dark" to ComposeStyleReference { BadgeTransparent.M.Pilled.Dark.style() }, - "M.Pilled.Light" to ComposeStyleReference { BadgeTransparent.M.Pilled.Light.style() }, - "S.Default" to ComposeStyleReference { BadgeTransparent.S.Default.style() }, - "S.Accent" to ComposeStyleReference { BadgeTransparent.S.Accent.style() }, - "S.Negative" to ComposeStyleReference { BadgeTransparent.S.Negative.style() }, - "S.Positive" to ComposeStyleReference { BadgeTransparent.S.Positive.style() }, - "S.Warning" to ComposeStyleReference { BadgeTransparent.S.Warning.style() }, - "S.Dark" to ComposeStyleReference { BadgeTransparent.S.Dark.style() }, - "S.Light" to ComposeStyleReference { BadgeTransparent.S.Light.style() }, - "S.Pilled.Default" to ComposeStyleReference { BadgeTransparent.S.Pilled.Default.style() }, - "S.Pilled.Accent" to ComposeStyleReference { BadgeTransparent.S.Pilled.Accent.style() }, - "S.Pilled.Negative" to ComposeStyleReference { BadgeTransparent.S.Pilled.Negative.style() }, - "S.Pilled.Positive" to ComposeStyleReference { BadgeTransparent.S.Pilled.Positive.style() }, - "S.Pilled.Warning" to ComposeStyleReference { BadgeTransparent.S.Pilled.Warning.style() }, - "S.Pilled.Dark" to ComposeStyleReference { BadgeTransparent.S.Pilled.Dark.style() }, - "S.Pilled.Light" to ComposeStyleReference { BadgeTransparent.S.Pilled.Light.style() }, - "Xs.Default" to ComposeStyleReference { BadgeTransparent.Xs.Default.style() }, - "Xs.Accent" to ComposeStyleReference { BadgeTransparent.Xs.Accent.style() }, - "Xs.Negative" to ComposeStyleReference { BadgeTransparent.Xs.Negative.style() }, - "Xs.Positive" to ComposeStyleReference { BadgeTransparent.Xs.Positive.style() }, - "Xs.Warning" to ComposeStyleReference { BadgeTransparent.Xs.Warning.style() }, - "Xs.Dark" to ComposeStyleReference { BadgeTransparent.Xs.Dark.style() }, - "Xs.Light" to ComposeStyleReference { BadgeTransparent.Xs.Light.style() }, - "Xs.Pilled.Default" to ComposeStyleReference { BadgeTransparent.Xs.Pilled.Default.style() }, - "Xs.Pilled.Accent" to ComposeStyleReference { BadgeTransparent.Xs.Pilled.Accent.style() }, - "Xs.Pilled.Negative" to ComposeStyleReference { BadgeTransparent.Xs.Pilled.Negative.style() }, - "Xs.Pilled.Positive" to ComposeStyleReference { BadgeTransparent.Xs.Pilled.Positive.style() }, - "Xs.Pilled.Warning" to ComposeStyleReference { BadgeTransparent.Xs.Pilled.Warning.style() }, - "Xs.Pilled.Dark" to ComposeStyleReference { BadgeTransparent.Xs.Pilled.Dark.style() }, - "Xs.Pilled.Light" to ComposeStyleReference { BadgeTransparent.Xs.Pilled.Light.style() }, + "BadgeTransparent.L.Default" to ComposeStyleReference { BadgeTransparent.L.Default.style() }, + "BadgeTransparent.L.Accent" to ComposeStyleReference { BadgeTransparent.L.Accent.style() }, + "BadgeTransparent.L.Negative" to ComposeStyleReference { BadgeTransparent.L.Negative.style() }, + "BadgeTransparent.L.Positive" to ComposeStyleReference { BadgeTransparent.L.Positive.style() }, + "BadgeTransparent.L.Warning" to ComposeStyleReference { BadgeTransparent.L.Warning.style() }, + "BadgeTransparent.L.Dark" to ComposeStyleReference { BadgeTransparent.L.Dark.style() }, + "BadgeTransparent.L.Light" to ComposeStyleReference { BadgeTransparent.L.Light.style() }, + "BadgeTransparent.L.Pilled.Default" to ComposeStyleReference { BadgeTransparent.L.Pilled.Default.style() }, + "BadgeTransparent.L.Pilled.Accent" to ComposeStyleReference { BadgeTransparent.L.Pilled.Accent.style() }, + "BadgeTransparent.L.Pilled.Negative" to ComposeStyleReference { BadgeTransparent.L.Pilled.Negative.style() }, + "BadgeTransparent.L.Pilled.Positive" to ComposeStyleReference { BadgeTransparent.L.Pilled.Positive.style() }, + "BadgeTransparent.L.Pilled.Warning" to ComposeStyleReference { BadgeTransparent.L.Pilled.Warning.style() }, + "BadgeTransparent.L.Pilled.Dark" to ComposeStyleReference { BadgeTransparent.L.Pilled.Dark.style() }, + "BadgeTransparent.L.Pilled.Light" to ComposeStyleReference { BadgeTransparent.L.Pilled.Light.style() }, + "BadgeTransparent.M.Default" to ComposeStyleReference { BadgeTransparent.M.Default.style() }, + "BadgeTransparent.M.Accent" to ComposeStyleReference { BadgeTransparent.M.Accent.style() }, + "BadgeTransparent.M.Negative" to ComposeStyleReference { BadgeTransparent.M.Negative.style() }, + "BadgeTransparent.M.Positive" to ComposeStyleReference { BadgeTransparent.M.Positive.style() }, + "BadgeTransparent.M.Warning" to ComposeStyleReference { BadgeTransparent.M.Warning.style() }, + "BadgeTransparent.M.Dark" to ComposeStyleReference { BadgeTransparent.M.Dark.style() }, + "BadgeTransparent.M.Light" to ComposeStyleReference { BadgeTransparent.M.Light.style() }, + "BadgeTransparent.M.Pilled.Default" to ComposeStyleReference { BadgeTransparent.M.Pilled.Default.style() }, + "BadgeTransparent.M.Pilled.Accent" to ComposeStyleReference { BadgeTransparent.M.Pilled.Accent.style() }, + "BadgeTransparent.M.Pilled.Negative" to ComposeStyleReference { BadgeTransparent.M.Pilled.Negative.style() }, + "BadgeTransparent.M.Pilled.Positive" to ComposeStyleReference { BadgeTransparent.M.Pilled.Positive.style() }, + "BadgeTransparent.M.Pilled.Warning" to ComposeStyleReference { BadgeTransparent.M.Pilled.Warning.style() }, + "BadgeTransparent.M.Pilled.Dark" to ComposeStyleReference { BadgeTransparent.M.Pilled.Dark.style() }, + "BadgeTransparent.M.Pilled.Light" to ComposeStyleReference { BadgeTransparent.M.Pilled.Light.style() }, + "BadgeTransparent.S.Default" to ComposeStyleReference { BadgeTransparent.S.Default.style() }, + "BadgeTransparent.S.Accent" to ComposeStyleReference { BadgeTransparent.S.Accent.style() }, + "BadgeTransparent.S.Negative" to ComposeStyleReference { BadgeTransparent.S.Negative.style() }, + "BadgeTransparent.S.Positive" to ComposeStyleReference { BadgeTransparent.S.Positive.style() }, + "BadgeTransparent.S.Warning" to ComposeStyleReference { BadgeTransparent.S.Warning.style() }, + "BadgeTransparent.S.Dark" to ComposeStyleReference { BadgeTransparent.S.Dark.style() }, + "BadgeTransparent.S.Light" to ComposeStyleReference { BadgeTransparent.S.Light.style() }, + "BadgeTransparent.S.Pilled.Default" to ComposeStyleReference { BadgeTransparent.S.Pilled.Default.style() }, + "BadgeTransparent.S.Pilled.Accent" to ComposeStyleReference { BadgeTransparent.S.Pilled.Accent.style() }, + "BadgeTransparent.S.Pilled.Negative" to ComposeStyleReference { BadgeTransparent.S.Pilled.Negative.style() }, + "BadgeTransparent.S.Pilled.Positive" to ComposeStyleReference { BadgeTransparent.S.Pilled.Positive.style() }, + "BadgeTransparent.S.Pilled.Warning" to ComposeStyleReference { BadgeTransparent.S.Pilled.Warning.style() }, + "BadgeTransparent.S.Pilled.Dark" to ComposeStyleReference { BadgeTransparent.S.Pilled.Dark.style() }, + "BadgeTransparent.S.Pilled.Light" to ComposeStyleReference { BadgeTransparent.S.Pilled.Light.style() }, + "BadgeTransparent.Xs.Default" to ComposeStyleReference { BadgeTransparent.Xs.Default.style() }, + "BadgeTransparent.Xs.Accent" to ComposeStyleReference { BadgeTransparent.Xs.Accent.style() }, + "BadgeTransparent.Xs.Negative" to ComposeStyleReference { BadgeTransparent.Xs.Negative.style() }, + "BadgeTransparent.Xs.Positive" to ComposeStyleReference { BadgeTransparent.Xs.Positive.style() }, + "BadgeTransparent.Xs.Warning" to ComposeStyleReference { BadgeTransparent.Xs.Warning.style() }, + "BadgeTransparent.Xs.Dark" to ComposeStyleReference { BadgeTransparent.Xs.Dark.style() }, + "BadgeTransparent.Xs.Light" to ComposeStyleReference { BadgeTransparent.Xs.Light.style() }, + "BadgeTransparent.Xs.Pilled.Default" to ComposeStyleReference { BadgeTransparent.Xs.Pilled.Default.style() }, + "BadgeTransparent.Xs.Pilled.Accent" to ComposeStyleReference { BadgeTransparent.Xs.Pilled.Accent.style() }, + "BadgeTransparent.Xs.Pilled.Negative" to ComposeStyleReference { BadgeTransparent.Xs.Pilled.Negative.style() }, + "BadgeTransparent.Xs.Pilled.Positive" to ComposeStyleReference { BadgeTransparent.Xs.Pilled.Positive.style() }, + "BadgeTransparent.Xs.Pilled.Warning" to ComposeStyleReference { BadgeTransparent.Xs.Pilled.Warning.style() }, + "BadgeTransparent.Xs.Pilled.Dark" to ComposeStyleReference { BadgeTransparent.Xs.Pilled.Dark.style() }, + "BadgeTransparent.Xs.Pilled.Light" to ComposeStyleReference { BadgeTransparent.Xs.Pilled.Light.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return BadgeStyles.Transparent.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> BadgeTransparentSize.L + "M" -> BadgeTransparentSize.M + "S" -> BadgeTransparentSize.S + "Xs" -> BadgeTransparentSize.Xs + else -> BadgeTransparentSize.L + }, + shape = when (bindings["shape"]?.toString()) { + "Default" -> BadgeTransparentShape.Default + "Pilled" -> BadgeTransparentShape.Pilled + else -> BadgeTransparentShape.Default + }, + view = when (bindings["view"]?.toString()) { + "Default" -> BadgeTransparentView.Default + "Accent" -> BadgeTransparentView.Accent + "Negative" -> BadgeTransparentView.Negative + "Positive" -> BadgeTransparentView.Positive + "Warning" -> BadgeTransparentView.Warning + "Dark" -> BadgeTransparentView.Dark + "Light" -> BadgeTransparentView.Light + else -> BadgeTransparentView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBasicButtonGroupVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBasicButtonGroupVariationsCompose.kt index 9c34727634..de43748caf 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBasicButtonGroupVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBasicButtonGroupVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -12,6 +14,10 @@ import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.ButtonGroupStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.buttongroup.BasicButtonGroup +import com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupBasicButtonGroupGap +import com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupBasicButtonGroupShape +import com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupBasicButtonGroupSize +import com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupStyles import com.sdds.plasma.homeds.styles.buttongroup.Default import com.sdds.plasma.homeds.styles.buttongroup.Dense import com.sdds.plasma.homeds.styles.buttongroup.M @@ -20,39 +26,70 @@ import com.sdds.plasma.homeds.styles.buttongroup.S import com.sdds.plasma.homeds.styles.buttongroup.Segmented import com.sdds.plasma.homeds.styles.buttongroup.Wide import com.sdds.plasma.homeds.styles.buttongroup.Xs +import com.sdds.plasma.homeds.styles.buttongroup.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsBasicButtonGroupVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "Xs", variants = listOf("Xs", "S", "M")), + Property.SingleChoiceProperty(name = "gap", value = "None", variants = listOf("None", "Wide", "Dense")), + Property.SingleChoiceProperty(name = "shape", value = "Default", variants = listOf("Default", "Segmented")), + ) + override val variations: Map> = mapOf( - "Xs" to ComposeStyleReference { BasicButtonGroup.Xs.style() }, - "Xs.Wide" to ComposeStyleReference { BasicButtonGroup.Xs.Wide.style() }, - "Xs.Wide.Default" to ComposeStyleReference { BasicButtonGroup.Xs.Wide.Default.style() }, - "Xs.Wide.Segmented" to ComposeStyleReference { BasicButtonGroup.Xs.Wide.Segmented.style() }, - "Xs.Dense" to ComposeStyleReference { BasicButtonGroup.Xs.Dense.style() }, - "Xs.Dense.Default" to ComposeStyleReference { BasicButtonGroup.Xs.Dense.Default.style() }, - "Xs.Dense.Segmented" to ComposeStyleReference { BasicButtonGroup.Xs.Dense.Segmented.style() }, - "Xs.NoGap" to ComposeStyleReference { BasicButtonGroup.Xs.NoGap.style() }, - "Xs.NoGap.Default" to ComposeStyleReference { BasicButtonGroup.Xs.NoGap.Default.style() }, - "Xs.NoGap.Segmented" to ComposeStyleReference { BasicButtonGroup.Xs.NoGap.Segmented.style() }, - "S" to ComposeStyleReference { BasicButtonGroup.S.style() }, - "S.Wide" to ComposeStyleReference { BasicButtonGroup.S.Wide.style() }, - "S.Wide.Default" to ComposeStyleReference { BasicButtonGroup.S.Wide.Default.style() }, - "S.Wide.Segmented" to ComposeStyleReference { BasicButtonGroup.S.Wide.Segmented.style() }, - "S.Dense" to ComposeStyleReference { BasicButtonGroup.S.Dense.style() }, - "S.Dense.Default" to ComposeStyleReference { BasicButtonGroup.S.Dense.Default.style() }, - "S.Dense.Segmented" to ComposeStyleReference { BasicButtonGroup.S.Dense.Segmented.style() }, - "S.NoGap" to ComposeStyleReference { BasicButtonGroup.S.NoGap.style() }, - "S.NoGap.Default" to ComposeStyleReference { BasicButtonGroup.S.NoGap.Default.style() }, - "S.NoGap.Segmented" to ComposeStyleReference { BasicButtonGroup.S.NoGap.Segmented.style() }, - "M" to ComposeStyleReference { BasicButtonGroup.M.style() }, - "M.Wide" to ComposeStyleReference { BasicButtonGroup.M.Wide.style() }, - "M.Wide.Default" to ComposeStyleReference { BasicButtonGroup.M.Wide.Default.style() }, - "M.Wide.Segmented" to ComposeStyleReference { BasicButtonGroup.M.Wide.Segmented.style() }, - "M.Dense" to ComposeStyleReference { BasicButtonGroup.M.Dense.style() }, - "M.Dense.Default" to ComposeStyleReference { BasicButtonGroup.M.Dense.Default.style() }, - "M.Dense.Segmented" to ComposeStyleReference { BasicButtonGroup.M.Dense.Segmented.style() }, - "M.NoGap" to ComposeStyleReference { BasicButtonGroup.M.NoGap.style() }, - "M.NoGap.Default" to ComposeStyleReference { BasicButtonGroup.M.NoGap.Default.style() }, - "M.NoGap.Segmented" to ComposeStyleReference { BasicButtonGroup.M.NoGap.Segmented.style() }, + "BasicButtonGroup.Xs" to ComposeStyleReference { BasicButtonGroup.Xs.style() }, + "BasicButtonGroup.Xs.Wide" to ComposeStyleReference { BasicButtonGroup.Xs.Wide.style() }, + "BasicButtonGroup.Xs.Wide.Default" to ComposeStyleReference { BasicButtonGroup.Xs.Wide.Default.style() }, + "BasicButtonGroup.Xs.Wide.Segmented" to ComposeStyleReference { BasicButtonGroup.Xs.Wide.Segmented.style() }, + "BasicButtonGroup.Xs.Dense" to ComposeStyleReference { BasicButtonGroup.Xs.Dense.style() }, + "BasicButtonGroup.Xs.Dense.Default" to ComposeStyleReference { BasicButtonGroup.Xs.Dense.Default.style() }, + "BasicButtonGroup.Xs.Dense.Segmented" to ComposeStyleReference { BasicButtonGroup.Xs.Dense.Segmented.style() }, + "BasicButtonGroup.Xs.NoGap" to ComposeStyleReference { BasicButtonGroup.Xs.NoGap.style() }, + "BasicButtonGroup.Xs.NoGap.Default" to ComposeStyleReference { BasicButtonGroup.Xs.NoGap.Default.style() }, + "BasicButtonGroup.Xs.NoGap.Segmented" to ComposeStyleReference { BasicButtonGroup.Xs.NoGap.Segmented.style() }, + "BasicButtonGroup.S" to ComposeStyleReference { BasicButtonGroup.S.style() }, + "BasicButtonGroup.S.Wide" to ComposeStyleReference { BasicButtonGroup.S.Wide.style() }, + "BasicButtonGroup.S.Wide.Default" to ComposeStyleReference { BasicButtonGroup.S.Wide.Default.style() }, + "BasicButtonGroup.S.Wide.Segmented" to ComposeStyleReference { BasicButtonGroup.S.Wide.Segmented.style() }, + "BasicButtonGroup.S.Dense" to ComposeStyleReference { BasicButtonGroup.S.Dense.style() }, + "BasicButtonGroup.S.Dense.Default" to ComposeStyleReference { BasicButtonGroup.S.Dense.Default.style() }, + "BasicButtonGroup.S.Dense.Segmented" to ComposeStyleReference { BasicButtonGroup.S.Dense.Segmented.style() }, + "BasicButtonGroup.S.NoGap" to ComposeStyleReference { BasicButtonGroup.S.NoGap.style() }, + "BasicButtonGroup.S.NoGap.Default" to ComposeStyleReference { BasicButtonGroup.S.NoGap.Default.style() }, + "BasicButtonGroup.S.NoGap.Segmented" to ComposeStyleReference { BasicButtonGroup.S.NoGap.Segmented.style() }, + "BasicButtonGroup.M" to ComposeStyleReference { BasicButtonGroup.M.style() }, + "BasicButtonGroup.M.Wide" to ComposeStyleReference { BasicButtonGroup.M.Wide.style() }, + "BasicButtonGroup.M.Wide.Default" to ComposeStyleReference { BasicButtonGroup.M.Wide.Default.style() }, + "BasicButtonGroup.M.Wide.Segmented" to ComposeStyleReference { BasicButtonGroup.M.Wide.Segmented.style() }, + "BasicButtonGroup.M.Dense" to ComposeStyleReference { BasicButtonGroup.M.Dense.style() }, + "BasicButtonGroup.M.Dense.Default" to ComposeStyleReference { BasicButtonGroup.M.Dense.Default.style() }, + "BasicButtonGroup.M.Dense.Segmented" to ComposeStyleReference { BasicButtonGroup.M.Dense.Segmented.style() }, + "BasicButtonGroup.M.NoGap" to ComposeStyleReference { BasicButtonGroup.M.NoGap.style() }, + "BasicButtonGroup.M.NoGap.Default" to ComposeStyleReference { BasicButtonGroup.M.NoGap.Default.style() }, + "BasicButtonGroup.M.NoGap.Segmented" to ComposeStyleReference { BasicButtonGroup.M.NoGap.Segmented.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return ButtonGroupStyles.BasicButtonGroup.resolve( + size = when (bindings["size"]?.toString()) { + "Xs" -> ButtonGroupBasicButtonGroupSize.Xs + "S" -> ButtonGroupBasicButtonGroupSize.S + "M" -> ButtonGroupBasicButtonGroupSize.M + else -> ButtonGroupBasicButtonGroupSize.Xs + }, + gap = when (bindings["gap"]?.toString()) { + "None" -> ButtonGroupBasicButtonGroupGap.None + "Wide" -> ButtonGroupBasicButtonGroupGap.Wide + "Dense" -> ButtonGroupBasicButtonGroupGap.Dense + else -> ButtonGroupBasicButtonGroupGap.None + }, + shape = when (bindings["shape"]?.toString()) { + "Default" -> ButtonGroupBasicButtonGroupShape.Default + "Segmented" -> ButtonGroupBasicButtonGroupShape.Segmented + else -> ButtonGroupBasicButtonGroupShape.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBasicButtonVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBasicButtonVariationsCompose.kt index 15b267d406..d0a948f19a 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBasicButtonVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsBasicButtonVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -13,6 +15,9 @@ import com.sdds.compose.uikit.ButtonStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.basicbutton.Accent import com.sdds.plasma.homeds.styles.basicbutton.BasicButton +import com.sdds.plasma.homeds.styles.basicbutton.BasicButtonSize +import com.sdds.plasma.homeds.styles.basicbutton.BasicButtonStyles +import com.sdds.plasma.homeds.styles.basicbutton.BasicButtonView import com.sdds.plasma.homeds.styles.basicbutton.Clear import com.sdds.plasma.homeds.styles.basicbutton.Dark import com.sdds.plasma.homeds.styles.basicbutton.Default @@ -22,30 +27,63 @@ import com.sdds.plasma.homeds.styles.basicbutton.S import com.sdds.plasma.homeds.styles.basicbutton.Secondary import com.sdds.plasma.homeds.styles.basicbutton.Warning import com.sdds.plasma.homeds.styles.basicbutton.Xs +import com.sdds.plasma.homeds.styles.basicbutton.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsBasicButtonVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "M", variants = listOf("M", "S", "Xs")), + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf("Default", "Secondary", "Dark", "Negative", "Warning", "Accent", "Clear"), + ), + ) + override val variations: Map> = mapOf( - "M.Default" to ComposeStyleReference { BasicButton.M.Default.style() }, - "M.Secondary" to ComposeStyleReference { BasicButton.M.Secondary.style() }, - "M.Dark" to ComposeStyleReference { BasicButton.M.Dark.style() }, - "M.Negative" to ComposeStyleReference { BasicButton.M.Negative.style() }, - "M.Warning" to ComposeStyleReference { BasicButton.M.Warning.style() }, - "M.Accent" to ComposeStyleReference { BasicButton.M.Accent.style() }, - "M.Clear" to ComposeStyleReference { BasicButton.M.Clear.style() }, - "S.Default" to ComposeStyleReference { BasicButton.S.Default.style() }, - "S.Secondary" to ComposeStyleReference { BasicButton.S.Secondary.style() }, - "S.Dark" to ComposeStyleReference { BasicButton.S.Dark.style() }, - "S.Negative" to ComposeStyleReference { BasicButton.S.Negative.style() }, - "S.Warning" to ComposeStyleReference { BasicButton.S.Warning.style() }, - "S.Accent" to ComposeStyleReference { BasicButton.S.Accent.style() }, - "S.Clear" to ComposeStyleReference { BasicButton.S.Clear.style() }, - "Xs.Default" to ComposeStyleReference { BasicButton.Xs.Default.style() }, - "Xs.Secondary" to ComposeStyleReference { BasicButton.Xs.Secondary.style() }, - "Xs.Dark" to ComposeStyleReference { BasicButton.Xs.Dark.style() }, - "Xs.Negative" to ComposeStyleReference { BasicButton.Xs.Negative.style() }, - "Xs.Warning" to ComposeStyleReference { BasicButton.Xs.Warning.style() }, - "Xs.Accent" to ComposeStyleReference { BasicButton.Xs.Accent.style() }, - "Xs.Clear" to ComposeStyleReference { BasicButton.Xs.Clear.style() }, + "BasicButton.M.Default" to ComposeStyleReference { BasicButton.M.Default.style() }, + "BasicButton.M.Secondary" to ComposeStyleReference { BasicButton.M.Secondary.style() }, + "BasicButton.M.Dark" to ComposeStyleReference { BasicButton.M.Dark.style() }, + "BasicButton.M.Negative" to ComposeStyleReference { BasicButton.M.Negative.style() }, + "BasicButton.M.Warning" to ComposeStyleReference { BasicButton.M.Warning.style() }, + "BasicButton.M.Accent" to ComposeStyleReference { BasicButton.M.Accent.style() }, + "BasicButton.M.Clear" to ComposeStyleReference { BasicButton.M.Clear.style() }, + "BasicButton.S.Default" to ComposeStyleReference { BasicButton.S.Default.style() }, + "BasicButton.S.Secondary" to ComposeStyleReference { BasicButton.S.Secondary.style() }, + "BasicButton.S.Dark" to ComposeStyleReference { BasicButton.S.Dark.style() }, + "BasicButton.S.Negative" to ComposeStyleReference { BasicButton.S.Negative.style() }, + "BasicButton.S.Warning" to ComposeStyleReference { BasicButton.S.Warning.style() }, + "BasicButton.S.Accent" to ComposeStyleReference { BasicButton.S.Accent.style() }, + "BasicButton.S.Clear" to ComposeStyleReference { BasicButton.S.Clear.style() }, + "BasicButton.Xs.Default" to ComposeStyleReference { BasicButton.Xs.Default.style() }, + "BasicButton.Xs.Secondary" to ComposeStyleReference { BasicButton.Xs.Secondary.style() }, + "BasicButton.Xs.Dark" to ComposeStyleReference { BasicButton.Xs.Dark.style() }, + "BasicButton.Xs.Negative" to ComposeStyleReference { BasicButton.Xs.Negative.style() }, + "BasicButton.Xs.Warning" to ComposeStyleReference { BasicButton.Xs.Warning.style() }, + "BasicButton.Xs.Accent" to ComposeStyleReference { BasicButton.Xs.Accent.style() }, + "BasicButton.Xs.Clear" to ComposeStyleReference { BasicButton.Xs.Clear.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return BasicButtonStyles.resolve( + size = when (bindings["size"]?.toString()) { + "M" -> BasicButtonSize.M + "S" -> BasicButtonSize.S + "Xs" -> BasicButtonSize.Xs + else -> BasicButtonSize.M + }, + view = when (bindings["view"]?.toString()) { + "Default" -> BasicButtonView.Default + "Secondary" -> BasicButtonView.Secondary + "Dark" -> BasicButtonView.Dark + "Negative" -> BasicButtonView.Negative + "Warning" -> BasicButtonView.Warning + "Accent" -> BasicButtonView.Accent + "Clear" -> BasicButtonView.Clear + else -> BasicButtonView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCardVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCardVariationsCompose.kt index 6e9fc7c4ad..663c88a79e 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCardVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCardVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -12,22 +14,45 @@ import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.CardStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.card.Card +import com.sdds.plasma.homeds.styles.card.CardSize +import com.sdds.plasma.homeds.styles.card.CardStyles import com.sdds.plasma.homeds.styles.card.HasInnerPaddings import com.sdds.plasma.homeds.styles.card.L import com.sdds.plasma.homeds.styles.card.M import com.sdds.plasma.homeds.styles.card.S import com.sdds.plasma.homeds.styles.card.Xl +import com.sdds.plasma.homeds.styles.card.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsCardVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "Xl", variants = listOf("Xl", "L", "M", "S")), + Property.BooleanProperty(name = "hasInnerPaddings", value = false), + ) + override val variations: Map> = mapOf( - "Xl" to ComposeStyleReference { Card.Xl.style() }, - "Xl.HasInnerPaddings" to ComposeStyleReference { Card.Xl.HasInnerPaddings.style() }, - "L" to ComposeStyleReference { Card.L.style() }, - "L.HasInnerPaddings" to ComposeStyleReference { Card.L.HasInnerPaddings.style() }, - "M" to ComposeStyleReference { Card.M.style() }, - "M.HasInnerPaddings" to ComposeStyleReference { Card.M.HasInnerPaddings.style() }, - "S" to ComposeStyleReference { Card.S.style() }, - "S.HasInnerPaddings" to ComposeStyleReference { Card.S.HasInnerPaddings.style() }, + "Card.Xl" to ComposeStyleReference { Card.Xl.style() }, + "Card.Xl.HasInnerPaddings" to ComposeStyleReference { Card.Xl.HasInnerPaddings.style() }, + "Card.L" to ComposeStyleReference { Card.L.style() }, + "Card.L.HasInnerPaddings" to ComposeStyleReference { Card.L.HasInnerPaddings.style() }, + "Card.M" to ComposeStyleReference { Card.M.style() }, + "Card.M.HasInnerPaddings" to ComposeStyleReference { Card.M.HasInnerPaddings.style() }, + "Card.S" to ComposeStyleReference { Card.S.style() }, + "Card.S.HasInnerPaddings" to ComposeStyleReference { Card.S.HasInnerPaddings.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return CardStyles.resolve( + size = when (bindings["size"]?.toString()) { + "Xl" -> CardSize.Xl + "L" -> CardSize.L + "M" -> CardSize.M + "S" -> CardSize.S + else -> CardSize.Xl + }, + hasInnerPaddings = booleanBindingValue(bindings, "hasInnerPaddings", false), + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCellVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCellVariationsCompose.kt index 856dd458e8..b9420344d7 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCellVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCellVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -12,17 +14,38 @@ import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.CellStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.cell.Cell +import com.sdds.plasma.homeds.styles.cell.CellSize +import com.sdds.plasma.homeds.styles.cell.CellStyles import com.sdds.plasma.homeds.styles.cell.L import com.sdds.plasma.homeds.styles.cell.M import com.sdds.plasma.homeds.styles.cell.S import com.sdds.plasma.homeds.styles.cell.Xs +import com.sdds.plasma.homeds.styles.cell.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsCellVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S", "Xs")), + ) + override val variations: Map> = mapOf( - "L" to ComposeStyleReference { Cell.L.style() }, - "M" to ComposeStyleReference { Cell.M.style() }, - "S" to ComposeStyleReference { Cell.S.style() }, - "Xs" to ComposeStyleReference { Cell.Xs.style() }, + "Cell.L" to ComposeStyleReference { Cell.L.style() }, + "Cell.M" to ComposeStyleReference { Cell.M.style() }, + "Cell.S" to ComposeStyleReference { Cell.S.style() }, + "Cell.Xs" to ComposeStyleReference { Cell.Xs.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return CellStyles.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> CellSize.L + "M" -> CellSize.M + "S" -> CellSize.S + "Xs" -> CellSize.Xs + else -> CellSize.L + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCheckBoxGroupVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCheckBoxGroupVariationsCompose.kt index 6a6bee647c..2e61a6f143 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCheckBoxGroupVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCheckBoxGroupVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -12,15 +14,35 @@ import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.CheckBoxGroupStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.checkboxgroup.CheckBoxGroup +import com.sdds.plasma.homeds.styles.checkboxgroup.CheckBoxGroupSize +import com.sdds.plasma.homeds.styles.checkboxgroup.CheckBoxGroupStyles import com.sdds.plasma.homeds.styles.checkboxgroup.L import com.sdds.plasma.homeds.styles.checkboxgroup.M import com.sdds.plasma.homeds.styles.checkboxgroup.S +import com.sdds.plasma.homeds.styles.checkboxgroup.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsCheckBoxGroupVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S")), + ) + override val variations: Map> = mapOf( - "L" to ComposeStyleReference { CheckBoxGroup.L.style() }, - "M" to ComposeStyleReference { CheckBoxGroup.M.style() }, - "S" to ComposeStyleReference { CheckBoxGroup.S.style() }, + "CheckBoxGroup.L" to ComposeStyleReference { CheckBoxGroup.L.style() }, + "CheckBoxGroup.M" to ComposeStyleReference { CheckBoxGroup.M.style() }, + "CheckBoxGroup.S" to ComposeStyleReference { CheckBoxGroup.S.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return CheckBoxGroupStyles.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> CheckBoxGroupSize.L + "M" -> CheckBoxGroupSize.M + "S" -> CheckBoxGroupSize.S + else -> CheckBoxGroupSize.L + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCheckBoxVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCheckBoxVariationsCompose.kt index 82a75a3cbe..e19f846997 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCheckBoxVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCheckBoxVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -12,20 +14,47 @@ import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.CheckBoxStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.checkbox.CheckBox +import com.sdds.plasma.homeds.styles.checkbox.CheckBoxSize +import com.sdds.plasma.homeds.styles.checkbox.CheckBoxStyles +import com.sdds.plasma.homeds.styles.checkbox.CheckBoxView import com.sdds.plasma.homeds.styles.checkbox.Default import com.sdds.plasma.homeds.styles.checkbox.L import com.sdds.plasma.homeds.styles.checkbox.M import com.sdds.plasma.homeds.styles.checkbox.Negative import com.sdds.plasma.homeds.styles.checkbox.S +import com.sdds.plasma.homeds.styles.checkbox.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsCheckBoxVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S")), + Property.SingleChoiceProperty(name = "view", value = "Default", variants = listOf("Default", "Negative")), + ) + override val variations: Map> = mapOf( - "L.Default" to ComposeStyleReference { CheckBox.L.Default.style() }, - "L.Negative" to ComposeStyleReference { CheckBox.L.Negative.style() }, - "M.Default" to ComposeStyleReference { CheckBox.M.Default.style() }, - "M.Negative" to ComposeStyleReference { CheckBox.M.Negative.style() }, - "S.Default" to ComposeStyleReference { CheckBox.S.Default.style() }, - "S.Negative" to ComposeStyleReference { CheckBox.S.Negative.style() }, + "CheckBox.L.Default" to ComposeStyleReference { CheckBox.L.Default.style() }, + "CheckBox.L.Negative" to ComposeStyleReference { CheckBox.L.Negative.style() }, + "CheckBox.M.Default" to ComposeStyleReference { CheckBox.M.Default.style() }, + "CheckBox.M.Negative" to ComposeStyleReference { CheckBox.M.Negative.style() }, + "CheckBox.S.Default" to ComposeStyleReference { CheckBox.S.Default.style() }, + "CheckBox.S.Negative" to ComposeStyleReference { CheckBox.S.Negative.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return CheckBoxStyles.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> CheckBoxSize.L + "M" -> CheckBoxSize.M + "S" -> CheckBoxSize.S + else -> CheckBoxSize.L + }, + view = when (bindings["view"]?.toString()) { + "Default" -> CheckBoxView.Default + "Negative" -> CheckBoxView.Negative + else -> CheckBoxView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsChipGroupDenseVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsChipGroupDenseVariationsCompose.kt index cf6413d51c..dfd519cf12 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsChipGroupDenseVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsChipGroupDenseVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -12,6 +14,10 @@ import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.ChipGroupStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.chipgroup.ChipGroupDense +import com.sdds.plasma.homeds.styles.chipgroup.ChipGroupDenseShape +import com.sdds.plasma.homeds.styles.chipgroup.ChipGroupDenseSize +import com.sdds.plasma.homeds.styles.chipgroup.ChipGroupDenseView +import com.sdds.plasma.homeds.styles.chipgroup.ChipGroupStyles import com.sdds.plasma.homeds.styles.chipgroup.Default import com.sdds.plasma.homeds.styles.chipgroup.L import com.sdds.plasma.homeds.styles.chipgroup.M @@ -20,29 +26,61 @@ import com.sdds.plasma.homeds.styles.chipgroup.S import com.sdds.plasma.homeds.styles.chipgroup.Secondary import com.sdds.plasma.homeds.styles.chipgroup.Xs import com.sdds.plasma.homeds.styles.chipgroup.Xxs +import com.sdds.plasma.homeds.styles.chipgroup.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsChipGroupDenseVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S", "Xs", "Xxs")), + Property.SingleChoiceProperty(name = "shape", value = "Default", variants = listOf("Default", "Pilled")), + Property.SingleChoiceProperty(name = "view", value = "Default", variants = listOf("Default", "Secondary")), + ) + override val variations: Map> = mapOf( - "L.Default" to ComposeStyleReference { ChipGroupDense.L.Default.style() }, - "L.Secondary" to ComposeStyleReference { ChipGroupDense.L.Secondary.style() }, - "L.Pilled.Default" to ComposeStyleReference { ChipGroupDense.L.Pilled.Default.style() }, - "L.Pilled.Secondary" to ComposeStyleReference { ChipGroupDense.L.Pilled.Secondary.style() }, - "M.Default" to ComposeStyleReference { ChipGroupDense.M.Default.style() }, - "M.Secondary" to ComposeStyleReference { ChipGroupDense.M.Secondary.style() }, - "M.Pilled.Default" to ComposeStyleReference { ChipGroupDense.M.Pilled.Default.style() }, - "M.Pilled.Secondary" to ComposeStyleReference { ChipGroupDense.M.Pilled.Secondary.style() }, - "S.Default" to ComposeStyleReference { ChipGroupDense.S.Default.style() }, - "S.Secondary" to ComposeStyleReference { ChipGroupDense.S.Secondary.style() }, - "S.Pilled.Default" to ComposeStyleReference { ChipGroupDense.S.Pilled.Default.style() }, - "S.Pilled.Secondary" to ComposeStyleReference { ChipGroupDense.S.Pilled.Secondary.style() }, - "Xs.Default" to ComposeStyleReference { ChipGroupDense.Xs.Default.style() }, - "Xs.Secondary" to ComposeStyleReference { ChipGroupDense.Xs.Secondary.style() }, - "Xs.Pilled.Default" to ComposeStyleReference { ChipGroupDense.Xs.Pilled.Default.style() }, - "Xs.Pilled.Secondary" to ComposeStyleReference { ChipGroupDense.Xs.Pilled.Secondary.style() }, - "Xxs.Default" to ComposeStyleReference { ChipGroupDense.Xxs.Default.style() }, - "Xxs.Secondary" to ComposeStyleReference { ChipGroupDense.Xxs.Secondary.style() }, - "Xxs.Pilled.Default" to ComposeStyleReference { ChipGroupDense.Xxs.Pilled.Default.style() }, - "Xxs.Pilled.Secondary" to ComposeStyleReference { ChipGroupDense.Xxs.Pilled.Secondary.style() }, + "ChipGroupDense.L.Default" to ComposeStyleReference { ChipGroupDense.L.Default.style() }, + "ChipGroupDense.L.Secondary" to ComposeStyleReference { ChipGroupDense.L.Secondary.style() }, + "ChipGroupDense.L.Pilled.Default" to ComposeStyleReference { ChipGroupDense.L.Pilled.Default.style() }, + "ChipGroupDense.L.Pilled.Secondary" to ComposeStyleReference { ChipGroupDense.L.Pilled.Secondary.style() }, + "ChipGroupDense.M.Default" to ComposeStyleReference { ChipGroupDense.M.Default.style() }, + "ChipGroupDense.M.Secondary" to ComposeStyleReference { ChipGroupDense.M.Secondary.style() }, + "ChipGroupDense.M.Pilled.Default" to ComposeStyleReference { ChipGroupDense.M.Pilled.Default.style() }, + "ChipGroupDense.M.Pilled.Secondary" to ComposeStyleReference { ChipGroupDense.M.Pilled.Secondary.style() }, + "ChipGroupDense.S.Default" to ComposeStyleReference { ChipGroupDense.S.Default.style() }, + "ChipGroupDense.S.Secondary" to ComposeStyleReference { ChipGroupDense.S.Secondary.style() }, + "ChipGroupDense.S.Pilled.Default" to ComposeStyleReference { ChipGroupDense.S.Pilled.Default.style() }, + "ChipGroupDense.S.Pilled.Secondary" to ComposeStyleReference { ChipGroupDense.S.Pilled.Secondary.style() }, + "ChipGroupDense.Xs.Default" to ComposeStyleReference { ChipGroupDense.Xs.Default.style() }, + "ChipGroupDense.Xs.Secondary" to ComposeStyleReference { ChipGroupDense.Xs.Secondary.style() }, + "ChipGroupDense.Xs.Pilled.Default" to ComposeStyleReference { ChipGroupDense.Xs.Pilled.Default.style() }, + "ChipGroupDense.Xs.Pilled.Secondary" to ComposeStyleReference { ChipGroupDense.Xs.Pilled.Secondary.style() }, + "ChipGroupDense.Xxs.Default" to ComposeStyleReference { ChipGroupDense.Xxs.Default.style() }, + "ChipGroupDense.Xxs.Secondary" to ComposeStyleReference { ChipGroupDense.Xxs.Secondary.style() }, + "ChipGroupDense.Xxs.Pilled.Default" to ComposeStyleReference { ChipGroupDense.Xxs.Pilled.Default.style() }, + "ChipGroupDense.Xxs.Pilled.Secondary" to ComposeStyleReference { ChipGroupDense.Xxs.Pilled.Secondary.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return ChipGroupStyles.Dense.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> ChipGroupDenseSize.L + "M" -> ChipGroupDenseSize.M + "S" -> ChipGroupDenseSize.S + "Xs" -> ChipGroupDenseSize.Xs + "Xxs" -> ChipGroupDenseSize.Xxs + else -> ChipGroupDenseSize.L + }, + shape = when (bindings["shape"]?.toString()) { + "Default" -> ChipGroupDenseShape.Default + "Pilled" -> ChipGroupDenseShape.Pilled + else -> ChipGroupDenseShape.Default + }, + view = when (bindings["view"]?.toString()) { + "Default" -> ChipGroupDenseView.Default + "Secondary" -> ChipGroupDenseView.Secondary + else -> ChipGroupDenseView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsChipGroupWideVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsChipGroupWideVariationsCompose.kt index 70b456da05..991b0ac497 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsChipGroupWideVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsChipGroupWideVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -11,7 +13,11 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.ChipGroupStyle import com.sdds.compose.uikit.style.style +import com.sdds.plasma.homeds.styles.chipgroup.ChipGroupStyles import com.sdds.plasma.homeds.styles.chipgroup.ChipGroupWide +import com.sdds.plasma.homeds.styles.chipgroup.ChipGroupWideShape +import com.sdds.plasma.homeds.styles.chipgroup.ChipGroupWideSize +import com.sdds.plasma.homeds.styles.chipgroup.ChipGroupWideView import com.sdds.plasma.homeds.styles.chipgroup.Default import com.sdds.plasma.homeds.styles.chipgroup.L import com.sdds.plasma.homeds.styles.chipgroup.M @@ -20,29 +26,61 @@ import com.sdds.plasma.homeds.styles.chipgroup.S import com.sdds.plasma.homeds.styles.chipgroup.Secondary import com.sdds.plasma.homeds.styles.chipgroup.Xs import com.sdds.plasma.homeds.styles.chipgroup.Xxs +import com.sdds.plasma.homeds.styles.chipgroup.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsChipGroupWideVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S", "Xs", "Xxs")), + Property.SingleChoiceProperty(name = "shape", value = "Default", variants = listOf("Default", "Pilled")), + Property.SingleChoiceProperty(name = "view", value = "Default", variants = listOf("Default", "Secondary")), + ) + override val variations: Map> = mapOf( - "L.Default" to ComposeStyleReference { ChipGroupWide.L.Default.style() }, - "L.Secondary" to ComposeStyleReference { ChipGroupWide.L.Secondary.style() }, - "L.Pilled.Default" to ComposeStyleReference { ChipGroupWide.L.Pilled.Default.style() }, - "L.Pilled.Secondary" to ComposeStyleReference { ChipGroupWide.L.Pilled.Secondary.style() }, - "M.Default" to ComposeStyleReference { ChipGroupWide.M.Default.style() }, - "M.Secondary" to ComposeStyleReference { ChipGroupWide.M.Secondary.style() }, - "M.Pilled.Default" to ComposeStyleReference { ChipGroupWide.M.Pilled.Default.style() }, - "M.Pilled.Secondary" to ComposeStyleReference { ChipGroupWide.M.Pilled.Secondary.style() }, - "S.Default" to ComposeStyleReference { ChipGroupWide.S.Default.style() }, - "S.Secondary" to ComposeStyleReference { ChipGroupWide.S.Secondary.style() }, - "S.Pilled.Default" to ComposeStyleReference { ChipGroupWide.S.Pilled.Default.style() }, - "S.Pilled.Secondary" to ComposeStyleReference { ChipGroupWide.S.Pilled.Secondary.style() }, - "Xs.Default" to ComposeStyleReference { ChipGroupWide.Xs.Default.style() }, - "Xs.Secondary" to ComposeStyleReference { ChipGroupWide.Xs.Secondary.style() }, - "Xs.Pilled.Default" to ComposeStyleReference { ChipGroupWide.Xs.Pilled.Default.style() }, - "Xs.Pilled.Secondary" to ComposeStyleReference { ChipGroupWide.Xs.Pilled.Secondary.style() }, - "Xxs.Default" to ComposeStyleReference { ChipGroupWide.Xxs.Default.style() }, - "Xxs.Secondary" to ComposeStyleReference { ChipGroupWide.Xxs.Secondary.style() }, - "Xxs.Pilled.Default" to ComposeStyleReference { ChipGroupWide.Xxs.Pilled.Default.style() }, - "Xxs.Pilled.Secondary" to ComposeStyleReference { ChipGroupWide.Xxs.Pilled.Secondary.style() }, + "ChipGroupWide.L.Default" to ComposeStyleReference { ChipGroupWide.L.Default.style() }, + "ChipGroupWide.L.Secondary" to ComposeStyleReference { ChipGroupWide.L.Secondary.style() }, + "ChipGroupWide.L.Pilled.Default" to ComposeStyleReference { ChipGroupWide.L.Pilled.Default.style() }, + "ChipGroupWide.L.Pilled.Secondary" to ComposeStyleReference { ChipGroupWide.L.Pilled.Secondary.style() }, + "ChipGroupWide.M.Default" to ComposeStyleReference { ChipGroupWide.M.Default.style() }, + "ChipGroupWide.M.Secondary" to ComposeStyleReference { ChipGroupWide.M.Secondary.style() }, + "ChipGroupWide.M.Pilled.Default" to ComposeStyleReference { ChipGroupWide.M.Pilled.Default.style() }, + "ChipGroupWide.M.Pilled.Secondary" to ComposeStyleReference { ChipGroupWide.M.Pilled.Secondary.style() }, + "ChipGroupWide.S.Default" to ComposeStyleReference { ChipGroupWide.S.Default.style() }, + "ChipGroupWide.S.Secondary" to ComposeStyleReference { ChipGroupWide.S.Secondary.style() }, + "ChipGroupWide.S.Pilled.Default" to ComposeStyleReference { ChipGroupWide.S.Pilled.Default.style() }, + "ChipGroupWide.S.Pilled.Secondary" to ComposeStyleReference { ChipGroupWide.S.Pilled.Secondary.style() }, + "ChipGroupWide.Xs.Default" to ComposeStyleReference { ChipGroupWide.Xs.Default.style() }, + "ChipGroupWide.Xs.Secondary" to ComposeStyleReference { ChipGroupWide.Xs.Secondary.style() }, + "ChipGroupWide.Xs.Pilled.Default" to ComposeStyleReference { ChipGroupWide.Xs.Pilled.Default.style() }, + "ChipGroupWide.Xs.Pilled.Secondary" to ComposeStyleReference { ChipGroupWide.Xs.Pilled.Secondary.style() }, + "ChipGroupWide.Xxs.Default" to ComposeStyleReference { ChipGroupWide.Xxs.Default.style() }, + "ChipGroupWide.Xxs.Secondary" to ComposeStyleReference { ChipGroupWide.Xxs.Secondary.style() }, + "ChipGroupWide.Xxs.Pilled.Default" to ComposeStyleReference { ChipGroupWide.Xxs.Pilled.Default.style() }, + "ChipGroupWide.Xxs.Pilled.Secondary" to ComposeStyleReference { ChipGroupWide.Xxs.Pilled.Secondary.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return ChipGroupStyles.Wide.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> ChipGroupWideSize.L + "M" -> ChipGroupWideSize.M + "S" -> ChipGroupWideSize.S + "Xs" -> ChipGroupWideSize.Xs + "Xxs" -> ChipGroupWideSize.Xxs + else -> ChipGroupWideSize.L + }, + shape = when (bindings["shape"]?.toString()) { + "Default" -> ChipGroupWideShape.Default + "Pilled" -> ChipGroupWideShape.Pilled + else -> ChipGroupWideShape.Default + }, + view = when (bindings["view"]?.toString()) { + "Default" -> ChipGroupWideView.Default + "Secondary" -> ChipGroupWideView.Secondary + else -> ChipGroupWideView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsChipVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsChipVariationsCompose.kt index 89ea9fc474..8e844192f5 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsChipVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsChipVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -12,6 +14,10 @@ import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.ChipStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.chip.Chip +import com.sdds.plasma.homeds.styles.chip.ChipShape +import com.sdds.plasma.homeds.styles.chip.ChipSize +import com.sdds.plasma.homeds.styles.chip.ChipStyles +import com.sdds.plasma.homeds.styles.chip.ChipView import com.sdds.plasma.homeds.styles.chip.Default import com.sdds.plasma.homeds.styles.chip.L import com.sdds.plasma.homeds.styles.chip.M @@ -20,29 +26,61 @@ import com.sdds.plasma.homeds.styles.chip.S import com.sdds.plasma.homeds.styles.chip.Secondary import com.sdds.plasma.homeds.styles.chip.Xs import com.sdds.plasma.homeds.styles.chip.Xxs +import com.sdds.plasma.homeds.styles.chip.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsChipVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S", "Xs", "Xxs")), + Property.SingleChoiceProperty(name = "shape", value = "Default", variants = listOf("Default", "Pilled")), + Property.SingleChoiceProperty(name = "view", value = "Default", variants = listOf("Default", "Secondary")), + ) + override val variations: Map> = mapOf( - "L.Default" to ComposeStyleReference { Chip.L.Default.style() }, - "L.Secondary" to ComposeStyleReference { Chip.L.Secondary.style() }, - "L.Pilled.Default" to ComposeStyleReference { Chip.L.Pilled.Default.style() }, - "L.Pilled.Secondary" to ComposeStyleReference { Chip.L.Pilled.Secondary.style() }, - "M.Default" to ComposeStyleReference { Chip.M.Default.style() }, - "M.Secondary" to ComposeStyleReference { Chip.M.Secondary.style() }, - "M.Pilled.Default" to ComposeStyleReference { Chip.M.Pilled.Default.style() }, - "M.Pilled.Secondary" to ComposeStyleReference { Chip.M.Pilled.Secondary.style() }, - "S.Default" to ComposeStyleReference { Chip.S.Default.style() }, - "S.Secondary" to ComposeStyleReference { Chip.S.Secondary.style() }, - "S.Pilled.Default" to ComposeStyleReference { Chip.S.Pilled.Default.style() }, - "S.Pilled.Secondary" to ComposeStyleReference { Chip.S.Pilled.Secondary.style() }, - "Xs.Default" to ComposeStyleReference { Chip.Xs.Default.style() }, - "Xs.Secondary" to ComposeStyleReference { Chip.Xs.Secondary.style() }, - "Xs.Pilled.Default" to ComposeStyleReference { Chip.Xs.Pilled.Default.style() }, - "Xs.Pilled.Secondary" to ComposeStyleReference { Chip.Xs.Pilled.Secondary.style() }, - "Xxs.Default" to ComposeStyleReference { Chip.Xxs.Default.style() }, - "Xxs.Secondary" to ComposeStyleReference { Chip.Xxs.Secondary.style() }, - "Xxs.Pilled.Default" to ComposeStyleReference { Chip.Xxs.Pilled.Default.style() }, - "Xxs.Pilled.Secondary" to ComposeStyleReference { Chip.Xxs.Pilled.Secondary.style() }, + "Chip.L.Default" to ComposeStyleReference { Chip.L.Default.style() }, + "Chip.L.Secondary" to ComposeStyleReference { Chip.L.Secondary.style() }, + "Chip.L.Pilled.Default" to ComposeStyleReference { Chip.L.Pilled.Default.style() }, + "Chip.L.Pilled.Secondary" to ComposeStyleReference { Chip.L.Pilled.Secondary.style() }, + "Chip.M.Default" to ComposeStyleReference { Chip.M.Default.style() }, + "Chip.M.Secondary" to ComposeStyleReference { Chip.M.Secondary.style() }, + "Chip.M.Pilled.Default" to ComposeStyleReference { Chip.M.Pilled.Default.style() }, + "Chip.M.Pilled.Secondary" to ComposeStyleReference { Chip.M.Pilled.Secondary.style() }, + "Chip.S.Default" to ComposeStyleReference { Chip.S.Default.style() }, + "Chip.S.Secondary" to ComposeStyleReference { Chip.S.Secondary.style() }, + "Chip.S.Pilled.Default" to ComposeStyleReference { Chip.S.Pilled.Default.style() }, + "Chip.S.Pilled.Secondary" to ComposeStyleReference { Chip.S.Pilled.Secondary.style() }, + "Chip.Xs.Default" to ComposeStyleReference { Chip.Xs.Default.style() }, + "Chip.Xs.Secondary" to ComposeStyleReference { Chip.Xs.Secondary.style() }, + "Chip.Xs.Pilled.Default" to ComposeStyleReference { Chip.Xs.Pilled.Default.style() }, + "Chip.Xs.Pilled.Secondary" to ComposeStyleReference { Chip.Xs.Pilled.Secondary.style() }, + "Chip.Xxs.Default" to ComposeStyleReference { Chip.Xxs.Default.style() }, + "Chip.Xxs.Secondary" to ComposeStyleReference { Chip.Xxs.Secondary.style() }, + "Chip.Xxs.Pilled.Default" to ComposeStyleReference { Chip.Xxs.Pilled.Default.style() }, + "Chip.Xxs.Pilled.Secondary" to ComposeStyleReference { Chip.Xxs.Pilled.Secondary.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return ChipStyles.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> ChipSize.L + "M" -> ChipSize.M + "S" -> ChipSize.S + "Xs" -> ChipSize.Xs + "Xxs" -> ChipSize.Xxs + else -> ChipSize.L + }, + shape = when (bindings["shape"]?.toString()) { + "Default" -> ChipShape.Default + "Pilled" -> ChipShape.Pilled + else -> ChipShape.Default + }, + view = when (bindings["view"]?.toString()) { + "Default" -> ChipView.Default + "Secondary" -> ChipView.Secondary + else -> ChipView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCircularProgressBarVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCircularProgressBarVariationsCompose.kt index 9ee7918ffe..75af1c00b5 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCircularProgressBarVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCircularProgressBarVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -13,6 +15,9 @@ import com.sdds.compose.uikit.CircularProgressBarStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.circularprogressbar.Accent import com.sdds.plasma.homeds.styles.circularprogressbar.CircularProgressBar +import com.sdds.plasma.homeds.styles.circularprogressbar.CircularProgressBarSize +import com.sdds.plasma.homeds.styles.circularprogressbar.CircularProgressBarStyles +import com.sdds.plasma.homeds.styles.circularprogressbar.CircularProgressBarView import com.sdds.plasma.homeds.styles.circularprogressbar.Default import com.sdds.plasma.homeds.styles.circularprogressbar.Gradient import com.sdds.plasma.homeds.styles.circularprogressbar.Info @@ -27,65 +32,116 @@ import com.sdds.plasma.homeds.styles.circularprogressbar.Xl import com.sdds.plasma.homeds.styles.circularprogressbar.Xs import com.sdds.plasma.homeds.styles.circularprogressbar.Xxl import com.sdds.plasma.homeds.styles.circularprogressbar.Xxs +import com.sdds.plasma.homeds.styles.circularprogressbar.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsCircularProgressBarVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "size", + value = "Xxl", + variants = listOf("Xxl", "Xl", "L", "M", "S", "Xs", "Xxs"), + ), + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf( + "Default", + "Secondary", + "Accent", + "Gradient", + "Info", + "Negative", + "Positive", + "Warning", + ), + ), + ) + override val variations: Map> = mapOf( - "Xxl.Default" to ComposeStyleReference { CircularProgressBar.Xxl.Default.style() }, - "Xxl.Secondary" to ComposeStyleReference { CircularProgressBar.Xxl.Secondary.style() }, - "Xxl.Accent" to ComposeStyleReference { CircularProgressBar.Xxl.Accent.style() }, - "Xxl.Gradient" to ComposeStyleReference { CircularProgressBar.Xxl.Gradient.style() }, - "Xxl.Info" to ComposeStyleReference { CircularProgressBar.Xxl.Info.style() }, - "Xxl.Negative" to ComposeStyleReference { CircularProgressBar.Xxl.Negative.style() }, - "Xxl.Positive" to ComposeStyleReference { CircularProgressBar.Xxl.Positive.style() }, - "Xxl.Warning" to ComposeStyleReference { CircularProgressBar.Xxl.Warning.style() }, - "Xl.Default" to ComposeStyleReference { CircularProgressBar.Xl.Default.style() }, - "Xl.Secondary" to ComposeStyleReference { CircularProgressBar.Xl.Secondary.style() }, - "Xl.Accent" to ComposeStyleReference { CircularProgressBar.Xl.Accent.style() }, - "Xl.Gradient" to ComposeStyleReference { CircularProgressBar.Xl.Gradient.style() }, - "Xl.Info" to ComposeStyleReference { CircularProgressBar.Xl.Info.style() }, - "Xl.Negative" to ComposeStyleReference { CircularProgressBar.Xl.Negative.style() }, - "Xl.Positive" to ComposeStyleReference { CircularProgressBar.Xl.Positive.style() }, - "Xl.Warning" to ComposeStyleReference { CircularProgressBar.Xl.Warning.style() }, - "L.Default" to ComposeStyleReference { CircularProgressBar.L.Default.style() }, - "L.Secondary" to ComposeStyleReference { CircularProgressBar.L.Secondary.style() }, - "L.Accent" to ComposeStyleReference { CircularProgressBar.L.Accent.style() }, - "L.Gradient" to ComposeStyleReference { CircularProgressBar.L.Gradient.style() }, - "L.Info" to ComposeStyleReference { CircularProgressBar.L.Info.style() }, - "L.Negative" to ComposeStyleReference { CircularProgressBar.L.Negative.style() }, - "L.Positive" to ComposeStyleReference { CircularProgressBar.L.Positive.style() }, - "L.Warning" to ComposeStyleReference { CircularProgressBar.L.Warning.style() }, - "M.Default" to ComposeStyleReference { CircularProgressBar.M.Default.style() }, - "M.Secondary" to ComposeStyleReference { CircularProgressBar.M.Secondary.style() }, - "M.Accent" to ComposeStyleReference { CircularProgressBar.M.Accent.style() }, - "M.Gradient" to ComposeStyleReference { CircularProgressBar.M.Gradient.style() }, - "M.Info" to ComposeStyleReference { CircularProgressBar.M.Info.style() }, - "M.Negative" to ComposeStyleReference { CircularProgressBar.M.Negative.style() }, - "M.Positive" to ComposeStyleReference { CircularProgressBar.M.Positive.style() }, - "M.Warning" to ComposeStyleReference { CircularProgressBar.M.Warning.style() }, - "S.Default" to ComposeStyleReference { CircularProgressBar.S.Default.style() }, - "S.Secondary" to ComposeStyleReference { CircularProgressBar.S.Secondary.style() }, - "S.Accent" to ComposeStyleReference { CircularProgressBar.S.Accent.style() }, - "S.Gradient" to ComposeStyleReference { CircularProgressBar.S.Gradient.style() }, - "S.Info" to ComposeStyleReference { CircularProgressBar.S.Info.style() }, - "S.Negative" to ComposeStyleReference { CircularProgressBar.S.Negative.style() }, - "S.Positive" to ComposeStyleReference { CircularProgressBar.S.Positive.style() }, - "S.Warning" to ComposeStyleReference { CircularProgressBar.S.Warning.style() }, - "Xs.Default" to ComposeStyleReference { CircularProgressBar.Xs.Default.style() }, - "Xs.Secondary" to ComposeStyleReference { CircularProgressBar.Xs.Secondary.style() }, - "Xs.Accent" to ComposeStyleReference { CircularProgressBar.Xs.Accent.style() }, - "Xs.Gradient" to ComposeStyleReference { CircularProgressBar.Xs.Gradient.style() }, - "Xs.Info" to ComposeStyleReference { CircularProgressBar.Xs.Info.style() }, - "Xs.Negative" to ComposeStyleReference { CircularProgressBar.Xs.Negative.style() }, - "Xs.Positive" to ComposeStyleReference { CircularProgressBar.Xs.Positive.style() }, - "Xs.Warning" to ComposeStyleReference { CircularProgressBar.Xs.Warning.style() }, - "Xxs.Default" to ComposeStyleReference { CircularProgressBar.Xxs.Default.style() }, - "Xxs.Secondary" to ComposeStyleReference { CircularProgressBar.Xxs.Secondary.style() }, - "Xxs.Accent" to ComposeStyleReference { CircularProgressBar.Xxs.Accent.style() }, - "Xxs.Gradient" to ComposeStyleReference { CircularProgressBar.Xxs.Gradient.style() }, - "Xxs.Info" to ComposeStyleReference { CircularProgressBar.Xxs.Info.style() }, - "Xxs.Negative" to ComposeStyleReference { CircularProgressBar.Xxs.Negative.style() }, - "Xxs.Positive" to ComposeStyleReference { CircularProgressBar.Xxs.Positive.style() }, - "Xxs.Warning" to ComposeStyleReference { CircularProgressBar.Xxs.Warning.style() }, + "CircularProgressBar.Xxl.Default" to ComposeStyleReference { CircularProgressBar.Xxl.Default.style() }, + "CircularProgressBar.Xxl.Secondary" to ComposeStyleReference { CircularProgressBar.Xxl.Secondary.style() }, + "CircularProgressBar.Xxl.Accent" to ComposeStyleReference { CircularProgressBar.Xxl.Accent.style() }, + "CircularProgressBar.Xxl.Gradient" to ComposeStyleReference { CircularProgressBar.Xxl.Gradient.style() }, + "CircularProgressBar.Xxl.Info" to ComposeStyleReference { CircularProgressBar.Xxl.Info.style() }, + "CircularProgressBar.Xxl.Negative" to ComposeStyleReference { CircularProgressBar.Xxl.Negative.style() }, + "CircularProgressBar.Xxl.Positive" to ComposeStyleReference { CircularProgressBar.Xxl.Positive.style() }, + "CircularProgressBar.Xxl.Warning" to ComposeStyleReference { CircularProgressBar.Xxl.Warning.style() }, + "CircularProgressBar.Xl.Default" to ComposeStyleReference { CircularProgressBar.Xl.Default.style() }, + "CircularProgressBar.Xl.Secondary" to ComposeStyleReference { CircularProgressBar.Xl.Secondary.style() }, + "CircularProgressBar.Xl.Accent" to ComposeStyleReference { CircularProgressBar.Xl.Accent.style() }, + "CircularProgressBar.Xl.Gradient" to ComposeStyleReference { CircularProgressBar.Xl.Gradient.style() }, + "CircularProgressBar.Xl.Info" to ComposeStyleReference { CircularProgressBar.Xl.Info.style() }, + "CircularProgressBar.Xl.Negative" to ComposeStyleReference { CircularProgressBar.Xl.Negative.style() }, + "CircularProgressBar.Xl.Positive" to ComposeStyleReference { CircularProgressBar.Xl.Positive.style() }, + "CircularProgressBar.Xl.Warning" to ComposeStyleReference { CircularProgressBar.Xl.Warning.style() }, + "CircularProgressBar.L.Default" to ComposeStyleReference { CircularProgressBar.L.Default.style() }, + "CircularProgressBar.L.Secondary" to ComposeStyleReference { CircularProgressBar.L.Secondary.style() }, + "CircularProgressBar.L.Accent" to ComposeStyleReference { CircularProgressBar.L.Accent.style() }, + "CircularProgressBar.L.Gradient" to ComposeStyleReference { CircularProgressBar.L.Gradient.style() }, + "CircularProgressBar.L.Info" to ComposeStyleReference { CircularProgressBar.L.Info.style() }, + "CircularProgressBar.L.Negative" to ComposeStyleReference { CircularProgressBar.L.Negative.style() }, + "CircularProgressBar.L.Positive" to ComposeStyleReference { CircularProgressBar.L.Positive.style() }, + "CircularProgressBar.L.Warning" to ComposeStyleReference { CircularProgressBar.L.Warning.style() }, + "CircularProgressBar.M.Default" to ComposeStyleReference { CircularProgressBar.M.Default.style() }, + "CircularProgressBar.M.Secondary" to ComposeStyleReference { CircularProgressBar.M.Secondary.style() }, + "CircularProgressBar.M.Accent" to ComposeStyleReference { CircularProgressBar.M.Accent.style() }, + "CircularProgressBar.M.Gradient" to ComposeStyleReference { CircularProgressBar.M.Gradient.style() }, + "CircularProgressBar.M.Info" to ComposeStyleReference { CircularProgressBar.M.Info.style() }, + "CircularProgressBar.M.Negative" to ComposeStyleReference { CircularProgressBar.M.Negative.style() }, + "CircularProgressBar.M.Positive" to ComposeStyleReference { CircularProgressBar.M.Positive.style() }, + "CircularProgressBar.M.Warning" to ComposeStyleReference { CircularProgressBar.M.Warning.style() }, + "CircularProgressBar.S.Default" to ComposeStyleReference { CircularProgressBar.S.Default.style() }, + "CircularProgressBar.S.Secondary" to ComposeStyleReference { CircularProgressBar.S.Secondary.style() }, + "CircularProgressBar.S.Accent" to ComposeStyleReference { CircularProgressBar.S.Accent.style() }, + "CircularProgressBar.S.Gradient" to ComposeStyleReference { CircularProgressBar.S.Gradient.style() }, + "CircularProgressBar.S.Info" to ComposeStyleReference { CircularProgressBar.S.Info.style() }, + "CircularProgressBar.S.Negative" to ComposeStyleReference { CircularProgressBar.S.Negative.style() }, + "CircularProgressBar.S.Positive" to ComposeStyleReference { CircularProgressBar.S.Positive.style() }, + "CircularProgressBar.S.Warning" to ComposeStyleReference { CircularProgressBar.S.Warning.style() }, + "CircularProgressBar.Xs.Default" to ComposeStyleReference { CircularProgressBar.Xs.Default.style() }, + "CircularProgressBar.Xs.Secondary" to ComposeStyleReference { CircularProgressBar.Xs.Secondary.style() }, + "CircularProgressBar.Xs.Accent" to ComposeStyleReference { CircularProgressBar.Xs.Accent.style() }, + "CircularProgressBar.Xs.Gradient" to ComposeStyleReference { CircularProgressBar.Xs.Gradient.style() }, + "CircularProgressBar.Xs.Info" to ComposeStyleReference { CircularProgressBar.Xs.Info.style() }, + "CircularProgressBar.Xs.Negative" to ComposeStyleReference { CircularProgressBar.Xs.Negative.style() }, + "CircularProgressBar.Xs.Positive" to ComposeStyleReference { CircularProgressBar.Xs.Positive.style() }, + "CircularProgressBar.Xs.Warning" to ComposeStyleReference { CircularProgressBar.Xs.Warning.style() }, + "CircularProgressBar.Xxs.Default" to ComposeStyleReference { CircularProgressBar.Xxs.Default.style() }, + "CircularProgressBar.Xxs.Secondary" to ComposeStyleReference { CircularProgressBar.Xxs.Secondary.style() }, + "CircularProgressBar.Xxs.Accent" to ComposeStyleReference { CircularProgressBar.Xxs.Accent.style() }, + "CircularProgressBar.Xxs.Gradient" to ComposeStyleReference { CircularProgressBar.Xxs.Gradient.style() }, + "CircularProgressBar.Xxs.Info" to ComposeStyleReference { CircularProgressBar.Xxs.Info.style() }, + "CircularProgressBar.Xxs.Negative" to ComposeStyleReference { CircularProgressBar.Xxs.Negative.style() }, + "CircularProgressBar.Xxs.Positive" to ComposeStyleReference { CircularProgressBar.Xxs.Positive.style() }, + "CircularProgressBar.Xxs.Warning" to ComposeStyleReference { CircularProgressBar.Xxs.Warning.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return CircularProgressBarStyles.resolve( + size = when (bindings["size"]?.toString()) { + "Xxl" -> CircularProgressBarSize.Xxl + "Xl" -> CircularProgressBarSize.Xl + "L" -> CircularProgressBarSize.L + "M" -> CircularProgressBarSize.M + "S" -> CircularProgressBarSize.S + "Xs" -> CircularProgressBarSize.Xs + "Xxs" -> CircularProgressBarSize.Xxs + else -> CircularProgressBarSize.Xxl + }, + view = when (bindings["view"]?.toString()) { + "Default" -> CircularProgressBarView.Default + "Secondary" -> CircularProgressBarView.Secondary + "Accent" -> CircularProgressBarView.Accent + "Gradient" -> CircularProgressBarView.Gradient + "Info" -> CircularProgressBarView.Info + "Negative" -> CircularProgressBarView.Negative + "Positive" -> CircularProgressBarView.Positive + "Warning" -> CircularProgressBarView.Warning + else -> CircularProgressBarView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCollapsingNavigationBarInternalPageVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCollapsingNavigationBarInternalPageVariationsCompose.kt index 9f8d40668c..b76b94d11b 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCollapsingNavigationBarInternalPageVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCollapsingNavigationBarInternalPageVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,8 +17,11 @@ import com.sdds.plasma.homeds.styles.collapsingnavigationbar.CollapsingNavigatio import com.sdds.plasma.homeds.styles.collapsingnavigationbar.Default internal object PlasmaHomedsCollapsingNavigationBarInternalPageVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { CollapsingNavigationBarInternalPage.Default.style() }, + "CollapsingNavigationBarInternalPage.Default" to ComposeStyleReference { + CollapsingNavigationBarInternalPage.Default.style() + }, ) } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCollapsingNavigationBarMainPageVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCollapsingNavigationBarMainPageVariationsCompose.kt index db0118ef72..8a464895e8 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCollapsingNavigationBarMainPageVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCollapsingNavigationBarMainPageVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,8 +17,9 @@ import com.sdds.plasma.homeds.styles.collapsingnavigationbar.CollapsingNavigatio import com.sdds.plasma.homeds.styles.collapsingnavigationbar.Default internal object PlasmaHomedsCollapsingNavigationBarMainPageVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { CollapsingNavigationBarMainPage.Default.style() }, + "CollapsingNavigationBarMainPage.Default" to ComposeStyleReference { CollapsingNavigationBarMainPage.Default.style() }, ) } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCounterVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCounterVariationsCompose.kt index 54a72e1499..e49264015f 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCounterVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsCounterVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -14,6 +16,9 @@ import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.counter.Accent import com.sdds.plasma.homeds.styles.counter.Black import com.sdds.plasma.homeds.styles.counter.Counter +import com.sdds.plasma.homeds.styles.counter.CounterSize +import com.sdds.plasma.homeds.styles.counter.CounterStyles +import com.sdds.plasma.homeds.styles.counter.CounterView import com.sdds.plasma.homeds.styles.counter.Default import com.sdds.plasma.homeds.styles.counter.L import com.sdds.plasma.homeds.styles.counter.M @@ -25,49 +30,94 @@ import com.sdds.plasma.homeds.styles.counter.Warning import com.sdds.plasma.homeds.styles.counter.White import com.sdds.plasma.homeds.styles.counter.Xs import com.sdds.plasma.homeds.styles.counter.Xxs +import com.sdds.plasma.homeds.styles.counter.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsCounterVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S", "Xs", "Xxs")), + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf( + "Default", + "Secondary", + "Accent", + "Positive", + "Warning", + "Negative", + "Black", + "White", + ), + ), + ) + override val variations: Map> = mapOf( - "L.Default" to ComposeStyleReference { Counter.L.Default.style() }, - "L.Secondary" to ComposeStyleReference { Counter.L.Secondary.style() }, - "L.Accent" to ComposeStyleReference { Counter.L.Accent.style() }, - "L.Positive" to ComposeStyleReference { Counter.L.Positive.style() }, - "L.Warning" to ComposeStyleReference { Counter.L.Warning.style() }, - "L.Negative" to ComposeStyleReference { Counter.L.Negative.style() }, - "L.Black" to ComposeStyleReference { Counter.L.Black.style() }, - "L.White" to ComposeStyleReference { Counter.L.White.style() }, - "M.Default" to ComposeStyleReference { Counter.M.Default.style() }, - "M.Secondary" to ComposeStyleReference { Counter.M.Secondary.style() }, - "M.Accent" to ComposeStyleReference { Counter.M.Accent.style() }, - "M.Positive" to ComposeStyleReference { Counter.M.Positive.style() }, - "M.Warning" to ComposeStyleReference { Counter.M.Warning.style() }, - "M.Negative" to ComposeStyleReference { Counter.M.Negative.style() }, - "M.Black" to ComposeStyleReference { Counter.M.Black.style() }, - "M.White" to ComposeStyleReference { Counter.M.White.style() }, - "S.Default" to ComposeStyleReference { Counter.S.Default.style() }, - "S.Secondary" to ComposeStyleReference { Counter.S.Secondary.style() }, - "S.Accent" to ComposeStyleReference { Counter.S.Accent.style() }, - "S.Positive" to ComposeStyleReference { Counter.S.Positive.style() }, - "S.Warning" to ComposeStyleReference { Counter.S.Warning.style() }, - "S.Negative" to ComposeStyleReference { Counter.S.Negative.style() }, - "S.Black" to ComposeStyleReference { Counter.S.Black.style() }, - "S.White" to ComposeStyleReference { Counter.S.White.style() }, - "Xs.Default" to ComposeStyleReference { Counter.Xs.Default.style() }, - "Xs.Secondary" to ComposeStyleReference { Counter.Xs.Secondary.style() }, - "Xs.Accent" to ComposeStyleReference { Counter.Xs.Accent.style() }, - "Xs.Positive" to ComposeStyleReference { Counter.Xs.Positive.style() }, - "Xs.Warning" to ComposeStyleReference { Counter.Xs.Warning.style() }, - "Xs.Negative" to ComposeStyleReference { Counter.Xs.Negative.style() }, - "Xs.Black" to ComposeStyleReference { Counter.Xs.Black.style() }, - "Xs.White" to ComposeStyleReference { Counter.Xs.White.style() }, - "Xxs.Default" to ComposeStyleReference { Counter.Xxs.Default.style() }, - "Xxs.Secondary" to ComposeStyleReference { Counter.Xxs.Secondary.style() }, - "Xxs.Accent" to ComposeStyleReference { Counter.Xxs.Accent.style() }, - "Xxs.Positive" to ComposeStyleReference { Counter.Xxs.Positive.style() }, - "Xxs.Warning" to ComposeStyleReference { Counter.Xxs.Warning.style() }, - "Xxs.Negative" to ComposeStyleReference { Counter.Xxs.Negative.style() }, - "Xxs.Black" to ComposeStyleReference { Counter.Xxs.Black.style() }, - "Xxs.White" to ComposeStyleReference { Counter.Xxs.White.style() }, + "Counter.L.Default" to ComposeStyleReference { Counter.L.Default.style() }, + "Counter.L.Secondary" to ComposeStyleReference { Counter.L.Secondary.style() }, + "Counter.L.Accent" to ComposeStyleReference { Counter.L.Accent.style() }, + "Counter.L.Positive" to ComposeStyleReference { Counter.L.Positive.style() }, + "Counter.L.Warning" to ComposeStyleReference { Counter.L.Warning.style() }, + "Counter.L.Negative" to ComposeStyleReference { Counter.L.Negative.style() }, + "Counter.L.Black" to ComposeStyleReference { Counter.L.Black.style() }, + "Counter.L.White" to ComposeStyleReference { Counter.L.White.style() }, + "Counter.M.Default" to ComposeStyleReference { Counter.M.Default.style() }, + "Counter.M.Secondary" to ComposeStyleReference { Counter.M.Secondary.style() }, + "Counter.M.Accent" to ComposeStyleReference { Counter.M.Accent.style() }, + "Counter.M.Positive" to ComposeStyleReference { Counter.M.Positive.style() }, + "Counter.M.Warning" to ComposeStyleReference { Counter.M.Warning.style() }, + "Counter.M.Negative" to ComposeStyleReference { Counter.M.Negative.style() }, + "Counter.M.Black" to ComposeStyleReference { Counter.M.Black.style() }, + "Counter.M.White" to ComposeStyleReference { Counter.M.White.style() }, + "Counter.S.Default" to ComposeStyleReference { Counter.S.Default.style() }, + "Counter.S.Secondary" to ComposeStyleReference { Counter.S.Secondary.style() }, + "Counter.S.Accent" to ComposeStyleReference { Counter.S.Accent.style() }, + "Counter.S.Positive" to ComposeStyleReference { Counter.S.Positive.style() }, + "Counter.S.Warning" to ComposeStyleReference { Counter.S.Warning.style() }, + "Counter.S.Negative" to ComposeStyleReference { Counter.S.Negative.style() }, + "Counter.S.Black" to ComposeStyleReference { Counter.S.Black.style() }, + "Counter.S.White" to ComposeStyleReference { Counter.S.White.style() }, + "Counter.Xs.Default" to ComposeStyleReference { Counter.Xs.Default.style() }, + "Counter.Xs.Secondary" to ComposeStyleReference { Counter.Xs.Secondary.style() }, + "Counter.Xs.Accent" to ComposeStyleReference { Counter.Xs.Accent.style() }, + "Counter.Xs.Positive" to ComposeStyleReference { Counter.Xs.Positive.style() }, + "Counter.Xs.Warning" to ComposeStyleReference { Counter.Xs.Warning.style() }, + "Counter.Xs.Negative" to ComposeStyleReference { Counter.Xs.Negative.style() }, + "Counter.Xs.Black" to ComposeStyleReference { Counter.Xs.Black.style() }, + "Counter.Xs.White" to ComposeStyleReference { Counter.Xs.White.style() }, + "Counter.Xxs.Default" to ComposeStyleReference { Counter.Xxs.Default.style() }, + "Counter.Xxs.Secondary" to ComposeStyleReference { Counter.Xxs.Secondary.style() }, + "Counter.Xxs.Accent" to ComposeStyleReference { Counter.Xxs.Accent.style() }, + "Counter.Xxs.Positive" to ComposeStyleReference { Counter.Xxs.Positive.style() }, + "Counter.Xxs.Warning" to ComposeStyleReference { Counter.Xxs.Warning.style() }, + "Counter.Xxs.Negative" to ComposeStyleReference { Counter.Xxs.Negative.style() }, + "Counter.Xxs.Black" to ComposeStyleReference { Counter.Xxs.Black.style() }, + "Counter.Xxs.White" to ComposeStyleReference { Counter.Xxs.White.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return CounterStyles.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> CounterSize.L + "M" -> CounterSize.M + "S" -> CounterSize.S + "Xs" -> CounterSize.Xs + "Xxs" -> CounterSize.Xxs + else -> CounterSize.L + }, + view = when (bindings["view"]?.toString()) { + "Default" -> CounterView.Default + "Secondary" -> CounterView.Secondary + "Accent" -> CounterView.Accent + "Positive" -> CounterView.Positive + "Warning" -> CounterView.Warning + "Negative" -> CounterView.Negative + "Black" -> CounterView.Black + "White" -> CounterView.White + else -> CounterView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsDividerVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsDividerVariationsCompose.kt index 3a67bd44a9..29ad1418e1 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsDividerVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsDividerVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,8 +17,9 @@ import com.sdds.plasma.homeds.styles.divider.Default import com.sdds.plasma.homeds.styles.divider.Divider internal object PlasmaHomedsDividerVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { Divider.Default.style() }, + "Divider.Default" to ComposeStyleReference { Divider.Default.style() }, ) } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsEditableVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsEditableVariationsCompose.kt index 6f48d3d121..124e0cf857 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsEditableVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsEditableVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -17,26 +19,58 @@ import com.sdds.plasma.homeds.styles.editable.BodyS import com.sdds.plasma.homeds.styles.editable.BodyXs import com.sdds.plasma.homeds.styles.editable.BodyXxs import com.sdds.plasma.homeds.styles.editable.Editable +import com.sdds.plasma.homeds.styles.editable.EditableSize +import com.sdds.plasma.homeds.styles.editable.EditableStyles import com.sdds.plasma.homeds.styles.editable.H1 import com.sdds.plasma.homeds.styles.editable.H2 import com.sdds.plasma.homeds.styles.editable.H3 import com.sdds.plasma.homeds.styles.editable.H4 import com.sdds.plasma.homeds.styles.editable.H5 import com.sdds.plasma.homeds.styles.editable.H6 +import com.sdds.plasma.homeds.styles.editable.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsEditableVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "size", + value = "H1", + variants = listOf("H1", "H2", "H3", "H4", "H5", "H6", "BodyL", "BodyM", "BodyS", "BodyXs", "BodyXxs"), + ), + ) + override val variations: Map> = mapOf( - "H1" to ComposeStyleReference { Editable.H1.style() }, - "H2" to ComposeStyleReference { Editable.H2.style() }, - "H3" to ComposeStyleReference { Editable.H3.style() }, - "H4" to ComposeStyleReference { Editable.H4.style() }, - "H5" to ComposeStyleReference { Editable.H5.style() }, - "H6" to ComposeStyleReference { Editable.H6.style() }, - "BodyL" to ComposeStyleReference { Editable.BodyL.style() }, - "BodyM" to ComposeStyleReference { Editable.BodyM.style() }, - "BodyS" to ComposeStyleReference { Editable.BodyS.style() }, - "BodyXs" to ComposeStyleReference { Editable.BodyXs.style() }, - "BodyXxs" to ComposeStyleReference { Editable.BodyXxs.style() }, + "Editable.H1" to ComposeStyleReference { Editable.H1.style() }, + "Editable.H2" to ComposeStyleReference { Editable.H2.style() }, + "Editable.H3" to ComposeStyleReference { Editable.H3.style() }, + "Editable.H4" to ComposeStyleReference { Editable.H4.style() }, + "Editable.H5" to ComposeStyleReference { Editable.H5.style() }, + "Editable.H6" to ComposeStyleReference { Editable.H6.style() }, + "Editable.BodyL" to ComposeStyleReference { Editable.BodyL.style() }, + "Editable.BodyM" to ComposeStyleReference { Editable.BodyM.style() }, + "Editable.BodyS" to ComposeStyleReference { Editable.BodyS.style() }, + "Editable.BodyXs" to ComposeStyleReference { Editable.BodyXs.style() }, + "Editable.BodyXxs" to ComposeStyleReference { Editable.BodyXxs.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return EditableStyles.resolve( + size = when (bindings["size"]?.toString()) { + "H1" -> EditableSize.H1 + "H2" -> EditableSize.H2 + "H3" -> EditableSize.H3 + "H4" -> EditableSize.H4 + "H5" -> EditableSize.H5 + "H6" -> EditableSize.H6 + "BodyL" -> EditableSize.BodyL + "BodyM" -> EditableSize.BodyM + "BodyS" -> EditableSize.BodyS + "BodyXs" -> EditableSize.BodyXs + "BodyXxs" -> EditableSize.BodyXxs + else -> EditableSize.H1 + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsFormItemVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsFormItemVariationsCompose.kt index 1bf3b32fba..e772984a6f 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsFormItemVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsFormItemVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -13,16 +15,41 @@ import com.sdds.compose.uikit.FormItemStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.formitem.Default import com.sdds.plasma.homeds.styles.formitem.FormItem +import com.sdds.plasma.homeds.styles.formitem.FormItemStyles +import com.sdds.plasma.homeds.styles.formitem.FormItemView import com.sdds.plasma.homeds.styles.formitem.Negative import com.sdds.plasma.homeds.styles.formitem.Positive import com.sdds.plasma.homeds.styles.formitem.Warning +import com.sdds.plasma.homeds.styles.formitem.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsFormItemVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf("Default", "Positive", "Negative", "Warning"), + ), + ) + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { FormItem.Default.style() }, - "Positive" to ComposeStyleReference { FormItem.Positive.style() }, - "Negative" to ComposeStyleReference { FormItem.Negative.style() }, - "Warning" to ComposeStyleReference { FormItem.Warning.style() }, + "FormItem.Default" to ComposeStyleReference { FormItem.Default.style() }, + "FormItem.Positive" to ComposeStyleReference { FormItem.Positive.style() }, + "FormItem.Negative" to ComposeStyleReference { FormItem.Negative.style() }, + "FormItem.Warning" to ComposeStyleReference { FormItem.Warning.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return FormItemStyles.resolve( + view = when (bindings["view"]?.toString()) { + "Default" -> FormItemView.Default + "Positive" -> FormItemView.Positive + "Negative" -> FormItemView.Negative + "Warning" -> FormItemView.Warning + else -> FormItemView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconBadgeClearVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconBadgeClearVariationsCompose.kt index 3b5d73f257..d1ad6e51ed 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconBadgeClearVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconBadgeClearVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,6 +17,10 @@ import com.sdds.plasma.homeds.styles.iconbadge.Accent import com.sdds.plasma.homeds.styles.iconbadge.Dark import com.sdds.plasma.homeds.styles.iconbadge.Default import com.sdds.plasma.homeds.styles.iconbadge.IconBadgeClear +import com.sdds.plasma.homeds.styles.iconbadge.IconBadgeClearShape +import com.sdds.plasma.homeds.styles.iconbadge.IconBadgeClearSize +import com.sdds.plasma.homeds.styles.iconbadge.IconBadgeClearView +import com.sdds.plasma.homeds.styles.iconbadge.IconBadgeStyles import com.sdds.plasma.homeds.styles.iconbadge.L import com.sdds.plasma.homeds.styles.iconbadge.Light import com.sdds.plasma.homeds.styles.iconbadge.M @@ -24,65 +30,105 @@ import com.sdds.plasma.homeds.styles.iconbadge.Positive import com.sdds.plasma.homeds.styles.iconbadge.S import com.sdds.plasma.homeds.styles.iconbadge.Warning import com.sdds.plasma.homeds.styles.iconbadge.Xs +import com.sdds.plasma.homeds.styles.iconbadge.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsIconBadgeClearVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S", "Xs")), + Property.SingleChoiceProperty(name = "shape", value = "Default", variants = listOf("Default", "Pilled")), + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf("Default", "Accent", "Negative", "Positive", "Warning", "Dark", "Light"), + ), + ) + override val variations: Map> = mapOf( - "L.Default" to ComposeStyleReference { IconBadgeClear.L.Default.style() }, - "L.Accent" to ComposeStyleReference { IconBadgeClear.L.Accent.style() }, - "L.Negative" to ComposeStyleReference { IconBadgeClear.L.Negative.style() }, - "L.Positive" to ComposeStyleReference { IconBadgeClear.L.Positive.style() }, - "L.Warning" to ComposeStyleReference { IconBadgeClear.L.Warning.style() }, - "L.Dark" to ComposeStyleReference { IconBadgeClear.L.Dark.style() }, - "L.Light" to ComposeStyleReference { IconBadgeClear.L.Light.style() }, - "L.Pilled.Default" to ComposeStyleReference { IconBadgeClear.L.Pilled.Default.style() }, - "L.Pilled.Accent" to ComposeStyleReference { IconBadgeClear.L.Pilled.Accent.style() }, - "L.Pilled.Negative" to ComposeStyleReference { IconBadgeClear.L.Pilled.Negative.style() }, - "L.Pilled.Positive" to ComposeStyleReference { IconBadgeClear.L.Pilled.Positive.style() }, - "L.Pilled.Warning" to ComposeStyleReference { IconBadgeClear.L.Pilled.Warning.style() }, - "L.Pilled.Dark" to ComposeStyleReference { IconBadgeClear.L.Pilled.Dark.style() }, - "L.Pilled.Light" to ComposeStyleReference { IconBadgeClear.L.Pilled.Light.style() }, - "M.Default" to ComposeStyleReference { IconBadgeClear.M.Default.style() }, - "M.Accent" to ComposeStyleReference { IconBadgeClear.M.Accent.style() }, - "M.Negative" to ComposeStyleReference { IconBadgeClear.M.Negative.style() }, - "M.Positive" to ComposeStyleReference { IconBadgeClear.M.Positive.style() }, - "M.Warning" to ComposeStyleReference { IconBadgeClear.M.Warning.style() }, - "M.Dark" to ComposeStyleReference { IconBadgeClear.M.Dark.style() }, - "M.Light" to ComposeStyleReference { IconBadgeClear.M.Light.style() }, - "M.Pilled.Default" to ComposeStyleReference { IconBadgeClear.M.Pilled.Default.style() }, - "M.Pilled.Accent" to ComposeStyleReference { IconBadgeClear.M.Pilled.Accent.style() }, - "M.Pilled.Negative" to ComposeStyleReference { IconBadgeClear.M.Pilled.Negative.style() }, - "M.Pilled.Positive" to ComposeStyleReference { IconBadgeClear.M.Pilled.Positive.style() }, - "M.Pilled.Warning" to ComposeStyleReference { IconBadgeClear.M.Pilled.Warning.style() }, - "M.Pilled.Dark" to ComposeStyleReference { IconBadgeClear.M.Pilled.Dark.style() }, - "M.Pilled.Light" to ComposeStyleReference { IconBadgeClear.M.Pilled.Light.style() }, - "S.Default" to ComposeStyleReference { IconBadgeClear.S.Default.style() }, - "S.Accent" to ComposeStyleReference { IconBadgeClear.S.Accent.style() }, - "S.Negative" to ComposeStyleReference { IconBadgeClear.S.Negative.style() }, - "S.Positive" to ComposeStyleReference { IconBadgeClear.S.Positive.style() }, - "S.Warning" to ComposeStyleReference { IconBadgeClear.S.Warning.style() }, - "S.Dark" to ComposeStyleReference { IconBadgeClear.S.Dark.style() }, - "S.Light" to ComposeStyleReference { IconBadgeClear.S.Light.style() }, - "S.Pilled.Default" to ComposeStyleReference { IconBadgeClear.S.Pilled.Default.style() }, - "S.Pilled.Accent" to ComposeStyleReference { IconBadgeClear.S.Pilled.Accent.style() }, - "S.Pilled.Negative" to ComposeStyleReference { IconBadgeClear.S.Pilled.Negative.style() }, - "S.Pilled.Positive" to ComposeStyleReference { IconBadgeClear.S.Pilled.Positive.style() }, - "S.Pilled.Warning" to ComposeStyleReference { IconBadgeClear.S.Pilled.Warning.style() }, - "S.Pilled.Dark" to ComposeStyleReference { IconBadgeClear.S.Pilled.Dark.style() }, - "S.Pilled.Light" to ComposeStyleReference { IconBadgeClear.S.Pilled.Light.style() }, - "Xs.Default" to ComposeStyleReference { IconBadgeClear.Xs.Default.style() }, - "Xs.Accent" to ComposeStyleReference { IconBadgeClear.Xs.Accent.style() }, - "Xs.Negative" to ComposeStyleReference { IconBadgeClear.Xs.Negative.style() }, - "Xs.Positive" to ComposeStyleReference { IconBadgeClear.Xs.Positive.style() }, - "Xs.Warning" to ComposeStyleReference { IconBadgeClear.Xs.Warning.style() }, - "Xs.Dark" to ComposeStyleReference { IconBadgeClear.Xs.Dark.style() }, - "Xs.Light" to ComposeStyleReference { IconBadgeClear.Xs.Light.style() }, - "Xs.Pilled.Default" to ComposeStyleReference { IconBadgeClear.Xs.Pilled.Default.style() }, - "Xs.Pilled.Accent" to ComposeStyleReference { IconBadgeClear.Xs.Pilled.Accent.style() }, - "Xs.Pilled.Negative" to ComposeStyleReference { IconBadgeClear.Xs.Pilled.Negative.style() }, - "Xs.Pilled.Positive" to ComposeStyleReference { IconBadgeClear.Xs.Pilled.Positive.style() }, - "Xs.Pilled.Warning" to ComposeStyleReference { IconBadgeClear.Xs.Pilled.Warning.style() }, - "Xs.Pilled.Dark" to ComposeStyleReference { IconBadgeClear.Xs.Pilled.Dark.style() }, - "Xs.Pilled.Light" to ComposeStyleReference { IconBadgeClear.Xs.Pilled.Light.style() }, + "IconBadgeClear.L.Default" to ComposeStyleReference { IconBadgeClear.L.Default.style() }, + "IconBadgeClear.L.Accent" to ComposeStyleReference { IconBadgeClear.L.Accent.style() }, + "IconBadgeClear.L.Negative" to ComposeStyleReference { IconBadgeClear.L.Negative.style() }, + "IconBadgeClear.L.Positive" to ComposeStyleReference { IconBadgeClear.L.Positive.style() }, + "IconBadgeClear.L.Warning" to ComposeStyleReference { IconBadgeClear.L.Warning.style() }, + "IconBadgeClear.L.Dark" to ComposeStyleReference { IconBadgeClear.L.Dark.style() }, + "IconBadgeClear.L.Light" to ComposeStyleReference { IconBadgeClear.L.Light.style() }, + "IconBadgeClear.L.Pilled.Default" to ComposeStyleReference { IconBadgeClear.L.Pilled.Default.style() }, + "IconBadgeClear.L.Pilled.Accent" to ComposeStyleReference { IconBadgeClear.L.Pilled.Accent.style() }, + "IconBadgeClear.L.Pilled.Negative" to ComposeStyleReference { IconBadgeClear.L.Pilled.Negative.style() }, + "IconBadgeClear.L.Pilled.Positive" to ComposeStyleReference { IconBadgeClear.L.Pilled.Positive.style() }, + "IconBadgeClear.L.Pilled.Warning" to ComposeStyleReference { IconBadgeClear.L.Pilled.Warning.style() }, + "IconBadgeClear.L.Pilled.Dark" to ComposeStyleReference { IconBadgeClear.L.Pilled.Dark.style() }, + "IconBadgeClear.L.Pilled.Light" to ComposeStyleReference { IconBadgeClear.L.Pilled.Light.style() }, + "IconBadgeClear.M.Default" to ComposeStyleReference { IconBadgeClear.M.Default.style() }, + "IconBadgeClear.M.Accent" to ComposeStyleReference { IconBadgeClear.M.Accent.style() }, + "IconBadgeClear.M.Negative" to ComposeStyleReference { IconBadgeClear.M.Negative.style() }, + "IconBadgeClear.M.Positive" to ComposeStyleReference { IconBadgeClear.M.Positive.style() }, + "IconBadgeClear.M.Warning" to ComposeStyleReference { IconBadgeClear.M.Warning.style() }, + "IconBadgeClear.M.Dark" to ComposeStyleReference { IconBadgeClear.M.Dark.style() }, + "IconBadgeClear.M.Light" to ComposeStyleReference { IconBadgeClear.M.Light.style() }, + "IconBadgeClear.M.Pilled.Default" to ComposeStyleReference { IconBadgeClear.M.Pilled.Default.style() }, + "IconBadgeClear.M.Pilled.Accent" to ComposeStyleReference { IconBadgeClear.M.Pilled.Accent.style() }, + "IconBadgeClear.M.Pilled.Negative" to ComposeStyleReference { IconBadgeClear.M.Pilled.Negative.style() }, + "IconBadgeClear.M.Pilled.Positive" to ComposeStyleReference { IconBadgeClear.M.Pilled.Positive.style() }, + "IconBadgeClear.M.Pilled.Warning" to ComposeStyleReference { IconBadgeClear.M.Pilled.Warning.style() }, + "IconBadgeClear.M.Pilled.Dark" to ComposeStyleReference { IconBadgeClear.M.Pilled.Dark.style() }, + "IconBadgeClear.M.Pilled.Light" to ComposeStyleReference { IconBadgeClear.M.Pilled.Light.style() }, + "IconBadgeClear.S.Default" to ComposeStyleReference { IconBadgeClear.S.Default.style() }, + "IconBadgeClear.S.Accent" to ComposeStyleReference { IconBadgeClear.S.Accent.style() }, + "IconBadgeClear.S.Negative" to ComposeStyleReference { IconBadgeClear.S.Negative.style() }, + "IconBadgeClear.S.Positive" to ComposeStyleReference { IconBadgeClear.S.Positive.style() }, + "IconBadgeClear.S.Warning" to ComposeStyleReference { IconBadgeClear.S.Warning.style() }, + "IconBadgeClear.S.Dark" to ComposeStyleReference { IconBadgeClear.S.Dark.style() }, + "IconBadgeClear.S.Light" to ComposeStyleReference { IconBadgeClear.S.Light.style() }, + "IconBadgeClear.S.Pilled.Default" to ComposeStyleReference { IconBadgeClear.S.Pilled.Default.style() }, + "IconBadgeClear.S.Pilled.Accent" to ComposeStyleReference { IconBadgeClear.S.Pilled.Accent.style() }, + "IconBadgeClear.S.Pilled.Negative" to ComposeStyleReference { IconBadgeClear.S.Pilled.Negative.style() }, + "IconBadgeClear.S.Pilled.Positive" to ComposeStyleReference { IconBadgeClear.S.Pilled.Positive.style() }, + "IconBadgeClear.S.Pilled.Warning" to ComposeStyleReference { IconBadgeClear.S.Pilled.Warning.style() }, + "IconBadgeClear.S.Pilled.Dark" to ComposeStyleReference { IconBadgeClear.S.Pilled.Dark.style() }, + "IconBadgeClear.S.Pilled.Light" to ComposeStyleReference { IconBadgeClear.S.Pilled.Light.style() }, + "IconBadgeClear.Xs.Default" to ComposeStyleReference { IconBadgeClear.Xs.Default.style() }, + "IconBadgeClear.Xs.Accent" to ComposeStyleReference { IconBadgeClear.Xs.Accent.style() }, + "IconBadgeClear.Xs.Negative" to ComposeStyleReference { IconBadgeClear.Xs.Negative.style() }, + "IconBadgeClear.Xs.Positive" to ComposeStyleReference { IconBadgeClear.Xs.Positive.style() }, + "IconBadgeClear.Xs.Warning" to ComposeStyleReference { IconBadgeClear.Xs.Warning.style() }, + "IconBadgeClear.Xs.Dark" to ComposeStyleReference { IconBadgeClear.Xs.Dark.style() }, + "IconBadgeClear.Xs.Light" to ComposeStyleReference { IconBadgeClear.Xs.Light.style() }, + "IconBadgeClear.Xs.Pilled.Default" to ComposeStyleReference { IconBadgeClear.Xs.Pilled.Default.style() }, + "IconBadgeClear.Xs.Pilled.Accent" to ComposeStyleReference { IconBadgeClear.Xs.Pilled.Accent.style() }, + "IconBadgeClear.Xs.Pilled.Negative" to ComposeStyleReference { IconBadgeClear.Xs.Pilled.Negative.style() }, + "IconBadgeClear.Xs.Pilled.Positive" to ComposeStyleReference { IconBadgeClear.Xs.Pilled.Positive.style() }, + "IconBadgeClear.Xs.Pilled.Warning" to ComposeStyleReference { IconBadgeClear.Xs.Pilled.Warning.style() }, + "IconBadgeClear.Xs.Pilled.Dark" to ComposeStyleReference { IconBadgeClear.Xs.Pilled.Dark.style() }, + "IconBadgeClear.Xs.Pilled.Light" to ComposeStyleReference { IconBadgeClear.Xs.Pilled.Light.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return IconBadgeStyles.Clear.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> IconBadgeClearSize.L + "M" -> IconBadgeClearSize.M + "S" -> IconBadgeClearSize.S + "Xs" -> IconBadgeClearSize.Xs + else -> IconBadgeClearSize.L + }, + shape = when (bindings["shape"]?.toString()) { + "Default" -> IconBadgeClearShape.Default + "Pilled" -> IconBadgeClearShape.Pilled + else -> IconBadgeClearShape.Default + }, + view = when (bindings["view"]?.toString()) { + "Default" -> IconBadgeClearView.Default + "Accent" -> IconBadgeClearView.Accent + "Negative" -> IconBadgeClearView.Negative + "Positive" -> IconBadgeClearView.Positive + "Warning" -> IconBadgeClearView.Warning + "Dark" -> IconBadgeClearView.Dark + "Light" -> IconBadgeClearView.Light + else -> IconBadgeClearView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconBadgeSolidVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconBadgeSolidVariationsCompose.kt index 5c32d08b41..3b20a2d27b 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconBadgeSolidVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconBadgeSolidVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,6 +17,10 @@ import com.sdds.plasma.homeds.styles.iconbadge.Accent import com.sdds.plasma.homeds.styles.iconbadge.Dark import com.sdds.plasma.homeds.styles.iconbadge.Default import com.sdds.plasma.homeds.styles.iconbadge.IconBadgeSolid +import com.sdds.plasma.homeds.styles.iconbadge.IconBadgeSolidShape +import com.sdds.plasma.homeds.styles.iconbadge.IconBadgeSolidSize +import com.sdds.plasma.homeds.styles.iconbadge.IconBadgeSolidView +import com.sdds.plasma.homeds.styles.iconbadge.IconBadgeStyles import com.sdds.plasma.homeds.styles.iconbadge.L import com.sdds.plasma.homeds.styles.iconbadge.Light import com.sdds.plasma.homeds.styles.iconbadge.M @@ -24,65 +30,105 @@ import com.sdds.plasma.homeds.styles.iconbadge.Positive import com.sdds.plasma.homeds.styles.iconbadge.S import com.sdds.plasma.homeds.styles.iconbadge.Warning import com.sdds.plasma.homeds.styles.iconbadge.Xs +import com.sdds.plasma.homeds.styles.iconbadge.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsIconBadgeSolidVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S", "Xs")), + Property.SingleChoiceProperty(name = "shape", value = "Default", variants = listOf("Default", "Pilled")), + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf("Default", "Accent", "Negative", "Positive", "Warning", "Dark", "Light"), + ), + ) + override val variations: Map> = mapOf( - "L.Default" to ComposeStyleReference { IconBadgeSolid.L.Default.style() }, - "L.Accent" to ComposeStyleReference { IconBadgeSolid.L.Accent.style() }, - "L.Negative" to ComposeStyleReference { IconBadgeSolid.L.Negative.style() }, - "L.Positive" to ComposeStyleReference { IconBadgeSolid.L.Positive.style() }, - "L.Warning" to ComposeStyleReference { IconBadgeSolid.L.Warning.style() }, - "L.Dark" to ComposeStyleReference { IconBadgeSolid.L.Dark.style() }, - "L.Light" to ComposeStyleReference { IconBadgeSolid.L.Light.style() }, - "L.Pilled.Default" to ComposeStyleReference { IconBadgeSolid.L.Pilled.Default.style() }, - "L.Pilled.Accent" to ComposeStyleReference { IconBadgeSolid.L.Pilled.Accent.style() }, - "L.Pilled.Negative" to ComposeStyleReference { IconBadgeSolid.L.Pilled.Negative.style() }, - "L.Pilled.Positive" to ComposeStyleReference { IconBadgeSolid.L.Pilled.Positive.style() }, - "L.Pilled.Warning" to ComposeStyleReference { IconBadgeSolid.L.Pilled.Warning.style() }, - "L.Pilled.Dark" to ComposeStyleReference { IconBadgeSolid.L.Pilled.Dark.style() }, - "L.Pilled.Light" to ComposeStyleReference { IconBadgeSolid.L.Pilled.Light.style() }, - "M.Default" to ComposeStyleReference { IconBadgeSolid.M.Default.style() }, - "M.Accent" to ComposeStyleReference { IconBadgeSolid.M.Accent.style() }, - "M.Negative" to ComposeStyleReference { IconBadgeSolid.M.Negative.style() }, - "M.Positive" to ComposeStyleReference { IconBadgeSolid.M.Positive.style() }, - "M.Warning" to ComposeStyleReference { IconBadgeSolid.M.Warning.style() }, - "M.Dark" to ComposeStyleReference { IconBadgeSolid.M.Dark.style() }, - "M.Light" to ComposeStyleReference { IconBadgeSolid.M.Light.style() }, - "M.Pilled.Default" to ComposeStyleReference { IconBadgeSolid.M.Pilled.Default.style() }, - "M.Pilled.Accent" to ComposeStyleReference { IconBadgeSolid.M.Pilled.Accent.style() }, - "M.Pilled.Negative" to ComposeStyleReference { IconBadgeSolid.M.Pilled.Negative.style() }, - "M.Pilled.Positive" to ComposeStyleReference { IconBadgeSolid.M.Pilled.Positive.style() }, - "M.Pilled.Warning" to ComposeStyleReference { IconBadgeSolid.M.Pilled.Warning.style() }, - "M.Pilled.Dark" to ComposeStyleReference { IconBadgeSolid.M.Pilled.Dark.style() }, - "M.Pilled.Light" to ComposeStyleReference { IconBadgeSolid.M.Pilled.Light.style() }, - "S.Default" to ComposeStyleReference { IconBadgeSolid.S.Default.style() }, - "S.Accent" to ComposeStyleReference { IconBadgeSolid.S.Accent.style() }, - "S.Negative" to ComposeStyleReference { IconBadgeSolid.S.Negative.style() }, - "S.Positive" to ComposeStyleReference { IconBadgeSolid.S.Positive.style() }, - "S.Warning" to ComposeStyleReference { IconBadgeSolid.S.Warning.style() }, - "S.Dark" to ComposeStyleReference { IconBadgeSolid.S.Dark.style() }, - "S.Light" to ComposeStyleReference { IconBadgeSolid.S.Light.style() }, - "S.Pilled.Default" to ComposeStyleReference { IconBadgeSolid.S.Pilled.Default.style() }, - "S.Pilled.Accent" to ComposeStyleReference { IconBadgeSolid.S.Pilled.Accent.style() }, - "S.Pilled.Negative" to ComposeStyleReference { IconBadgeSolid.S.Pilled.Negative.style() }, - "S.Pilled.Positive" to ComposeStyleReference { IconBadgeSolid.S.Pilled.Positive.style() }, - "S.Pilled.Warning" to ComposeStyleReference { IconBadgeSolid.S.Pilled.Warning.style() }, - "S.Pilled.Dark" to ComposeStyleReference { IconBadgeSolid.S.Pilled.Dark.style() }, - "S.Pilled.Light" to ComposeStyleReference { IconBadgeSolid.S.Pilled.Light.style() }, - "Xs.Default" to ComposeStyleReference { IconBadgeSolid.Xs.Default.style() }, - "Xs.Accent" to ComposeStyleReference { IconBadgeSolid.Xs.Accent.style() }, - "Xs.Negative" to ComposeStyleReference { IconBadgeSolid.Xs.Negative.style() }, - "Xs.Positive" to ComposeStyleReference { IconBadgeSolid.Xs.Positive.style() }, - "Xs.Warning" to ComposeStyleReference { IconBadgeSolid.Xs.Warning.style() }, - "Xs.Dark" to ComposeStyleReference { IconBadgeSolid.Xs.Dark.style() }, - "Xs.Light" to ComposeStyleReference { IconBadgeSolid.Xs.Light.style() }, - "Xs.Pilled.Default" to ComposeStyleReference { IconBadgeSolid.Xs.Pilled.Default.style() }, - "Xs.Pilled.Accent" to ComposeStyleReference { IconBadgeSolid.Xs.Pilled.Accent.style() }, - "Xs.Pilled.Negative" to ComposeStyleReference { IconBadgeSolid.Xs.Pilled.Negative.style() }, - "Xs.Pilled.Positive" to ComposeStyleReference { IconBadgeSolid.Xs.Pilled.Positive.style() }, - "Xs.Pilled.Warning" to ComposeStyleReference { IconBadgeSolid.Xs.Pilled.Warning.style() }, - "Xs.Pilled.Dark" to ComposeStyleReference { IconBadgeSolid.Xs.Pilled.Dark.style() }, - "Xs.Pilled.Light" to ComposeStyleReference { IconBadgeSolid.Xs.Pilled.Light.style() }, + "IconBadgeSolid.L.Default" to ComposeStyleReference { IconBadgeSolid.L.Default.style() }, + "IconBadgeSolid.L.Accent" to ComposeStyleReference { IconBadgeSolid.L.Accent.style() }, + "IconBadgeSolid.L.Negative" to ComposeStyleReference { IconBadgeSolid.L.Negative.style() }, + "IconBadgeSolid.L.Positive" to ComposeStyleReference { IconBadgeSolid.L.Positive.style() }, + "IconBadgeSolid.L.Warning" to ComposeStyleReference { IconBadgeSolid.L.Warning.style() }, + "IconBadgeSolid.L.Dark" to ComposeStyleReference { IconBadgeSolid.L.Dark.style() }, + "IconBadgeSolid.L.Light" to ComposeStyleReference { IconBadgeSolid.L.Light.style() }, + "IconBadgeSolid.L.Pilled.Default" to ComposeStyleReference { IconBadgeSolid.L.Pilled.Default.style() }, + "IconBadgeSolid.L.Pilled.Accent" to ComposeStyleReference { IconBadgeSolid.L.Pilled.Accent.style() }, + "IconBadgeSolid.L.Pilled.Negative" to ComposeStyleReference { IconBadgeSolid.L.Pilled.Negative.style() }, + "IconBadgeSolid.L.Pilled.Positive" to ComposeStyleReference { IconBadgeSolid.L.Pilled.Positive.style() }, + "IconBadgeSolid.L.Pilled.Warning" to ComposeStyleReference { IconBadgeSolid.L.Pilled.Warning.style() }, + "IconBadgeSolid.L.Pilled.Dark" to ComposeStyleReference { IconBadgeSolid.L.Pilled.Dark.style() }, + "IconBadgeSolid.L.Pilled.Light" to ComposeStyleReference { IconBadgeSolid.L.Pilled.Light.style() }, + "IconBadgeSolid.M.Default" to ComposeStyleReference { IconBadgeSolid.M.Default.style() }, + "IconBadgeSolid.M.Accent" to ComposeStyleReference { IconBadgeSolid.M.Accent.style() }, + "IconBadgeSolid.M.Negative" to ComposeStyleReference { IconBadgeSolid.M.Negative.style() }, + "IconBadgeSolid.M.Positive" to ComposeStyleReference { IconBadgeSolid.M.Positive.style() }, + "IconBadgeSolid.M.Warning" to ComposeStyleReference { IconBadgeSolid.M.Warning.style() }, + "IconBadgeSolid.M.Dark" to ComposeStyleReference { IconBadgeSolid.M.Dark.style() }, + "IconBadgeSolid.M.Light" to ComposeStyleReference { IconBadgeSolid.M.Light.style() }, + "IconBadgeSolid.M.Pilled.Default" to ComposeStyleReference { IconBadgeSolid.M.Pilled.Default.style() }, + "IconBadgeSolid.M.Pilled.Accent" to ComposeStyleReference { IconBadgeSolid.M.Pilled.Accent.style() }, + "IconBadgeSolid.M.Pilled.Negative" to ComposeStyleReference { IconBadgeSolid.M.Pilled.Negative.style() }, + "IconBadgeSolid.M.Pilled.Positive" to ComposeStyleReference { IconBadgeSolid.M.Pilled.Positive.style() }, + "IconBadgeSolid.M.Pilled.Warning" to ComposeStyleReference { IconBadgeSolid.M.Pilled.Warning.style() }, + "IconBadgeSolid.M.Pilled.Dark" to ComposeStyleReference { IconBadgeSolid.M.Pilled.Dark.style() }, + "IconBadgeSolid.M.Pilled.Light" to ComposeStyleReference { IconBadgeSolid.M.Pilled.Light.style() }, + "IconBadgeSolid.S.Default" to ComposeStyleReference { IconBadgeSolid.S.Default.style() }, + "IconBadgeSolid.S.Accent" to ComposeStyleReference { IconBadgeSolid.S.Accent.style() }, + "IconBadgeSolid.S.Negative" to ComposeStyleReference { IconBadgeSolid.S.Negative.style() }, + "IconBadgeSolid.S.Positive" to ComposeStyleReference { IconBadgeSolid.S.Positive.style() }, + "IconBadgeSolid.S.Warning" to ComposeStyleReference { IconBadgeSolid.S.Warning.style() }, + "IconBadgeSolid.S.Dark" to ComposeStyleReference { IconBadgeSolid.S.Dark.style() }, + "IconBadgeSolid.S.Light" to ComposeStyleReference { IconBadgeSolid.S.Light.style() }, + "IconBadgeSolid.S.Pilled.Default" to ComposeStyleReference { IconBadgeSolid.S.Pilled.Default.style() }, + "IconBadgeSolid.S.Pilled.Accent" to ComposeStyleReference { IconBadgeSolid.S.Pilled.Accent.style() }, + "IconBadgeSolid.S.Pilled.Negative" to ComposeStyleReference { IconBadgeSolid.S.Pilled.Negative.style() }, + "IconBadgeSolid.S.Pilled.Positive" to ComposeStyleReference { IconBadgeSolid.S.Pilled.Positive.style() }, + "IconBadgeSolid.S.Pilled.Warning" to ComposeStyleReference { IconBadgeSolid.S.Pilled.Warning.style() }, + "IconBadgeSolid.S.Pilled.Dark" to ComposeStyleReference { IconBadgeSolid.S.Pilled.Dark.style() }, + "IconBadgeSolid.S.Pilled.Light" to ComposeStyleReference { IconBadgeSolid.S.Pilled.Light.style() }, + "IconBadgeSolid.Xs.Default" to ComposeStyleReference { IconBadgeSolid.Xs.Default.style() }, + "IconBadgeSolid.Xs.Accent" to ComposeStyleReference { IconBadgeSolid.Xs.Accent.style() }, + "IconBadgeSolid.Xs.Negative" to ComposeStyleReference { IconBadgeSolid.Xs.Negative.style() }, + "IconBadgeSolid.Xs.Positive" to ComposeStyleReference { IconBadgeSolid.Xs.Positive.style() }, + "IconBadgeSolid.Xs.Warning" to ComposeStyleReference { IconBadgeSolid.Xs.Warning.style() }, + "IconBadgeSolid.Xs.Dark" to ComposeStyleReference { IconBadgeSolid.Xs.Dark.style() }, + "IconBadgeSolid.Xs.Light" to ComposeStyleReference { IconBadgeSolid.Xs.Light.style() }, + "IconBadgeSolid.Xs.Pilled.Default" to ComposeStyleReference { IconBadgeSolid.Xs.Pilled.Default.style() }, + "IconBadgeSolid.Xs.Pilled.Accent" to ComposeStyleReference { IconBadgeSolid.Xs.Pilled.Accent.style() }, + "IconBadgeSolid.Xs.Pilled.Negative" to ComposeStyleReference { IconBadgeSolid.Xs.Pilled.Negative.style() }, + "IconBadgeSolid.Xs.Pilled.Positive" to ComposeStyleReference { IconBadgeSolid.Xs.Pilled.Positive.style() }, + "IconBadgeSolid.Xs.Pilled.Warning" to ComposeStyleReference { IconBadgeSolid.Xs.Pilled.Warning.style() }, + "IconBadgeSolid.Xs.Pilled.Dark" to ComposeStyleReference { IconBadgeSolid.Xs.Pilled.Dark.style() }, + "IconBadgeSolid.Xs.Pilled.Light" to ComposeStyleReference { IconBadgeSolid.Xs.Pilled.Light.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return IconBadgeStyles.Solid.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> IconBadgeSolidSize.L + "M" -> IconBadgeSolidSize.M + "S" -> IconBadgeSolidSize.S + "Xs" -> IconBadgeSolidSize.Xs + else -> IconBadgeSolidSize.L + }, + shape = when (bindings["shape"]?.toString()) { + "Default" -> IconBadgeSolidShape.Default + "Pilled" -> IconBadgeSolidShape.Pilled + else -> IconBadgeSolidShape.Default + }, + view = when (bindings["view"]?.toString()) { + "Default" -> IconBadgeSolidView.Default + "Accent" -> IconBadgeSolidView.Accent + "Negative" -> IconBadgeSolidView.Negative + "Positive" -> IconBadgeSolidView.Positive + "Warning" -> IconBadgeSolidView.Warning + "Dark" -> IconBadgeSolidView.Dark + "Light" -> IconBadgeSolidView.Light + else -> IconBadgeSolidView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconBadgeTransparentVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconBadgeTransparentVariationsCompose.kt index f2d72177a4..d25c80cd8e 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconBadgeTransparentVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconBadgeTransparentVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -14,7 +16,11 @@ import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.iconbadge.Accent import com.sdds.plasma.homeds.styles.iconbadge.Dark import com.sdds.plasma.homeds.styles.iconbadge.Default +import com.sdds.plasma.homeds.styles.iconbadge.IconBadgeStyles import com.sdds.plasma.homeds.styles.iconbadge.IconBadgeTransparent +import com.sdds.plasma.homeds.styles.iconbadge.IconBadgeTransparentShape +import com.sdds.plasma.homeds.styles.iconbadge.IconBadgeTransparentSize +import com.sdds.plasma.homeds.styles.iconbadge.IconBadgeTransparentView import com.sdds.plasma.homeds.styles.iconbadge.L import com.sdds.plasma.homeds.styles.iconbadge.Light import com.sdds.plasma.homeds.styles.iconbadge.M @@ -24,65 +30,105 @@ import com.sdds.plasma.homeds.styles.iconbadge.Positive import com.sdds.plasma.homeds.styles.iconbadge.S import com.sdds.plasma.homeds.styles.iconbadge.Warning import com.sdds.plasma.homeds.styles.iconbadge.Xs +import com.sdds.plasma.homeds.styles.iconbadge.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsIconBadgeTransparentVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S", "Xs")), + Property.SingleChoiceProperty(name = "shape", value = "Default", variants = listOf("Default", "Pilled")), + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf("Default", "Accent", "Negative", "Positive", "Warning", "Dark", "Light"), + ), + ) + override val variations: Map> = mapOf( - "L.Default" to ComposeStyleReference { IconBadgeTransparent.L.Default.style() }, - "L.Accent" to ComposeStyleReference { IconBadgeTransparent.L.Accent.style() }, - "L.Negative" to ComposeStyleReference { IconBadgeTransparent.L.Negative.style() }, - "L.Positive" to ComposeStyleReference { IconBadgeTransparent.L.Positive.style() }, - "L.Warning" to ComposeStyleReference { IconBadgeTransparent.L.Warning.style() }, - "L.Dark" to ComposeStyleReference { IconBadgeTransparent.L.Dark.style() }, - "L.Light" to ComposeStyleReference { IconBadgeTransparent.L.Light.style() }, - "L.Pilled.Default" to ComposeStyleReference { IconBadgeTransparent.L.Pilled.Default.style() }, - "L.Pilled.Accent" to ComposeStyleReference { IconBadgeTransparent.L.Pilled.Accent.style() }, - "L.Pilled.Negative" to ComposeStyleReference { IconBadgeTransparent.L.Pilled.Negative.style() }, - "L.Pilled.Positive" to ComposeStyleReference { IconBadgeTransparent.L.Pilled.Positive.style() }, - "L.Pilled.Warning" to ComposeStyleReference { IconBadgeTransparent.L.Pilled.Warning.style() }, - "L.Pilled.Dark" to ComposeStyleReference { IconBadgeTransparent.L.Pilled.Dark.style() }, - "L.Pilled.Light" to ComposeStyleReference { IconBadgeTransparent.L.Pilled.Light.style() }, - "M.Default" to ComposeStyleReference { IconBadgeTransparent.M.Default.style() }, - "M.Accent" to ComposeStyleReference { IconBadgeTransparent.M.Accent.style() }, - "M.Negative" to ComposeStyleReference { IconBadgeTransparent.M.Negative.style() }, - "M.Positive" to ComposeStyleReference { IconBadgeTransparent.M.Positive.style() }, - "M.Warning" to ComposeStyleReference { IconBadgeTransparent.M.Warning.style() }, - "M.Dark" to ComposeStyleReference { IconBadgeTransparent.M.Dark.style() }, - "M.Light" to ComposeStyleReference { IconBadgeTransparent.M.Light.style() }, - "M.Pilled.Default" to ComposeStyleReference { IconBadgeTransparent.M.Pilled.Default.style() }, - "M.Pilled.Accent" to ComposeStyleReference { IconBadgeTransparent.M.Pilled.Accent.style() }, - "M.Pilled.Negative" to ComposeStyleReference { IconBadgeTransparent.M.Pilled.Negative.style() }, - "M.Pilled.Positive" to ComposeStyleReference { IconBadgeTransparent.M.Pilled.Positive.style() }, - "M.Pilled.Warning" to ComposeStyleReference { IconBadgeTransparent.M.Pilled.Warning.style() }, - "M.Pilled.Dark" to ComposeStyleReference { IconBadgeTransparent.M.Pilled.Dark.style() }, - "M.Pilled.Light" to ComposeStyleReference { IconBadgeTransparent.M.Pilled.Light.style() }, - "S.Default" to ComposeStyleReference { IconBadgeTransparent.S.Default.style() }, - "S.Accent" to ComposeStyleReference { IconBadgeTransparent.S.Accent.style() }, - "S.Negative" to ComposeStyleReference { IconBadgeTransparent.S.Negative.style() }, - "S.Positive" to ComposeStyleReference { IconBadgeTransparent.S.Positive.style() }, - "S.Warning" to ComposeStyleReference { IconBadgeTransparent.S.Warning.style() }, - "S.Dark" to ComposeStyleReference { IconBadgeTransparent.S.Dark.style() }, - "S.Light" to ComposeStyleReference { IconBadgeTransparent.S.Light.style() }, - "S.Pilled.Default" to ComposeStyleReference { IconBadgeTransparent.S.Pilled.Default.style() }, - "S.Pilled.Accent" to ComposeStyleReference { IconBadgeTransparent.S.Pilled.Accent.style() }, - "S.Pilled.Negative" to ComposeStyleReference { IconBadgeTransparent.S.Pilled.Negative.style() }, - "S.Pilled.Positive" to ComposeStyleReference { IconBadgeTransparent.S.Pilled.Positive.style() }, - "S.Pilled.Warning" to ComposeStyleReference { IconBadgeTransparent.S.Pilled.Warning.style() }, - "S.Pilled.Dark" to ComposeStyleReference { IconBadgeTransparent.S.Pilled.Dark.style() }, - "S.Pilled.Light" to ComposeStyleReference { IconBadgeTransparent.S.Pilled.Light.style() }, - "Xs.Default" to ComposeStyleReference { IconBadgeTransparent.Xs.Default.style() }, - "Xs.Accent" to ComposeStyleReference { IconBadgeTransparent.Xs.Accent.style() }, - "Xs.Negative" to ComposeStyleReference { IconBadgeTransparent.Xs.Negative.style() }, - "Xs.Positive" to ComposeStyleReference { IconBadgeTransparent.Xs.Positive.style() }, - "Xs.Warning" to ComposeStyleReference { IconBadgeTransparent.Xs.Warning.style() }, - "Xs.Dark" to ComposeStyleReference { IconBadgeTransparent.Xs.Dark.style() }, - "Xs.Light" to ComposeStyleReference { IconBadgeTransparent.Xs.Light.style() }, - "Xs.Pilled.Default" to ComposeStyleReference { IconBadgeTransparent.Xs.Pilled.Default.style() }, - "Xs.Pilled.Accent" to ComposeStyleReference { IconBadgeTransparent.Xs.Pilled.Accent.style() }, - "Xs.Pilled.Negative" to ComposeStyleReference { IconBadgeTransparent.Xs.Pilled.Negative.style() }, - "Xs.Pilled.Positive" to ComposeStyleReference { IconBadgeTransparent.Xs.Pilled.Positive.style() }, - "Xs.Pilled.Warning" to ComposeStyleReference { IconBadgeTransparent.Xs.Pilled.Warning.style() }, - "Xs.Pilled.Dark" to ComposeStyleReference { IconBadgeTransparent.Xs.Pilled.Dark.style() }, - "Xs.Pilled.Light" to ComposeStyleReference { IconBadgeTransparent.Xs.Pilled.Light.style() }, + "IconBadgeTransparent.L.Default" to ComposeStyleReference { IconBadgeTransparent.L.Default.style() }, + "IconBadgeTransparent.L.Accent" to ComposeStyleReference { IconBadgeTransparent.L.Accent.style() }, + "IconBadgeTransparent.L.Negative" to ComposeStyleReference { IconBadgeTransparent.L.Negative.style() }, + "IconBadgeTransparent.L.Positive" to ComposeStyleReference { IconBadgeTransparent.L.Positive.style() }, + "IconBadgeTransparent.L.Warning" to ComposeStyleReference { IconBadgeTransparent.L.Warning.style() }, + "IconBadgeTransparent.L.Dark" to ComposeStyleReference { IconBadgeTransparent.L.Dark.style() }, + "IconBadgeTransparent.L.Light" to ComposeStyleReference { IconBadgeTransparent.L.Light.style() }, + "IconBadgeTransparent.L.Pilled.Default" to ComposeStyleReference { IconBadgeTransparent.L.Pilled.Default.style() }, + "IconBadgeTransparent.L.Pilled.Accent" to ComposeStyleReference { IconBadgeTransparent.L.Pilled.Accent.style() }, + "IconBadgeTransparent.L.Pilled.Negative" to ComposeStyleReference { IconBadgeTransparent.L.Pilled.Negative.style() }, + "IconBadgeTransparent.L.Pilled.Positive" to ComposeStyleReference { IconBadgeTransparent.L.Pilled.Positive.style() }, + "IconBadgeTransparent.L.Pilled.Warning" to ComposeStyleReference { IconBadgeTransparent.L.Pilled.Warning.style() }, + "IconBadgeTransparent.L.Pilled.Dark" to ComposeStyleReference { IconBadgeTransparent.L.Pilled.Dark.style() }, + "IconBadgeTransparent.L.Pilled.Light" to ComposeStyleReference { IconBadgeTransparent.L.Pilled.Light.style() }, + "IconBadgeTransparent.M.Default" to ComposeStyleReference { IconBadgeTransparent.M.Default.style() }, + "IconBadgeTransparent.M.Accent" to ComposeStyleReference { IconBadgeTransparent.M.Accent.style() }, + "IconBadgeTransparent.M.Negative" to ComposeStyleReference { IconBadgeTransparent.M.Negative.style() }, + "IconBadgeTransparent.M.Positive" to ComposeStyleReference { IconBadgeTransparent.M.Positive.style() }, + "IconBadgeTransparent.M.Warning" to ComposeStyleReference { IconBadgeTransparent.M.Warning.style() }, + "IconBadgeTransparent.M.Dark" to ComposeStyleReference { IconBadgeTransparent.M.Dark.style() }, + "IconBadgeTransparent.M.Light" to ComposeStyleReference { IconBadgeTransparent.M.Light.style() }, + "IconBadgeTransparent.M.Pilled.Default" to ComposeStyleReference { IconBadgeTransparent.M.Pilled.Default.style() }, + "IconBadgeTransparent.M.Pilled.Accent" to ComposeStyleReference { IconBadgeTransparent.M.Pilled.Accent.style() }, + "IconBadgeTransparent.M.Pilled.Negative" to ComposeStyleReference { IconBadgeTransparent.M.Pilled.Negative.style() }, + "IconBadgeTransparent.M.Pilled.Positive" to ComposeStyleReference { IconBadgeTransparent.M.Pilled.Positive.style() }, + "IconBadgeTransparent.M.Pilled.Warning" to ComposeStyleReference { IconBadgeTransparent.M.Pilled.Warning.style() }, + "IconBadgeTransparent.M.Pilled.Dark" to ComposeStyleReference { IconBadgeTransparent.M.Pilled.Dark.style() }, + "IconBadgeTransparent.M.Pilled.Light" to ComposeStyleReference { IconBadgeTransparent.M.Pilled.Light.style() }, + "IconBadgeTransparent.S.Default" to ComposeStyleReference { IconBadgeTransparent.S.Default.style() }, + "IconBadgeTransparent.S.Accent" to ComposeStyleReference { IconBadgeTransparent.S.Accent.style() }, + "IconBadgeTransparent.S.Negative" to ComposeStyleReference { IconBadgeTransparent.S.Negative.style() }, + "IconBadgeTransparent.S.Positive" to ComposeStyleReference { IconBadgeTransparent.S.Positive.style() }, + "IconBadgeTransparent.S.Warning" to ComposeStyleReference { IconBadgeTransparent.S.Warning.style() }, + "IconBadgeTransparent.S.Dark" to ComposeStyleReference { IconBadgeTransparent.S.Dark.style() }, + "IconBadgeTransparent.S.Light" to ComposeStyleReference { IconBadgeTransparent.S.Light.style() }, + "IconBadgeTransparent.S.Pilled.Default" to ComposeStyleReference { IconBadgeTransparent.S.Pilled.Default.style() }, + "IconBadgeTransparent.S.Pilled.Accent" to ComposeStyleReference { IconBadgeTransparent.S.Pilled.Accent.style() }, + "IconBadgeTransparent.S.Pilled.Negative" to ComposeStyleReference { IconBadgeTransparent.S.Pilled.Negative.style() }, + "IconBadgeTransparent.S.Pilled.Positive" to ComposeStyleReference { IconBadgeTransparent.S.Pilled.Positive.style() }, + "IconBadgeTransparent.S.Pilled.Warning" to ComposeStyleReference { IconBadgeTransparent.S.Pilled.Warning.style() }, + "IconBadgeTransparent.S.Pilled.Dark" to ComposeStyleReference { IconBadgeTransparent.S.Pilled.Dark.style() }, + "IconBadgeTransparent.S.Pilled.Light" to ComposeStyleReference { IconBadgeTransparent.S.Pilled.Light.style() }, + "IconBadgeTransparent.Xs.Default" to ComposeStyleReference { IconBadgeTransparent.Xs.Default.style() }, + "IconBadgeTransparent.Xs.Accent" to ComposeStyleReference { IconBadgeTransparent.Xs.Accent.style() }, + "IconBadgeTransparent.Xs.Negative" to ComposeStyleReference { IconBadgeTransparent.Xs.Negative.style() }, + "IconBadgeTransparent.Xs.Positive" to ComposeStyleReference { IconBadgeTransparent.Xs.Positive.style() }, + "IconBadgeTransparent.Xs.Warning" to ComposeStyleReference { IconBadgeTransparent.Xs.Warning.style() }, + "IconBadgeTransparent.Xs.Dark" to ComposeStyleReference { IconBadgeTransparent.Xs.Dark.style() }, + "IconBadgeTransparent.Xs.Light" to ComposeStyleReference { IconBadgeTransparent.Xs.Light.style() }, + "IconBadgeTransparent.Xs.Pilled.Default" to ComposeStyleReference { IconBadgeTransparent.Xs.Pilled.Default.style() }, + "IconBadgeTransparent.Xs.Pilled.Accent" to ComposeStyleReference { IconBadgeTransparent.Xs.Pilled.Accent.style() }, + "IconBadgeTransparent.Xs.Pilled.Negative" to ComposeStyleReference { IconBadgeTransparent.Xs.Pilled.Negative.style() }, + "IconBadgeTransparent.Xs.Pilled.Positive" to ComposeStyleReference { IconBadgeTransparent.Xs.Pilled.Positive.style() }, + "IconBadgeTransparent.Xs.Pilled.Warning" to ComposeStyleReference { IconBadgeTransparent.Xs.Pilled.Warning.style() }, + "IconBadgeTransparent.Xs.Pilled.Dark" to ComposeStyleReference { IconBadgeTransparent.Xs.Pilled.Dark.style() }, + "IconBadgeTransparent.Xs.Pilled.Light" to ComposeStyleReference { IconBadgeTransparent.Xs.Pilled.Light.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return IconBadgeStyles.Transparent.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> IconBadgeTransparentSize.L + "M" -> IconBadgeTransparentSize.M + "S" -> IconBadgeTransparentSize.S + "Xs" -> IconBadgeTransparentSize.Xs + else -> IconBadgeTransparentSize.L + }, + shape = when (bindings["shape"]?.toString()) { + "Default" -> IconBadgeTransparentShape.Default + "Pilled" -> IconBadgeTransparentShape.Pilled + else -> IconBadgeTransparentShape.Default + }, + view = when (bindings["view"]?.toString()) { + "Default" -> IconBadgeTransparentView.Default + "Accent" -> IconBadgeTransparentView.Accent + "Negative" -> IconBadgeTransparentView.Negative + "Positive" -> IconBadgeTransparentView.Positive + "Warning" -> IconBadgeTransparentView.Warning + "Dark" -> IconBadgeTransparentView.Dark + "Light" -> IconBadgeTransparentView.Light + else -> IconBadgeTransparentView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconButtonGroupVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconButtonGroupVariationsCompose.kt index c73b256af3..aac0b0fb8d 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconButtonGroupVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconButtonGroupVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -11,6 +13,10 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.ButtonGroupStyle import com.sdds.compose.uikit.style.style +import com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupIconButtonGroupGap +import com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupIconButtonGroupShape +import com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupIconButtonGroupSize +import com.sdds.plasma.homeds.styles.buttongroup.ButtonGroupStyles import com.sdds.plasma.homeds.styles.buttongroup.Dense import com.sdds.plasma.homeds.styles.buttongroup.IconButtonGroup import com.sdds.plasma.homeds.styles.buttongroup.L @@ -21,49 +27,81 @@ import com.sdds.plasma.homeds.styles.buttongroup.S import com.sdds.plasma.homeds.styles.buttongroup.Segmented import com.sdds.plasma.homeds.styles.buttongroup.Wide import com.sdds.plasma.homeds.styles.buttongroup.Xs +import com.sdds.plasma.homeds.styles.buttongroup.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsIconButtonGroupVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "Xs", variants = listOf("Xs", "S", "M", "L")), + Property.SingleChoiceProperty(name = "gap", value = "Wide", variants = listOf("Wide", "Dense", "None")), + Property.SingleChoiceProperty(name = "shape", value = "Pilled", variants = listOf("Pilled", "Segmented")), + ) + override val variations: Map> = mapOf( - "Xs" to ComposeStyleReference { IconButtonGroup.Xs.style() }, - "Xs.Wide" to ComposeStyleReference { IconButtonGroup.Xs.Wide.style() }, - "Xs.Wide.Pilled" to ComposeStyleReference { IconButtonGroup.Xs.Wide.Pilled.style() }, - "Xs.Wide.Segmented" to ComposeStyleReference { IconButtonGroup.Xs.Wide.Segmented.style() }, - "Xs.Dense" to ComposeStyleReference { IconButtonGroup.Xs.Dense.style() }, - "Xs.Dense.Pilled" to ComposeStyleReference { IconButtonGroup.Xs.Dense.Pilled.style() }, - "Xs.Dense.Segmented" to ComposeStyleReference { IconButtonGroup.Xs.Dense.Segmented.style() }, - "Xs.NoGap" to ComposeStyleReference { IconButtonGroup.Xs.NoGap.style() }, - "Xs.NoGap.Pilled" to ComposeStyleReference { IconButtonGroup.Xs.NoGap.Pilled.style() }, - "Xs.NoGap.Segmented" to ComposeStyleReference { IconButtonGroup.Xs.NoGap.Segmented.style() }, - "S" to ComposeStyleReference { IconButtonGroup.S.style() }, - "S.Wide" to ComposeStyleReference { IconButtonGroup.S.Wide.style() }, - "S.Wide.Pilled" to ComposeStyleReference { IconButtonGroup.S.Wide.Pilled.style() }, - "S.Wide.Segmented" to ComposeStyleReference { IconButtonGroup.S.Wide.Segmented.style() }, - "S.Dense" to ComposeStyleReference { IconButtonGroup.S.Dense.style() }, - "S.Dense.Pilled" to ComposeStyleReference { IconButtonGroup.S.Dense.Pilled.style() }, - "S.Dense.Segmented" to ComposeStyleReference { IconButtonGroup.S.Dense.Segmented.style() }, - "S.NoGap" to ComposeStyleReference { IconButtonGroup.S.NoGap.style() }, - "S.NoGap.Pilled" to ComposeStyleReference { IconButtonGroup.S.NoGap.Pilled.style() }, - "S.NoGap.Segmented" to ComposeStyleReference { IconButtonGroup.S.NoGap.Segmented.style() }, - "M" to ComposeStyleReference { IconButtonGroup.M.style() }, - "M.Wide" to ComposeStyleReference { IconButtonGroup.M.Wide.style() }, - "M.Wide.Pilled" to ComposeStyleReference { IconButtonGroup.M.Wide.Pilled.style() }, - "M.Wide.Segmented" to ComposeStyleReference { IconButtonGroup.M.Wide.Segmented.style() }, - "M.Dense" to ComposeStyleReference { IconButtonGroup.M.Dense.style() }, - "M.Dense.Pilled" to ComposeStyleReference { IconButtonGroup.M.Dense.Pilled.style() }, - "M.Dense.Segmented" to ComposeStyleReference { IconButtonGroup.M.Dense.Segmented.style() }, - "M.NoGap" to ComposeStyleReference { IconButtonGroup.M.NoGap.style() }, - "M.NoGap.Pilled" to ComposeStyleReference { IconButtonGroup.M.NoGap.Pilled.style() }, - "M.NoGap.Segmented" to ComposeStyleReference { IconButtonGroup.M.NoGap.Segmented.style() }, - "L" to ComposeStyleReference { IconButtonGroup.L.style() }, - "L.Wide" to ComposeStyleReference { IconButtonGroup.L.Wide.style() }, - "L.Wide.Pilled" to ComposeStyleReference { IconButtonGroup.L.Wide.Pilled.style() }, - "L.Wide.Segmented" to ComposeStyleReference { IconButtonGroup.L.Wide.Segmented.style() }, - "L.Dense" to ComposeStyleReference { IconButtonGroup.L.Dense.style() }, - "L.Dense.Pilled" to ComposeStyleReference { IconButtonGroup.L.Dense.Pilled.style() }, - "L.Dense.Segmented" to ComposeStyleReference { IconButtonGroup.L.Dense.Segmented.style() }, - "L.NoGap" to ComposeStyleReference { IconButtonGroup.L.NoGap.style() }, - "L.NoGap.Pilled" to ComposeStyleReference { IconButtonGroup.L.NoGap.Pilled.style() }, - "L.NoGap.Segmented" to ComposeStyleReference { IconButtonGroup.L.NoGap.Segmented.style() }, + "IconButtonGroup.Xs" to ComposeStyleReference { IconButtonGroup.Xs.style() }, + "IconButtonGroup.Xs.Wide" to ComposeStyleReference { IconButtonGroup.Xs.Wide.style() }, + "IconButtonGroup.Xs.Wide.Pilled" to ComposeStyleReference { IconButtonGroup.Xs.Wide.Pilled.style() }, + "IconButtonGroup.Xs.Wide.Segmented" to ComposeStyleReference { IconButtonGroup.Xs.Wide.Segmented.style() }, + "IconButtonGroup.Xs.Dense" to ComposeStyleReference { IconButtonGroup.Xs.Dense.style() }, + "IconButtonGroup.Xs.Dense.Pilled" to ComposeStyleReference { IconButtonGroup.Xs.Dense.Pilled.style() }, + "IconButtonGroup.Xs.Dense.Segmented" to ComposeStyleReference { IconButtonGroup.Xs.Dense.Segmented.style() }, + "IconButtonGroup.Xs.NoGap" to ComposeStyleReference { IconButtonGroup.Xs.NoGap.style() }, + "IconButtonGroup.Xs.NoGap.Pilled" to ComposeStyleReference { IconButtonGroup.Xs.NoGap.Pilled.style() }, + "IconButtonGroup.Xs.NoGap.Segmented" to ComposeStyleReference { IconButtonGroup.Xs.NoGap.Segmented.style() }, + "IconButtonGroup.S" to ComposeStyleReference { IconButtonGroup.S.style() }, + "IconButtonGroup.S.Wide" to ComposeStyleReference { IconButtonGroup.S.Wide.style() }, + "IconButtonGroup.S.Wide.Pilled" to ComposeStyleReference { IconButtonGroup.S.Wide.Pilled.style() }, + "IconButtonGroup.S.Wide.Segmented" to ComposeStyleReference { IconButtonGroup.S.Wide.Segmented.style() }, + "IconButtonGroup.S.Dense" to ComposeStyleReference { IconButtonGroup.S.Dense.style() }, + "IconButtonGroup.S.Dense.Pilled" to ComposeStyleReference { IconButtonGroup.S.Dense.Pilled.style() }, + "IconButtonGroup.S.Dense.Segmented" to ComposeStyleReference { IconButtonGroup.S.Dense.Segmented.style() }, + "IconButtonGroup.S.NoGap" to ComposeStyleReference { IconButtonGroup.S.NoGap.style() }, + "IconButtonGroup.S.NoGap.Pilled" to ComposeStyleReference { IconButtonGroup.S.NoGap.Pilled.style() }, + "IconButtonGroup.S.NoGap.Segmented" to ComposeStyleReference { IconButtonGroup.S.NoGap.Segmented.style() }, + "IconButtonGroup.M" to ComposeStyleReference { IconButtonGroup.M.style() }, + "IconButtonGroup.M.Wide" to ComposeStyleReference { IconButtonGroup.M.Wide.style() }, + "IconButtonGroup.M.Wide.Pilled" to ComposeStyleReference { IconButtonGroup.M.Wide.Pilled.style() }, + "IconButtonGroup.M.Wide.Segmented" to ComposeStyleReference { IconButtonGroup.M.Wide.Segmented.style() }, + "IconButtonGroup.M.Dense" to ComposeStyleReference { IconButtonGroup.M.Dense.style() }, + "IconButtonGroup.M.Dense.Pilled" to ComposeStyleReference { IconButtonGroup.M.Dense.Pilled.style() }, + "IconButtonGroup.M.Dense.Segmented" to ComposeStyleReference { IconButtonGroup.M.Dense.Segmented.style() }, + "IconButtonGroup.M.NoGap" to ComposeStyleReference { IconButtonGroup.M.NoGap.style() }, + "IconButtonGroup.M.NoGap.Pilled" to ComposeStyleReference { IconButtonGroup.M.NoGap.Pilled.style() }, + "IconButtonGroup.M.NoGap.Segmented" to ComposeStyleReference { IconButtonGroup.M.NoGap.Segmented.style() }, + "IconButtonGroup.L" to ComposeStyleReference { IconButtonGroup.L.style() }, + "IconButtonGroup.L.Wide" to ComposeStyleReference { IconButtonGroup.L.Wide.style() }, + "IconButtonGroup.L.Wide.Pilled" to ComposeStyleReference { IconButtonGroup.L.Wide.Pilled.style() }, + "IconButtonGroup.L.Wide.Segmented" to ComposeStyleReference { IconButtonGroup.L.Wide.Segmented.style() }, + "IconButtonGroup.L.Dense" to ComposeStyleReference { IconButtonGroup.L.Dense.style() }, + "IconButtonGroup.L.Dense.Pilled" to ComposeStyleReference { IconButtonGroup.L.Dense.Pilled.style() }, + "IconButtonGroup.L.Dense.Segmented" to ComposeStyleReference { IconButtonGroup.L.Dense.Segmented.style() }, + "IconButtonGroup.L.NoGap" to ComposeStyleReference { IconButtonGroup.L.NoGap.style() }, + "IconButtonGroup.L.NoGap.Pilled" to ComposeStyleReference { IconButtonGroup.L.NoGap.Pilled.style() }, + "IconButtonGroup.L.NoGap.Segmented" to ComposeStyleReference { IconButtonGroup.L.NoGap.Segmented.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return ButtonGroupStyles.IconButtonGroup.resolve( + size = when (bindings["size"]?.toString()) { + "Xs" -> ButtonGroupIconButtonGroupSize.Xs + "S" -> ButtonGroupIconButtonGroupSize.S + "M" -> ButtonGroupIconButtonGroupSize.M + "L" -> ButtonGroupIconButtonGroupSize.L + else -> ButtonGroupIconButtonGroupSize.Xs + }, + gap = when (bindings["gap"]?.toString()) { + "Wide" -> ButtonGroupIconButtonGroupGap.Wide + "Dense" -> ButtonGroupIconButtonGroupGap.Dense + "None" -> ButtonGroupIconButtonGroupGap.None + else -> ButtonGroupIconButtonGroupGap.Wide + }, + shape = when (bindings["shape"]?.toString()) { + "Pilled" -> ButtonGroupIconButtonGroupShape.Pilled + "Segmented" -> ButtonGroupIconButtonGroupShape.Segmented + else -> ButtonGroupIconButtonGroupShape.Pilled + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconButtonVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconButtonVariationsCompose.kt index ddda8824ae..9a5de63054 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconButtonVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIconButtonVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -16,6 +18,9 @@ import com.sdds.plasma.homeds.styles.iconbutton.Clear import com.sdds.plasma.homeds.styles.iconbutton.Dark import com.sdds.plasma.homeds.styles.iconbutton.Default import com.sdds.plasma.homeds.styles.iconbutton.IconButton +import com.sdds.plasma.homeds.styles.iconbutton.IconButtonSize +import com.sdds.plasma.homeds.styles.iconbutton.IconButtonStyles +import com.sdds.plasma.homeds.styles.iconbutton.IconButtonView import com.sdds.plasma.homeds.styles.iconbutton.L import com.sdds.plasma.homeds.styles.iconbutton.M import com.sdds.plasma.homeds.styles.iconbutton.Negative @@ -23,37 +28,71 @@ import com.sdds.plasma.homeds.styles.iconbutton.S import com.sdds.plasma.homeds.styles.iconbutton.Secondary import com.sdds.plasma.homeds.styles.iconbutton.Warning import com.sdds.plasma.homeds.styles.iconbutton.Xs +import com.sdds.plasma.homeds.styles.iconbutton.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsIconButtonVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S", "Xs")), + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf("Default", "Secondary", "Dark", "Negative", "Warning", "Accent", "Clear"), + ), + ) + override val variations: Map> = mapOf( - "L.Default" to ComposeStyleReference { IconButton.L.Default.style() }, - "L.Secondary" to ComposeStyleReference { IconButton.L.Secondary.style() }, - "L.Dark" to ComposeStyleReference { IconButton.L.Dark.style() }, - "L.Negative" to ComposeStyleReference { IconButton.L.Negative.style() }, - "L.Warning" to ComposeStyleReference { IconButton.L.Warning.style() }, - "L.Accent" to ComposeStyleReference { IconButton.L.Accent.style() }, - "L.Clear" to ComposeStyleReference { IconButton.L.Clear.style() }, - "M.Default" to ComposeStyleReference { IconButton.M.Default.style() }, - "M.Secondary" to ComposeStyleReference { IconButton.M.Secondary.style() }, - "M.Dark" to ComposeStyleReference { IconButton.M.Dark.style() }, - "M.Negative" to ComposeStyleReference { IconButton.M.Negative.style() }, - "M.Warning" to ComposeStyleReference { IconButton.M.Warning.style() }, - "M.Accent" to ComposeStyleReference { IconButton.M.Accent.style() }, - "M.Clear" to ComposeStyleReference { IconButton.M.Clear.style() }, - "S.Default" to ComposeStyleReference { IconButton.S.Default.style() }, - "S.Secondary" to ComposeStyleReference { IconButton.S.Secondary.style() }, - "S.Dark" to ComposeStyleReference { IconButton.S.Dark.style() }, - "S.Negative" to ComposeStyleReference { IconButton.S.Negative.style() }, - "S.Warning" to ComposeStyleReference { IconButton.S.Warning.style() }, - "S.Accent" to ComposeStyleReference { IconButton.S.Accent.style() }, - "S.Clear" to ComposeStyleReference { IconButton.S.Clear.style() }, - "Xs.Default" to ComposeStyleReference { IconButton.Xs.Default.style() }, - "Xs.Secondary" to ComposeStyleReference { IconButton.Xs.Secondary.style() }, - "Xs.Dark" to ComposeStyleReference { IconButton.Xs.Dark.style() }, - "Xs.Negative" to ComposeStyleReference { IconButton.Xs.Negative.style() }, - "Xs.Warning" to ComposeStyleReference { IconButton.Xs.Warning.style() }, - "Xs.Accent" to ComposeStyleReference { IconButton.Xs.Accent.style() }, - "Xs.Clear" to ComposeStyleReference { IconButton.Xs.Clear.style() }, + "IconButton.L.Default" to ComposeStyleReference { IconButton.L.Default.style() }, + "IconButton.L.Secondary" to ComposeStyleReference { IconButton.L.Secondary.style() }, + "IconButton.L.Dark" to ComposeStyleReference { IconButton.L.Dark.style() }, + "IconButton.L.Negative" to ComposeStyleReference { IconButton.L.Negative.style() }, + "IconButton.L.Warning" to ComposeStyleReference { IconButton.L.Warning.style() }, + "IconButton.L.Accent" to ComposeStyleReference { IconButton.L.Accent.style() }, + "IconButton.L.Clear" to ComposeStyleReference { IconButton.L.Clear.style() }, + "IconButton.M.Default" to ComposeStyleReference { IconButton.M.Default.style() }, + "IconButton.M.Secondary" to ComposeStyleReference { IconButton.M.Secondary.style() }, + "IconButton.M.Dark" to ComposeStyleReference { IconButton.M.Dark.style() }, + "IconButton.M.Negative" to ComposeStyleReference { IconButton.M.Negative.style() }, + "IconButton.M.Warning" to ComposeStyleReference { IconButton.M.Warning.style() }, + "IconButton.M.Accent" to ComposeStyleReference { IconButton.M.Accent.style() }, + "IconButton.M.Clear" to ComposeStyleReference { IconButton.M.Clear.style() }, + "IconButton.S.Default" to ComposeStyleReference { IconButton.S.Default.style() }, + "IconButton.S.Secondary" to ComposeStyleReference { IconButton.S.Secondary.style() }, + "IconButton.S.Dark" to ComposeStyleReference { IconButton.S.Dark.style() }, + "IconButton.S.Negative" to ComposeStyleReference { IconButton.S.Negative.style() }, + "IconButton.S.Warning" to ComposeStyleReference { IconButton.S.Warning.style() }, + "IconButton.S.Accent" to ComposeStyleReference { IconButton.S.Accent.style() }, + "IconButton.S.Clear" to ComposeStyleReference { IconButton.S.Clear.style() }, + "IconButton.Xs.Default" to ComposeStyleReference { IconButton.Xs.Default.style() }, + "IconButton.Xs.Secondary" to ComposeStyleReference { IconButton.Xs.Secondary.style() }, + "IconButton.Xs.Dark" to ComposeStyleReference { IconButton.Xs.Dark.style() }, + "IconButton.Xs.Negative" to ComposeStyleReference { IconButton.Xs.Negative.style() }, + "IconButton.Xs.Warning" to ComposeStyleReference { IconButton.Xs.Warning.style() }, + "IconButton.Xs.Accent" to ComposeStyleReference { IconButton.Xs.Accent.style() }, + "IconButton.Xs.Clear" to ComposeStyleReference { IconButton.Xs.Clear.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return IconButtonStyles.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> IconButtonSize.L + "M" -> IconButtonSize.M + "S" -> IconButtonSize.S + "Xs" -> IconButtonSize.Xs + else -> IconButtonSize.L + }, + view = when (bindings["view"]?.toString()) { + "Default" -> IconButtonView.Default + "Secondary" -> IconButtonView.Secondary + "Dark" -> IconButtonView.Dark + "Negative" -> IconButtonView.Negative + "Warning" -> IconButtonView.Warning + "Accent" -> IconButtonView.Accent + "Clear" -> IconButtonView.Clear + else -> IconButtonView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsImageVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsImageVariationsCompose.kt index 8016db1b75..f808320942 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsImageVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsImageVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -12,6 +14,8 @@ import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.ImageStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.image.Image +import com.sdds.plasma.homeds.styles.image.ImageRatio +import com.sdds.plasma.homeds.styles.image.ImageStyles import com.sdds.plasma.homeds.styles.image.Ratio16x9 import com.sdds.plasma.homeds.styles.image.Ratio1x1 import com.sdds.plasma.homeds.styles.image.Ratio1x2 @@ -19,16 +23,42 @@ import com.sdds.plasma.homeds.styles.image.Ratio2x1 import com.sdds.plasma.homeds.styles.image.Ratio3x4 import com.sdds.plasma.homeds.styles.image.Ratio4x3 import com.sdds.plasma.homeds.styles.image.Ratio9x16 +import com.sdds.plasma.homeds.styles.image.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsImageVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "ratio", + value = "Ratio12", + variants = listOf("Ratio12", "Ratio916", "Ratio34", "Ratio21", "Ratio169", "Ratio43", "Ratio11"), + ), + ) + override val variations: Map> = mapOf( - "Ratio12" to ComposeStyleReference { Image.Ratio1x2.style() }, - "Ratio916" to ComposeStyleReference { Image.Ratio9x16.style() }, - "Ratio34" to ComposeStyleReference { Image.Ratio3x4.style() }, - "Ratio21" to ComposeStyleReference { Image.Ratio2x1.style() }, - "Ratio169" to ComposeStyleReference { Image.Ratio16x9.style() }, - "Ratio43" to ComposeStyleReference { Image.Ratio4x3.style() }, - "Ratio11" to ComposeStyleReference { Image.Ratio1x1.style() }, + "Image.Ratio1x2" to ComposeStyleReference { Image.Ratio1x2.style() }, + "Image.Ratio9x16" to ComposeStyleReference { Image.Ratio9x16.style() }, + "Image.Ratio3x4" to ComposeStyleReference { Image.Ratio3x4.style() }, + "Image.Ratio2x1" to ComposeStyleReference { Image.Ratio2x1.style() }, + "Image.Ratio16x9" to ComposeStyleReference { Image.Ratio16x9.style() }, + "Image.Ratio4x3" to ComposeStyleReference { Image.Ratio4x3.style() }, + "Image.Ratio1x1" to ComposeStyleReference { Image.Ratio1x1.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return ImageStyles.resolve( + ratio = when (bindings["ratio"]?.toString()) { + "Ratio12" -> ImageRatio.Ratio12 + "Ratio916" -> ImageRatio.Ratio916 + "Ratio34" -> ImageRatio.Ratio34 + "Ratio21" -> ImageRatio.Ratio21 + "Ratio169" -> ImageRatio.Ratio169 + "Ratio43" -> ImageRatio.Ratio43 + "Ratio11" -> ImageRatio.Ratio11 + else -> ImageRatio.Ratio12 + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIndicatorVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIndicatorVariationsCompose.kt index 5a3c67099d..2145a03830 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIndicatorVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsIndicatorVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -17,6 +19,9 @@ import com.sdds.plasma.homeds.styles.indicator.Dark import com.sdds.plasma.homeds.styles.indicator.Default import com.sdds.plasma.homeds.styles.indicator.Inactive import com.sdds.plasma.homeds.styles.indicator.Indicator +import com.sdds.plasma.homeds.styles.indicator.IndicatorSize +import com.sdds.plasma.homeds.styles.indicator.IndicatorStyles +import com.sdds.plasma.homeds.styles.indicator.IndicatorView import com.sdds.plasma.homeds.styles.indicator.L import com.sdds.plasma.homeds.styles.indicator.M import com.sdds.plasma.homeds.styles.indicator.Negative @@ -24,36 +29,71 @@ import com.sdds.plasma.homeds.styles.indicator.Positive import com.sdds.plasma.homeds.styles.indicator.S import com.sdds.plasma.homeds.styles.indicator.Warning import com.sdds.plasma.homeds.styles.indicator.White +import com.sdds.plasma.homeds.styles.indicator.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsIndicatorVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S")), + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf("Default", "Accent", "Inactive", "Positive", "Warning", "Negative", "Dark", "Black", "White"), + ), + ) + override val variations: Map> = mapOf( - "L.Default" to ComposeStyleReference { Indicator.L.Default.style() }, - "L.Accent" to ComposeStyleReference { Indicator.L.Accent.style() }, - "L.Inactive" to ComposeStyleReference { Indicator.L.Inactive.style() }, - "L.Positive" to ComposeStyleReference { Indicator.L.Positive.style() }, - "L.Warning" to ComposeStyleReference { Indicator.L.Warning.style() }, - "L.Negative" to ComposeStyleReference { Indicator.L.Negative.style() }, - "L.Dark" to ComposeStyleReference { Indicator.L.Dark.style() }, - "L.Black" to ComposeStyleReference { Indicator.L.Black.style() }, - "L.White" to ComposeStyleReference { Indicator.L.White.style() }, - "M.Default" to ComposeStyleReference { Indicator.M.Default.style() }, - "M.Accent" to ComposeStyleReference { Indicator.M.Accent.style() }, - "M.Inactive" to ComposeStyleReference { Indicator.M.Inactive.style() }, - "M.Positive" to ComposeStyleReference { Indicator.M.Positive.style() }, - "M.Warning" to ComposeStyleReference { Indicator.M.Warning.style() }, - "M.Negative" to ComposeStyleReference { Indicator.M.Negative.style() }, - "M.Dark" to ComposeStyleReference { Indicator.M.Dark.style() }, - "M.Black" to ComposeStyleReference { Indicator.M.Black.style() }, - "M.White" to ComposeStyleReference { Indicator.M.White.style() }, - "S.Default" to ComposeStyleReference { Indicator.S.Default.style() }, - "S.Accent" to ComposeStyleReference { Indicator.S.Accent.style() }, - "S.Inactive" to ComposeStyleReference { Indicator.S.Inactive.style() }, - "S.Positive" to ComposeStyleReference { Indicator.S.Positive.style() }, - "S.Warning" to ComposeStyleReference { Indicator.S.Warning.style() }, - "S.Negative" to ComposeStyleReference { Indicator.S.Negative.style() }, - "S.Dark" to ComposeStyleReference { Indicator.S.Dark.style() }, - "S.Black" to ComposeStyleReference { Indicator.S.Black.style() }, - "S.White" to ComposeStyleReference { Indicator.S.White.style() }, + "Indicator.L.Default" to ComposeStyleReference { Indicator.L.Default.style() }, + "Indicator.L.Accent" to ComposeStyleReference { Indicator.L.Accent.style() }, + "Indicator.L.Inactive" to ComposeStyleReference { Indicator.L.Inactive.style() }, + "Indicator.L.Positive" to ComposeStyleReference { Indicator.L.Positive.style() }, + "Indicator.L.Warning" to ComposeStyleReference { Indicator.L.Warning.style() }, + "Indicator.L.Negative" to ComposeStyleReference { Indicator.L.Negative.style() }, + "Indicator.L.Dark" to ComposeStyleReference { Indicator.L.Dark.style() }, + "Indicator.L.Black" to ComposeStyleReference { Indicator.L.Black.style() }, + "Indicator.L.White" to ComposeStyleReference { Indicator.L.White.style() }, + "Indicator.M.Default" to ComposeStyleReference { Indicator.M.Default.style() }, + "Indicator.M.Accent" to ComposeStyleReference { Indicator.M.Accent.style() }, + "Indicator.M.Inactive" to ComposeStyleReference { Indicator.M.Inactive.style() }, + "Indicator.M.Positive" to ComposeStyleReference { Indicator.M.Positive.style() }, + "Indicator.M.Warning" to ComposeStyleReference { Indicator.M.Warning.style() }, + "Indicator.M.Negative" to ComposeStyleReference { Indicator.M.Negative.style() }, + "Indicator.M.Dark" to ComposeStyleReference { Indicator.M.Dark.style() }, + "Indicator.M.Black" to ComposeStyleReference { Indicator.M.Black.style() }, + "Indicator.M.White" to ComposeStyleReference { Indicator.M.White.style() }, + "Indicator.S.Default" to ComposeStyleReference { Indicator.S.Default.style() }, + "Indicator.S.Accent" to ComposeStyleReference { Indicator.S.Accent.style() }, + "Indicator.S.Inactive" to ComposeStyleReference { Indicator.S.Inactive.style() }, + "Indicator.S.Positive" to ComposeStyleReference { Indicator.S.Positive.style() }, + "Indicator.S.Warning" to ComposeStyleReference { Indicator.S.Warning.style() }, + "Indicator.S.Negative" to ComposeStyleReference { Indicator.S.Negative.style() }, + "Indicator.S.Dark" to ComposeStyleReference { Indicator.S.Dark.style() }, + "Indicator.S.Black" to ComposeStyleReference { Indicator.S.Black.style() }, + "Indicator.S.White" to ComposeStyleReference { Indicator.S.White.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return IndicatorStyles.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> IndicatorSize.L + "M" -> IndicatorSize.M + "S" -> IndicatorSize.S + else -> IndicatorSize.L + }, + view = when (bindings["view"]?.toString()) { + "Default" -> IndicatorView.Default + "Accent" -> IndicatorView.Accent + "Inactive" -> IndicatorView.Inactive + "Positive" -> IndicatorView.Positive + "Warning" -> IndicatorView.Warning + "Negative" -> IndicatorView.Negative + "Dark" -> IndicatorView.Dark + "Black" -> IndicatorView.Black + "White" -> IndicatorView.White + else -> IndicatorView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsLinkButtonVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsLinkButtonVariationsCompose.kt index aa4b9ecd82..0383cca2e5 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsLinkButtonVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsLinkButtonVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -16,6 +18,9 @@ import com.sdds.plasma.homeds.styles.linkbutton.Default import com.sdds.plasma.homeds.styles.linkbutton.Info import com.sdds.plasma.homeds.styles.linkbutton.L import com.sdds.plasma.homeds.styles.linkbutton.LinkButton +import com.sdds.plasma.homeds.styles.linkbutton.LinkButtonSize +import com.sdds.plasma.homeds.styles.linkbutton.LinkButtonStyles +import com.sdds.plasma.homeds.styles.linkbutton.LinkButtonView import com.sdds.plasma.homeds.styles.linkbutton.M import com.sdds.plasma.homeds.styles.linkbutton.Negative import com.sdds.plasma.homeds.styles.linkbutton.Positive @@ -25,51 +30,91 @@ import com.sdds.plasma.homeds.styles.linkbutton.Warning import com.sdds.plasma.homeds.styles.linkbutton.Xl import com.sdds.plasma.homeds.styles.linkbutton.Xs import com.sdds.plasma.homeds.styles.linkbutton.Xxs +import com.sdds.plasma.homeds.styles.linkbutton.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsLinkButtonVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "size", + value = "Xl", + variants = listOf("Xl", "L", "M", "S", "Xs", "Xxs"), + ), + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf("Default", "Secondary", "Accent", "Positive", "Negative", "Warning", "Info"), + ), + ) + override val variations: Map> = mapOf( - "Xl.Default" to ComposeStyleReference { LinkButton.Xl.Default.style() }, - "Xl.Secondary" to ComposeStyleReference { LinkButton.Xl.Secondary.style() }, - "Xl.Accent" to ComposeStyleReference { LinkButton.Xl.Accent.style() }, - "Xl.Positive" to ComposeStyleReference { LinkButton.Xl.Positive.style() }, - "Xl.Negative" to ComposeStyleReference { LinkButton.Xl.Negative.style() }, - "Xl.Warning" to ComposeStyleReference { LinkButton.Xl.Warning.style() }, - "Xl.Info" to ComposeStyleReference { LinkButton.Xl.Info.style() }, - "L.Default" to ComposeStyleReference { LinkButton.L.Default.style() }, - "L.Secondary" to ComposeStyleReference { LinkButton.L.Secondary.style() }, - "L.Accent" to ComposeStyleReference { LinkButton.L.Accent.style() }, - "L.Positive" to ComposeStyleReference { LinkButton.L.Positive.style() }, - "L.Negative" to ComposeStyleReference { LinkButton.L.Negative.style() }, - "L.Warning" to ComposeStyleReference { LinkButton.L.Warning.style() }, - "L.Info" to ComposeStyleReference { LinkButton.L.Info.style() }, - "M.Default" to ComposeStyleReference { LinkButton.M.Default.style() }, - "M.Secondary" to ComposeStyleReference { LinkButton.M.Secondary.style() }, - "M.Accent" to ComposeStyleReference { LinkButton.M.Accent.style() }, - "M.Positive" to ComposeStyleReference { LinkButton.M.Positive.style() }, - "M.Negative" to ComposeStyleReference { LinkButton.M.Negative.style() }, - "M.Warning" to ComposeStyleReference { LinkButton.M.Warning.style() }, - "M.Info" to ComposeStyleReference { LinkButton.M.Info.style() }, - "S.Default" to ComposeStyleReference { LinkButton.S.Default.style() }, - "S.Secondary" to ComposeStyleReference { LinkButton.S.Secondary.style() }, - "S.Accent" to ComposeStyleReference { LinkButton.S.Accent.style() }, - "S.Positive" to ComposeStyleReference { LinkButton.S.Positive.style() }, - "S.Negative" to ComposeStyleReference { LinkButton.S.Negative.style() }, - "S.Warning" to ComposeStyleReference { LinkButton.S.Warning.style() }, - "S.Info" to ComposeStyleReference { LinkButton.S.Info.style() }, - "Xs.Default" to ComposeStyleReference { LinkButton.Xs.Default.style() }, - "Xs.Secondary" to ComposeStyleReference { LinkButton.Xs.Secondary.style() }, - "Xs.Accent" to ComposeStyleReference { LinkButton.Xs.Accent.style() }, - "Xs.Positive" to ComposeStyleReference { LinkButton.Xs.Positive.style() }, - "Xs.Negative" to ComposeStyleReference { LinkButton.Xs.Negative.style() }, - "Xs.Warning" to ComposeStyleReference { LinkButton.Xs.Warning.style() }, - "Xs.Info" to ComposeStyleReference { LinkButton.Xs.Info.style() }, - "Xxs.Default" to ComposeStyleReference { LinkButton.Xxs.Default.style() }, - "Xxs.Secondary" to ComposeStyleReference { LinkButton.Xxs.Secondary.style() }, - "Xxs.Accent" to ComposeStyleReference { LinkButton.Xxs.Accent.style() }, - "Xxs.Positive" to ComposeStyleReference { LinkButton.Xxs.Positive.style() }, - "Xxs.Negative" to ComposeStyleReference { LinkButton.Xxs.Negative.style() }, - "Xxs.Warning" to ComposeStyleReference { LinkButton.Xxs.Warning.style() }, - "Xxs.Info" to ComposeStyleReference { LinkButton.Xxs.Info.style() }, + "LinkButton.Xl.Default" to ComposeStyleReference { LinkButton.Xl.Default.style() }, + "LinkButton.Xl.Secondary" to ComposeStyleReference { LinkButton.Xl.Secondary.style() }, + "LinkButton.Xl.Accent" to ComposeStyleReference { LinkButton.Xl.Accent.style() }, + "LinkButton.Xl.Positive" to ComposeStyleReference { LinkButton.Xl.Positive.style() }, + "LinkButton.Xl.Negative" to ComposeStyleReference { LinkButton.Xl.Negative.style() }, + "LinkButton.Xl.Warning" to ComposeStyleReference { LinkButton.Xl.Warning.style() }, + "LinkButton.Xl.Info" to ComposeStyleReference { LinkButton.Xl.Info.style() }, + "LinkButton.L.Default" to ComposeStyleReference { LinkButton.L.Default.style() }, + "LinkButton.L.Secondary" to ComposeStyleReference { LinkButton.L.Secondary.style() }, + "LinkButton.L.Accent" to ComposeStyleReference { LinkButton.L.Accent.style() }, + "LinkButton.L.Positive" to ComposeStyleReference { LinkButton.L.Positive.style() }, + "LinkButton.L.Negative" to ComposeStyleReference { LinkButton.L.Negative.style() }, + "LinkButton.L.Warning" to ComposeStyleReference { LinkButton.L.Warning.style() }, + "LinkButton.L.Info" to ComposeStyleReference { LinkButton.L.Info.style() }, + "LinkButton.M.Default" to ComposeStyleReference { LinkButton.M.Default.style() }, + "LinkButton.M.Secondary" to ComposeStyleReference { LinkButton.M.Secondary.style() }, + "LinkButton.M.Accent" to ComposeStyleReference { LinkButton.M.Accent.style() }, + "LinkButton.M.Positive" to ComposeStyleReference { LinkButton.M.Positive.style() }, + "LinkButton.M.Negative" to ComposeStyleReference { LinkButton.M.Negative.style() }, + "LinkButton.M.Warning" to ComposeStyleReference { LinkButton.M.Warning.style() }, + "LinkButton.M.Info" to ComposeStyleReference { LinkButton.M.Info.style() }, + "LinkButton.S.Default" to ComposeStyleReference { LinkButton.S.Default.style() }, + "LinkButton.S.Secondary" to ComposeStyleReference { LinkButton.S.Secondary.style() }, + "LinkButton.S.Accent" to ComposeStyleReference { LinkButton.S.Accent.style() }, + "LinkButton.S.Positive" to ComposeStyleReference { LinkButton.S.Positive.style() }, + "LinkButton.S.Negative" to ComposeStyleReference { LinkButton.S.Negative.style() }, + "LinkButton.S.Warning" to ComposeStyleReference { LinkButton.S.Warning.style() }, + "LinkButton.S.Info" to ComposeStyleReference { LinkButton.S.Info.style() }, + "LinkButton.Xs.Default" to ComposeStyleReference { LinkButton.Xs.Default.style() }, + "LinkButton.Xs.Secondary" to ComposeStyleReference { LinkButton.Xs.Secondary.style() }, + "LinkButton.Xs.Accent" to ComposeStyleReference { LinkButton.Xs.Accent.style() }, + "LinkButton.Xs.Positive" to ComposeStyleReference { LinkButton.Xs.Positive.style() }, + "LinkButton.Xs.Negative" to ComposeStyleReference { LinkButton.Xs.Negative.style() }, + "LinkButton.Xs.Warning" to ComposeStyleReference { LinkButton.Xs.Warning.style() }, + "LinkButton.Xs.Info" to ComposeStyleReference { LinkButton.Xs.Info.style() }, + "LinkButton.Xxs.Default" to ComposeStyleReference { LinkButton.Xxs.Default.style() }, + "LinkButton.Xxs.Secondary" to ComposeStyleReference { LinkButton.Xxs.Secondary.style() }, + "LinkButton.Xxs.Accent" to ComposeStyleReference { LinkButton.Xxs.Accent.style() }, + "LinkButton.Xxs.Positive" to ComposeStyleReference { LinkButton.Xxs.Positive.style() }, + "LinkButton.Xxs.Negative" to ComposeStyleReference { LinkButton.Xxs.Negative.style() }, + "LinkButton.Xxs.Warning" to ComposeStyleReference { LinkButton.Xxs.Warning.style() }, + "LinkButton.Xxs.Info" to ComposeStyleReference { LinkButton.Xxs.Info.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return LinkButtonStyles.resolve( + size = when (bindings["size"]?.toString()) { + "Xl" -> LinkButtonSize.Xl + "L" -> LinkButtonSize.L + "M" -> LinkButtonSize.M + "S" -> LinkButtonSize.S + "Xs" -> LinkButtonSize.Xs + "Xxs" -> LinkButtonSize.Xxs + else -> LinkButtonSize.Xl + }, + view = when (bindings["view"]?.toString()) { + "Default" -> LinkButtonView.Default + "Secondary" -> LinkButtonView.Secondary + "Accent" -> LinkButtonView.Accent + "Positive" -> LinkButtonView.Positive + "Negative" -> LinkButtonView.Negative + "Warning" -> LinkButtonView.Warning + "Info" -> LinkButtonView.Info + else -> LinkButtonView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsListItemVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsListItemVariationsCompose.kt index 605845929a..7d47a2192b 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsListItemVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsListItemVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -13,12 +15,32 @@ import com.sdds.compose.uikit.ListItemStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.listitem.HasBackground import com.sdds.plasma.homeds.styles.listitem.ListItem +import com.sdds.plasma.homeds.styles.listitem.ListItemDefaultSize +import com.sdds.plasma.homeds.styles.listitem.ListItemStyles import com.sdds.plasma.homeds.styles.listitem.S +import com.sdds.plasma.homeds.styles.listitem.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsListItemVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "S", variants = listOf("S")), + Property.BooleanProperty(name = "hasBackground", value = false), + ) + override val variations: Map> = mapOf( - "S" to ComposeStyleReference { ListItem.S.style() }, - "S.HasBackground" to ComposeStyleReference { ListItem.S.HasBackground.style() }, + "ListItem.S" to ComposeStyleReference { ListItem.S.style() }, + "ListItem.S.HasBackground" to ComposeStyleReference { ListItem.S.HasBackground.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return ListItemStyles.Default.resolve( + size = when (bindings["size"]?.toString()) { + "S" -> ListItemDefaultSize.S + else -> ListItemDefaultSize.S + }, + hasBackground = booleanBindingValue(bindings, "hasBackground", false), + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsListNumberedItemVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsListNumberedItemVariationsCompose.kt index 932106b216..91b89209dd 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsListNumberedItemVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsListNumberedItemVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -11,12 +13,30 @@ import com.sdds.compose.sandbox.ComposeStyleProvider import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.ListItemStyle import com.sdds.compose.uikit.style.style +import com.sdds.plasma.homeds.styles.listitem.ListItemListNumberedItemSize +import com.sdds.plasma.homeds.styles.listitem.ListItemStyles import com.sdds.plasma.homeds.styles.listitem.ListNumberedItem import com.sdds.plasma.homeds.styles.listitem.S +import com.sdds.plasma.homeds.styles.listitem.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsListNumberedItemVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "S", variants = listOf("S")), + ) + override val variations: Map> = mapOf( - "S" to ComposeStyleReference { ListNumberedItem.S.style() }, + "ListNumberedItem.S" to ComposeStyleReference { ListNumberedItem.S.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return ListItemStyles.ListNumberedItem.resolve( + size = when (bindings["size"]?.toString()) { + "S" -> ListItemListNumberedItemSize.S + else -> ListItemListNumberedItemSize.S + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsListNumberedVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsListNumberedVariationsCompose.kt index 94c9c42b17..7c47dd992d 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsListNumberedVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsListNumberedVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -12,11 +14,29 @@ import com.sdds.compose.sandbox.ComposeStyleReference import com.sdds.compose.uikit.ListStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.list.ListNumbered +import com.sdds.plasma.homeds.styles.list.ListNumberedSize +import com.sdds.plasma.homeds.styles.list.ListStyles import com.sdds.plasma.homeds.styles.list.S +import com.sdds.plasma.homeds.styles.list.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsListNumberedVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "S", variants = listOf("S")), + ) + override val variations: Map> = mapOf( - "S" to ComposeStyleReference { ListNumbered.S.style() }, + "ListNumbered.S" to ComposeStyleReference { ListNumbered.S.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return ListStyles.Numbered.resolve( + size = when (bindings["size"]?.toString()) { + "S" -> ListNumberedSize.S + else -> ListNumberedSize.S + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsListVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsListVariationsCompose.kt index d5bc0f144d..14b55acd72 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsListVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsListVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -14,15 +16,37 @@ import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.list.HasBackground import com.sdds.plasma.homeds.styles.list.HasItemBackground import com.sdds.plasma.homeds.styles.list.List +import com.sdds.plasma.homeds.styles.list.ListDefaultSize +import com.sdds.plasma.homeds.styles.list.ListStyles import com.sdds.plasma.homeds.styles.list.NoBackground import com.sdds.plasma.homeds.styles.list.S +import com.sdds.plasma.homeds.styles.list.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsListVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "S", variants = listOf("S")), + Property.BooleanProperty(name = "hasBackground", value = false), + Property.BooleanProperty(name = "hasItemBackground", value = false), + ) + override val variations: Map> = mapOf( - "S" to ComposeStyleReference { List.S.style() }, - "S.NoBackground" to ComposeStyleReference { List.S.NoBackground.style() }, - "S.NoBackground.HasItemBackground" to ComposeStyleReference { List.S.NoBackground.HasItemBackground.style() }, - "S.HasBackground" to ComposeStyleReference { List.S.HasBackground.style() }, + "List.S" to ComposeStyleReference { List.S.style() }, + "List.S.NoBackground" to ComposeStyleReference { List.S.NoBackground.style() }, + "List.S.NoBackground.HasItemBackground" to ComposeStyleReference { List.S.NoBackground.HasItemBackground.style() }, + "List.S.HasBackground" to ComposeStyleReference { List.S.HasBackground.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return ListStyles.Default.resolve( + size = when (bindings["size"]?.toString()) { + "S" -> ListDefaultSize.S + else -> ListDefaultSize.S + }, + hasBackground = booleanBindingValue(bindings, "hasBackground", false), + hasItemBackground = booleanBindingValue(bindings, "hasItemBackground", false), + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsLoaderVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsLoaderVariationsCompose.kt index aeb2f137ac..218507abbc 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsLoaderVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsLoaderVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,8 +17,9 @@ import com.sdds.plasma.homeds.styles.loader.Default import com.sdds.plasma.homeds.styles.loader.Loader internal object PlasmaHomedsLoaderVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { Loader.Default.style() }, + "Loader.Default" to ComposeStyleReference { Loader.Default.style() }, ) } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsModalBottomSheetVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsModalBottomSheetVariationsCompose.kt index 56448a0d59..039efda183 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsModalBottomSheetVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsModalBottomSheetVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,8 +17,9 @@ import com.sdds.plasma.homeds.styles.bottomsheet.Default import com.sdds.plasma.homeds.styles.bottomsheet.ModalBottomSheet internal object PlasmaHomedsModalBottomSheetVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { ModalBottomSheet.Default.style() }, + "ModalBottomSheet.Default" to ComposeStyleReference { ModalBottomSheet.Default.style() }, ) } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsNavigationBarInternalPageVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsNavigationBarInternalPageVariationsCompose.kt index 6ce86ce16e..1dff55323e 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsNavigationBarInternalPageVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsNavigationBarInternalPageVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,8 +17,9 @@ import com.sdds.plasma.homeds.styles.navigationbar.Default import com.sdds.plasma.homeds.styles.navigationbar.NavigationBarInternalPage internal object PlasmaHomedsNavigationBarInternalPageVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { NavigationBarInternalPage.Default.style() }, + "NavigationBarInternalPage.Default" to ComposeStyleReference { NavigationBarInternalPage.Default.style() }, ) } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsNavigationBarMainPageVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsNavigationBarMainPageVariationsCompose.kt index c106b1a627..c3c11053bd 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsNavigationBarMainPageVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsNavigationBarMainPageVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,8 +17,9 @@ import com.sdds.plasma.homeds.styles.navigationbar.Default import com.sdds.plasma.homeds.styles.navigationbar.NavigationBarMainPage internal object PlasmaHomedsNavigationBarMainPageVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { NavigationBarMainPage.Default.style() }, + "NavigationBarMainPage.Default" to ComposeStyleReference { NavigationBarMainPage.Default.style() }, ) } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsNoteCompactVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsNoteCompactVariationsCompose.kt index 419f844608..a4a9126cca 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsNoteCompactVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsNoteCompactVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -18,49 +20,98 @@ import com.sdds.plasma.homeds.styles.notecompact.HasClose import com.sdds.plasma.homeds.styles.notecompact.Info import com.sdds.plasma.homeds.styles.notecompact.Negative import com.sdds.plasma.homeds.styles.notecompact.NoteCompact +import com.sdds.plasma.homeds.styles.notecompact.NoteCompactContentBefore +import com.sdds.plasma.homeds.styles.notecompact.NoteCompactStyles +import com.sdds.plasma.homeds.styles.notecompact.NoteCompactView import com.sdds.plasma.homeds.styles.notecompact.Positive import com.sdds.plasma.homeds.styles.notecompact.Warning +import com.sdds.plasma.homeds.styles.notecompact.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsNoteCompactVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "contentBefore", + value = "Fixed", + variants = listOf("Fixed", "Scalable"), + ), + Property.BooleanProperty(name = "hasClose", value = false), + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf("Default", "Positive", "Negative", "Warning", "Info"), + ), + ) + override val variations: Map> = mapOf( - "ContentBeforeFixed.Default" to ComposeStyleReference { NoteCompact.ContentBeforeFixed.Default.style() }, - "ContentBeforeFixed.Positive" to ComposeStyleReference { NoteCompact.ContentBeforeFixed.Positive.style() }, - "ContentBeforeFixed.Negative" to ComposeStyleReference { NoteCompact.ContentBeforeFixed.Negative.style() }, - "ContentBeforeFixed.Warning" to ComposeStyleReference { NoteCompact.ContentBeforeFixed.Warning.style() }, - "ContentBeforeFixed.Info" to ComposeStyleReference { NoteCompact.ContentBeforeFixed.Info.style() }, - "ContentBeforeFixed.HasClose.Default" to ComposeStyleReference { + "NoteCompact.ContentBeforeFixed.Default" to ComposeStyleReference { NoteCompact.ContentBeforeFixed.Default.style() }, + "NoteCompact.ContentBeforeFixed.Positive" to ComposeStyleReference { NoteCompact.ContentBeforeFixed.Positive.style() }, + "NoteCompact.ContentBeforeFixed.Negative" to ComposeStyleReference { NoteCompact.ContentBeforeFixed.Negative.style() }, + "NoteCompact.ContentBeforeFixed.Warning" to ComposeStyleReference { NoteCompact.ContentBeforeFixed.Warning.style() }, + "NoteCompact.ContentBeforeFixed.Info" to ComposeStyleReference { NoteCompact.ContentBeforeFixed.Info.style() }, + "NoteCompact.ContentBeforeFixed.HasClose.Default" to ComposeStyleReference { NoteCompact.ContentBeforeFixed.HasClose.Default.style() }, - "ContentBeforeFixed.HasClose.Positive" to ComposeStyleReference { + "NoteCompact.ContentBeforeFixed.HasClose.Positive" to ComposeStyleReference { NoteCompact.ContentBeforeFixed.HasClose.Positive.style() }, - "ContentBeforeFixed.HasClose.Negative" to ComposeStyleReference { + "NoteCompact.ContentBeforeFixed.HasClose.Negative" to ComposeStyleReference { NoteCompact.ContentBeforeFixed.HasClose.Negative.style() }, - "ContentBeforeFixed.HasClose.Warning" to ComposeStyleReference { + "NoteCompact.ContentBeforeFixed.HasClose.Warning" to ComposeStyleReference { NoteCompact.ContentBeforeFixed.HasClose.Warning.style() }, - "ContentBeforeFixed.HasClose.Info" to ComposeStyleReference { NoteCompact.ContentBeforeFixed.HasClose.Info.style() }, - "ContentBeforeScalable.Default" to ComposeStyleReference { NoteCompact.ContentBeforeScalable.Default.style() }, - "ContentBeforeScalable.Positive" to ComposeStyleReference { NoteCompact.ContentBeforeScalable.Positive.style() }, - "ContentBeforeScalable.Negative" to ComposeStyleReference { NoteCompact.ContentBeforeScalable.Negative.style() }, - "ContentBeforeScalable.Warning" to ComposeStyleReference { NoteCompact.ContentBeforeScalable.Warning.style() }, - "ContentBeforeScalable.Info" to ComposeStyleReference { NoteCompact.ContentBeforeScalable.Info.style() }, - "ContentBeforeScalable.HasClose.Default" to ComposeStyleReference { + "NoteCompact.ContentBeforeFixed.HasClose.Info" to ComposeStyleReference { + NoteCompact.ContentBeforeFixed.HasClose.Info.style() + }, + "NoteCompact.ContentBeforeScalable.Default" to ComposeStyleReference { + NoteCompact.ContentBeforeScalable.Default.style() + }, + "NoteCompact.ContentBeforeScalable.Positive" to ComposeStyleReference { + NoteCompact.ContentBeforeScalable.Positive.style() + }, + "NoteCompact.ContentBeforeScalable.Negative" to ComposeStyleReference { + NoteCompact.ContentBeforeScalable.Negative.style() + }, + "NoteCompact.ContentBeforeScalable.Warning" to ComposeStyleReference { + NoteCompact.ContentBeforeScalable.Warning.style() + }, + "NoteCompact.ContentBeforeScalable.Info" to ComposeStyleReference { NoteCompact.ContentBeforeScalable.Info.style() }, + "NoteCompact.ContentBeforeScalable.HasClose.Default" to ComposeStyleReference { NoteCompact.ContentBeforeScalable.HasClose.Default.style() }, - "ContentBeforeScalable.HasClose.Positive" to ComposeStyleReference { + "NoteCompact.ContentBeforeScalable.HasClose.Positive" to ComposeStyleReference { NoteCompact.ContentBeforeScalable.HasClose.Positive.style() }, - "ContentBeforeScalable.HasClose.Negative" to ComposeStyleReference { + "NoteCompact.ContentBeforeScalable.HasClose.Negative" to ComposeStyleReference { NoteCompact.ContentBeforeScalable.HasClose.Negative.style() }, - "ContentBeforeScalable.HasClose.Warning" to ComposeStyleReference { + "NoteCompact.ContentBeforeScalable.HasClose.Warning" to ComposeStyleReference { NoteCompact.ContentBeforeScalable.HasClose.Warning.style() }, - "ContentBeforeScalable.HasClose.Info" to ComposeStyleReference { + "NoteCompact.ContentBeforeScalable.HasClose.Info" to ComposeStyleReference { NoteCompact.ContentBeforeScalable.HasClose.Info.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return NoteCompactStyles.resolve( + contentBefore = when (bindings["contentBefore"]?.toString()) { + "Fixed" -> NoteCompactContentBefore.Fixed + "Scalable" -> NoteCompactContentBefore.Scalable + else -> NoteCompactContentBefore.Fixed + }, + hasClose = booleanBindingValue(bindings, "hasClose", false), + view = when (bindings["view"]?.toString()) { + "Default" -> NoteCompactView.Default + "Positive" -> NoteCompactView.Positive + "Negative" -> NoteCompactView.Negative + "Warning" -> NoteCompactView.Warning + "Info" -> NoteCompactView.Info + else -> NoteCompactView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsNoteVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsNoteVariationsCompose.kt index ad7880bd2f..54bad9d621 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsNoteVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsNoteVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -18,39 +20,88 @@ import com.sdds.plasma.homeds.styles.note.HasClose import com.sdds.plasma.homeds.styles.note.Info import com.sdds.plasma.homeds.styles.note.Negative import com.sdds.plasma.homeds.styles.note.Note +import com.sdds.plasma.homeds.styles.note.NoteContentBefore +import com.sdds.plasma.homeds.styles.note.NoteStyles +import com.sdds.plasma.homeds.styles.note.NoteView import com.sdds.plasma.homeds.styles.note.Positive import com.sdds.plasma.homeds.styles.note.Warning +import com.sdds.plasma.homeds.styles.note.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsNoteVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "contentBefore", + value = "Fixed", + variants = listOf("Fixed", "Scalable"), + ), + Property.BooleanProperty(name = "hasClose", value = false), + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf("Default", "Positive", "Negative", "Warning", "Info"), + ), + ) + override val variations: Map> = mapOf( - "ContentBeforeScalable.Default" to ComposeStyleReference { Note.ContentBeforeScalable.Default.style() }, - "ContentBeforeScalable.Positive" to ComposeStyleReference { Note.ContentBeforeScalable.Positive.style() }, - "ContentBeforeScalable.Negative" to ComposeStyleReference { Note.ContentBeforeScalable.Negative.style() }, - "ContentBeforeScalable.Warning" to ComposeStyleReference { Note.ContentBeforeScalable.Warning.style() }, - "ContentBeforeScalable.Info" to ComposeStyleReference { Note.ContentBeforeScalable.Info.style() }, - "ContentBeforeScalable.HasClose.Default" to ComposeStyleReference { + "Note.ContentBeforeScalable.Default" to ComposeStyleReference { Note.ContentBeforeScalable.Default.style() }, + "Note.ContentBeforeScalable.Positive" to ComposeStyleReference { Note.ContentBeforeScalable.Positive.style() }, + "Note.ContentBeforeScalable.Negative" to ComposeStyleReference { Note.ContentBeforeScalable.Negative.style() }, + "Note.ContentBeforeScalable.Warning" to ComposeStyleReference { Note.ContentBeforeScalable.Warning.style() }, + "Note.ContentBeforeScalable.Info" to ComposeStyleReference { Note.ContentBeforeScalable.Info.style() }, + "Note.ContentBeforeScalable.HasClose.Default" to ComposeStyleReference { Note.ContentBeforeScalable.HasClose.Default.style() }, - "ContentBeforeScalable.HasClose.Positive" to ComposeStyleReference { + "Note.ContentBeforeScalable.HasClose.Positive" to ComposeStyleReference { Note.ContentBeforeScalable.HasClose.Positive.style() }, - "ContentBeforeScalable.HasClose.Negative" to ComposeStyleReference { + "Note.ContentBeforeScalable.HasClose.Negative" to ComposeStyleReference { Note.ContentBeforeScalable.HasClose.Negative.style() }, - "ContentBeforeScalable.HasClose.Warning" to ComposeStyleReference { + "Note.ContentBeforeScalable.HasClose.Warning" to ComposeStyleReference { Note.ContentBeforeScalable.HasClose.Warning.style() }, - "ContentBeforeScalable.HasClose.Info" to ComposeStyleReference { Note.ContentBeforeScalable.HasClose.Info.style() }, - "ContentBeforeFixed.Default" to ComposeStyleReference { Note.ContentBeforeFixed.Default.style() }, - "ContentBeforeFixed.Positive" to ComposeStyleReference { Note.ContentBeforeFixed.Positive.style() }, - "ContentBeforeFixed.Negative" to ComposeStyleReference { Note.ContentBeforeFixed.Negative.style() }, - "ContentBeforeFixed.Warning" to ComposeStyleReference { Note.ContentBeforeFixed.Warning.style() }, - "ContentBeforeFixed.Info" to ComposeStyleReference { Note.ContentBeforeFixed.Info.style() }, - "ContentBeforeFixed.HasClose.Default" to ComposeStyleReference { Note.ContentBeforeFixed.HasClose.Default.style() }, - "ContentBeforeFixed.HasClose.Positive" to ComposeStyleReference { Note.ContentBeforeFixed.HasClose.Positive.style() }, - "ContentBeforeFixed.HasClose.Negative" to ComposeStyleReference { Note.ContentBeforeFixed.HasClose.Negative.style() }, - "ContentBeforeFixed.HasClose.Warning" to ComposeStyleReference { Note.ContentBeforeFixed.HasClose.Warning.style() }, - "ContentBeforeFixed.HasClose.Info" to ComposeStyleReference { Note.ContentBeforeFixed.HasClose.Info.style() }, + "Note.ContentBeforeScalable.HasClose.Info" to ComposeStyleReference { + Note.ContentBeforeScalable.HasClose.Info.style() + }, + "Note.ContentBeforeFixed.Default" to ComposeStyleReference { Note.ContentBeforeFixed.Default.style() }, + "Note.ContentBeforeFixed.Positive" to ComposeStyleReference { Note.ContentBeforeFixed.Positive.style() }, + "Note.ContentBeforeFixed.Negative" to ComposeStyleReference { Note.ContentBeforeFixed.Negative.style() }, + "Note.ContentBeforeFixed.Warning" to ComposeStyleReference { Note.ContentBeforeFixed.Warning.style() }, + "Note.ContentBeforeFixed.Info" to ComposeStyleReference { Note.ContentBeforeFixed.Info.style() }, + "Note.ContentBeforeFixed.HasClose.Default" to ComposeStyleReference { + Note.ContentBeforeFixed.HasClose.Default.style() + }, + "Note.ContentBeforeFixed.HasClose.Positive" to ComposeStyleReference { + Note.ContentBeforeFixed.HasClose.Positive.style() + }, + "Note.ContentBeforeFixed.HasClose.Negative" to ComposeStyleReference { + Note.ContentBeforeFixed.HasClose.Negative.style() + }, + "Note.ContentBeforeFixed.HasClose.Warning" to ComposeStyleReference { + Note.ContentBeforeFixed.HasClose.Warning.style() + }, + "Note.ContentBeforeFixed.HasClose.Info" to ComposeStyleReference { Note.ContentBeforeFixed.HasClose.Info.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return NoteStyles.resolve( + contentBefore = when (bindings["contentBefore"]?.toString()) { + "Fixed" -> NoteContentBefore.Fixed + "Scalable" -> NoteContentBefore.Scalable + else -> NoteContentBefore.Fixed + }, + hasClose = booleanBindingValue(bindings, "hasClose", false), + view = when (bindings["view"]?.toString()) { + "Default" -> NoteView.Default + "Positive" -> NoteView.Positive + "Negative" -> NoteView.Negative + "Warning" -> NoteView.Warning + "Info" -> NoteView.Info + else -> NoteView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsOverlayVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsOverlayVariationsCompose.kt index ac9f5bada6..a2d0ce0def 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsOverlayVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsOverlayVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,12 +17,36 @@ import com.sdds.plasma.homeds.styles.overlay.Default import com.sdds.plasma.homeds.styles.overlay.DirectionBottom import com.sdds.plasma.homeds.styles.overlay.DirectionTop import com.sdds.plasma.homeds.styles.overlay.Overlay +import com.sdds.plasma.homeds.styles.overlay.OverlayKind +import com.sdds.plasma.homeds.styles.overlay.OverlayStyles +import com.sdds.plasma.homeds.styles.overlay.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsOverlayVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "kind", + value = "Default", + variants = listOf("Default", "DirectionTop", "DirectionBottom"), + ), + ) + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { Overlay.Default.style() }, - "DirectionTop" to ComposeStyleReference { Overlay.DirectionTop.style() }, - "DirectionBottom" to ComposeStyleReference { Overlay.DirectionBottom.style() }, + "Overlay.Default" to ComposeStyleReference { Overlay.Default.style() }, + "Overlay.DirectionTop" to ComposeStyleReference { Overlay.DirectionTop.style() }, + "Overlay.DirectionBottom" to ComposeStyleReference { Overlay.DirectionBottom.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return OverlayStyles.resolve( + kind = when (bindings["kind"]?.toString()) { + "Default" -> OverlayKind.Default + "DirectionTop" -> OverlayKind.DirectionTop + "DirectionBottom" -> OverlayKind.DirectionBottom + else -> OverlayKind.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsRadioBoxGroupVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsRadioBoxGroupVariationsCompose.kt index a1684a0b12..b45c05f0d1 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsRadioBoxGroupVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsRadioBoxGroupVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -13,12 +15,31 @@ import com.sdds.compose.uikit.RadioBoxGroupStyle import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.radioboxgroup.M import com.sdds.plasma.homeds.styles.radioboxgroup.RadioBoxGroup +import com.sdds.plasma.homeds.styles.radioboxgroup.RadioBoxGroupSize +import com.sdds.plasma.homeds.styles.radioboxgroup.RadioBoxGroupStyles import com.sdds.plasma.homeds.styles.radioboxgroup.S +import com.sdds.plasma.homeds.styles.radioboxgroup.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsRadioBoxGroupVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "M", variants = listOf("M", "S")), + ) + override val variations: Map> = mapOf( - "M" to ComposeStyleReference { RadioBoxGroup.M.style() }, - "S" to ComposeStyleReference { RadioBoxGroup.S.style() }, + "RadioBoxGroup.M" to ComposeStyleReference { RadioBoxGroup.M.style() }, + "RadioBoxGroup.S" to ComposeStyleReference { RadioBoxGroup.S.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return RadioBoxGroupStyles.resolve( + size = when (bindings["size"]?.toString()) { + "M" -> RadioBoxGroupSize.M + "S" -> RadioBoxGroupSize.S + else -> RadioBoxGroupSize.M + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsRadioBoxVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsRadioBoxVariationsCompose.kt index 77e8f4719c..9fb61e0d6f 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsRadioBoxVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsRadioBoxVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -14,13 +16,33 @@ import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.radiobox.L import com.sdds.plasma.homeds.styles.radiobox.M import com.sdds.plasma.homeds.styles.radiobox.RadioBox +import com.sdds.plasma.homeds.styles.radiobox.RadioBoxSize +import com.sdds.plasma.homeds.styles.radiobox.RadioBoxStyles import com.sdds.plasma.homeds.styles.radiobox.S +import com.sdds.plasma.homeds.styles.radiobox.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsRadioBoxVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S")), + ) + override val variations: Map> = mapOf( - "L" to ComposeStyleReference { RadioBox.L.style() }, - "M" to ComposeStyleReference { RadioBox.M.style() }, - "S" to ComposeStyleReference { RadioBox.S.style() }, + "RadioBox.L" to ComposeStyleReference { RadioBox.L.style() }, + "RadioBox.M" to ComposeStyleReference { RadioBox.M.style() }, + "RadioBox.S" to ComposeStyleReference { RadioBox.S.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return RadioBoxStyles.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> RadioBoxSize.L + "M" -> RadioBoxSize.M + "S" -> RadioBoxSize.S + else -> RadioBoxSize.L + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsRectSkeletonVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsRectSkeletonVariationsCompose.kt index 5697912ab0..37250ac660 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsRectSkeletonVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsRectSkeletonVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,8 +17,9 @@ import com.sdds.plasma.homeds.styles.rectskeleton.Default import com.sdds.plasma.homeds.styles.rectskeleton.RectSkeleton internal object PlasmaHomedsRectSkeletonVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { RectSkeleton.Default.style() }, + "RectSkeleton.Default" to ComposeStyleReference { RectSkeleton.Default.style() }, ) } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsRegisterTheme.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsRegisterTheme.kt index 9bac58d42b..d24703bde1 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsRegisterTheme.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsRegisterTheme.kt @@ -27,7 +27,7 @@ fun SandboxActivity.registerTheme(componentProvider: ComponentProvider = Compone colors = if (isDark) darkPlasmaHomeDsColors() else lightPlasmaHomeDsColors(), gradients = if (isDark) darkPlasmaHomeDsGradients() else lightPlasmaHomeDsGradients(), ) { - it.invoke() + it() } }, subthemes = mapOf( diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsSpinnerVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsSpinnerVariationsCompose.kt index 83da6f0930..9865165443 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsSpinnerVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsSpinnerVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -21,47 +23,89 @@ import com.sdds.plasma.homeds.styles.spinner.S import com.sdds.plasma.homeds.styles.spinner.Scalable import com.sdds.plasma.homeds.styles.spinner.Secondary import com.sdds.plasma.homeds.styles.spinner.Spinner +import com.sdds.plasma.homeds.styles.spinner.SpinnerSize +import com.sdds.plasma.homeds.styles.spinner.SpinnerStyles +import com.sdds.plasma.homeds.styles.spinner.SpinnerView import com.sdds.plasma.homeds.styles.spinner.Warning import com.sdds.plasma.homeds.styles.spinner.Xs import com.sdds.plasma.homeds.styles.spinner.Xxs +import com.sdds.plasma.homeds.styles.spinner.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsSpinnerVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "size", + value = "M", + variants = listOf("M", "S", "Xs", "Xxs", "Scalable"), + ), + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf("Default", "Secondary", "Accent", "Positive", "Negative", "Warning", "Info"), + ), + ) + override val variations: Map> = mapOf( - "M.Default" to ComposeStyleReference { Spinner.M.Default.style() }, - "M.Secondary" to ComposeStyleReference { Spinner.M.Secondary.style() }, - "M.Accent" to ComposeStyleReference { Spinner.M.Accent.style() }, - "M.Positive" to ComposeStyleReference { Spinner.M.Positive.style() }, - "M.Negative" to ComposeStyleReference { Spinner.M.Negative.style() }, - "M.Warning" to ComposeStyleReference { Spinner.M.Warning.style() }, - "M.Info" to ComposeStyleReference { Spinner.M.Info.style() }, - "S.Default" to ComposeStyleReference { Spinner.S.Default.style() }, - "S.Secondary" to ComposeStyleReference { Spinner.S.Secondary.style() }, - "S.Accent" to ComposeStyleReference { Spinner.S.Accent.style() }, - "S.Positive" to ComposeStyleReference { Spinner.S.Positive.style() }, - "S.Negative" to ComposeStyleReference { Spinner.S.Negative.style() }, - "S.Warning" to ComposeStyleReference { Spinner.S.Warning.style() }, - "S.Info" to ComposeStyleReference { Spinner.S.Info.style() }, - "Xs.Default" to ComposeStyleReference { Spinner.Xs.Default.style() }, - "Xs.Secondary" to ComposeStyleReference { Spinner.Xs.Secondary.style() }, - "Xs.Accent" to ComposeStyleReference { Spinner.Xs.Accent.style() }, - "Xs.Positive" to ComposeStyleReference { Spinner.Xs.Positive.style() }, - "Xs.Negative" to ComposeStyleReference { Spinner.Xs.Negative.style() }, - "Xs.Warning" to ComposeStyleReference { Spinner.Xs.Warning.style() }, - "Xs.Info" to ComposeStyleReference { Spinner.Xs.Info.style() }, - "Xxs.Default" to ComposeStyleReference { Spinner.Xxs.Default.style() }, - "Xxs.Secondary" to ComposeStyleReference { Spinner.Xxs.Secondary.style() }, - "Xxs.Accent" to ComposeStyleReference { Spinner.Xxs.Accent.style() }, - "Xxs.Positive" to ComposeStyleReference { Spinner.Xxs.Positive.style() }, - "Xxs.Negative" to ComposeStyleReference { Spinner.Xxs.Negative.style() }, - "Xxs.Warning" to ComposeStyleReference { Spinner.Xxs.Warning.style() }, - "Xxs.Info" to ComposeStyleReference { Spinner.Xxs.Info.style() }, - "Scalable.Default" to ComposeStyleReference { Spinner.Scalable.Default.style() }, - "Scalable.Secondary" to ComposeStyleReference { Spinner.Scalable.Secondary.style() }, - "Scalable.Accent" to ComposeStyleReference { Spinner.Scalable.Accent.style() }, - "Scalable.Positive" to ComposeStyleReference { Spinner.Scalable.Positive.style() }, - "Scalable.Negative" to ComposeStyleReference { Spinner.Scalable.Negative.style() }, - "Scalable.Warning" to ComposeStyleReference { Spinner.Scalable.Warning.style() }, - "Scalable.Info" to ComposeStyleReference { Spinner.Scalable.Info.style() }, + "Spinner.M.Default" to ComposeStyleReference { Spinner.M.Default.style() }, + "Spinner.M.Secondary" to ComposeStyleReference { Spinner.M.Secondary.style() }, + "Spinner.M.Accent" to ComposeStyleReference { Spinner.M.Accent.style() }, + "Spinner.M.Positive" to ComposeStyleReference { Spinner.M.Positive.style() }, + "Spinner.M.Negative" to ComposeStyleReference { Spinner.M.Negative.style() }, + "Spinner.M.Warning" to ComposeStyleReference { Spinner.M.Warning.style() }, + "Spinner.M.Info" to ComposeStyleReference { Spinner.M.Info.style() }, + "Spinner.S.Default" to ComposeStyleReference { Spinner.S.Default.style() }, + "Spinner.S.Secondary" to ComposeStyleReference { Spinner.S.Secondary.style() }, + "Spinner.S.Accent" to ComposeStyleReference { Spinner.S.Accent.style() }, + "Spinner.S.Positive" to ComposeStyleReference { Spinner.S.Positive.style() }, + "Spinner.S.Negative" to ComposeStyleReference { Spinner.S.Negative.style() }, + "Spinner.S.Warning" to ComposeStyleReference { Spinner.S.Warning.style() }, + "Spinner.S.Info" to ComposeStyleReference { Spinner.S.Info.style() }, + "Spinner.Xs.Default" to ComposeStyleReference { Spinner.Xs.Default.style() }, + "Spinner.Xs.Secondary" to ComposeStyleReference { Spinner.Xs.Secondary.style() }, + "Spinner.Xs.Accent" to ComposeStyleReference { Spinner.Xs.Accent.style() }, + "Spinner.Xs.Positive" to ComposeStyleReference { Spinner.Xs.Positive.style() }, + "Spinner.Xs.Negative" to ComposeStyleReference { Spinner.Xs.Negative.style() }, + "Spinner.Xs.Warning" to ComposeStyleReference { Spinner.Xs.Warning.style() }, + "Spinner.Xs.Info" to ComposeStyleReference { Spinner.Xs.Info.style() }, + "Spinner.Xxs.Default" to ComposeStyleReference { Spinner.Xxs.Default.style() }, + "Spinner.Xxs.Secondary" to ComposeStyleReference { Spinner.Xxs.Secondary.style() }, + "Spinner.Xxs.Accent" to ComposeStyleReference { Spinner.Xxs.Accent.style() }, + "Spinner.Xxs.Positive" to ComposeStyleReference { Spinner.Xxs.Positive.style() }, + "Spinner.Xxs.Negative" to ComposeStyleReference { Spinner.Xxs.Negative.style() }, + "Spinner.Xxs.Warning" to ComposeStyleReference { Spinner.Xxs.Warning.style() }, + "Spinner.Xxs.Info" to ComposeStyleReference { Spinner.Xxs.Info.style() }, + "Spinner.Scalable.Default" to ComposeStyleReference { Spinner.Scalable.Default.style() }, + "Spinner.Scalable.Secondary" to ComposeStyleReference { Spinner.Scalable.Secondary.style() }, + "Spinner.Scalable.Accent" to ComposeStyleReference { Spinner.Scalable.Accent.style() }, + "Spinner.Scalable.Positive" to ComposeStyleReference { Spinner.Scalable.Positive.style() }, + "Spinner.Scalable.Negative" to ComposeStyleReference { Spinner.Scalable.Negative.style() }, + "Spinner.Scalable.Warning" to ComposeStyleReference { Spinner.Scalable.Warning.style() }, + "Spinner.Scalable.Info" to ComposeStyleReference { Spinner.Scalable.Info.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return SpinnerStyles.resolve( + size = when (bindings["size"]?.toString()) { + "M" -> SpinnerSize.M + "S" -> SpinnerSize.S + "Xs" -> SpinnerSize.Xs + "Xxs" -> SpinnerSize.Xxs + "Scalable" -> SpinnerSize.Scalable + else -> SpinnerSize.M + }, + view = when (bindings["view"]?.toString()) { + "Default" -> SpinnerView.Default + "Secondary" -> SpinnerView.Secondary + "Accent" -> SpinnerView.Accent + "Positive" -> SpinnerView.Positive + "Negative" -> SpinnerView.Negative + "Warning" -> SpinnerView.Warning + "Info" -> SpinnerView.Info + else -> SpinnerView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsSwitchVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsSwitchVariationsCompose.kt index d8612b0b0a..78e0274674 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsSwitchVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsSwitchVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,16 +17,43 @@ import com.sdds.plasma.homeds.styles.switcher.L import com.sdds.plasma.homeds.styles.switcher.M import com.sdds.plasma.homeds.styles.switcher.S import com.sdds.plasma.homeds.styles.switcher.Switch +import com.sdds.plasma.homeds.styles.switcher.SwitchSize +import com.sdds.plasma.homeds.styles.switcher.SwitchStyles +import com.sdds.plasma.homeds.styles.switcher.SwitchToggleSize import com.sdds.plasma.homeds.styles.switcher.ToggleS +import com.sdds.plasma.homeds.styles.switcher.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsSwitchVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S")), + Property.SingleChoiceProperty(name = "toggleSize", value = "L", variants = listOf("L", "S")), + ) + override val variations: Map> = mapOf( - "L" to ComposeStyleReference { Switch.L.style() }, - "L.ToggleS" to ComposeStyleReference { Switch.L.ToggleS.style() }, - "M" to ComposeStyleReference { Switch.M.style() }, - "M.ToggleS" to ComposeStyleReference { Switch.M.ToggleS.style() }, - "S" to ComposeStyleReference { Switch.S.style() }, - "S.ToggleS" to ComposeStyleReference { Switch.S.ToggleS.style() }, + "Switch.L" to ComposeStyleReference { Switch.L.style() }, + "Switch.L.ToggleS" to ComposeStyleReference { Switch.L.ToggleS.style() }, + "Switch.M" to ComposeStyleReference { Switch.M.style() }, + "Switch.M.ToggleS" to ComposeStyleReference { Switch.M.ToggleS.style() }, + "Switch.S" to ComposeStyleReference { Switch.S.style() }, + "Switch.S.ToggleS" to ComposeStyleReference { Switch.S.ToggleS.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return SwitchStyles.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> SwitchSize.L + "M" -> SwitchSize.M + "S" -> SwitchSize.S + else -> SwitchSize.L + }, + toggleSize = when (bindings["toggleSize"]?.toString()) { + "L" -> SwitchToggleSize.L + "S" -> SwitchToggleSize.S + else -> SwitchToggleSize.L + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTabBarItemVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTabBarItemVariationsCompose.kt index 27f83595e1..09836804b2 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTabBarItemVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTabBarItemVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,8 +17,9 @@ import com.sdds.plasma.homeds.styles.tabbaritem.Default import com.sdds.plasma.homeds.styles.tabbaritem.TabBarItem internal object PlasmaHomedsTabBarItemVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { TabBarItem.Default.style() }, + "TabBarItem.Default" to ComposeStyleReference { TabBarItem.Default.style() }, ) } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTabBarVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTabBarVariationsCompose.kt index 6c8b22547a..6491456b4c 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTabBarVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTabBarVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,8 +17,9 @@ import com.sdds.plasma.homeds.styles.tabbar.Default import com.sdds.plasma.homeds.styles.tabbar.TabBar internal object PlasmaHomedsTabBarVariationsCompose : ComposeStyleProvider() { + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { TabBar.Default.style() }, + "TabBar.Default" to ComposeStyleReference { TabBar.Default.style() }, ) } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextFieldVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextFieldVariationsCompose.kt index 5556295bc9..dff632cdc0 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextFieldVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextFieldVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -20,45 +22,115 @@ import com.sdds.plasma.homeds.styles.textfield.RequiredEnd import com.sdds.plasma.homeds.styles.textfield.RequiredStart import com.sdds.plasma.homeds.styles.textfield.S import com.sdds.plasma.homeds.styles.textfield.TextField +import com.sdds.plasma.homeds.styles.textfield.TextFieldLabelPlacement +import com.sdds.plasma.homeds.styles.textfield.TextFieldRequiredPlacement +import com.sdds.plasma.homeds.styles.textfield.TextFieldSize +import com.sdds.plasma.homeds.styles.textfield.TextFieldStyles +import com.sdds.plasma.homeds.styles.textfield.TextFieldView +import com.sdds.plasma.homeds.styles.textfield.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsTextFieldVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "S", variants = listOf("S", "M", "L")), + Property.SingleChoiceProperty( + name = "requiredPlacement", + value = "None", + variants = listOf("None", "Start", "End"), + ), + Property.SingleChoiceProperty(name = "labelPlacement", value = "Inner", variants = listOf("Inner", "None")), + Property.SingleChoiceProperty(name = "view", value = "Default", variants = listOf("Default", "Error")), + ) + override val variations: Map> = mapOf( - "S.Default" to ComposeStyleReference { TextField.S.Default.style() }, - "S.Error" to ComposeStyleReference { TextField.S.Error.style() }, - "S.RequiredStart.Default" to ComposeStyleReference { TextField.S.RequiredStart.Default.style() }, - "S.RequiredStart.Error" to ComposeStyleReference { TextField.S.RequiredStart.Error.style() }, - "S.RequiredEnd.Default" to ComposeStyleReference { TextField.S.RequiredEnd.Default.style() }, - "S.RequiredEnd.Error" to ComposeStyleReference { TextField.S.RequiredEnd.Error.style() }, - "S.InnerLabel.Default" to ComposeStyleReference { TextField.S.InnerLabel.Default.style() }, - "S.InnerLabel.Error" to ComposeStyleReference { TextField.S.InnerLabel.Error.style() }, - "S.InnerLabel.RequiredStart.Default" to ComposeStyleReference { TextField.S.InnerLabel.RequiredStart.Default.style() }, - "S.InnerLabel.RequiredStart.Error" to ComposeStyleReference { TextField.S.InnerLabel.RequiredStart.Error.style() }, - "S.InnerLabel.RequiredEnd.Default" to ComposeStyleReference { TextField.S.InnerLabel.RequiredEnd.Default.style() }, - "S.InnerLabel.RequiredEnd.Error" to ComposeStyleReference { TextField.S.InnerLabel.RequiredEnd.Error.style() }, - "M.Default" to ComposeStyleReference { TextField.M.Default.style() }, - "M.Error" to ComposeStyleReference { TextField.M.Error.style() }, - "M.RequiredStart.Default" to ComposeStyleReference { TextField.M.RequiredStart.Default.style() }, - "M.RequiredStart.Error" to ComposeStyleReference { TextField.M.RequiredStart.Error.style() }, - "M.RequiredEnd.Default" to ComposeStyleReference { TextField.M.RequiredEnd.Default.style() }, - "M.RequiredEnd.Error" to ComposeStyleReference { TextField.M.RequiredEnd.Error.style() }, - "M.InnerLabel.Default" to ComposeStyleReference { TextField.M.InnerLabel.Default.style() }, - "M.InnerLabel.Error" to ComposeStyleReference { TextField.M.InnerLabel.Error.style() }, - "M.InnerLabel.RequiredStart.Default" to ComposeStyleReference { TextField.M.InnerLabel.RequiredStart.Default.style() }, - "M.InnerLabel.RequiredStart.Error" to ComposeStyleReference { TextField.M.InnerLabel.RequiredStart.Error.style() }, - "M.InnerLabel.RequiredEnd.Default" to ComposeStyleReference { TextField.M.InnerLabel.RequiredEnd.Default.style() }, - "M.InnerLabel.RequiredEnd.Error" to ComposeStyleReference { TextField.M.InnerLabel.RequiredEnd.Error.style() }, - "L.Default" to ComposeStyleReference { TextField.L.Default.style() }, - "L.Error" to ComposeStyleReference { TextField.L.Error.style() }, - "L.RequiredStart.Default" to ComposeStyleReference { TextField.L.RequiredStart.Default.style() }, - "L.RequiredStart.Error" to ComposeStyleReference { TextField.L.RequiredStart.Error.style() }, - "L.RequiredEnd.Default" to ComposeStyleReference { TextField.L.RequiredEnd.Default.style() }, - "L.RequiredEnd.Error" to ComposeStyleReference { TextField.L.RequiredEnd.Error.style() }, - "L.InnerLabel.Default" to ComposeStyleReference { TextField.L.InnerLabel.Default.style() }, - "L.InnerLabel.Error" to ComposeStyleReference { TextField.L.InnerLabel.Error.style() }, - "L.InnerLabel.RequiredStart.Default" to ComposeStyleReference { TextField.L.InnerLabel.RequiredStart.Default.style() }, - "L.InnerLabel.RequiredStart.Error" to ComposeStyleReference { TextField.L.InnerLabel.RequiredStart.Error.style() }, - "L.InnerLabel.RequiredEnd.Default" to ComposeStyleReference { TextField.L.InnerLabel.RequiredEnd.Default.style() }, - "L.InnerLabel.RequiredEnd.Error" to ComposeStyleReference { TextField.L.InnerLabel.RequiredEnd.Error.style() }, + "TextField.S.Default" to ComposeStyleReference { TextField.S.Default.style() }, + "TextField.S.Error" to ComposeStyleReference { TextField.S.Error.style() }, + "TextField.S.RequiredStart.Default" to ComposeStyleReference { TextField.S.RequiredStart.Default.style() }, + "TextField.S.RequiredStart.Error" to ComposeStyleReference { TextField.S.RequiredStart.Error.style() }, + "TextField.S.RequiredEnd.Default" to ComposeStyleReference { TextField.S.RequiredEnd.Default.style() }, + "TextField.S.RequiredEnd.Error" to ComposeStyleReference { TextField.S.RequiredEnd.Error.style() }, + "TextField.S.InnerLabel.Default" to ComposeStyleReference { TextField.S.InnerLabel.Default.style() }, + "TextField.S.InnerLabel.Error" to ComposeStyleReference { TextField.S.InnerLabel.Error.style() }, + "TextField.S.InnerLabel.RequiredStart.Default" to ComposeStyleReference { + TextField.S.InnerLabel.RequiredStart.Default.style() + }, + "TextField.S.InnerLabel.RequiredStart.Error" to ComposeStyleReference { + TextField.S.InnerLabel.RequiredStart.Error.style() + }, + "TextField.S.InnerLabel.RequiredEnd.Default" to ComposeStyleReference { + TextField.S.InnerLabel.RequiredEnd.Default.style() + }, + "TextField.S.InnerLabel.RequiredEnd.Error" to ComposeStyleReference { + TextField.S.InnerLabel.RequiredEnd.Error.style() + }, + "TextField.M.Default" to ComposeStyleReference { TextField.M.Default.style() }, + "TextField.M.Error" to ComposeStyleReference { TextField.M.Error.style() }, + "TextField.M.RequiredStart.Default" to ComposeStyleReference { TextField.M.RequiredStart.Default.style() }, + "TextField.M.RequiredStart.Error" to ComposeStyleReference { TextField.M.RequiredStart.Error.style() }, + "TextField.M.RequiredEnd.Default" to ComposeStyleReference { TextField.M.RequiredEnd.Default.style() }, + "TextField.M.RequiredEnd.Error" to ComposeStyleReference { TextField.M.RequiredEnd.Error.style() }, + "TextField.M.InnerLabel.Default" to ComposeStyleReference { TextField.M.InnerLabel.Default.style() }, + "TextField.M.InnerLabel.Error" to ComposeStyleReference { TextField.M.InnerLabel.Error.style() }, + "TextField.M.InnerLabel.RequiredStart.Default" to ComposeStyleReference { + TextField.M.InnerLabel.RequiredStart.Default.style() + }, + "TextField.M.InnerLabel.RequiredStart.Error" to ComposeStyleReference { + TextField.M.InnerLabel.RequiredStart.Error.style() + }, + "TextField.M.InnerLabel.RequiredEnd.Default" to ComposeStyleReference { + TextField.M.InnerLabel.RequiredEnd.Default.style() + }, + "TextField.M.InnerLabel.RequiredEnd.Error" to ComposeStyleReference { + TextField.M.InnerLabel.RequiredEnd.Error.style() + }, + "TextField.L.Default" to ComposeStyleReference { TextField.L.Default.style() }, + "TextField.L.Error" to ComposeStyleReference { TextField.L.Error.style() }, + "TextField.L.RequiredStart.Default" to ComposeStyleReference { TextField.L.RequiredStart.Default.style() }, + "TextField.L.RequiredStart.Error" to ComposeStyleReference { TextField.L.RequiredStart.Error.style() }, + "TextField.L.RequiredEnd.Default" to ComposeStyleReference { TextField.L.RequiredEnd.Default.style() }, + "TextField.L.RequiredEnd.Error" to ComposeStyleReference { TextField.L.RequiredEnd.Error.style() }, + "TextField.L.InnerLabel.Default" to ComposeStyleReference { TextField.L.InnerLabel.Default.style() }, + "TextField.L.InnerLabel.Error" to ComposeStyleReference { TextField.L.InnerLabel.Error.style() }, + "TextField.L.InnerLabel.RequiredStart.Default" to ComposeStyleReference { + TextField.L.InnerLabel.RequiredStart.Default.style() + }, + "TextField.L.InnerLabel.RequiredStart.Error" to ComposeStyleReference { + TextField.L.InnerLabel.RequiredStart.Error.style() + }, + "TextField.L.InnerLabel.RequiredEnd.Default" to ComposeStyleReference { + TextField.L.InnerLabel.RequiredEnd.Default.style() + }, + "TextField.L.InnerLabel.RequiredEnd.Error" to ComposeStyleReference { + TextField.L.InnerLabel.RequiredEnd.Error.style() + }, ) + + override fun resolveStyleKey(bindings: Map): String { + return TextFieldStyles.resolve( + size = when (bindings["size"]?.toString()) { + "S" -> TextFieldSize.S + "M" -> TextFieldSize.M + "L" -> TextFieldSize.L + else -> TextFieldSize.S + }, + requiredPlacement = when (bindings["requiredPlacement"]?.toString()) { + "None" -> TextFieldRequiredPlacement.None + "Start" -> TextFieldRequiredPlacement.Start + "End" -> TextFieldRequiredPlacement.End + else -> TextFieldRequiredPlacement.None + }, + labelPlacement = when (bindings["labelPlacement"]?.toString()) { + "Inner" -> TextFieldLabelPlacement.Inner + "None" -> TextFieldLabelPlacement.None + else -> TextFieldLabelPlacement.Inner + }, + view = when (bindings["view"]?.toString()) { + "Default" -> TextFieldView.Default + "Error" -> TextFieldView.Error + else -> TextFieldView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextSkeletonBodyVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextSkeletonBodyVariationsCompose.kt index 3860bfbadb..b6cdfcf70e 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextSkeletonBodyVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextSkeletonBodyVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,16 +17,38 @@ import com.sdds.plasma.homeds.styles.textskeleton.L import com.sdds.plasma.homeds.styles.textskeleton.M import com.sdds.plasma.homeds.styles.textskeleton.S import com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonBody +import com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonBodySize +import com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonStyles import com.sdds.plasma.homeds.styles.textskeleton.Xs import com.sdds.plasma.homeds.styles.textskeleton.Xxs +import com.sdds.plasma.homeds.styles.textskeleton.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsTextSkeletonBodyVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S", "Xs", "Xxs")), + ) + override val variations: Map> = mapOf( - "L" to ComposeStyleReference { TextSkeletonBody.L.style() }, - "M" to ComposeStyleReference { TextSkeletonBody.M.style() }, - "S" to ComposeStyleReference { TextSkeletonBody.S.style() }, - "Xs" to ComposeStyleReference { TextSkeletonBody.Xs.style() }, - "Xxs" to ComposeStyleReference { TextSkeletonBody.Xxs.style() }, + "TextSkeletonBody.L" to ComposeStyleReference { TextSkeletonBody.L.style() }, + "TextSkeletonBody.M" to ComposeStyleReference { TextSkeletonBody.M.style() }, + "TextSkeletonBody.S" to ComposeStyleReference { TextSkeletonBody.S.style() }, + "TextSkeletonBody.Xs" to ComposeStyleReference { TextSkeletonBody.Xs.style() }, + "TextSkeletonBody.Xxs" to ComposeStyleReference { TextSkeletonBody.Xxs.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return TextSkeletonStyles.Body.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> TextSkeletonBodySize.L + "M" -> TextSkeletonBodySize.M + "S" -> TextSkeletonBodySize.S + "Xs" -> TextSkeletonBodySize.Xs + "Xxs" -> TextSkeletonBodySize.Xxs + else -> TextSkeletonBodySize.L + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextSkeletonDisplayVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextSkeletonDisplayVariationsCompose.kt index db138d4707..b422e43ec5 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextSkeletonDisplayVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextSkeletonDisplayVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,12 +17,32 @@ import com.sdds.plasma.homeds.styles.textskeleton.L import com.sdds.plasma.homeds.styles.textskeleton.M import com.sdds.plasma.homeds.styles.textskeleton.S import com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonDisplay +import com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonDisplaySize +import com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonStyles +import com.sdds.plasma.homeds.styles.textskeleton.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsTextSkeletonDisplayVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S")), + ) + override val variations: Map> = mapOf( - "L" to ComposeStyleReference { TextSkeletonDisplay.L.style() }, - "M" to ComposeStyleReference { TextSkeletonDisplay.M.style() }, - "S" to ComposeStyleReference { TextSkeletonDisplay.S.style() }, + "TextSkeletonDisplay.L" to ComposeStyleReference { TextSkeletonDisplay.L.style() }, + "TextSkeletonDisplay.M" to ComposeStyleReference { TextSkeletonDisplay.M.style() }, + "TextSkeletonDisplay.S" to ComposeStyleReference { TextSkeletonDisplay.S.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return TextSkeletonStyles.Display.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> TextSkeletonDisplaySize.L + "M" -> TextSkeletonDisplaySize.M + "S" -> TextSkeletonDisplaySize.S + else -> TextSkeletonDisplaySize.L + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextSkeletonHeaderVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextSkeletonHeaderVariationsCompose.kt index f06da22db9..daf4501378 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextSkeletonHeaderVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextSkeletonHeaderVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -18,15 +20,42 @@ import com.sdds.plasma.homeds.styles.textskeleton.H4 import com.sdds.plasma.homeds.styles.textskeleton.H5 import com.sdds.plasma.homeds.styles.textskeleton.H6 import com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonHeader +import com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonHeaderSize +import com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonStyles +import com.sdds.plasma.homeds.styles.textskeleton.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsTextSkeletonHeaderVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "size", + value = "H1", + variants = listOf("H1", "H2", "H3", "H4", "H5", "H6"), + ), + ) + override val variations: Map> = mapOf( - "H1" to ComposeStyleReference { TextSkeletonHeader.H1.style() }, - "H2" to ComposeStyleReference { TextSkeletonHeader.H2.style() }, - "H3" to ComposeStyleReference { TextSkeletonHeader.H3.style() }, - "H4" to ComposeStyleReference { TextSkeletonHeader.H4.style() }, - "H5" to ComposeStyleReference { TextSkeletonHeader.H5.style() }, - "H6" to ComposeStyleReference { TextSkeletonHeader.H6.style() }, + "TextSkeletonHeader.H1" to ComposeStyleReference { TextSkeletonHeader.H1.style() }, + "TextSkeletonHeader.H2" to ComposeStyleReference { TextSkeletonHeader.H2.style() }, + "TextSkeletonHeader.H3" to ComposeStyleReference { TextSkeletonHeader.H3.style() }, + "TextSkeletonHeader.H4" to ComposeStyleReference { TextSkeletonHeader.H4.style() }, + "TextSkeletonHeader.H5" to ComposeStyleReference { TextSkeletonHeader.H5.style() }, + "TextSkeletonHeader.H6" to ComposeStyleReference { TextSkeletonHeader.H6.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return TextSkeletonStyles.Header.resolve( + size = when (bindings["size"]?.toString()) { + "H1" -> TextSkeletonHeaderSize.H1 + "H2" -> TextSkeletonHeaderSize.H2 + "H3" -> TextSkeletonHeaderSize.H3 + "H4" -> TextSkeletonHeaderSize.H4 + "H5" -> TextSkeletonHeaderSize.H5 + "H6" -> TextSkeletonHeaderSize.H6 + else -> TextSkeletonHeaderSize.H1 + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextSkeletonTextVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextSkeletonTextVariationsCompose.kt index 13a17aafcf..59f84d63e3 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextSkeletonTextVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTextSkeletonTextVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -14,15 +16,36 @@ import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.textskeleton.L import com.sdds.plasma.homeds.styles.textskeleton.M import com.sdds.plasma.homeds.styles.textskeleton.S +import com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonStyles import com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonText +import com.sdds.plasma.homeds.styles.textskeleton.TextSkeletonTextSize import com.sdds.plasma.homeds.styles.textskeleton.Xs +import com.sdds.plasma.homeds.styles.textskeleton.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsTextSkeletonTextVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "L", variants = listOf("L", "M", "S", "Xs")), + ) + override val variations: Map> = mapOf( - "L" to ComposeStyleReference { TextSkeletonText.L.style() }, - "M" to ComposeStyleReference { TextSkeletonText.M.style() }, - "S" to ComposeStyleReference { TextSkeletonText.S.style() }, - "Xs" to ComposeStyleReference { TextSkeletonText.Xs.style() }, + "TextSkeletonText.L" to ComposeStyleReference { TextSkeletonText.L.style() }, + "TextSkeletonText.M" to ComposeStyleReference { TextSkeletonText.M.style() }, + "TextSkeletonText.S" to ComposeStyleReference { TextSkeletonText.S.style() }, + "TextSkeletonText.Xs" to ComposeStyleReference { TextSkeletonText.Xs.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return TextSkeletonStyles.Text.resolve( + size = when (bindings["size"]?.toString()) { + "L" -> TextSkeletonTextSize.L + "M" -> TextSkeletonTextSize.M + "S" -> TextSkeletonTextSize.S + "Xs" -> TextSkeletonTextSize.Xs + else -> TextSkeletonTextSize.L + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsToastVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsToastVariationsCompose.kt index dc74ff69cb..4be5a8ef6e 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsToastVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsToastVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -15,12 +17,36 @@ import com.sdds.plasma.homeds.styles.toast.Default import com.sdds.plasma.homeds.styles.toast.Negative import com.sdds.plasma.homeds.styles.toast.Positive import com.sdds.plasma.homeds.styles.toast.Toast +import com.sdds.plasma.homeds.styles.toast.ToastStyles +import com.sdds.plasma.homeds.styles.toast.ToastView +import com.sdds.plasma.homeds.styles.toast.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsToastVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty( + name = "view", + value = "Default", + variants = listOf("Default", "Positive", "Negative"), + ), + ) + override val variations: Map> = mapOf( - "Default" to ComposeStyleReference { Toast.Default.style() }, - "Positive" to ComposeStyleReference { Toast.Positive.style() }, - "Negative" to ComposeStyleReference { Toast.Negative.style() }, + "Toast.Default" to ComposeStyleReference { Toast.Default.style() }, + "Toast.Positive" to ComposeStyleReference { Toast.Positive.style() }, + "Toast.Negative" to ComposeStyleReference { Toast.Negative.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return ToastStyles.resolve( + view = when (bindings["view"]?.toString()) { + "Default" -> ToastView.Default + "Positive" -> ToastView.Positive + "Negative" -> ToastView.Negative + else -> ToastView.Default + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTooltipVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTooltipVariationsCompose.kt index f921e75a41..4b0f3a3964 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTooltipVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsTooltipVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -14,11 +16,30 @@ import com.sdds.compose.uikit.style.style import com.sdds.plasma.homeds.styles.tooltip.M import com.sdds.plasma.homeds.styles.tooltip.S import com.sdds.plasma.homeds.styles.tooltip.Tooltip +import com.sdds.plasma.homeds.styles.tooltip.TooltipSize +import com.sdds.plasma.homeds.styles.tooltip.TooltipStyles +import com.sdds.plasma.homeds.styles.tooltip.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsTooltipVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "M", variants = listOf("M", "S")), + ) + override val variations: Map> = mapOf( - "M" to ComposeStyleReference { Tooltip.M.style() }, - "S" to ComposeStyleReference { Tooltip.S.style() }, + "Tooltip.M" to ComposeStyleReference { Tooltip.M.style() }, + "Tooltip.S" to ComposeStyleReference { Tooltip.S.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return TooltipStyles.resolve( + size = when (bindings["size"]?.toString()) { + "M" -> TooltipSize.M + "S" -> TooltipSize.S + else -> TooltipSize.M + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsWheelVariationsCompose.kt b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsWheelVariationsCompose.kt index d934e80ef9..937da0c8ff 100644 --- a/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsWheelVariationsCompose.kt +++ b/tokens/plasma.homeds.compose/integration/src/main/kotlin/com/sdds/plasma/homeds/integration/PlasmaHomedsWheelVariationsCompose.kt @@ -2,6 +2,8 @@ @file:Suppress( "UndocumentedPublicClass", "UndocumentedPublicProperty", + "UndocumentedPublicFunction", + "CyclomaticComplexMethod", "ktlint:standard:max-line-length", ) @@ -17,14 +19,45 @@ import com.sdds.plasma.homeds.styles.wheel.LeftAlign import com.sdds.plasma.homeds.styles.wheel.MixedAlign import com.sdds.plasma.homeds.styles.wheel.RightAlign import com.sdds.plasma.homeds.styles.wheel.Wheel +import com.sdds.plasma.homeds.styles.wheel.WheelAlignment +import com.sdds.plasma.homeds.styles.wheel.WheelSize +import com.sdds.plasma.homeds.styles.wheel.WheelStyles +import com.sdds.plasma.homeds.styles.wheel.resolve +import com.sdds.sandbox.Property internal object PlasmaHomedsWheelVariationsCompose : ComposeStyleProvider() { + override val bindings: Set> = + setOf( + Property.SingleChoiceProperty(name = "size", value = "H1", variants = listOf("H1")), + Property.SingleChoiceProperty( + name = "alignment", + value = "Left", + variants = listOf("Left", "Right", "Center", "Mixed"), + ), + ) + override val variations: Map> = mapOf( - "H1" to ComposeStyleReference { Wheel.H1.style() }, - "H1.RightAlign" to ComposeStyleReference { Wheel.H1.RightAlign.style() }, - "H1.CenterAlign" to ComposeStyleReference { Wheel.H1.CenterAlign.style() }, - "H1.LeftAlign" to ComposeStyleReference { Wheel.H1.LeftAlign.style() }, - "H1.MixedAlign" to ComposeStyleReference { Wheel.H1.MixedAlign.style() }, + "Wheel.H1" to ComposeStyleReference { Wheel.H1.style() }, + "Wheel.H1.RightAlign" to ComposeStyleReference { Wheel.H1.RightAlign.style() }, + "Wheel.H1.CenterAlign" to ComposeStyleReference { Wheel.H1.CenterAlign.style() }, + "Wheel.H1.LeftAlign" to ComposeStyleReference { Wheel.H1.LeftAlign.style() }, + "Wheel.H1.MixedAlign" to ComposeStyleReference { Wheel.H1.MixedAlign.style() }, ) + + override fun resolveStyleKey(bindings: Map): String { + return WheelStyles.resolve( + size = when (bindings["size"]?.toString()) { + "H1" -> WheelSize.H1 + else -> WheelSize.H1 + }, + alignment = when (bindings["alignment"]?.toString()) { + "Left" -> WheelAlignment.Left + "Right" -> WheelAlignment.Right + "Center" -> WheelAlignment.Center + "Mixed" -> WheelAlignment.Mixed + else -> WheelAlignment.Left + }, + ).key + } } diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/avatar/AvatarStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/avatar/AvatarStylesCollection.kt index a1b467d47f..b1b4905201 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/avatar/AvatarStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/avatar/AvatarStylesCollection.kt @@ -33,13 +33,38 @@ public enum class AvatarStyles( AvatarMPilled("Avatar.M.Pilled"), AvatarS("Avatar.S"), AvatarSPilled("Avatar.S.Pilled"), + ; + + /** + * Typed API для подбора стиля avatar + */ + public companion object +} + +/** + * Возможные значения свойства size для avatar + */ +public enum class AvatarSize { + Xxl, + L, + M, + S, + Xs, +} + +/** + * Возможные значения свойства shape для avatar + */ +public enum class AvatarShape { + Default, + Pilled, } /** * Возвращает [AvatarStyle] для [AvatarStyles] */ @Composable -public fun AvatarStyles.style(modifyAction: @Composable AvatarStyleBuilder.() -> Unit = {}): AvatarStyle { +public fun AvatarStyles.style(modify: @Composable AvatarStyleBuilder.() -> Unit = {}): AvatarStyle { val builder = when (this) { AvatarStyles.AvatarXxl -> Avatar.Xxl AvatarStyles.AvatarXxlPilled -> Avatar.Xxl.Pilled @@ -50,5 +75,34 @@ public fun AvatarStyles.style(modifyAction: @Composable AvatarStyleBuilder.() -> AvatarStyles.AvatarS -> Avatar.S AvatarStyles.AvatarSPilled -> Avatar.S.Pilled } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [AvatarStyles] для avatar + */ +public fun AvatarStyles.Companion.resolve( + size: AvatarSize = AvatarSize.Xxl, + shape: AvatarShape = + AvatarShape.Default, +): AvatarStyles = when { + size == AvatarSize.Xxl && shape == AvatarShape.Pilled -> AvatarStyles.AvatarXxlPilled + size == AvatarSize.L && shape == AvatarShape.Pilled -> AvatarStyles.AvatarLPilled + size == AvatarSize.M && shape == AvatarShape.Pilled -> AvatarStyles.AvatarMPilled + size == AvatarSize.S && shape == AvatarShape.Pilled -> AvatarStyles.AvatarSPilled + size == AvatarSize.Xxl -> AvatarStyles.AvatarXxl + size == AvatarSize.L -> AvatarStyles.AvatarL + size == AvatarSize.M -> AvatarStyles.AvatarM + size == AvatarSize.S -> AvatarStyles.AvatarS + else -> error("Unsupported avatar style combination") +} + +/** + * Возвращает [AvatarStyle] для avatar + */ +@Composable +public fun AvatarStyles.Companion.style( + size: AvatarSize = AvatarSize.Xxl, + shape: AvatarShape = AvatarShape.Default, + modify: @Composable AvatarStyleBuilder.() -> Unit = {}, +): AvatarStyle = resolve(size, shape).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/avatargroup/AvatarGroupStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/avatargroup/AvatarGroupStylesCollection.kt index 933c0e0f6e..df6cc3afa8 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/avatargroup/AvatarGroupStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/avatargroup/AvatarGroupStylesCollection.kt @@ -26,18 +26,46 @@ public enum class AvatarGroupStyles( public val key: String, ) { AvatarGroupS("AvatarGroup.S"), + ; + + /** + * Typed API для подбора стиля avatar-group + */ + public companion object +} + +/** + * Возможные значения свойства size для avatar-group + */ +public enum class AvatarGroupSize { + S, } /** * Возвращает [AvatarGroupStyle] для [AvatarGroupStyles] */ @Composable -public fun AvatarGroupStyles.style( - modifyAction: @Composable AvatarGroupStyleBuilder.() -> Unit = - {}, -): AvatarGroupStyle { +public fun AvatarGroupStyles.style(modify: @Composable AvatarGroupStyleBuilder.() -> Unit = {}): AvatarGroupStyle { val builder = when (this) { AvatarGroupStyles.AvatarGroupS -> AvatarGroup.S } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [AvatarGroupStyles] для avatar-group + */ +public fun AvatarGroupStyles.Companion.resolve(size: AvatarGroupSize = AvatarGroupSize.S): AvatarGroupStyles = when { + size == AvatarGroupSize.S -> AvatarGroupStyles.AvatarGroupS + else -> error("Unsupported avatar-group style combination") +} + +/** + * Возвращает [AvatarGroupStyle] для avatar-group + */ +@Composable +public fun AvatarGroupStyles.Companion.style( + size: AvatarGroupSize = AvatarGroupSize.S, + modify: @Composable AvatarGroupStyleBuilder.() -> Unit = {}, +): AvatarGroupStyle = + resolve(size).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/badge/BadgeStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/badge/BadgeStylesCollection.kt index 582d538b8d..9ea2ae28c4 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/badge/BadgeStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/badge/BadgeStylesCollection.kt @@ -193,13 +193,122 @@ public enum class BadgeStyles( BadgeTransparentXsPilledWarning("BadgeTransparent.Xs.Pilled.Warning"), BadgeTransparentXsPilledDark("BadgeTransparent.Xs.Pilled.Dark"), BadgeTransparentXsPilledLight("BadgeTransparent.Xs.Pilled.Light"), + ; + + /** + * Typed API для подбора стиля badge-clear + */ + public object Clear + + /** + * Typed API для подбора стиля badge-solid + */ + public object Solid + + /** + * Typed API для подбора стиля badge-transparent + */ + public object Transparent +} + +/** + * Возможные значения свойства size для badge-clear + */ +public enum class BadgeClearSize { + L, + M, + S, + Xs, +} + +/** + * Возможные значения свойства shape для badge-clear + */ +public enum class BadgeClearShape { + Default, + Pilled, +} + +/** + * Возможные значения свойства view для badge-clear + */ +public enum class BadgeClearView { + Default, + Accent, + Negative, + Positive, + Warning, + Dark, + Light, +} + +/** + * Возможные значения свойства size для badge-solid + */ +public enum class BadgeSolidSize { + L, + M, + S, + Xs, +} + +/** + * Возможные значения свойства shape для badge-solid + */ +public enum class BadgeSolidShape { + Default, + Pilled, +} + +/** + * Возможные значения свойства view для badge-solid + */ +public enum class BadgeSolidView { + Default, + Accent, + Negative, + Positive, + Warning, + Dark, + Light, +} + +/** + * Возможные значения свойства size для badge-transparent + */ +public enum class BadgeTransparentSize { + L, + M, + S, + Xs, +} + +/** + * Возможные значения свойства shape для badge-transparent + */ +public enum class BadgeTransparentShape { + Default, + Pilled, +} + +/** + * Возможные значения свойства view для badge-transparent + */ +public enum class BadgeTransparentView { + Default, + Accent, + Negative, + Positive, + Warning, + Dark, + Light, } /** * Возвращает [BadgeStyle] для [BadgeStyles] */ @Composable -public fun BadgeStyles.style(modifyAction: @Composable BadgeStyleBuilder.() -> Unit = {}): BadgeStyle { +public fun BadgeStyles.style(modify: @Composable BadgeStyleBuilder.() -> Unit = {}): BadgeStyle { val builder = when (this) { BadgeStyles.BadgeClearLDefault -> BadgeClear.L.Default BadgeStyles.BadgeClearLAccent -> BadgeClear.L.Accent @@ -370,5 +479,351 @@ public fun BadgeStyles.style(modifyAction: @Composable BadgeStyleBuilder.() -> U BadgeStyles.BadgeTransparentXsPilledDark -> BadgeTransparent.Xs.Pilled.Dark BadgeStyles.BadgeTransparentXsPilledLight -> BadgeTransparent.Xs.Pilled.Light } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() +} + +/** + * Возвращает экземпляр [BadgeStyles] для badge-clear + */ +public fun BadgeStyles.Clear.resolve( + size: BadgeClearSize = BadgeClearSize.L, + shape: BadgeClearShape = BadgeClearShape.Default, + view: BadgeClearView = BadgeClearView.Default, +): BadgeStyles = when { + size == BadgeClearSize.L && shape == BadgeClearShape.Pilled && view == BadgeClearView.Default -> + BadgeStyles.BadgeClearLPilledDefault + size == BadgeClearSize.L && shape == BadgeClearShape.Pilled && view == BadgeClearView.Accent -> + BadgeStyles.BadgeClearLPilledAccent + size == BadgeClearSize.L && shape == BadgeClearShape.Pilled && view == + BadgeClearView.Negative -> BadgeStyles.BadgeClearLPilledNegative + size == BadgeClearSize.L && shape == BadgeClearShape.Pilled && view == + BadgeClearView.Positive -> BadgeStyles.BadgeClearLPilledPositive + size == BadgeClearSize.L && shape == BadgeClearShape.Pilled && view == BadgeClearView.Warning -> + BadgeStyles.BadgeClearLPilledWarning + size == BadgeClearSize.L && shape == BadgeClearShape.Pilled && view == BadgeClearView.Dark -> + BadgeStyles.BadgeClearLPilledDark + size == BadgeClearSize.L && shape == BadgeClearShape.Pilled && view == BadgeClearView.Light -> + BadgeStyles.BadgeClearLPilledLight + size == BadgeClearSize.M && shape == BadgeClearShape.Pilled && view == BadgeClearView.Default -> + BadgeStyles.BadgeClearMPilledDefault + size == BadgeClearSize.M && shape == BadgeClearShape.Pilled && view == BadgeClearView.Accent -> + BadgeStyles.BadgeClearMPilledAccent + size == BadgeClearSize.M && shape == BadgeClearShape.Pilled && view == + BadgeClearView.Negative -> BadgeStyles.BadgeClearMPilledNegative + size == BadgeClearSize.M && shape == BadgeClearShape.Pilled && view == + BadgeClearView.Positive -> BadgeStyles.BadgeClearMPilledPositive + size == BadgeClearSize.M && shape == BadgeClearShape.Pilled && view == BadgeClearView.Warning -> + BadgeStyles.BadgeClearMPilledWarning + size == BadgeClearSize.M && shape == BadgeClearShape.Pilled && view == BadgeClearView.Dark -> + BadgeStyles.BadgeClearMPilledDark + size == BadgeClearSize.M && shape == BadgeClearShape.Pilled && view == BadgeClearView.Light -> + BadgeStyles.BadgeClearMPilledLight + size == BadgeClearSize.S && shape == BadgeClearShape.Pilled && view == BadgeClearView.Default -> + BadgeStyles.BadgeClearSPilledDefault + size == BadgeClearSize.S && shape == BadgeClearShape.Pilled && view == BadgeClearView.Accent -> + BadgeStyles.BadgeClearSPilledAccent + size == BadgeClearSize.S && shape == BadgeClearShape.Pilled && view == + BadgeClearView.Negative -> BadgeStyles.BadgeClearSPilledNegative + size == BadgeClearSize.S && shape == BadgeClearShape.Pilled && view == + BadgeClearView.Positive -> BadgeStyles.BadgeClearSPilledPositive + size == BadgeClearSize.S && shape == BadgeClearShape.Pilled && view == BadgeClearView.Warning -> + BadgeStyles.BadgeClearSPilledWarning + size == BadgeClearSize.S && shape == BadgeClearShape.Pilled && view == BadgeClearView.Dark -> + BadgeStyles.BadgeClearSPilledDark + size == BadgeClearSize.S && shape == BadgeClearShape.Pilled && view == BadgeClearView.Light -> + BadgeStyles.BadgeClearSPilledLight + size == BadgeClearSize.Xs && shape == BadgeClearShape.Pilled && view == + BadgeClearView.Default -> BadgeStyles.BadgeClearXsPilledDefault + size == BadgeClearSize.Xs && shape == BadgeClearShape.Pilled && view == BadgeClearView.Accent -> + BadgeStyles.BadgeClearXsPilledAccent + size == BadgeClearSize.Xs && shape == BadgeClearShape.Pilled && view == + BadgeClearView.Negative -> BadgeStyles.BadgeClearXsPilledNegative + size == BadgeClearSize.Xs && shape == BadgeClearShape.Pilled && view == + BadgeClearView.Positive -> BadgeStyles.BadgeClearXsPilledPositive + size == BadgeClearSize.Xs && shape == BadgeClearShape.Pilled && view == + BadgeClearView.Warning -> BadgeStyles.BadgeClearXsPilledWarning + size == BadgeClearSize.Xs && shape == BadgeClearShape.Pilled && view == BadgeClearView.Dark -> + BadgeStyles.BadgeClearXsPilledDark + size == BadgeClearSize.Xs && shape == BadgeClearShape.Pilled && view == BadgeClearView.Light -> + BadgeStyles.BadgeClearXsPilledLight + size == BadgeClearSize.L && view == BadgeClearView.Default -> BadgeStyles.BadgeClearLDefault + size == BadgeClearSize.L && view == BadgeClearView.Accent -> BadgeStyles.BadgeClearLAccent + size == BadgeClearSize.L && view == BadgeClearView.Negative -> BadgeStyles.BadgeClearLNegative + size == BadgeClearSize.L && view == BadgeClearView.Positive -> BadgeStyles.BadgeClearLPositive + size == BadgeClearSize.L && view == BadgeClearView.Warning -> BadgeStyles.BadgeClearLWarning + size == BadgeClearSize.L && view == BadgeClearView.Dark -> BadgeStyles.BadgeClearLDark + size == BadgeClearSize.L && view == BadgeClearView.Light -> BadgeStyles.BadgeClearLLight + size == BadgeClearSize.M && view == BadgeClearView.Default -> BadgeStyles.BadgeClearMDefault + size == BadgeClearSize.M && view == BadgeClearView.Accent -> BadgeStyles.BadgeClearMAccent + size == BadgeClearSize.M && view == BadgeClearView.Negative -> BadgeStyles.BadgeClearMNegative + size == BadgeClearSize.M && view == BadgeClearView.Positive -> BadgeStyles.BadgeClearMPositive + size == BadgeClearSize.M && view == BadgeClearView.Warning -> BadgeStyles.BadgeClearMWarning + size == BadgeClearSize.M && view == BadgeClearView.Dark -> BadgeStyles.BadgeClearMDark + size == BadgeClearSize.M && view == BadgeClearView.Light -> BadgeStyles.BadgeClearMLight + size == BadgeClearSize.S && view == BadgeClearView.Default -> BadgeStyles.BadgeClearSDefault + size == BadgeClearSize.S && view == BadgeClearView.Accent -> BadgeStyles.BadgeClearSAccent + size == BadgeClearSize.S && view == BadgeClearView.Negative -> BadgeStyles.BadgeClearSNegative + size == BadgeClearSize.S && view == BadgeClearView.Positive -> BadgeStyles.BadgeClearSPositive + size == BadgeClearSize.S && view == BadgeClearView.Warning -> BadgeStyles.BadgeClearSWarning + size == BadgeClearSize.S && view == BadgeClearView.Dark -> BadgeStyles.BadgeClearSDark + size == BadgeClearSize.S && view == BadgeClearView.Light -> BadgeStyles.BadgeClearSLight + size == BadgeClearSize.Xs && view == BadgeClearView.Default -> BadgeStyles.BadgeClearXsDefault + size == BadgeClearSize.Xs && view == BadgeClearView.Accent -> BadgeStyles.BadgeClearXsAccent + size == BadgeClearSize.Xs && view == BadgeClearView.Negative -> BadgeStyles.BadgeClearXsNegative + size == BadgeClearSize.Xs && view == BadgeClearView.Positive -> BadgeStyles.BadgeClearXsPositive + size == BadgeClearSize.Xs && view == BadgeClearView.Warning -> BadgeStyles.BadgeClearXsWarning + size == BadgeClearSize.Xs && view == BadgeClearView.Dark -> BadgeStyles.BadgeClearXsDark + size == BadgeClearSize.Xs && view == BadgeClearView.Light -> BadgeStyles.BadgeClearXsLight + else -> error("Unsupported badge-clear style combination") } + +/** + * Возвращает [BadgeStyle] для badge-clear + */ +@Composable +public fun BadgeStyles.Clear.style( + size: BadgeClearSize = BadgeClearSize.L, + shape: BadgeClearShape = BadgeClearShape.Default, + view: BadgeClearView = BadgeClearView.Default, + modify: @Composable BadgeStyleBuilder.() -> Unit = {}, +): BadgeStyle = resolve(size, shape, view).style(modify) + +/** + * Возвращает экземпляр [BadgeStyles] для badge-solid + */ +public fun BadgeStyles.Solid.resolve( + size: BadgeSolidSize = BadgeSolidSize.L, + shape: BadgeSolidShape = BadgeSolidShape.Default, + view: BadgeSolidView = BadgeSolidView.Default, +): BadgeStyles = when { + size == BadgeSolidSize.L && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Default -> + BadgeStyles.BadgeSolidLPilledDefault + size == BadgeSolidSize.L && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Accent -> + BadgeStyles.BadgeSolidLPilledAccent + size == BadgeSolidSize.L && shape == BadgeSolidShape.Pilled && view == + BadgeSolidView.Negative -> BadgeStyles.BadgeSolidLPilledNegative + size == BadgeSolidSize.L && shape == BadgeSolidShape.Pilled && view == + BadgeSolidView.Positive -> BadgeStyles.BadgeSolidLPilledPositive + size == BadgeSolidSize.L && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Warning -> + BadgeStyles.BadgeSolidLPilledWarning + size == BadgeSolidSize.L && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Dark -> + BadgeStyles.BadgeSolidLPilledDark + size == BadgeSolidSize.L && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Light -> + BadgeStyles.BadgeSolidLPilledLight + size == BadgeSolidSize.M && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Default -> + BadgeStyles.BadgeSolidMPilledDefault + size == BadgeSolidSize.M && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Accent -> + BadgeStyles.BadgeSolidMPilledAccent + size == BadgeSolidSize.M && shape == BadgeSolidShape.Pilled && view == + BadgeSolidView.Negative -> BadgeStyles.BadgeSolidMPilledNegative + size == BadgeSolidSize.M && shape == BadgeSolidShape.Pilled && view == + BadgeSolidView.Positive -> BadgeStyles.BadgeSolidMPilledPositive + size == BadgeSolidSize.M && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Warning -> + BadgeStyles.BadgeSolidMPilledWarning + size == BadgeSolidSize.M && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Dark -> + BadgeStyles.BadgeSolidMPilledDark + size == BadgeSolidSize.M && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Light -> + BadgeStyles.BadgeSolidMPilledLight + size == BadgeSolidSize.S && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Default -> + BadgeStyles.BadgeSolidSPilledDefault + size == BadgeSolidSize.S && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Accent -> + BadgeStyles.BadgeSolidSPilledAccent + size == BadgeSolidSize.S && shape == BadgeSolidShape.Pilled && view == + BadgeSolidView.Negative -> BadgeStyles.BadgeSolidSPilledNegative + size == BadgeSolidSize.S && shape == BadgeSolidShape.Pilled && view == + BadgeSolidView.Positive -> BadgeStyles.BadgeSolidSPilledPositive + size == BadgeSolidSize.S && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Warning -> + BadgeStyles.BadgeSolidSPilledWarning + size == BadgeSolidSize.S && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Dark -> + BadgeStyles.BadgeSolidSPilledDark + size == BadgeSolidSize.S && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Light -> + BadgeStyles.BadgeSolidSPilledLight + size == BadgeSolidSize.Xs && shape == BadgeSolidShape.Pilled && view == + BadgeSolidView.Default -> BadgeStyles.BadgeSolidXsPilledDefault + size == BadgeSolidSize.Xs && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Accent -> + BadgeStyles.BadgeSolidXsPilledAccent + size == BadgeSolidSize.Xs && shape == BadgeSolidShape.Pilled && view == + BadgeSolidView.Negative -> BadgeStyles.BadgeSolidXsPilledNegative + size == BadgeSolidSize.Xs && shape == BadgeSolidShape.Pilled && view == + BadgeSolidView.Positive -> BadgeStyles.BadgeSolidXsPilledPositive + size == BadgeSolidSize.Xs && shape == BadgeSolidShape.Pilled && view == + BadgeSolidView.Warning -> BadgeStyles.BadgeSolidXsPilledWarning + size == BadgeSolidSize.Xs && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Dark -> + BadgeStyles.BadgeSolidXsPilledDark + size == BadgeSolidSize.Xs && shape == BadgeSolidShape.Pilled && view == BadgeSolidView.Light -> + BadgeStyles.BadgeSolidXsPilledLight + size == BadgeSolidSize.L && view == BadgeSolidView.Default -> BadgeStyles.BadgeSolidLDefault + size == BadgeSolidSize.L && view == BadgeSolidView.Accent -> BadgeStyles.BadgeSolidLAccent + size == BadgeSolidSize.L && view == BadgeSolidView.Negative -> BadgeStyles.BadgeSolidLNegative + size == BadgeSolidSize.L && view == BadgeSolidView.Positive -> BadgeStyles.BadgeSolidLPositive + size == BadgeSolidSize.L && view == BadgeSolidView.Warning -> BadgeStyles.BadgeSolidLWarning + size == BadgeSolidSize.L && view == BadgeSolidView.Dark -> BadgeStyles.BadgeSolidLDark + size == BadgeSolidSize.L && view == BadgeSolidView.Light -> BadgeStyles.BadgeSolidLLight + size == BadgeSolidSize.M && view == BadgeSolidView.Default -> BadgeStyles.BadgeSolidMDefault + size == BadgeSolidSize.M && view == BadgeSolidView.Accent -> BadgeStyles.BadgeSolidMAccent + size == BadgeSolidSize.M && view == BadgeSolidView.Negative -> BadgeStyles.BadgeSolidMNegative + size == BadgeSolidSize.M && view == BadgeSolidView.Positive -> BadgeStyles.BadgeSolidMPositive + size == BadgeSolidSize.M && view == BadgeSolidView.Warning -> BadgeStyles.BadgeSolidMWarning + size == BadgeSolidSize.M && view == BadgeSolidView.Dark -> BadgeStyles.BadgeSolidMDark + size == BadgeSolidSize.M && view == BadgeSolidView.Light -> BadgeStyles.BadgeSolidMLight + size == BadgeSolidSize.S && view == BadgeSolidView.Default -> BadgeStyles.BadgeSolidSDefault + size == BadgeSolidSize.S && view == BadgeSolidView.Accent -> BadgeStyles.BadgeSolidSAccent + size == BadgeSolidSize.S && view == BadgeSolidView.Negative -> BadgeStyles.BadgeSolidSNegative + size == BadgeSolidSize.S && view == BadgeSolidView.Positive -> BadgeStyles.BadgeSolidSPositive + size == BadgeSolidSize.S && view == BadgeSolidView.Warning -> BadgeStyles.BadgeSolidSWarning + size == BadgeSolidSize.S && view == BadgeSolidView.Dark -> BadgeStyles.BadgeSolidSDark + size == BadgeSolidSize.S && view == BadgeSolidView.Light -> BadgeStyles.BadgeSolidSLight + size == BadgeSolidSize.Xs && view == BadgeSolidView.Default -> BadgeStyles.BadgeSolidXsDefault + size == BadgeSolidSize.Xs && view == BadgeSolidView.Accent -> BadgeStyles.BadgeSolidXsAccent + size == BadgeSolidSize.Xs && view == BadgeSolidView.Negative -> BadgeStyles.BadgeSolidXsNegative + size == BadgeSolidSize.Xs && view == BadgeSolidView.Positive -> BadgeStyles.BadgeSolidXsPositive + size == BadgeSolidSize.Xs && view == BadgeSolidView.Warning -> BadgeStyles.BadgeSolidXsWarning + size == BadgeSolidSize.Xs && view == BadgeSolidView.Dark -> BadgeStyles.BadgeSolidXsDark + size == BadgeSolidSize.Xs && view == BadgeSolidView.Light -> BadgeStyles.BadgeSolidXsLight + else -> error("Unsupported badge-solid style combination") +} + +/** + * Возвращает [BadgeStyle] для badge-solid + */ +@Composable +public fun BadgeStyles.Solid.style( + size: BadgeSolidSize = BadgeSolidSize.L, + shape: BadgeSolidShape = BadgeSolidShape.Default, + view: BadgeSolidView = BadgeSolidView.Default, + modify: @Composable BadgeStyleBuilder.() -> Unit = {}, +): BadgeStyle = resolve(size, shape, view).style(modify) + +/** + * Возвращает экземпляр [BadgeStyles] для badge-transparent + */ +public fun BadgeStyles.Transparent.resolve( + size: BadgeTransparentSize = BadgeTransparentSize.L, + shape: BadgeTransparentShape = BadgeTransparentShape.Default, + view: BadgeTransparentView = BadgeTransparentView.Default, +): BadgeStyles = when { + size == BadgeTransparentSize.L && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Default -> BadgeStyles.BadgeTransparentLPilledDefault + size == BadgeTransparentSize.L && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Accent -> BadgeStyles.BadgeTransparentLPilledAccent + size == BadgeTransparentSize.L && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Negative -> BadgeStyles.BadgeTransparentLPilledNegative + size == BadgeTransparentSize.L && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Positive -> BadgeStyles.BadgeTransparentLPilledPositive + size == BadgeTransparentSize.L && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Warning -> BadgeStyles.BadgeTransparentLPilledWarning + size == BadgeTransparentSize.L && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Dark -> BadgeStyles.BadgeTransparentLPilledDark + size == BadgeTransparentSize.L && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Light -> BadgeStyles.BadgeTransparentLPilledLight + size == BadgeTransparentSize.M && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Default -> BadgeStyles.BadgeTransparentMPilledDefault + size == BadgeTransparentSize.M && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Accent -> BadgeStyles.BadgeTransparentMPilledAccent + size == BadgeTransparentSize.M && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Negative -> BadgeStyles.BadgeTransparentMPilledNegative + size == BadgeTransparentSize.M && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Positive -> BadgeStyles.BadgeTransparentMPilledPositive + size == BadgeTransparentSize.M && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Warning -> BadgeStyles.BadgeTransparentMPilledWarning + size == BadgeTransparentSize.M && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Dark -> BadgeStyles.BadgeTransparentMPilledDark + size == BadgeTransparentSize.M && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Light -> BadgeStyles.BadgeTransparentMPilledLight + size == BadgeTransparentSize.S && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Default -> BadgeStyles.BadgeTransparentSPilledDefault + size == BadgeTransparentSize.S && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Accent -> BadgeStyles.BadgeTransparentSPilledAccent + size == BadgeTransparentSize.S && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Negative -> BadgeStyles.BadgeTransparentSPilledNegative + size == BadgeTransparentSize.S && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Positive -> BadgeStyles.BadgeTransparentSPilledPositive + size == BadgeTransparentSize.S && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Warning -> BadgeStyles.BadgeTransparentSPilledWarning + size == BadgeTransparentSize.S && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Dark -> BadgeStyles.BadgeTransparentSPilledDark + size == BadgeTransparentSize.S && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Light -> BadgeStyles.BadgeTransparentSPilledLight + size == BadgeTransparentSize.Xs && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Default -> BadgeStyles.BadgeTransparentXsPilledDefault + size == BadgeTransparentSize.Xs && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Accent -> BadgeStyles.BadgeTransparentXsPilledAccent + size == BadgeTransparentSize.Xs && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Negative -> BadgeStyles.BadgeTransparentXsPilledNegative + size == BadgeTransparentSize.Xs && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Positive -> BadgeStyles.BadgeTransparentXsPilledPositive + size == BadgeTransparentSize.Xs && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Warning -> BadgeStyles.BadgeTransparentXsPilledWarning + size == BadgeTransparentSize.Xs && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Dark -> BadgeStyles.BadgeTransparentXsPilledDark + size == BadgeTransparentSize.Xs && shape == BadgeTransparentShape.Pilled && view == + BadgeTransparentView.Light -> BadgeStyles.BadgeTransparentXsPilledLight + size == BadgeTransparentSize.L && view == BadgeTransparentView.Default -> + BadgeStyles.BadgeTransparentLDefault + size == BadgeTransparentSize.L && view == BadgeTransparentView.Accent -> + BadgeStyles.BadgeTransparentLAccent + size == BadgeTransparentSize.L && view == BadgeTransparentView.Negative -> + BadgeStyles.BadgeTransparentLNegative + size == BadgeTransparentSize.L && view == BadgeTransparentView.Positive -> + BadgeStyles.BadgeTransparentLPositive + size == BadgeTransparentSize.L && view == BadgeTransparentView.Warning -> + BadgeStyles.BadgeTransparentLWarning + size == BadgeTransparentSize.L && view == BadgeTransparentView.Dark -> + BadgeStyles.BadgeTransparentLDark + size == BadgeTransparentSize.L && view == BadgeTransparentView.Light -> + BadgeStyles.BadgeTransparentLLight + size == BadgeTransparentSize.M && view == BadgeTransparentView.Default -> + BadgeStyles.BadgeTransparentMDefault + size == BadgeTransparentSize.M && view == BadgeTransparentView.Accent -> + BadgeStyles.BadgeTransparentMAccent + size == BadgeTransparentSize.M && view == BadgeTransparentView.Negative -> + BadgeStyles.BadgeTransparentMNegative + size == BadgeTransparentSize.M && view == BadgeTransparentView.Positive -> + BadgeStyles.BadgeTransparentMPositive + size == BadgeTransparentSize.M && view == BadgeTransparentView.Warning -> + BadgeStyles.BadgeTransparentMWarning + size == BadgeTransparentSize.M && view == BadgeTransparentView.Dark -> + BadgeStyles.BadgeTransparentMDark + size == BadgeTransparentSize.M && view == BadgeTransparentView.Light -> + BadgeStyles.BadgeTransparentMLight + size == BadgeTransparentSize.S && view == BadgeTransparentView.Default -> + BadgeStyles.BadgeTransparentSDefault + size == BadgeTransparentSize.S && view == BadgeTransparentView.Accent -> + BadgeStyles.BadgeTransparentSAccent + size == BadgeTransparentSize.S && view == BadgeTransparentView.Negative -> + BadgeStyles.BadgeTransparentSNegative + size == BadgeTransparentSize.S && view == BadgeTransparentView.Positive -> + BadgeStyles.BadgeTransparentSPositive + size == BadgeTransparentSize.S && view == BadgeTransparentView.Warning -> + BadgeStyles.BadgeTransparentSWarning + size == BadgeTransparentSize.S && view == BadgeTransparentView.Dark -> + BadgeStyles.BadgeTransparentSDark + size == BadgeTransparentSize.S && view == BadgeTransparentView.Light -> + BadgeStyles.BadgeTransparentSLight + size == BadgeTransparentSize.Xs && view == BadgeTransparentView.Default -> + BadgeStyles.BadgeTransparentXsDefault + size == BadgeTransparentSize.Xs && view == BadgeTransparentView.Accent -> + BadgeStyles.BadgeTransparentXsAccent + size == BadgeTransparentSize.Xs && view == BadgeTransparentView.Negative -> + BadgeStyles.BadgeTransparentXsNegative + size == BadgeTransparentSize.Xs && view == BadgeTransparentView.Positive -> + BadgeStyles.BadgeTransparentXsPositive + size == BadgeTransparentSize.Xs && view == BadgeTransparentView.Warning -> + BadgeStyles.BadgeTransparentXsWarning + size == BadgeTransparentSize.Xs && view == BadgeTransparentView.Dark -> + BadgeStyles.BadgeTransparentXsDark + size == BadgeTransparentSize.Xs && view == BadgeTransparentView.Light -> + BadgeStyles.BadgeTransparentXsLight + else -> error("Unsupported badge-transparent style combination") +} + +/** + * Возвращает [BadgeStyle] для badge-transparent + */ +@Composable +public fun BadgeStyles.Transparent.style( + size: BadgeTransparentSize = BadgeTransparentSize.L, + shape: BadgeTransparentShape = BadgeTransparentShape.Default, + view: BadgeTransparentView = BadgeTransparentView.Default, + modify: @Composable BadgeStyleBuilder.() -> Unit = {}, +): BadgeStyle = resolve(size, shape, view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/basicbutton/BasicButtonStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/basicbutton/BasicButtonStylesCollection.kt index f3df1e968f..6d4253f744 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/basicbutton/BasicButtonStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/basicbutton/BasicButtonStylesCollection.kt @@ -46,16 +46,41 @@ public enum class BasicButtonStyles( BasicButtonXsWarning("BasicButton.Xs.Warning"), BasicButtonXsAccent("BasicButton.Xs.Accent"), BasicButtonXsClear("BasicButton.Xs.Clear"), + ; + + /** + * Typed API для подбора стиля basic-button + */ + public companion object +} + +/** + * Возможные значения свойства size для basic-button + */ +public enum class BasicButtonSize { + M, + S, + Xs, +} + +/** + * Возможные значения свойства view для basic-button + */ +public enum class BasicButtonView { + Default, + Secondary, + Dark, + Negative, + Warning, + Accent, + Clear, } /** * Возвращает [ButtonStyle] для [BasicButtonStyles] */ @Composable -public fun BasicButtonStyles.style( - modifyAction: @Composable BasicButtonStyleBuilder.() -> Unit = - {}, -): ButtonStyle { +public fun BasicButtonStyles.style(modify: @Composable BasicButtonStyleBuilder.() -> Unit = {}): ButtonStyle { val builder = when (this) { BasicButtonStyles.BasicButtonMDefault -> BasicButton.M.Default BasicButtonStyles.BasicButtonMSecondary -> BasicButton.M.Secondary @@ -79,5 +104,62 @@ public fun BasicButtonStyles.style( BasicButtonStyles.BasicButtonXsAccent -> BasicButton.Xs.Accent BasicButtonStyles.BasicButtonXsClear -> BasicButton.Xs.Clear } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [BasicButtonStyles] для basic-button + */ +public fun BasicButtonStyles.Companion.resolve(size: BasicButtonSize, view: BasicButtonView): BasicButtonStyles = when { + size == BasicButtonSize.M && view == BasicButtonView.Default -> + BasicButtonStyles.BasicButtonMDefault + size == BasicButtonSize.M && view == BasicButtonView.Secondary -> + BasicButtonStyles.BasicButtonMSecondary + size == BasicButtonSize.M && view == BasicButtonView.Dark -> BasicButtonStyles.BasicButtonMDark + size == BasicButtonSize.M && view == BasicButtonView.Negative -> + BasicButtonStyles.BasicButtonMNegative + size == BasicButtonSize.M && view == BasicButtonView.Warning -> + BasicButtonStyles.BasicButtonMWarning + size == BasicButtonSize.M && view == BasicButtonView.Accent -> + BasicButtonStyles.BasicButtonMAccent + size == BasicButtonSize.M && view == BasicButtonView.Clear -> + BasicButtonStyles.BasicButtonMClear + size == BasicButtonSize.S && view == BasicButtonView.Default -> + BasicButtonStyles.BasicButtonSDefault + size == BasicButtonSize.S && view == BasicButtonView.Secondary -> + BasicButtonStyles.BasicButtonSSecondary + size == BasicButtonSize.S && view == BasicButtonView.Dark -> BasicButtonStyles.BasicButtonSDark + size == BasicButtonSize.S && view == BasicButtonView.Negative -> + BasicButtonStyles.BasicButtonSNegative + size == BasicButtonSize.S && view == BasicButtonView.Warning -> + BasicButtonStyles.BasicButtonSWarning + size == BasicButtonSize.S && view == BasicButtonView.Accent -> + BasicButtonStyles.BasicButtonSAccent + size == BasicButtonSize.S && view == BasicButtonView.Clear -> + BasicButtonStyles.BasicButtonSClear + size == BasicButtonSize.Xs && view == BasicButtonView.Default -> + BasicButtonStyles.BasicButtonXsDefault + size == BasicButtonSize.Xs && view == BasicButtonView.Secondary -> + BasicButtonStyles.BasicButtonXsSecondary + size == BasicButtonSize.Xs && view == BasicButtonView.Dark -> + BasicButtonStyles.BasicButtonXsDark + size == BasicButtonSize.Xs && view == BasicButtonView.Negative -> + BasicButtonStyles.BasicButtonXsNegative + size == BasicButtonSize.Xs && view == BasicButtonView.Warning -> + BasicButtonStyles.BasicButtonXsWarning + size == BasicButtonSize.Xs && view == BasicButtonView.Accent -> + BasicButtonStyles.BasicButtonXsAccent + size == BasicButtonSize.Xs && view == BasicButtonView.Clear -> + BasicButtonStyles.BasicButtonXsClear + else -> error("Unsupported basic-button style combination") +} + +/** + * Возвращает [ButtonStyle] для basic-button + */ +@Composable +public fun BasicButtonStyles.Companion.style( + size: BasicButtonSize, + view: BasicButtonView, + modify: @Composable BasicButtonStyleBuilder.() -> Unit = {}, +): ButtonStyle = resolve(size, view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/bottomsheet/BottomSheetStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/bottomsheet/BottomSheetStylesCollection.kt index 888c0cbb6b..d4e8547118 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/bottomsheet/BottomSheetStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/bottomsheet/BottomSheetStylesCollection.kt @@ -26,6 +26,12 @@ public enum class BottomSheetStyles( public val key: String, ) { ModalBottomSheetDefault("ModalBottomSheet.Default"), + ; + + /** + * Typed API для подбора стиля modal-bottom-sheet + */ + public companion object } /** @@ -33,11 +39,27 @@ public enum class BottomSheetStyles( */ @Composable public fun BottomSheetStyles.style( - modifyAction: @Composable ModalBottomSheetStyleBuilder.() -> Unit = + modify: @Composable ModalBottomSheetStyleBuilder.() -> Unit = {}, ): ModalBottomSheetStyle { val builder = when (this) { BottomSheetStyles.ModalBottomSheetDefault -> ModalBottomSheet.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [BottomSheetStyles] для modal-bottom-sheet + */ +public fun BottomSheetStyles.Companion.resolve(): BottomSheetStyles = + BottomSheetStyles.ModalBottomSheetDefault + +/** + * Возвращает [ModalBottomSheetStyle] для modal-bottom-sheet + */ +@Composable +public fun BottomSheetStyles.Companion.style( + modify: @Composable + ModalBottomSheetStyleBuilder.() -> Unit = {}, +): ModalBottomSheetStyle = + resolve().style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/buttongroup/ButtonGroupStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/buttongroup/ButtonGroupStylesCollection.kt index a388456c22..b4c3d132cc 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/buttongroup/ButtonGroupStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/buttongroup/ButtonGroupStylesCollection.kt @@ -95,16 +95,77 @@ public enum class ButtonGroupStyles( IconButtonGroupLNoGap("IconButtonGroup.L.NoGap"), IconButtonGroupLNoGapPilled("IconButtonGroup.L.NoGap.Pilled"), IconButtonGroupLNoGapSegmented("IconButtonGroup.L.NoGap.Segmented"), + ; + + /** + * Typed API для подбора стиля basic-button-group + */ + public object BasicButtonGroup + + /** + * Typed API для подбора стиля icon-button-group + */ + public object IconButtonGroup +} + +/** + * Возможные значения свойства size для basic-button-group + */ +public enum class ButtonGroupBasicButtonGroupSize { + Xs, + S, + M, +} + +/** + * Возможные значения свойства gap для basic-button-group + */ +public enum class ButtonGroupBasicButtonGroupGap { + None, + Wide, + Dense, +} + +/** + * Возможные значения свойства shape для basic-button-group + */ +public enum class ButtonGroupBasicButtonGroupShape { + Default, + Segmented, +} + +/** + * Возможные значения свойства size для icon-button-group + */ +public enum class ButtonGroupIconButtonGroupSize { + Xs, + S, + M, + L, +} + +/** + * Возможные значения свойства gap для icon-button-group + */ +public enum class ButtonGroupIconButtonGroupGap { + Wide, + Dense, + None, +} + +/** + * Возможные значения свойства shape для icon-button-group + */ +public enum class ButtonGroupIconButtonGroupShape { + Pilled, + Segmented, } /** * Возвращает [ButtonGroupStyle] для [ButtonGroupStyles] */ @Composable -public fun ButtonGroupStyles.style( - modifyAction: @Composable ButtonGroupStyleBuilder.() -> Unit = - {}, -): ButtonGroupStyle { +public fun ButtonGroupStyles.style(modify: @Composable ButtonGroupStyleBuilder.() -> Unit = {}): ButtonGroupStyle { val builder = when (this) { ButtonGroupStyles.BasicButtonGroupXs -> BasicButtonGroup.Xs ButtonGroupStyles.BasicButtonGroupXsWide -> BasicButtonGroup.Xs.Wide @@ -177,5 +238,212 @@ public fun ButtonGroupStyles.style( ButtonGroupStyles.IconButtonGroupLNoGapPilled -> IconButtonGroup.L.NoGap.Pilled ButtonGroupStyles.IconButtonGroupLNoGapSegmented -> IconButtonGroup.L.NoGap.Segmented } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [ButtonGroupStyles] для basic-button-group + */ +public fun ButtonGroupStyles.BasicButtonGroup.resolve( + size: ButtonGroupBasicButtonGroupSize = ButtonGroupBasicButtonGroupSize.Xs, + gap: ButtonGroupBasicButtonGroupGap = ButtonGroupBasicButtonGroupGap.None, + shape: ButtonGroupBasicButtonGroupShape = ButtonGroupBasicButtonGroupShape.Default, +): ButtonGroupStyles = when { + size == ButtonGroupBasicButtonGroupSize.Xs && gap == ButtonGroupBasicButtonGroupGap.Wide && + shape == ButtonGroupBasicButtonGroupShape.Default -> + ButtonGroupStyles.BasicButtonGroupXsWideDefault + size == ButtonGroupBasicButtonGroupSize.Xs && gap == ButtonGroupBasicButtonGroupGap.Wide && + shape == ButtonGroupBasicButtonGroupShape.Segmented -> + ButtonGroupStyles.BasicButtonGroupXsWideSegmented + size == ButtonGroupBasicButtonGroupSize.Xs && gap == ButtonGroupBasicButtonGroupGap.Dense && + shape == ButtonGroupBasicButtonGroupShape.Default -> + ButtonGroupStyles.BasicButtonGroupXsDenseDefault + size == ButtonGroupBasicButtonGroupSize.Xs && gap == ButtonGroupBasicButtonGroupGap.Dense && + shape == ButtonGroupBasicButtonGroupShape.Segmented -> + ButtonGroupStyles.BasicButtonGroupXsDenseSegmented + size == ButtonGroupBasicButtonGroupSize.Xs && gap == ButtonGroupBasicButtonGroupGap.None && + shape == ButtonGroupBasicButtonGroupShape.Default -> + ButtonGroupStyles.BasicButtonGroupXsNoGapDefault + size == ButtonGroupBasicButtonGroupSize.Xs && gap == ButtonGroupBasicButtonGroupGap.None && + shape == ButtonGroupBasicButtonGroupShape.Segmented -> + ButtonGroupStyles.BasicButtonGroupXsNoGapSegmented + size == ButtonGroupBasicButtonGroupSize.S && gap == ButtonGroupBasicButtonGroupGap.Wide && shape + == ButtonGroupBasicButtonGroupShape.Default -> + ButtonGroupStyles.BasicButtonGroupSWideDefault + size == ButtonGroupBasicButtonGroupSize.S && gap == ButtonGroupBasicButtonGroupGap.Wide && shape + == ButtonGroupBasicButtonGroupShape.Segmented -> + ButtonGroupStyles.BasicButtonGroupSWideSegmented + size == ButtonGroupBasicButtonGroupSize.S && gap == ButtonGroupBasicButtonGroupGap.Dense && + shape == ButtonGroupBasicButtonGroupShape.Default -> + ButtonGroupStyles.BasicButtonGroupSDenseDefault + size == ButtonGroupBasicButtonGroupSize.S && gap == ButtonGroupBasicButtonGroupGap.Dense && + shape == ButtonGroupBasicButtonGroupShape.Segmented -> + ButtonGroupStyles.BasicButtonGroupSDenseSegmented + size == ButtonGroupBasicButtonGroupSize.S && gap == ButtonGroupBasicButtonGroupGap.None && shape + == ButtonGroupBasicButtonGroupShape.Default -> + ButtonGroupStyles.BasicButtonGroupSNoGapDefault + size == ButtonGroupBasicButtonGroupSize.S && gap == ButtonGroupBasicButtonGroupGap.None && shape + == ButtonGroupBasicButtonGroupShape.Segmented -> + ButtonGroupStyles.BasicButtonGroupSNoGapSegmented + size == ButtonGroupBasicButtonGroupSize.M && gap == ButtonGroupBasicButtonGroupGap.Wide && shape + == ButtonGroupBasicButtonGroupShape.Default -> + ButtonGroupStyles.BasicButtonGroupMWideDefault + size == ButtonGroupBasicButtonGroupSize.M && gap == ButtonGroupBasicButtonGroupGap.Wide && shape + == ButtonGroupBasicButtonGroupShape.Segmented -> + ButtonGroupStyles.BasicButtonGroupMWideSegmented + size == ButtonGroupBasicButtonGroupSize.M && gap == ButtonGroupBasicButtonGroupGap.Dense && + shape == ButtonGroupBasicButtonGroupShape.Default -> + ButtonGroupStyles.BasicButtonGroupMDenseDefault + size == ButtonGroupBasicButtonGroupSize.M && gap == ButtonGroupBasicButtonGroupGap.Dense && + shape == ButtonGroupBasicButtonGroupShape.Segmented -> + ButtonGroupStyles.BasicButtonGroupMDenseSegmented + size == ButtonGroupBasicButtonGroupSize.M && gap == ButtonGroupBasicButtonGroupGap.None && shape + == ButtonGroupBasicButtonGroupShape.Default -> + ButtonGroupStyles.BasicButtonGroupMNoGapDefault + size == ButtonGroupBasicButtonGroupSize.M && gap == ButtonGroupBasicButtonGroupGap.None && shape + == ButtonGroupBasicButtonGroupShape.Segmented -> + ButtonGroupStyles.BasicButtonGroupMNoGapSegmented + size == ButtonGroupBasicButtonGroupSize.Xs && gap == ButtonGroupBasicButtonGroupGap.Wide -> + ButtonGroupStyles.BasicButtonGroupXsWide + size == ButtonGroupBasicButtonGroupSize.Xs && gap == ButtonGroupBasicButtonGroupGap.Dense -> + ButtonGroupStyles.BasicButtonGroupXsDense + size == ButtonGroupBasicButtonGroupSize.Xs && gap == ButtonGroupBasicButtonGroupGap.None -> + ButtonGroupStyles.BasicButtonGroupXsNoGap + size == ButtonGroupBasicButtonGroupSize.S && gap == ButtonGroupBasicButtonGroupGap.Wide -> + ButtonGroupStyles.BasicButtonGroupSWide + size == ButtonGroupBasicButtonGroupSize.S && gap == ButtonGroupBasicButtonGroupGap.Dense -> + ButtonGroupStyles.BasicButtonGroupSDense + size == ButtonGroupBasicButtonGroupSize.S && gap == ButtonGroupBasicButtonGroupGap.None -> + ButtonGroupStyles.BasicButtonGroupSNoGap + size == ButtonGroupBasicButtonGroupSize.M && gap == ButtonGroupBasicButtonGroupGap.Wide -> + ButtonGroupStyles.BasicButtonGroupMWide + size == ButtonGroupBasicButtonGroupSize.M && gap == ButtonGroupBasicButtonGroupGap.Dense -> + ButtonGroupStyles.BasicButtonGroupMDense + size == ButtonGroupBasicButtonGroupSize.M && gap == ButtonGroupBasicButtonGroupGap.None -> + ButtonGroupStyles.BasicButtonGroupMNoGap + size == ButtonGroupBasicButtonGroupSize.Xs -> ButtonGroupStyles.BasicButtonGroupXs + size == ButtonGroupBasicButtonGroupSize.S -> ButtonGroupStyles.BasicButtonGroupS + size == ButtonGroupBasicButtonGroupSize.M -> ButtonGroupStyles.BasicButtonGroupM + else -> error("Unsupported basic-button-group style combination") +} + +/** + * Возвращает [ButtonGroupStyle] для basic-button-group + */ +@Composable +public fun ButtonGroupStyles.BasicButtonGroup.style( + size: ButtonGroupBasicButtonGroupSize = ButtonGroupBasicButtonGroupSize.Xs, + gap: ButtonGroupBasicButtonGroupGap = ButtonGroupBasicButtonGroupGap.None, + shape: ButtonGroupBasicButtonGroupShape = ButtonGroupBasicButtonGroupShape.Default, + modify: @Composable ButtonGroupStyleBuilder.() -> Unit = {}, +): ButtonGroupStyle = resolve(size, gap, shape).style(modify) + +/** + * Возвращает экземпляр [ButtonGroupStyles] для icon-button-group + */ +public fun ButtonGroupStyles.IconButtonGroup.resolve( + size: ButtonGroupIconButtonGroupSize = ButtonGroupIconButtonGroupSize.Xs, + gap: ButtonGroupIconButtonGroupGap = ButtonGroupIconButtonGroupGap.Wide, + shape: ButtonGroupIconButtonGroupShape = ButtonGroupIconButtonGroupShape.Pilled, +): ButtonGroupStyles = when { + size == ButtonGroupIconButtonGroupSize.Xs && gap == ButtonGroupIconButtonGroupGap.Wide && shape + == ButtonGroupIconButtonGroupShape.Pilled -> ButtonGroupStyles.IconButtonGroupXsWidePilled + size == ButtonGroupIconButtonGroupSize.Xs && gap == ButtonGroupIconButtonGroupGap.Wide && shape + == ButtonGroupIconButtonGroupShape.Segmented -> + ButtonGroupStyles.IconButtonGroupXsWideSegmented + size == ButtonGroupIconButtonGroupSize.Xs && gap == ButtonGroupIconButtonGroupGap.Dense && shape + == ButtonGroupIconButtonGroupShape.Pilled -> ButtonGroupStyles.IconButtonGroupXsDensePilled + size == ButtonGroupIconButtonGroupSize.Xs && gap == ButtonGroupIconButtonGroupGap.Dense && shape + == ButtonGroupIconButtonGroupShape.Segmented -> + ButtonGroupStyles.IconButtonGroupXsDenseSegmented + size == ButtonGroupIconButtonGroupSize.Xs && gap == ButtonGroupIconButtonGroupGap.None && shape + == ButtonGroupIconButtonGroupShape.Pilled -> ButtonGroupStyles.IconButtonGroupXsNoGapPilled + size == ButtonGroupIconButtonGroupSize.Xs && gap == ButtonGroupIconButtonGroupGap.None && shape + == ButtonGroupIconButtonGroupShape.Segmented -> + ButtonGroupStyles.IconButtonGroupXsNoGapSegmented + size == ButtonGroupIconButtonGroupSize.S && gap == ButtonGroupIconButtonGroupGap.Wide && shape + == ButtonGroupIconButtonGroupShape.Pilled -> ButtonGroupStyles.IconButtonGroupSWidePilled + size == ButtonGroupIconButtonGroupSize.S && gap == ButtonGroupIconButtonGroupGap.Wide && shape + == ButtonGroupIconButtonGroupShape.Segmented -> + ButtonGroupStyles.IconButtonGroupSWideSegmented + size == ButtonGroupIconButtonGroupSize.S && gap == ButtonGroupIconButtonGroupGap.Dense && shape + == ButtonGroupIconButtonGroupShape.Pilled -> ButtonGroupStyles.IconButtonGroupSDensePilled + size == ButtonGroupIconButtonGroupSize.S && gap == ButtonGroupIconButtonGroupGap.Dense && shape + == ButtonGroupIconButtonGroupShape.Segmented -> + ButtonGroupStyles.IconButtonGroupSDenseSegmented + size == ButtonGroupIconButtonGroupSize.S && gap == ButtonGroupIconButtonGroupGap.None && shape + == ButtonGroupIconButtonGroupShape.Pilled -> ButtonGroupStyles.IconButtonGroupSNoGapPilled + size == ButtonGroupIconButtonGroupSize.S && gap == ButtonGroupIconButtonGroupGap.None && shape + == ButtonGroupIconButtonGroupShape.Segmented -> + ButtonGroupStyles.IconButtonGroupSNoGapSegmented + size == ButtonGroupIconButtonGroupSize.M && gap == ButtonGroupIconButtonGroupGap.Wide && shape + == ButtonGroupIconButtonGroupShape.Pilled -> ButtonGroupStyles.IconButtonGroupMWidePilled + size == ButtonGroupIconButtonGroupSize.M && gap == ButtonGroupIconButtonGroupGap.Wide && shape + == ButtonGroupIconButtonGroupShape.Segmented -> + ButtonGroupStyles.IconButtonGroupMWideSegmented + size == ButtonGroupIconButtonGroupSize.M && gap == ButtonGroupIconButtonGroupGap.Dense && shape + == ButtonGroupIconButtonGroupShape.Pilled -> ButtonGroupStyles.IconButtonGroupMDensePilled + size == ButtonGroupIconButtonGroupSize.M && gap == ButtonGroupIconButtonGroupGap.Dense && shape + == ButtonGroupIconButtonGroupShape.Segmented -> + ButtonGroupStyles.IconButtonGroupMDenseSegmented + size == ButtonGroupIconButtonGroupSize.M && gap == ButtonGroupIconButtonGroupGap.None && shape + == ButtonGroupIconButtonGroupShape.Pilled -> ButtonGroupStyles.IconButtonGroupMNoGapPilled + size == ButtonGroupIconButtonGroupSize.M && gap == ButtonGroupIconButtonGroupGap.None && shape + == ButtonGroupIconButtonGroupShape.Segmented -> + ButtonGroupStyles.IconButtonGroupMNoGapSegmented + size == ButtonGroupIconButtonGroupSize.L && gap == ButtonGroupIconButtonGroupGap.Wide && shape + == ButtonGroupIconButtonGroupShape.Pilled -> ButtonGroupStyles.IconButtonGroupLWidePilled + size == ButtonGroupIconButtonGroupSize.L && gap == ButtonGroupIconButtonGroupGap.Wide && shape + == ButtonGroupIconButtonGroupShape.Segmented -> + ButtonGroupStyles.IconButtonGroupLWideSegmented + size == ButtonGroupIconButtonGroupSize.L && gap == ButtonGroupIconButtonGroupGap.Dense && shape + == ButtonGroupIconButtonGroupShape.Pilled -> ButtonGroupStyles.IconButtonGroupLDensePilled + size == ButtonGroupIconButtonGroupSize.L && gap == ButtonGroupIconButtonGroupGap.Dense && shape + == ButtonGroupIconButtonGroupShape.Segmented -> + ButtonGroupStyles.IconButtonGroupLDenseSegmented + size == ButtonGroupIconButtonGroupSize.L && gap == ButtonGroupIconButtonGroupGap.None && shape + == ButtonGroupIconButtonGroupShape.Pilled -> ButtonGroupStyles.IconButtonGroupLNoGapPilled + size == ButtonGroupIconButtonGroupSize.L && gap == ButtonGroupIconButtonGroupGap.None && shape + == ButtonGroupIconButtonGroupShape.Segmented -> + ButtonGroupStyles.IconButtonGroupLNoGapSegmented + size == ButtonGroupIconButtonGroupSize.Xs && gap == ButtonGroupIconButtonGroupGap.Wide -> + ButtonGroupStyles.IconButtonGroupXsWide + size == ButtonGroupIconButtonGroupSize.Xs && gap == ButtonGroupIconButtonGroupGap.Dense -> + ButtonGroupStyles.IconButtonGroupXsDense + size == ButtonGroupIconButtonGroupSize.Xs && gap == ButtonGroupIconButtonGroupGap.None -> + ButtonGroupStyles.IconButtonGroupXsNoGap + size == ButtonGroupIconButtonGroupSize.S && gap == ButtonGroupIconButtonGroupGap.Wide -> + ButtonGroupStyles.IconButtonGroupSWide + size == ButtonGroupIconButtonGroupSize.S && gap == ButtonGroupIconButtonGroupGap.Dense -> + ButtonGroupStyles.IconButtonGroupSDense + size == ButtonGroupIconButtonGroupSize.S && gap == ButtonGroupIconButtonGroupGap.None -> + ButtonGroupStyles.IconButtonGroupSNoGap + size == ButtonGroupIconButtonGroupSize.M && gap == ButtonGroupIconButtonGroupGap.Wide -> + ButtonGroupStyles.IconButtonGroupMWide + size == ButtonGroupIconButtonGroupSize.M && gap == ButtonGroupIconButtonGroupGap.Dense -> + ButtonGroupStyles.IconButtonGroupMDense + size == ButtonGroupIconButtonGroupSize.M && gap == ButtonGroupIconButtonGroupGap.None -> + ButtonGroupStyles.IconButtonGroupMNoGap + size == ButtonGroupIconButtonGroupSize.L && gap == ButtonGroupIconButtonGroupGap.Wide -> + ButtonGroupStyles.IconButtonGroupLWide + size == ButtonGroupIconButtonGroupSize.L && gap == ButtonGroupIconButtonGroupGap.Dense -> + ButtonGroupStyles.IconButtonGroupLDense + size == ButtonGroupIconButtonGroupSize.L && gap == ButtonGroupIconButtonGroupGap.None -> + ButtonGroupStyles.IconButtonGroupLNoGap + size == ButtonGroupIconButtonGroupSize.Xs -> ButtonGroupStyles.IconButtonGroupXs + size == ButtonGroupIconButtonGroupSize.S -> ButtonGroupStyles.IconButtonGroupS + size == ButtonGroupIconButtonGroupSize.M -> ButtonGroupStyles.IconButtonGroupM + size == ButtonGroupIconButtonGroupSize.L -> ButtonGroupStyles.IconButtonGroupL + else -> error("Unsupported icon-button-group style combination") +} + +/** + * Возвращает [ButtonGroupStyle] для icon-button-group + */ +@Composable +public fun ButtonGroupStyles.IconButtonGroup.style( + size: ButtonGroupIconButtonGroupSize = ButtonGroupIconButtonGroupSize.Xs, + gap: ButtonGroupIconButtonGroupGap = ButtonGroupIconButtonGroupGap.Wide, + shape: ButtonGroupIconButtonGroupShape = ButtonGroupIconButtonGroupShape.Pilled, + modify: @Composable ButtonGroupStyleBuilder.() -> Unit = {}, +): ButtonGroupStyle = resolve(size, gap, shape).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/card/CardStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/card/CardStylesCollection.kt index 9d2511f520..05d1139702 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/card/CardStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/card/CardStylesCollection.kt @@ -15,6 +15,7 @@ import com.sdds.compose.uikit.CardStyle import com.sdds.compose.uikit.CardStyleBuilder import com.sdds.compose.uikit.style.modify import com.sdds.compose.uikit.style.style +import kotlin.Boolean import kotlin.String import kotlin.Suppress import kotlin.Unit @@ -33,13 +34,29 @@ public enum class CardStyles( CardMHasInnerPaddings("Card.M.HasInnerPaddings"), CardS("Card.S"), CardSHasInnerPaddings("Card.S.HasInnerPaddings"), + ; + + /** + * Typed API для подбора стиля card + */ + public companion object +} + +/** + * Возможные значения свойства size для card + */ +public enum class CardSize { + Xl, + L, + M, + S, } /** * Возвращает [CardStyle] для [CardStyles] */ @Composable -public fun CardStyles.style(modifyAction: @Composable CardStyleBuilder.() -> Unit = {}): CardStyle { +public fun CardStyles.style(modify: @Composable CardStyleBuilder.() -> Unit = {}): CardStyle { val builder = when (this) { CardStyles.CardXl -> Card.Xl CardStyles.CardXlHasInnerPaddings -> Card.Xl.HasInnerPaddings @@ -50,5 +67,34 @@ public fun CardStyles.style(modifyAction: @Composable CardStyleBuilder.() -> Uni CardStyles.CardS -> Card.S CardStyles.CardSHasInnerPaddings -> Card.S.HasInnerPaddings } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [CardStyles] для card + */ +public fun CardStyles.Companion.resolve( + size: CardSize = CardSize.Xl, + hasInnerPaddings: Boolean = + false, +): CardStyles = when { + size == CardSize.Xl && hasInnerPaddings == true -> CardStyles.CardXlHasInnerPaddings + size == CardSize.L && hasInnerPaddings == true -> CardStyles.CardLHasInnerPaddings + size == CardSize.M && hasInnerPaddings == true -> CardStyles.CardMHasInnerPaddings + size == CardSize.S && hasInnerPaddings == true -> CardStyles.CardSHasInnerPaddings + size == CardSize.Xl -> CardStyles.CardXl + size == CardSize.L -> CardStyles.CardL + size == CardSize.M -> CardStyles.CardM + size == CardSize.S -> CardStyles.CardS + else -> error("Unsupported card style combination") +} + +/** + * Возвращает [CardStyle] для card + */ +@Composable +public fun CardStyles.Companion.style( + size: CardSize = CardSize.Xl, + hasInnerPaddings: Boolean = false, + modify: @Composable CardStyleBuilder.() -> Unit = {}, +): CardStyle = resolve(size, hasInnerPaddings).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/cell/CellStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/cell/CellStylesCollection.kt index eb0449836d..802990caf1 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/cell/CellStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/cell/CellStylesCollection.kt @@ -29,18 +29,55 @@ public enum class CellStyles( CellM("Cell.M"), CellS("Cell.S"), CellXs("Cell.Xs"), + ; + + /** + * Typed API для подбора стиля cell + */ + public companion object +} + +/** + * Возможные значения свойства size для cell + */ +public enum class CellSize { + L, + M, + S, + Xs, } /** * Возвращает [CellStyle] для [CellStyles] */ @Composable -public fun CellStyles.style(modifyAction: @Composable CellStyleBuilder.() -> Unit = {}): CellStyle { +public fun CellStyles.style(modify: @Composable CellStyleBuilder.() -> Unit = {}): CellStyle { val builder = when (this) { CellStyles.CellL -> Cell.L CellStyles.CellM -> Cell.M CellStyles.CellS -> Cell.S CellStyles.CellXs -> Cell.Xs } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [CellStyles] для cell + */ +public fun CellStyles.Companion.resolve(size: CellSize = CellSize.L): CellStyles = when { + size == CellSize.L -> CellStyles.CellL + size == CellSize.M -> CellStyles.CellM + size == CellSize.S -> CellStyles.CellS + size == CellSize.Xs -> CellStyles.CellXs + else -> error("Unsupported cell style combination") +} + +/** + * Возвращает [CellStyle] для cell + */ +@Composable +public fun CellStyles.Companion.style( + size: CellSize = CellSize.L, + modify: @Composable + CellStyleBuilder.() -> Unit = {}, +): CellStyle = resolve(size).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/checkbox/CheckBoxStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/checkbox/CheckBoxStylesCollection.kt index 3552510046..7826c56092 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/checkbox/CheckBoxStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/checkbox/CheckBoxStylesCollection.kt @@ -31,13 +31,36 @@ public enum class CheckBoxStyles( CheckBoxMNegative("CheckBox.M.Negative"), CheckBoxSDefault("CheckBox.S.Default"), CheckBoxSNegative("CheckBox.S.Negative"), + ; + + /** + * Typed API для подбора стиля check-box + */ + public companion object +} + +/** + * Возможные значения свойства size для check-box + */ +public enum class CheckBoxSize { + L, + M, + S, +} + +/** + * Возможные значения свойства view для check-box + */ +public enum class CheckBoxView { + Default, + Negative, } /** * Возвращает [CheckBoxStyle] для [CheckBoxStyles] */ @Composable -public fun CheckBoxStyles.style(modifyAction: @Composable CheckBoxStyleBuilder.() -> Unit = {}): CheckBoxStyle { +public fun CheckBoxStyles.style(modify: @Composable CheckBoxStyleBuilder.() -> Unit = {}): CheckBoxStyle { val builder = when (this) { CheckBoxStyles.CheckBoxLDefault -> CheckBox.L.Default CheckBoxStyles.CheckBoxLNegative -> CheckBox.L.Negative @@ -46,5 +69,32 @@ public fun CheckBoxStyles.style(modifyAction: @Composable CheckBoxStyleBuilder.( CheckBoxStyles.CheckBoxSDefault -> CheckBox.S.Default CheckBoxStyles.CheckBoxSNegative -> CheckBox.S.Negative } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [CheckBoxStyles] для check-box + */ +public fun CheckBoxStyles.Companion.resolve( + size: CheckBoxSize = CheckBoxSize.L, + view: CheckBoxView = + CheckBoxView.Default, +): CheckBoxStyles = when { + size == CheckBoxSize.L && view == CheckBoxView.Default -> CheckBoxStyles.CheckBoxLDefault + size == CheckBoxSize.L && view == CheckBoxView.Negative -> CheckBoxStyles.CheckBoxLNegative + size == CheckBoxSize.M && view == CheckBoxView.Default -> CheckBoxStyles.CheckBoxMDefault + size == CheckBoxSize.M && view == CheckBoxView.Negative -> CheckBoxStyles.CheckBoxMNegative + size == CheckBoxSize.S && view == CheckBoxView.Default -> CheckBoxStyles.CheckBoxSDefault + size == CheckBoxSize.S && view == CheckBoxView.Negative -> CheckBoxStyles.CheckBoxSNegative + else -> error("Unsupported check-box style combination") +} + +/** + * Возвращает [CheckBoxStyle] для check-box + */ +@Composable +public fun CheckBoxStyles.Companion.style( + size: CheckBoxSize = CheckBoxSize.L, + view: CheckBoxView = CheckBoxView.Default, + modify: @Composable CheckBoxStyleBuilder.() -> Unit = {}, +): CheckBoxStyle = resolve(size, view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/checkboxgroup/CheckBoxGroupStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/checkboxgroup/CheckBoxGroupStylesCollection.kt index fedef7a804..85fb404af0 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/checkboxgroup/CheckBoxGroupStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/checkboxgroup/CheckBoxGroupStylesCollection.kt @@ -28,20 +28,54 @@ public enum class CheckBoxGroupStyles( CheckBoxGroupL("CheckBoxGroup.L"), CheckBoxGroupM("CheckBoxGroup.M"), CheckBoxGroupS("CheckBoxGroup.S"), + ; + + /** + * Typed API для подбора стиля check-box-group + */ + public companion object +} + +/** + * Возможные значения свойства size для check-box-group + */ +public enum class CheckBoxGroupSize { + L, + M, + S, } /** * Возвращает [CheckBoxGroupStyle] для [CheckBoxGroupStyles] */ @Composable -public fun CheckBoxGroupStyles.style( - modifyAction: @Composable CheckBoxGroupStyleBuilder.() -> Unit = - {}, -): CheckBoxGroupStyle { +public fun CheckBoxGroupStyles.style(modify: @Composable CheckBoxGroupStyleBuilder.() -> Unit = {}): + CheckBoxGroupStyle { val builder = when (this) { CheckBoxGroupStyles.CheckBoxGroupL -> CheckBoxGroup.L CheckBoxGroupStyles.CheckBoxGroupM -> CheckBoxGroup.M CheckBoxGroupStyles.CheckBoxGroupS -> CheckBoxGroup.S } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [CheckBoxGroupStyles] для check-box-group + */ +public fun CheckBoxGroupStyles.Companion.resolve(size: CheckBoxGroupSize = CheckBoxGroupSize.L): + CheckBoxGroupStyles = when { + size == CheckBoxGroupSize.L -> CheckBoxGroupStyles.CheckBoxGroupL + size == CheckBoxGroupSize.M -> CheckBoxGroupStyles.CheckBoxGroupM + size == CheckBoxGroupSize.S -> CheckBoxGroupStyles.CheckBoxGroupS + else -> error("Unsupported check-box-group style combination") +} + +/** + * Возвращает [CheckBoxGroupStyle] для check-box-group + */ +@Composable +public fun CheckBoxGroupStyles.Companion.style( + size: CheckBoxGroupSize = CheckBoxGroupSize.L, + modify: @Composable CheckBoxGroupStyleBuilder.() -> Unit = {}, +): CheckBoxGroupStyle = + resolve(size).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/chip/ChipStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/chip/ChipStylesCollection.kt index 789c7178fb..4f8d5b5400 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/chip/ChipStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/chip/ChipStylesCollection.kt @@ -45,13 +45,46 @@ public enum class ChipStyles( ChipXxsSecondary("Chip.Xxs.Secondary"), ChipXxsPilledDefault("Chip.Xxs.Pilled.Default"), ChipXxsPilledSecondary("Chip.Xxs.Pilled.Secondary"), + ; + + /** + * Typed API для подбора стиля chip + */ + public companion object +} + +/** + * Возможные значения свойства size для chip + */ +public enum class ChipSize { + L, + M, + S, + Xs, + Xxs, +} + +/** + * Возможные значения свойства shape для chip + */ +public enum class ChipShape { + Default, + Pilled, +} + +/** + * Возможные значения свойства view для chip + */ +public enum class ChipView { + Default, + Secondary, } /** * Возвращает [ChipStyle] для [ChipStyles] */ @Composable -public fun ChipStyles.style(modifyAction: @Composable ChipStyleBuilder.() -> Unit = {}): ChipStyle { +public fun ChipStyles.style(modify: @Composable ChipStyleBuilder.() -> Unit = {}): ChipStyle { val builder = when (this) { ChipStyles.ChipLDefault -> Chip.L.Default ChipStyles.ChipLSecondary -> Chip.L.Secondary @@ -74,5 +107,57 @@ public fun ChipStyles.style(modifyAction: @Composable ChipStyleBuilder.() -> Uni ChipStyles.ChipXxsPilledDefault -> Chip.Xxs.Pilled.Default ChipStyles.ChipXxsPilledSecondary -> Chip.Xxs.Pilled.Secondary } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() +} + +/** + * Возвращает экземпляр [ChipStyles] для chip + */ +public fun ChipStyles.Companion.resolve( + size: ChipSize = ChipSize.L, + shape: ChipShape = ChipShape.Default, + view: ChipView = ChipView.Default, +): ChipStyles = when { + size == ChipSize.L && shape == ChipShape.Pilled && view == ChipView.Default -> + ChipStyles.ChipLPilledDefault + size == ChipSize.L && shape == ChipShape.Pilled && view == ChipView.Secondary -> + ChipStyles.ChipLPilledSecondary + size == ChipSize.M && shape == ChipShape.Pilled && view == ChipView.Default -> + ChipStyles.ChipMPilledDefault + size == ChipSize.M && shape == ChipShape.Pilled && view == ChipView.Secondary -> + ChipStyles.ChipMPilledSecondary + size == ChipSize.S && shape == ChipShape.Pilled && view == ChipView.Default -> + ChipStyles.ChipSPilledDefault + size == ChipSize.S && shape == ChipShape.Pilled && view == ChipView.Secondary -> + ChipStyles.ChipSPilledSecondary + size == ChipSize.Xs && shape == ChipShape.Pilled && view == ChipView.Default -> + ChipStyles.ChipXsPilledDefault + size == ChipSize.Xs && shape == ChipShape.Pilled && view == ChipView.Secondary -> + ChipStyles.ChipXsPilledSecondary + size == ChipSize.Xxs && shape == ChipShape.Pilled && view == ChipView.Default -> + ChipStyles.ChipXxsPilledDefault + size == ChipSize.Xxs && shape == ChipShape.Pilled && view == ChipView.Secondary -> + ChipStyles.ChipXxsPilledSecondary + size == ChipSize.L && view == ChipView.Default -> ChipStyles.ChipLDefault + size == ChipSize.L && view == ChipView.Secondary -> ChipStyles.ChipLSecondary + size == ChipSize.M && view == ChipView.Default -> ChipStyles.ChipMDefault + size == ChipSize.M && view == ChipView.Secondary -> ChipStyles.ChipMSecondary + size == ChipSize.S && view == ChipView.Default -> ChipStyles.ChipSDefault + size == ChipSize.S && view == ChipView.Secondary -> ChipStyles.ChipSSecondary + size == ChipSize.Xs && view == ChipView.Default -> ChipStyles.ChipXsDefault + size == ChipSize.Xs && view == ChipView.Secondary -> ChipStyles.ChipXsSecondary + size == ChipSize.Xxs && view == ChipView.Default -> ChipStyles.ChipXxsDefault + size == ChipSize.Xxs && view == ChipView.Secondary -> ChipStyles.ChipXxsSecondary + else -> error("Unsupported chip style combination") } + +/** + * Возвращает [ChipStyle] для chip + */ +@Composable +public fun ChipStyles.Companion.style( + size: ChipSize = ChipSize.L, + shape: ChipShape = ChipShape.Default, + view: ChipView = ChipView.Default, + modify: @Composable ChipStyleBuilder.() -> Unit = {}, +): ChipStyle = resolve(size, shape, view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/chipgroup/ChipGroupStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/chipgroup/ChipGroupStylesCollection.kt index d099c6d0e8..66d9f4b045 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/chipgroup/ChipGroupStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/chipgroup/ChipGroupStylesCollection.kt @@ -65,13 +65,78 @@ public enum class ChipGroupStyles( ChipGroupWideXxsSecondary("ChipGroupWide.Xxs.Secondary"), ChipGroupWideXxsPilledDefault("ChipGroupWide.Xxs.Pilled.Default"), ChipGroupWideXxsPilledSecondary("ChipGroupWide.Xxs.Pilled.Secondary"), + ; + + /** + * Typed API для подбора стиля chip-group-dense + */ + public object Dense + + /** + * Typed API для подбора стиля chip-group-wide + */ + public object Wide +} + +/** + * Возможные значения свойства size для chip-group-dense + */ +public enum class ChipGroupDenseSize { + L, + M, + S, + Xs, + Xxs, +} + +/** + * Возможные значения свойства shape для chip-group-dense + */ +public enum class ChipGroupDenseShape { + Default, + Pilled, +} + +/** + * Возможные значения свойства view для chip-group-dense + */ +public enum class ChipGroupDenseView { + Default, + Secondary, +} + +/** + * Возможные значения свойства size для chip-group-wide + */ +public enum class ChipGroupWideSize { + L, + M, + S, + Xs, + Xxs, +} + +/** + * Возможные значения свойства shape для chip-group-wide + */ +public enum class ChipGroupWideShape { + Default, + Pilled, +} + +/** + * Возможные значения свойства view для chip-group-wide + */ +public enum class ChipGroupWideView { + Default, + Secondary, } /** * Возвращает [ChipGroupStyle] для [ChipGroupStyles] */ @Composable -public fun ChipGroupStyles.style(modifyAction: @Composable ChipGroupStyleBuilder.() -> Unit = {}): ChipGroupStyle { +public fun ChipGroupStyles.style(modify: @Composable ChipGroupStyleBuilder.() -> Unit = {}): ChipGroupStyle { val builder = when (this) { ChipGroupStyles.ChipGroupDenseLDefault -> ChipGroupDense.L.Default ChipGroupStyles.ChipGroupDenseLSecondary -> ChipGroupDense.L.Secondary @@ -114,5 +179,129 @@ public fun ChipGroupStyles.style(modifyAction: @Composable ChipGroupStyleBuilder ChipGroupStyles.ChipGroupWideXxsPilledDefault -> ChipGroupWide.Xxs.Pilled.Default ChipGroupStyles.ChipGroupWideXxsPilledSecondary -> ChipGroupWide.Xxs.Pilled.Secondary } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [ChipGroupStyles] для chip-group-dense + */ +public fun ChipGroupStyles.Dense.resolve( + size: ChipGroupDenseSize = ChipGroupDenseSize.L, + shape: ChipGroupDenseShape = ChipGroupDenseShape.Default, + view: ChipGroupDenseView, +): ChipGroupStyles = when { + size == ChipGroupDenseSize.L && shape == ChipGroupDenseShape.Pilled && view == + ChipGroupDenseView.Default -> ChipGroupStyles.ChipGroupDenseLPilledDefault + size == ChipGroupDenseSize.L && shape == ChipGroupDenseShape.Pilled && view == + ChipGroupDenseView.Secondary -> ChipGroupStyles.ChipGroupDenseLPilledSecondary + size == ChipGroupDenseSize.M && shape == ChipGroupDenseShape.Pilled && view == + ChipGroupDenseView.Default -> ChipGroupStyles.ChipGroupDenseMPilledDefault + size == ChipGroupDenseSize.M && shape == ChipGroupDenseShape.Pilled && view == + ChipGroupDenseView.Secondary -> ChipGroupStyles.ChipGroupDenseMPilledSecondary + size == ChipGroupDenseSize.S && shape == ChipGroupDenseShape.Pilled && view == + ChipGroupDenseView.Default -> ChipGroupStyles.ChipGroupDenseSPilledDefault + size == ChipGroupDenseSize.S && shape == ChipGroupDenseShape.Pilled && view == + ChipGroupDenseView.Secondary -> ChipGroupStyles.ChipGroupDenseSPilledSecondary + size == ChipGroupDenseSize.Xs && shape == ChipGroupDenseShape.Pilled && view == + ChipGroupDenseView.Default -> ChipGroupStyles.ChipGroupDenseXsPilledDefault + size == ChipGroupDenseSize.Xs && shape == ChipGroupDenseShape.Pilled && view == + ChipGroupDenseView.Secondary -> ChipGroupStyles.ChipGroupDenseXsPilledSecondary + size == ChipGroupDenseSize.Xxs && shape == ChipGroupDenseShape.Pilled && view == + ChipGroupDenseView.Default -> ChipGroupStyles.ChipGroupDenseXxsPilledDefault + size == ChipGroupDenseSize.Xxs && shape == ChipGroupDenseShape.Pilled && view == + ChipGroupDenseView.Secondary -> ChipGroupStyles.ChipGroupDenseXxsPilledSecondary + size == ChipGroupDenseSize.L && view == ChipGroupDenseView.Default -> + ChipGroupStyles.ChipGroupDenseLDefault + size == ChipGroupDenseSize.L && view == ChipGroupDenseView.Secondary -> + ChipGroupStyles.ChipGroupDenseLSecondary + size == ChipGroupDenseSize.M && view == ChipGroupDenseView.Default -> + ChipGroupStyles.ChipGroupDenseMDefault + size == ChipGroupDenseSize.M && view == ChipGroupDenseView.Secondary -> + ChipGroupStyles.ChipGroupDenseMSecondary + size == ChipGroupDenseSize.S && view == ChipGroupDenseView.Default -> + ChipGroupStyles.ChipGroupDenseSDefault + size == ChipGroupDenseSize.S && view == ChipGroupDenseView.Secondary -> + ChipGroupStyles.ChipGroupDenseSSecondary + size == ChipGroupDenseSize.Xs && view == ChipGroupDenseView.Default -> + ChipGroupStyles.ChipGroupDenseXsDefault + size == ChipGroupDenseSize.Xs && view == ChipGroupDenseView.Secondary -> + ChipGroupStyles.ChipGroupDenseXsSecondary + size == ChipGroupDenseSize.Xxs && view == ChipGroupDenseView.Default -> + ChipGroupStyles.ChipGroupDenseXxsDefault + size == ChipGroupDenseSize.Xxs && view == ChipGroupDenseView.Secondary -> + ChipGroupStyles.ChipGroupDenseXxsSecondary + else -> error("Unsupported chip-group-dense style combination") +} + +/** + * Возвращает [ChipGroupStyle] для chip-group-dense + */ +@Composable +public fun ChipGroupStyles.Dense.style( + size: ChipGroupDenseSize = ChipGroupDenseSize.L, + shape: ChipGroupDenseShape = ChipGroupDenseShape.Default, + view: ChipGroupDenseView, + modify: @Composable ChipGroupStyleBuilder.() -> Unit = {}, +): ChipGroupStyle = resolve(size, shape, view).style(modify) + +/** + * Возвращает экземпляр [ChipGroupStyles] для chip-group-wide + */ +public fun ChipGroupStyles.Wide.resolve( + size: ChipGroupWideSize = ChipGroupWideSize.L, + shape: ChipGroupWideShape = ChipGroupWideShape.Default, + view: ChipGroupWideView, +): ChipGroupStyles = when { + size == ChipGroupWideSize.L && shape == ChipGroupWideShape.Pilled && view == + ChipGroupWideView.Default -> ChipGroupStyles.ChipGroupWideLPilledDefault + size == ChipGroupWideSize.L && shape == ChipGroupWideShape.Pilled && view == + ChipGroupWideView.Secondary -> ChipGroupStyles.ChipGroupWideLPilledSecondary + size == ChipGroupWideSize.M && shape == ChipGroupWideShape.Pilled && view == + ChipGroupWideView.Default -> ChipGroupStyles.ChipGroupWideMPilledDefault + size == ChipGroupWideSize.M && shape == ChipGroupWideShape.Pilled && view == + ChipGroupWideView.Secondary -> ChipGroupStyles.ChipGroupWideMPilledSecondary + size == ChipGroupWideSize.S && shape == ChipGroupWideShape.Pilled && view == + ChipGroupWideView.Default -> ChipGroupStyles.ChipGroupWideSPilledDefault + size == ChipGroupWideSize.S && shape == ChipGroupWideShape.Pilled && view == + ChipGroupWideView.Secondary -> ChipGroupStyles.ChipGroupWideSPilledSecondary + size == ChipGroupWideSize.Xs && shape == ChipGroupWideShape.Pilled && view == + ChipGroupWideView.Default -> ChipGroupStyles.ChipGroupWideXsPilledDefault + size == ChipGroupWideSize.Xs && shape == ChipGroupWideShape.Pilled && view == + ChipGroupWideView.Secondary -> ChipGroupStyles.ChipGroupWideXsPilledSecondary + size == ChipGroupWideSize.Xxs && shape == ChipGroupWideShape.Pilled && view == + ChipGroupWideView.Default -> ChipGroupStyles.ChipGroupWideXxsPilledDefault + size == ChipGroupWideSize.Xxs && shape == ChipGroupWideShape.Pilled && view == + ChipGroupWideView.Secondary -> ChipGroupStyles.ChipGroupWideXxsPilledSecondary + size == ChipGroupWideSize.L && view == ChipGroupWideView.Default -> + ChipGroupStyles.ChipGroupWideLDefault + size == ChipGroupWideSize.L && view == ChipGroupWideView.Secondary -> + ChipGroupStyles.ChipGroupWideLSecondary + size == ChipGroupWideSize.M && view == ChipGroupWideView.Default -> + ChipGroupStyles.ChipGroupWideMDefault + size == ChipGroupWideSize.M && view == ChipGroupWideView.Secondary -> + ChipGroupStyles.ChipGroupWideMSecondary + size == ChipGroupWideSize.S && view == ChipGroupWideView.Default -> + ChipGroupStyles.ChipGroupWideSDefault + size == ChipGroupWideSize.S && view == ChipGroupWideView.Secondary -> + ChipGroupStyles.ChipGroupWideSSecondary + size == ChipGroupWideSize.Xs && view == ChipGroupWideView.Default -> + ChipGroupStyles.ChipGroupWideXsDefault + size == ChipGroupWideSize.Xs && view == ChipGroupWideView.Secondary -> + ChipGroupStyles.ChipGroupWideXsSecondary + size == ChipGroupWideSize.Xxs && view == ChipGroupWideView.Default -> + ChipGroupStyles.ChipGroupWideXxsDefault + size == ChipGroupWideSize.Xxs && view == ChipGroupWideView.Secondary -> + ChipGroupStyles.ChipGroupWideXxsSecondary + else -> error("Unsupported chip-group-wide style combination") +} + +/** + * Возвращает [ChipGroupStyle] для chip-group-wide + */ +@Composable +public fun ChipGroupStyles.Wide.style( + size: ChipGroupWideSize = ChipGroupWideSize.L, + shape: ChipGroupWideShape = ChipGroupWideShape.Default, + view: ChipGroupWideView, + modify: @Composable ChipGroupStyleBuilder.() -> Unit = {}, +): ChipGroupStyle = resolve(size, shape, view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/circularprogressbar/CircularProgressBarStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/circularprogressbar/CircularProgressBarStylesCollection.kt index 294228783f..1b2bb0f0e7 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/circularprogressbar/CircularProgressBarStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/circularprogressbar/CircularProgressBarStylesCollection.kt @@ -81,6 +81,39 @@ public enum class CircularProgressBarStyles( CircularProgressBarXxsNegative("CircularProgressBar.Xxs.Negative"), CircularProgressBarXxsPositive("CircularProgressBar.Xxs.Positive"), CircularProgressBarXxsWarning("CircularProgressBar.Xxs.Warning"), + ; + + /** + * Typed API для подбора стиля circular-progress-bar + */ + public companion object +} + +/** + * Возможные значения свойства size для circular-progress-bar + */ +public enum class CircularProgressBarSize { + Xxl, + Xl, + L, + M, + S, + Xs, + Xxs, +} + +/** + * Возможные значения свойства view для circular-progress-bar + */ +public enum class CircularProgressBarView { + Default, + Secondary, + Accent, + Gradient, + Info, + Negative, + Positive, + Warning, } /** @@ -88,7 +121,7 @@ public enum class CircularProgressBarStyles( */ @Composable public fun CircularProgressBarStyles.style( - modifyAction: @Composable + modify: @Composable CircularProgressBarStyleBuilder.() -> Unit = {}, ): CircularProgressBarStyle { val builder = when (this) { @@ -151,5 +184,139 @@ public fun CircularProgressBarStyles.style( CircularProgressBarStyles.CircularProgressBarXxsPositive -> CircularProgressBar.Xxs.Positive CircularProgressBarStyles.CircularProgressBarXxsWarning -> CircularProgressBar.Xxs.Warning } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [CircularProgressBarStyles] для circular-progress-bar + */ +public fun CircularProgressBarStyles.Companion.resolve( + size: CircularProgressBarSize = + CircularProgressBarSize.Xxl, + view: CircularProgressBarView = + CircularProgressBarView.Default, +): CircularProgressBarStyles = when { + size == CircularProgressBarSize.Xxl && view == CircularProgressBarView.Default -> + CircularProgressBarStyles.CircularProgressBarXxlDefault + size == CircularProgressBarSize.Xxl && view == CircularProgressBarView.Secondary -> + CircularProgressBarStyles.CircularProgressBarXxlSecondary + size == CircularProgressBarSize.Xxl && view == CircularProgressBarView.Accent -> + CircularProgressBarStyles.CircularProgressBarXxlAccent + size == CircularProgressBarSize.Xxl && view == CircularProgressBarView.Gradient -> + CircularProgressBarStyles.CircularProgressBarXxlGradient + size == CircularProgressBarSize.Xxl && view == CircularProgressBarView.Info -> + CircularProgressBarStyles.CircularProgressBarXxlInfo + size == CircularProgressBarSize.Xxl && view == CircularProgressBarView.Negative -> + CircularProgressBarStyles.CircularProgressBarXxlNegative + size == CircularProgressBarSize.Xxl && view == CircularProgressBarView.Positive -> + CircularProgressBarStyles.CircularProgressBarXxlPositive + size == CircularProgressBarSize.Xxl && view == CircularProgressBarView.Warning -> + CircularProgressBarStyles.CircularProgressBarXxlWarning + size == CircularProgressBarSize.Xl && view == CircularProgressBarView.Default -> + CircularProgressBarStyles.CircularProgressBarXlDefault + size == CircularProgressBarSize.Xl && view == CircularProgressBarView.Secondary -> + CircularProgressBarStyles.CircularProgressBarXlSecondary + size == CircularProgressBarSize.Xl && view == CircularProgressBarView.Accent -> + CircularProgressBarStyles.CircularProgressBarXlAccent + size == CircularProgressBarSize.Xl && view == CircularProgressBarView.Gradient -> + CircularProgressBarStyles.CircularProgressBarXlGradient + size == CircularProgressBarSize.Xl && view == CircularProgressBarView.Info -> + CircularProgressBarStyles.CircularProgressBarXlInfo + size == CircularProgressBarSize.Xl && view == CircularProgressBarView.Negative -> + CircularProgressBarStyles.CircularProgressBarXlNegative + size == CircularProgressBarSize.Xl && view == CircularProgressBarView.Positive -> + CircularProgressBarStyles.CircularProgressBarXlPositive + size == CircularProgressBarSize.Xl && view == CircularProgressBarView.Warning -> + CircularProgressBarStyles.CircularProgressBarXlWarning + size == CircularProgressBarSize.L && view == CircularProgressBarView.Default -> + CircularProgressBarStyles.CircularProgressBarLDefault + size == CircularProgressBarSize.L && view == CircularProgressBarView.Secondary -> + CircularProgressBarStyles.CircularProgressBarLSecondary + size == CircularProgressBarSize.L && view == CircularProgressBarView.Accent -> + CircularProgressBarStyles.CircularProgressBarLAccent + size == CircularProgressBarSize.L && view == CircularProgressBarView.Gradient -> + CircularProgressBarStyles.CircularProgressBarLGradient + size == CircularProgressBarSize.L && view == CircularProgressBarView.Info -> + CircularProgressBarStyles.CircularProgressBarLInfo + size == CircularProgressBarSize.L && view == CircularProgressBarView.Negative -> + CircularProgressBarStyles.CircularProgressBarLNegative + size == CircularProgressBarSize.L && view == CircularProgressBarView.Positive -> + CircularProgressBarStyles.CircularProgressBarLPositive + size == CircularProgressBarSize.L && view == CircularProgressBarView.Warning -> + CircularProgressBarStyles.CircularProgressBarLWarning + size == CircularProgressBarSize.M && view == CircularProgressBarView.Default -> + CircularProgressBarStyles.CircularProgressBarMDefault + size == CircularProgressBarSize.M && view == CircularProgressBarView.Secondary -> + CircularProgressBarStyles.CircularProgressBarMSecondary + size == CircularProgressBarSize.M && view == CircularProgressBarView.Accent -> + CircularProgressBarStyles.CircularProgressBarMAccent + size == CircularProgressBarSize.M && view == CircularProgressBarView.Gradient -> + CircularProgressBarStyles.CircularProgressBarMGradient + size == CircularProgressBarSize.M && view == CircularProgressBarView.Info -> + CircularProgressBarStyles.CircularProgressBarMInfo + size == CircularProgressBarSize.M && view == CircularProgressBarView.Negative -> + CircularProgressBarStyles.CircularProgressBarMNegative + size == CircularProgressBarSize.M && view == CircularProgressBarView.Positive -> + CircularProgressBarStyles.CircularProgressBarMPositive + size == CircularProgressBarSize.M && view == CircularProgressBarView.Warning -> + CircularProgressBarStyles.CircularProgressBarMWarning + size == CircularProgressBarSize.S && view == CircularProgressBarView.Default -> + CircularProgressBarStyles.CircularProgressBarSDefault + size == CircularProgressBarSize.S && view == CircularProgressBarView.Secondary -> + CircularProgressBarStyles.CircularProgressBarSSecondary + size == CircularProgressBarSize.S && view == CircularProgressBarView.Accent -> + CircularProgressBarStyles.CircularProgressBarSAccent + size == CircularProgressBarSize.S && view == CircularProgressBarView.Gradient -> + CircularProgressBarStyles.CircularProgressBarSGradient + size == CircularProgressBarSize.S && view == CircularProgressBarView.Info -> + CircularProgressBarStyles.CircularProgressBarSInfo + size == CircularProgressBarSize.S && view == CircularProgressBarView.Negative -> + CircularProgressBarStyles.CircularProgressBarSNegative + size == CircularProgressBarSize.S && view == CircularProgressBarView.Positive -> + CircularProgressBarStyles.CircularProgressBarSPositive + size == CircularProgressBarSize.S && view == CircularProgressBarView.Warning -> + CircularProgressBarStyles.CircularProgressBarSWarning + size == CircularProgressBarSize.Xs && view == CircularProgressBarView.Default -> + CircularProgressBarStyles.CircularProgressBarXsDefault + size == CircularProgressBarSize.Xs && view == CircularProgressBarView.Secondary -> + CircularProgressBarStyles.CircularProgressBarXsSecondary + size == CircularProgressBarSize.Xs && view == CircularProgressBarView.Accent -> + CircularProgressBarStyles.CircularProgressBarXsAccent + size == CircularProgressBarSize.Xs && view == CircularProgressBarView.Gradient -> + CircularProgressBarStyles.CircularProgressBarXsGradient + size == CircularProgressBarSize.Xs && view == CircularProgressBarView.Info -> + CircularProgressBarStyles.CircularProgressBarXsInfo + size == CircularProgressBarSize.Xs && view == CircularProgressBarView.Negative -> + CircularProgressBarStyles.CircularProgressBarXsNegative + size == CircularProgressBarSize.Xs && view == CircularProgressBarView.Positive -> + CircularProgressBarStyles.CircularProgressBarXsPositive + size == CircularProgressBarSize.Xs && view == CircularProgressBarView.Warning -> + CircularProgressBarStyles.CircularProgressBarXsWarning + size == CircularProgressBarSize.Xxs && view == CircularProgressBarView.Default -> + CircularProgressBarStyles.CircularProgressBarXxsDefault + size == CircularProgressBarSize.Xxs && view == CircularProgressBarView.Secondary -> + CircularProgressBarStyles.CircularProgressBarXxsSecondary + size == CircularProgressBarSize.Xxs && view == CircularProgressBarView.Accent -> + CircularProgressBarStyles.CircularProgressBarXxsAccent + size == CircularProgressBarSize.Xxs && view == CircularProgressBarView.Gradient -> + CircularProgressBarStyles.CircularProgressBarXxsGradient + size == CircularProgressBarSize.Xxs && view == CircularProgressBarView.Info -> + CircularProgressBarStyles.CircularProgressBarXxsInfo + size == CircularProgressBarSize.Xxs && view == CircularProgressBarView.Negative -> + CircularProgressBarStyles.CircularProgressBarXxsNegative + size == CircularProgressBarSize.Xxs && view == CircularProgressBarView.Positive -> + CircularProgressBarStyles.CircularProgressBarXxsPositive + size == CircularProgressBarSize.Xxs && view == CircularProgressBarView.Warning -> + CircularProgressBarStyles.CircularProgressBarXxsWarning + else -> error("Unsupported circular-progress-bar style combination") +} + +/** + * Возвращает [CircularProgressBarStyle] для circular-progress-bar + */ +@Composable +public fun CircularProgressBarStyles.Companion.style( + size: CircularProgressBarSize = CircularProgressBarSize.Xxl, + view: CircularProgressBarView = CircularProgressBarView.Default, + modify: @Composable CircularProgressBarStyleBuilder.() -> Unit = {}, +): CircularProgressBarStyle = resolve(size, view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/collapsingnavigationbar/CollapsingNavigationBarStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/collapsingnavigationbar/CollapsingNavigationBarStylesCollection.kt index d8896a1ad5..5c01a7b57e 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/collapsingnavigationbar/CollapsingNavigationBarStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/collapsingnavigationbar/CollapsingNavigationBarStylesCollection.kt @@ -27,6 +27,17 @@ public enum class CollapsingNavigationBarStyles( ) { CollapsingNavigationBarMainPageDefault("CollapsingNavigationBarMainPage.Default"), CollapsingNavigationBarInternalPageDefault("CollapsingNavigationBarInternalPage.Default"), + ; + + /** + * Typed API для подбора стиля collapsing-navigation-bar-main-page + */ + public object MainPage + + /** + * Typed API для подбора стиля collapsing-navigation-bar-internal-page + */ + public object InternalPage } /** @@ -34,7 +45,7 @@ public enum class CollapsingNavigationBarStyles( */ @Composable public fun CollapsingNavigationBarStyles.style( - modifyAction: @Composable + modify: @Composable CollapsingNavigationBarStyleBuilder.() -> Unit = {}, ): CollapsingNavigationBarStyle { val builder = when (this) { @@ -43,5 +54,37 @@ public fun CollapsingNavigationBarStyles.style( CollapsingNavigationBarStyles.CollapsingNavigationBarInternalPageDefault -> CollapsingNavigationBarInternalPage.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [CollapsingNavigationBarStyles] для collapsing-navigation-bar-main-page + */ +public fun CollapsingNavigationBarStyles.MainPage.resolve(): CollapsingNavigationBarStyles = + CollapsingNavigationBarStyles.CollapsingNavigationBarMainPageDefault + +/** + * Возвращает [CollapsingNavigationBarStyle] для collapsing-navigation-bar-main-page + */ +@Composable +public fun CollapsingNavigationBarStyles.MainPage.style( + modify: @Composable + CollapsingNavigationBarStyleBuilder.() -> Unit = {}, +): CollapsingNavigationBarStyle = + resolve().style(modify) + +/** + * Возвращает экземпляр [CollapsingNavigationBarStyles] для collapsing-navigation-bar-internal-page + */ +public fun CollapsingNavigationBarStyles.InternalPage.resolve(): CollapsingNavigationBarStyles = + CollapsingNavigationBarStyles.CollapsingNavigationBarInternalPageDefault + +/** + * Возвращает [CollapsingNavigationBarStyle] для collapsing-navigation-bar-internal-page + */ +@Composable +public fun CollapsingNavigationBarStyles.InternalPage.style( + modify: @Composable + CollapsingNavigationBarStyleBuilder.() -> Unit = {}, +): CollapsingNavigationBarStyle = + resolve().style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/counter/CounterStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/counter/CounterStylesCollection.kt index 22bc874708..6a27a57de4 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/counter/CounterStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/counter/CounterStylesCollection.kt @@ -65,13 +65,44 @@ public enum class CounterStyles( CounterXxsNegative("Counter.Xxs.Negative"), CounterXxsBlack("Counter.Xxs.Black"), CounterXxsWhite("Counter.Xxs.White"), + ; + + /** + * Typed API для подбора стиля counter + */ + public companion object +} + +/** + * Возможные значения свойства size для counter + */ +public enum class CounterSize { + L, + M, + S, + Xs, + Xxs, +} + +/** + * Возможные значения свойства view для counter + */ +public enum class CounterView { + Default, + Secondary, + Accent, + Positive, + Warning, + Negative, + Black, + White, } /** * Возвращает [CounterStyle] для [CounterStyles] */ @Composable -public fun CounterStyles.style(modifyAction: @Composable CounterStyleBuilder.() -> Unit = {}): CounterStyle { +public fun CounterStyles.style(modify: @Composable CounterStyleBuilder.() -> Unit = {}): CounterStyle { val builder = when (this) { CounterStyles.CounterLDefault -> Counter.L.Default CounterStyles.CounterLSecondary -> Counter.L.Secondary @@ -114,5 +145,66 @@ public fun CounterStyles.style(modifyAction: @Composable CounterStyleBuilder.() CounterStyles.CounterXxsBlack -> Counter.Xxs.Black CounterStyles.CounterXxsWhite -> Counter.Xxs.White } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [CounterStyles] для counter + */ +public fun CounterStyles.Companion.resolve( + size: CounterSize = CounterSize.L, + view: CounterView = + CounterView.Default, +): CounterStyles = when { + size == CounterSize.L && view == CounterView.Default -> CounterStyles.CounterLDefault + size == CounterSize.L && view == CounterView.Secondary -> CounterStyles.CounterLSecondary + size == CounterSize.L && view == CounterView.Accent -> CounterStyles.CounterLAccent + size == CounterSize.L && view == CounterView.Positive -> CounterStyles.CounterLPositive + size == CounterSize.L && view == CounterView.Warning -> CounterStyles.CounterLWarning + size == CounterSize.L && view == CounterView.Negative -> CounterStyles.CounterLNegative + size == CounterSize.L && view == CounterView.Black -> CounterStyles.CounterLBlack + size == CounterSize.L && view == CounterView.White -> CounterStyles.CounterLWhite + size == CounterSize.M && view == CounterView.Default -> CounterStyles.CounterMDefault + size == CounterSize.M && view == CounterView.Secondary -> CounterStyles.CounterMSecondary + size == CounterSize.M && view == CounterView.Accent -> CounterStyles.CounterMAccent + size == CounterSize.M && view == CounterView.Positive -> CounterStyles.CounterMPositive + size == CounterSize.M && view == CounterView.Warning -> CounterStyles.CounterMWarning + size == CounterSize.M && view == CounterView.Negative -> CounterStyles.CounterMNegative + size == CounterSize.M && view == CounterView.Black -> CounterStyles.CounterMBlack + size == CounterSize.M && view == CounterView.White -> CounterStyles.CounterMWhite + size == CounterSize.S && view == CounterView.Default -> CounterStyles.CounterSDefault + size == CounterSize.S && view == CounterView.Secondary -> CounterStyles.CounterSSecondary + size == CounterSize.S && view == CounterView.Accent -> CounterStyles.CounterSAccent + size == CounterSize.S && view == CounterView.Positive -> CounterStyles.CounterSPositive + size == CounterSize.S && view == CounterView.Warning -> CounterStyles.CounterSWarning + size == CounterSize.S && view == CounterView.Negative -> CounterStyles.CounterSNegative + size == CounterSize.S && view == CounterView.Black -> CounterStyles.CounterSBlack + size == CounterSize.S && view == CounterView.White -> CounterStyles.CounterSWhite + size == CounterSize.Xs && view == CounterView.Default -> CounterStyles.CounterXsDefault + size == CounterSize.Xs && view == CounterView.Secondary -> CounterStyles.CounterXsSecondary + size == CounterSize.Xs && view == CounterView.Accent -> CounterStyles.CounterXsAccent + size == CounterSize.Xs && view == CounterView.Positive -> CounterStyles.CounterXsPositive + size == CounterSize.Xs && view == CounterView.Warning -> CounterStyles.CounterXsWarning + size == CounterSize.Xs && view == CounterView.Negative -> CounterStyles.CounterXsNegative + size == CounterSize.Xs && view == CounterView.Black -> CounterStyles.CounterXsBlack + size == CounterSize.Xs && view == CounterView.White -> CounterStyles.CounterXsWhite + size == CounterSize.Xxs && view == CounterView.Default -> CounterStyles.CounterXxsDefault + size == CounterSize.Xxs && view == CounterView.Secondary -> CounterStyles.CounterXxsSecondary + size == CounterSize.Xxs && view == CounterView.Accent -> CounterStyles.CounterXxsAccent + size == CounterSize.Xxs && view == CounterView.Positive -> CounterStyles.CounterXxsPositive + size == CounterSize.Xxs && view == CounterView.Warning -> CounterStyles.CounterXxsWarning + size == CounterSize.Xxs && view == CounterView.Negative -> CounterStyles.CounterXxsNegative + size == CounterSize.Xxs && view == CounterView.Black -> CounterStyles.CounterXxsBlack + size == CounterSize.Xxs && view == CounterView.White -> CounterStyles.CounterXxsWhite + else -> error("Unsupported counter style combination") +} + +/** + * Возвращает [CounterStyle] для counter + */ +@Composable +public fun CounterStyles.Companion.style( + size: CounterSize = CounterSize.L, + view: CounterView = CounterView.Default, + modify: @Composable CounterStyleBuilder.() -> Unit = {}, +): CounterStyle = resolve(size, view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/divider/DividerStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/divider/DividerStylesCollection.kt index c6bdfbbe31..71fff0fbae 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/divider/DividerStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/divider/DividerStylesCollection.kt @@ -26,15 +26,33 @@ public enum class DividerStyles( public val key: String, ) { DividerDefault("Divider.Default"), + ; + + /** + * Typed API для подбора стиля divider + */ + public companion object } /** * Возвращает [DividerStyle] для [DividerStyles] */ @Composable -public fun DividerStyles.style(modifyAction: @Composable DividerStyleBuilder.() -> Unit = {}): DividerStyle { +public fun DividerStyles.style(modify: @Composable DividerStyleBuilder.() -> Unit = {}): DividerStyle { val builder = when (this) { DividerStyles.DividerDefault -> Divider.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [DividerStyles] для divider + */ +public fun DividerStyles.Companion.resolve(): DividerStyles = DividerStyles.DividerDefault + +/** + * Возвращает [DividerStyle] для divider + */ +@Composable +public fun DividerStyles.Companion.style(modify: @Composable DividerStyleBuilder.() -> Unit = {}): + DividerStyle = resolve().style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/editable/EditableStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/editable/EditableStylesCollection.kt index c92bbec9cf..9cbfbfc635 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/editable/EditableStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/editable/EditableStylesCollection.kt @@ -36,13 +36,36 @@ public enum class EditableStyles( EditableBodyS("Editable.BodyS"), EditableBodyXs("Editable.BodyXs"), EditableBodyXxs("Editable.BodyXxs"), + ; + + /** + * Typed API для подбора стиля editable + */ + public companion object +} + +/** + * Возможные значения свойства size для editable + */ +public enum class EditableSize { + H1, + H2, + H3, + H4, + H5, + H6, + BodyL, + BodyM, + BodyS, + BodyXs, + BodyXxs, } /** * Возвращает [EditableStyle] для [EditableStyles] */ @Composable -public fun EditableStyles.style(modifyAction: @Composable EditableStyleBuilder.() -> Unit = {}): EditableStyle { +public fun EditableStyles.style(modify: @Composable EditableStyleBuilder.() -> Unit = {}): EditableStyle { val builder = when (this) { EditableStyles.EditableH1 -> Editable.H1 EditableStyles.EditableH2 -> Editable.H2 @@ -56,5 +79,34 @@ public fun EditableStyles.style(modifyAction: @Composable EditableStyleBuilder.( EditableStyles.EditableBodyXs -> Editable.BodyXs EditableStyles.EditableBodyXxs -> Editable.BodyXxs } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [EditableStyles] для editable + */ +public fun EditableStyles.Companion.resolve(size: EditableSize = EditableSize.H1): EditableStyles = + when { + size == EditableSize.H1 -> EditableStyles.EditableH1 + size == EditableSize.H2 -> EditableStyles.EditableH2 + size == EditableSize.H3 -> EditableStyles.EditableH3 + size == EditableSize.H4 -> EditableStyles.EditableH4 + size == EditableSize.H5 -> EditableStyles.EditableH5 + size == EditableSize.H6 -> EditableStyles.EditableH6 + size == EditableSize.BodyL -> EditableStyles.EditableBodyL + size == EditableSize.BodyM -> EditableStyles.EditableBodyM + size == EditableSize.BodyS -> EditableStyles.EditableBodyS + size == EditableSize.BodyXs -> EditableStyles.EditableBodyXs + size == EditableSize.BodyXxs -> EditableStyles.EditableBodyXxs + else -> error("Unsupported editable style combination") + } + +/** + * Возвращает [EditableStyle] для editable + */ +@Composable +public fun EditableStyles.Companion.style( + size: EditableSize = EditableSize.H1, + modify: @Composable + EditableStyleBuilder.() -> Unit = {}, +): EditableStyle = resolve(size).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/formitem/FormItemStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/formitem/FormItemStylesCollection.kt index 2a1feefad3..a4cfd4a545 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/formitem/FormItemStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/formitem/FormItemStylesCollection.kt @@ -29,18 +29,55 @@ public enum class FormItemStyles( FormItemPositive("FormItem.Positive"), FormItemNegative("FormItem.Negative"), FormItemWarning("FormItem.Warning"), + ; + + /** + * Typed API для подбора стиля form-item + */ + public companion object +} + +/** + * Возможные значения свойства view для form-item + */ +public enum class FormItemView { + Default, + Positive, + Negative, + Warning, } /** * Возвращает [FormItemStyle] для [FormItemStyles] */ @Composable -public fun FormItemStyles.style(modifyAction: @Composable FormItemStyleBuilder.() -> Unit = {}): FormItemStyle { +public fun FormItemStyles.style(modify: @Composable FormItemStyleBuilder.() -> Unit = {}): FormItemStyle { val builder = when (this) { FormItemStyles.FormItemDefault -> FormItem.Default FormItemStyles.FormItemPositive -> FormItem.Positive FormItemStyles.FormItemNegative -> FormItem.Negative FormItemStyles.FormItemWarning -> FormItem.Warning } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [FormItemStyles] для form-item + */ +public fun FormItemStyles.Companion.resolve(view: FormItemView = FormItemView.Default): FormItemStyles = when { + view == FormItemView.Default -> FormItemStyles.FormItemDefault + view == FormItemView.Positive -> FormItemStyles.FormItemPositive + view == FormItemView.Negative -> FormItemStyles.FormItemNegative + view == FormItemView.Warning -> FormItemStyles.FormItemWarning + else -> error("Unsupported form-item style combination") +} + +/** + * Возвращает [FormItemStyle] для form-item + */ +@Composable +public fun FormItemStyles.Companion.style( + view: FormItemView = FormItemView.Default, + modify: @Composable FormItemStyleBuilder.() -> Unit = {}, +): FormItemStyle = + resolve(view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/iconbadge/IconBadgeStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/iconbadge/IconBadgeStylesCollection.kt index 2e74480da9..37acfdeeb1 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/iconbadge/IconBadgeStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/iconbadge/IconBadgeStylesCollection.kt @@ -193,13 +193,122 @@ public enum class IconBadgeStyles( IconBadgeTransparentXsPilledWarning("IconBadgeTransparent.Xs.Pilled.Warning"), IconBadgeTransparentXsPilledDark("IconBadgeTransparent.Xs.Pilled.Dark"), IconBadgeTransparentXsPilledLight("IconBadgeTransparent.Xs.Pilled.Light"), + ; + + /** + * Typed API для подбора стиля icon-badge-clear + */ + public object Clear + + /** + * Typed API для подбора стиля icon-badge-solid + */ + public object Solid + + /** + * Typed API для подбора стиля icon-badge-transparent + */ + public object Transparent +} + +/** + * Возможные значения свойства size для icon-badge-clear + */ +public enum class IconBadgeClearSize { + L, + M, + S, + Xs, +} + +/** + * Возможные значения свойства shape для icon-badge-clear + */ +public enum class IconBadgeClearShape { + Default, + Pilled, +} + +/** + * Возможные значения свойства view для icon-badge-clear + */ +public enum class IconBadgeClearView { + Default, + Accent, + Negative, + Positive, + Warning, + Dark, + Light, +} + +/** + * Возможные значения свойства size для icon-badge-solid + */ +public enum class IconBadgeSolidSize { + L, + M, + S, + Xs, +} + +/** + * Возможные значения свойства shape для icon-badge-solid + */ +public enum class IconBadgeSolidShape { + Default, + Pilled, +} + +/** + * Возможные значения свойства view для icon-badge-solid + */ +public enum class IconBadgeSolidView { + Default, + Accent, + Negative, + Positive, + Warning, + Dark, + Light, +} + +/** + * Возможные значения свойства size для icon-badge-transparent + */ +public enum class IconBadgeTransparentSize { + L, + M, + S, + Xs, +} + +/** + * Возможные значения свойства shape для icon-badge-transparent + */ +public enum class IconBadgeTransparentShape { + Default, + Pilled, +} + +/** + * Возможные значения свойства view для icon-badge-transparent + */ +public enum class IconBadgeTransparentView { + Default, + Accent, + Negative, + Positive, + Warning, + Dark, + Light, } /** * Возвращает [BadgeStyle] для [IconBadgeStyles] */ @Composable -public fun IconBadgeStyles.style(modifyAction: @Composable IconBadgeStyleBuilder.() -> Unit = {}): BadgeStyle { +public fun IconBadgeStyles.style(modify: @Composable IconBadgeStyleBuilder.() -> Unit = {}): BadgeStyle { val builder = when (this) { IconBadgeStyles.IconBadgeClearLDefault -> IconBadgeClear.L.Default IconBadgeStyles.IconBadgeClearLAccent -> IconBadgeClear.L.Accent @@ -372,5 +481,407 @@ public fun IconBadgeStyles.style(modifyAction: @Composable IconBadgeStyleBuilder IconBadgeStyles.IconBadgeTransparentXsPilledDark -> IconBadgeTransparent.Xs.Pilled.Dark IconBadgeStyles.IconBadgeTransparentXsPilledLight -> IconBadgeTransparent.Xs.Pilled.Light } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() +} + +/** + * Возвращает экземпляр [IconBadgeStyles] для icon-badge-clear + */ +public fun IconBadgeStyles.Clear.resolve( + size: IconBadgeClearSize = IconBadgeClearSize.L, + shape: IconBadgeClearShape = IconBadgeClearShape.Default, + view: IconBadgeClearView = IconBadgeClearView.Default, +): IconBadgeStyles = when { + size == IconBadgeClearSize.L && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Default -> IconBadgeStyles.IconBadgeClearLPilledDefault + size == IconBadgeClearSize.L && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Accent -> IconBadgeStyles.IconBadgeClearLPilledAccent + size == IconBadgeClearSize.L && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Negative -> IconBadgeStyles.IconBadgeClearLPilledNegative + size == IconBadgeClearSize.L && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Positive -> IconBadgeStyles.IconBadgeClearLPilledPositive + size == IconBadgeClearSize.L && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Warning -> IconBadgeStyles.IconBadgeClearLPilledWarning + size == IconBadgeClearSize.L && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Dark -> IconBadgeStyles.IconBadgeClearLPilledDark + size == IconBadgeClearSize.L && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Light -> IconBadgeStyles.IconBadgeClearLPilledLight + size == IconBadgeClearSize.M && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Default -> IconBadgeStyles.IconBadgeClearMPilledDefault + size == IconBadgeClearSize.M && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Accent -> IconBadgeStyles.IconBadgeClearMPilledAccent + size == IconBadgeClearSize.M && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Negative -> IconBadgeStyles.IconBadgeClearMPilledNegative + size == IconBadgeClearSize.M && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Positive -> IconBadgeStyles.IconBadgeClearMPilledPositive + size == IconBadgeClearSize.M && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Warning -> IconBadgeStyles.IconBadgeClearMPilledWarning + size == IconBadgeClearSize.M && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Dark -> IconBadgeStyles.IconBadgeClearMPilledDark + size == IconBadgeClearSize.M && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Light -> IconBadgeStyles.IconBadgeClearMPilledLight + size == IconBadgeClearSize.S && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Default -> IconBadgeStyles.IconBadgeClearSPilledDefault + size == IconBadgeClearSize.S && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Accent -> IconBadgeStyles.IconBadgeClearSPilledAccent + size == IconBadgeClearSize.S && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Negative -> IconBadgeStyles.IconBadgeClearSPilledNegative + size == IconBadgeClearSize.S && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Positive -> IconBadgeStyles.IconBadgeClearSPilledPositive + size == IconBadgeClearSize.S && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Warning -> IconBadgeStyles.IconBadgeClearSPilledWarning + size == IconBadgeClearSize.S && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Dark -> IconBadgeStyles.IconBadgeClearSPilledDark + size == IconBadgeClearSize.S && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Light -> IconBadgeStyles.IconBadgeClearSPilledLight + size == IconBadgeClearSize.Xs && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Default -> IconBadgeStyles.IconBadgeClearXsPilledDefault + size == IconBadgeClearSize.Xs && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Accent -> IconBadgeStyles.IconBadgeClearXsPilledAccent + size == IconBadgeClearSize.Xs && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Negative -> IconBadgeStyles.IconBadgeClearXsPilledNegative + size == IconBadgeClearSize.Xs && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Positive -> IconBadgeStyles.IconBadgeClearXsPilledPositive + size == IconBadgeClearSize.Xs && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Warning -> IconBadgeStyles.IconBadgeClearXsPilledWarning + size == IconBadgeClearSize.Xs && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Dark -> IconBadgeStyles.IconBadgeClearXsPilledDark + size == IconBadgeClearSize.Xs && shape == IconBadgeClearShape.Pilled && view == + IconBadgeClearView.Light -> IconBadgeStyles.IconBadgeClearXsPilledLight + size == IconBadgeClearSize.L && view == IconBadgeClearView.Default -> + IconBadgeStyles.IconBadgeClearLDefault + size == IconBadgeClearSize.L && view == IconBadgeClearView.Accent -> + IconBadgeStyles.IconBadgeClearLAccent + size == IconBadgeClearSize.L && view == IconBadgeClearView.Negative -> + IconBadgeStyles.IconBadgeClearLNegative + size == IconBadgeClearSize.L && view == IconBadgeClearView.Positive -> + IconBadgeStyles.IconBadgeClearLPositive + size == IconBadgeClearSize.L && view == IconBadgeClearView.Warning -> + IconBadgeStyles.IconBadgeClearLWarning + size == IconBadgeClearSize.L && view == IconBadgeClearView.Dark -> + IconBadgeStyles.IconBadgeClearLDark + size == IconBadgeClearSize.L && view == IconBadgeClearView.Light -> + IconBadgeStyles.IconBadgeClearLLight + size == IconBadgeClearSize.M && view == IconBadgeClearView.Default -> + IconBadgeStyles.IconBadgeClearMDefault + size == IconBadgeClearSize.M && view == IconBadgeClearView.Accent -> + IconBadgeStyles.IconBadgeClearMAccent + size == IconBadgeClearSize.M && view == IconBadgeClearView.Negative -> + IconBadgeStyles.IconBadgeClearMNegative + size == IconBadgeClearSize.M && view == IconBadgeClearView.Positive -> + IconBadgeStyles.IconBadgeClearMPositive + size == IconBadgeClearSize.M && view == IconBadgeClearView.Warning -> + IconBadgeStyles.IconBadgeClearMWarning + size == IconBadgeClearSize.M && view == IconBadgeClearView.Dark -> + IconBadgeStyles.IconBadgeClearMDark + size == IconBadgeClearSize.M && view == IconBadgeClearView.Light -> + IconBadgeStyles.IconBadgeClearMLight + size == IconBadgeClearSize.S && view == IconBadgeClearView.Default -> + IconBadgeStyles.IconBadgeClearSDefault + size == IconBadgeClearSize.S && view == IconBadgeClearView.Accent -> + IconBadgeStyles.IconBadgeClearSAccent + size == IconBadgeClearSize.S && view == IconBadgeClearView.Negative -> + IconBadgeStyles.IconBadgeClearSNegative + size == IconBadgeClearSize.S && view == IconBadgeClearView.Positive -> + IconBadgeStyles.IconBadgeClearSPositive + size == IconBadgeClearSize.S && view == IconBadgeClearView.Warning -> + IconBadgeStyles.IconBadgeClearSWarning + size == IconBadgeClearSize.S && view == IconBadgeClearView.Dark -> + IconBadgeStyles.IconBadgeClearSDark + size == IconBadgeClearSize.S && view == IconBadgeClearView.Light -> + IconBadgeStyles.IconBadgeClearSLight + size == IconBadgeClearSize.Xs && view == IconBadgeClearView.Default -> + IconBadgeStyles.IconBadgeClearXsDefault + size == IconBadgeClearSize.Xs && view == IconBadgeClearView.Accent -> + IconBadgeStyles.IconBadgeClearXsAccent + size == IconBadgeClearSize.Xs && view == IconBadgeClearView.Negative -> + IconBadgeStyles.IconBadgeClearXsNegative + size == IconBadgeClearSize.Xs && view == IconBadgeClearView.Positive -> + IconBadgeStyles.IconBadgeClearXsPositive + size == IconBadgeClearSize.Xs && view == IconBadgeClearView.Warning -> + IconBadgeStyles.IconBadgeClearXsWarning + size == IconBadgeClearSize.Xs && view == IconBadgeClearView.Dark -> + IconBadgeStyles.IconBadgeClearXsDark + size == IconBadgeClearSize.Xs && view == IconBadgeClearView.Light -> + IconBadgeStyles.IconBadgeClearXsLight + else -> error("Unsupported icon-badge-clear style combination") } + +/** + * Возвращает [BadgeStyle] для icon-badge-clear + */ +@Composable +public fun IconBadgeStyles.Clear.style( + size: IconBadgeClearSize = IconBadgeClearSize.L, + shape: IconBadgeClearShape = IconBadgeClearShape.Default, + view: IconBadgeClearView = IconBadgeClearView.Default, + modify: @Composable IconBadgeStyleBuilder.() -> Unit = {}, +): BadgeStyle = resolve(size, shape, view).style(modify) + +/** + * Возвращает экземпляр [IconBadgeStyles] для icon-badge-solid + */ +public fun IconBadgeStyles.Solid.resolve( + size: IconBadgeSolidSize = IconBadgeSolidSize.L, + shape: IconBadgeSolidShape = IconBadgeSolidShape.Default, + view: IconBadgeSolidView = IconBadgeSolidView.Default, +): IconBadgeStyles = when { + size == IconBadgeSolidSize.L && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Default -> IconBadgeStyles.IconBadgeSolidLPilledDefault + size == IconBadgeSolidSize.L && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Accent -> IconBadgeStyles.IconBadgeSolidLPilledAccent + size == IconBadgeSolidSize.L && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Negative -> IconBadgeStyles.IconBadgeSolidLPilledNegative + size == IconBadgeSolidSize.L && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Positive -> IconBadgeStyles.IconBadgeSolidLPilledPositive + size == IconBadgeSolidSize.L && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Warning -> IconBadgeStyles.IconBadgeSolidLPilledWarning + size == IconBadgeSolidSize.L && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Dark -> IconBadgeStyles.IconBadgeSolidLPilledDark + size == IconBadgeSolidSize.L && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Light -> IconBadgeStyles.IconBadgeSolidLPilledLight + size == IconBadgeSolidSize.M && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Default -> IconBadgeStyles.IconBadgeSolidMPilledDefault + size == IconBadgeSolidSize.M && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Accent -> IconBadgeStyles.IconBadgeSolidMPilledAccent + size == IconBadgeSolidSize.M && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Negative -> IconBadgeStyles.IconBadgeSolidMPilledNegative + size == IconBadgeSolidSize.M && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Positive -> IconBadgeStyles.IconBadgeSolidMPilledPositive + size == IconBadgeSolidSize.M && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Warning -> IconBadgeStyles.IconBadgeSolidMPilledWarning + size == IconBadgeSolidSize.M && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Dark -> IconBadgeStyles.IconBadgeSolidMPilledDark + size == IconBadgeSolidSize.M && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Light -> IconBadgeStyles.IconBadgeSolidMPilledLight + size == IconBadgeSolidSize.S && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Default -> IconBadgeStyles.IconBadgeSolidSPilledDefault + size == IconBadgeSolidSize.S && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Accent -> IconBadgeStyles.IconBadgeSolidSPilledAccent + size == IconBadgeSolidSize.S && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Negative -> IconBadgeStyles.IconBadgeSolidSPilledNegative + size == IconBadgeSolidSize.S && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Positive -> IconBadgeStyles.IconBadgeSolidSPilledPositive + size == IconBadgeSolidSize.S && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Warning -> IconBadgeStyles.IconBadgeSolidSPilledWarning + size == IconBadgeSolidSize.S && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Dark -> IconBadgeStyles.IconBadgeSolidSPilledDark + size == IconBadgeSolidSize.S && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Light -> IconBadgeStyles.IconBadgeSolidSPilledLight + size == IconBadgeSolidSize.Xs && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Default -> IconBadgeStyles.IconBadgeSolidXsPilledDefault + size == IconBadgeSolidSize.Xs && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Accent -> IconBadgeStyles.IconBadgeSolidXsPilledAccent + size == IconBadgeSolidSize.Xs && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Negative -> IconBadgeStyles.IconBadgeSolidXsPilledNegative + size == IconBadgeSolidSize.Xs && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Positive -> IconBadgeStyles.IconBadgeSolidXsPilledPositive + size == IconBadgeSolidSize.Xs && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Warning -> IconBadgeStyles.IconBadgeSolidXsPilledWarning + size == IconBadgeSolidSize.Xs && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Dark -> IconBadgeStyles.IconBadgeSolidXsPilledDark + size == IconBadgeSolidSize.Xs && shape == IconBadgeSolidShape.Pilled && view == + IconBadgeSolidView.Light -> IconBadgeStyles.IconBadgeSolidXsPilledLight + size == IconBadgeSolidSize.L && view == IconBadgeSolidView.Default -> + IconBadgeStyles.IconBadgeSolidLDefault + size == IconBadgeSolidSize.L && view == IconBadgeSolidView.Accent -> + IconBadgeStyles.IconBadgeSolidLAccent + size == IconBadgeSolidSize.L && view == IconBadgeSolidView.Negative -> + IconBadgeStyles.IconBadgeSolidLNegative + size == IconBadgeSolidSize.L && view == IconBadgeSolidView.Positive -> + IconBadgeStyles.IconBadgeSolidLPositive + size == IconBadgeSolidSize.L && view == IconBadgeSolidView.Warning -> + IconBadgeStyles.IconBadgeSolidLWarning + size == IconBadgeSolidSize.L && view == IconBadgeSolidView.Dark -> + IconBadgeStyles.IconBadgeSolidLDark + size == IconBadgeSolidSize.L && view == IconBadgeSolidView.Light -> + IconBadgeStyles.IconBadgeSolidLLight + size == IconBadgeSolidSize.M && view == IconBadgeSolidView.Default -> + IconBadgeStyles.IconBadgeSolidMDefault + size == IconBadgeSolidSize.M && view == IconBadgeSolidView.Accent -> + IconBadgeStyles.IconBadgeSolidMAccent + size == IconBadgeSolidSize.M && view == IconBadgeSolidView.Negative -> + IconBadgeStyles.IconBadgeSolidMNegative + size == IconBadgeSolidSize.M && view == IconBadgeSolidView.Positive -> + IconBadgeStyles.IconBadgeSolidMPositive + size == IconBadgeSolidSize.M && view == IconBadgeSolidView.Warning -> + IconBadgeStyles.IconBadgeSolidMWarning + size == IconBadgeSolidSize.M && view == IconBadgeSolidView.Dark -> + IconBadgeStyles.IconBadgeSolidMDark + size == IconBadgeSolidSize.M && view == IconBadgeSolidView.Light -> + IconBadgeStyles.IconBadgeSolidMLight + size == IconBadgeSolidSize.S && view == IconBadgeSolidView.Default -> + IconBadgeStyles.IconBadgeSolidSDefault + size == IconBadgeSolidSize.S && view == IconBadgeSolidView.Accent -> + IconBadgeStyles.IconBadgeSolidSAccent + size == IconBadgeSolidSize.S && view == IconBadgeSolidView.Negative -> + IconBadgeStyles.IconBadgeSolidSNegative + size == IconBadgeSolidSize.S && view == IconBadgeSolidView.Positive -> + IconBadgeStyles.IconBadgeSolidSPositive + size == IconBadgeSolidSize.S && view == IconBadgeSolidView.Warning -> + IconBadgeStyles.IconBadgeSolidSWarning + size == IconBadgeSolidSize.S && view == IconBadgeSolidView.Dark -> + IconBadgeStyles.IconBadgeSolidSDark + size == IconBadgeSolidSize.S && view == IconBadgeSolidView.Light -> + IconBadgeStyles.IconBadgeSolidSLight + size == IconBadgeSolidSize.Xs && view == IconBadgeSolidView.Default -> + IconBadgeStyles.IconBadgeSolidXsDefault + size == IconBadgeSolidSize.Xs && view == IconBadgeSolidView.Accent -> + IconBadgeStyles.IconBadgeSolidXsAccent + size == IconBadgeSolidSize.Xs && view == IconBadgeSolidView.Negative -> + IconBadgeStyles.IconBadgeSolidXsNegative + size == IconBadgeSolidSize.Xs && view == IconBadgeSolidView.Positive -> + IconBadgeStyles.IconBadgeSolidXsPositive + size == IconBadgeSolidSize.Xs && view == IconBadgeSolidView.Warning -> + IconBadgeStyles.IconBadgeSolidXsWarning + size == IconBadgeSolidSize.Xs && view == IconBadgeSolidView.Dark -> + IconBadgeStyles.IconBadgeSolidXsDark + size == IconBadgeSolidSize.Xs && view == IconBadgeSolidView.Light -> + IconBadgeStyles.IconBadgeSolidXsLight + else -> error("Unsupported icon-badge-solid style combination") +} + +/** + * Возвращает [BadgeStyle] для icon-badge-solid + */ +@Composable +public fun IconBadgeStyles.Solid.style( + size: IconBadgeSolidSize = IconBadgeSolidSize.L, + shape: IconBadgeSolidShape = IconBadgeSolidShape.Default, + view: IconBadgeSolidView = IconBadgeSolidView.Default, + modify: @Composable IconBadgeStyleBuilder.() -> Unit = {}, +): BadgeStyle = resolve(size, shape, view).style(modify) + +/** + * Возвращает экземпляр [IconBadgeStyles] для icon-badge-transparent + */ +public fun IconBadgeStyles.Transparent.resolve( + size: IconBadgeTransparentSize = IconBadgeTransparentSize.L, + shape: IconBadgeTransparentShape = IconBadgeTransparentShape.Default, + view: IconBadgeTransparentView = IconBadgeTransparentView.Default, +): IconBadgeStyles = when { + size == IconBadgeTransparentSize.L && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Default -> IconBadgeStyles.IconBadgeTransparentLPilledDefault + size == IconBadgeTransparentSize.L && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Accent -> IconBadgeStyles.IconBadgeTransparentLPilledAccent + size == IconBadgeTransparentSize.L && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Negative -> IconBadgeStyles.IconBadgeTransparentLPilledNegative + size == IconBadgeTransparentSize.L && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Positive -> IconBadgeStyles.IconBadgeTransparentLPilledPositive + size == IconBadgeTransparentSize.L && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Warning -> IconBadgeStyles.IconBadgeTransparentLPilledWarning + size == IconBadgeTransparentSize.L && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Dark -> IconBadgeStyles.IconBadgeTransparentLPilledDark + size == IconBadgeTransparentSize.L && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Light -> IconBadgeStyles.IconBadgeTransparentLPilledLight + size == IconBadgeTransparentSize.M && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Default -> IconBadgeStyles.IconBadgeTransparentMPilledDefault + size == IconBadgeTransparentSize.M && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Accent -> IconBadgeStyles.IconBadgeTransparentMPilledAccent + size == IconBadgeTransparentSize.M && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Negative -> IconBadgeStyles.IconBadgeTransparentMPilledNegative + size == IconBadgeTransparentSize.M && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Positive -> IconBadgeStyles.IconBadgeTransparentMPilledPositive + size == IconBadgeTransparentSize.M && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Warning -> IconBadgeStyles.IconBadgeTransparentMPilledWarning + size == IconBadgeTransparentSize.M && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Dark -> IconBadgeStyles.IconBadgeTransparentMPilledDark + size == IconBadgeTransparentSize.M && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Light -> IconBadgeStyles.IconBadgeTransparentMPilledLight + size == IconBadgeTransparentSize.S && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Default -> IconBadgeStyles.IconBadgeTransparentSPilledDefault + size == IconBadgeTransparentSize.S && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Accent -> IconBadgeStyles.IconBadgeTransparentSPilledAccent + size == IconBadgeTransparentSize.S && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Negative -> IconBadgeStyles.IconBadgeTransparentSPilledNegative + size == IconBadgeTransparentSize.S && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Positive -> IconBadgeStyles.IconBadgeTransparentSPilledPositive + size == IconBadgeTransparentSize.S && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Warning -> IconBadgeStyles.IconBadgeTransparentSPilledWarning + size == IconBadgeTransparentSize.S && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Dark -> IconBadgeStyles.IconBadgeTransparentSPilledDark + size == IconBadgeTransparentSize.S && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Light -> IconBadgeStyles.IconBadgeTransparentSPilledLight + size == IconBadgeTransparentSize.Xs && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Default -> IconBadgeStyles.IconBadgeTransparentXsPilledDefault + size == IconBadgeTransparentSize.Xs && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Accent -> IconBadgeStyles.IconBadgeTransparentXsPilledAccent + size == IconBadgeTransparentSize.Xs && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Negative -> IconBadgeStyles.IconBadgeTransparentXsPilledNegative + size == IconBadgeTransparentSize.Xs && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Positive -> IconBadgeStyles.IconBadgeTransparentXsPilledPositive + size == IconBadgeTransparentSize.Xs && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Warning -> IconBadgeStyles.IconBadgeTransparentXsPilledWarning + size == IconBadgeTransparentSize.Xs && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Dark -> IconBadgeStyles.IconBadgeTransparentXsPilledDark + size == IconBadgeTransparentSize.Xs && shape == IconBadgeTransparentShape.Pilled && view == + IconBadgeTransparentView.Light -> IconBadgeStyles.IconBadgeTransparentXsPilledLight + size == IconBadgeTransparentSize.L && view == IconBadgeTransparentView.Default -> + IconBadgeStyles.IconBadgeTransparentLDefault + size == IconBadgeTransparentSize.L && view == IconBadgeTransparentView.Accent -> + IconBadgeStyles.IconBadgeTransparentLAccent + size == IconBadgeTransparentSize.L && view == IconBadgeTransparentView.Negative -> + IconBadgeStyles.IconBadgeTransparentLNegative + size == IconBadgeTransparentSize.L && view == IconBadgeTransparentView.Positive -> + IconBadgeStyles.IconBadgeTransparentLPositive + size == IconBadgeTransparentSize.L && view == IconBadgeTransparentView.Warning -> + IconBadgeStyles.IconBadgeTransparentLWarning + size == IconBadgeTransparentSize.L && view == IconBadgeTransparentView.Dark -> + IconBadgeStyles.IconBadgeTransparentLDark + size == IconBadgeTransparentSize.L && view == IconBadgeTransparentView.Light -> + IconBadgeStyles.IconBadgeTransparentLLight + size == IconBadgeTransparentSize.M && view == IconBadgeTransparentView.Default -> + IconBadgeStyles.IconBadgeTransparentMDefault + size == IconBadgeTransparentSize.M && view == IconBadgeTransparentView.Accent -> + IconBadgeStyles.IconBadgeTransparentMAccent + size == IconBadgeTransparentSize.M && view == IconBadgeTransparentView.Negative -> + IconBadgeStyles.IconBadgeTransparentMNegative + size == IconBadgeTransparentSize.M && view == IconBadgeTransparentView.Positive -> + IconBadgeStyles.IconBadgeTransparentMPositive + size == IconBadgeTransparentSize.M && view == IconBadgeTransparentView.Warning -> + IconBadgeStyles.IconBadgeTransparentMWarning + size == IconBadgeTransparentSize.M && view == IconBadgeTransparentView.Dark -> + IconBadgeStyles.IconBadgeTransparentMDark + size == IconBadgeTransparentSize.M && view == IconBadgeTransparentView.Light -> + IconBadgeStyles.IconBadgeTransparentMLight + size == IconBadgeTransparentSize.S && view == IconBadgeTransparentView.Default -> + IconBadgeStyles.IconBadgeTransparentSDefault + size == IconBadgeTransparentSize.S && view == IconBadgeTransparentView.Accent -> + IconBadgeStyles.IconBadgeTransparentSAccent + size == IconBadgeTransparentSize.S && view == IconBadgeTransparentView.Negative -> + IconBadgeStyles.IconBadgeTransparentSNegative + size == IconBadgeTransparentSize.S && view == IconBadgeTransparentView.Positive -> + IconBadgeStyles.IconBadgeTransparentSPositive + size == IconBadgeTransparentSize.S && view == IconBadgeTransparentView.Warning -> + IconBadgeStyles.IconBadgeTransparentSWarning + size == IconBadgeTransparentSize.S && view == IconBadgeTransparentView.Dark -> + IconBadgeStyles.IconBadgeTransparentSDark + size == IconBadgeTransparentSize.S && view == IconBadgeTransparentView.Light -> + IconBadgeStyles.IconBadgeTransparentSLight + size == IconBadgeTransparentSize.Xs && view == IconBadgeTransparentView.Default -> + IconBadgeStyles.IconBadgeTransparentXsDefault + size == IconBadgeTransparentSize.Xs && view == IconBadgeTransparentView.Accent -> + IconBadgeStyles.IconBadgeTransparentXsAccent + size == IconBadgeTransparentSize.Xs && view == IconBadgeTransparentView.Negative -> + IconBadgeStyles.IconBadgeTransparentXsNegative + size == IconBadgeTransparentSize.Xs && view == IconBadgeTransparentView.Positive -> + IconBadgeStyles.IconBadgeTransparentXsPositive + size == IconBadgeTransparentSize.Xs && view == IconBadgeTransparentView.Warning -> + IconBadgeStyles.IconBadgeTransparentXsWarning + size == IconBadgeTransparentSize.Xs && view == IconBadgeTransparentView.Dark -> + IconBadgeStyles.IconBadgeTransparentXsDark + size == IconBadgeTransparentSize.Xs && view == IconBadgeTransparentView.Light -> + IconBadgeStyles.IconBadgeTransparentXsLight + else -> error("Unsupported icon-badge-transparent style combination") +} + +/** + * Возвращает [BadgeStyle] для icon-badge-transparent + */ +@Composable +public fun IconBadgeStyles.Transparent.style( + size: IconBadgeTransparentSize = IconBadgeTransparentSize.L, + shape: IconBadgeTransparentShape = IconBadgeTransparentShape.Default, + view: IconBadgeTransparentView = IconBadgeTransparentView.Default, + modify: @Composable IconBadgeStyleBuilder.() -> Unit = {}, +): BadgeStyle = resolve(size, shape, view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/iconbutton/IconButtonStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/iconbutton/IconButtonStylesCollection.kt index 24839261f3..4bfb746b28 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/iconbutton/IconButtonStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/iconbutton/IconButtonStylesCollection.kt @@ -53,13 +53,42 @@ public enum class IconButtonStyles( IconButtonXsWarning("IconButton.Xs.Warning"), IconButtonXsAccent("IconButton.Xs.Accent"), IconButtonXsClear("IconButton.Xs.Clear"), + ; + + /** + * Typed API для подбора стиля icon-button + */ + public companion object +} + +/** + * Возможные значения свойства size для icon-button + */ +public enum class IconButtonSize { + L, + M, + S, + Xs, +} + +/** + * Возможные значения свойства view для icon-button + */ +public enum class IconButtonView { + Default, + Secondary, + Dark, + Negative, + Warning, + Accent, + Clear, } /** * Возвращает [ButtonStyle] для [IconButtonStyles] */ @Composable -public fun IconButtonStyles.style(modifyAction: @Composable IconButtonStyleBuilder.() -> Unit = {}): ButtonStyle { +public fun IconButtonStyles.style(modify: @Composable IconButtonStyleBuilder.() -> Unit = {}): ButtonStyle { val builder = when (this) { IconButtonStyles.IconButtonLDefault -> IconButton.L.Default IconButtonStyles.IconButtonLSecondary -> IconButton.L.Secondary @@ -90,5 +119,70 @@ public fun IconButtonStyles.style(modifyAction: @Composable IconButtonStyleBuild IconButtonStyles.IconButtonXsAccent -> IconButton.Xs.Accent IconButtonStyles.IconButtonXsClear -> IconButton.Xs.Clear } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [IconButtonStyles] для icon-button + */ +public fun IconButtonStyles.Companion.resolve( + size: IconButtonSize = IconButtonSize.L, + view: IconButtonView = IconButtonView.Default, +): IconButtonStyles = when { + size == IconButtonSize.L && view == IconButtonView.Default -> + IconButtonStyles.IconButtonLDefault + size == IconButtonSize.L && view == IconButtonView.Secondary -> + IconButtonStyles.IconButtonLSecondary + size == IconButtonSize.L && view == IconButtonView.Dark -> IconButtonStyles.IconButtonLDark + size == IconButtonSize.L && view == IconButtonView.Negative -> + IconButtonStyles.IconButtonLNegative + size == IconButtonSize.L && view == IconButtonView.Warning -> + IconButtonStyles.IconButtonLWarning + size == IconButtonSize.L && view == IconButtonView.Accent -> IconButtonStyles.IconButtonLAccent + size == IconButtonSize.L && view == IconButtonView.Clear -> IconButtonStyles.IconButtonLClear + size == IconButtonSize.M && view == IconButtonView.Default -> + IconButtonStyles.IconButtonMDefault + size == IconButtonSize.M && view == IconButtonView.Secondary -> + IconButtonStyles.IconButtonMSecondary + size == IconButtonSize.M && view == IconButtonView.Dark -> IconButtonStyles.IconButtonMDark + size == IconButtonSize.M && view == IconButtonView.Negative -> + IconButtonStyles.IconButtonMNegative + size == IconButtonSize.M && view == IconButtonView.Warning -> + IconButtonStyles.IconButtonMWarning + size == IconButtonSize.M && view == IconButtonView.Accent -> IconButtonStyles.IconButtonMAccent + size == IconButtonSize.M && view == IconButtonView.Clear -> IconButtonStyles.IconButtonMClear + size == IconButtonSize.S && view == IconButtonView.Default -> + IconButtonStyles.IconButtonSDefault + size == IconButtonSize.S && view == IconButtonView.Secondary -> + IconButtonStyles.IconButtonSSecondary + size == IconButtonSize.S && view == IconButtonView.Dark -> IconButtonStyles.IconButtonSDark + size == IconButtonSize.S && view == IconButtonView.Negative -> + IconButtonStyles.IconButtonSNegative + size == IconButtonSize.S && view == IconButtonView.Warning -> + IconButtonStyles.IconButtonSWarning + size == IconButtonSize.S && view == IconButtonView.Accent -> IconButtonStyles.IconButtonSAccent + size == IconButtonSize.S && view == IconButtonView.Clear -> IconButtonStyles.IconButtonSClear + size == IconButtonSize.Xs && view == IconButtonView.Default -> + IconButtonStyles.IconButtonXsDefault + size == IconButtonSize.Xs && view == IconButtonView.Secondary -> + IconButtonStyles.IconButtonXsSecondary + size == IconButtonSize.Xs && view == IconButtonView.Dark -> IconButtonStyles.IconButtonXsDark + size == IconButtonSize.Xs && view == IconButtonView.Negative -> + IconButtonStyles.IconButtonXsNegative + size == IconButtonSize.Xs && view == IconButtonView.Warning -> + IconButtonStyles.IconButtonXsWarning + size == IconButtonSize.Xs && view == IconButtonView.Accent -> + IconButtonStyles.IconButtonXsAccent + size == IconButtonSize.Xs && view == IconButtonView.Clear -> IconButtonStyles.IconButtonXsClear + else -> error("Unsupported icon-button style combination") +} + +/** + * Возвращает [ButtonStyle] для icon-button + */ +@Composable +public fun IconButtonStyles.Companion.style( + size: IconButtonSize = IconButtonSize.L, + view: IconButtonView = IconButtonView.Default, + modify: @Composable IconButtonStyleBuilder.() -> Unit = {}, +): ButtonStyle = resolve(size, view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/image/ImageStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/image/ImageStylesCollection.kt index bfb95fd0f2..197fcfc7f2 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/image/ImageStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/image/ImageStylesCollection.kt @@ -32,13 +32,32 @@ public enum class ImageStyles( ImageRatio16x9("Image.Ratio16x9"), ImageRatio4x3("Image.Ratio4x3"), ImageRatio1x1("Image.Ratio1x1"), + ; + + /** + * Typed API для подбора стиля image + */ + public companion object +} + +/** + * Возможные значения свойства ratio для image + */ +public enum class ImageRatio { + Ratio12, + Ratio916, + Ratio34, + Ratio21, + Ratio169, + Ratio43, + Ratio11, } /** * Возвращает [ImageStyle] для [ImageStyles] */ @Composable -public fun ImageStyles.style(modifyAction: @Composable ImageStyleBuilder.() -> Unit = {}): ImageStyle { +public fun ImageStyles.style(modify: @Composable ImageStyleBuilder.() -> Unit = {}): ImageStyle { val builder = when (this) { ImageStyles.ImageRatio1x2 -> Image.Ratio1x2 ImageStyles.ImageRatio9x16 -> Image.Ratio9x16 @@ -48,5 +67,29 @@ public fun ImageStyles.style(modifyAction: @Composable ImageStyleBuilder.() -> U ImageStyles.ImageRatio4x3 -> Image.Ratio4x3 ImageStyles.ImageRatio1x1 -> Image.Ratio1x1 } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [ImageStyles] для image + */ +public fun ImageStyles.Companion.resolve(ratio: ImageRatio = ImageRatio.Ratio12): ImageStyles = when { + ratio == ImageRatio.Ratio12 -> ImageStyles.ImageRatio1x2 + ratio == ImageRatio.Ratio916 -> ImageStyles.ImageRatio9x16 + ratio == ImageRatio.Ratio34 -> ImageStyles.ImageRatio3x4 + ratio == ImageRatio.Ratio21 -> ImageStyles.ImageRatio2x1 + ratio == ImageRatio.Ratio169 -> ImageStyles.ImageRatio16x9 + ratio == ImageRatio.Ratio43 -> ImageStyles.ImageRatio4x3 + ratio == ImageRatio.Ratio11 -> ImageStyles.ImageRatio1x1 + else -> error("Unsupported image style combination") +} + +/** + * Возвращает [ImageStyle] для image + */ +@Composable +public fun ImageStyles.Companion.style( + ratio: ImageRatio = ImageRatio.Ratio12, + modify: @Composable + ImageStyleBuilder.() -> Unit = {}, +): ImageStyle = resolve(ratio).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/indicator/IndicatorStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/indicator/IndicatorStylesCollection.kt index 8b8615c699..0936ad8971 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/indicator/IndicatorStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/indicator/IndicatorStylesCollection.kt @@ -52,13 +52,43 @@ public enum class IndicatorStyles( IndicatorSDark("Indicator.S.Dark"), IndicatorSBlack("Indicator.S.Black"), IndicatorSWhite("Indicator.S.White"), + ; + + /** + * Typed API для подбора стиля indicator + */ + public companion object +} + +/** + * Возможные значения свойства size для indicator + */ +public enum class IndicatorSize { + L, + M, + S, +} + +/** + * Возможные значения свойства view для indicator + */ +public enum class IndicatorView { + Default, + Accent, + Inactive, + Positive, + Warning, + Negative, + Dark, + Black, + White, } /** * Возвращает [IndicatorStyle] для [IndicatorStyles] */ @Composable -public fun IndicatorStyles.style(modifyAction: @Composable IndicatorStyleBuilder.() -> Unit = {}): IndicatorStyle { +public fun IndicatorStyles.style(modify: @Composable IndicatorStyleBuilder.() -> Unit = {}): IndicatorStyle { val builder = when (this) { IndicatorStyles.IndicatorLDefault -> Indicator.L.Default IndicatorStyles.IndicatorLAccent -> Indicator.L.Accent @@ -88,5 +118,52 @@ public fun IndicatorStyles.style(modifyAction: @Composable IndicatorStyleBuilder IndicatorStyles.IndicatorSBlack -> Indicator.S.Black IndicatorStyles.IndicatorSWhite -> Indicator.S.White } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [IndicatorStyles] для indicator + */ +public fun IndicatorStyles.Companion.resolve( + size: IndicatorSize = IndicatorSize.L, + view: IndicatorView = IndicatorView.Default, +): IndicatorStyles = when { + size == IndicatorSize.L && view == IndicatorView.Default -> IndicatorStyles.IndicatorLDefault + size == IndicatorSize.L && view == IndicatorView.Accent -> IndicatorStyles.IndicatorLAccent + size == IndicatorSize.L && view == IndicatorView.Inactive -> IndicatorStyles.IndicatorLInactive + size == IndicatorSize.L && view == IndicatorView.Positive -> IndicatorStyles.IndicatorLPositive + size == IndicatorSize.L && view == IndicatorView.Warning -> IndicatorStyles.IndicatorLWarning + size == IndicatorSize.L && view == IndicatorView.Negative -> IndicatorStyles.IndicatorLNegative + size == IndicatorSize.L && view == IndicatorView.Dark -> IndicatorStyles.IndicatorLDark + size == IndicatorSize.L && view == IndicatorView.Black -> IndicatorStyles.IndicatorLBlack + size == IndicatorSize.L && view == IndicatorView.White -> IndicatorStyles.IndicatorLWhite + size == IndicatorSize.M && view == IndicatorView.Default -> IndicatorStyles.IndicatorMDefault + size == IndicatorSize.M && view == IndicatorView.Accent -> IndicatorStyles.IndicatorMAccent + size == IndicatorSize.M && view == IndicatorView.Inactive -> IndicatorStyles.IndicatorMInactive + size == IndicatorSize.M && view == IndicatorView.Positive -> IndicatorStyles.IndicatorMPositive + size == IndicatorSize.M && view == IndicatorView.Warning -> IndicatorStyles.IndicatorMWarning + size == IndicatorSize.M && view == IndicatorView.Negative -> IndicatorStyles.IndicatorMNegative + size == IndicatorSize.M && view == IndicatorView.Dark -> IndicatorStyles.IndicatorMDark + size == IndicatorSize.M && view == IndicatorView.Black -> IndicatorStyles.IndicatorMBlack + size == IndicatorSize.M && view == IndicatorView.White -> IndicatorStyles.IndicatorMWhite + size == IndicatorSize.S && view == IndicatorView.Default -> IndicatorStyles.IndicatorSDefault + size == IndicatorSize.S && view == IndicatorView.Accent -> IndicatorStyles.IndicatorSAccent + size == IndicatorSize.S && view == IndicatorView.Inactive -> IndicatorStyles.IndicatorSInactive + size == IndicatorSize.S && view == IndicatorView.Positive -> IndicatorStyles.IndicatorSPositive + size == IndicatorSize.S && view == IndicatorView.Warning -> IndicatorStyles.IndicatorSWarning + size == IndicatorSize.S && view == IndicatorView.Negative -> IndicatorStyles.IndicatorSNegative + size == IndicatorSize.S && view == IndicatorView.Dark -> IndicatorStyles.IndicatorSDark + size == IndicatorSize.S && view == IndicatorView.Black -> IndicatorStyles.IndicatorSBlack + size == IndicatorSize.S && view == IndicatorView.White -> IndicatorStyles.IndicatorSWhite + else -> error("Unsupported indicator style combination") +} + +/** + * Возвращает [IndicatorStyle] для indicator + */ +@Composable +public fun IndicatorStyles.Companion.style( + size: IndicatorSize = IndicatorSize.L, + view: IndicatorView = IndicatorView.Default, + modify: @Composable IndicatorStyleBuilder.() -> Unit = {}, +): IndicatorStyle = resolve(size, view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/linkbutton/LinkButtonStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/linkbutton/LinkButtonStylesCollection.kt index 67e15d155e..c9a522e413 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/linkbutton/LinkButtonStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/linkbutton/LinkButtonStylesCollection.kt @@ -67,13 +67,44 @@ public enum class LinkButtonStyles( LinkButtonXxsNegative("LinkButton.Xxs.Negative"), LinkButtonXxsWarning("LinkButton.Xxs.Warning"), LinkButtonXxsInfo("LinkButton.Xxs.Info"), + ; + + /** + * Typed API для подбора стиля link-button + */ + public companion object +} + +/** + * Возможные значения свойства size для link-button + */ +public enum class LinkButtonSize { + Xl, + L, + M, + S, + Xs, + Xxs, +} + +/** + * Возможные значения свойства view для link-button + */ +public enum class LinkButtonView { + Default, + Secondary, + Accent, + Positive, + Negative, + Warning, + Info, } /** * Возвращает [ButtonStyle] для [LinkButtonStyles] */ @Composable -public fun LinkButtonStyles.style(modifyAction: @Composable LinkButtonStyleBuilder.() -> Unit = {}): ButtonStyle { +public fun LinkButtonStyles.style(modify: @Composable LinkButtonStyleBuilder.() -> Unit = {}): ButtonStyle { val builder = when (this) { LinkButtonStyles.LinkButtonXlDefault -> LinkButton.Xl.Default LinkButtonStyles.LinkButtonXlSecondary -> LinkButton.Xl.Secondary @@ -118,5 +149,100 @@ public fun LinkButtonStyles.style(modifyAction: @Composable LinkButtonStyleBuild LinkButtonStyles.LinkButtonXxsWarning -> LinkButton.Xxs.Warning LinkButtonStyles.LinkButtonXxsInfo -> LinkButton.Xxs.Info } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [LinkButtonStyles] для link-button + */ +public fun LinkButtonStyles.Companion.resolve( + size: LinkButtonSize = LinkButtonSize.Xl, + view: LinkButtonView = LinkButtonView.Default, +): LinkButtonStyles = when { + size == LinkButtonSize.Xl && view == LinkButtonView.Default -> + LinkButtonStyles.LinkButtonXlDefault + size == LinkButtonSize.Xl && view == LinkButtonView.Secondary -> + LinkButtonStyles.LinkButtonXlSecondary + size == LinkButtonSize.Xl && view == LinkButtonView.Accent -> + LinkButtonStyles.LinkButtonXlAccent + size == LinkButtonSize.Xl && view == LinkButtonView.Positive -> + LinkButtonStyles.LinkButtonXlPositive + size == LinkButtonSize.Xl && view == LinkButtonView.Negative -> + LinkButtonStyles.LinkButtonXlNegative + size == LinkButtonSize.Xl && view == LinkButtonView.Warning -> + LinkButtonStyles.LinkButtonXlWarning + size == LinkButtonSize.Xl && view == LinkButtonView.Info -> LinkButtonStyles.LinkButtonXlInfo + size == LinkButtonSize.L && view == LinkButtonView.Default -> + LinkButtonStyles.LinkButtonLDefault + size == LinkButtonSize.L && view == LinkButtonView.Secondary -> + LinkButtonStyles.LinkButtonLSecondary + size == LinkButtonSize.L && view == LinkButtonView.Accent -> LinkButtonStyles.LinkButtonLAccent + size == LinkButtonSize.L && view == LinkButtonView.Positive -> + LinkButtonStyles.LinkButtonLPositive + size == LinkButtonSize.L && view == LinkButtonView.Negative -> + LinkButtonStyles.LinkButtonLNegative + size == LinkButtonSize.L && view == LinkButtonView.Warning -> + LinkButtonStyles.LinkButtonLWarning + size == LinkButtonSize.L && view == LinkButtonView.Info -> LinkButtonStyles.LinkButtonLInfo + size == LinkButtonSize.M && view == LinkButtonView.Default -> + LinkButtonStyles.LinkButtonMDefault + size == LinkButtonSize.M && view == LinkButtonView.Secondary -> + LinkButtonStyles.LinkButtonMSecondary + size == LinkButtonSize.M && view == LinkButtonView.Accent -> LinkButtonStyles.LinkButtonMAccent + size == LinkButtonSize.M && view == LinkButtonView.Positive -> + LinkButtonStyles.LinkButtonMPositive + size == LinkButtonSize.M && view == LinkButtonView.Negative -> + LinkButtonStyles.LinkButtonMNegative + size == LinkButtonSize.M && view == LinkButtonView.Warning -> + LinkButtonStyles.LinkButtonMWarning + size == LinkButtonSize.M && view == LinkButtonView.Info -> LinkButtonStyles.LinkButtonMInfo + size == LinkButtonSize.S && view == LinkButtonView.Default -> + LinkButtonStyles.LinkButtonSDefault + size == LinkButtonSize.S && view == LinkButtonView.Secondary -> + LinkButtonStyles.LinkButtonSSecondary + size == LinkButtonSize.S && view == LinkButtonView.Accent -> LinkButtonStyles.LinkButtonSAccent + size == LinkButtonSize.S && view == LinkButtonView.Positive -> + LinkButtonStyles.LinkButtonSPositive + size == LinkButtonSize.S && view == LinkButtonView.Negative -> + LinkButtonStyles.LinkButtonSNegative + size == LinkButtonSize.S && view == LinkButtonView.Warning -> + LinkButtonStyles.LinkButtonSWarning + size == LinkButtonSize.S && view == LinkButtonView.Info -> LinkButtonStyles.LinkButtonSInfo + size == LinkButtonSize.Xs && view == LinkButtonView.Default -> + LinkButtonStyles.LinkButtonXsDefault + size == LinkButtonSize.Xs && view == LinkButtonView.Secondary -> + LinkButtonStyles.LinkButtonXsSecondary + size == LinkButtonSize.Xs && view == LinkButtonView.Accent -> + LinkButtonStyles.LinkButtonXsAccent + size == LinkButtonSize.Xs && view == LinkButtonView.Positive -> + LinkButtonStyles.LinkButtonXsPositive + size == LinkButtonSize.Xs && view == LinkButtonView.Negative -> + LinkButtonStyles.LinkButtonXsNegative + size == LinkButtonSize.Xs && view == LinkButtonView.Warning -> + LinkButtonStyles.LinkButtonXsWarning + size == LinkButtonSize.Xs && view == LinkButtonView.Info -> LinkButtonStyles.LinkButtonXsInfo + size == LinkButtonSize.Xxs && view == LinkButtonView.Default -> + LinkButtonStyles.LinkButtonXxsDefault + size == LinkButtonSize.Xxs && view == LinkButtonView.Secondary -> + LinkButtonStyles.LinkButtonXxsSecondary + size == LinkButtonSize.Xxs && view == LinkButtonView.Accent -> + LinkButtonStyles.LinkButtonXxsAccent + size == LinkButtonSize.Xxs && view == LinkButtonView.Positive -> + LinkButtonStyles.LinkButtonXxsPositive + size == LinkButtonSize.Xxs && view == LinkButtonView.Negative -> + LinkButtonStyles.LinkButtonXxsNegative + size == LinkButtonSize.Xxs && view == LinkButtonView.Warning -> + LinkButtonStyles.LinkButtonXxsWarning + size == LinkButtonSize.Xxs && view == LinkButtonView.Info -> LinkButtonStyles.LinkButtonXxsInfo + else -> error("Unsupported link-button style combination") +} + +/** + * Возвращает [ButtonStyle] для link-button + */ +@Composable +public fun LinkButtonStyles.Companion.style( + size: LinkButtonSize = LinkButtonSize.Xl, + view: LinkButtonView = LinkButtonView.Default, + modify: @Composable LinkButtonStyleBuilder.() -> Unit = {}, +): ButtonStyle = resolve(size, view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/list/ListStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/list/ListStylesCollection.kt index fad4e9ac42..28b5e59aa8 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/list/ListStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/list/ListStylesCollection.kt @@ -15,6 +15,7 @@ import com.sdds.compose.uikit.ListStyle import com.sdds.compose.uikit.ListStyleBuilder import com.sdds.compose.uikit.style.modify import com.sdds.compose.uikit.style.style +import kotlin.Boolean import kotlin.String import kotlin.Suppress import kotlin.Unit @@ -30,13 +31,38 @@ public enum class ListStyles( ListSNoBackgroundHasItemBackground("List.S.NoBackground.HasItemBackground"), ListSHasBackground("List.S.HasBackground"), ListNumberedS("ListNumbered.S"), + ; + + /** + * Typed API для подбора стиля list + */ + public object Default + + /** + * Typed API для подбора стиля list-numbered + */ + public object Numbered +} + +/** + * Возможные значения свойства size для list + */ +public enum class ListDefaultSize { + S, +} + +/** + * Возможные значения свойства size для list-numbered + */ +public enum class ListNumberedSize { + S, } /** * Возвращает [ListStyle] для [ListStyles] */ @Composable -public fun ListStyles.style(modifyAction: @Composable ListStyleBuilder.() -> Unit = {}): ListStyle { +public fun ListStyles.style(modify: @Composable ListStyleBuilder.() -> Unit = {}): ListStyle { val builder = when (this) { ListStyles.ListS -> List.S ListStyles.ListSNoBackground -> List.S.NoBackground @@ -44,5 +70,51 @@ public fun ListStyles.style(modifyAction: @Composable ListStyleBuilder.() -> Uni ListStyles.ListSHasBackground -> List.S.HasBackground ListStyles.ListNumberedS -> ListNumbered.S } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() +} + +/** + * Возвращает экземпляр [ListStyles] для list + */ +public fun ListStyles.Default.resolve( + size: ListDefaultSize = ListDefaultSize.S, + hasBackground: Boolean = false, + hasItemBackground: Boolean = false, +): ListStyles = when { + size == ListDefaultSize.S && hasBackground == false && hasItemBackground == true -> + ListStyles.ListSNoBackgroundHasItemBackground + size == ListDefaultSize.S && hasBackground == false -> ListStyles.ListSNoBackground + size == ListDefaultSize.S && hasBackground == true -> ListStyles.ListSHasBackground + size == ListDefaultSize.S -> ListStyles.ListS + else -> error("Unsupported list style combination") } + +/** + * Возвращает [ListStyle] для list + */ +@Composable +public fun ListStyles.Default.style( + size: ListDefaultSize = ListDefaultSize.S, + hasBackground: Boolean = false, + hasItemBackground: Boolean = false, + modify: @Composable ListStyleBuilder.() -> Unit = {}, +): ListStyle = resolve(size, hasBackground, hasItemBackground).style(modify) + +/** + * Возвращает экземпляр [ListStyles] для list-numbered + */ +public fun ListStyles.Numbered.resolve(size: ListNumberedSize = ListNumberedSize.S): ListStyles = + when { + size == ListNumberedSize.S -> ListStyles.ListNumberedS + else -> error("Unsupported list-numbered style combination") + } + +/** + * Возвращает [ListStyle] для list-numbered + */ +@Composable +public fun ListStyles.Numbered.style( + size: ListNumberedSize = ListNumberedSize.S, + modify: @Composable ListStyleBuilder.() -> Unit = {}, +): ListStyle = + resolve(size).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/listitem/ListItemStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/listitem/ListItemStylesCollection.kt index 582cc445dc..79a948eb34 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/listitem/ListItemStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/listitem/ListItemStylesCollection.kt @@ -15,6 +15,7 @@ import com.sdds.compose.uikit.ListItemStyle import com.sdds.compose.uikit.ListItemStyleBuilder import com.sdds.compose.uikit.style.modify import com.sdds.compose.uikit.style.style +import kotlin.Boolean import kotlin.String import kotlin.Suppress import kotlin.Unit @@ -28,17 +29,85 @@ public enum class ListItemStyles( ListItemS("ListItem.S"), ListItemSHasBackground("ListItem.S.HasBackground"), ListNumberedItemS("ListNumberedItem.S"), + ; + + /** + * Typed API для подбора стиля list-item + */ + public object Default + + /** + * Typed API для подбора стиля list-numbered-item + */ + public object ListNumberedItem +} + +/** + * Возможные значения свойства size для list-item + */ +public enum class ListItemDefaultSize { + S, +} + +/** + * Возможные значения свойства size для list-numbered-item + */ +public enum class ListItemListNumberedItemSize { + S, } /** * Возвращает [ListItemStyle] для [ListItemStyles] */ @Composable -public fun ListItemStyles.style(modifyAction: @Composable ListItemStyleBuilder.() -> Unit = {}): ListItemStyle { +public fun ListItemStyles.style(modify: @Composable ListItemStyleBuilder.() -> Unit = {}): ListItemStyle { val builder = when (this) { ListItemStyles.ListItemS -> ListItem.S ListItemStyles.ListItemSHasBackground -> ListItem.S.HasBackground ListItemStyles.ListNumberedItemS -> ListNumberedItem.S } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() +} + +/** + * Возвращает экземпляр [ListItemStyles] для list-item + */ +public fun ListItemStyles.Default.resolve( + size: ListItemDefaultSize = ListItemDefaultSize.S, + hasBackground: Boolean = false, +): ListItemStyles = when { + size == ListItemDefaultSize.S && hasBackground == true -> ListItemStyles.ListItemSHasBackground + size == ListItemDefaultSize.S -> ListItemStyles.ListItemS + else -> error("Unsupported list-item style combination") } + +/** + * Возвращает [ListItemStyle] для list-item + */ +@Composable +public fun ListItemStyles.Default.style( + size: ListItemDefaultSize = ListItemDefaultSize.S, + hasBackground: Boolean = false, + modify: @Composable ListItemStyleBuilder.() -> Unit = {}, +): ListItemStyle = resolve(size, hasBackground).style(modify) + +/** + * Возвращает экземпляр [ListItemStyles] для list-numbered-item + */ +public fun ListItemStyles.ListNumberedItem.resolve( + size: ListItemListNumberedItemSize = + ListItemListNumberedItemSize.S, +): ListItemStyles = when { + size == ListItemListNumberedItemSize.S -> ListItemStyles.ListNumberedItemS + else -> error("Unsupported list-numbered-item style combination") +} + +/** + * Возвращает [ListItemStyle] для list-numbered-item + */ +@Composable +public fun ListItemStyles.ListNumberedItem.style( + size: ListItemListNumberedItemSize = + ListItemListNumberedItemSize.S, + modify: @Composable ListItemStyleBuilder.() -> Unit = {}, +): ListItemStyle = resolve(size).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/loader/LoaderStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/loader/LoaderStylesCollection.kt index e420987d0e..25d61a2f12 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/loader/LoaderStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/loader/LoaderStylesCollection.kt @@ -26,15 +26,33 @@ public enum class LoaderStyles( public val key: String, ) { LoaderDefault("Loader.Default"), + ; + + /** + * Typed API для подбора стиля loader + */ + public companion object } /** * Возвращает [LoaderStyle] для [LoaderStyles] */ @Composable -public fun LoaderStyles.style(modifyAction: @Composable LoaderStyleBuilder.() -> Unit = {}): LoaderStyle { +public fun LoaderStyles.style(modify: @Composable LoaderStyleBuilder.() -> Unit = {}): LoaderStyle { val builder = when (this) { LoaderStyles.LoaderDefault -> Loader.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [LoaderStyles] для loader + */ +public fun LoaderStyles.Companion.resolve(): LoaderStyles = LoaderStyles.LoaderDefault + +/** + * Возвращает [LoaderStyle] для loader + */ +@Composable +public fun LoaderStyles.Companion.style(modify: @Composable LoaderStyleBuilder.() -> Unit = {}): + LoaderStyle = resolve().style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/navigationbar/NavigationBarStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/navigationbar/NavigationBarStylesCollection.kt index 10bd025ca2..7d3169c2ee 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/navigationbar/NavigationBarStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/navigationbar/NavigationBarStylesCollection.kt @@ -27,19 +27,58 @@ public enum class NavigationBarStyles( ) { NavigationBarMainPageDefault("NavigationBarMainPage.Default"), NavigationBarInternalPageDefault("NavigationBarInternalPage.Default"), + ; + + /** + * Typed API для подбора стиля navigation-bar-main-page + */ + public object MainPage + + /** + * Typed API для подбора стиля navigation-bar-internal-page + */ + public object InternalPage } /** * Возвращает [NavigationBarStyle] для [NavigationBarStyles] */ @Composable -public fun NavigationBarStyles.style( - modifyAction: @Composable NavigationBarStyleBuilder.() -> Unit = - {}, -): NavigationBarStyle { +public fun NavigationBarStyles.style(modify: @Composable NavigationBarStyleBuilder.() -> Unit = {}): + NavigationBarStyle { val builder = when (this) { NavigationBarStyles.NavigationBarMainPageDefault -> NavigationBarMainPage.Default NavigationBarStyles.NavigationBarInternalPageDefault -> NavigationBarInternalPage.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [NavigationBarStyles] для navigation-bar-main-page + */ +public fun NavigationBarStyles.MainPage.resolve(): NavigationBarStyles = + NavigationBarStyles.NavigationBarMainPageDefault + +/** + * Возвращает [NavigationBarStyle] для navigation-bar-main-page + */ +@Composable +public fun NavigationBarStyles.MainPage.style( + modify: @Composable + NavigationBarStyleBuilder.() -> Unit = {}, +): NavigationBarStyle = resolve().style(modify) + +/** + * Возвращает экземпляр [NavigationBarStyles] для navigation-bar-internal-page + */ +public fun NavigationBarStyles.InternalPage.resolve(): NavigationBarStyles = + NavigationBarStyles.NavigationBarInternalPageDefault + +/** + * Возвращает [NavigationBarStyle] для navigation-bar-internal-page + */ +@Composable +public fun NavigationBarStyles.InternalPage.style( + modify: @Composable + NavigationBarStyleBuilder.() -> Unit = {}, +): NavigationBarStyle = resolve().style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/note/NoteStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/note/NoteStylesCollection.kt index c8df459c25..520121cbdb 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/note/NoteStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/note/NoteStylesCollection.kt @@ -15,6 +15,7 @@ import com.sdds.compose.uikit.NoteStyle import com.sdds.compose.uikit.NoteStyleBuilder import com.sdds.compose.uikit.style.modify import com.sdds.compose.uikit.style.style +import kotlin.Boolean import kotlin.String import kotlin.Suppress import kotlin.Unit @@ -45,13 +46,38 @@ public enum class NoteStyles( NoteContentBeforeFixedHasCloseNegative("Note.ContentBeforeFixed.HasClose.Negative"), NoteContentBeforeFixedHasCloseWarning("Note.ContentBeforeFixed.HasClose.Warning"), NoteContentBeforeFixedHasCloseInfo("Note.ContentBeforeFixed.HasClose.Info"), + ; + + /** + * Typed API для подбора стиля note + */ + public companion object +} + +/** + * Возможные значения свойства content-before для note + */ +public enum class NoteContentBefore { + Fixed, + Scalable, +} + +/** + * Возможные значения свойства view для note + */ +public enum class NoteView { + Default, + Positive, + Negative, + Warning, + Info, } /** * Возвращает [NoteStyle] для [NoteStyles] */ @Composable -public fun NoteStyles.style(modifyAction: @Composable NoteStyleBuilder.() -> Unit = {}): NoteStyle { +public fun NoteStyles.style(modify: @Composable NoteStyleBuilder.() -> Unit = {}): NoteStyle { val builder = when (this) { NoteStyles.NoteContentBeforeScalableDefault -> Note.ContentBeforeScalable.Default NoteStyles.NoteContentBeforeScalablePositive -> Note.ContentBeforeScalable.Positive @@ -80,5 +106,67 @@ public fun NoteStyles.style(modifyAction: @Composable NoteStyleBuilder.() -> Uni NoteStyles.NoteContentBeforeFixedHasCloseWarning -> Note.ContentBeforeFixed.HasClose.Warning NoteStyles.NoteContentBeforeFixedHasCloseInfo -> Note.ContentBeforeFixed.HasClose.Info } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [NoteStyles] для note + */ +public fun NoteStyles.Companion.resolve( + contentBefore: NoteContentBefore = NoteContentBefore.Fixed, + hasClose: Boolean = false, + view: NoteView = NoteView.Default, +): NoteStyles = when { + contentBefore == NoteContentBefore.Scalable && hasClose == true && view == NoteView.Default -> + NoteStyles.NoteContentBeforeScalableHasCloseDefault + contentBefore == NoteContentBefore.Scalable && hasClose == true && view == NoteView.Positive -> + NoteStyles.NoteContentBeforeScalableHasClosePositive + contentBefore == NoteContentBefore.Scalable && hasClose == true && view == NoteView.Negative -> + NoteStyles.NoteContentBeforeScalableHasCloseNegative + contentBefore == NoteContentBefore.Scalable && hasClose == true && view == NoteView.Warning -> + NoteStyles.NoteContentBeforeScalableHasCloseWarning + contentBefore == NoteContentBefore.Scalable && hasClose == true && view == NoteView.Info -> + NoteStyles.NoteContentBeforeScalableHasCloseInfo + contentBefore == NoteContentBefore.Fixed && hasClose == true && view == NoteView.Default -> + NoteStyles.NoteContentBeforeFixedHasCloseDefault + contentBefore == NoteContentBefore.Fixed && hasClose == true && view == NoteView.Positive -> + NoteStyles.NoteContentBeforeFixedHasClosePositive + contentBefore == NoteContentBefore.Fixed && hasClose == true && view == NoteView.Negative -> + NoteStyles.NoteContentBeforeFixedHasCloseNegative + contentBefore == NoteContentBefore.Fixed && hasClose == true && view == NoteView.Warning -> + NoteStyles.NoteContentBeforeFixedHasCloseWarning + contentBefore == NoteContentBefore.Fixed && hasClose == true && view == NoteView.Info -> + NoteStyles.NoteContentBeforeFixedHasCloseInfo + contentBefore == NoteContentBefore.Scalable && view == NoteView.Default -> + NoteStyles.NoteContentBeforeScalableDefault + contentBefore == NoteContentBefore.Scalable && view == NoteView.Positive -> + NoteStyles.NoteContentBeforeScalablePositive + contentBefore == NoteContentBefore.Scalable && view == NoteView.Negative -> + NoteStyles.NoteContentBeforeScalableNegative + contentBefore == NoteContentBefore.Scalable && view == NoteView.Warning -> + NoteStyles.NoteContentBeforeScalableWarning + contentBefore == NoteContentBefore.Scalable && view == NoteView.Info -> + NoteStyles.NoteContentBeforeScalableInfo + contentBefore == NoteContentBefore.Fixed && view == NoteView.Default -> + NoteStyles.NoteContentBeforeFixedDefault + contentBefore == NoteContentBefore.Fixed && view == NoteView.Positive -> + NoteStyles.NoteContentBeforeFixedPositive + contentBefore == NoteContentBefore.Fixed && view == NoteView.Negative -> + NoteStyles.NoteContentBeforeFixedNegative + contentBefore == NoteContentBefore.Fixed && view == NoteView.Warning -> + NoteStyles.NoteContentBeforeFixedWarning + contentBefore == NoteContentBefore.Fixed && view == NoteView.Info -> + NoteStyles.NoteContentBeforeFixedInfo + else -> error("Unsupported note style combination") +} + +/** + * Возвращает [NoteStyle] для note + */ +@Composable +public fun NoteStyles.Companion.style( + contentBefore: NoteContentBefore = NoteContentBefore.Fixed, + hasClose: Boolean = false, + view: NoteView = NoteView.Default, + modify: @Composable NoteStyleBuilder.() -> Unit = {}, +): NoteStyle = resolve(contentBefore, hasClose, view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/notecompact/NoteCompactStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/notecompact/NoteCompactStylesCollection.kt index d584be434b..85ab1218a9 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/notecompact/NoteCompactStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/notecompact/NoteCompactStylesCollection.kt @@ -15,6 +15,7 @@ import com.sdds.compose.uikit.NoteCompactStyle import com.sdds.compose.uikit.NoteCompactStyleBuilder import com.sdds.compose.uikit.style.modify import com.sdds.compose.uikit.style.style +import kotlin.Boolean import kotlin.String import kotlin.Suppress import kotlin.Unit @@ -45,16 +46,38 @@ public enum class NoteCompactStyles( NoteCompactContentBeforeScalableHasCloseNegative("NoteCompact.ContentBeforeScalable.HasClose.Negative"), NoteCompactContentBeforeScalableHasCloseWarning("NoteCompact.ContentBeforeScalable.HasClose.Warning"), NoteCompactContentBeforeScalableHasCloseInfo("NoteCompact.ContentBeforeScalable.HasClose.Info"), + ; + + /** + * Typed API для подбора стиля note-compact + */ + public companion object +} + +/** + * Возможные значения свойства content-before для note-compact + */ +public enum class NoteCompactContentBefore { + Fixed, + Scalable, +} + +/** + * Возможные значения свойства view для note-compact + */ +public enum class NoteCompactView { + Default, + Positive, + Negative, + Warning, + Info, } /** * Возвращает [NoteCompactStyle] для [NoteCompactStyles] */ @Composable -public fun NoteCompactStyles.style( - modifyAction: @Composable NoteCompactStyleBuilder.() -> Unit = - {}, -): NoteCompactStyle { +public fun NoteCompactStyles.style(modify: @Composable NoteCompactStyleBuilder.() -> Unit = {}): NoteCompactStyle { val builder = when (this) { NoteCompactStyles.NoteCompactContentBeforeFixedDefault -> NoteCompact.ContentBeforeFixed.Default @@ -96,5 +119,69 @@ public fun NoteCompactStyles.style( NoteCompactStyles.NoteCompactContentBeforeScalableHasCloseInfo -> NoteCompact.ContentBeforeScalable.HasClose.Info } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [NoteCompactStyles] для note-compact + */ +public fun NoteCompactStyles.Companion.resolve( + contentBefore: NoteCompactContentBefore = NoteCompactContentBefore.Fixed, + hasClose: Boolean = false, + view: NoteCompactView = NoteCompactView.Default, +): NoteCompactStyles = when { + contentBefore == NoteCompactContentBefore.Fixed && hasClose == true && view == + NoteCompactView.Default -> NoteCompactStyles.NoteCompactContentBeforeFixedHasCloseDefault + contentBefore == NoteCompactContentBefore.Fixed && hasClose == true && view == + NoteCompactView.Positive -> NoteCompactStyles.NoteCompactContentBeforeFixedHasClosePositive + contentBefore == NoteCompactContentBefore.Fixed && hasClose == true && view == + NoteCompactView.Negative -> NoteCompactStyles.NoteCompactContentBeforeFixedHasCloseNegative + contentBefore == NoteCompactContentBefore.Fixed && hasClose == true && view == + NoteCompactView.Warning -> NoteCompactStyles.NoteCompactContentBeforeFixedHasCloseWarning + contentBefore == NoteCompactContentBefore.Fixed && hasClose == true && view == + NoteCompactView.Info -> NoteCompactStyles.NoteCompactContentBeforeFixedHasCloseInfo + contentBefore == NoteCompactContentBefore.Scalable && hasClose == true && view == + NoteCompactView.Default -> NoteCompactStyles.NoteCompactContentBeforeScalableHasCloseDefault + contentBefore == NoteCompactContentBefore.Scalable && hasClose == true && view == + NoteCompactView.Positive -> + NoteCompactStyles.NoteCompactContentBeforeScalableHasClosePositive + contentBefore == NoteCompactContentBefore.Scalable && hasClose == true && view == + NoteCompactView.Negative -> + NoteCompactStyles.NoteCompactContentBeforeScalableHasCloseNegative + contentBefore == NoteCompactContentBefore.Scalable && hasClose == true && view == + NoteCompactView.Warning -> NoteCompactStyles.NoteCompactContentBeforeScalableHasCloseWarning + contentBefore == NoteCompactContentBefore.Scalable && hasClose == true && view == + NoteCompactView.Info -> NoteCompactStyles.NoteCompactContentBeforeScalableHasCloseInfo + contentBefore == NoteCompactContentBefore.Fixed && view == NoteCompactView.Default -> + NoteCompactStyles.NoteCompactContentBeforeFixedDefault + contentBefore == NoteCompactContentBefore.Fixed && view == NoteCompactView.Positive -> + NoteCompactStyles.NoteCompactContentBeforeFixedPositive + contentBefore == NoteCompactContentBefore.Fixed && view == NoteCompactView.Negative -> + NoteCompactStyles.NoteCompactContentBeforeFixedNegative + contentBefore == NoteCompactContentBefore.Fixed && view == NoteCompactView.Warning -> + NoteCompactStyles.NoteCompactContentBeforeFixedWarning + contentBefore == NoteCompactContentBefore.Fixed && view == NoteCompactView.Info -> + NoteCompactStyles.NoteCompactContentBeforeFixedInfo + contentBefore == NoteCompactContentBefore.Scalable && view == NoteCompactView.Default -> + NoteCompactStyles.NoteCompactContentBeforeScalableDefault + contentBefore == NoteCompactContentBefore.Scalable && view == NoteCompactView.Positive -> + NoteCompactStyles.NoteCompactContentBeforeScalablePositive + contentBefore == NoteCompactContentBefore.Scalable && view == NoteCompactView.Negative -> + NoteCompactStyles.NoteCompactContentBeforeScalableNegative + contentBefore == NoteCompactContentBefore.Scalable && view == NoteCompactView.Warning -> + NoteCompactStyles.NoteCompactContentBeforeScalableWarning + contentBefore == NoteCompactContentBefore.Scalable && view == NoteCompactView.Info -> + NoteCompactStyles.NoteCompactContentBeforeScalableInfo + else -> error("Unsupported note-compact style combination") +} + +/** + * Возвращает [NoteCompactStyle] для note-compact + */ +@Composable +public fun NoteCompactStyles.Companion.style( + contentBefore: NoteCompactContentBefore = NoteCompactContentBefore.Fixed, + hasClose: Boolean = false, + view: NoteCompactView = NoteCompactView.Default, + modify: @Composable NoteCompactStyleBuilder.() -> Unit = {}, +): NoteCompactStyle = resolve(contentBefore, hasClose, view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/overlay/OverlayStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/overlay/OverlayStylesCollection.kt index 98e5d5178d..86bbd94f99 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/overlay/OverlayStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/overlay/OverlayStylesCollection.kt @@ -28,17 +28,53 @@ public enum class OverlayStyles( OverlayDefault("Overlay.Default"), OverlayDirectionTop("Overlay.DirectionTop"), OverlayDirectionBottom("Overlay.DirectionBottom"), + ; + + /** + * Typed API для подбора стиля overlay + */ + public companion object +} + +/** + * Возможные значения свойства kind для overlay + */ +public enum class OverlayKind { + Default, + DirectionTop, + DirectionBottom, } /** * Возвращает [OverlayStyle] для [OverlayStyles] */ @Composable -public fun OverlayStyles.style(modifyAction: @Composable OverlayStyleBuilder.() -> Unit = {}): OverlayStyle { +public fun OverlayStyles.style(modify: @Composable OverlayStyleBuilder.() -> Unit = {}): OverlayStyle { val builder = when (this) { OverlayStyles.OverlayDefault -> Overlay.Default OverlayStyles.OverlayDirectionTop -> Overlay.DirectionTop OverlayStyles.OverlayDirectionBottom -> Overlay.DirectionBottom } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [OverlayStyles] для overlay + */ +public fun OverlayStyles.Companion.resolve(kind: OverlayKind = OverlayKind.Default): OverlayStyles = + when { + kind == OverlayKind.Default -> OverlayStyles.OverlayDefault + kind == OverlayKind.DirectionTop -> OverlayStyles.OverlayDirectionTop + kind == OverlayKind.DirectionBottom -> OverlayStyles.OverlayDirectionBottom + else -> error("Unsupported overlay style combination") + } + +/** + * Возвращает [OverlayStyle] для overlay + */ +@Composable +public fun OverlayStyles.Companion.style( + kind: OverlayKind = OverlayKind.Default, + modify: @Composable OverlayStyleBuilder.() -> Unit = {}, +): OverlayStyle = + resolve(kind).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/radiobox/RadioBoxStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/radiobox/RadioBoxStylesCollection.kt index 4debbfb576..ee91a369e1 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/radiobox/RadioBoxStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/radiobox/RadioBoxStylesCollection.kt @@ -28,17 +28,53 @@ public enum class RadioBoxStyles( RadioBoxL("RadioBox.L"), RadioBoxM("RadioBox.M"), RadioBoxS("RadioBox.S"), + ; + + /** + * Typed API для подбора стиля radio-box + */ + public companion object +} + +/** + * Возможные значения свойства size для radio-box + */ +public enum class RadioBoxSize { + L, + M, + S, } /** * Возвращает [RadioBoxStyle] для [RadioBoxStyles] */ @Composable -public fun RadioBoxStyles.style(modifyAction: @Composable RadioBoxStyleBuilder.() -> Unit = {}): RadioBoxStyle { +public fun RadioBoxStyles.style(modify: @Composable RadioBoxStyleBuilder.() -> Unit = {}): RadioBoxStyle { val builder = when (this) { RadioBoxStyles.RadioBoxL -> RadioBox.L RadioBoxStyles.RadioBoxM -> RadioBox.M RadioBoxStyles.RadioBoxS -> RadioBox.S } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [RadioBoxStyles] для radio-box + */ +public fun RadioBoxStyles.Companion.resolve(size: RadioBoxSize = RadioBoxSize.L): RadioBoxStyles = + when { + size == RadioBoxSize.L -> RadioBoxStyles.RadioBoxL + size == RadioBoxSize.M -> RadioBoxStyles.RadioBoxM + size == RadioBoxSize.S -> RadioBoxStyles.RadioBoxS + else -> error("Unsupported radio-box style combination") + } + +/** + * Возвращает [RadioBoxStyle] для radio-box + */ +@Composable +public fun RadioBoxStyles.Companion.style( + size: RadioBoxSize = RadioBoxSize.L, + modify: @Composable + RadioBoxStyleBuilder.() -> Unit = {}, +): RadioBoxStyle = resolve(size).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/radioboxgroup/RadioBoxGroupStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/radioboxgroup/RadioBoxGroupStylesCollection.kt index 3dd84c5515..393663755b 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/radioboxgroup/RadioBoxGroupStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/radioboxgroup/RadioBoxGroupStylesCollection.kt @@ -27,19 +27,51 @@ public enum class RadioBoxGroupStyles( ) { RadioBoxGroupM("RadioBoxGroup.M"), RadioBoxGroupS("RadioBoxGroup.S"), + ; + + /** + * Typed API для подбора стиля radio-box-group + */ + public companion object +} + +/** + * Возможные значения свойства size для radio-box-group + */ +public enum class RadioBoxGroupSize { + M, + S, } /** * Возвращает [RadioBoxGroupStyle] для [RadioBoxGroupStyles] */ @Composable -public fun RadioBoxGroupStyles.style( - modifyAction: @Composable RadioBoxGroupStyleBuilder.() -> Unit = - {}, -): RadioBoxGroupStyle { +public fun RadioBoxGroupStyles.style(modify: @Composable RadioBoxGroupStyleBuilder.() -> Unit = {}): + RadioBoxGroupStyle { val builder = when (this) { RadioBoxGroupStyles.RadioBoxGroupM -> RadioBoxGroup.M RadioBoxGroupStyles.RadioBoxGroupS -> RadioBoxGroup.S } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [RadioBoxGroupStyles] для radio-box-group + */ +public fun RadioBoxGroupStyles.Companion.resolve(size: RadioBoxGroupSize = RadioBoxGroupSize.M): + RadioBoxGroupStyles = when { + size == RadioBoxGroupSize.M -> RadioBoxGroupStyles.RadioBoxGroupM + size == RadioBoxGroupSize.S -> RadioBoxGroupStyles.RadioBoxGroupS + else -> error("Unsupported radio-box-group style combination") +} + +/** + * Возвращает [RadioBoxGroupStyle] для radio-box-group + */ +@Composable +public fun RadioBoxGroupStyles.Companion.style( + size: RadioBoxGroupSize = RadioBoxGroupSize.M, + modify: @Composable RadioBoxGroupStyleBuilder.() -> Unit = {}, +): RadioBoxGroupStyle = + resolve(size).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/rectskeleton/RectSkeletonStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/rectskeleton/RectSkeletonStylesCollection.kt index 3055f1eb36..c5fdf8f4d6 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/rectskeleton/RectSkeletonStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/rectskeleton/RectSkeletonStylesCollection.kt @@ -26,18 +26,36 @@ public enum class RectSkeletonStyles( public val key: String, ) { RectSkeletonDefault("RectSkeleton.Default"), + ; + + /** + * Typed API для подбора стиля rect-skeleton + */ + public companion object } /** * Возвращает [RectSkeletonStyle] для [RectSkeletonStyles] */ @Composable -public fun RectSkeletonStyles.style( - modifyAction: @Composable RectSkeletonStyleBuilder.() -> Unit = - {}, -): RectSkeletonStyle { +public fun RectSkeletonStyles.style(modify: @Composable RectSkeletonStyleBuilder.() -> Unit = {}): RectSkeletonStyle { val builder = when (this) { RectSkeletonStyles.RectSkeletonDefault -> RectSkeleton.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [RectSkeletonStyles] для rect-skeleton + */ +public fun RectSkeletonStyles.Companion.resolve(): RectSkeletonStyles = + RectSkeletonStyles.RectSkeletonDefault + +/** + * Возвращает [RectSkeletonStyle] для rect-skeleton + */ +@Composable +public fun RectSkeletonStyles.Companion.style( + modify: @Composable + RectSkeletonStyleBuilder.() -> Unit = {}, +): RectSkeletonStyle = resolve().style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/spinner/SpinnerStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/spinner/SpinnerStylesCollection.kt index 93ae90f7a1..69246022a6 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/spinner/SpinnerStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/spinner/SpinnerStylesCollection.kt @@ -60,13 +60,43 @@ public enum class SpinnerStyles( SpinnerScalableNegative("Spinner.Scalable.Negative"), SpinnerScalableWarning("Spinner.Scalable.Warning"), SpinnerScalableInfo("Spinner.Scalable.Info"), + ; + + /** + * Typed API для подбора стиля spinner + */ + public companion object +} + +/** + * Возможные значения свойства size для spinner + */ +public enum class SpinnerSize { + M, + S, + Xs, + Xxs, + Scalable, +} + +/** + * Возможные значения свойства view для spinner + */ +public enum class SpinnerView { + Default, + Secondary, + Accent, + Positive, + Negative, + Warning, + Info, } /** * Возвращает [SpinnerStyle] для [SpinnerStyles] */ @Composable -public fun SpinnerStyles.style(modifyAction: @Composable SpinnerStyleBuilder.() -> Unit = {}): SpinnerStyle { +public fun SpinnerStyles.style(modify: @Composable SpinnerStyleBuilder.() -> Unit = {}): SpinnerStyle { val builder = when (this) { SpinnerStyles.SpinnerMDefault -> Spinner.M.Default SpinnerStyles.SpinnerMSecondary -> Spinner.M.Secondary @@ -104,5 +134,67 @@ public fun SpinnerStyles.style(modifyAction: @Composable SpinnerStyleBuilder.() SpinnerStyles.SpinnerScalableWarning -> Spinner.Scalable.Warning SpinnerStyles.SpinnerScalableInfo -> Spinner.Scalable.Info } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [SpinnerStyles] для spinner + */ +public fun SpinnerStyles.Companion.resolve( + size: SpinnerSize = SpinnerSize.M, + view: SpinnerView = + SpinnerView.Default, +): SpinnerStyles = when { + size == SpinnerSize.M && view == SpinnerView.Default -> SpinnerStyles.SpinnerMDefault + size == SpinnerSize.M && view == SpinnerView.Secondary -> SpinnerStyles.SpinnerMSecondary + size == SpinnerSize.M && view == SpinnerView.Accent -> SpinnerStyles.SpinnerMAccent + size == SpinnerSize.M && view == SpinnerView.Positive -> SpinnerStyles.SpinnerMPositive + size == SpinnerSize.M && view == SpinnerView.Negative -> SpinnerStyles.SpinnerMNegative + size == SpinnerSize.M && view == SpinnerView.Warning -> SpinnerStyles.SpinnerMWarning + size == SpinnerSize.M && view == SpinnerView.Info -> SpinnerStyles.SpinnerMInfo + size == SpinnerSize.S && view == SpinnerView.Default -> SpinnerStyles.SpinnerSDefault + size == SpinnerSize.S && view == SpinnerView.Secondary -> SpinnerStyles.SpinnerSSecondary + size == SpinnerSize.S && view == SpinnerView.Accent -> SpinnerStyles.SpinnerSAccent + size == SpinnerSize.S && view == SpinnerView.Positive -> SpinnerStyles.SpinnerSPositive + size == SpinnerSize.S && view == SpinnerView.Negative -> SpinnerStyles.SpinnerSNegative + size == SpinnerSize.S && view == SpinnerView.Warning -> SpinnerStyles.SpinnerSWarning + size == SpinnerSize.S && view == SpinnerView.Info -> SpinnerStyles.SpinnerSInfo + size == SpinnerSize.Xs && view == SpinnerView.Default -> SpinnerStyles.SpinnerXsDefault + size == SpinnerSize.Xs && view == SpinnerView.Secondary -> SpinnerStyles.SpinnerXsSecondary + size == SpinnerSize.Xs && view == SpinnerView.Accent -> SpinnerStyles.SpinnerXsAccent + size == SpinnerSize.Xs && view == SpinnerView.Positive -> SpinnerStyles.SpinnerXsPositive + size == SpinnerSize.Xs && view == SpinnerView.Negative -> SpinnerStyles.SpinnerXsNegative + size == SpinnerSize.Xs && view == SpinnerView.Warning -> SpinnerStyles.SpinnerXsWarning + size == SpinnerSize.Xs && view == SpinnerView.Info -> SpinnerStyles.SpinnerXsInfo + size == SpinnerSize.Xxs && view == SpinnerView.Default -> SpinnerStyles.SpinnerXxsDefault + size == SpinnerSize.Xxs && view == SpinnerView.Secondary -> SpinnerStyles.SpinnerXxsSecondary + size == SpinnerSize.Xxs && view == SpinnerView.Accent -> SpinnerStyles.SpinnerXxsAccent + size == SpinnerSize.Xxs && view == SpinnerView.Positive -> SpinnerStyles.SpinnerXxsPositive + size == SpinnerSize.Xxs && view == SpinnerView.Negative -> SpinnerStyles.SpinnerXxsNegative + size == SpinnerSize.Xxs && view == SpinnerView.Warning -> SpinnerStyles.SpinnerXxsWarning + size == SpinnerSize.Xxs && view == SpinnerView.Info -> SpinnerStyles.SpinnerXxsInfo + size == SpinnerSize.Scalable && view == SpinnerView.Default -> + SpinnerStyles.SpinnerScalableDefault + size == SpinnerSize.Scalable && view == SpinnerView.Secondary -> + SpinnerStyles.SpinnerScalableSecondary + size == SpinnerSize.Scalable && view == SpinnerView.Accent -> + SpinnerStyles.SpinnerScalableAccent + size == SpinnerSize.Scalable && view == SpinnerView.Positive -> + SpinnerStyles.SpinnerScalablePositive + size == SpinnerSize.Scalable && view == SpinnerView.Negative -> + SpinnerStyles.SpinnerScalableNegative + size == SpinnerSize.Scalable && view == SpinnerView.Warning -> + SpinnerStyles.SpinnerScalableWarning + size == SpinnerSize.Scalable && view == SpinnerView.Info -> SpinnerStyles.SpinnerScalableInfo + else -> error("Unsupported spinner style combination") +} + +/** + * Возвращает [SpinnerStyle] для spinner + */ +@Composable +public fun SpinnerStyles.Companion.style( + size: SpinnerSize = SpinnerSize.M, + view: SpinnerView = SpinnerView.Default, + modify: @Composable SpinnerStyleBuilder.() -> Unit = {}, +): SpinnerStyle = resolve(size, view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/switcher/SwitchStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/switcher/SwitchStylesCollection.kt index 5c862cfa30..5c1143694d 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/switcher/SwitchStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/switcher/SwitchStylesCollection.kt @@ -31,13 +31,36 @@ public enum class SwitchStyles( SwitchMToggleS("Switch.M.ToggleS"), SwitchS("Switch.S"), SwitchSToggleS("Switch.S.ToggleS"), + ; + + /** + * Typed API для подбора стиля switch + */ + public companion object +} + +/** + * Возможные значения свойства size для switch + */ +public enum class SwitchSize { + L, + M, + S, +} + +/** + * Возможные значения свойства toggle-size для switch + */ +public enum class SwitchToggleSize { + L, + S, } /** * Возвращает [SwitchStyle] для [SwitchStyles] */ @Composable -public fun SwitchStyles.style(modifyAction: @Composable SwitchStyleBuilder.() -> Unit = {}): SwitchStyle { +public fun SwitchStyles.style(modify: @Composable SwitchStyleBuilder.() -> Unit = {}): SwitchStyle { val builder = when (this) { SwitchStyles.SwitchL -> Switch.L SwitchStyles.SwitchLToggleS -> Switch.L.ToggleS @@ -46,5 +69,31 @@ public fun SwitchStyles.style(modifyAction: @Composable SwitchStyleBuilder.() -> SwitchStyles.SwitchS -> Switch.S SwitchStyles.SwitchSToggleS -> Switch.S.ToggleS } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [SwitchStyles] для switch + */ +public fun SwitchStyles.Companion.resolve( + size: SwitchSize = SwitchSize.L, + toggleSize: SwitchToggleSize = SwitchToggleSize.L, +): SwitchStyles = when { + size == SwitchSize.L && toggleSize == SwitchToggleSize.L -> SwitchStyles.SwitchL + size == SwitchSize.L && toggleSize == SwitchToggleSize.S -> SwitchStyles.SwitchLToggleS + size == SwitchSize.M && toggleSize == SwitchToggleSize.L -> SwitchStyles.SwitchM + size == SwitchSize.M && toggleSize == SwitchToggleSize.S -> SwitchStyles.SwitchMToggleS + size == SwitchSize.S && toggleSize == SwitchToggleSize.L -> SwitchStyles.SwitchS + size == SwitchSize.S && toggleSize == SwitchToggleSize.S -> SwitchStyles.SwitchSToggleS + else -> error("Unsupported switch style combination") +} + +/** + * Возвращает [SwitchStyle] для switch + */ +@Composable +public fun SwitchStyles.Companion.style( + size: SwitchSize = SwitchSize.L, + toggleSize: SwitchToggleSize = SwitchToggleSize.L, + modify: @Composable SwitchStyleBuilder.() -> Unit = {}, +): SwitchStyle = resolve(size, toggleSize).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/tabbar/TabBarStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/tabbar/TabBarStylesCollection.kt index c0976e03d9..7b25cdfbdb 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/tabbar/TabBarStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/tabbar/TabBarStylesCollection.kt @@ -26,15 +26,33 @@ public enum class TabBarStyles( public val key: String, ) { TabBarDefault("TabBar.Default"), + ; + + /** + * Typed API для подбора стиля tab-bar + */ + public companion object } /** * Возвращает [TabBarStyle] для [TabBarStyles] */ @Composable -public fun TabBarStyles.style(modifyAction: @Composable TabBarStyleBuilder.() -> Unit = {}): TabBarStyle { +public fun TabBarStyles.style(modify: @Composable TabBarStyleBuilder.() -> Unit = {}): TabBarStyle { val builder = when (this) { TabBarStyles.TabBarDefault -> TabBar.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [TabBarStyles] для tab-bar + */ +public fun TabBarStyles.Companion.resolve(): TabBarStyles = TabBarStyles.TabBarDefault + +/** + * Возвращает [TabBarStyle] для tab-bar + */ +@Composable +public fun TabBarStyles.Companion.style(modify: @Composable TabBarStyleBuilder.() -> Unit = {}): + TabBarStyle = resolve().style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/tabbaritem/TabBarItemStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/tabbaritem/TabBarItemStylesCollection.kt index a248219148..2a0d46e480 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/tabbaritem/TabBarItemStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/tabbaritem/TabBarItemStylesCollection.kt @@ -26,15 +26,36 @@ public enum class TabBarItemStyles( public val key: String, ) { TabBarItemDefault("TabBarItem.Default"), + ; + + /** + * Typed API для подбора стиля tab-bar-item + */ + public companion object } /** * Возвращает [TabBarItemStyle] для [TabBarItemStyles] */ @Composable -public fun TabBarItemStyles.style(modifyAction: @Composable TabBarItemStyleBuilder.() -> Unit = {}): TabBarItemStyle { +public fun TabBarItemStyles.style(modify: @Composable TabBarItemStyleBuilder.() -> Unit = {}): TabBarItemStyle { val builder = when (this) { TabBarItemStyles.TabBarItemDefault -> TabBarItem.Default } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [TabBarItemStyles] для tab-bar-item + */ +public fun TabBarItemStyles.Companion.resolve(): TabBarItemStyles = + TabBarItemStyles.TabBarItemDefault + +/** + * Возвращает [TabBarItemStyle] для tab-bar-item + */ +@Composable +public fun TabBarItemStyles.Companion.style( + modify: @Composable TabBarItemStyleBuilder.() -> Unit = + {}, +): TabBarItemStyle = resolve().style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/textfield/TextFieldStyles.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/textfield/TextFieldStyles.kt index f64a4644ce..da125aa9a4 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/textfield/TextFieldStyles.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/textfield/TextFieldStyles.kt @@ -194,6 +194,7 @@ public value class WrapperTextFieldLInnerLabelRequiredEnd( public val WrapperTextFieldView.Default: WrapperTextFieldTerminate @Composable get() = builder + .singleLine(true) .colors { captionColor( PlasmaHomeDsTheme.colors.textDefaultSecondary.asInteractive(), @@ -210,6 +211,7 @@ public val WrapperTextFieldView.Default: WrapperTextFieldTerminate public val WrapperTextFieldView.Error: WrapperTextFieldTerminate @Composable get() = builder + .singleLine(true) .colors { captionColor( PlasmaHomeDsTheme.colors.textDefaultNegative.asInteractive( @@ -296,6 +298,7 @@ public val TextField.S: WrapperTextFieldS @JvmName("WrapperTextFieldS") get() = TextFieldStyle.builder(this) .invariantProps + .singleLine(true) .shape(PlasmaHomeDsTheme.shapes.roundM) .dimensions { boxPaddingStart(12.0.dp) @@ -320,6 +323,7 @@ public val WrapperTextFieldS.RequiredStart: WrapperTextFieldSRequiredStart @Composable @JvmName("WrapperTextFieldSRequiredStart") get() = builder + .singleLine(true) .indicatorAlignmentMode(TextFieldIndicatorAlignmentMode.Inside) .dimensions { indicatorDimensions { @@ -333,6 +337,7 @@ public val WrapperTextFieldS.RequiredEnd: WrapperTextFieldSRequiredEnd @Composable @JvmName("WrapperTextFieldSRequiredEnd") get() = builder + .singleLine(true) .indicatorAlignmentMode(TextFieldIndicatorAlignmentMode.Inside) .dimensions { indicatorDimensions { @@ -346,6 +351,7 @@ public val WrapperTextFieldS.InnerLabel: WrapperTextFieldSInnerLabel @Composable @JvmName("WrapperTextFieldSInnerLabel") get() = builder + .singleLine(true) .dimensions { boxPaddingTop(4.0.dp) boxPaddingBottom(4.0.dp) @@ -365,6 +371,7 @@ public val WrapperTextFieldSInnerLabel.RequiredStart: WrapperTextFieldSInnerLabe @Composable @JvmName("WrapperTextFieldSInnerLabelRequiredStart") get() = builder + .singleLine(true) .indicatorAlignmentMode(TextFieldIndicatorAlignmentMode.Inside) .dimensions { indicatorDimensions { @@ -378,6 +385,7 @@ public val WrapperTextFieldSInnerLabel.RequiredEnd: WrapperTextFieldSInnerLabelR @Composable @JvmName("WrapperTextFieldSInnerLabelRequiredEnd") get() = builder + .singleLine(true) .indicatorAlignmentMode(TextFieldIndicatorAlignmentMode.Inside) .dimensions { indicatorDimensions { @@ -392,6 +400,7 @@ public val TextField.M: WrapperTextFieldM @JvmName("WrapperTextFieldM") get() = TextFieldStyle.builder(this) .invariantProps + .singleLine(true) .shape(PlasmaHomeDsTheme.shapes.roundL) .dimensions { boxPaddingStart(14.0.dp) @@ -416,6 +425,7 @@ public val WrapperTextFieldM.RequiredStart: WrapperTextFieldMRequiredStart @Composable @JvmName("WrapperTextFieldMRequiredStart") get() = builder + .singleLine(true) .indicatorAlignmentMode(TextFieldIndicatorAlignmentMode.Inside) .dimensions { indicatorDimensions { @@ -429,6 +439,7 @@ public val WrapperTextFieldM.RequiredEnd: WrapperTextFieldMRequiredEnd @Composable @JvmName("WrapperTextFieldMRequiredEnd") get() = builder + .singleLine(true) .indicatorAlignmentMode(TextFieldIndicatorAlignmentMode.Inside) .dimensions { indicatorDimensions { @@ -442,6 +453,7 @@ public val WrapperTextFieldM.InnerLabel: WrapperTextFieldMInnerLabel @Composable @JvmName("WrapperTextFieldMInnerLabel") get() = builder + .singleLine(true) .dimensions { boxPaddingTop(6.0.dp) boxPaddingBottom(6.0.dp) @@ -461,6 +473,7 @@ public val WrapperTextFieldMInnerLabel.RequiredStart: WrapperTextFieldMInnerLabe @Composable @JvmName("WrapperTextFieldMInnerLabelRequiredStart") get() = builder + .singleLine(true) .indicatorAlignmentMode(TextFieldIndicatorAlignmentMode.Inside) .dimensions { indicatorDimensions { @@ -474,6 +487,7 @@ public val WrapperTextFieldMInnerLabel.RequiredEnd: WrapperTextFieldMInnerLabelR @Composable @JvmName("WrapperTextFieldMInnerLabelRequiredEnd") get() = builder + .singleLine(true) .indicatorAlignmentMode(TextFieldIndicatorAlignmentMode.Inside) .dimensions { indicatorDimensions { @@ -488,6 +502,7 @@ public val TextField.L: WrapperTextFieldL @JvmName("WrapperTextFieldL") get() = TextFieldStyle.builder(this) .invariantProps + .singleLine(true) .shape(PlasmaHomeDsTheme.shapes.roundXl.adjustBy(all = -2.0.dp)) .dimensions { boxPaddingStart(16.0.dp) @@ -512,6 +527,7 @@ public val WrapperTextFieldL.RequiredStart: WrapperTextFieldLRequiredStart @Composable @JvmName("WrapperTextFieldLRequiredStart") get() = builder + .singleLine(true) .indicatorAlignmentMode(TextFieldIndicatorAlignmentMode.Inside) .dimensions { indicatorDimensions { @@ -525,6 +541,7 @@ public val WrapperTextFieldL.RequiredEnd: WrapperTextFieldLRequiredEnd @Composable @JvmName("WrapperTextFieldLRequiredEnd") get() = builder + .singleLine(true) .indicatorAlignmentMode(TextFieldIndicatorAlignmentMode.Inside) .dimensions { indicatorDimensions { @@ -538,6 +555,7 @@ public val WrapperTextFieldL.InnerLabel: WrapperTextFieldLInnerLabel @Composable @JvmName("WrapperTextFieldLInnerLabel") get() = builder + .singleLine(true) .dimensions { boxPaddingTop(9.0.dp) boxPaddingBottom(9.0.dp) @@ -557,6 +575,7 @@ public val WrapperTextFieldLInnerLabel.RequiredStart: WrapperTextFieldLInnerLabe @Composable @JvmName("WrapperTextFieldLInnerLabelRequiredStart") get() = builder + .singleLine(true) .indicatorAlignmentMode(TextFieldIndicatorAlignmentMode.Inside) .dimensions { indicatorDimensions { @@ -570,6 +589,7 @@ public val WrapperTextFieldLInnerLabel.RequiredEnd: WrapperTextFieldLInnerLabelR @Composable @JvmName("WrapperTextFieldLInnerLabelRequiredEnd") get() = builder + .singleLine(true) .indicatorAlignmentMode(TextFieldIndicatorAlignmentMode.Inside) .dimensions { indicatorDimensions { diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/textfield/TextFieldStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/textfield/TextFieldStylesCollection.kt index e846c744f9..f7e719ba46 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/textfield/TextFieldStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/textfield/TextFieldStylesCollection.kt @@ -61,13 +61,53 @@ public enum class TextFieldStyles( TextFieldLInnerLabelRequiredStartError("TextField.L.InnerLabel.RequiredStart.Error"), TextFieldLInnerLabelRequiredEndDefault("TextField.L.InnerLabel.RequiredEnd.Default"), TextFieldLInnerLabelRequiredEndError("TextField.L.InnerLabel.RequiredEnd.Error"), + ; + + /** + * Typed API для подбора стиля text-field + */ + public companion object +} + +/** + * Возможные значения свойства size для text-field + */ +public enum class TextFieldSize { + S, + M, + L, +} + +/** + * Возможные значения свойства required-placement для text-field + */ +public enum class TextFieldRequiredPlacement { + None, + Start, + End, +} + +/** + * Возможные значения свойства label-placement для text-field + */ +public enum class TextFieldLabelPlacement { + Inner, + None, +} + +/** + * Возможные значения свойства view для text-field + */ +public enum class TextFieldView { + Default, + Error, } /** * Возвращает [TextFieldStyle] для [TextFieldStyles] */ @Composable -public fun TextFieldStyles.style(modifyAction: @Composable TextFieldStyleBuilder.() -> Unit = {}): TextFieldStyle { +public fun TextFieldStyles.style(modify: @Composable TextFieldStyleBuilder.() -> Unit = {}): TextFieldStyle { val builder = when (this) { TextFieldStyles.TextFieldSDefault -> TextField.S.Default TextFieldStyles.TextFieldSError -> TextField.S.Error @@ -118,5 +158,137 @@ public fun TextFieldStyles.style(modifyAction: @Composable TextFieldStyleBuilder TextFieldStyles.TextFieldLInnerLabelRequiredEndError -> TextField.L.InnerLabel.RequiredEnd.Error } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() +} + +/** + * Возвращает экземпляр [TextFieldStyles] для text-field + */ +public fun TextFieldStyles.Companion.resolve( + size: TextFieldSize = TextFieldSize.S, + requiredPlacement: TextFieldRequiredPlacement = TextFieldRequiredPlacement.None, + labelPlacement: TextFieldLabelPlacement = TextFieldLabelPlacement.Inner, + view: TextFieldView = TextFieldView.Default, +): TextFieldStyles = when { + size == TextFieldSize.S && requiredPlacement == TextFieldRequiredPlacement.None && + labelPlacement == TextFieldLabelPlacement.None && view == TextFieldView.Default -> + TextFieldStyles.TextFieldSDefault + size == TextFieldSize.S && requiredPlacement == TextFieldRequiredPlacement.None && + labelPlacement == TextFieldLabelPlacement.None && view == TextFieldView.Error -> + TextFieldStyles.TextFieldSError + size == TextFieldSize.S && requiredPlacement == TextFieldRequiredPlacement.Start && + labelPlacement == TextFieldLabelPlacement.None && view == TextFieldView.Default -> + TextFieldStyles.TextFieldSRequiredStartDefault + size == TextFieldSize.S && requiredPlacement == TextFieldRequiredPlacement.Start && + labelPlacement == TextFieldLabelPlacement.None && view == TextFieldView.Error -> + TextFieldStyles.TextFieldSRequiredStartError + size == TextFieldSize.S && requiredPlacement == TextFieldRequiredPlacement.End && labelPlacement + == TextFieldLabelPlacement.None && view == TextFieldView.Default -> + TextFieldStyles.TextFieldSRequiredEndDefault + size == TextFieldSize.S && requiredPlacement == TextFieldRequiredPlacement.End && labelPlacement + == TextFieldLabelPlacement.None && view == TextFieldView.Error -> + TextFieldStyles.TextFieldSRequiredEndError + size == TextFieldSize.S && requiredPlacement == TextFieldRequiredPlacement.None && + labelPlacement == TextFieldLabelPlacement.Inner && view == TextFieldView.Default -> + TextFieldStyles.TextFieldSInnerLabelDefault + size == TextFieldSize.S && requiredPlacement == TextFieldRequiredPlacement.None && + labelPlacement == TextFieldLabelPlacement.Inner && view == TextFieldView.Error -> + TextFieldStyles.TextFieldSInnerLabelError + size == TextFieldSize.S && requiredPlacement == TextFieldRequiredPlacement.Start && + labelPlacement == TextFieldLabelPlacement.Inner && view == TextFieldView.Default -> + TextFieldStyles.TextFieldSInnerLabelRequiredStartDefault + size == TextFieldSize.S && requiredPlacement == TextFieldRequiredPlacement.Start && + labelPlacement == TextFieldLabelPlacement.Inner && view == TextFieldView.Error -> + TextFieldStyles.TextFieldSInnerLabelRequiredStartError + size == TextFieldSize.S && requiredPlacement == TextFieldRequiredPlacement.End && labelPlacement + == TextFieldLabelPlacement.Inner && view == TextFieldView.Default -> + TextFieldStyles.TextFieldSInnerLabelRequiredEndDefault + size == TextFieldSize.S && requiredPlacement == TextFieldRequiredPlacement.End && labelPlacement + == TextFieldLabelPlacement.Inner && view == TextFieldView.Error -> + TextFieldStyles.TextFieldSInnerLabelRequiredEndError + size == TextFieldSize.M && requiredPlacement == TextFieldRequiredPlacement.None && + labelPlacement == TextFieldLabelPlacement.None && view == TextFieldView.Default -> + TextFieldStyles.TextFieldMDefault + size == TextFieldSize.M && requiredPlacement == TextFieldRequiredPlacement.None && + labelPlacement == TextFieldLabelPlacement.None && view == TextFieldView.Error -> + TextFieldStyles.TextFieldMError + size == TextFieldSize.M && requiredPlacement == TextFieldRequiredPlacement.Start && + labelPlacement == TextFieldLabelPlacement.None && view == TextFieldView.Default -> + TextFieldStyles.TextFieldMRequiredStartDefault + size == TextFieldSize.M && requiredPlacement == TextFieldRequiredPlacement.Start && + labelPlacement == TextFieldLabelPlacement.None && view == TextFieldView.Error -> + TextFieldStyles.TextFieldMRequiredStartError + size == TextFieldSize.M && requiredPlacement == TextFieldRequiredPlacement.End && labelPlacement + == TextFieldLabelPlacement.None && view == TextFieldView.Default -> + TextFieldStyles.TextFieldMRequiredEndDefault + size == TextFieldSize.M && requiredPlacement == TextFieldRequiredPlacement.End && labelPlacement + == TextFieldLabelPlacement.None && view == TextFieldView.Error -> + TextFieldStyles.TextFieldMRequiredEndError + size == TextFieldSize.M && requiredPlacement == TextFieldRequiredPlacement.None && + labelPlacement == TextFieldLabelPlacement.Inner && view == TextFieldView.Default -> + TextFieldStyles.TextFieldMInnerLabelDefault + size == TextFieldSize.M && requiredPlacement == TextFieldRequiredPlacement.None && + labelPlacement == TextFieldLabelPlacement.Inner && view == TextFieldView.Error -> + TextFieldStyles.TextFieldMInnerLabelError + size == TextFieldSize.M && requiredPlacement == TextFieldRequiredPlacement.Start && + labelPlacement == TextFieldLabelPlacement.Inner && view == TextFieldView.Default -> + TextFieldStyles.TextFieldMInnerLabelRequiredStartDefault + size == TextFieldSize.M && requiredPlacement == TextFieldRequiredPlacement.Start && + labelPlacement == TextFieldLabelPlacement.Inner && view == TextFieldView.Error -> + TextFieldStyles.TextFieldMInnerLabelRequiredStartError + size == TextFieldSize.M && requiredPlacement == TextFieldRequiredPlacement.End && labelPlacement + == TextFieldLabelPlacement.Inner && view == TextFieldView.Default -> + TextFieldStyles.TextFieldMInnerLabelRequiredEndDefault + size == TextFieldSize.M && requiredPlacement == TextFieldRequiredPlacement.End && labelPlacement + == TextFieldLabelPlacement.Inner && view == TextFieldView.Error -> + TextFieldStyles.TextFieldMInnerLabelRequiredEndError + size == TextFieldSize.L && requiredPlacement == TextFieldRequiredPlacement.None && + labelPlacement == TextFieldLabelPlacement.None && view == TextFieldView.Default -> + TextFieldStyles.TextFieldLDefault + size == TextFieldSize.L && requiredPlacement == TextFieldRequiredPlacement.None && + labelPlacement == TextFieldLabelPlacement.None && view == TextFieldView.Error -> + TextFieldStyles.TextFieldLError + size == TextFieldSize.L && requiredPlacement == TextFieldRequiredPlacement.Start && + labelPlacement == TextFieldLabelPlacement.None && view == TextFieldView.Default -> + TextFieldStyles.TextFieldLRequiredStartDefault + size == TextFieldSize.L && requiredPlacement == TextFieldRequiredPlacement.Start && + labelPlacement == TextFieldLabelPlacement.None && view == TextFieldView.Error -> + TextFieldStyles.TextFieldLRequiredStartError + size == TextFieldSize.L && requiredPlacement == TextFieldRequiredPlacement.End && labelPlacement + == TextFieldLabelPlacement.None && view == TextFieldView.Default -> + TextFieldStyles.TextFieldLRequiredEndDefault + size == TextFieldSize.L && requiredPlacement == TextFieldRequiredPlacement.End && labelPlacement + == TextFieldLabelPlacement.None && view == TextFieldView.Error -> + TextFieldStyles.TextFieldLRequiredEndError + size == TextFieldSize.L && requiredPlacement == TextFieldRequiredPlacement.None && + labelPlacement == TextFieldLabelPlacement.Inner && view == TextFieldView.Default -> + TextFieldStyles.TextFieldLInnerLabelDefault + size == TextFieldSize.L && requiredPlacement == TextFieldRequiredPlacement.None && + labelPlacement == TextFieldLabelPlacement.Inner && view == TextFieldView.Error -> + TextFieldStyles.TextFieldLInnerLabelError + size == TextFieldSize.L && requiredPlacement == TextFieldRequiredPlacement.Start && + labelPlacement == TextFieldLabelPlacement.Inner && view == TextFieldView.Default -> + TextFieldStyles.TextFieldLInnerLabelRequiredStartDefault + size == TextFieldSize.L && requiredPlacement == TextFieldRequiredPlacement.Start && + labelPlacement == TextFieldLabelPlacement.Inner && view == TextFieldView.Error -> + TextFieldStyles.TextFieldLInnerLabelRequiredStartError + size == TextFieldSize.L && requiredPlacement == TextFieldRequiredPlacement.End && labelPlacement + == TextFieldLabelPlacement.Inner && view == TextFieldView.Default -> + TextFieldStyles.TextFieldLInnerLabelRequiredEndDefault + size == TextFieldSize.L && requiredPlacement == TextFieldRequiredPlacement.End && labelPlacement + == TextFieldLabelPlacement.Inner && view == TextFieldView.Error -> + TextFieldStyles.TextFieldLInnerLabelRequiredEndError + else -> error("Unsupported text-field style combination") } + +/** + * Возвращает [TextFieldStyle] для text-field + */ +@Composable +public fun TextFieldStyles.Companion.style( + size: TextFieldSize = TextFieldSize.S, + requiredPlacement: TextFieldRequiredPlacement = TextFieldRequiredPlacement.None, + labelPlacement: TextFieldLabelPlacement = TextFieldLabelPlacement.Inner, + view: TextFieldView = TextFieldView.Default, + modify: @Composable TextFieldStyleBuilder.() -> Unit = {}, +): TextFieldStyle = resolve(size, requiredPlacement, labelPlacement, view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/textskeleton/TextSkeletonStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/textskeleton/TextSkeletonStylesCollection.kt index 4177369055..19141a6517 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/textskeleton/TextSkeletonStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/textskeleton/TextSkeletonStylesCollection.kt @@ -43,16 +43,76 @@ public enum class TextSkeletonStyles( TextSkeletonTextM("TextSkeletonText.M"), TextSkeletonTextS("TextSkeletonText.S"), TextSkeletonTextXs("TextSkeletonText.Xs"), + ; + + /** + * Typed API для подбора стиля text-skeleton-body + */ + public object Body + + /** + * Typed API для подбора стиля text-skeleton-display + */ + public object Display + + /** + * Typed API для подбора стиля text-skeleton-header + */ + public object Header + + /** + * Typed API для подбора стиля text-skeleton-text + */ + public object Text +} + +/** + * Возможные значения свойства size для text-skeleton-body + */ +public enum class TextSkeletonBodySize { + L, + M, + S, + Xs, + Xxs, +} + +/** + * Возможные значения свойства size для text-skeleton-display + */ +public enum class TextSkeletonDisplaySize { + L, + M, + S, +} + +/** + * Возможные значения свойства size для text-skeleton-header + */ +public enum class TextSkeletonHeaderSize { + H1, + H2, + H3, + H4, + H5, + H6, +} + +/** + * Возможные значения свойства size для text-skeleton-text + */ +public enum class TextSkeletonTextSize { + L, + M, + S, + Xs, } /** * Возвращает [TextSkeletonStyle] для [TextSkeletonStyles] */ @Composable -public fun TextSkeletonStyles.style( - modifyAction: @Composable TextSkeletonStyleBuilder.() -> Unit = - {}, -): TextSkeletonStyle { +public fun TextSkeletonStyles.style(modify: @Composable TextSkeletonStyleBuilder.() -> Unit = {}): TextSkeletonStyle { val builder = when (this) { TextSkeletonStyles.TextSkeletonBodyL -> TextSkeletonBody.L TextSkeletonStyles.TextSkeletonBodyM -> TextSkeletonBody.M @@ -73,5 +133,99 @@ public fun TextSkeletonStyles.style( TextSkeletonStyles.TextSkeletonTextS -> TextSkeletonText.S TextSkeletonStyles.TextSkeletonTextXs -> TextSkeletonText.Xs } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() +} + +/** + * Возвращает экземпляр [TextSkeletonStyles] для text-skeleton-body + */ +public fun TextSkeletonStyles.Body.resolve(size: TextSkeletonBodySize = TextSkeletonBodySize.L): + TextSkeletonStyles = when { + size == TextSkeletonBodySize.L -> TextSkeletonStyles.TextSkeletonBodyL + size == TextSkeletonBodySize.M -> TextSkeletonStyles.TextSkeletonBodyM + size == TextSkeletonBodySize.S -> TextSkeletonStyles.TextSkeletonBodyS + size == TextSkeletonBodySize.Xs -> TextSkeletonStyles.TextSkeletonBodyXs + size == TextSkeletonBodySize.Xxs -> TextSkeletonStyles.TextSkeletonBodyXxs + else -> error("Unsupported text-skeleton-body style combination") +} + +/** + * Возвращает [TextSkeletonStyle] для text-skeleton-body + */ +@Composable +public fun TextSkeletonStyles.Body.style( + size: TextSkeletonBodySize = TextSkeletonBodySize.L, + modify: @Composable TextSkeletonStyleBuilder.() -> Unit = {}, +): TextSkeletonStyle = + resolve(size).style(modify) + +/** + * Возвращает экземпляр [TextSkeletonStyles] для text-skeleton-display + */ +public fun TextSkeletonStyles.Display.resolve( + size: TextSkeletonDisplaySize = + TextSkeletonDisplaySize.L, +): TextSkeletonStyles = when { + size == TextSkeletonDisplaySize.L -> TextSkeletonStyles.TextSkeletonDisplayL + size == TextSkeletonDisplaySize.M -> TextSkeletonStyles.TextSkeletonDisplayM + size == TextSkeletonDisplaySize.S -> TextSkeletonStyles.TextSkeletonDisplayS + else -> error("Unsupported text-skeleton-display style combination") +} + +/** + * Возвращает [TextSkeletonStyle] для text-skeleton-display + */ +@Composable +public fun TextSkeletonStyles.Display.style( + size: TextSkeletonDisplaySize = + TextSkeletonDisplaySize.L, + modify: @Composable TextSkeletonStyleBuilder.() -> Unit = {}, +): TextSkeletonStyle = resolve(size).style(modify) + +/** + * Возвращает экземпляр [TextSkeletonStyles] для text-skeleton-header + */ +public fun TextSkeletonStyles.Header.resolve( + size: TextSkeletonHeaderSize = + TextSkeletonHeaderSize.H1, +): TextSkeletonStyles = when { + size == TextSkeletonHeaderSize.H1 -> TextSkeletonStyles.TextSkeletonHeaderH1 + size == TextSkeletonHeaderSize.H2 -> TextSkeletonStyles.TextSkeletonHeaderH2 + size == TextSkeletonHeaderSize.H3 -> TextSkeletonStyles.TextSkeletonHeaderH3 + size == TextSkeletonHeaderSize.H4 -> TextSkeletonStyles.TextSkeletonHeaderH4 + size == TextSkeletonHeaderSize.H5 -> TextSkeletonStyles.TextSkeletonHeaderH5 + size == TextSkeletonHeaderSize.H6 -> TextSkeletonStyles.TextSkeletonHeaderH6 + else -> error("Unsupported text-skeleton-header style combination") } + +/** + * Возвращает [TextSkeletonStyle] для text-skeleton-header + */ +@Composable +public fun TextSkeletonStyles.Header.style( + size: TextSkeletonHeaderSize = TextSkeletonHeaderSize.H1, + modify: @Composable TextSkeletonStyleBuilder.() -> Unit = {}, +): TextSkeletonStyle = + resolve(size).style(modify) + +/** + * Возвращает экземпляр [TextSkeletonStyles] для text-skeleton-text + */ +public fun TextSkeletonStyles.Text.resolve(size: TextSkeletonTextSize = TextSkeletonTextSize.L): + TextSkeletonStyles = when { + size == TextSkeletonTextSize.L -> TextSkeletonStyles.TextSkeletonTextL + size == TextSkeletonTextSize.M -> TextSkeletonStyles.TextSkeletonTextM + size == TextSkeletonTextSize.S -> TextSkeletonStyles.TextSkeletonTextS + size == TextSkeletonTextSize.Xs -> TextSkeletonStyles.TextSkeletonTextXs + else -> error("Unsupported text-skeleton-text style combination") +} + +/** + * Возвращает [TextSkeletonStyle] для text-skeleton-text + */ +@Composable +public fun TextSkeletonStyles.Text.style( + size: TextSkeletonTextSize = TextSkeletonTextSize.L, + modify: @Composable TextSkeletonStyleBuilder.() -> Unit = {}, +): TextSkeletonStyle = + resolve(size).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/toast/ToastStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/toast/ToastStylesCollection.kt index 640bdac072..08e7ca3158 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/toast/ToastStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/toast/ToastStylesCollection.kt @@ -28,17 +28,52 @@ public enum class ToastStyles( ToastDefault("Toast.Default"), ToastPositive("Toast.Positive"), ToastNegative("Toast.Negative"), + ; + + /** + * Typed API для подбора стиля toast + */ + public companion object +} + +/** + * Возможные значения свойства view для toast + */ +public enum class ToastView { + Default, + Positive, + Negative, } /** * Возвращает [ToastStyle] для [ToastStyles] */ @Composable -public fun ToastStyles.style(modifyAction: @Composable ToastStyleBuilder.() -> Unit = {}): ToastStyle { +public fun ToastStyles.style(modify: @Composable ToastStyleBuilder.() -> Unit = {}): ToastStyle { val builder = when (this) { ToastStyles.ToastDefault -> Toast.Default ToastStyles.ToastPositive -> Toast.Positive ToastStyles.ToastNegative -> Toast.Negative } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [ToastStyles] для toast + */ +public fun ToastStyles.Companion.resolve(view: ToastView = ToastView.Default): ToastStyles = when { + view == ToastView.Default -> ToastStyles.ToastDefault + view == ToastView.Positive -> ToastStyles.ToastPositive + view == ToastView.Negative -> ToastStyles.ToastNegative + else -> error("Unsupported toast style combination") +} + +/** + * Возвращает [ToastStyle] для toast + */ +@Composable +public fun ToastStyles.Companion.style( + view: ToastView = ToastView.Default, + modify: @Composable + ToastStyleBuilder.() -> Unit = {}, +): ToastStyle = resolve(view).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/tooltip/TooltipStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/tooltip/TooltipStylesCollection.kt index 58f56fc6ea..4d6efae784 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/tooltip/TooltipStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/tooltip/TooltipStylesCollection.kt @@ -27,16 +27,49 @@ public enum class TooltipStyles( ) { TooltipM("Tooltip.M"), TooltipS("Tooltip.S"), + ; + + /** + * Typed API для подбора стиля tooltip + */ + public companion object +} + +/** + * Возможные значения свойства size для tooltip + */ +public enum class TooltipSize { + M, + S, } /** * Возвращает [TooltipStyle] для [TooltipStyles] */ @Composable -public fun TooltipStyles.style(modifyAction: @Composable TooltipStyleBuilder.() -> Unit = {}): TooltipStyle { +public fun TooltipStyles.style(modify: @Composable TooltipStyleBuilder.() -> Unit = {}): TooltipStyle { val builder = when (this) { TooltipStyles.TooltipM -> Tooltip.M TooltipStyles.TooltipS -> Tooltip.S } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [TooltipStyles] для tooltip + */ +public fun TooltipStyles.Companion.resolve(size: TooltipSize = TooltipSize.M): TooltipStyles = when { + size == TooltipSize.M -> TooltipStyles.TooltipM + size == TooltipSize.S -> TooltipStyles.TooltipS + else -> error("Unsupported tooltip style combination") +} + +/** + * Возвращает [TooltipStyle] для tooltip + */ +@Composable +public fun TooltipStyles.Companion.style( + size: TooltipSize = TooltipSize.M, + modify: @Composable + TooltipStyleBuilder.() -> Unit = {}, +): TooltipStyle = resolve(size).style(modify) diff --git a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/wheel/WheelStylesCollection.kt b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/wheel/WheelStylesCollection.kt index 8f5b8746fd..fcc853c96f 100644 --- a/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/wheel/WheelStylesCollection.kt +++ b/tokens/plasma.homeds.compose/src/main/kotlin/com/sdds/plasma/homeds/styles/wheel/WheelStylesCollection.kt @@ -30,13 +30,36 @@ public enum class WheelStyles( WheelH1CenterAlign("Wheel.H1.CenterAlign"), WheelH1LeftAlign("Wheel.H1.LeftAlign"), WheelH1MixedAlign("Wheel.H1.MixedAlign"), + ; + + /** + * Typed API для подбора стиля wheel + */ + public companion object +} + +/** + * Возможные значения свойства size для wheel + */ +public enum class WheelSize { + H1, +} + +/** + * Возможные значения свойства alignment для wheel + */ +public enum class WheelAlignment { + Left, + Right, + Center, + Mixed, } /** * Возвращает [WheelStyle] для [WheelStyles] */ @Composable -public fun WheelStyles.style(modifyAction: @Composable WheelStyleBuilder.() -> Unit = {}): WheelStyle { +public fun WheelStyles.style(modify: @Composable WheelStyleBuilder.() -> Unit = {}): WheelStyle { val builder = when (this) { WheelStyles.WheelH1 -> Wheel.H1 WheelStyles.WheelH1RightAlign -> Wheel.H1.RightAlign @@ -44,5 +67,31 @@ public fun WheelStyles.style(modifyAction: @Composable WheelStyleBuilder.() -> U WheelStyles.WheelH1LeftAlign -> Wheel.H1.LeftAlign WheelStyles.WheelH1MixedAlign -> Wheel.H1.MixedAlign } - return builder.modify(modifyAction).style() + return builder.modify(modify).style() } + +/** + * Возвращает экземпляр [WheelStyles] для wheel + */ +public fun WheelStyles.Companion.resolve( + size: WheelSize = WheelSize.H1, + alignment: WheelAlignment = + WheelAlignment.Left, +): WheelStyles = when { + size == WheelSize.H1 && alignment == WheelAlignment.Right -> WheelStyles.WheelH1RightAlign + size == WheelSize.H1 && alignment == WheelAlignment.Center -> WheelStyles.WheelH1CenterAlign + size == WheelSize.H1 && alignment == WheelAlignment.Left -> WheelStyles.WheelH1LeftAlign + size == WheelSize.H1 && alignment == WheelAlignment.Mixed -> WheelStyles.WheelH1MixedAlign + size == WheelSize.H1 -> WheelStyles.WheelH1 + else -> error("Unsupported wheel style combination") +} + +/** + * Возвращает [WheelStyle] для wheel + */ +@Composable +public fun WheelStyles.Companion.style( + size: WheelSize = WheelSize.H1, + alignment: WheelAlignment = WheelAlignment.Left, + modify: @Composable WheelStyleBuilder.() -> Unit = {}, +): WheelStyle = resolve(size, alignment).style(modify) From b58451716ab7490dc142c08c4043d9d7c2b8816d Mon Sep 17 00:00:00 2001 From: malilex Date: Tue, 21 Apr 2026 17:37:10 +0300 Subject: [PATCH 7/9] chore: Fix spotless issues. --- ...dsSbcomAvatarIndicatorVariationsCompose.kt | 6 +- .../SddsSbcomAvatarVariationsCompose.kt | 6 +- .../SddsSbcomBasicButtonVariationsCompose.kt | 28 ++++-- ...comCircularProgressBarVariationsCompose.kt | 92 ++++++++++++++----- ...igationBarInternalPageVariationsCompose.kt | 4 +- .../SddsSbcomIconButtonVariationsCompose.kt | 12 ++- .../SddsSbcomIndicatorVariationsCompose.kt | 6 +- .../SddsSbcomLoaderVariationsCompose.kt | 12 ++- .../SddsSbcomSpinnerVariationsCompose.kt | 12 ++- ...ddsSbcomVoiceChatBadgeVariationsCompose.kt | 6 +- 10 files changed, 145 insertions(+), 39 deletions(-) diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarIndicatorVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarIndicatorVariationsCompose.kt index 1076df6e91..73cccb4149 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarIndicatorVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarIndicatorVariationsCompose.kt @@ -27,7 +27,11 @@ import com.sdds.sbcom.styles.indicator.resolve internal object SddsSbcomAvatarIndicatorVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty(name = "size", value = "Size14", variants = listOf("Size14", "Size12", "Size10", "Size8", "Size6")), + Property.SingleChoiceProperty( + name = "size", + value = "Size14", + variants = listOf("Size14", "Size12", "Size10", "Size8", "Size6"), + ), ) override val variations: Map> = diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarVariationsCompose.kt index 1b72ece363..bd2510fbf3 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomAvatarVariationsCompose.kt @@ -31,7 +31,11 @@ import com.sdds.sbcom.styles.avatar.resolve internal object SddsSbcomAvatarVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty(name = "size", value = "Size72", variants = listOf("Size72", "Size64", "Size56", "Size44", "Size40", "Size36", "Size32", "Size26", "Size24")), + Property.SingleChoiceProperty( + name = "size", + value = "Size72", + variants = listOf("Size72", "Size64", "Size56", "Size44", "Size40", "Size36", "Size32", "Size26", "Size24"), + ), ) override val variations: Map> = diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonVariationsCompose.kt index b944c759a4..22da08c507 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomBasicButtonVariationsCompose.kt @@ -34,9 +34,17 @@ import com.sdds.sbcom.styles.basicbutton.resolve internal object SddsSbcomBasicButtonVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty(name = "size", value = "Size48", variants = listOf("Size48", "Size40", "Size32", "Size24")), + Property.SingleChoiceProperty( + name = "size", + value = "Size48", + variants = listOf("Size48", "Size40", "Size32", "Size24"), + ), Property.SingleChoiceProperty(name = "bg", value = "Yes", variants = listOf("Yes", "No")), - Property.SingleChoiceProperty(name = "mode", value = "Primary", variants = listOf("Primary", "AccentFilled", "AccentWhite", "AccentGrey", "DangerTint")), + Property.SingleChoiceProperty( + name = "mode", + value = "Primary", + variants = listOf("Primary", "AccentFilled", "AccentWhite", "AccentGrey", "DangerTint"), + ), ) override val variations: Map> = @@ -47,7 +55,9 @@ internal object SddsSbcomBasicButtonVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty(name = "size", value = "Size40", variants = listOf("Size40", "Size32", "Size24", "Size16")), - Property.SingleChoiceProperty(name = "modeColor", value = "Primary", variants = listOf("Primary", "Secondary", "GlobalWhite", "Accent", "Danger")), + Property.SingleChoiceProperty( + name = "size", + value = "Size40", + variants = listOf("Size40", "Size32", "Size24", "Size16"), + ), + Property.SingleChoiceProperty( + name = "modeColor", + value = "Primary", + variants = listOf("Primary", "Secondary", "GlobalWhite", "Accent", "Danger"), + ), ) override val variations: Map> = mapOf( - "CircularProgressBar.Size40.ModeColorPrimary" to ComposeStyleReference { CircularProgressBar.Size40.ModeColorPrimary.style() }, - "CircularProgressBar.Size40.ModeColorSecondary" to ComposeStyleReference { CircularProgressBar.Size40.ModeColorSecondary.style() }, - "CircularProgressBar.Size40.ModeColorGlobalWhite" to ComposeStyleReference { CircularProgressBar.Size40.ModeColorGlobalWhite.style() }, - "CircularProgressBar.Size40.ModeColorAccent" to ComposeStyleReference { CircularProgressBar.Size40.ModeColorAccent.style() }, - "CircularProgressBar.Size40.ModeColorDanger" to ComposeStyleReference { CircularProgressBar.Size40.ModeColorDanger.style() }, - "CircularProgressBar.Size32.ModeColorPrimary" to ComposeStyleReference { CircularProgressBar.Size32.ModeColorPrimary.style() }, - "CircularProgressBar.Size32.ModeColorSecondary" to ComposeStyleReference { CircularProgressBar.Size32.ModeColorSecondary.style() }, - "CircularProgressBar.Size32.ModeColorGlobalWhite" to ComposeStyleReference { CircularProgressBar.Size32.ModeColorGlobalWhite.style() }, - "CircularProgressBar.Size32.ModeColorAccent" to ComposeStyleReference { CircularProgressBar.Size32.ModeColorAccent.style() }, - "CircularProgressBar.Size32.ModeColorDanger" to ComposeStyleReference { CircularProgressBar.Size32.ModeColorDanger.style() }, - "CircularProgressBar.Size24.ModeColorPrimary" to ComposeStyleReference { CircularProgressBar.Size24.ModeColorPrimary.style() }, - "CircularProgressBar.Size24.ModeColorSecondary" to ComposeStyleReference { CircularProgressBar.Size24.ModeColorSecondary.style() }, - "CircularProgressBar.Size24.ModeColorGlobalWhite" to ComposeStyleReference { CircularProgressBar.Size24.ModeColorGlobalWhite.style() }, - "CircularProgressBar.Size24.ModeColorAccent" to ComposeStyleReference { CircularProgressBar.Size24.ModeColorAccent.style() }, - "CircularProgressBar.Size24.ModeColorDanger" to ComposeStyleReference { CircularProgressBar.Size24.ModeColorDanger.style() }, - "CircularProgressBar.Size16.ModeColorPrimary" to ComposeStyleReference { CircularProgressBar.Size16.ModeColorPrimary.style() }, - "CircularProgressBar.Size16.ModeColorSecondary" to ComposeStyleReference { CircularProgressBar.Size16.ModeColorSecondary.style() }, - "CircularProgressBar.Size16.ModeColorGlobalWhite" to ComposeStyleReference { CircularProgressBar.Size16.ModeColorGlobalWhite.style() }, - "CircularProgressBar.Size16.ModeColorAccent" to ComposeStyleReference { CircularProgressBar.Size16.ModeColorAccent.style() }, - "CircularProgressBar.Size16.ModeColorDanger" to ComposeStyleReference { CircularProgressBar.Size16.ModeColorDanger.style() }, + "CircularProgressBar.Size40.ModeColorPrimary" to ComposeStyleReference { + CircularProgressBar.Size40.ModeColorPrimary.style() + }, + "CircularProgressBar.Size40.ModeColorSecondary" to ComposeStyleReference { + CircularProgressBar.Size40.ModeColorSecondary.style() + }, + "CircularProgressBar.Size40.ModeColorGlobalWhite" to ComposeStyleReference { + CircularProgressBar.Size40.ModeColorGlobalWhite.style() + }, + "CircularProgressBar.Size40.ModeColorAccent" to ComposeStyleReference { + CircularProgressBar.Size40.ModeColorAccent.style() + }, + "CircularProgressBar.Size40.ModeColorDanger" to ComposeStyleReference { + CircularProgressBar.Size40.ModeColorDanger.style() + }, + "CircularProgressBar.Size32.ModeColorPrimary" to ComposeStyleReference { + CircularProgressBar.Size32.ModeColorPrimary.style() + }, + "CircularProgressBar.Size32.ModeColorSecondary" to ComposeStyleReference { + CircularProgressBar.Size32.ModeColorSecondary.style() + }, + "CircularProgressBar.Size32.ModeColorGlobalWhite" to ComposeStyleReference { + CircularProgressBar.Size32.ModeColorGlobalWhite.style() + }, + "CircularProgressBar.Size32.ModeColorAccent" to ComposeStyleReference { + CircularProgressBar.Size32.ModeColorAccent.style() + }, + "CircularProgressBar.Size32.ModeColorDanger" to ComposeStyleReference { + CircularProgressBar.Size32.ModeColorDanger.style() + }, + "CircularProgressBar.Size24.ModeColorPrimary" to ComposeStyleReference { + CircularProgressBar.Size24.ModeColorPrimary.style() + }, + "CircularProgressBar.Size24.ModeColorSecondary" to ComposeStyleReference { + CircularProgressBar.Size24.ModeColorSecondary.style() + }, + "CircularProgressBar.Size24.ModeColorGlobalWhite" to ComposeStyleReference { + CircularProgressBar.Size24.ModeColorGlobalWhite.style() + }, + "CircularProgressBar.Size24.ModeColorAccent" to ComposeStyleReference { + CircularProgressBar.Size24.ModeColorAccent.style() + }, + "CircularProgressBar.Size24.ModeColorDanger" to ComposeStyleReference { + CircularProgressBar.Size24.ModeColorDanger.style() + }, + "CircularProgressBar.Size16.ModeColorPrimary" to ComposeStyleReference { + CircularProgressBar.Size16.ModeColorPrimary.style() + }, + "CircularProgressBar.Size16.ModeColorSecondary" to ComposeStyleReference { + CircularProgressBar.Size16.ModeColorSecondary.style() + }, + "CircularProgressBar.Size16.ModeColorGlobalWhite" to ComposeStyleReference { + CircularProgressBar.Size16.ModeColorGlobalWhite.style() + }, + "CircularProgressBar.Size16.ModeColorAccent" to ComposeStyleReference { + CircularProgressBar.Size16.ModeColorAccent.style() + }, + "CircularProgressBar.Size16.ModeColorDanger" to ComposeStyleReference { + CircularProgressBar.Size16.ModeColorDanger.style() + }, ) override fun resolveStyleKey(bindings: Map): String { diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarInternalPageVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarInternalPageVariationsCompose.kt index 8980c1b159..0af4af35ab 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarInternalPageVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomCollapsingNavigationBarInternalPageVariationsCompose.kt @@ -20,6 +20,8 @@ internal object SddsSbcomCollapsingNavigationBarInternalPageVariationsCompose : override val variations: Map> = mapOf( - "CollapsingNavigationBarInternalPage.Default" to ComposeStyleReference { CollapsingNavigationBarInternalPage.Default.style() }, + "CollapsingNavigationBarInternalPage.Default" to ComposeStyleReference { + CollapsingNavigationBarInternalPage.Default.style() + }, ) } diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonVariationsCompose.kt index dc8f8b51b9..34ead3fc0e 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIconButtonVariationsCompose.kt @@ -32,9 +32,17 @@ import com.sdds.sbcom.styles.iconbutton.resolve internal object SddsSbcomIconButtonVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty(name = "size", value = "Size48", variants = listOf("Size48", "Size40", "Size32", "Size24")), + Property.SingleChoiceProperty( + name = "size", + value = "Size48", + variants = listOf("Size48", "Size40", "Size32", "Size24"), + ), Property.SingleChoiceProperty(name = "bg", value = "Yes", variants = listOf("Yes", "No")), - Property.SingleChoiceProperty(name = "mode", value = "AccentFilled", variants = listOf("AccentFilled", "AccentGrey", "DangerTint")), + Property.SingleChoiceProperty( + name = "mode", + value = "AccentFilled", + variants = listOf("AccentFilled", "AccentGrey", "DangerTint"), + ), ) override val variations: Map> = diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIndicatorVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIndicatorVariationsCompose.kt index f941f2ee76..47f1769e4a 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIndicatorVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomIndicatorVariationsCompose.kt @@ -27,7 +27,11 @@ import com.sdds.sbcom.styles.indicator.resolve internal object SddsSbcomIndicatorVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty(name = "state", value = "Success", variants = listOf("Success", "GlobalWhite", "Mute", "Danger", "Warning")), + Property.SingleChoiceProperty( + name = "state", + value = "Success", + variants = listOf("Success", "GlobalWhite", "Mute", "Danger", "Warning"), + ), ) override val variations: Map> = diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomLoaderVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomLoaderVariationsCompose.kt index a632ae5f75..0d9f0296a9 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomLoaderVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomLoaderVariationsCompose.kt @@ -32,8 +32,16 @@ import com.sdds.sbcom.styles.loader.resolve internal object SddsSbcomLoaderVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty(name = "size", value = "Size40", variants = listOf("Size40", "Size32", "Size24", "Size16")), - Property.SingleChoiceProperty(name = "modeColor", value = "Primary", variants = listOf("Primary", "Secondary", "GlobalWhite", "Accent", "Danger")), + Property.SingleChoiceProperty( + name = "size", + value = "Size40", + variants = listOf("Size40", "Size32", "Size24", "Size16"), + ), + Property.SingleChoiceProperty( + name = "modeColor", + value = "Primary", + variants = listOf("Primary", "Secondary", "GlobalWhite", "Accent", "Danger"), + ), ) override val variations: Map> = diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSpinnerVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSpinnerVariationsCompose.kt index 9082f441b4..4908826677 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSpinnerVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomSpinnerVariationsCompose.kt @@ -32,8 +32,16 @@ import com.sdds.sbcom.styles.spinner.resolve internal object SddsSbcomSpinnerVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty(name = "size", value = "Size40", variants = listOf("Size40", "Size32", "Size24", "Size16")), - Property.SingleChoiceProperty(name = "modeColor", value = "Primary", variants = listOf("Primary", "Secondary", "GlobalWhite", "Accent", "Danger")), + Property.SingleChoiceProperty( + name = "size", + value = "Size40", + variants = listOf("Size40", "Size32", "Size24", "Size16"), + ), + Property.SingleChoiceProperty( + name = "modeColor", + value = "Primary", + variants = listOf("Primary", "Secondary", "GlobalWhite", "Accent", "Danger"), + ), ) override val variations: Map> = diff --git a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomVoiceChatBadgeVariationsCompose.kt b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomVoiceChatBadgeVariationsCompose.kt index b50ccd91b1..2eeda30bb2 100644 --- a/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomVoiceChatBadgeVariationsCompose.kt +++ b/tokens/sdds-sbcom-compose/integration/src/main/kotlin/com/sdds/sbcom/integration/SddsSbcomVoiceChatBadgeVariationsCompose.kt @@ -26,7 +26,11 @@ import com.sdds.sbcom.styles.iconbadge.resolve internal object SddsSbcomVoiceChatBadgeVariationsCompose : ComposeStyleProvider() { override val bindings: Set> = setOf( - Property.SingleChoiceProperty(name = "size", value = "Size20", variants = listOf("Size20", "Size18", "Size16", "Size14")), + Property.SingleChoiceProperty( + name = "size", + value = "Size20", + variants = listOf("Size20", "Size18", "Size16", "Size14"), + ), ) override val variations: Map> = From b0f86c1d7f17a84239b95f22ecd87cdb25e603ac Mon Sep 17 00:00:00 2001 From: malilex Date: Tue, 21 Apr 2026 18:32:37 +0300 Subject: [PATCH 8/9] feat: Minor UI improvement. --- .../compose/sandbox/ComposeStyleProvider.kt | 12 +- .../sandbox/internal/ComponentScaffold.kt | 2 + .../sandbox/internal/ComponentViewModel.kt | 15 +- .../compose/sandbox/internal/Properties.kt | 138 ++++++++++++------ .../kotlin/com/sdds/sandbox/StyleProvider.kt | 2 +- 5 files changed, 116 insertions(+), 53 deletions(-) diff --git a/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/ComposeStyleProvider.kt b/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/ComposeStyleProvider.kt index df5d51228d..ae41745392 100644 --- a/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/ComposeStyleProvider.kt +++ b/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/ComposeStyleProvider.kt @@ -52,6 +52,12 @@ abstract class ComposeStyleProvider : StyleProvider> = emptySet() + /** + * @see StyleProvider.defaultVariant + */ + override val defaultVariant: String + get() = resolveStyleKey(getDefaultBindings()) + /** * Получает экземпляр стиля по его ключу и немедленно создает его. * @@ -93,7 +99,7 @@ abstract class ComposeStyleProvider : StyleProvider): String { - return defaultVariant + return super.defaultVariant } protected fun booleanBindingValue( @@ -107,4 +113,8 @@ abstract class ComposeStyleProvider : StyleProvider defaultValue } } + + private fun getDefaultBindings(): Map { + return bindings.associate { it.name to it.value } + } } diff --git a/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/internal/ComponentScaffold.kt b/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/internal/ComponentScaffold.kt index dd0b2a1508..4059641138 100644 --- a/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/internal/ComponentScaffold.kt +++ b/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/internal/ComponentScaffold.kt @@ -224,6 +224,7 @@ private fun AnimatedMenuProperty( ) { val contentState = remember { mutableStateOf(MenuPropertyContent.PropertiesList) } val properties by viewModel.properties.collectAsState() + val styleProperties by viewModel.styleProperties.collectAsState() BackHandler(enabled = contentState.value is MenuPropertyContent.PropertyEditor) { contentState.value = MenuPropertyContent.PropertiesList } @@ -248,6 +249,7 @@ private fun AnimatedMenuProperty( .then(insetsModifier), headerTitle = title, properties = properties, + styleProperties = styleProperties, onSelect = { property -> if (property is Property.BooleanProperty) { val newValue = !property.value diff --git a/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/internal/ComponentViewModel.kt b/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/internal/ComponentViewModel.kt index 8419ec956e..93acd86dc0 100644 --- a/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/internal/ComponentViewModel.kt +++ b/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/internal/ComponentViewModel.kt @@ -52,13 +52,22 @@ internal class ComponentViewModel( */ val subtheme: StateFlow = _subtheme.asStateFlow() - override val properties: StateFlow>> = + /** + * Параметры стиля + */ + val styleProperties: StateFlow>> = combine(internalUiState, theme, selectedBindings) { state, themeState, bindings -> if (themeState.components.components.isEmpty()) return@combine emptyList() updateUiStateWithDefaultVariant(state, themeState) appearanceProperties(state, themeState) + - styleProperties(state, themeState, bindings) + - state.toProps() + styleProperties(state, themeState, bindings) + } + .stateIn(viewModelScope, SharingStarted.Lazily, emptyList()) + + override val properties: StateFlow>> = + combine(internalUiState, theme, selectedBindings) { state, themeState, bindings -> + if (themeState.components.components.isEmpty()) return@combine emptyList() + state.toProps() } .stateIn(viewModelScope, SharingStarted.Lazily, emptyList()) diff --git a/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/internal/Properties.kt b/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/internal/Properties.kt index d22905f7b4..07d681886f 100644 --- a/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/internal/Properties.kt +++ b/integration-core/sandbox-compose/src/main/kotlin/com/sdds/compose/sandbox/internal/Properties.kt @@ -9,12 +9,15 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.wrapContentWidth -import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll import androidx.compose.runtime.Composable import androidx.compose.runtime.Immutable import androidx.compose.runtime.compositionLocalOf @@ -151,6 +154,7 @@ internal fun PropertiesList( onReset: () -> Unit, headerTitle: String, properties: List>, + styleProperties: List>, modifier: Modifier = Modifier, style: PropertiesListStyle = LocalPropertiesListStyle.current, ) { @@ -159,63 +163,101 @@ internal fun PropertiesList( .clip(style.shape) .background(style.backgroundColor) .then(modifier) - .padding(horizontal = 4.dp), + .padding(horizontal = 4.dp) + .verticalScroll(rememberScrollState()), ) { PropertiesHeader( title = headerTitle, style = style, onResetClicked = onReset, ) - LazyColumn( - modifier = Modifier.fillMaxWidth(), - verticalArrangement = Arrangement.spacedBy(style.spaceBetweenProperties), - ) { - items(properties.size) { - when (val property = properties[it]) { - is Property.BooleanProperty -> - SwitchPropertyListItem( - style = style, - onClick = { onSelect(property) }, - propertyName = property.name, - propertyValue = property.value, - ) + PropertiesListSection( + sectionTitle = "Стилизация", + onSelect = onSelect, + properties = styleProperties, + modifier = modifier, + style = style, + ) + Spacer(Modifier.size(30.dp)) + PropertiesListSection( + sectionTitle = "Состояние", + onSelect = onSelect, + properties = properties, + modifier = modifier, + style = style, + ) + } +} + +@Composable +private fun PropertiesListSection( + sectionTitle: String, + onSelect: (Property<*>) -> Unit, + properties: List>, + modifier: Modifier = Modifier, + style: PropertiesListStyle = LocalPropertiesListStyle.current, +) { + if (properties.isEmpty()) return + val interactionSource = remember { MutableInteractionSource() } + Column( + modifier = modifier.fillMaxWidth(), + verticalArrangement = Arrangement.spacedBy(style.spaceBetweenProperties), + ) { + val sectionHeaderColor = style.propertyLabelTextColor.colorForInteractionAsState(interactionSource) + Text( + modifier = Modifier + .align(Alignment.Start) + .padding(horizontal = style.propertyPaddings), + text = sectionTitle, + style = style.headerTextStyle, + color = { sectionHeaderColor.value }, + ) + + repeat(properties.size) { + when (val property = properties[it]) { + is Property.BooleanProperty -> + SwitchPropertyListItem( + style = style, + onClick = { onSelect(property) }, + propertyName = property.name, + propertyValue = property.value, + ) - is Property.IntProperty -> - ValuePropertyListItem( - style = style, - onClick = { onSelect(property) }, - propertyName = property.name, - propertyValue = property.value.toString(), - icon = painterResource(id = Icons.ic_keyboard_outline_16), - ) + is Property.IntProperty -> + ValuePropertyListItem( + style = style, + onClick = { onSelect(property) }, + propertyName = property.name, + propertyValue = property.value.toString(), + icon = painterResource(id = Icons.ic_keyboard_outline_16), + ) - is Property.FloatProperty -> - ValuePropertyListItem( - style = style, - onClick = { onSelect(property) }, - propertyName = property.name, - propertyValue = property.value.toString(), - icon = painterResource(id = Icons.ic_keyboard_outline_16), - ) + is Property.FloatProperty -> + ValuePropertyListItem( + style = style, + onClick = { onSelect(property) }, + propertyName = property.name, + propertyValue = property.value.toString(), + icon = painterResource(id = Icons.ic_keyboard_outline_16), + ) - is Property.SingleChoiceProperty -> - ValuePropertyListItem( - style = style, - onClick = { onSelect(property) }, - propertyName = property.name, - propertyValue = property.value, - icon = painterResource(id = Icons.ic_disclosure_right_outline_16), - ) + is Property.SingleChoiceProperty -> + ValuePropertyListItem( + style = style, + onClick = { onSelect(property) }, + propertyName = property.name, + propertyValue = property.value, + icon = painterResource(id = Icons.ic_disclosure_right_outline_16), + ) - is Property.StringProperty -> - ValuePropertyListItem( - style = style, - onClick = { onSelect(property) }, - propertyName = property.name, - propertyValue = property.value, - icon = painterResource(id = Icons.ic_keyboard_outline_16), - ) - } + is Property.StringProperty -> + ValuePropertyListItem( + style = style, + onClick = { onSelect(property) }, + propertyName = property.name, + propertyValue = property.value, + icon = painterResource(id = Icons.ic_keyboard_outline_16), + ) } } } diff --git a/integration-core/sandbox-core/src/main/kotlin/com/sdds/sandbox/StyleProvider.kt b/integration-core/sandbox-core/src/main/kotlin/com/sdds/sandbox/StyleProvider.kt index a20a5f731c..a17bbf3dd0 100644 --- a/integration-core/sandbox-core/src/main/kotlin/com/sdds/sandbox/StyleProvider.kt +++ b/integration-core/sandbox-core/src/main/kotlin/com/sdds/sandbox/StyleProvider.kt @@ -63,7 +63,7 @@ abstract class StyleProvider> { * * @throws NoSuchElementException если [variations] пуст */ - val defaultVariant: String + open val defaultVariant: String get() = variations.entries.first().key /** From 2586e9f29e2f62b9e860d70e1a4fca889892ea11 Mon Sep 17 00:00:00 2001 From: malilex Date: Tue, 21 Apr 2026 19:38:29 +0300 Subject: [PATCH 9/9] chore: delete adr --- SandboxADR.md | 239 -------------------------------------------------- 1 file changed, 239 deletions(-) delete mode 100644 SandboxADR.md diff --git a/SandboxADR.md b/SandboxADR.md deleted file mode 100644 index 8a7b3c079f..0000000000 --- a/SandboxADR.md +++ /dev/null @@ -1,239 +0,0 @@ -# ADR: Sandbox. Библиотека для создания демо‑приложений - -## Статус -Draft (частичная реализация уже есть в PR) - -## Контекст и цель -Нужна единая библиотека и каркас демо‑приложений для дизайн‑системы, чтобы: -- унифицировать регистрацию историй (stories) и темы; -- иметь стабильный UX и UI для демо‑приложений в Compose и View‑системе; -- позволить дизайн‑системам подключаться через `include-build` и быстро получать песочницу. - -## Обзор решения -Решение строится на библиотечных модулях `sandbox-*`, которые инкапсулируют: -- базовые сущности (stories, state, registry, theme); -- UI оболочку демо‑приложения для Compose и View‑системы; -- KSP‑процессор для генерации регистрации историй. - -Каждая дизайн‑система (`/tokens/*`) содержит 2 служебных модуля: -- `integration`: подключает стили компонентов и связывает их с `sandbox-core`; -- `app`: демо‑приложение, наследуется от `SandboxActivity` и регистрирует темы/истории. - -## Расположение модулей -Все `sandbox-*` модули располагаются в `plasma-android/integration-core/`: - -``` -integration-core/ - sandbox-core/ - sandbox-compose/ - sandbox-views/ - sandbox-ksp/ -``` - -Модули дизайн‑систем располагаются в `/tokens/*`: - -``` -tokens// - docs/ - integration/ - app/ -``` - -## Модули sandbox - -### sandbox-core -Назначение: -- базовые сущности для stories и темы; -- реестр историй `StoryRegistry`; -- базовые интерфейсы темы и компонентов (`Theme`, `ComponentProvider`, `ComponentKey`); -- модель `UiState` и система редактируемых свойств (properties). - -Использование: -- stories описываются через `@Story` и `@StoryUiState`; -- `BaseStory` регистрируется в `StoryRegistry`; -- `ThemeManager` хранит текущую тему для песочницы. - -### sandbox-compose -Назначение: -- UI оболочка демо‑приложения на Compose; -- `SandboxActivity` с базовым экраном, навигацией и редактором свойств; -- Compose‑инфраструктура тем (`ComposeTheme`, `ComposeStyleProvider`). - -Использование: -- модуль `app` наследует `SandboxActivity`; -- тема приложения подготавливается как `SandboxTheme` внутри модуля и подключается в `SandboxActivity`; -- stories реализуются как наследники `ComposeBaseStory`. - -### sandbox-views -Назначение: -- UI оболочка демо‑приложения для View‑системы; -- `SandboxActivity` для View‑подхода; -- View‑тема и реестр историй. - -Источник UI: -- UI переносится из `playground.sandbox-compose` (пакет `core.view`); -- после переноса директория `playground` будет удалена. - -Использование: -- модуль `app` наследует `SandboxActivity` из `sandbox-views`; -- подключает `SandboxTheme` и регистрирует истории через `registerStories()`. - -### sandbox-ksp -Назначение: -- KSP‑процессор для генерации: - - списка историй; - - преобразования UiState в набор editable‑properties; - - функции `registerStories()`. - -Использование: -- включается в `integration`/`app` модуле; -- находит классы с `@Story` и `@StoryUiState`; -- генерирует `registerStories()` в пакете `com.sdds.sandbox` (или по опции `packageName`). - -## Модули дизайн‑системы (/tokens/*) - -### integration -Назначение: -- подключение стилей и компонентов; -- формирование `ComponentProvider` и `Theme`; -- зависит от `sandbox-core`. - -Сборка: -- использует `convention.integration-view` и `convention.integration-compose`; -- подключает стили, сгенерированные через `sdds-core/plugin-theme-builder`. - -### app -Назначение: -- демо‑приложение конкретной дизайн‑системы; -- зависит от: - - `integration`; - - `sandbox-core`; - - `sandbox-compose` или `sandbox-views`. - -Сборка: -- использует `convention.sandbox-app`. - -### Activity в app -Activity в `tokens//app`: -- наследуется от `SandboxActivity` (`sandbox-compose` или `sandbox-views`); -- вызывает: - - `registerTheme()` — регистрация темы; - - `registerCoreStories()` — базовые stories; - - `registerStories()` — сгенерированные sandbox‑ksp. - -## Истории (Stories) - -### Общие -- Compose: общие stories находятся в `uikit-compose-fixtures`, подпакет `.stories`. -- View‑system: общие stories находятся в `uikit-fixtures`, подпакет `stories`. - -### Специфичные для дизайн‑систем -- хранятся в модуле `app` конкретной дизайн‑системы. - -### Пример Story и UiState (Compose) - -```kotlin -@StoryUiState -data class ButtonUiState( - override val variant: String = "", - override val appearance: String = "", - val label: String = "label", - val value: String = "value", - val spacing: ButtonSpacing = ButtonSpacing.SpaceBetween, -) : UiState { - override fun updateVariant(appearance: String, variant: String): UiState { - return copy(appearance = appearance, variant = variant) - } -} - -@Story -object BasicButtonStory : ComposeBaseStory( - ComponentKey.BasicButton, - ButtonUiState(), - ButtonUiStatePropertiesProducer, - ButtonUiStateTransformer -) { - @Composable - override fun BoxScope.Content(style: ButtonStyle, state: ButtonUiState) { - Button( - style = style, - label = state.label, - value = state.value, - onClick = {}, - ) - } -} -``` - -Пояснение к примеру: -- `@StoryUiState` помечает UI‑состояние, из которого KSP генерирует `PropertiesProducer` и `StateTransformer` (они управляют списком редактируемых свойств и обновлением состояния). -- `@Story` помечает story, которую KSP регистрирует в `registerStories()`. -- `ComposeBaseStory` связывает состояние, стиль и UI‑контент, чтобы песочница могла отобразить компонент и дать редактор свойств. - -### Пример кастомных PropertyProducer и StateValueTransformer -Пример демонстрирует: -- кастомный `PropertyProducer` через `@StoryProperty(producedBy = ...)`; -- нормализацию значения через `@StoryProperty(transformedBy = ...)` и `StateValueTransformer`. - -```kotlin -@StoryUiState -data class ButtonGroupUiState( - override val variant: String = "", - override val appearance: String = "", - @StoryProperty("orient", producedBy = ButtonGroupOrientationProperty::class) - val orientation: ButtonGroupOrientation = ButtonGroupOrientation.Horizontal, - @StoryProperty(transformedBy = ButtonGroupAmountTransformer::class) - val amount: Int = 3, -) : UiState { - override fun updateVariant(appearance: String, variant: String): UiState { - return copy(appearance = appearance, variant = variant) - } -} - - -object ButtonGroupOrientationProperty : PropertyProducer { - override fun produce(state: ButtonGroupUiState): Property<*> { - return enumProperty( - name = "orientation", - value = state.orientation, - ) - } -} - -object ButtonGroupAmountTransformer : StateValueTransformer { - override fun transform(input: Int): Int { - return input.coerceAtLeast(0) - } -} -``` - -## Подключение tokens через include-build -`integration-core` подключается к `tokens/*` через `include-build`, чтобы дизайн‑системы могли использовать библиотечные модули `sandbox-*` без дублирования и сложной публикации. - -## Поток исполнения (упрощенно) -1. `SandboxActivity` запускает основную UI оболочку демо. -2. `registerTheme()` устанавливает текущую тему в `ThemeManager`. -3. `registerCoreStories()` добавляет общие stories. -4. `registerStories()` (сгенерированный KSP) регистрирует stories из DS. -5. UI отображает список историй и предоставляет редактор свойств. - -## План работ (оставшиеся задачи) -1. Создать директорию `integration-core/` и перенести туда `sandbox-core`, `sandbox-compose`, `sandbox-ksp`, `sandbox-views`. -2. Реализовать `sandbox-views`: - - перенести UI из `playground.sandbox-compose` (пакет `core.view`); - - адаптировать под новую структуру и зависимости; - - после переноса удалить директорию `playground`. -3. Подключить `SandboxTheme` в `sandbox-compose` и `sandbox-views` через `sdds-core/plugin-theme-builder`. -4. В `/tokens/*` добавить модули `integration` и `app` рядом с `docs`. -5. В `integration`: - - подключить `convention.integration-view` и `convention.integration-compose`; - - добавить зависимость от `sandbox-core`; - - зарегистрировать стили компонентов. -6. В `app`: - - подключить `convention.sandbox-app`; - - добавить Activity, наследующую `SandboxActivity`; - - вызвать `registerTheme()`, `registerCoreStories()`, `registerStories()`. -7. В каждом DS добавить entities с аннотациями `@Story` и `@StoryUiState`. -8. Подключить `integration-core` к `tokens/*` через `include-build`. -9. Обновить документацию по запуску песочниц и шагам подключения новых DS. -10. Добавить механизм автообновления демо‑приложения, перенести/использовать реализацию из `playground:sandbox-compose`.