diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-dark-chromium-linux.png
new file mode 100644
index 00000000..c3313cef
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-dark-webkit-linux.png
new file mode 100644
index 00000000..fdc39ceb
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-light-chromium-linux.png
new file mode 100644
index 00000000..953238dd
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-light-webkit-linux.png
new file mode 100644
index 00000000..11dcef38
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-object-dark-chromium-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-object-dark-chromium-linux.png
new file mode 100644
index 00000000..7bc8fcb9
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-object-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-object-dark-webkit-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-object-dark-webkit-linux.png
new file mode 100644
index 00000000..489276f4
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-object-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-object-light-chromium-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-object-light-chromium-linux.png
new file mode 100644
index 00000000..c134c260
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-object-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-object-light-webkit-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-object-light-webkit-linux.png
new file mode 100644
index 00000000..2b15d43a
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-object-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-string-dark-chromium-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-string-dark-chromium-linux.png
new file mode 100644
index 00000000..5a39d402
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-string-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-string-dark-webkit-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-string-dark-webkit-linux.png
new file mode 100644
index 00000000..734558aa
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-string-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-string-light-chromium-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-string-light-chromium-linux.png
new file mode 100644
index 00000000..aa4abfd7
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-string-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-string-light-webkit-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-string-light-webkit-linux.png
new file mode 100644
index 00000000..82846cdb
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-default-value-string-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-description-dark-chromium-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-description-dark-chromium-linux.png
new file mode 100644
index 00000000..184d25c2
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-description-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-description-dark-webkit-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-description-dark-webkit-linux.png
new file mode 100644
index 00000000..91ae8d7c
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-description-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-description-light-chromium-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-description-light-chromium-linux.png
new file mode 100644
index 00000000..fd0a18da
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-description-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-description-light-webkit-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-description-light-webkit-linux.png
new file mode 100644
index 00000000..f0d2a645
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-description-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-required-dark-chromium-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-required-dark-chromium-linux.png
new file mode 100644
index 00000000..76e03245
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-required-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-required-dark-webkit-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-required-dark-webkit-linux.png
new file mode 100644
index 00000000..c4d871fa
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-required-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-required-light-chromium-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-required-light-chromium-linux.png
new file mode 100644
index 00000000..cc6f0f02
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-required-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-required-light-webkit-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-required-light-webkit-linux.png
new file mode 100644
index 00000000..86528955
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-required-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-object-dark-chromium-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-object-dark-chromium-linux.png
new file mode 100644
index 00000000..9a1f12f9
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-object-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-object-dark-webkit-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-object-dark-webkit-linux.png
new file mode 100644
index 00000000..7c3fb60e
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-object-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-object-light-chromium-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-object-light-chromium-linux.png
new file mode 100644
index 00000000..fe7d0831
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-object-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-object-light-webkit-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-object-light-webkit-linux.png
new file mode 100644
index 00000000..7d57dc1e
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-object-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-string-dark-chromium-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-string-dark-chromium-linux.png
new file mode 100644
index 00000000..d303deea
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-string-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-string-dark-webkit-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-string-dark-webkit-linux.png
new file mode 100644
index 00000000..f0d2a5a6
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-string-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-string-light-chromium-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-string-light-chromium-linux.png
new file mode 100644
index 00000000..94f5796d
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-string-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-string-light-webkit-linux.png b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-string-light-webkit-linux.png
new file mode 100644
index 00000000..e42c506d
Binary files /dev/null and b/src/lib/kit/components/Inputs/CardOneOf/__snapshots__/CardOneOf.visual.test.tsx-snapshots/Card-OneOf-view-string-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__tests__/CardOneOf.visual.test.tsx b/src/lib/kit/components/Inputs/CardOneOf/__tests__/CardOneOf.visual.test.tsx
new file mode 100644
index 00000000..ac571f7a
--- /dev/null
+++ b/src/lib/kit/components/Inputs/CardOneOf/__tests__/CardOneOf.visual.test.tsx
@@ -0,0 +1,53 @@
+import React from 'react';
+
+import {CARD_ONEOF, VALUE} from './helpers';
+
+import {test} from '~playwright/core';
+import {DynamicForm} from '~playwright/core/DynamicForm';
+import {DynamicView} from '~playwright/core/DynamicView';
+
+test.describe('Card OneOf', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount(
);
+
+ await expectScreenshot();
+ });
+
+ test('default value object', async ({mount, expectScreenshot}) => {
+ await mount(
);
+
+ await expectScreenshot();
+ });
+
+ test('default value string', async ({mount, expectScreenshot}) => {
+ await mount(
);
+
+ await expectScreenshot();
+ });
+
+ test('required', async ({mount, expectScreenshot}) => {
+ await mount(
);
+
+ await expectScreenshot();
+ });
+
+ test('description', async ({mount, expectScreenshot}) => {
+ await mount(
);
+
+ await expectScreenshot();
+ });
+});
+
+test.describe('Card OneOf view', () => {
+ test('object', async ({mount, expectScreenshot}) => {
+ await mount(
);
+
+ await expectScreenshot();
+ });
+
+ test('string', async ({mount, expectScreenshot}) => {
+ await mount(
);
+
+ await expectScreenshot();
+ });
+});
diff --git a/src/lib/kit/components/Inputs/CardOneOf/__tests__/helpers.ts b/src/lib/kit/components/Inputs/CardOneOf/__tests__/helpers.ts
new file mode 100644
index 00000000..b429b402
--- /dev/null
+++ b/src/lib/kit/components/Inputs/CardOneOf/__tests__/helpers.ts
@@ -0,0 +1,362 @@
+import {FormValue, ObjectSpec, SpecTypes} from '../../../../../core';
+
+export const CARD_ONEOF: Record
= {
+ default: {
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'card_oneof',
+ layoutTitle: 'Candidate',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+ defaultValueObject: {
+ defaultValue: {
+ external: {
+ name: 'name',
+ age: 10,
+ },
+ },
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'card_oneof',
+ layoutTitle: 'Candidate',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+ defaultValueString: {
+ defaultValue: {
+ internal: 'internal',
+ },
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'card_oneof',
+ layoutTitle: 'Candidate',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+ required: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'card_oneof',
+ layoutTitle: 'Candidate',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+ desription: {
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'card_oneof',
+ layoutTitle: 'Candidate',
+ layoutDescription: 'desription',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+};
+
+export const VALUE: Record = {
+ object: {
+ external: {
+ name: 'name',
+ age: 10,
+ },
+ },
+ string: {
+ internal: 'internal',
+ },
+};
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-dark-chromium-linux.png
new file mode 100644
index 00000000..a046a154
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-dark-webkit-linux.png
new file mode 100644
index 00000000..7dd3ff54
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-light-chromium-linux.png
new file mode 100644
index 00000000..93833c33
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-light-webkit-linux.png
new file mode 100644
index 00000000..09970c5a
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-value-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-value-dark-chromium-linux.png
new file mode 100644
index 00000000..0de8c7ac
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-value-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-value-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-value-dark-webkit-linux.png
new file mode 100644
index 00000000..d2e217e8
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-value-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-value-light-chromium-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-value-light-chromium-linux.png
new file mode 100644
index 00000000..3ea8a4c6
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-value-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-value-light-webkit-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-value-light-webkit-linux.png
new file mode 100644
index 00000000..22f8dabf
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-default-value-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-full-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-full-dark-chromium-linux.png
new file mode 100644
index 00000000..40e92bff
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-full-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-full-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-full-dark-webkit-linux.png
new file mode 100644
index 00000000..fd9fcc83
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-full-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-full-light-chromium-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-full-light-chromium-linux.png
new file mode 100644
index 00000000..6b31122e
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-full-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-full-light-webkit-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-full-light-webkit-linux.png
new file mode 100644
index 00000000..c1400b67
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-full-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-row-verbose-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-row-verbose-dark-chromium-linux.png
new file mode 100644
index 00000000..f5a7c9bb
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-row-verbose-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-row-verbose-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-row-verbose-dark-webkit-linux.png
new file mode 100644
index 00000000..b3321a03
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-row-verbose-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-row-verbose-light-chromium-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-row-verbose-light-chromium-linux.png
new file mode 100644
index 00000000..c31999af
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-row-verbose-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-row-verbose-light-webkit-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-row-verbose-light-webkit-linux.png
new file mode 100644
index 00000000..4df508cf
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-row-verbose-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-view-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-view-default-dark-chromium-linux.png
new file mode 100644
index 00000000..c1b00c02
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-view-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-view-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-view-default-dark-webkit-linux.png
new file mode 100644
index 00000000..2f9915f6
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-view-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-view-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-view-default-light-chromium-linux.png
new file mode 100644
index 00000000..3b315b4b
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-view-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-view-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-view-default-light-webkit-linux.png
new file mode 100644
index 00000000..598e74c6
Binary files /dev/null and b/src/lib/kit/components/Inputs/Checkbox/__snapshots__/Checkbox.visual.test.tsx-snapshots/Checkbox-view-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Checkbox/__tests__/Checkbox.visual.test.tsx b/src/lib/kit/components/Inputs/Checkbox/__tests__/Checkbox.visual.test.tsx
new file mode 100644
index 00000000..3e9558ff
--- /dev/null
+++ b/src/lib/kit/components/Inputs/Checkbox/__tests__/Checkbox.visual.test.tsx
@@ -0,0 +1,41 @@
+import React from 'react';
+
+import {CHECKBOX, VALUE} from './helpers';
+
+import {test} from '~playwright/core';
+import {DynamicForm} from '~playwright/core/DynamicForm';
+import {DynamicView} from '~playwright/core/DynamicView';
+
+test.describe('Checkbox', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('full', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('default value', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('row verbose', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
+
+test.describe('Checkbox view', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
diff --git a/src/lib/kit/components/Inputs/Checkbox/__tests__/helpers.ts b/src/lib/kit/components/Inputs/Checkbox/__tests__/helpers.ts
new file mode 100644
index 00000000..b4d795bf
--- /dev/null
+++ b/src/lib/kit/components/Inputs/Checkbox/__tests__/helpers.ts
@@ -0,0 +1,43 @@
+import {BooleanSpec, FormValue, SpecTypes} from '../../../../../core';
+
+export const CHECKBOX: Record = {
+ default: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Flag',
+ },
+ },
+ full: {
+ type: SpecTypes.Boolean,
+ required: true,
+ viewSpec: {
+ disabled: true,
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Flag',
+ layoutDescription: 'description',
+ },
+ },
+ defaultValue: {
+ defaultValue: true,
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'File Input',
+ },
+ },
+ row_verbose: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row_verbose',
+ layoutTitle: 'File Input',
+ layoutDescription: 'description',
+ },
+ },
+};
+
+export const VALUE: FormValue = true;
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-dark-chromium-linux.png
new file mode 100644
index 00000000..65d2dc68
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-dark-webkit-linux.png
new file mode 100644
index 00000000..7397c00c
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-light-chromium-linux.png
new file mode 100644
index 00000000..b5e2161a
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-light-webkit-linux.png
new file mode 100644
index 00000000..fd396b48
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-value-dark-chromium-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-value-dark-chromium-linux.png
new file mode 100644
index 00000000..71b5d933
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-value-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-value-dark-webkit-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-value-dark-webkit-linux.png
new file mode 100644
index 00000000..579e5f53
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-value-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-value-light-chromium-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-value-light-chromium-linux.png
new file mode 100644
index 00000000..34dfb12b
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-value-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-value-light-webkit-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-value-light-webkit-linux.png
new file mode 100644
index 00000000..e3f14cd5
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-default-value-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-full-dark-chromium-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-full-dark-chromium-linux.png
new file mode 100644
index 00000000..5114e5d6
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-full-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-full-dark-webkit-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-full-dark-webkit-linux.png
new file mode 100644
index 00000000..a6f40a6a
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-full-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-full-light-chromium-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-full-light-chromium-linux.png
new file mode 100644
index 00000000..c5bcbf07
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-full-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-full-light-webkit-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-full-light-webkit-linux.png
new file mode 100644
index 00000000..8f5d6495
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-full-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-dark-chromium-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-dark-chromium-linux.png
new file mode 100644
index 00000000..65d2dc68
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-dark-webkit-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-dark-webkit-linux.png
new file mode 100644
index 00000000..7397c00c
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-light-chromium-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-light-chromium-linux.png
new file mode 100644
index 00000000..b5e2161a
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-light-webkit-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-light-webkit-linux.png
new file mode 100644
index 00000000..fd396b48
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-with-default-value-dark-chromium-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-with-default-value-dark-chromium-linux.png
new file mode 100644
index 00000000..71b5d933
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-with-default-value-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-with-default-value-dark-webkit-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-with-default-value-dark-webkit-linux.png
new file mode 100644
index 00000000..579e5f53
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-with-default-value-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-with-default-value-light-chromium-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-with-default-value-light-chromium-linux.png
new file mode 100644
index 00000000..34dfb12b
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-with-default-value-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-with-default-value-light-webkit-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-with-default-value-light-webkit-linux.png
new file mode 100644
index 00000000..e3f14cd5
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-ignore-text-with-default-value-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-default-dark-chromium-linux.png
new file mode 100644
index 00000000..94c0d341
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-default-dark-webkit-linux.png
new file mode 100644
index 00000000..34498f85
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-default-light-chromium-linux.png
new file mode 100644
index 00000000..0eac08cf
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-default-light-webkit-linux.png
new file mode 100644
index 00000000..33ecbf52
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-ignoreText-dark-chromium-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-ignoreText-dark-chromium-linux.png
new file mode 100644
index 00000000..392c217a
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-ignoreText-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-ignoreText-dark-webkit-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-ignoreText-dark-webkit-linux.png
new file mode 100644
index 00000000..b9f1e748
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-ignoreText-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-ignoreText-light-chromium-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-ignoreText-light-chromium-linux.png
new file mode 100644
index 00000000..44c54b40
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-ignoreText-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-ignoreText-light-webkit-linux.png b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-ignoreText-light-webkit-linux.png
new file mode 100644
index 00000000..5f5fefb8
Binary files /dev/null and b/src/lib/kit/components/Inputs/FileInput/__snapshots__/FileInput.visual.test.tsx-snapshots/File-Input-view-ignoreText-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/FileInput/__tests__/FileInput.visual.test.tsx b/src/lib/kit/components/Inputs/FileInput/__tests__/FileInput.visual.test.tsx
new file mode 100644
index 00000000..675c543b
--- /dev/null
+++ b/src/lib/kit/components/Inputs/FileInput/__tests__/FileInput.visual.test.tsx
@@ -0,0 +1,53 @@
+import React from 'react';
+
+import {FILE_INPUT, VALUE} from './helpers';
+
+import {test} from '~playwright/core';
+import {DynamicForm} from '~playwright/core/DynamicForm';
+import {DynamicView} from '~playwright/core/DynamicView';
+
+test.describe('File Input', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('full', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('default value', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('ignore text', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('ignore text with default value', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
+
+test.describe('File Input view', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('ignoreText', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
diff --git a/src/lib/kit/components/Inputs/FileInput/__tests__/helpers.ts b/src/lib/kit/components/Inputs/FileInput/__tests__/helpers.ts
new file mode 100644
index 00000000..48a02841
--- /dev/null
+++ b/src/lib/kit/components/Inputs/FileInput/__tests__/helpers.ts
@@ -0,0 +1,57 @@
+import {FormValue, SpecTypes, StringSpec} from '../../../../../core';
+
+export const FILE_INPUT: Record = {
+ default: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'file_input',
+ layout: 'row',
+ layoutTitle: 'File Input',
+ },
+ },
+ full: {
+ type: SpecTypes.String,
+ required: true,
+ viewSpec: {
+ type: 'file_input',
+ disabled: true,
+ layout: 'row',
+ layoutTitle: 'File Input',
+ layoutDescription: 'description',
+ },
+ },
+ defaultValue: {
+ defaultValue: 'file',
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'file_input',
+ layout: 'row',
+ layoutTitle: 'File Input',
+ },
+ },
+ ignoreText: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'file_input',
+ layout: 'row',
+ layoutTitle: 'File Input',
+ fileInput: {
+ ignoreText: true,
+ },
+ },
+ },
+ ignoreTextWithDefaultValue: {
+ defaultValue: 'file',
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'file_input',
+ layout: 'row',
+ layoutTitle: 'File Input',
+ fileInput: {
+ ignoreText: true,
+ },
+ },
+ },
+};
+
+export const VALUE: FormValue = 'FILE';
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-dark-chromium-linux.png
new file mode 100644
index 00000000..a4bb89a2
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-dark-webkit-linux.png
new file mode 100644
index 00000000..925d5ebe
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-light-chromium-linux.png
new file mode 100644
index 00000000..a525a5db
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-light-webkit-linux.png
new file mode 100644
index 00000000..e52a1c38
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-full-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-full-dark-chromium-linux.png
new file mode 100644
index 00000000..6c174493
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-full-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-full-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-full-dark-webkit-linux.png
new file mode 100644
index 00000000..658dd564
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-full-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-full-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-full-light-chromium-linux.png
new file mode 100644
index 00000000..b316452b
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-full-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-full-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-full-light-webkit-linux.png
new file mode 100644
index 00000000..6d1aee0c
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-full-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-person-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-person-dark-chromium-linux.png
new file mode 100644
index 00000000..85037db7
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-person-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-person-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-person-dark-webkit-linux.png
new file mode 100644
index 00000000..3c4f3dfb
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-person-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-person-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-person-light-chromium-linux.png
new file mode 100644
index 00000000..4aca056b
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-person-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-person-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-person-light-webkit-linux.png
new file mode 100644
index 00000000..a5249933
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-default-value-person-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-description-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-description-dark-chromium-linux.png
new file mode 100644
index 00000000..8a55f834
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-description-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-description-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-description-dark-webkit-linux.png
new file mode 100644
index 00000000..e5c88218
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-description-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-description-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-description-light-chromium-linux.png
new file mode 100644
index 00000000..85673773
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-description-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-description-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-description-light-webkit-linux.png
new file mode 100644
index 00000000..011b3d21
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-description-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-row-verbose-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-row-verbose-dark-chromium-linux.png
new file mode 100644
index 00000000..30376f42
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-row-verbose-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-row-verbose-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-row-verbose-dark-webkit-linux.png
new file mode 100644
index 00000000..66101d68
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-row-verbose-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-row-verbose-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-row-verbose-light-chromium-linux.png
new file mode 100644
index 00000000..724cbea7
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-row-verbose-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-row-verbose-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-row-verbose-light-webkit-linux.png
new file mode 100644
index 00000000..ae9789fd
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-row-verbose-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-transparent-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-transparent-dark-chromium-linux.png
new file mode 100644
index 00000000..78d1d5b6
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-transparent-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-transparent-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-transparent-dark-webkit-linux.png
new file mode 100644
index 00000000..b603cf26
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-transparent-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-transparent-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-transparent-light-chromium-linux.png
new file mode 100644
index 00000000..4e04374e
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-transparent-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-transparent-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-transparent-light-webkit-linux.png
new file mode 100644
index 00000000..bdc99be2
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-layouts-transparent-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-required-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-required-dark-chromium-linux.png
new file mode 100644
index 00000000..32d45beb
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-required-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-required-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-required-dark-webkit-linux.png
new file mode 100644
index 00000000..8a715b47
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-required-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-required-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-required-light-chromium-linux.png
new file mode 100644
index 00000000..77be3c51
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-required-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-required-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-required-light-webkit-linux.png
new file mode 100644
index 00000000..1b367831
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-required-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-full-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-full-dark-chromium-linux.png
new file mode 100644
index 00000000..0aaf53ea
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-full-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-full-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-full-dark-webkit-linux.png
new file mode 100644
index 00000000..a011209f
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-full-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-full-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-full-light-chromium-linux.png
new file mode 100644
index 00000000..b2859363
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-full-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-full-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-full-light-webkit-linux.png
new file mode 100644
index 00000000..4d5b688a
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-full-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-row-verbose-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-row-verbose-dark-chromium-linux.png
new file mode 100644
index 00000000..8a8c2eef
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-row-verbose-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-row-verbose-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-row-verbose-dark-webkit-linux.png
new file mode 100644
index 00000000..78c62b19
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-row-verbose-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-row-verbose-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-row-verbose-light-chromium-linux.png
new file mode 100644
index 00000000..a00bafe0
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-row-verbose-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-row-verbose-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-row-verbose-light-webkit-linux.png
new file mode 100644
index 00000000..138ed84a
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-row-verbose-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-transparent-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-transparent-dark-chromium-linux.png
new file mode 100644
index 00000000..1a32eb8d
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-transparent-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-transparent-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-transparent-dark-webkit-linux.png
new file mode 100644
index 00000000..dba4c069
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-transparent-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-transparent-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-transparent-light-chromium-linux.png
new file mode 100644
index 00000000..2aaa1d01
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-transparent-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-transparent-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-transparent-light-webkit-linux.png
new file mode 100644
index 00000000..6e7615df
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-layouts-transparent-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-object-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-object-dark-chromium-linux.png
new file mode 100644
index 00000000..365de16c
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-object-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-object-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-object-dark-webkit-linux.png
new file mode 100644
index 00000000..b3aa0e57
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-object-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-object-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-object-light-chromium-linux.png
new file mode 100644
index 00000000..b7f347c9
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-object-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-object-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-object-light-webkit-linux.png
new file mode 100644
index 00000000..8c4e015d
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-object-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-person-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-person-dark-chromium-linux.png
new file mode 100644
index 00000000..8a8c2eef
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-person-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-person-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-person-dark-webkit-linux.png
new file mode 100644
index 00000000..78c62b19
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-person-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-person-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-person-light-chromium-linux.png
new file mode 100644
index 00000000..a00bafe0
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-person-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-person-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-person-light-webkit-linux.png
new file mode 100644
index 00000000..138ed84a
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-person-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-string-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-string-dark-chromium-linux.png
new file mode 100644
index 00000000..365de16c
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-string-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-string-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-string-dark-webkit-linux.png
new file mode 100644
index 00000000..b3aa0e57
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-string-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-string-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-string-light-chromium-linux.png
new file mode 100644
index 00000000..b7f347c9
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-string-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-string-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-string-light-webkit-linux.png
new file mode 100644
index 00000000..8c4e015d
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-Flat-view-string-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-dark-chromium-linux.png
new file mode 100644
index 00000000..a4bb89a2
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-dark-webkit-linux.png
new file mode 100644
index 00000000..925d5ebe
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-light-chromium-linux.png
new file mode 100644
index 00000000..a525a5db
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-light-webkit-linux.png
new file mode 100644
index 00000000..e52a1c38
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-full-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-full-dark-chromium-linux.png
new file mode 100644
index 00000000..342a1c87
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-full-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-full-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-full-dark-webkit-linux.png
new file mode 100644
index 00000000..7eee576b
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-full-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-full-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-full-light-chromium-linux.png
new file mode 100644
index 00000000..d9917a8e
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-full-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-full-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-full-light-webkit-linux.png
new file mode 100644
index 00000000..a19e31d6
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-full-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-person-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-person-dark-chromium-linux.png
new file mode 100644
index 00000000..25e9efa2
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-person-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-person-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-person-dark-webkit-linux.png
new file mode 100644
index 00000000..4bb4e937
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-person-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-person-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-person-light-chromium-linux.png
new file mode 100644
index 00000000..b32ff0e7
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-person-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-person-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-person-light-webkit-linux.png
new file mode 100644
index 00000000..d883eca2
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-default-value-person-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-description-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-description-dark-chromium-linux.png
new file mode 100644
index 00000000..56661516
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-description-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-description-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-description-dark-webkit-linux.png
new file mode 100644
index 00000000..a32d26cc
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-description-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-description-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-description-light-chromium-linux.png
new file mode 100644
index 00000000..38676f78
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-description-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-description-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-description-light-webkit-linux.png
new file mode 100644
index 00000000..6628c715
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-description-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-row-verbose-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-row-verbose-dark-chromium-linux.png
new file mode 100644
index 00000000..59424560
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-row-verbose-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-row-verbose-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-row-verbose-dark-webkit-linux.png
new file mode 100644
index 00000000..20c50761
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-row-verbose-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-row-verbose-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-row-verbose-light-chromium-linux.png
new file mode 100644
index 00000000..436ff90d
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-row-verbose-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-row-verbose-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-row-verbose-light-webkit-linux.png
new file mode 100644
index 00000000..a90e9e43
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-row-verbose-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-transparent-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-transparent-dark-chromium-linux.png
new file mode 100644
index 00000000..a8506e01
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-transparent-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-transparent-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-transparent-dark-webkit-linux.png
new file mode 100644
index 00000000..8ff2cdf7
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-transparent-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-transparent-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-transparent-light-chromium-linux.png
new file mode 100644
index 00000000..8e14026d
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-transparent-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-transparent-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-transparent-light-webkit-linux.png
new file mode 100644
index 00000000..86f1f7f7
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-layouts-transparent-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-required-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-required-dark-chromium-linux.png
new file mode 100644
index 00000000..32d45beb
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-required-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-required-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-required-dark-webkit-linux.png
new file mode 100644
index 00000000..8a715b47
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-required-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-required-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-required-light-chromium-linux.png
new file mode 100644
index 00000000..77be3c51
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-required-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-required-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-required-light-webkit-linux.png
new file mode 100644
index 00000000..1b367831
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-required-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-full-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-full-dark-chromium-linux.png
new file mode 100644
index 00000000..92e6f6e7
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-full-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-full-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-full-dark-webkit-linux.png
new file mode 100644
index 00000000..54a7e63f
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-full-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-full-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-full-light-chromium-linux.png
new file mode 100644
index 00000000..ffeea3f0
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-full-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-full-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-full-light-webkit-linux.png
new file mode 100644
index 00000000..d99a2fa3
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-full-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-row-verbose-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-row-verbose-dark-chromium-linux.png
new file mode 100644
index 00000000..0017667f
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-row-verbose-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-row-verbose-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-row-verbose-dark-webkit-linux.png
new file mode 100644
index 00000000..bab25063
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-row-verbose-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-row-verbose-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-row-verbose-light-chromium-linux.png
new file mode 100644
index 00000000..100ae12b
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-row-verbose-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-row-verbose-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-row-verbose-light-webkit-linux.png
new file mode 100644
index 00000000..22fa0e3b
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-row-verbose-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-transparent-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-transparent-dark-chromium-linux.png
new file mode 100644
index 00000000..436c4012
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-transparent-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-transparent-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-transparent-dark-webkit-linux.png
new file mode 100644
index 00000000..b84fc216
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-transparent-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-transparent-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-transparent-light-chromium-linux.png
new file mode 100644
index 00000000..a9b7622a
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-transparent-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-transparent-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-transparent-light-webkit-linux.png
new file mode 100644
index 00000000..7fcea25c
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-layouts-transparent-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-object-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-object-dark-chromium-linux.png
new file mode 100644
index 00000000..365de16c
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-object-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-object-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-object-dark-webkit-linux.png
new file mode 100644
index 00000000..b3aa0e57
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-object-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-object-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-object-light-chromium-linux.png
new file mode 100644
index 00000000..b7f347c9
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-object-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-object-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-object-light-webkit-linux.png
new file mode 100644
index 00000000..8c4e015d
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-object-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-person-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-person-dark-chromium-linux.png
new file mode 100644
index 00000000..0017667f
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-person-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-person-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-person-dark-webkit-linux.png
new file mode 100644
index 00000000..bab25063
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-person-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-person-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-person-light-chromium-linux.png
new file mode 100644
index 00000000..100ae12b
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-person-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-person-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-person-light-webkit-linux.png
new file mode 100644
index 00000000..22fa0e3b
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-person-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-string-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-string-dark-chromium-linux.png
new file mode 100644
index 00000000..365de16c
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-string-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-string-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-string-dark-webkit-linux.png
new file mode 100644
index 00000000..b3aa0e57
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-string-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-string-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-string-light-chromium-linux.png
new file mode 100644
index 00000000..b7f347c9
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-string-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-string-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-string-light-webkit-linux.png
new file mode 100644
index 00000000..8c4e015d
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiOneOf/__snapshots__/MultiOneOf.visual.test.tsx-snapshots/Multi-OneOf-view-string-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__tests__/MultiOneOf.visual.test.tsx b/src/lib/kit/components/Inputs/MultiOneOf/__tests__/MultiOneOf.visual.test.tsx
new file mode 100644
index 00000000..b2dde496
--- /dev/null
+++ b/src/lib/kit/components/Inputs/MultiOneOf/__tests__/MultiOneOf.visual.test.tsx
@@ -0,0 +1,155 @@
+import React from 'react';
+
+import {MULTI_ONEOF, MULTI_ONEOF_FALT, VALUE} from './helpers';
+
+import {test} from '~playwright/core';
+import {DynamicForm} from '~playwright/core/DynamicForm';
+import {DynamicView} from '~playwright/core/DynamicView';
+
+test.describe('Multi OneOf', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('default value person', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('default value full', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('required', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('description', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test.describe('layouts', () => {
+ test('row verbose', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('transparent', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+ });
+});
+
+test.describe('Multi OneOf view', () => {
+ test('person', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('full', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test.describe('layouts', () => {
+ test('row verbose', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('transparent', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+ });
+});
+
+test.describe('Multi OneOf Flat', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('default value person', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('default value full', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('required', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('description', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test.describe('layouts', () => {
+ test('row verbose', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('transparent', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+ });
+});
+
+test.describe('Multi OneOf Flat view', () => {
+ test('person', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('full', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test.describe('layouts', () => {
+ test('row verbose', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('transparent', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+ });
+});
diff --git a/src/lib/kit/components/Inputs/MultiOneOf/__tests__/helpers.ts b/src/lib/kit/components/Inputs/MultiOneOf/__tests__/helpers.ts
new file mode 100644
index 00000000..d4b3f9c8
--- /dev/null
+++ b/src/lib/kit/components/Inputs/MultiOneOf/__tests__/helpers.ts
@@ -0,0 +1,922 @@
+import {FormValue, ObjectSpec, SpecTypes} from '../../../../../core';
+
+export const MULTI_ONEOF: Record = {
+ default: {
+ type: SpecTypes.Object,
+ properties: {
+ person: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ id: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ license: {
+ required: true,
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'license',
+ },
+ },
+ },
+ description: {
+ person: 'Person Data',
+ id: 'Person id',
+ license: 'License',
+ },
+ viewSpec: {
+ type: 'multi_oneof',
+ layout: 'row',
+ layoutTitle: 'Multi OneOf',
+ placeholder: 'placeholder text',
+ },
+ },
+ defaultValuePerson: {
+ defaultValue: {
+ person: {
+ name: 'Bar',
+ age: 20,
+ },
+ },
+ type: SpecTypes.Object,
+ properties: {
+ person: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ id: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ license: {
+ required: true,
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'license',
+ },
+ },
+ },
+ description: {
+ person: 'Person Data',
+ id: 'Person id',
+ license: 'License',
+ },
+ viewSpec: {
+ type: 'multi_oneof',
+ layout: 'row',
+ layoutTitle: 'Multi OneOf',
+ placeholder: 'placeholder text',
+ },
+ },
+ defaultValueFull: {
+ defaultValue: {
+ person: {
+ name: 'Bar',
+ age: 20,
+ },
+ id: '123456789',
+ license: true,
+ },
+ type: SpecTypes.Object,
+ properties: {
+ person: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ id: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ license: {
+ required: true,
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'license',
+ },
+ },
+ },
+ description: {
+ person: 'Person Data',
+ id: 'Person id',
+ license: 'License',
+ },
+ viewSpec: {
+ type: 'multi_oneof',
+ layout: 'row',
+ layoutTitle: 'Multi OneOf',
+ placeholder: 'placeholder text',
+ },
+ },
+ required: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ person: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ id: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ license: {
+ required: true,
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'license',
+ },
+ },
+ },
+ description: {
+ person: 'Person Data',
+ id: 'Person id',
+ license: 'License',
+ },
+ viewSpec: {
+ type: 'multi_oneof',
+ layout: 'row',
+ layoutTitle: 'Multi OneOf',
+ placeholder: 'placeholder text',
+ },
+ },
+ desription: {
+ defaultValue: {
+ person: {
+ name: 'Bar',
+ age: 20,
+ },
+ },
+ type: SpecTypes.Object,
+ properties: {
+ person: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ id: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ license: {
+ required: true,
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'license',
+ },
+ },
+ },
+ description: {
+ person: 'Person Data',
+ id: 'Person id',
+ license: 'License',
+ },
+ viewSpec: {
+ type: 'multi_oneof',
+ layout: 'row',
+ layoutTitle: 'Multi OneOf',
+ placeholder: 'placeholder text',
+ layoutDescription: 'desription',
+ },
+ },
+ row_verbose: {
+ defaultValue: {
+ person: {
+ name: 'Bar',
+ age: 20,
+ },
+ },
+ type: SpecTypes.Object,
+ properties: {
+ person: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ id: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ license: {
+ required: true,
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'license',
+ },
+ },
+ },
+ description: {
+ person: 'Person Data',
+ id: 'Person id',
+ license: 'License',
+ },
+ viewSpec: {
+ type: 'multi_oneof',
+ layout: 'row_verbose',
+ layoutTitle: 'Multi OneOf',
+ placeholder: 'placeholder text',
+ layoutDescription: 'desription',
+ },
+ },
+ transparent: {
+ defaultValue: {
+ person: {
+ name: 'Bar',
+ age: 20,
+ },
+ },
+ type: SpecTypes.Object,
+ properties: {
+ person: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ id: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ license: {
+ required: true,
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'license',
+ },
+ },
+ },
+ description: {
+ person: 'Person Data',
+ id: 'Person id',
+ license: 'License',
+ },
+ viewSpec: {
+ type: 'multi_oneof',
+ layout: 'transparent',
+ layoutTitle: 'Multi OneOf',
+ placeholder: 'placeholder text',
+ layoutDescription: 'desription',
+ },
+ },
+};
+
+export const VALUE: Record = {
+ person: {
+ person: {
+ name: 'Bar',
+ age: 20,
+ },
+ },
+ full: {
+ person: {
+ name: 'Bar',
+ age: 20,
+ },
+ id: '123456789',
+ license: true,
+ },
+};
+
+export const MULTI_ONEOF_FALT: Record = {
+ default: {
+ type: SpecTypes.Object,
+ properties: {
+ person: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ id: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ license: {
+ required: true,
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'license',
+ },
+ },
+ },
+ description: {
+ person: 'Person Data',
+ id: 'Person id',
+ license: 'License',
+ },
+ viewSpec: {
+ type: 'multi_oneof_flat',
+ layout: 'row',
+ layoutTitle: 'Multi OneOf',
+ placeholder: 'placeholder text',
+ },
+ },
+ defaultValuePerson: {
+ defaultValue: {
+ person: {
+ name: 'Bar',
+ age: 20,
+ },
+ },
+ type: SpecTypes.Object,
+ properties: {
+ person: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ id: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ license: {
+ required: true,
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'license',
+ },
+ },
+ },
+ description: {
+ person: 'Person Data',
+ id: 'Person id',
+ license: 'License',
+ },
+ viewSpec: {
+ type: 'multi_oneof_flat',
+ layout: 'row',
+ layoutTitle: 'Multi OneOf',
+ placeholder: 'placeholder text',
+ },
+ },
+ defaultValueFull: {
+ defaultValue: {
+ person: {
+ name: 'Bar',
+ age: 20,
+ },
+ id: '123456789',
+ license: true,
+ },
+ type: SpecTypes.Object,
+ properties: {
+ person: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ id: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ license: {
+ required: true,
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'license',
+ },
+ },
+ },
+ description: {
+ person: 'Person Data',
+ id: 'Person id',
+ license: 'License',
+ },
+ viewSpec: {
+ type: 'multi_oneof_flat',
+ layout: 'row',
+ layoutTitle: 'Multi OneOf',
+ placeholder: 'placeholder text',
+ },
+ },
+ required: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ person: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ id: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ license: {
+ required: true,
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'license',
+ },
+ },
+ },
+ description: {
+ person: 'Person Data',
+ id: 'Person id',
+ license: 'License',
+ },
+ viewSpec: {
+ type: 'multi_oneof_flat',
+ layout: 'row',
+ layoutTitle: 'Multi OneOf',
+ placeholder: 'placeholder text',
+ },
+ },
+ desription: {
+ defaultValue: {
+ person: {
+ name: 'Bar',
+ age: 20,
+ },
+ },
+ type: SpecTypes.Object,
+ properties: {
+ person: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ id: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ license: {
+ required: true,
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'license',
+ },
+ },
+ },
+ description: {
+ person: 'Person Data',
+ id: 'Person id',
+ license: 'License',
+ },
+ viewSpec: {
+ type: 'multi_oneof_flat',
+ layout: 'row',
+ layoutTitle: 'Multi OneOf',
+ placeholder: 'placeholder text',
+ layoutDescription: 'desription',
+ },
+ },
+ row_verbose: {
+ defaultValue: {
+ person: {
+ name: 'Bar',
+ age: 20,
+ },
+ },
+ type: SpecTypes.Object,
+ properties: {
+ person: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ id: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ license: {
+ required: true,
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'license',
+ },
+ },
+ },
+ description: {
+ person: 'Person Data',
+ id: 'Person id',
+ license: 'License',
+ },
+ viewSpec: {
+ type: 'multi_oneof_flat',
+ layout: 'row_verbose',
+ layoutTitle: 'Multi OneOf',
+ placeholder: 'placeholder text',
+ layoutDescription: 'desription',
+ },
+ },
+ transparent: {
+ defaultValue: {
+ person: {
+ name: 'Bar',
+ age: 20,
+ },
+ },
+ type: SpecTypes.Object,
+ properties: {
+ person: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ id: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ license: {
+ required: true,
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'license',
+ },
+ },
+ },
+ description: {
+ person: 'Person Data',
+ id: 'Person id',
+ license: 'License',
+ },
+ viewSpec: {
+ type: 'multi_oneof_flat',
+ layout: 'transparent',
+ layoutTitle: 'Multi OneOf',
+ placeholder: 'placeholder text',
+ layoutDescription: 'desription',
+ },
+ },
+};
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-dark-chromium-linux.png
new file mode 100644
index 00000000..e397d64d
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-dark-webkit-linux.png
new file mode 100644
index 00000000..977139e3
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-light-chromium-linux.png
new file mode 100644
index 00000000..572a55e7
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-light-webkit-linux.png
new file mode 100644
index 00000000..8885421e
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-value-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-value-dark-chromium-linux.png
new file mode 100644
index 00000000..79644dc6
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-value-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-value-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-value-dark-webkit-linux.png
new file mode 100644
index 00000000..84400503
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-value-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-value-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-value-light-chromium-linux.png
new file mode 100644
index 00000000..c0b4ce52
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-value-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-value-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-value-light-webkit-linux.png
new file mode 100644
index 00000000..dcfe5aab
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-default-value-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-description-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-description-dark-chromium-linux.png
new file mode 100644
index 00000000..beb5fee1
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-description-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-description-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-description-dark-webkit-linux.png
new file mode 100644
index 00000000..66a93899
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-description-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-description-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-description-light-chromium-linux.png
new file mode 100644
index 00000000..5455bb54
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-description-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-description-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-description-light-webkit-linux.png
new file mode 100644
index 00000000..db84dccc
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-description-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-required-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-required-dark-chromium-linux.png
new file mode 100644
index 00000000..2a28df25
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-required-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-required-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-required-dark-webkit-linux.png
new file mode 100644
index 00000000..80a75627
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-required-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-required-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-required-light-chromium-linux.png
new file mode 100644
index 00000000..c9244177
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-required-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-required-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-required-light-webkit-linux.png
new file mode 100644
index 00000000..9c5f7b86
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-required-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-row-verbose-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-row-verbose-dark-chromium-linux.png
new file mode 100644
index 00000000..515c17d3
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-row-verbose-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-row-verbose-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-row-verbose-dark-webkit-linux.png
new file mode 100644
index 00000000..345c6837
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-row-verbose-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-row-verbose-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-row-verbose-light-chromium-linux.png
new file mode 100644
index 00000000..7d2d64f3
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-row-verbose-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-row-verbose-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-row-verbose-light-webkit-linux.png
new file mode 100644
index 00000000..aec2db50
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-row-verbose-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-view-dark-chromium-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-view-dark-chromium-linux.png
new file mode 100644
index 00000000..b0e3de56
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-view-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-view-dark-webkit-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-view-dark-webkit-linux.png
new file mode 100644
index 00000000..f8b8dc95
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-view-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-view-light-chromium-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-view-light-chromium-linux.png
new file mode 100644
index 00000000..65bc6d17
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-view-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-view-light-webkit-linux.png b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-view-light-webkit-linux.png
new file mode 100644
index 00000000..cd077c16
Binary files /dev/null and b/src/lib/kit/components/Inputs/MultiSelect/__snapshots__/MultiSelect.visual.test.tsx-snapshots/Multi-Select-view-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__tests__/MultiSelect.visual.test.tsx b/src/lib/kit/components/Inputs/MultiSelect/__tests__/MultiSelect.visual.test.tsx
new file mode 100644
index 00000000..c1948254
--- /dev/null
+++ b/src/lib/kit/components/Inputs/MultiSelect/__tests__/MultiSelect.visual.test.tsx
@@ -0,0 +1,45 @@
+import React from 'react';
+
+import {MULTI_SELECT, VALUE} from './helpers';
+
+import {test} from '~playwright/core';
+import {DynamicForm} from '~playwright/core/DynamicForm';
+import {DynamicView} from '~playwright/core/DynamicView';
+
+test.describe('Multi Select', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('default value', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('required', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('description', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('row verbose', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
+
+test('Multi Select view', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+});
diff --git a/src/lib/kit/components/Inputs/MultiSelect/__tests__/helpers.ts b/src/lib/kit/components/Inputs/MultiSelect/__tests__/helpers.ts
new file mode 100644
index 00000000..17833e79
--- /dev/null
+++ b/src/lib/kit/components/Inputs/MultiSelect/__tests__/helpers.ts
@@ -0,0 +1,250 @@
+import {ArraySpec, FormValue, SpecTypes} from '../../../../../core';
+
+export const MULTI_SELECT: Record = {
+ default: {
+ type: SpecTypes.Array,
+ enum: [
+ 'foo',
+ 'bar',
+ 'rab',
+ 'oof',
+ 'fooBar',
+ 'fooOof',
+ 'barFoo',
+ 'barOof',
+ 'fooFoo',
+ 'barBar',
+ ],
+ description: {
+ foo: 'Option 1',
+ bar: 'Option 2',
+ rab: 'Option 3',
+ oof: 'Option 4',
+ fooBar: 'Option 5',
+ fooOof: 'Option 6',
+ barFoo: 'Option 7',
+ barOof: 'Option 8',
+ fooFoo: 'Option 9',
+ barBar: 'Option 10',
+ },
+ viewSpec: {
+ type: 'select',
+ layout: 'row',
+ layoutTitle: 'Select',
+ placeholder: 'placeholder text',
+ selectParams: {
+ filterPlaceholder: 'filter placeholder',
+ meta: {
+ foo: 'Additional text 1',
+ bar: 'Additional text 2',
+ rab: 'Additional text 3',
+ oof: 'Additional text 4',
+ fooBar: 'Additional text 5',
+ fooOof: 'Additional text 6',
+ barFoo: 'Additional text 7',
+ barOof: 'Additional text 8',
+ fooFoo: 'Additional text 9',
+ barBar: 'Additional text 10',
+ },
+ },
+ },
+ },
+ defaultValue: {
+ defaultValue: ['foo'],
+ type: SpecTypes.Array,
+ enum: [
+ 'foo',
+ 'bar',
+ 'rab',
+ 'oof',
+ 'fooBar',
+ 'fooOof',
+ 'barFoo',
+ 'barOof',
+ 'fooFoo',
+ 'barBar',
+ ],
+ description: {
+ foo: 'Option 1',
+ bar: 'Option 2',
+ rab: 'Option 3',
+ oof: 'Option 4',
+ fooBar: 'Option 5',
+ fooOof: 'Option 6',
+ barFoo: 'Option 7',
+ barOof: 'Option 8',
+ fooFoo: 'Option 9',
+ barBar: 'Option 10',
+ },
+ viewSpec: {
+ type: 'select',
+ layout: 'row',
+ layoutTitle: 'Select',
+ placeholder: 'placeholder text',
+ selectParams: {
+ filterPlaceholder: 'filter placeholder',
+ meta: {
+ foo: 'Additional text 1',
+ bar: 'Additional text 2',
+ rab: 'Additional text 3',
+ oof: 'Additional text 4',
+ fooBar: 'Additional text 5',
+ fooOof: 'Additional text 6',
+ barFoo: 'Additional text 7',
+ barOof: 'Additional text 8',
+ fooFoo: 'Additional text 9',
+ barBar: 'Additional text 10',
+ },
+ },
+ },
+ },
+ required: {
+ required: true,
+ type: SpecTypes.Array,
+ enum: [
+ 'foo',
+ 'bar',
+ 'rab',
+ 'oof',
+ 'fooBar',
+ 'fooOof',
+ 'barFoo',
+ 'barOof',
+ 'fooFoo',
+ 'barBar',
+ ],
+ description: {
+ foo: 'Option 1',
+ bar: 'Option 2',
+ rab: 'Option 3',
+ oof: 'Option 4',
+ fooBar: 'Option 5',
+ fooOof: 'Option 6',
+ barFoo: 'Option 7',
+ barOof: 'Option 8',
+ fooFoo: 'Option 9',
+ barBar: 'Option 10',
+ },
+ viewSpec: {
+ type: 'select',
+ layout: 'row',
+ layoutTitle: 'Select',
+ placeholder: 'placeholder text',
+ selectParams: {
+ filterPlaceholder: 'filter placeholder',
+ meta: {
+ foo: 'Additional text 1',
+ bar: 'Additional text 2',
+ rab: 'Additional text 3',
+ oof: 'Additional text 4',
+ fooBar: 'Additional text 5',
+ fooOof: 'Additional text 6',
+ barFoo: 'Additional text 7',
+ barOof: 'Additional text 8',
+ fooFoo: 'Additional text 9',
+ barBar: 'Additional text 10',
+ },
+ },
+ },
+ },
+ desription: {
+ type: SpecTypes.Array,
+ enum: [
+ 'foo',
+ 'bar',
+ 'rab',
+ 'oof',
+ 'fooBar',
+ 'fooOof',
+ 'barFoo',
+ 'barOof',
+ 'fooFoo',
+ 'barBar',
+ ],
+ description: {
+ foo: 'Option 1',
+ bar: 'Option 2',
+ rab: 'Option 3',
+ oof: 'Option 4',
+ fooBar: 'Option 5',
+ fooOof: 'Option 6',
+ barFoo: 'Option 7',
+ barOof: 'Option 8',
+ fooFoo: 'Option 9',
+ barBar: 'Option 10',
+ },
+ viewSpec: {
+ type: 'select',
+ layout: 'row',
+ layoutTitle: 'Select',
+ placeholder: 'placeholder text',
+ layoutDescription: 'description',
+ selectParams: {
+ filterPlaceholder: 'filter placeholder',
+ meta: {
+ foo: 'Additional text 1',
+ bar: 'Additional text 2',
+ rab: 'Additional text 3',
+ oof: 'Additional text 4',
+ fooBar: 'Additional text 5',
+ fooOof: 'Additional text 6',
+ barFoo: 'Additional text 7',
+ barOof: 'Additional text 8',
+ fooFoo: 'Additional text 9',
+ barBar: 'Additional text 10',
+ },
+ },
+ },
+ },
+ row_verbose: {
+ type: SpecTypes.Array,
+ enum: [
+ 'foo',
+ 'bar',
+ 'rab',
+ 'oof',
+ 'fooBar',
+ 'fooOof',
+ 'barFoo',
+ 'barOof',
+ 'fooFoo',
+ 'barBar',
+ ],
+ description: {
+ foo: 'Option 1',
+ bar: 'Option 2',
+ rab: 'Option 3',
+ oof: 'Option 4',
+ fooBar: 'Option 5',
+ fooOof: 'Option 6',
+ barFoo: 'Option 7',
+ barOof: 'Option 8',
+ fooFoo: 'Option 9',
+ barBar: 'Option 10',
+ },
+ viewSpec: {
+ type: 'select',
+ layout: 'row_verbose',
+ layoutTitle: 'Select',
+ placeholder: 'placeholder text',
+ layoutDescription: 'description',
+ selectParams: {
+ filterPlaceholder: 'filter placeholder',
+ meta: {
+ foo: 'Additional text 1',
+ bar: 'Additional text 2',
+ rab: 'Additional text 3',
+ oof: 'Additional text 4',
+ fooBar: 'Additional text 5',
+ fooOof: 'Additional text 6',
+ barFoo: 'Additional text 7',
+ barOof: 'Additional text 8',
+ fooFoo: 'Additional text 9',
+ barBar: 'Additional text 10',
+ },
+ },
+ },
+ },
+};
+
+export const VALUE: FormValue = ['foo', 'bar', 'barOof'];
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-View-dark-chromium-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-View-dark-chromium-linux.png
new file mode 100644
index 00000000..e6f3572e
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-View-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-View-dark-webkit-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-View-dark-webkit-linux.png
new file mode 100644
index 00000000..7176fbc3
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-View-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-View-light-chromium-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-View-light-chromium-linux.png
new file mode 100644
index 00000000..d1f43a52
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-View-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-View-light-webkit-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-View-light-webkit-linux.png
new file mode 100644
index 00000000..95bc506f
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-View-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-dark-chromium-linux.png
new file mode 100644
index 00000000..31f8e8dc
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-dark-webkit-linux.png
new file mode 100644
index 00000000..8ef09ffa
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-light-chromium-linux.png
new file mode 100644
index 00000000..31b5968d
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-light-webkit-linux.png
new file mode 100644
index 00000000..66aaf0d3
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-value-dark-chromium-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-value-dark-chromium-linux.png
new file mode 100644
index 00000000..547fdeb5
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-value-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-value-dark-webkit-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-value-dark-webkit-linux.png
new file mode 100644
index 00000000..ed6fec70
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-value-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-value-light-chromium-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-value-light-chromium-linux.png
new file mode 100644
index 00000000..8188b724
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-value-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-value-light-webkit-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-value-light-webkit-linux.png
new file mode 100644
index 00000000..64aadf41
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-default-value-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-description-dark-chromium-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-description-dark-chromium-linux.png
new file mode 100644
index 00000000..b5560e35
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-description-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-description-dark-webkit-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-description-dark-webkit-linux.png
new file mode 100644
index 00000000..7f1ece3f
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-description-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-description-light-chromium-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-description-light-chromium-linux.png
new file mode 100644
index 00000000..0316bb01
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-description-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-description-light-webkit-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-description-light-webkit-linux.png
new file mode 100644
index 00000000..54e33678
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-description-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-required-dark-chromium-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-required-dark-chromium-linux.png
new file mode 100644
index 00000000..79183a8f
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-required-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-required-dark-webkit-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-required-dark-webkit-linux.png
new file mode 100644
index 00000000..affd64dd
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-required-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-required-light-chromium-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-required-light-chromium-linux.png
new file mode 100644
index 00000000..96216dd9
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-required-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-required-light-webkit-linux.png b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-required-light-webkit-linux.png
new file mode 100644
index 00000000..5d870781
Binary files /dev/null and b/src/lib/kit/components/Inputs/NumberWithScale/__snapshots__/NumberWithScale.visual.test.tsx-snapshots/Number-With-Scale-required-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__tests__/NumberWithScale.visual.test.tsx b/src/lib/kit/components/Inputs/NumberWithScale/__tests__/NumberWithScale.visual.test.tsx
new file mode 100644
index 00000000..7be58a9f
--- /dev/null
+++ b/src/lib/kit/components/Inputs/NumberWithScale/__tests__/NumberWithScale.visual.test.tsx
@@ -0,0 +1,39 @@
+import React from 'react';
+
+import {NUMBER_WITH_SCALE, VALUE} from './helpers';
+
+import {test} from '~playwright/core';
+import {DynamicForm} from '~playwright/core/DynamicForm';
+import {DynamicView} from '~playwright/core/DynamicView';
+
+test.describe('Number With Scale', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('default value', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('required', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('description', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
+
+test('Number With Scale View', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+});
diff --git a/src/lib/kit/components/Inputs/NumberWithScale/__tests__/helpers.ts b/src/lib/kit/components/Inputs/NumberWithScale/__tests__/helpers.ts
new file mode 100644
index 00000000..c52daf41
--- /dev/null
+++ b/src/lib/kit/components/Inputs/NumberWithScale/__tests__/helpers.ts
@@ -0,0 +1,153 @@
+import {FormValue, SpecTypes, StringSpec} from '../../../../../core';
+
+export const NUMBER_WITH_SCALE: Record = {
+ default: {
+ type: SpecTypes.String,
+ validator: 'number',
+ viewSpec: {
+ type: 'number_with_scale',
+ layout: 'row',
+ layoutTitle: 'Size',
+ sizeParams: {
+ scale: {
+ sec: {
+ factor: '1000',
+ title: 'sec',
+ },
+ min: {
+ factor: '60000',
+ title: 'min',
+ },
+ hours: {
+ factor: '3600000',
+ title: 'hours',
+ },
+ days: {
+ factor: '86400000',
+ title: 'days',
+ },
+ msec: {
+ factor: '1',
+ title: 'msec',
+ },
+ },
+ defaultType: 'msec',
+ viewType: 'hours',
+ },
+ placeholder: 'placeholder text',
+ },
+ },
+ defaultValue: {
+ defaultValue: '3600000',
+ type: SpecTypes.String,
+ validator: 'number',
+ viewSpec: {
+ type: 'number_with_scale',
+ layout: 'row',
+ layoutTitle: 'Size',
+ sizeParams: {
+ scale: {
+ sec: {
+ factor: '1000',
+ title: 'sec',
+ },
+ min: {
+ factor: '60000',
+ title: 'min',
+ },
+ hours: {
+ factor: '3600000',
+ title: 'hours',
+ },
+ days: {
+ factor: '86400000',
+ title: 'days',
+ },
+ msec: {
+ factor: '1',
+ title: 'msec',
+ },
+ },
+ defaultType: 'msec',
+ viewType: 'hours',
+ },
+ placeholder: 'placeholder text',
+ },
+ },
+ required: {
+ required: true,
+ type: SpecTypes.String,
+ validator: 'number',
+ viewSpec: {
+ type: 'number_with_scale',
+ layout: 'row',
+ layoutTitle: 'Size',
+ sizeParams: {
+ scale: {
+ sec: {
+ factor: '1000',
+ title: 'sec',
+ },
+ min: {
+ factor: '60000',
+ title: 'min',
+ },
+ hours: {
+ factor: '3600000',
+ title: 'hours',
+ },
+ days: {
+ factor: '86400000',
+ title: 'days',
+ },
+ msec: {
+ factor: '1',
+ title: 'msec',
+ },
+ },
+ defaultType: 'msec',
+ viewType: 'hours',
+ },
+ placeholder: 'placeholder text',
+ },
+ },
+ description: {
+ type: SpecTypes.String,
+ validator: 'number',
+ viewSpec: {
+ type: 'number_with_scale',
+ layout: 'row',
+ layoutTitle: 'Size',
+ sizeParams: {
+ scale: {
+ sec: {
+ factor: '1000',
+ title: 'sec',
+ },
+ min: {
+ factor: '60000',
+ title: 'min',
+ },
+ hours: {
+ factor: '3600000',
+ title: 'hours',
+ },
+ days: {
+ factor: '86400000',
+ title: 'days',
+ },
+ msec: {
+ factor: '1',
+ title: 'msec',
+ },
+ },
+ defaultType: 'msec',
+ viewType: 'hours',
+ },
+ placeholder: 'placeholder text',
+ layoutDescription: 'description',
+ },
+ },
+};
+
+export const VALUE: FormValue = '3600000';
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-dark-chromium-linux.png
new file mode 100644
index 00000000..5f453b66
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-dark-webkit-linux.png
new file mode 100644
index 00000000..78894ce9
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-light-chromium-linux.png
new file mode 100644
index 00000000..b9f264e0
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-light-webkit-linux.png
new file mode 100644
index 00000000..fe0c02c4
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-value-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-value-dark-chromium-linux.png
new file mode 100644
index 00000000..92588386
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-value-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-value-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-value-dark-webkit-linux.png
new file mode 100644
index 00000000..51d6ee20
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-value-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-value-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-value-light-chromium-linux.png
new file mode 100644
index 00000000..cf20a862
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-value-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-value-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-value-light-webkit-linux.png
new file mode 100644
index 00000000..d445f41a
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-default-value-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-description-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-description-dark-chromium-linux.png
new file mode 100644
index 00000000..c2427364
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-description-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-description-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-description-dark-webkit-linux.png
new file mode 100644
index 00000000..4e6a280e
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-description-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-description-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-description-light-chromium-linux.png
new file mode 100644
index 00000000..cfec9ced
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-description-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-description-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-description-light-webkit-linux.png
new file mode 100644
index 00000000..0b28e22b
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-description-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-accordeon-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-accordeon-dark-chromium-linux.png
new file mode 100644
index 00000000..932a84c8
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-accordeon-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-accordeon-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-accordeon-dark-webkit-linux.png
new file mode 100644
index 00000000..48b8a211
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-accordeon-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-accordeon-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-accordeon-light-chromium-linux.png
new file mode 100644
index 00000000..c1dbe185
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-accordeon-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-accordeon-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-accordeon-light-webkit-linux.png
new file mode 100644
index 00000000..2ef05579
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-accordeon-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-section-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-section-dark-chromium-linux.png
new file mode 100644
index 00000000..ff9294be
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-section-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-section-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-section-dark-webkit-linux.png
new file mode 100644
index 00000000..83904d5e
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-section-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-section-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-section-light-chromium-linux.png
new file mode 100644
index 00000000..f99ea5c0
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-section-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-section-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-section-light-webkit-linux.png
new file mode 100644
index 00000000..323f860d
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-card-section-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group-dark-chromium-linux.png
new file mode 100644
index 00000000..27ede5a3
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group-dark-webkit-linux.png
new file mode 100644
index 00000000..233fb721
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group-light-chromium-linux.png
new file mode 100644
index 00000000..c543f48e
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group-light-webkit-linux.png
new file mode 100644
index 00000000..16756fb6
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group2-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group2-dark-chromium-linux.png
new file mode 100644
index 00000000..b38d4c81
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group2-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group2-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group2-dark-webkit-linux.png
new file mode 100644
index 00000000..8d636dc3
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group2-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group2-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group2-light-chromium-linux.png
new file mode 100644
index 00000000..306861d2
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group2-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group2-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group2-light-webkit-linux.png
new file mode 100644
index 00000000..e42e1f04
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-group2-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section-dark-chromium-linux.png
new file mode 100644
index 00000000..ef653d61
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section-dark-webkit-linux.png
new file mode 100644
index 00000000..d5f07561
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section-light-chromium-linux.png
new file mode 100644
index 00000000..e151eabe
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section-light-webkit-linux.png
new file mode 100644
index 00000000..891f477a
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section2-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section2-dark-chromium-linux.png
new file mode 100644
index 00000000..6079469f
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section2-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section2-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section2-dark-webkit-linux.png
new file mode 100644
index 00000000..959033d8
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section2-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section2-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section2-light-chromium-linux.png
new file mode 100644
index 00000000..dec0b3c8
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section2-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section2-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section2-light-webkit-linux.png
new file mode 100644
index 00000000..fa1fe16d
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-section2-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-transparent-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-transparent-dark-chromium-linux.png
new file mode 100644
index 00000000..f379733a
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-transparent-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-transparent-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-transparent-dark-webkit-linux.png
new file mode 100644
index 00000000..9044d481
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-transparent-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-transparent-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-transparent-light-chromium-linux.png
new file mode 100644
index 00000000..d4460466
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-transparent-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-transparent-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-transparent-light-webkit-linux.png
new file mode 100644
index 00000000..14b82e3c
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-layouts-transparent-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-required-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-required-dark-chromium-linux.png
new file mode 100644
index 00000000..50466af3
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-required-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-required-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-required-dark-webkit-linux.png
new file mode 100644
index 00000000..4160239a
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-required-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-required-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-required-light-chromium-linux.png
new file mode 100644
index 00000000..1d6f8d25
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-required-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-required-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-required-light-webkit-linux.png
new file mode 100644
index 00000000..3879e606
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-required-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-view-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-view-dark-chromium-linux.png
new file mode 100644
index 00000000..88326371
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-view-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-view-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-view-dark-webkit-linux.png
new file mode 100644
index 00000000..5bfd9eda
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-view-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-view-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-view-light-chromium-linux.png
new file mode 100644
index 00000000..7ac1d822
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-view-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-view-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-view-light-webkit-linux.png
new file mode 100644
index 00000000..9ceaa5ab
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectBase/__snapshots__/ObjectBase.visual.test.tsx-snapshots/Object-Base-view-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__tests__/ObjectBase.visual.test.tsx b/src/lib/kit/components/Inputs/ObjectBase/__tests__/ObjectBase.visual.test.tsx
new file mode 100644
index 00000000..080ee399
--- /dev/null
+++ b/src/lib/kit/components/Inputs/ObjectBase/__tests__/ObjectBase.visual.test.tsx
@@ -0,0 +1,82 @@
+import React from 'react';
+
+import {OBJECT_BASE, VALUE} from './helpers';
+
+import {test} from '~playwright/core';
+import {DynamicForm} from '~playwright/core/DynamicForm';
+import {DynamicView} from '~playwright/core/DynamicView';
+
+test.describe('Object Base', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('default value', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('required', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('description', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test.describe('layouts', () => {
+ test('section', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('section2', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('group', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+ test('group2', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('transparent', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('card accordeon', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('card section', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+ });
+});
+
+test('Object Base view', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+});
diff --git a/src/lib/kit/components/Inputs/ObjectBase/__tests__/helpers.ts b/src/lib/kit/components/Inputs/ObjectBase/__tests__/helpers.ts
new file mode 100644
index 00000000..157a309a
--- /dev/null
+++ b/src/lib/kit/components/Inputs/ObjectBase/__tests__/helpers.ts
@@ -0,0 +1,414 @@
+import {FormValue, ObjectSpec, SpecTypes} from '../../../../../core';
+
+export const OBJECT_BASE: Record = {
+ default: {
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'accordeon',
+ layoutTitle: 'Candidate',
+ layoutOpen: true,
+ },
+ },
+ defaultValue: {
+ defaultValue: {
+ name: 'name',
+ age: 10,
+ },
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'accordeon',
+ layoutTitle: 'Candidate',
+ layoutOpen: true,
+ },
+ },
+ required: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'accordeon',
+ layoutTitle: 'Candidate',
+ layoutOpen: true,
+ },
+ },
+ desription: {
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'accordeon',
+ layoutDescription: 'desription',
+ layoutTitle: 'Candidate',
+ layoutOpen: true,
+ },
+ },
+ section: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'section',
+ layoutTitle: 'Candidate',
+ layoutOpen: true,
+ layoutDescription: 'desription',
+ },
+ },
+ section2: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'section2',
+ layoutTitle: 'Candidate',
+ layoutOpen: true,
+ layoutDescription: 'desription',
+ },
+ },
+ group: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'group',
+ layoutTitle: 'Candidate',
+ layoutOpen: true,
+ layoutDescription: 'desription',
+ },
+ },
+ group2: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'group2',
+ layoutTitle: 'Candidate',
+ layoutOpen: true,
+ layoutDescription: 'desription',
+ },
+ },
+ transparent: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'transparent',
+ layoutTitle: 'Candidate',
+ layoutOpen: true,
+ layoutDescription: 'desription',
+ },
+ },
+ card_accordeon: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'card_accordeon',
+ layoutTitle: 'Candidate',
+ layoutOpen: true,
+ layoutDescription: 'desription',
+ },
+ },
+ card_section: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'card_section',
+ layoutTitle: 'Candidate',
+ layoutOpen: true,
+ layoutDescription: 'desription',
+ },
+ },
+};
+
+export const VALUE: FormValue = {
+ name: 'name',
+ age: 10,
+};
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-dark-chromium-linux.png
new file mode 100644
index 00000000..c5d46646
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-dark-webkit-linux.png
new file mode 100644
index 00000000..534bf5d3
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-light-chromium-linux.png
new file mode 100644
index 00000000..996a564e
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-light-webkit-linux.png
new file mode 100644
index 00000000..4da7bafd
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-value-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-value-dark-chromium-linux.png
new file mode 100644
index 00000000..bda2adbb
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-value-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-value-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-value-dark-webkit-linux.png
new file mode 100644
index 00000000..0987f6b0
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-value-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-value-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-value-light-chromium-linux.png
new file mode 100644
index 00000000..b56b1e27
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-value-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-value-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-value-light-webkit-linux.png
new file mode 100644
index 00000000..aef514e9
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-default-value-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-description-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-description-dark-chromium-linux.png
new file mode 100644
index 00000000..94599296
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-description-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-description-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-description-dark-webkit-linux.png
new file mode 100644
index 00000000..3e8b4589
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-description-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-description-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-description-light-chromium-linux.png
new file mode 100644
index 00000000..5040334a
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-description-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-description-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-description-light-webkit-linux.png
new file mode 100644
index 00000000..ae92abdb
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-description-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-required-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-required-dark-chromium-linux.png
new file mode 100644
index 00000000..c848da41
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-required-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-required-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-required-dark-webkit-linux.png
new file mode 100644
index 00000000..a9755859
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-required-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-required-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-required-light-chromium-linux.png
new file mode 100644
index 00000000..877ae01f
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-required-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-required-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-required-light-webkit-linux.png
new file mode 100644
index 00000000..f52ed7a9
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-required-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-row-verbose-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-row-verbose-dark-chromium-linux.png
new file mode 100644
index 00000000..94599296
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-row-verbose-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-row-verbose-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-row-verbose-dark-webkit-linux.png
new file mode 100644
index 00000000..3e8b4589
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-row-verbose-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-row-verbose-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-row-verbose-light-chromium-linux.png
new file mode 100644
index 00000000..5040334a
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-row-verbose-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-row-verbose-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-row-verbose-light-webkit-linux.png
new file mode 100644
index 00000000..ae92abdb
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-Value-Input-row-verbose-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-boolean-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-boolean-dark-chromium-linux.png
new file mode 100644
index 00000000..fef06a03
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-boolean-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-boolean-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-boolean-dark-webkit-linux.png
new file mode 100644
index 00000000..a15cc923
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-boolean-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-boolean-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-boolean-light-chromium-linux.png
new file mode 100644
index 00000000..46a2ff9d
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-boolean-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-boolean-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-boolean-light-webkit-linux.png
new file mode 100644
index 00000000..84e7e283
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-boolean-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-string-dark-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-string-dark-chromium-linux.png
new file mode 100644
index 00000000..b151b507
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-string-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-string-dark-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-string-dark-webkit-linux.png
new file mode 100644
index 00000000..df03200a
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-string-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-string-light-chromium-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-string-light-chromium-linux.png
new file mode 100644
index 00000000..5616dce0
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-string-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-string-light-webkit-linux.png b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-string-light-webkit-linux.png
new file mode 100644
index 00000000..8ad55c2b
Binary files /dev/null and b/src/lib/kit/components/Inputs/ObjectValueInput/__snapshots__/ObjectValueInput.visual.test.tsx-snapshots/Object-value-input-view-string-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__tests__/ObjectValueInput.visual.test.tsx b/src/lib/kit/components/Inputs/ObjectValueInput/__tests__/ObjectValueInput.visual.test.tsx
new file mode 100644
index 00000000..b0b24762
--- /dev/null
+++ b/src/lib/kit/components/Inputs/ObjectValueInput/__tests__/ObjectValueInput.visual.test.tsx
@@ -0,0 +1,53 @@
+import React from 'react';
+
+import {OBJECT_VALUE_INPUT, VALUE} from './helpers';
+
+import {test} from '~playwright/core';
+import {DynamicForm} from '~playwright/core/DynamicForm';
+import {DynamicView} from '~playwright/core/DynamicView';
+
+test.describe('Object Value Input', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('default value', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('required', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('description', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('row verbose', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
+
+test.describe('Object value input view', () => {
+ test('string', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('boolean', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
diff --git a/src/lib/kit/components/Inputs/ObjectValueInput/__tests__/helpers.ts b/src/lib/kit/components/Inputs/ObjectValueInput/__tests__/helpers.ts
new file mode 100644
index 00000000..fe84a940
--- /dev/null
+++ b/src/lib/kit/components/Inputs/ObjectValueInput/__tests__/helpers.ts
@@ -0,0 +1,97 @@
+import {FormValue, ObjectSpec, SpecTypes} from '../../../../../core';
+
+export const OBJECT_VALUE_INPUT: Record = {
+ default: {
+ type: SpecTypes.Object,
+ properties: {
+ value: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'object_value',
+ layout: 'row',
+ layoutTitle: 'Object value',
+ },
+ },
+ defaultValue: {
+ defaultValue: {
+ value: 'value',
+ },
+ type: SpecTypes.Object,
+ properties: {
+ value: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'object_value',
+ layout: 'row',
+ layoutTitle: 'Object value',
+ },
+ },
+ required: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ value: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'object_value',
+ layout: 'row',
+ layoutTitle: 'Object value',
+ },
+ },
+ desription: {
+ type: SpecTypes.Object,
+ properties: {
+ value: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'object_value',
+ layout: 'row',
+ layoutTitle: 'Object value',
+ layoutDescription: 'Description',
+ },
+ },
+ row_verbose: {
+ type: SpecTypes.Object,
+ properties: {
+ value: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'object_value',
+ layout: 'row',
+ layoutTitle: 'Object value',
+ layoutDescription: 'Description',
+ },
+ },
+};
+
+export const VALUE: Record = {
+ string: {
+ value: 'value',
+ },
+ boolean: {value: true},
+};
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-default-dark-chromium-linux.png
new file mode 100644
index 00000000..2370fc01
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-default-dark-webkit-linux.png
new file mode 100644
index 00000000..5df8c445
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-default-light-chromium-linux.png
new file mode 100644
index 00000000..73d82e9f
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-default-light-webkit-linux.png
new file mode 100644
index 00000000..f192cbd9
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-description-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-description-dark-chromium-linux.png
new file mode 100644
index 00000000..df8c8750
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-description-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-description-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-description-dark-webkit-linux.png
new file mode 100644
index 00000000..3b7ad7a7
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-description-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-description-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-description-light-chromium-linux.png
new file mode 100644
index 00000000..4d2a01e8
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-description-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-description-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-description-light-webkit-linux.png
new file mode 100644
index 00000000..5cd15000
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-description-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-row-verbose-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-row-verbose-dark-chromium-linux.png
new file mode 100644
index 00000000..be97c591
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-row-verbose-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-row-verbose-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-row-verbose-dark-webkit-linux.png
new file mode 100644
index 00000000..ec0202de
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-row-verbose-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-row-verbose-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-row-verbose-light-chromium-linux.png
new file mode 100644
index 00000000..8b952e09
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-row-verbose-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-row-verbose-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-row-verbose-light-webkit-linux.png
new file mode 100644
index 00000000..dd74b84e
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-row-verbose-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-transparent-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-transparent-dark-chromium-linux.png
new file mode 100644
index 00000000..1a7f9cbf
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-transparent-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-transparent-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-transparent-dark-webkit-linux.png
new file mode 100644
index 00000000..103c04ac
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-transparent-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-transparent-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-transparent-light-chromium-linux.png
new file mode 100644
index 00000000..cc893fb6
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-transparent-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-transparent-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-transparent-light-webkit-linux.png
new file mode 100644
index 00000000..c2ec4ac1
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-layouts-transparent-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-required-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-required-dark-chromium-linux.png
new file mode 100644
index 00000000..f4447bab
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-required-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-required-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-required-dark-webkit-linux.png
new file mode 100644
index 00000000..7b719561
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-required-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-required-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-required-light-chromium-linux.png
new file mode 100644
index 00000000..6846e761
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-required-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-required-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-required-light-webkit-linux.png
new file mode 100644
index 00000000..c287591f
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-required-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-row-verbose-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-row-verbose-dark-chromium-linux.png
new file mode 100644
index 00000000..f94008b6
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-row-verbose-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-row-verbose-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-row-verbose-dark-webkit-linux.png
new file mode 100644
index 00000000..a916cab2
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-row-verbose-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-row-verbose-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-row-verbose-light-chromium-linux.png
new file mode 100644
index 00000000..edb6c652
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-row-verbose-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-row-verbose-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-row-verbose-light-webkit-linux.png
new file mode 100644
index 00000000..c3fdcad0
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-row-verbose-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-transparent-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-transparent-dark-chromium-linux.png
new file mode 100644
index 00000000..0bc80249
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-transparent-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-transparent-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-transparent-dark-webkit-linux.png
new file mode 100644
index 00000000..9e4a8f13
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-transparent-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-transparent-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-transparent-light-chromium-linux.png
new file mode 100644
index 00000000..ad8684be
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-transparent-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-transparent-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-transparent-light-webkit-linux.png
new file mode 100644
index 00000000..90ab95b9
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-layouts-transparent-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-object-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-object-dark-chromium-linux.png
new file mode 100644
index 00000000..f94008b6
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-object-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-object-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-object-dark-webkit-linux.png
new file mode 100644
index 00000000..a916cab2
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-object-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-object-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-object-light-chromium-linux.png
new file mode 100644
index 00000000..edb6c652
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-object-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-object-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-object-light-webkit-linux.png
new file mode 100644
index 00000000..c3fdcad0
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-object-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-string-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-string-dark-chromium-linux.png
new file mode 100644
index 00000000..e6f0aadb
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-string-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-string-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-string-dark-webkit-linux.png
new file mode 100644
index 00000000..db762886
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-string-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-string-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-string-light-chromium-linux.png
new file mode 100644
index 00000000..f7add2eb
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-string-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-string-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-string-light-webkit-linux.png
new file mode 100644
index 00000000..de758aee
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-Flat-view-string-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-dark-chromium-linux.png
new file mode 100644
index 00000000..d2f0ea88
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-dark-webkit-linux.png
new file mode 100644
index 00000000..76b2fc05
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-light-chromium-linux.png
new file mode 100644
index 00000000..41d5f597
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-light-webkit-linux.png
new file mode 100644
index 00000000..a9f5f504
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-object-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-object-dark-chromium-linux.png
new file mode 100644
index 00000000..c2c40127
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-object-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-object-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-object-dark-webkit-linux.png
new file mode 100644
index 00000000..c9beddad
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-object-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-object-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-object-light-chromium-linux.png
new file mode 100644
index 00000000..2460265f
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-object-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-object-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-object-light-webkit-linux.png
new file mode 100644
index 00000000..8e119a64
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-object-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-string-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-string-dark-chromium-linux.png
new file mode 100644
index 00000000..7b4a91f1
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-string-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-string-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-string-dark-webkit-linux.png
new file mode 100644
index 00000000..92223b3c
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-string-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-string-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-string-light-chromium-linux.png
new file mode 100644
index 00000000..04cab438
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-string-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-string-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-string-light-webkit-linux.png
new file mode 100644
index 00000000..200368fa
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-default-value-string-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-description-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-description-dark-chromium-linux.png
new file mode 100644
index 00000000..c8b59cb6
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-description-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-description-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-description-dark-webkit-linux.png
new file mode 100644
index 00000000..05a65153
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-description-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-description-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-description-light-chromium-linux.png
new file mode 100644
index 00000000..853296ba
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-description-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-description-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-description-light-webkit-linux.png
new file mode 100644
index 00000000..24c56e68
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-description-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-row-verbose-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-row-verbose-dark-chromium-linux.png
new file mode 100644
index 00000000..5223512a
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-row-verbose-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-row-verbose-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-row-verbose-dark-webkit-linux.png
new file mode 100644
index 00000000..de6a976f
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-row-verbose-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-row-verbose-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-row-verbose-light-chromium-linux.png
new file mode 100644
index 00000000..60d41af2
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-row-verbose-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-row-verbose-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-row-verbose-light-webkit-linux.png
new file mode 100644
index 00000000..a8e115bc
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-row-verbose-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-transparent-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-transparent-dark-chromium-linux.png
new file mode 100644
index 00000000..932a96b2
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-transparent-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-transparent-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-transparent-dark-webkit-linux.png
new file mode 100644
index 00000000..3cff42a8
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-transparent-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-transparent-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-transparent-light-chromium-linux.png
new file mode 100644
index 00000000..131df509
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-transparent-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-transparent-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-transparent-light-webkit-linux.png
new file mode 100644
index 00000000..f0eeeb22
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-layouts-transparent-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-required-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-required-dark-chromium-linux.png
new file mode 100644
index 00000000..1ead1bca
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-required-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-required-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-required-dark-webkit-linux.png
new file mode 100644
index 00000000..53bc5795
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-required-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-required-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-required-light-chromium-linux.png
new file mode 100644
index 00000000..93144d44
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-required-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-required-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-required-light-webkit-linux.png
new file mode 100644
index 00000000..c8654c5f
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-required-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-row-verbose-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-row-verbose-dark-chromium-linux.png
new file mode 100644
index 00000000..b3b3d4ba
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-row-verbose-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-row-verbose-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-row-verbose-dark-webkit-linux.png
new file mode 100644
index 00000000..bd271339
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-row-verbose-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-row-verbose-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-row-verbose-light-chromium-linux.png
new file mode 100644
index 00000000..29b54b6c
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-row-verbose-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-row-verbose-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-row-verbose-light-webkit-linux.png
new file mode 100644
index 00000000..29e4f57d
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-row-verbose-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-transparent-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-transparent-dark-chromium-linux.png
new file mode 100644
index 00000000..32831398
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-transparent-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-transparent-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-transparent-dark-webkit-linux.png
new file mode 100644
index 00000000..b676bfeb
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-transparent-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-transparent-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-transparent-light-chromium-linux.png
new file mode 100644
index 00000000..ceee5d54
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-transparent-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-transparent-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-transparent-light-webkit-linux.png
new file mode 100644
index 00000000..9f99ac97
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-layouts-transparent-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-object-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-object-dark-chromium-linux.png
new file mode 100644
index 00000000..b3b3d4ba
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-object-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-object-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-object-dark-webkit-linux.png
new file mode 100644
index 00000000..bd271339
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-object-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-object-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-object-light-chromium-linux.png
new file mode 100644
index 00000000..29b54b6c
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-object-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-object-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-object-light-webkit-linux.png
new file mode 100644
index 00000000..29e4f57d
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-object-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-string-dark-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-string-dark-chromium-linux.png
new file mode 100644
index 00000000..70ceac3c
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-string-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-string-dark-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-string-dark-webkit-linux.png
new file mode 100644
index 00000000..1c17d9fe
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-string-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-string-light-chromium-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-string-light-chromium-linux.png
new file mode 100644
index 00000000..26218146
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-string-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-string-light-webkit-linux.png b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-string-light-webkit-linux.png
new file mode 100644
index 00000000..b3309852
Binary files /dev/null and b/src/lib/kit/components/Inputs/OneOf/__snapshots__/OneOf.visual.test.tsx-snapshots/OneOf-view-string-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/OneOf/__tests__/OneOf.visual.test.tsx b/src/lib/kit/components/Inputs/OneOf/__tests__/OneOf.visual.test.tsx
new file mode 100644
index 00000000..cd09c1b2
--- /dev/null
+++ b/src/lib/kit/components/Inputs/OneOf/__tests__/OneOf.visual.test.tsx
@@ -0,0 +1,143 @@
+import React from 'react';
+
+import {ONEOF, ONEOF_FALT, VALUE} from './helpers';
+
+import {test} from '~playwright/core';
+import {DynamicForm} from '~playwright/core/DynamicForm';
+import {DynamicView} from '~playwright/core/DynamicView';
+
+test.describe('OneOf', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('default value object', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('default value string', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('required', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('description', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test.describe('layouts', () => {
+ test('row verbose', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('transparent', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+ });
+});
+
+test.describe('OneOf view', () => {
+ test('object', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('string', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test.describe('layouts', () => {
+ test('row verbose', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('transparent', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+ });
+});
+
+test.describe('OneOf Flat', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('required', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('description', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test.describe('layouts', () => {
+ test('row verbose', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('transparent', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+ });
+});
+
+test.describe('OneOf Flat view', () => {
+ test('object', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('string', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test.describe('layouts', () => {
+ test('row verbose', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('transparent', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+ });
+});
diff --git a/src/lib/kit/components/Inputs/OneOf/__tests__/helpers.ts b/src/lib/kit/components/Inputs/OneOf/__tests__/helpers.ts
new file mode 100644
index 00000000..6db521ba
--- /dev/null
+++ b/src/lib/kit/components/Inputs/OneOf/__tests__/helpers.ts
@@ -0,0 +1,856 @@
+import {FormValue, ObjectSpec, SpecTypes} from '../../../../../core';
+
+export const ONEOF: Record = {
+ default: {
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'oneof',
+ layout: 'row',
+ layoutTitle: 'Candidate',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+ defaultValueObject: {
+ defaultValue: {
+ external: {
+ name: 'name',
+ age: 10,
+ },
+ },
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'oneof',
+ layout: 'row',
+ layoutTitle: 'Candidate',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+ defaultValueString: {
+ defaultValue: {
+ internal: 'internal',
+ },
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'oneof',
+ layout: 'row',
+ layoutTitle: 'Candidate',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+ required: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'oneof',
+ layout: 'row',
+ layoutTitle: 'Candidate',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+ desription: {
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'oneof',
+ layout: 'row',
+ layoutTitle: 'Candidate',
+ layoutDescription: 'desription',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+ row_verbose: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'oneof',
+ layout: 'row_verbose',
+ layoutDescription: 'desription',
+ layoutTitle: 'Candidate',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+ transparent: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'oneof',
+ layout: 'transparent',
+ layoutDescription: 'desription',
+ layoutTitle: 'Candidate',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+};
+
+export const VALUE: Record = {
+ object: {
+ external: {
+ name: 'name',
+ age: 10,
+ },
+ },
+ string: {
+ internal: 'internal',
+ },
+};
+
+export const ONEOF_FALT: Record = {
+ default: {
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'oneof_flat',
+ layout: 'row',
+ layoutTitle: 'Candidate',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+ required: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'oneof_flat',
+ layout: 'row',
+ layoutTitle: 'Candidate',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+ desription: {
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'oneof_flat',
+ layout: 'row',
+ layoutTitle: 'Candidate',
+ layoutDescription: 'desription',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+ row_verbose: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'oneof_flat',
+ layout: 'row_verbose',
+ layoutDescription: 'desription',
+ layoutTitle: 'Candidate',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+ transparent: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ external: {
+ required: true,
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Person data',
+ },
+ },
+ internal: {
+ required: true,
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Person id',
+ },
+ },
+ empty: {
+ required: true,
+ type: SpecTypes.Object,
+ viewSpec: {
+ type: 'base',
+ layoutTitle: 'Empty',
+ },
+ properties: {},
+ },
+ },
+ description: {
+ internal: 'Internal candidate',
+ empty: 'None',
+ external: 'External candidate',
+ },
+ viewSpec: {
+ type: 'oneof_flat',
+ layout: 'transparent',
+ layoutDescription: 'desription',
+ layoutTitle: 'Candidate',
+ order: ['external', 'internal', 'empty'],
+ },
+ },
+};
diff --git a/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-default-dark-chromium-linux.png
new file mode 100644
index 00000000..ad86dcc9
Binary files /dev/null and b/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-default-dark-webkit-linux.png
new file mode 100644
index 00000000..cfddb15d
Binary files /dev/null and b/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-default-light-chromium-linux.png
new file mode 100644
index 00000000..db00d7c4
Binary files /dev/null and b/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-default-light-webkit-linux.png
new file mode 100644
index 00000000..8ee4c79a
Binary files /dev/null and b/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-full-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-full-dark-chromium-linux.png
new file mode 100644
index 00000000..229d15d1
Binary files /dev/null and b/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-full-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-full-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-full-dark-webkit-linux.png
new file mode 100644
index 00000000..cc3e158e
Binary files /dev/null and b/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-full-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-full-light-chromium-linux.png b/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-full-light-chromium-linux.png
new file mode 100644
index 00000000..2fb0c9af
Binary files /dev/null and b/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-full-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-full-light-webkit-linux.png b/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-full-light-webkit-linux.png
new file mode 100644
index 00000000..e16c1794
Binary files /dev/null and b/src/lib/kit/components/Inputs/Secret/__snapshots__/Secret.visual.test.tsx-snapshots/Secret-full-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Secret/__tests__/Secret.visual.test.tsx b/src/lib/kit/components/Inputs/Secret/__tests__/Secret.visual.test.tsx
new file mode 100644
index 00000000..c2dc8b6a
--- /dev/null
+++ b/src/lib/kit/components/Inputs/Secret/__tests__/Secret.visual.test.tsx
@@ -0,0 +1,20 @@
+import React from 'react';
+
+import {SECRET} from './helpers';
+
+import {test} from '~playwright/core';
+import {DynamicForm} from '~playwright/core/DynamicForm';
+
+test.describe('Secret', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('full', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
diff --git a/src/lib/kit/components/Inputs/Secret/__tests__/helpers.ts b/src/lib/kit/components/Inputs/Secret/__tests__/helpers.ts
new file mode 100644
index 00000000..e8063f79
--- /dev/null
+++ b/src/lib/kit/components/Inputs/Secret/__tests__/helpers.ts
@@ -0,0 +1,39 @@
+import {ObjectSpec, SpecTypes} from '../../../../../core';
+
+export const SECRET: Record = {
+ default: {
+ type: SpecTypes.Object,
+ properties: {
+ raw: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'secret',
+ layout: 'row',
+ layoutTitle: 'Secret',
+ },
+ },
+ full: {
+ defaultValue: {raw: 'value'},
+ type: SpecTypes.Object,
+ properties: {
+ raw: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'secret',
+ layout: 'row',
+ layoutTitle: 'Secret',
+ layoutDescription: 'description',
+ },
+ required: true,
+ },
+};
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-View-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-View-dark-chromium-linux.png
new file mode 100644
index 00000000..e397aa4b
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-View-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-View-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-View-dark-webkit-linux.png
new file mode 100644
index 00000000..9fafabc4
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-View-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-View-light-chromium-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-View-light-chromium-linux.png
new file mode 100644
index 00000000..6d728826
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-View-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-View-light-webkit-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-View-light-webkit-linux.png
new file mode 100644
index 00000000..7cf5931e
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-View-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-dark-chromium-linux.png
new file mode 100644
index 00000000..e397d64d
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-dark-webkit-linux.png
new file mode 100644
index 00000000..977139e3
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-light-chromium-linux.png
new file mode 100644
index 00000000..572a55e7
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-light-webkit-linux.png
new file mode 100644
index 00000000..8885421e
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-value-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-value-dark-chromium-linux.png
new file mode 100644
index 00000000..79644dc6
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-value-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-value-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-value-dark-webkit-linux.png
new file mode 100644
index 00000000..84400503
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-value-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-value-light-chromium-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-value-light-chromium-linux.png
new file mode 100644
index 00000000..c0b4ce52
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-value-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-value-light-webkit-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-value-light-webkit-linux.png
new file mode 100644
index 00000000..dcfe5aab
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-default-value-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-description-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-description-dark-chromium-linux.png
new file mode 100644
index 00000000..beb5fee1
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-description-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-description-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-description-dark-webkit-linux.png
new file mode 100644
index 00000000..66a93899
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-description-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-description-light-chromium-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-description-light-chromium-linux.png
new file mode 100644
index 00000000..5455bb54
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-description-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-description-light-webkit-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-description-light-webkit-linux.png
new file mode 100644
index 00000000..db84dccc
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-description-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-required-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-required-dark-chromium-linux.png
new file mode 100644
index 00000000..2a28df25
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-required-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-required-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-required-dark-webkit-linux.png
new file mode 100644
index 00000000..80a75627
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-required-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-required-light-chromium-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-required-light-chromium-linux.png
new file mode 100644
index 00000000..c9244177
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-required-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-required-light-webkit-linux.png b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-required-light-webkit-linux.png
new file mode 100644
index 00000000..9c5f7b86
Binary files /dev/null and b/src/lib/kit/components/Inputs/Select/__snapshots__/Select.visual.test.tsx-snapshots/Select-required-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Select/__tests__/Select.visual.test.tsx b/src/lib/kit/components/Inputs/Select/__tests__/Select.visual.test.tsx
new file mode 100644
index 00000000..0846d5a2
--- /dev/null
+++ b/src/lib/kit/components/Inputs/Select/__tests__/Select.visual.test.tsx
@@ -0,0 +1,39 @@
+import React from 'react';
+
+import {SELECT, VALUE} from './helpers';
+
+import {test} from '~playwright/core';
+import {DynamicForm} from '~playwright/core/DynamicForm';
+import {DynamicView} from '~playwright/core/DynamicView';
+
+test.describe('Select', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('default value', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('required', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('description', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
+
+test('Select View', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+});
diff --git a/src/lib/kit/components/Inputs/Select/__tests__/helpers.ts b/src/lib/kit/components/Inputs/Select/__tests__/helpers.ts
new file mode 100644
index 00000000..7f162ffc
--- /dev/null
+++ b/src/lib/kit/components/Inputs/Select/__tests__/helpers.ts
@@ -0,0 +1,201 @@
+import {SpecTypes, StringSpec} from '../../../../../core';
+
+export const SELECT: Record = {
+ default: {
+ type: SpecTypes.String,
+ enum: [
+ 'foo',
+ 'bar',
+ 'rab',
+ 'oof',
+ 'fooBar',
+ 'fooOof',
+ 'barFoo',
+ 'barOof',
+ 'fooFoo',
+ 'barBar',
+ ],
+ description: {
+ foo: 'Option 1',
+ bar: 'Option 2',
+ rab: 'Option 3',
+ oof: 'Option 4',
+ fooBar: 'Option 5',
+ fooOof: 'Option 6',
+ barFoo: 'Option 7',
+ barOof: 'Option 8',
+ fooFoo: 'Option 9',
+ barBar: 'Option 10',
+ },
+ viewSpec: {
+ type: 'select',
+ layout: 'row',
+ layoutTitle: 'Select',
+ placeholder: 'placeholder text',
+ selectParams: {
+ filterPlaceholder: 'filter placeholder',
+ meta: {
+ foo: 'Additional text 1',
+ bar: 'Additional text 2',
+ rab: 'Additional text 3',
+ oof: 'Additional text 4',
+ fooBar: 'Additional text 5',
+ fooOof: 'Additional text 6',
+ barFoo: 'Additional text 7',
+ barOof: 'Additional text 8',
+ fooFoo: 'Additional text 9',
+ barBar: 'Additional text 10',
+ },
+ },
+ },
+ },
+ defaultValue: {
+ defaultValue: 'foo',
+ type: SpecTypes.String,
+ enum: [
+ 'foo',
+ 'bar',
+ 'rab',
+ 'oof',
+ 'fooBar',
+ 'fooOof',
+ 'barFoo',
+ 'barOof',
+ 'fooFoo',
+ 'barBar',
+ ],
+ description: {
+ foo: 'Option 1',
+ bar: 'Option 2',
+ rab: 'Option 3',
+ oof: 'Option 4',
+ fooBar: 'Option 5',
+ fooOof: 'Option 6',
+ barFoo: 'Option 7',
+ barOof: 'Option 8',
+ fooFoo: 'Option 9',
+ barBar: 'Option 10',
+ },
+ viewSpec: {
+ type: 'select',
+ layout: 'row',
+ layoutTitle: 'Select',
+ placeholder: 'placeholder text',
+ selectParams: {
+ filterPlaceholder: 'filter placeholder',
+ meta: {
+ foo: 'Additional text 1',
+ bar: 'Additional text 2',
+ rab: 'Additional text 3',
+ oof: 'Additional text 4',
+ fooBar: 'Additional text 5',
+ fooOof: 'Additional text 6',
+ barFoo: 'Additional text 7',
+ barOof: 'Additional text 8',
+ fooFoo: 'Additional text 9',
+ barBar: 'Additional text 10',
+ },
+ },
+ },
+ },
+ required: {
+ required: true,
+ type: SpecTypes.String,
+ enum: [
+ 'foo',
+ 'bar',
+ 'rab',
+ 'oof',
+ 'fooBar',
+ 'fooOof',
+ 'barFoo',
+ 'barOof',
+ 'fooFoo',
+ 'barBar',
+ ],
+ description: {
+ foo: 'Option 1',
+ bar: 'Option 2',
+ rab: 'Option 3',
+ oof: 'Option 4',
+ fooBar: 'Option 5',
+ fooOof: 'Option 6',
+ barFoo: 'Option 7',
+ barOof: 'Option 8',
+ fooFoo: 'Option 9',
+ barBar: 'Option 10',
+ },
+ viewSpec: {
+ type: 'select',
+ layout: 'row',
+ layoutTitle: 'Select',
+ placeholder: 'placeholder text',
+ selectParams: {
+ filterPlaceholder: 'filter placeholder',
+ meta: {
+ foo: 'Additional text 1',
+ bar: 'Additional text 2',
+ rab: 'Additional text 3',
+ oof: 'Additional text 4',
+ fooBar: 'Additional text 5',
+ fooOof: 'Additional text 6',
+ barFoo: 'Additional text 7',
+ barOof: 'Additional text 8',
+ fooFoo: 'Additional text 9',
+ barBar: 'Additional text 10',
+ },
+ },
+ },
+ },
+ description: {
+ type: SpecTypes.String,
+ enum: [
+ 'foo',
+ 'bar',
+ 'rab',
+ 'oof',
+ 'fooBar',
+ 'fooOof',
+ 'barFoo',
+ 'barOof',
+ 'fooFoo',
+ 'barBar',
+ ],
+ description: {
+ foo: 'Option 1',
+ bar: 'Option 2',
+ rab: 'Option 3',
+ oof: 'Option 4',
+ fooBar: 'Option 5',
+ fooOof: 'Option 6',
+ barFoo: 'Option 7',
+ barOof: 'Option 8',
+ fooFoo: 'Option 9',
+ barBar: 'Option 10',
+ },
+ viewSpec: {
+ type: 'select',
+ layout: 'row',
+ layoutTitle: 'Select',
+ placeholder: 'placeholder text',
+ layoutDescription: 'description',
+ selectParams: {
+ filterPlaceholder: 'filter placeholder',
+ meta: {
+ foo: 'Additional text 1',
+ bar: 'Additional text 2',
+ rab: 'Additional text 3',
+ oof: 'Additional text 4',
+ fooBar: 'Additional text 5',
+ fooOof: 'Additional text 6',
+ barFoo: 'Additional text 7',
+ barOof: 'Additional text 8',
+ fooFoo: 'Additional text 9',
+ barBar: 'Additional text 10',
+ },
+ },
+ },
+ },
+};
+
+export const VALUE = 'foo';
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-dark-chromium-linux.png
new file mode 100644
index 00000000..6363ca9c
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-dark-webkit-linux.png
new file mode 100644
index 00000000..62c91556
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-light-chromium-linux.png
new file mode 100644
index 00000000..6b103d97
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-light-webkit-linux.png
new file mode 100644
index 00000000..f568b87b
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-value-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-value-dark-chromium-linux.png
new file mode 100644
index 00000000..d22b6302
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-value-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-value-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-value-dark-webkit-linux.png
new file mode 100644
index 00000000..92194619
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-value-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-value-light-chromium-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-value-light-chromium-linux.png
new file mode 100644
index 00000000..faad2e0b
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-value-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-value-light-webkit-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-value-light-webkit-linux.png
new file mode 100644
index 00000000..22ba1aae
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-default-value-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-full-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-full-dark-chromium-linux.png
new file mode 100644
index 00000000..c042de4c
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-full-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-full-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-full-dark-webkit-linux.png
new file mode 100644
index 00000000..f4938810
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-full-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-full-light-chromium-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-full-light-chromium-linux.png
new file mode 100644
index 00000000..b6b5bc36
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-full-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-full-light-webkit-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-full-light-webkit-linux.png
new file mode 100644
index 00000000..8779a9f8
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-full-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-row-verbose-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-row-verbose-dark-chromium-linux.png
new file mode 100644
index 00000000..17582de1
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-row-verbose-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-row-verbose-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-row-verbose-dark-webkit-linux.png
new file mode 100644
index 00000000..b405c8a6
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-row-verbose-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-row-verbose-light-chromium-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-row-verbose-light-chromium-linux.png
new file mode 100644
index 00000000..f936eb37
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-row-verbose-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-row-verbose-light-webkit-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-row-verbose-light-webkit-linux.png
new file mode 100644
index 00000000..7072bc9d
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-row-verbose-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-view-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-view-default-dark-chromium-linux.png
new file mode 100644
index 00000000..c1b00c02
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-view-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-view-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-view-default-dark-webkit-linux.png
new file mode 100644
index 00000000..2f9915f6
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-view-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-view-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-view-default-light-chromium-linux.png
new file mode 100644
index 00000000..3b315b4b
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-view-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-view-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-view-default-light-webkit-linux.png
new file mode 100644
index 00000000..598e74c6
Binary files /dev/null and b/src/lib/kit/components/Inputs/Switch/__snapshots__/Switch.visual.test.tsx-snapshots/Switch-view-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Switch/__tests__/Switch.visual.test.tsx b/src/lib/kit/components/Inputs/Switch/__tests__/Switch.visual.test.tsx
new file mode 100644
index 00000000..67a551fb
--- /dev/null
+++ b/src/lib/kit/components/Inputs/Switch/__tests__/Switch.visual.test.tsx
@@ -0,0 +1,41 @@
+import React from 'react';
+
+import {SWITCH, VALUE} from './helpers';
+
+import {test} from '~playwright/core';
+import {DynamicForm} from '~playwright/core/DynamicForm';
+import {DynamicView} from '~playwright/core/DynamicView';
+
+test.describe('Switch', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('full', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('default value', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('row verbose', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
+
+test.describe('Switch view', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
diff --git a/src/lib/kit/components/Inputs/Switch/__tests__/helpers.ts b/src/lib/kit/components/Inputs/Switch/__tests__/helpers.ts
new file mode 100644
index 00000000..0503d7f8
--- /dev/null
+++ b/src/lib/kit/components/Inputs/Switch/__tests__/helpers.ts
@@ -0,0 +1,43 @@
+import {BooleanSpec, FormValue, SpecTypes} from '../../../../../core';
+
+export const SWITCH: Record = {
+ default: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'switch',
+ layout: 'row',
+ layoutTitle: 'Flag',
+ },
+ },
+ full: {
+ type: SpecTypes.Boolean,
+ required: true,
+ viewSpec: {
+ disabled: true,
+ type: 'switch',
+ layout: 'row',
+ layoutTitle: 'Flag',
+ layoutDescription: 'description',
+ },
+ },
+ defaultValue: {
+ defaultValue: true,
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'switch',
+ layout: 'row',
+ layoutTitle: 'File Input',
+ },
+ },
+ row_verbose: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'switch',
+ layout: 'row_verbose',
+ layoutTitle: 'File Input',
+ layoutDescription: 'description',
+ },
+ },
+};
+
+export const VALUE: FormValue = true;
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-dark-chromium-linux.png
new file mode 100644
index 00000000..1a8e89e3
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-dark-webkit-linux.png
new file mode 100644
index 00000000..7e5a9632
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-light-chromium-linux.png
new file mode 100644
index 00000000..49d2de04
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-light-webkit-linux.png
new file mode 100644
index 00000000..f40a5847
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-value-dark-chromium-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-value-dark-chromium-linux.png
new file mode 100644
index 00000000..cace2f8c
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-value-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-value-dark-webkit-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-value-dark-webkit-linux.png
new file mode 100644
index 00000000..e28eec6e
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-value-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-value-light-chromium-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-value-light-chromium-linux.png
new file mode 100644
index 00000000..df1afaf1
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-value-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-value-light-webkit-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-value-light-webkit-linux.png
new file mode 100644
index 00000000..666bed39
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-default-value-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-max-length-dark-chromium-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-max-length-dark-chromium-linux.png
new file mode 100644
index 00000000..c8c884cb
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-max-length-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-max-length-dark-webkit-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-max-length-dark-webkit-linux.png
new file mode 100644
index 00000000..042b7948
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-max-length-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-max-length-light-chromium-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-max-length-light-chromium-linux.png
new file mode 100644
index 00000000..19b7770c
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-max-length-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-max-length-light-webkit-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-max-length-light-webkit-linux.png
new file mode 100644
index 00000000..940d8c0d
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-max-length-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-min-length-dark-chromium-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-min-length-dark-chromium-linux.png
new file mode 100644
index 00000000..8e3333ef
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-min-length-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-min-length-dark-webkit-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-min-length-dark-webkit-linux.png
new file mode 100644
index 00000000..0794cad8
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-min-length-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-min-length-light-chromium-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-min-length-light-chromium-linux.png
new file mode 100644
index 00000000..dc64181a
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-min-length-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-min-length-light-webkit-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-min-length-light-webkit-linux.png
new file mode 100644
index 00000000..fcdd1a44
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-error-min-length-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-required-dark-chromium-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-required-dark-chromium-linux.png
new file mode 100644
index 00000000..2ceff27a
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-required-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-required-dark-webkit-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-required-dark-webkit-linux.png
new file mode 100644
index 00000000..2d8cc2dc
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-required-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-required-light-chromium-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-required-light-chromium-linux.png
new file mode 100644
index 00000000..b1ed75d8
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-required-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-required-light-webkit-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-required-light-webkit-linux.png
new file mode 100644
index 00000000..c64b982a
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-required-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-view-default-dark-chromium-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-view-default-dark-chromium-linux.png
new file mode 100644
index 00000000..5287c8fe
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-view-default-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-view-default-dark-webkit-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-view-default-dark-webkit-linux.png
new file mode 100644
index 00000000..efdfcbc9
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-view-default-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-view-default-light-chromium-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-view-default-light-chromium-linux.png
new file mode 100644
index 00000000..1efeb1f9
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-view-default-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-view-default-light-webkit-linux.png b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-view-default-light-webkit-linux.png
new file mode 100644
index 00000000..6a7aa77e
Binary files /dev/null and b/src/lib/kit/components/Inputs/TableArrayInput/__snapshots__/TableArrayInput.visual.test.tsx-snapshots/Table-Array-Input-view-default-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__tests__/TableArrayInput.visual.test.tsx b/src/lib/kit/components/Inputs/TableArrayInput/__tests__/TableArrayInput.visual.test.tsx
new file mode 100644
index 00000000..d34d205d
--- /dev/null
+++ b/src/lib/kit/components/Inputs/TableArrayInput/__tests__/TableArrayInput.visual.test.tsx
@@ -0,0 +1,51 @@
+import React from 'react';
+
+import {TABLE_ARRAY_INPUT, VALUE} from './helpers';
+
+import {test} from '~playwright/core';
+import {DynamicForm} from '~playwright/core/DynamicForm';
+import {DynamicView} from '~playwright/core/DynamicView';
+
+test.describe('Table Array Input', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('default value', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('required', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('error max length', async ({mount, expectScreenshot}) => {
+ const component = await mount();
+
+ await component.getByText('Candidate').click();
+
+ await expectScreenshot();
+ });
+
+ test('error min length', async ({mount, expectScreenshot}) => {
+ const component = await mount();
+
+ await component.getByText('Candidate').click();
+
+ await expectScreenshot();
+ });
+});
+
+test.describe('Table Array Input view', () => {
+ test('default', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
diff --git a/src/lib/kit/components/Inputs/TableArrayInput/__tests__/helpers.tsx b/src/lib/kit/components/Inputs/TableArrayInput/__tests__/helpers.tsx
new file mode 100644
index 00000000..7cbaba25
--- /dev/null
+++ b/src/lib/kit/components/Inputs/TableArrayInput/__tests__/helpers.tsx
@@ -0,0 +1,432 @@
+import React from 'react';
+
+import {ArraySpec, FormValue, Spec, SpecTypes} from '../../../../../core';
+
+import {DynamicForm as BaseDynamicForm} from '~playwright/core/DynamicForm';
+
+export const TABLE_ARRAY_INPUT: Record = {
+ default: {
+ type: SpecTypes.Array,
+ items: {
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'table_item',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'table_item',
+ },
+ },
+ size: {
+ type: SpecTypes.Array,
+ enum: ['s', 'm', 'l'],
+ description: {
+ s: 'Small',
+ m: 'Medium',
+ l: 'Large',
+ },
+ viewSpec: {
+ type: 'select',
+ layout: 'table_item',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'table_item',
+ },
+ },
+ },
+ viewSpec: {
+ type: '',
+ },
+ },
+ viewSpec: {
+ type: 'table',
+ layout: 'accordeon',
+ layoutTitle: 'Table',
+ layoutOpen: true,
+ itemLabel: 'Candidate',
+ table: [
+ {
+ label: 'Name',
+ property: 'name',
+ },
+ {
+ label: 'Age',
+ property: 'age',
+ },
+ {
+ label: 'Size',
+ property: 'size',
+ },
+ {
+ label: 'Driver license',
+ property: 'license',
+ },
+ ],
+ },
+ },
+ defaultValue: {
+ defaultValue: [
+ {
+ name: 'Foo',
+ age: 13,
+ license: false,
+ },
+ {
+ name: 'Bar',
+ age: 37,
+ license: true,
+ },
+ ],
+ type: SpecTypes.Array,
+ items: {
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'table_item',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'table_item',
+ },
+ },
+ size: {
+ type: SpecTypes.Array,
+ enum: ['s', 'm', 'l'],
+ description: {
+ s: 'Small',
+ m: 'Medium',
+ l: 'Large',
+ },
+ viewSpec: {
+ type: 'select',
+ layout: 'table_item',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'table_item',
+ },
+ },
+ },
+ viewSpec: {
+ type: '',
+ },
+ },
+ viewSpec: {
+ type: 'table',
+ layout: 'accordeon',
+ layoutTitle: 'Table',
+ layoutOpen: true,
+ itemLabel: 'Candidate',
+ table: [
+ {
+ label: 'Name',
+ property: 'name',
+ },
+ {
+ label: 'Age',
+ property: 'age',
+ },
+ {
+ label: 'Size',
+ property: 'size',
+ },
+ {
+ label: 'Driver license',
+ property: 'license',
+ },
+ ],
+ },
+ },
+ required: {
+ required: true,
+ defaultValue: [
+ {
+ name: 'Foo',
+ age: 13,
+ license: false,
+ },
+ {
+ name: 'Bar',
+ age: 37,
+ license: true,
+ },
+ ],
+ type: SpecTypes.Array,
+ items: {
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'table_item',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'table_item',
+ },
+ },
+ size: {
+ type: SpecTypes.Array,
+ enum: ['s', 'm', 'l'],
+ description: {
+ s: 'Small',
+ m: 'Medium',
+ l: 'Large',
+ },
+ viewSpec: {
+ type: 'select',
+ layout: 'table_item',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'table_item',
+ },
+ },
+ },
+ viewSpec: {
+ type: '',
+ },
+ },
+ viewSpec: {
+ type: 'table',
+ layout: 'accordeon',
+ layoutTitle: 'Table',
+ layoutOpen: true,
+ itemLabel: 'Candidate',
+ table: [
+ {
+ label: 'Name',
+ property: 'name',
+ },
+ {
+ label: 'Age',
+ property: 'age',
+ },
+ {
+ label: 'Size',
+ property: 'size',
+ },
+ {
+ label: 'Driver license',
+ property: 'license',
+ },
+ ],
+ },
+ },
+ errorMaxLength: {
+ maxLength: BigInt(2),
+ defaultValue: [
+ {
+ name: 'Foo',
+ age: 13,
+ license: false,
+ },
+ {
+ name: 'Bar',
+ age: 37,
+ license: true,
+ },
+ ],
+ type: SpecTypes.Array,
+ items: {
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'table_item',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'table_item',
+ },
+ },
+ size: {
+ type: SpecTypes.Array,
+ enum: ['s', 'm', 'l'],
+ description: {
+ s: 'Small',
+ m: 'Medium',
+ l: 'Large',
+ },
+ viewSpec: {
+ type: 'select',
+ layout: 'table_item',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'table_item',
+ },
+ },
+ },
+ viewSpec: {
+ type: '',
+ },
+ },
+ viewSpec: {
+ type: 'table',
+ layout: 'accordeon',
+ layoutTitle: 'Table',
+ layoutOpen: true,
+ itemLabel: 'Candidate',
+ table: [
+ {
+ label: 'Name',
+ property: 'name',
+ },
+ {
+ label: 'Age',
+ property: 'age',
+ },
+ {
+ label: 'Size',
+ property: 'size',
+ },
+ {
+ label: 'Driver license',
+ property: 'license',
+ },
+ ],
+ },
+ },
+ errorMinLength: {
+ minLength: BigInt(4),
+ defaultValue: [
+ {
+ name: 'Foo',
+ age: 13,
+ license: false,
+ },
+ {
+ name: 'Bar',
+ age: 37,
+ license: true,
+ },
+ ],
+ type: SpecTypes.Array,
+ items: {
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'table_item',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'table_item',
+ },
+ },
+ size: {
+ type: SpecTypes.Array,
+ enum: ['s', 'm', 'l'],
+ description: {
+ s: 'Small',
+ m: 'Medium',
+ l: 'Large',
+ },
+ viewSpec: {
+ type: 'select',
+ layout: 'table_item',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'table_item',
+ },
+ },
+ },
+ viewSpec: {
+ type: '',
+ },
+ },
+ viewSpec: {
+ type: 'table',
+ layout: 'accordeon',
+ layoutTitle: 'Table',
+ layoutOpen: true,
+ itemLabel: 'Candidate',
+ table: [
+ {
+ label: 'Name',
+ property: 'name',
+ },
+ {
+ label: 'Age',
+ property: 'age',
+ },
+ {
+ label: 'Size',
+ property: 'size',
+ },
+ {
+ label: 'Driver license',
+ property: 'license',
+ },
+ ],
+ },
+ },
+};
+
+export const VALUE: Record = {
+ array: [
+ {
+ name: 'Foo',
+ age: 13,
+ license: false,
+ },
+ {
+ name: 'Bar',
+ age: 37,
+ license: true,
+ },
+ ],
+};
+
+export const DynamicForm = ({spec}: {spec: Spec}) => {
+ return (
+
+
+
+ );
+};
diff --git a/src/lib/kit/components/Inputs/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-Input-Password-spec-generate-random-value-button-dark-chromium-linux.png b/src/lib/kit/components/Inputs/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-Input-Password-spec-generate-random-value-button-dark-chromium-linux.png
index c8800092..f1a1bff1 100644
Binary files a/src/lib/kit/components/Inputs/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-Input-Password-spec-generate-random-value-button-dark-chromium-linux.png and b/src/lib/kit/components/Inputs/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-Input-Password-spec-generate-random-value-button-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-Input-Password-spec-generate-random-value-button-dark-webkit-linux.png b/src/lib/kit/components/Inputs/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-Input-Password-spec-generate-random-value-button-dark-webkit-linux.png
index 79e547b9..a7072094 100644
Binary files a/src/lib/kit/components/Inputs/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-Input-Password-spec-generate-random-value-button-dark-webkit-linux.png and b/src/lib/kit/components/Inputs/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-Input-Password-spec-generate-random-value-button-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-Input-Password-spec-generate-random-value-button-light-chromium-linux.png b/src/lib/kit/components/Inputs/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-Input-Password-spec-generate-random-value-button-light-chromium-linux.png
index 9b99f868..6c96b152 100644
Binary files a/src/lib/kit/components/Inputs/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-Input-Password-spec-generate-random-value-button-light-chromium-linux.png and b/src/lib/kit/components/Inputs/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-Input-Password-spec-generate-random-value-button-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Inputs/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-Input-Password-spec-generate-random-value-button-light-webkit-linux.png b/src/lib/kit/components/Inputs/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-Input-Password-spec-generate-random-value-button-light-webkit-linux.png
index dfc13473..9eab45cf 100644
Binary files a/src/lib/kit/components/Inputs/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-Input-Password-spec-generate-random-value-button-light-webkit-linux.png and b/src/lib/kit/components/Inputs/Text/__snapshots__/Text.visual.test.tsx-snapshots/Text-Input-Password-spec-generate-random-value-button-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-array-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-array-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..8a676f3e
Binary files /dev/null and b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-array-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-array-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-array-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..f42adaea
Binary files /dev/null and b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-array-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-array-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-array-spec-light-chromium-linux.png
new file mode 100644
index 00000000..eb124587
Binary files /dev/null and b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-array-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-array-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-array-spec-light-webkit-linux.png
new file mode 100644
index 00000000..780a9fa6
Binary files /dev/null and b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-array-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-object-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-object-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..c34d12e0
Binary files /dev/null and b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-object-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-object-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-object-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..c0553357
Binary files /dev/null and b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-object-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-object-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-object-spec-light-chromium-linux.png
new file mode 100644
index 00000000..7b648a80
Binary files /dev/null and b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-object-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-object-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-object-spec-light-webkit-linux.png
new file mode 100644
index 00000000..97871d0a
Binary files /dev/null and b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-View-object-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-array-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-array-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..7edb6cb4
Binary files /dev/null and b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-array-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-array-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-array-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..e1c4d91e
Binary files /dev/null and b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-array-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-array-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-array-spec-light-chromium-linux.png
new file mode 100644
index 00000000..16e520cd
Binary files /dev/null and b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-array-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-array-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-array-spec-light-webkit-linux.png
new file mode 100644
index 00000000..e24b3aa2
Binary files /dev/null and b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-array-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-object-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-object-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..00d87e9e
Binary files /dev/null and b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-object-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-object-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-object-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..80cde489
Binary files /dev/null and b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-object-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-object-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-object-spec-light-chromium-linux.png
new file mode 100644
index 00000000..f1c7ad8b
Binary files /dev/null and b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-object-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-object-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-object-spec-light-webkit-linux.png
new file mode 100644
index 00000000..d9903649
Binary files /dev/null and b/src/lib/kit/components/Layouts/Accordeon/__snapshots__/Accordeon.visual.test.tsx-snapshots/Accordeon-object-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Accordeon/__tests__/Accordeon.visual.test.tsx b/src/lib/kit/components/Layouts/Accordeon/__tests__/Accordeon.visual.test.tsx
new file mode 100644
index 00000000..cfce2208
--- /dev/null
+++ b/src/lib/kit/components/Layouts/Accordeon/__tests__/Accordeon.visual.test.tsx
@@ -0,0 +1,35 @@
+import React from 'react';
+
+import {ACCORDEON, VALUE} from './helpers';
+
+import {test} from '~playwright/core';
+import {DynamicForm} from '~playwright/core/DynamicForm';
+import {DynamicView} from '~playwright/core/DynamicView';
+
+test.describe('Accordeon', () => {
+ test('array spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('object spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
+
+test.describe('Accordeon View', () => {
+ test('array spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('object spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
diff --git a/src/lib/kit/components/Layouts/Accordeon/__tests__/helpers.ts b/src/lib/kit/components/Layouts/Accordeon/__tests__/helpers.ts
new file mode 100644
index 00000000..f4bdc6c5
--- /dev/null
+++ b/src/lib/kit/components/Layouts/Accordeon/__tests__/helpers.ts
@@ -0,0 +1,72 @@
+import {ArraySpec, FormValue, ObjectSpec, SpecTypes} from '../../../../../core';
+
+export const ACCORDEON: Record = {
+ arraySpec: {
+ defaultValue: ['value'],
+ type: SpecTypes.Array,
+ items: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Element',
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'accordeon',
+ layoutTitle: 'Accordeon Card',
+ layoutOpen: true,
+ itemLabel: 'Add element',
+ },
+ },
+ objectSpec: {
+ defaultValue: {
+ name: 'value',
+ age: 10,
+ license: false,
+ },
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'accordeon',
+ layoutTitle: 'Candidate',
+ layoutOpen: true,
+ },
+ },
+};
+
+export const VALUE: Record = {
+ array: ['value', 'value'],
+ object: {
+ name: 'name',
+ age: 21,
+ license: true,
+ },
+};
diff --git a/src/lib/kit/components/Layouts/Row/Row.scss b/src/lib/kit/components/Layouts/Row/Row.scss
index 19ebfe7c..7789cf03 100644
--- a/src/lib/kit/components/Layouts/Row/Row.scss
+++ b/src/lib/kit/components/Layouts/Row/Row.scss
@@ -69,6 +69,7 @@
&-inner {
display: flex;
+ justify-content: space-around;
}
}
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-array-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-array-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..62795db1
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-array-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-array-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-array-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..9eb17269
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-array-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-array-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-array-spec-light-chromium-linux.png
new file mode 100644
index 00000000..75be8a45
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-array-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-array-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-array-spec-light-webkit-linux.png
new file mode 100644
index 00000000..271b9214
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-array-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-object-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-object-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..c0f8fef0
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-object-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-object-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-object-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..4a691e67
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-object-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-object-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-object-spec-light-chromium-linux.png
new file mode 100644
index 00000000..b766ebc8
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-object-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-object-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-object-spec-light-webkit-linux.png
new file mode 100644
index 00000000..d5d4f4f4
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group-object-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-array-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-array-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..564bbc34
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-array-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-array-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-array-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..59fffcc9
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-array-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-array-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-array-spec-light-chromium-linux.png
new file mode 100644
index 00000000..74f8db91
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-array-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-array-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-array-spec-light-webkit-linux.png
new file mode 100644
index 00000000..74662326
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-array-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-object-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-object-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..5fa3c2e1
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-object-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-object-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-object-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..0522092e
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-object-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-object-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-object-spec-light-chromium-linux.png
new file mode 100644
index 00000000..93f02d86
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-object-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-object-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-object-spec-light-webkit-linux.png
new file mode 100644
index 00000000..c5233def
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-group2-object-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-array-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-array-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..fd2e62ef
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-array-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-array-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-array-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..a2c7548d
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-array-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-array-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-array-spec-light-chromium-linux.png
new file mode 100644
index 00000000..3a2a932e
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-array-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-array-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-array-spec-light-webkit-linux.png
new file mode 100644
index 00000000..f601f551
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-array-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-object-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-object-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..988c7843
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-object-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-object-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-object-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..cf9c83a1
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-object-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-object-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-object-spec-light-chromium-linux.png
new file mode 100644
index 00000000..d15fc71f
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-object-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-object-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-object-spec-light-webkit-linux.png
new file mode 100644
index 00000000..cb2cb9b7
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section-object-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-array-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-array-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..3b28fe0f
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-array-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-array-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-array-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..310c71ab
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-array-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-array-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-array-spec-light-chromium-linux.png
new file mode 100644
index 00000000..9433113f
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-array-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-array-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-array-spec-light-webkit-linux.png
new file mode 100644
index 00000000..db7dd37b
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-array-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-object-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-object-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..528ae3b1
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-object-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-object-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-object-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..1a12179e
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-object-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-object-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-object-spec-light-chromium-linux.png
new file mode 100644
index 00000000..adb21e63
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-object-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-object-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-object-spec-light-webkit-linux.png
new file mode 100644
index 00000000..245faa41
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-View-section2-object-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-array-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-array-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..fcc5a87b
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-array-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-array-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-array-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..74fa60b1
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-array-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-array-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-array-spec-light-chromium-linux.png
new file mode 100644
index 00000000..e78a3ab5
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-array-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-array-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-array-spec-light-webkit-linux.png
new file mode 100644
index 00000000..e874a5e1
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-array-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-object-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-object-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..68ac339f
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-object-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-object-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-object-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..b5f77823
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-object-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-object-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-object-spec-light-chromium-linux.png
new file mode 100644
index 00000000..731aaf9a
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-object-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-object-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-object-spec-light-webkit-linux.png
new file mode 100644
index 00000000..1371e471
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group-object-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-array-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-array-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..3167d540
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-array-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-array-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-array-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..689deec2
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-array-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-array-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-array-spec-light-chromium-linux.png
new file mode 100644
index 00000000..2bbeea51
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-array-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-array-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-array-spec-light-webkit-linux.png
new file mode 100644
index 00000000..18933f2c
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-array-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-object-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-object-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..a8ad140a
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-object-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-object-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-object-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..15b32748
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-object-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-object-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-object-spec-light-chromium-linux.png
new file mode 100644
index 00000000..e091e9b2
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-object-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-object-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-object-spec-light-webkit-linux.png
new file mode 100644
index 00000000..2fc81f4e
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-group2-object-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-array-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-array-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..87d5f579
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-array-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-array-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-array-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..1e0cf544
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-array-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-array-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-array-spec-light-chromium-linux.png
new file mode 100644
index 00000000..6d1f6b0d
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-array-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-array-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-array-spec-light-webkit-linux.png
new file mode 100644
index 00000000..fedfe1d8
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-array-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-object-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-object-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..9856d875
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-object-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-object-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-object-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..6a803a4c
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-object-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-object-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-object-spec-light-chromium-linux.png
new file mode 100644
index 00000000..038f3377
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-object-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-object-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-object-spec-light-webkit-linux.png
new file mode 100644
index 00000000..44316594
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section-object-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-array-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-array-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..42488b2d
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-array-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-array-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-array-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..e67cd8ef
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-array-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-array-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-array-spec-light-chromium-linux.png
new file mode 100644
index 00000000..0ebc4b79
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-array-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-array-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-array-spec-light-webkit-linux.png
new file mode 100644
index 00000000..ac0e0567
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-array-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-object-spec-dark-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-object-spec-dark-chromium-linux.png
new file mode 100644
index 00000000..f22a0eb6
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-object-spec-dark-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-object-spec-dark-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-object-spec-dark-webkit-linux.png
new file mode 100644
index 00000000..875330b4
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-object-spec-dark-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-object-spec-light-chromium-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-object-spec-light-chromium-linux.png
new file mode 100644
index 00000000..2d9253ac
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-object-spec-light-chromium-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-object-spec-light-webkit-linux.png b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-object-spec-light-webkit-linux.png
new file mode 100644
index 00000000..5307cbe0
Binary files /dev/null and b/src/lib/kit/components/Layouts/Section/__snapshots__/Section.visual.test.tsx-snapshots/Section-section2-object-spec-light-webkit-linux.png differ
diff --git a/src/lib/kit/components/Layouts/Section/__tests__/Section.visual.test.tsx b/src/lib/kit/components/Layouts/Section/__tests__/Section.visual.test.tsx
new file mode 100644
index 00000000..6ca6ae9f
--- /dev/null
+++ b/src/lib/kit/components/Layouts/Section/__tests__/Section.visual.test.tsx
@@ -0,0 +1,107 @@
+import React from 'react';
+
+import {SECTION, VALUE} from './helpers';
+
+import {test} from '~playwright/core';
+import {DynamicForm} from '~playwright/core/DynamicForm';
+import {DynamicView} from '~playwright/core/DynamicView';
+
+test.describe('Section', () => {
+ test('section array spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('section object spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('section2 array spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('section2 object spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('group array spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('group object spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('group2 array spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('group2 object spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
+
+test.describe('Section View', () => {
+ test('section array spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('section object spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('section2 array spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('section2 object spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('group array spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('group object spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('group2 array spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+
+ test('group2 object spec', async ({mount, expectScreenshot}) => {
+ await mount();
+
+ await expectScreenshot();
+ });
+});
diff --git a/src/lib/kit/components/Layouts/Section/__tests__/helpers.ts b/src/lib/kit/components/Layouts/Section/__tests__/helpers.ts
new file mode 100644
index 00000000..2e63ad41
--- /dev/null
+++ b/src/lib/kit/components/Layouts/Section/__tests__/helpers.ts
@@ -0,0 +1,249 @@
+import {ArraySpec, FormValue, ObjectSpec, SpecTypes} from '../../../../../core';
+
+export const SECTION: Record = {
+ sectionArraySpec: {
+ defaultValue: ['value'],
+ type: SpecTypes.Array,
+ items: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Element',
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'section',
+ layoutTitle: 'Accordeon Card',
+ layoutOpen: true,
+ itemLabel: 'Add element',
+ },
+ },
+ sectionObjectSpec: {
+ defaultValue: {
+ name: 'value',
+ age: 10,
+ license: false,
+ },
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'section',
+ layoutTitle: 'Candidate',
+ layoutOpen: true,
+ },
+ },
+ section2ArraySpec: {
+ defaultValue: ['value'],
+ type: SpecTypes.Array,
+ items: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Element',
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'section2',
+ layoutTitle: 'Accordeon Card',
+ layoutOpen: true,
+ itemLabel: 'Add element',
+ },
+ },
+ section2ObjectSpec: {
+ defaultValue: {
+ name: 'value',
+ age: 10,
+ license: false,
+ },
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'section2',
+ layoutTitle: 'Candidate',
+ layoutOpen: true,
+ },
+ },
+ groupArraySpec: {
+ defaultValue: ['value'],
+ type: SpecTypes.Array,
+ items: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Element',
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'group',
+ layoutTitle: 'Accordeon Card',
+ layoutOpen: true,
+ itemLabel: 'Add element',
+ },
+ },
+ groupObjectSpec: {
+ defaultValue: {
+ name: 'value',
+ age: 10,
+ license: false,
+ },
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'group',
+ layoutTitle: 'Candidate',
+ layoutOpen: true,
+ },
+ },
+ group2ArraySpec: {
+ defaultValue: ['value'],
+ type: SpecTypes.Array,
+ items: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Element',
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'group2',
+ layoutTitle: 'Accordeon Card',
+ layoutOpen: true,
+ itemLabel: 'Add element',
+ },
+ },
+ group2ObjectSpec: {
+ defaultValue: {
+ name: 'value',
+ age: 10,
+ license: false,
+ },
+ type: SpecTypes.Object,
+ properties: {
+ name: {
+ type: SpecTypes.String,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Name',
+ },
+ },
+ age: {
+ type: SpecTypes.Number,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'Age',
+ },
+ },
+ license: {
+ type: SpecTypes.Boolean,
+ viewSpec: {
+ type: 'base',
+ layout: 'row',
+ layoutTitle: 'License',
+ },
+ },
+ },
+ viewSpec: {
+ type: 'base',
+ layout: 'group2',
+ layoutTitle: 'Candidate',
+ layoutOpen: true,
+ },
+ },
+};
+
+export const VALUE: Record = {
+ array: ['value', 'value'],
+ object: {
+ name: 'name',
+ age: 21,
+ license: true,
+ },
+};