├── .editorconfig ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── composeApp ├── src │ ├── androidMain │ │ ├── res │ │ │ └── values │ │ │ │ └── styles.xml │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── paligot │ │ │ │ └── jsonforms │ │ │ │ └── kotlin │ │ │ │ └── android │ │ │ │ └── MainActivity.kt │ │ └── AndroidManifest.xml │ ├── commonMain │ │ ├── composeResources │ │ │ └── drawable │ │ │ │ ├── de.svg │ │ │ │ └── fr.svg │ │ └── kotlin │ │ │ └── com │ │ │ └── paligot │ │ │ └── jsonforms │ │ │ └── kotlin │ │ │ ├── panes │ │ │ ├── address │ │ │ │ ├── AddressUiModel.kt │ │ │ │ ├── AddressFormVM.kt │ │ │ │ ├── geocode │ │ │ │ │ ├── GeocodeNet.kt │ │ │ │ │ └── GeocodeApi.kt │ │ │ │ └── AddressFormPane.kt │ │ │ └── FormListPane.kt │ │ │ ├── App.kt │ │ │ ├── ui │ │ │ ├── FormScaffold.kt │ │ │ └── MyApplicationTheme.kt │ │ │ └── FormDescriptionNavGraph.kt │ └── desktopMain │ │ └── kotlin │ │ └── com │ │ └── paligot │ │ └── jsonforms │ │ └── kotlin │ │ └── desktop │ │ └── main.kt └── build.gradle.kts ├── renovate.json ├── .gitignore ├── .github ├── ci-gradle.properties └── workflows │ ├── publish.yaml │ ├── publish-docs.yaml │ └── build.yaml ├── shared ├── src │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── paligot │ │ │ └── jsonforms │ │ │ └── kotlin │ │ │ ├── models │ │ │ ├── uischema │ │ │ │ ├── Orientation.kt │ │ │ │ ├── Rule.kt │ │ │ │ ├── LayoutOptions.kt │ │ │ │ ├── Condition.kt │ │ │ │ ├── Effect.kt │ │ │ │ ├── HorizontalLayout.kt │ │ │ │ ├── VerticalLayout.kt │ │ │ │ ├── UiSchema.kt │ │ │ │ ├── Format.kt │ │ │ │ ├── Control.kt │ │ │ │ ├── GroupLayout.kt │ │ │ │ └── ControlOptions.kt │ │ │ ├── schema │ │ │ │ ├── Schema.kt │ │ │ │ ├── BooleanProperty.kt │ │ │ │ ├── NumberProperty.kt │ │ │ │ ├── ArrayProperty.kt │ │ │ │ ├── Property.kt │ │ │ │ ├── StringProperty.kt │ │ │ │ └── ObjectProperty.kt │ │ │ └── serializers │ │ │ │ ├── RegexSerializer.kt │ │ │ │ ├── ImmutableListSerializer.kt │ │ │ │ ├── ImmutableMapSerializer.kt │ │ │ │ └── ObjectPropertyListSerializer.kt │ │ │ ├── internal │ │ │ ├── checks │ │ │ │ ├── BooleanProperty.ext.kt │ │ │ │ ├── ValidationCheck.kt │ │ │ │ ├── NumberProperty.ext.kt │ │ │ │ ├── StringProperty.ext.kt │ │ │ │ └── Property.ext.kt │ │ │ ├── ext │ │ │ │ ├── BooleanProperty.ext.kt │ │ │ │ ├── Control.ext.kt │ │ │ │ ├── JsonPrimitive.ext.kt │ │ │ │ ├── StringProperty.ext.kt │ │ │ │ └── Rule.ext.kt │ │ │ ├── queries │ │ │ │ ├── UiSchema.ext.kt │ │ │ │ ├── ObjectProperty.ext.kt │ │ │ │ └── Control.ext.kt │ │ │ └── FieldError.kt │ │ │ └── SchemaProvider.kt │ └── commonTest │ │ └── kotlin │ │ └── com │ │ └── paligot │ │ └── jsonforms │ │ └── kotlin │ │ ├── internal │ │ ├── checks │ │ │ ├── BooleanPropertyValidateTest.kt │ │ │ ├── StringPropertyValidateTest.kt │ │ │ ├── NumberPropertyValidateTest.kt │ │ │ ├── PropertyValidatePropertyTest.kt │ │ │ └── ObjectPropertyIsRequiredTest.kt │ │ ├── ext │ │ │ ├── BooleanPropertyIsToggleTest.kt │ │ │ ├── StringPropertyIsDropdownTest.kt │ │ │ ├── ControlPropertyPathTest.kt │ │ │ ├── StringPropertyIsPhoneTest.kt │ │ │ ├── StringPropertyIsEmailTest.kt │ │ │ ├── StringPropertyIsPasswordTest.kt │ │ │ ├── ControlPropertyKeyTest.kt │ │ │ ├── PropertyLabelTest.kt │ │ │ ├── PropertyMaxCounterTest.kt │ │ │ ├── StringPropertyIsRadioTest.kt │ │ │ ├── PropertyIsEnabledTest.kt │ │ │ └── RuleEvaluateEnabledTest.kt │ │ └── queries │ │ │ └── ObjectPropertyGetPropertyByControlTest.kt │ │ └── models │ │ ├── schema │ │ └── PropertyPatternSerializationTest.kt │ │ └── uischema │ │ └── UiSchemaTest.kt ├── README.md └── build.gradle.kts ├── scripts └── build_docs.sh ├── settings.gradle.kts ├── renderers ├── cupertino │ ├── src │ │ └── commonMain │ │ │ └── kotlin │ │ │ └── com │ │ │ └── paligot │ │ │ └── jsonforms │ │ │ └── cupertino │ │ │ ├── layout │ │ │ ├── Column.kt │ │ │ ├── Row.kt │ │ │ └── CupertinoSection.kt │ │ │ └── ui │ │ │ ├── Checkbox.kt │ │ │ ├── WheelPicker.kt │ │ │ ├── Switch.kt │ │ │ ├── SegmentedControl.kt │ │ │ └── OutlinedTextField.kt │ ├── api │ │ ├── desktop │ │ │ └── cupertino.api │ │ └── android │ │ │ └── cupertino.api │ ├── README.md │ └── build.gradle.kts └── material3 │ ├── src │ └── commonMain │ │ └── kotlin │ │ └── com │ │ └── paligot │ │ └── jsonforms │ │ └── material3 │ │ ├── layout │ │ ├── Column.kt │ │ └── Row.kt │ │ └── ui │ │ ├── Checkbox.kt │ │ ├── Switch.kt │ │ └── OutlinedTextField.kt │ ├── api │ ├── android │ │ └── material3.api │ └── desktop │ │ └── material3.api │ ├── README.md │ └── build.gradle.kts ├── mkdocs.yml ├── ui ├── README.md ├── src │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── paligot │ │ │ └── jsonforms │ │ │ └── ui │ │ │ ├── RendererBooleanScope.kt │ │ │ ├── Layout.kt │ │ │ ├── RendererNumberScope.kt │ │ │ ├── RendererLayoutScope.kt │ │ │ ├── JsonForm.kt │ │ │ └── Property.kt │ └── desktopTest │ │ └── kotlin │ │ └── com │ │ └── paligot │ │ └── jsonforms │ │ └── ui │ │ ├── RendererNumberScopeTest.kt │ │ ├── PropertyTest.kt │ │ ├── RendererLayoutScopeTest.kt │ │ └── RendererBooleanScopeTest.kt └── build.gradle.kts ├── README.md ├── docs ├── index.md ├── state-management.md ├── custom-rendering.md └── create-renderer.md └── gradlew.bat /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.{kt,kts}] 2 | ktlint_function_naming_ignore_when_annotated_with=Composable 3 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GerardPaligot/jsonforms-kotlin/HEAD/gradle.properties -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GerardPaligot/jsonforms-kotlin/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /composeApp/src/androidMain/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 |