diff --git a/client/src/commonMain/kotlin/com/lightningkite/kiteui/forms/HorizontalListRenderer.kt b/client/src/commonMain/kotlin/com/lightningkite/kiteui/forms/HorizontalListRenderer.kt index b8df86e..ff90a92 100644 --- a/client/src/commonMain/kotlin/com/lightningkite/kiteui/forms/HorizontalListRenderer.kt +++ b/client/src/commonMain/kotlin/com/lightningkite/kiteui/forms/HorizontalListRenderer.kt @@ -51,6 +51,7 @@ object HorizontalListRenderer : Renderer> { override val name: String = "Horizontal List" // by Claude override fun priority(context: RenderContext>, module: FormModule): Float { + if (context.serializer.descriptor.isNullable) return -1f if (context.serializer.descriptor.kind != StructureKind.LIST) return -1f // Higher priority for explicit annotation - by Claude diff --git a/client/src/commonMain/kotlin/com/lightningkite/kiteui/forms/ListRenderer.kt b/client/src/commonMain/kotlin/com/lightningkite/kiteui/forms/ListRenderer.kt index c0f336d..4861ae8 100644 --- a/client/src/commonMain/kotlin/com/lightningkite/kiteui/forms/ListRenderer.kt +++ b/client/src/commonMain/kotlin/com/lightningkite/kiteui/forms/ListRenderer.kt @@ -46,6 +46,7 @@ object ListRenderer : Renderer> { override val name: String = "List" // by Claude override fun priority(context: RenderContext>, module: FormModule): Float { + if (context.serializer.descriptor.isNullable) return -1f return if (context.serializer.descriptor.kind == StructureKind.LIST) 0.8f else -1f } diff --git a/client/src/commonMain/kotlin/com/lightningkite/kiteui/forms/SetRenderer.kt b/client/src/commonMain/kotlin/com/lightningkite/kiteui/forms/SetRenderer.kt index 23a6521..4d60c60 100644 --- a/client/src/commonMain/kotlin/com/lightningkite/kiteui/forms/SetRenderer.kt +++ b/client/src/commonMain/kotlin/com/lightningkite/kiteui/forms/SetRenderer.kt @@ -43,6 +43,7 @@ object SetRenderer : Renderer> { override fun priority(context: RenderContext>, module: FormModule): Float { val descriptor = context.serializer.descriptor + if (descriptor.isNullable) return -1f // Match sets specifically - they have StructureKind.LIST but serialName contains "Set" return if (descriptor.kind == StructureKind.LIST && descriptor.serialName.contains("Set")) 0.85f else -1f } diff --git a/client/src/commonMain/kotlin/com/lightningkite/kiteui/forms/TableRenderer.kt b/client/src/commonMain/kotlin/com/lightningkite/kiteui/forms/TableRenderer.kt index 076b8fa..0a4a5c6 100644 --- a/client/src/commonMain/kotlin/com/lightningkite/kiteui/forms/TableRenderer.kt +++ b/client/src/commonMain/kotlin/com/lightningkite/kiteui/forms/TableRenderer.kt @@ -43,6 +43,7 @@ object TableRenderer : Renderer> { override val name: String = "Table" // by Claude override fun priority(context: RenderContext>, module: FormModule): Float { + if (context.serializer.descriptor.isNullable) return -1f // Only match lists where inner type has serializableProperties if (context.serializer.descriptor.kind != StructureKind.LIST) return -1f