@nolwenture/formik-jsonschema-form 1.0.0-beta.30 → 1.0.0-beta.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/cjs/Form/components/Clickable.js +3 -3
  2. package/dist/cjs/Form/components/Form.js +18 -10
  3. package/dist/cjs/Form/fields/AnyField/styledComponents.js +1 -4
  4. package/dist/cjs/Form/fields/ArrayField/ArrayField.js +4 -3
  5. package/dist/cjs/Form/fields/ArrayField/styledComponents.js +3 -1
  6. package/dist/cjs/Form/fields/BooleanField/styledComponents.js +1 -3
  7. package/dist/cjs/Form/fields/DateField/DateField.js +2 -2
  8. package/dist/cjs/Form/fields/DateField/styledComponents.js +0 -7
  9. package/dist/cjs/Form/fields/MultipleChoiceField/styledComponents.js +0 -3
  10. package/dist/cjs/Form/fields/NumberField/styledComponents.js +0 -2
  11. package/dist/cjs/Form/fields/ObjectField/ObjectField.js +46 -45
  12. package/dist/cjs/Form/fields/ObjectField/styledComponents.js +23 -1
  13. package/dist/cjs/Form/fields/RadioField/styledComponents.js +42 -2
  14. package/dist/cjs/Form/fields/SearchableMultiTagSelectField/styledComponents.js +2 -2
  15. package/dist/cjs/Form/fields/StringField/styledComponents.js +1 -4
  16. package/dist/cjs/Form/styles/common.js +43 -102
  17. package/dist/cjs/Form/templates/CollapsibleObjectFieldTemplate/CollapsibleObjectFieldTemplate.js +1 -1
  18. package/dist/cjs/Form/templates/CollapsibleObjectFieldTemplate/styledComponents.js +8 -3
  19. package/dist/cjs/Form/templates/ObjectFieldTemplate/styledComponents.js +1 -3
  20. package/dist/cjs/FormView/components/Field.js +7 -1
  21. package/dist/cjs/FormView/templates/ObjectFieldTemplate/styledComponents.js +1 -1
  22. package/dist/esm/Form/components/Clickable.js +1 -1
  23. package/dist/esm/Form/components/Form.js +18 -10
  24. package/dist/esm/Form/fields/AnyField/styledComponents.js +2 -5
  25. package/dist/esm/Form/fields/ArrayField/ArrayField.js +4 -3
  26. package/dist/esm/Form/fields/ArrayField/styledComponents.js +2 -0
  27. package/dist/esm/Form/fields/BooleanField/styledComponents.js +2 -4
  28. package/dist/esm/Form/fields/DateField/DateField.js +1 -1
  29. package/dist/esm/Form/fields/DateField/styledComponents.js +1 -6
  30. package/dist/esm/Form/fields/MultipleChoiceField/styledComponents.js +0 -3
  31. package/dist/esm/Form/fields/NumberField/styledComponents.js +0 -2
  32. package/dist/esm/Form/fields/ObjectField/ObjectField.js +46 -45
  33. package/dist/esm/Form/fields/ObjectField/styledComponents.js +22 -0
  34. package/dist/esm/Form/fields/RadioField/styledComponents.js +43 -3
  35. package/dist/esm/Form/fields/SearchableMultiTagSelectField/styledComponents.js +3 -3
  36. package/dist/esm/Form/fields/StringField/styledComponents.js +2 -5
  37. package/dist/esm/Form/styles/common.js +44 -103
  38. package/dist/esm/Form/templates/CollapsibleObjectFieldTemplate/CollapsibleObjectFieldTemplate.js +1 -1
  39. package/dist/esm/Form/templates/CollapsibleObjectFieldTemplate/styledComponents.js +8 -3
  40. package/dist/esm/Form/templates/ObjectFieldTemplate/styledComponents.js +1 -3
  41. package/dist/esm/FormView/components/Field.js +7 -1
  42. package/dist/esm/FormView/templates/ObjectFieldTemplate/styledComponents.js +1 -1
  43. package/dist/types/Form/components/Clickable.d.ts +1 -0
  44. package/dist/types/Form/components/index.d.ts +21 -6
  45. package/dist/types/Form/fields/AnyField/styledComponents.d.ts +3 -1
  46. package/dist/types/Form/fields/ArrayField/styledComponents.d.ts +3 -0
  47. package/dist/types/Form/fields/BooleanField/styledComponents.d.ts +3 -1
  48. package/dist/types/Form/fields/DateField/styledComponents.d.ts +1 -1
  49. package/dist/types/Form/fields/MultipleChoiceField/index.d.ts +2 -2
  50. package/dist/types/Form/fields/MultipleChoiceField/styledComponents.d.ts +2 -2
  51. package/dist/types/Form/fields/ObjectField/index.d.ts +3 -0
  52. package/dist/types/Form/fields/ObjectField/styledComponents.d.ts +3 -0
  53. package/dist/types/Form/fields/RadioField/index.d.ts +3 -1
  54. package/dist/types/Form/fields/RadioField/styledComponents.d.ts +3 -1
  55. package/dist/types/Form/fields/SearchableMultiTagSelectField/index.d.ts +3 -1
  56. package/dist/types/Form/fields/SearchableMultiTagSelectField/styledComponents.d.ts +3 -1
  57. package/dist/types/Form/fields/StringField/styledComponents.d.ts +3 -1
  58. package/dist/types/Form/fields/index.d.ts +17 -5
  59. package/dist/types/Form/styles/common.d.ts +2 -6
  60. package/dist/types/Form/templates/CollapsibleObjectFieldTemplate/styledComponents.d.ts +7 -3
  61. package/dist/types/Form/templates/index.d.ts +3 -1
  62. package/dist/types/utils/getTypes.d.ts +1 -1
  63. package/package.json +1 -1
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Clickable = void 0;
3
+ exports.Clickable = exports.ClickableEl = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const styled_components_1 = require("styled-components");
6
- const ClickableEl = styled_components_1.styled.button `
6
+ exports.ClickableEl = styled_components_1.styled.button `
7
7
  `;
8
8
  const Clickable = ({ children, onClick, onMouseUp = () => { }, onMouseDown = () => { }, innerRef = () => { }, className, ariaLabel, ariaExpanded = false, ariaControls, id, }) => {
9
- return ((0, jsx_runtime_1.jsx)(ClickableEl, { type: "button", onClick: onClick, onMouseUp: onMouseUp, onMouseDown: onMouseDown, ref: (r) => innerRef(r), className: className, "aria-expanded": ariaExpanded, "aria-label": ariaLabel, "aria-controls": ariaControls, id: id, children: children }));
9
+ return ((0, jsx_runtime_1.jsx)(exports.ClickableEl, { type: "button", onClick: onClick, onMouseUp: onMouseUp, onMouseDown: onMouseDown, ref: (r) => innerRef(r), className: className, "aria-expanded": ariaExpanded, "aria-label": ariaLabel, "aria-controls": ariaControls, id: id, children: children }));
10
10
  };
11
11
  exports.Clickable = Clickable;
@@ -39,20 +39,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.FormButton = exports.FormButtonWrapper = exports.Form = void 0;
40
40
  const styled_components_1 = __importDefault(require("styled-components"));
41
41
  const formik = __importStar(require("formik"));
42
- const common_1 = require("../styles/common");
42
+ const polished_1 = require("polished");
43
43
  exports.Form = (0, styled_components_1.default)(formik.Form) `
44
- ${common_1.commonCheckboxStyles}
44
+
45
45
 
46
- ${common_1.commonRadioStyles}
47
-
48
- color: ${(props) => props.theme.color.text.default};
46
+ color: ${(props) => props.theme.color.text.default};
49
47
  font-family: ${(props) => props.theme.typography.fontFamily.base};
50
48
 
51
- ${common_1.commonButtonStyles}
52
-
53
- ${common_1.commonInputStyles}
54
-
55
- ${common_1.commonSelectStyles}
49
+
56
50
 
57
51
  :focus {
58
52
  ${(props) => props.theme.focus.default};
@@ -60,5 +54,19 @@ exports.Form = (0, styled_components_1.default)(formik.Form) `
60
54
  `;
61
55
  exports.FormButtonWrapper = styled_components_1.default.div ``;
62
56
  exports.FormButton = styled_components_1.default.button `
57
+ background-color: ${(props) => props.theme.color.intent.default.none};
58
+ border: none;
63
59
  font-family: ${(props) => props.theme.typography.fontFamily.base};
60
+ font-size: ${(props) => props.theme.typography.size.base};
61
+ padding: ${(props) => `${props.theme.spacing.m} ${props.theme.spacing.l}`};
62
+ transition: 0.2s background ease;
63
+
64
+ &:hover {
65
+ background-color: ${(props) => (0, polished_1.darken)(0.1, props.theme.color.intent.default.none)};
66
+ color: ${(props) => (0, polished_1.readableColor)((0, polished_1.darken)(0.1, props.theme.color.intent.default.none))};
67
+ }
68
+
69
+ &:focus {
70
+ ${(props) => props.theme.focus.default};
71
+ }
64
72
  `;
@@ -3,7 +3,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AnyFieldWrapper = void 0;
4
4
  const styled_components_1 = require("styled-components");
5
5
  const common_1 = require("../../styles/common");
6
- exports.AnyFieldWrapper = styled_components_1.styled.div `
7
- ${common_1.commonInputStyles}
8
- ${common_1.commonSelectStyles}
9
- `;
6
+ exports.AnyFieldWrapper = (0, styled_components_1.styled)(common_1.CommonFieldWrapper) ``;
@@ -7,6 +7,7 @@ const formik_1 = require("formik");
7
7
  const utils_1 = require("../../../utils");
8
8
  const hooks_1 = require("../../hooks");
9
9
  const FormRegistry_1 = require("../../FormRegistry");
10
+ const styledComponents_1 = require("./styledComponents");
10
11
  const appendArray = (values, schema) => {
11
12
  const newItem = (0, utils_1.getDefaultValueForType)(schema?.type);
12
13
  return values ? [...values, newItem] : [newItem];
@@ -106,9 +107,9 @@ const ArrayField = (props) => {
106
107
  const SelectedArrayFieldTemplate = (props.uiSchema?.["ui:template"] &&
107
108
  templates[props.uiSchema?.["ui:template"]]) ??
108
109
  templates.ArrayFieldTemplate;
109
- return schema.anyOf !== undefined ? ((0, jsx_runtime_1.jsx)(SelectedFieldTemplate, { ...props, "data-fjsf-array": name, children: (0, jsx_runtime_1.jsx)(SelectFieldInput, { type,
110
- readOnly: schema.readOnly,
111
- ...inputProps, name: name, formikAs: "select", multiple: enums?.type === utils_1.EnumsTypes.MULTI_SELECT, children: enums?.values.map((option, index) => ((0, jsx_runtime_1.jsx)("option", { value: option.const, children: option.title }, index))) }) })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(SelectedArrayFieldTemplate, { ...props, "data-fjsf-array": name, items: valueArray, renderItem: (item, index) => ((0, jsx_runtime_1.jsxs)(ArrayFieldItem, { children: [(0, jsx_runtime_1.jsx)(SchemaField, { name: `${name}[${index}]`, schema: prepareChildSchema((index < schemas.items.length && schemas.items[index]) ||
110
+ return schema.anyOf !== undefined ? ((0, jsx_runtime_1.jsx)(SelectedFieldTemplate, { ...props, "data-fjsf-array": name, children: (0, jsx_runtime_1.jsx)(styledComponents_1.SelectFieldInputWrapper, { children: (0, jsx_runtime_1.jsx)(SelectFieldInput, { type,
111
+ readOnly: schema.readOnly,
112
+ ...inputProps, name: name, formikAs: "select", multiple: enums?.type === utils_1.EnumsTypes.MULTI_SELECT, children: enums?.values.map((option, index) => ((0, jsx_runtime_1.jsx)("option", { value: option.const, children: option.title }, index))) }) }) })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(SelectedArrayFieldTemplate, { ...props, "data-fjsf-array": name, items: valueArray, renderItem: (item, index) => ((0, jsx_runtime_1.jsxs)(ArrayFieldItem, { children: [(0, jsx_runtime_1.jsx)(SchemaField, { name: `${name}[${index}]`, schema: prepareChildSchema((index < schemas.items.length && schemas.items[index]) ||
112
113
  schemas.additionalItems, schema), uiSchema: {
113
114
  disabled,
114
115
  ...(uiSchema?.[index] || uiSchema?.items),
@@ -3,9 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ArrayFieldAddButton = exports.ArrayFieldRemoveButton = exports.ArrayFieldDownButton = exports.ArrayFieldUpButton = exports.ArrayFieldLineButton = exports.ArrayFieldButton = exports.ArrayFieldItemButtons = exports.ArrayFieldItem = void 0;
6
+ exports.ArrayFieldAddButton = exports.ArrayFieldRemoveButton = exports.ArrayFieldDownButton = exports.ArrayFieldUpButton = exports.ArrayFieldLineButton = exports.ArrayFieldButton = exports.ArrayFieldItemButtons = exports.ArrayFieldItem = exports.SelectFieldInputWrapper = void 0;
7
7
  const styled_components_1 = __importDefault(require("styled-components"));
8
8
  const styledComponents_1 = require("../ObjectField/styledComponents");
9
+ const common_1 = require("../../styles/common");
10
+ exports.SelectFieldInputWrapper = (0, styled_components_1.default)(common_1.CommonFieldWrapper) ``;
9
11
  exports.ArrayFieldItem = styledComponents_1.ObjectFieldItem;
10
12
  exports.ArrayFieldItemButtons = styledComponents_1.ObjectFieldItemButtons;
11
13
  exports.ArrayFieldButton = (0, styled_components_1.default)(styledComponents_1.ObjectFieldButton) ``;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BooleanFieldWrapper = void 0;
4
4
  const styled_components_1 = require("styled-components");
5
5
  const common_1 = require("../../styles/common");
6
- exports.BooleanFieldWrapper = styled_components_1.styled.div `
6
+ exports.BooleanFieldWrapper = (0, styled_components_1.styled)(common_1.CommonCheckboxStyles) `
7
7
  align-items: center;
8
8
  color: ${(props) => props.theme.color.text.default};
9
9
  cursor: pointer;
@@ -11,8 +11,6 @@ exports.BooleanFieldWrapper = styled_components_1.styled.div `
11
11
  font-family: ${(props) => props.theme.typography.fontFamily.base};
12
12
  gap: ${(props) => props.theme.spacing.s};
13
13
 
14
- ${common_1.commonCheckboxStyles}
15
-
16
14
  & > input[readonly], & > input[readonly] ~ span {
17
15
  pointer-events: none;
18
16
  }
@@ -6,7 +6,7 @@ const react_1 = require("react");
6
6
  const utils_1 = require("../../../utils");
7
7
  const hooks_1 = require("../../hooks");
8
8
  const FormRegistry_1 = require("../../FormRegistry");
9
- const styledComponents_1 = require("./styledComponents");
9
+ const common_1 = require("../../styles/common");
10
10
  const DateField = (props) => {
11
11
  const { templates, components: { FieldInput }, } = (0, react_1.useContext)(FormRegistry_1.FormRegistry);
12
12
  (0, hooks_1.useSetDefault)(props);
@@ -15,6 +15,6 @@ const DateField = (props) => {
15
15
  const SelectedFieldTemplate = (props.uiSchema?.["ui:template"] &&
16
16
  templates[props.uiSchema?.["ui:template"]]) ??
17
17
  templates.FieldTemplate;
18
- return ((0, jsx_runtime_1.jsx)(SelectedFieldTemplate, { ...props, "data-fjsf-string": name, children: (0, jsx_runtime_1.jsx)(styledComponents_1.DateFieldWrapper, { children: (0, jsx_runtime_1.jsx)(FieldInput, { readOnly: props.schema.readOnly, ...inputProps, name: name, type: "date" }) }) }));
18
+ return ((0, jsx_runtime_1.jsx)(SelectedFieldTemplate, { ...props, "data-fjsf-string": name, children: (0, jsx_runtime_1.jsx)(common_1.CommonFieldWrapper, { children: (0, jsx_runtime_1.jsx)(FieldInput, { readOnly: props.schema.readOnly, ...inputProps, name: name, type: "date" }) }) }));
19
19
  };
20
20
  exports.DateField = DateField;
@@ -1,9 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DateFieldWrapper = void 0;
4
- const styled_components_1 = require("styled-components");
5
- const common_1 = require("../../styles/common");
6
- exports.DateFieldWrapper = styled_components_1.styled.div `
7
- ${common_1.commonInputStyles}
8
- ${common_1.datePickerIconStyles}
9
- `;
@@ -6,10 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.MultipleChoiceFieldLabel = exports.MultipleChoiceFieldInputElement = exports.MultipleChoiceFieldElement = exports.MultipleChoiceFieldContainer = void 0;
7
7
  const styled_components_1 = __importDefault(require("styled-components"));
8
8
  const styledComponents_1 = require("../RadioField/styledComponents");
9
- const common_1 = require("../../styles/common");
10
9
  exports.MultipleChoiceFieldContainer = (0, styled_components_1.default)(styledComponents_1.RadioFieldContainer) `
11
- ${common_1.commonCheckboxStyles}
12
- ${common_1.commonRadioStyles}
13
10
  font-family: ${(props) => props.theme.typography.fontFamily.base};
14
11
  flex-wrap: wrap;
15
12
  justify-content: start;
@@ -2,7 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NumberFieldWrapper = void 0;
4
4
  const styled_components_1 = require("styled-components");
5
- const common_1 = require("../../styles/common");
6
5
  exports.NumberFieldWrapper = styled_components_1.styled.div `
7
- ${common_1.commonInputStyles}
8
6
  `;
@@ -4,6 +4,7 @@ exports.ObjectField = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const formik_1 = require("formik");
6
6
  const react_1 = require("react");
7
+ const styledComponents_1 = require("./styledComponents");
7
8
  const utils_1 = require("../../../utils");
8
9
  const hooks_1 = require("../../hooks");
9
10
  const FormRegistry_1 = require("../../FormRegistry");
@@ -57,53 +58,53 @@ const ObjectField = (props) => {
57
58
  (props.uiSchema?.["ui:options"]?.isCollapsible
58
59
  ? templates.CollapsibleObjectFieldTemplate
59
60
  : templates.ObjectFieldTemplate);
60
- return ((0, jsx_runtime_1.jsxs)(SelectedObjectFieldTemplate, { ...props, "data-fjsf-object": name, children: [orderedProperties
61
- .map((child) => {
62
- if (typeof child === "string") {
63
- const childSchema = properties?.[child];
64
- if (!childSchema)
65
- return undefined;
66
- return ((0, jsx_runtime_1.jsx)(SchemaField, { required: required?.includes(child), name: name ? [name, child].join(".") : child, schema: prepareChildSchema(childSchema, schema), uiSchema: uiSchema?.[child] }, child));
67
- }
68
- else {
69
- const { title, fields, collapsible } = child;
70
- return ((0, jsx_runtime_1.jsx)(ObjectFieldSection, { title: title, collapsible: collapsible, children: fields.map((child2) => {
71
- const childSchema = properties?.[child2];
72
- if (!childSchema)
73
- return undefined;
74
- return ((0, jsx_runtime_1.jsx)(SchemaField, { name: name ? [name, child2].join(".") : child2, schema: prepareChildSchema(childSchema, schema), uiSchema: uiSchema?.[child2] }, child2));
75
- }) }, fields.join("_")));
76
- }
77
- })
78
- .filter((x) => x), (!hideUnmarkedAdditionalProperties || additionalProperties) &&
79
- additionalPropertiesInOrder.map((childName) => {
80
- let correctUiSchema = uiSchema?.[childName];
81
- if (uiSchema.properties?.["ui:order"] !== undefined &&
82
- uiSchema?.[childName]?.["ui:order"] === undefined) {
83
- correctUiSchema = {
84
- ...correctUiSchema,
85
- "ui:order": uiSchema.properties?.["ui:order"],
86
- };
61
+ return ((0, jsx_runtime_1.jsx)(styledComponents_1.ObjectFieldWrapper, { children: (0, jsx_runtime_1.jsxs)(SelectedObjectFieldTemplate, { ...props, "data-fjsf-object": name, children: [orderedProperties
62
+ .map((child) => {
63
+ if (typeof child === "string") {
64
+ const childSchema = properties?.[child];
65
+ if (!childSchema)
66
+ return undefined;
67
+ return ((0, jsx_runtime_1.jsx)(SchemaField, { required: required?.includes(child), name: name ? [name, child].join(".") : child, schema: prepareChildSchema(childSchema, schema), uiSchema: uiSchema?.[child] }, child));
87
68
  }
88
- return ((0, jsx_runtime_1.jsxs)(ObjectFieldItem, { children: [(0, jsx_runtime_1.jsx)(SchemaField, { required: required?.includes(childName), name: name ? [name, childName].join(".") : childName, schema: prepareChildSchema(schema.additionalProperties, schema), uiSchema: correctUiSchema }, childName), (0, jsx_runtime_1.jsx)(ObjectFieldItemButtons, { children: getObjectFieldButton({
89
- purpose: types_1.ObjectFieldButtonPurpose.REMOVE,
90
- onClick: () => {
91
- const { [childName]: _removedProperty, ...newValue } = value;
92
- setValue(newValue);
93
- },
94
- uiSchema: uiSchema,
95
- }) })] }, childName));
96
- }), additionalProperties &&
97
- getObjectFieldButton({
98
- purpose: types_1.ObjectFieldButtonPurpose.ADD,
99
- onClick: () => {
100
- const key = prompt("Give key");
101
- if (key) {
102
- setValue({ ...value, [key]: undefined });
69
+ else {
70
+ const { title, fields, collapsible } = child;
71
+ return ((0, jsx_runtime_1.jsx)(ObjectFieldSection, { title: title, collapsible: collapsible, children: fields.map((child2) => {
72
+ const childSchema = properties?.[child2];
73
+ if (!childSchema)
74
+ return undefined;
75
+ return ((0, jsx_runtime_1.jsx)(SchemaField, { name: name ? [name, child2].join(".") : child2, schema: prepareChildSchema(childSchema, schema), uiSchema: uiSchema?.[child2] }, child2));
76
+ }) }, fields.join("_")));
77
+ }
78
+ })
79
+ .filter((x) => x), (!hideUnmarkedAdditionalProperties || additionalProperties) &&
80
+ additionalPropertiesInOrder.map((childName) => {
81
+ let correctUiSchema = uiSchema?.[childName];
82
+ if (uiSchema.properties?.["ui:order"] !== undefined &&
83
+ uiSchema?.[childName]?.["ui:order"] === undefined) {
84
+ correctUiSchema = {
85
+ ...correctUiSchema,
86
+ "ui:order": uiSchema.properties?.["ui:order"],
87
+ };
103
88
  }
104
- },
105
- uiSchema: uiSchema,
106
- })] }));
89
+ return ((0, jsx_runtime_1.jsxs)(ObjectFieldItem, { children: [(0, jsx_runtime_1.jsx)(SchemaField, { required: required?.includes(childName), name: name ? [name, childName].join(".") : childName, schema: prepareChildSchema(schema.additionalProperties, schema), uiSchema: correctUiSchema }, childName), (0, jsx_runtime_1.jsx)(ObjectFieldItemButtons, { children: getObjectFieldButton({
90
+ purpose: types_1.ObjectFieldButtonPurpose.REMOVE,
91
+ onClick: () => {
92
+ const { [childName]: _removedProperty, ...newValue } = value;
93
+ setValue(newValue);
94
+ },
95
+ uiSchema: uiSchema,
96
+ }) })] }, childName));
97
+ }), additionalProperties &&
98
+ getObjectFieldButton({
99
+ purpose: types_1.ObjectFieldButtonPurpose.ADD,
100
+ onClick: () => {
101
+ const key = prompt("Give key");
102
+ if (key) {
103
+ setValue({ ...value, [key]: undefined });
104
+ }
105
+ },
106
+ uiSchema: uiSchema,
107
+ })] }) }));
107
108
  };
108
109
  exports.ObjectField = ObjectField;
109
110
  function prepareChildSchema(childSchema, parentSchema) {
@@ -1,7 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ObjectFieldSectionTitle = exports.ObjectFieldSectionWrapper = exports.ObjectFieldAddButton = exports.ObjectFieldRemoveButton = exports.ObjectFieldDownButton = exports.ObjectFieldUpButton = exports.ObjectFieldLineButton = exports.ObjectFieldButton = exports.ObjectFieldItemButtons = exports.ObjectFieldItem = void 0;
3
+ exports.ObjectFieldSectionTitle = exports.ObjectFieldSectionWrapper = exports.ObjectFieldAddButton = exports.ObjectFieldRemoveButton = exports.ObjectFieldDownButton = exports.ObjectFieldUpButton = exports.ObjectFieldLineButton = exports.ObjectFieldButton = exports.ObjectFieldItemButtons = exports.ObjectFieldItem = exports.ObjectFieldWrapper = void 0;
4
4
  const styled_components_1 = require("styled-components");
5
+ const polished_1 = require("polished");
6
+ const common_1 = require("../../styles/common");
7
+ exports.ObjectFieldWrapper = (0, styled_components_1.styled)(common_1.CommonFieldWrapper) `
8
+ button {
9
+ background-color: ${(props) => props.theme.color.intent.default.none};
10
+ border: none;
11
+ font-family: ${(props) => props.theme.typography.fontFamily.base};
12
+ font-size: ${(props) => props.theme.typography.size.base};
13
+ padding: ${(props) => `${props.theme.spacing.m} ${props.theme.spacing.l}`};
14
+ transition: 0.2s background ease;
15
+
16
+ &:hover {
17
+ background-color: ${(props) => (0, polished_1.darken)(0.1, props.theme.color.intent.default.none)};
18
+ color: ${(props) => (0, polished_1.readableColor)((0, polished_1.darken)(0.1, props.theme.color.intent.default.none))};
19
+ }
20
+
21
+ &:focus {
22
+ ${(props) => props.theme.focus.default};
23
+ }
24
+ }
25
+
26
+ `;
5
27
  exports.ObjectFieldItem = styled_components_1.styled.li `
6
28
  color: ${(props) => props.theme.color.text.default};
7
29
  display: flex;
@@ -2,14 +2,54 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RadioFieldLabelFalse = exports.RadioFieldLabelTrue = exports.RadioFieldLabel = exports.RadioFieldInputElement = exports.RadioFieldElement = exports.RadioFieldContainer = void 0;
4
4
  const styled_components_1 = require("styled-components");
5
+ const polished_1 = require("polished");
5
6
  const FieldInput_1 = require("../../components/FieldInput");
6
7
  const common_1 = require("../../styles/common");
7
- exports.RadioFieldContainer = styled_components_1.styled.div `
8
+ exports.RadioFieldContainer = (0, styled_components_1.styled)(common_1.CommonCheckboxStyles) `
8
9
  color: ${(props) => props.theme.color.text.default};
9
10
  display: flex;
10
11
  font-family: ${(props) => props.theme.typography.fontFamily.base};
11
12
  gap: ${(props) => props.theme.spacing.l};
12
- ${common_1.commonRadioStyles}
13
+
14
+ input[type="radio"] {
15
+ -webkit-appearance: none;
16
+ appearance: none;
17
+ background-color: ${(props) => props.theme.color.background.input};
18
+ border-radius: ${(props) => props.theme.borderRadius.circle};
19
+ border: ${(props) => props.theme.strokeWidth.thin} solid
20
+ ${(props) => props.theme.color.border.default};
21
+ color: ${(props) => (0, polished_1.readableColor)(props.theme.color.background.input)};
22
+ cursor: pointer;
23
+ display: grid;
24
+ font: inherit;
25
+ height: ${(props) => props.theme.spacing.l};
26
+ margin: 0;
27
+ place-content: center;
28
+ width: ${(props) => props.theme.spacing.l};
29
+
30
+ &:before {
31
+ background-color: CanvasText; //support for forced-colors
32
+ border-radius: ${(props) => props.theme.borderRadius.circle};
33
+ content: "";
34
+ display: inline-block;
35
+ height: ${(props) => props.theme.spacing.s};
36
+ transform: scale(0);
37
+ transition: 0.12s transform ease-in-out;
38
+ width: ${(props) => props.theme.spacing.s};
39
+ }
40
+
41
+ &:focus {
42
+ ${(props) => props.theme.focus.default};
43
+ }
44
+
45
+ &:checked {
46
+ background-color: ${(props) => props.theme.color.intent.default.none};
47
+
48
+ &:before {
49
+ transform: scale(1);
50
+ }
51
+ }
52
+ }
13
53
  `;
14
54
  exports.RadioFieldElement = styled_components_1.styled.label `
15
55
  display: inline-flex;
@@ -4,11 +4,11 @@ exports.SearchableMultiTagSelectFieldOptionListWithoutItem = exports.SearchableM
4
4
  const styled_components_1 = require("styled-components");
5
5
  const FieldInput_1 = require("../../components/FieldInput");
6
6
  const common_1 = require("../../styles/common");
7
- exports.SearchableMultiTagSelectFieldContainer = styled_components_1.styled.div `
7
+ exports.SearchableMultiTagSelectFieldContainer = (0, styled_components_1.styled)(common_1.CommonFieldWrapper) `
8
8
  display: flex;
9
9
  flex-direction: column;
10
10
  font-family: ${(props) => props.theme.typography.fontFamily.base};
11
- ${common_1.commonInputStyles}
11
+
12
12
  `;
13
13
  exports.SearchableMultiTagSelectFieldSearchContainer = styled_components_1.styled.div `
14
14
  display: inline-block;
@@ -3,7 +3,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StringFieldWrapper = void 0;
4
4
  const styled_components_1 = require("styled-components");
5
5
  const common_1 = require("../../styles/common");
6
- exports.StringFieldWrapper = styled_components_1.styled.div `
7
- ${common_1.commonInputStyles}
8
- ${common_1.commonSelectStyles}
9
- `;
6
+ exports.StringFieldWrapper = (0, styled_components_1.styled)(common_1.CommonFieldWrapper) ``;
@@ -1,25 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.datePickerIconStyles = exports.commonSelectStyles = exports.commonRadioStyles = exports.commonCheckboxStyles = exports.commonInputStyles = exports.commonButtonStyles = void 0;
3
+ exports.CommonCheckboxStyles = exports.CommonFieldWrapper = void 0;
4
4
  const styled_components_1 = require("styled-components");
5
5
  const polished_1 = require("polished");
6
- exports.commonButtonStyles = (0, styled_components_1.css) `
7
- button {
8
- background-color: ${(props) => props.theme.color.intent.default.none};
9
- border: none;
10
- font-size: ${(props) => props.theme.typography.size.base};
11
- &:hover {
12
- background: ${(props) => (0, polished_1.darken)(0.1, props.theme.color.intent.default.none)};
13
- color: ${(props) => (0, polished_1.readableColor)((0, polished_1.darken)(0.1, props.theme.color.intent.default.none))};
14
- }
15
- padding: ${(props) => `${props.theme.spacing.m} ${props.theme.spacing.l}`};
16
-
17
- &:focus {
18
- ${(props) => props.theme.focus.default};
19
- }
20
- }
21
- `;
22
- exports.commonInputStyles = (0, styled_components_1.css) `
6
+ exports.CommonFieldWrapper = styled_components_1.styled.div `
23
7
  input {
24
8
  background-color: ${(props) => props.theme.color.background.input};
25
9
  border-radius: ${(props) => props.theme.borderRadius.none};
@@ -38,8 +22,48 @@ exports.commonInputStyles = (0, styled_components_1.css) `
38
22
  ${(props) => props.theme.focus.default};
39
23
  }
40
24
  }
25
+
26
+ ::-webkit-calendar-picker-indicator {
27
+ background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="15" viewBox="0 0 24 24"><path fill="${(props) => props.theme.color.text
28
+ .default}" d="M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z"/></svg>');
29
+
30
+ cursor: pointer;
31
+ }
32
+
33
+ select {
34
+ appearance: none;
35
+ -webkit-appearance: none;
36
+ -moz-appearance: none;
37
+ background-color: ${(props) => props.theme.color.background.input};
38
+ border-radius: ${(props) => props.theme.borderRadius.none};
39
+ border: ${(props) => `${props.theme.strokeWidth.thin} solid
40
+ ${props.theme.color.border.default}`};
41
+ color: ${(props) => props.theme.color.text.default};
42
+ cursor: pointer;
43
+ font-family: ${(props) => props.theme.typography.fontFamily.base};
44
+ font-size: ${(props) => props.theme.typography.size.base};
45
+ font-weight: ${(props) => props.theme.typography.weight.normal};
46
+ outline: none;
47
+ padding: ${(props) => `${props.theme.spacing.s} ${props.theme.spacing.m}`};
48
+ width: 100%;
49
+
50
+ background-image: ${(props) => `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 320 512'%3E%3Cpath fill='${encodeURIComponent(props.theme.color.text.default)}' d='M31 192h258c17 0 26 21 14 33l-129 129c-8 8-21 8-29 0L17 225c-12-12-3-33 14-33z'/%3E%3C/svg%3E")`};
51
+ background-position: ${(props) => `right ${props.theme.spacing.m} top 50%`};
52
+ background-repeat: no-repeat;
53
+ background-size: ${(props) => props.theme.spacing.l}; auto;
54
+
55
+ &:focus {
56
+ ${(props) => props.theme.focus.default};
57
+ }
58
+ }
59
+
60
+ select[multiple] {
61
+ appearance: auto;
62
+ background-image: none;
63
+ overflow: auto;
64
+ }
41
65
  `;
42
- exports.commonCheckboxStyles = (0, styled_components_1.css) `
66
+ exports.CommonCheckboxStyles = styled_components_1.styled.div `
43
67
  input[type="checkbox"] {
44
68
  margin-left: 0;
45
69
  -webkit-appearance: none;
@@ -144,86 +168,3 @@ exports.commonCheckboxStyles = (0, styled_components_1.css) `
144
168
  }
145
169
  }
146
170
  `;
147
- exports.commonRadioStyles = (0, styled_components_1.css) `
148
- input[type="radio"] {
149
- -webkit-appearance: none;
150
- appearance: none;
151
- background-color: ${(props) => props.theme.color.background.input};
152
- border-radius: ${(props) => props.theme.borderRadius.circle};
153
- border: ${(props) => props.theme.strokeWidth.thin} solid
154
- ${(props) => props.theme.color.border.default};
155
- color: ${(props) => (0, polished_1.readableColor)(props.theme.color.background.input)};
156
- cursor: pointer;
157
- display: grid;
158
- font: inherit;
159
- height: ${(props) => props.theme.spacing.l};
160
- margin: 0;
161
- place-content: center;
162
- width: ${(props) => props.theme.spacing.l};
163
-
164
- &:before {
165
- background-color: CanvasText; //support for forced-colors
166
- border-radius: ${(props) => props.theme.borderRadius.circle};
167
- content: "";
168
- display: inline-block;
169
- height: ${(props) => props.theme.spacing.s};
170
- transform: scale(0);
171
- transition: 0.12s transform ease-in-out;
172
- width: ${(props) => props.theme.spacing.s};
173
- }
174
-
175
- &:focus {
176
- ${(props) => props.theme.focus.default};
177
- }
178
-
179
- &:checked {
180
- background-color: ${(props) => props.theme.color.intent.default.none};
181
-
182
- &:before {
183
- transform: scale(1);
184
- }
185
- }
186
- }
187
- `;
188
- exports.commonSelectStyles = (0, styled_components_1.css) `
189
- select {
190
- appearance: none;
191
- -webkit-appearance: none;
192
- -moz-appearance: none;
193
- background-color: ${(props) => props.theme.color.background.input};
194
- border-radius: ${(props) => props.theme.borderRadius.none};
195
- border: ${(props) => `${props.theme.strokeWidth.thin} solid
196
- ${props.theme.color.border.default}`};
197
- color: ${(props) => props.theme.color.text.default};
198
- cursor: pointer;
199
- font-family: ${(props) => props.theme.typography.fontFamily.base};
200
- font-size: ${(props) => props.theme.typography.size.base};
201
- font-weight: ${(props) => props.theme.typography.weight.normal};
202
- outline: none;
203
- padding: ${(props) => `${props.theme.spacing.s} ${props.theme.spacing.m}`};
204
- width: 100%;
205
-
206
- background-image: ${(props) => `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 320 512'%3E%3Cpath fill='${encodeURIComponent(props.theme.color.text.default)}' d='M31 192h258c17 0 26 21 14 33l-129 129c-8 8-21 8-29 0L17 225c-12-12-3-33 14-33z'/%3E%3C/svg%3E")`};
207
- background-position: ${(props) => `right ${props.theme.spacing.m} top 50%`};
208
- background-repeat: no-repeat;
209
- background-size: ${(props) => props.theme.spacing.l}; auto;
210
-
211
- &:focus {
212
- ${(props) => props.theme.focus.default};
213
- }
214
- }
215
-
216
- select[multiple] {
217
- appearance: auto;
218
- background-image: none;
219
- overflow: auto;
220
- }
221
- `;
222
- exports.datePickerIconStyles = (0, styled_components_1.css) `
223
- ::-webkit-calendar-picker-indicator {
224
- background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="15" viewBox="0 0 24 24"><path fill="${(props) => props.theme.color.text
225
- .default}" d="M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z"/></svg>');
226
-
227
- cursor: pointer;
228
- }
229
- `;
@@ -29,6 +29,6 @@ const CollapsibleObjectFieldTemplate = (props) => {
29
29
  };
30
30
  const [collapsed, setCollapsed] = (0, react_1.useState)(isCollapsedOnLoad);
31
31
  const hide = collapsed;
32
- return ((0, jsx_runtime_1.jsxs)(Wrapper, { ...mergedWrapperProps, children: [title && ((0, jsx_runtime_1.jsx)(Toggle, { onClick: () => setCollapsed(!collapsed), ariaExpanded: !hide, ariaLabel: ariaLabel ?? name, children: (0, jsx_runtime_1.jsxs)(Title, { style: { display: "flex", alignItems: "center" }, ...titleProps, children: [title, props?.required && (0, jsx_runtime_1.jsx)(RequiredIndicator, {}), (0, jsx_runtime_1.jsx)(Icon, { children: hide ? collapsedIcon ?? "▸" : openIcon ?? "▾" })] }) })), info && (0, jsx_runtime_1.jsx)(Info, { ...info }), description && ((0, jsx_runtime_1.jsx)(Description, { ...descriptionProps, children: description })), !hide && (0, jsx_runtime_1.jsx)(ChildrenWrapper, { children: children }), help && (0, jsx_runtime_1.jsx)(Help, { ...helpProps, children: help })] }));
32
+ return ((0, jsx_runtime_1.jsxs)(Wrapper, { ...mergedWrapperProps, children: [title && ((0, jsx_runtime_1.jsx)(Toggle, { onClick: () => setCollapsed(!collapsed), ariaExpanded: !hide, ariaLabel: ariaLabel ?? name, children: (0, jsx_runtime_1.jsxs)(Title, { ...titleProps, children: [title, props?.required && (0, jsx_runtime_1.jsx)(RequiredIndicator, {}), (0, jsx_runtime_1.jsx)(Icon, { children: hide ? collapsedIcon ?? "▸" : openIcon ?? "▾" })] }) })), info && (0, jsx_runtime_1.jsx)(Info, { ...info }), description && ((0, jsx_runtime_1.jsx)(Description, { ...descriptionProps, children: description })), !hide && (0, jsx_runtime_1.jsx)(ChildrenWrapper, { children: children }), help && (0, jsx_runtime_1.jsx)(Help, { ...helpProps, children: help })] }));
33
33
  };
34
34
  exports.CollapsibleObjectFieldTemplate = CollapsibleObjectFieldTemplate;
@@ -4,9 +4,13 @@ exports.CollapsibleObjectFieldTemplateChildWrapper = exports.CollapsibleObjectFi
4
4
  exports.getComponents = getComponents;
5
5
  const styled_components_1 = require("styled-components");
6
6
  const Clickable_1 = require("../../components/Clickable");
7
+ const styledComponents_1 = require("../ObjectFieldTemplate/styledComponents");
7
8
  exports.CollapsibleObjectFieldTemplateWrapper = undefined;
8
9
  exports.CollapsibleObjectFieldTemplateIcon = undefined;
9
- exports.CollapsibleObjectFieldTemplateTitle = undefined;
10
+ exports.CollapsibleObjectFieldTemplateTitle = (0, styled_components_1.styled)(styledComponents_1.ObjectFieldTemplateTitle) `
11
+ display: flex;
12
+ align-items: center;
13
+ `;
10
14
  exports.CollapsibleObjectFieldTemplateDescription = undefined;
11
15
  exports.CollapsibleObjectFieldTemplateHelp = undefined;
12
16
  exports.CollapsibleObjectFieldTemplateInfo = undefined;
@@ -15,9 +19,10 @@ exports.CollapsibleObjectFieldTemplateErrorMessage = undefined;
15
19
  exports.CollapsibleObjectFieldTemplateToggle = (0, styled_components_1.styled)(Clickable_1.Clickable) `
16
20
  display: flex;
17
21
  flex-direction: column;
18
- width: 100%;
22
+ //width: 100%;
23
+ `;
24
+ exports.CollapsibleObjectFieldTemplateChildWrapper = styled_components_1.styled.div `
19
25
  `;
20
- exports.CollapsibleObjectFieldTemplateChildWrapper = styled_components_1.styled.div ``;
21
26
  function getComponents(components) {
22
27
  return {
23
28
  Wrapper: components.CollapsibleObjectFieldTemplateWrapper ??
@@ -3,14 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ObjectFieldTemplateErrorMessage = exports.ObjectFieldTemplateRequiredIndicator = exports.ObjectFieldTemplateInfo = exports.ObjectFieldTemplateHelp = exports.ObjectFieldTemplateDescription = exports.ObjectFieldTemplateTitle = exports.ObjectFieldTemplateWrapper = void 0;
4
4
  exports.getComponents = getComponents;
5
5
  const styled_components_1 = require("styled-components");
6
- const common_1 = require("../../styles/common");
7
6
  exports.ObjectFieldTemplateWrapper = styled_components_1.styled.fieldset `
8
7
  color: ${(props) => props.theme.color.text.default};
9
8
  font-family: ${(props) => props.theme.typography.fontFamily.base};
10
9
  margin-inline: 0;
11
10
  margin-bottom: ${(props) => props.theme.spacing.xs};
12
- ${common_1.commonInputStyles}
13
- ${common_1.commonSelectStyles}
11
+
14
12
  `;
15
13
  exports.ObjectFieldTemplateTitle = styled_components_1.styled.legend `
16
14
  color: ${(props) => props.theme.color.text.default};