@gravity-ui/dynamic-forms 5.0.0-beta.0 → 5.1.0

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 (81) hide show
  1. package/build/cjs/lib/core/components/Form/hooks/useSearch/useSearch.css +1 -1
  2. package/build/cjs/lib/kit/components/AccordeonCard/AccordeonCard.css +1 -1
  3. package/build/cjs/lib/kit/components/Card/Card.css +2 -2
  4. package/build/cjs/lib/kit/components/CopyButton/CopyButton.css +1 -1
  5. package/build/cjs/lib/kit/components/GroupIndent/GroupIndent.css +3 -3
  6. package/build/cjs/lib/kit/components/Inputs/ArrayBase/ArrayBase.css +2 -2
  7. package/build/cjs/lib/kit/components/Inputs/CardOneOf/CardOneOf.js +8 -2
  8. package/build/cjs/lib/kit/components/Inputs/CheckboxGroup/CheckboxGroup.css +3 -3
  9. package/build/cjs/lib/kit/components/Inputs/FileInput/FileInput.css +1 -1
  10. package/build/cjs/lib/kit/components/Inputs/MonacoInput/MonacoHeader.css +1 -1
  11. package/build/cjs/lib/kit/components/Inputs/MonacoInput/MonacoInputDialog.css +1 -1
  12. package/build/cjs/lib/kit/components/Inputs/MultiOneOf/MultiOneOf.css +1 -1
  13. package/build/cjs/lib/kit/components/Inputs/NumberWithScale/NumberWithScale.css +1 -1
  14. package/build/cjs/lib/kit/components/Inputs/OneOf/OneOf.css +4 -4
  15. package/build/cjs/lib/kit/components/Inputs/TableArrayInput/TableArrayInput.css +2 -2
  16. package/build/cjs/lib/kit/components/Inputs/TextContent/TextContent.js +1 -1
  17. package/build/cjs/lib/kit/components/Layouts/Accordeon/Accordeon.js +2 -1
  18. package/build/cjs/lib/kit/components/Layouts/Column/Column.css +4 -4
  19. package/build/cjs/lib/kit/components/Layouts/Row/Row.css +6 -6
  20. package/build/cjs/lib/kit/components/Layouts/Section/Section.css +2 -2
  21. package/build/cjs/lib/kit/components/Layouts/Section/Section.js +21 -2
  22. package/build/cjs/lib/kit/components/Layouts/Transparent/Transparent.css +2 -2
  23. package/build/cjs/lib/kit/components/SimpleVerticalAccordeon/SimpleVerticalAccordeon.css +4 -4
  24. package/build/cjs/lib/kit/components/SimpleVerticalAccordeon/SimpleVerticalAccordeon.js +2 -2
  25. package/build/cjs/lib/kit/components/TogglerCard/TogglerCard.css +2 -2
  26. package/build/cjs/lib/kit/components/ViewLayouts/ViewAccordeon/ViewAccordeon.js +2 -1
  27. package/build/cjs/lib/kit/components/ViewLayouts/ViewColumn/ViewColumn.css +1 -1
  28. package/build/cjs/lib/kit/components/ViewLayouts/ViewRow/ViewRow.css +1 -1
  29. package/build/cjs/lib/kit/components/ViewLayouts/ViewTableCell/ViewTableCell.css +1 -1
  30. package/build/cjs/lib/kit/components/Views/ArrayBaseView/ArrayBaseView.css +1 -1
  31. package/build/cjs/lib/kit/components/Views/CardOneOfView.js +13 -3
  32. package/build/cjs/lib/kit/components/Views/CheckboxGroupView/CheckboxGroupView.css +2 -2
  33. package/build/cjs/lib/kit/components/Views/MonacoInputView/MonacoViewDialog.css +1 -1
  34. package/build/cjs/lib/kit/components/Views/TableArrayView/TableArrayView.css +1 -1
  35. package/build/cjs/lib/kit/components/Views/TextAreaView/TextAreaView.css +1 -1
  36. package/build/cjs/lib/kit/hooks/useOneOf/useOneOf.css +1 -1
  37. package/build/cjs/lib/kit/utils/common.js +9 -8
  38. package/build/esm/lib/core/components/Form/hooks/useSearch/useSearch.css +1 -1
  39. package/build/esm/lib/core/components/View/types/layout.d.ts +1 -1
  40. package/build/esm/lib/core/components/View/types/views.d.ts +1 -1
  41. package/build/esm/lib/core/types/specs.d.ts +2 -1
  42. package/build/esm/lib/kit/components/AccordeonCard/AccordeonCard.css +1 -1
  43. package/build/esm/lib/kit/components/Card/Card.css +2 -2
  44. package/build/esm/lib/kit/components/CopyButton/CopyButton.css +1 -1
  45. package/build/esm/lib/kit/components/GroupIndent/GroupIndent.css +3 -3
  46. package/build/esm/lib/kit/components/Inputs/ArrayBase/ArrayBase.css +2 -2
  47. package/build/esm/lib/kit/components/Inputs/CardOneOf/CardOneOf.js +8 -2
  48. package/build/esm/lib/kit/components/Inputs/CheckboxGroup/CheckboxGroup.css +3 -3
  49. package/build/esm/lib/kit/components/Inputs/FileInput/FileInput.css +1 -1
  50. package/build/esm/lib/kit/components/Inputs/MonacoInput/MonacoHeader.css +1 -1
  51. package/build/esm/lib/kit/components/Inputs/MonacoInput/MonacoInputDialog.css +1 -1
  52. package/build/esm/lib/kit/components/Inputs/MultiOneOf/MultiOneOf.css +1 -1
  53. package/build/esm/lib/kit/components/Inputs/NumberWithScale/NumberWithScale.css +1 -1
  54. package/build/esm/lib/kit/components/Inputs/OneOf/OneOf.css +4 -4
  55. package/build/esm/lib/kit/components/Inputs/TableArrayInput/TableArrayInput.css +2 -2
  56. package/build/esm/lib/kit/components/Inputs/TextContent/TextContent.js +1 -1
  57. package/build/esm/lib/kit/components/Layouts/Accordeon/Accordeon.d.ts +6 -1
  58. package/build/esm/lib/kit/components/Layouts/Accordeon/Accordeon.js +2 -1
  59. package/build/esm/lib/kit/components/Layouts/Column/Column.css +4 -4
  60. package/build/esm/lib/kit/components/Layouts/Row/Row.css +6 -6
  61. package/build/esm/lib/kit/components/Layouts/Section/Section.css +2 -2
  62. package/build/esm/lib/kit/components/Layouts/Section/Section.js +21 -2
  63. package/build/esm/lib/kit/components/Layouts/Transparent/Transparent.css +2 -2
  64. package/build/esm/lib/kit/components/SimpleVerticalAccordeon/SimpleVerticalAccordeon.css +4 -4
  65. package/build/esm/lib/kit/components/SimpleVerticalAccordeon/SimpleVerticalAccordeon.d.ts +2 -0
  66. package/build/esm/lib/kit/components/SimpleVerticalAccordeon/SimpleVerticalAccordeon.js +2 -2
  67. package/build/esm/lib/kit/components/TogglerCard/TogglerCard.css +2 -2
  68. package/build/esm/lib/kit/components/ViewLayouts/ViewAccordeon/ViewAccordeon.d.ts +7 -2
  69. package/build/esm/lib/kit/components/ViewLayouts/ViewAccordeon/ViewAccordeon.js +2 -1
  70. package/build/esm/lib/kit/components/ViewLayouts/ViewColumn/ViewColumn.css +1 -1
  71. package/build/esm/lib/kit/components/ViewLayouts/ViewRow/ViewRow.css +1 -1
  72. package/build/esm/lib/kit/components/ViewLayouts/ViewTableCell/ViewTableCell.css +1 -1
  73. package/build/esm/lib/kit/components/Views/ArrayBaseView/ArrayBaseView.css +1 -1
  74. package/build/esm/lib/kit/components/Views/CardOneOfView.js +13 -3
  75. package/build/esm/lib/kit/components/Views/CheckboxGroupView/CheckboxGroupView.css +2 -2
  76. package/build/esm/lib/kit/components/Views/MonacoInputView/MonacoViewDialog.css +1 -1
  77. package/build/esm/lib/kit/components/Views/TableArrayView/TableArrayView.css +1 -1
  78. package/build/esm/lib/kit/components/Views/TextAreaView/TextAreaView.css +1 -1
  79. package/build/esm/lib/kit/hooks/useOneOf/useOneOf.css +1 -1
  80. package/build/esm/lib/kit/utils/common.js +9 -8
  81. package/package.json +4 -4
@@ -18,7 +18,7 @@
18
18
  */
19
19
  /* Border-radius */
20
20
  .df-use-search {
21
- margin-bottom: var(--df-spacing-inputs, 15px);
21
+ margin-bottom: var(--df-spacing-inputs, var(--g-spacing-4));
22
22
  }
23
23
  .df-use-search_hidden {
24
24
  display: none;
@@ -88,7 +88,7 @@
88
88
  order: 1;
89
89
  }
90
90
  .df-accordeon-card__interal-actions {
91
- margin-right: var(--df-accordeon-card-interal-actions-margin-right, 5px);
91
+ margin-right: var(--df-accordeon-card-interal-actions-margin-right, var(--g-spacing-1));
92
92
  }
93
93
  .df-accordeon-card__toggle-icon_open {
94
94
  transform: rotate(180deg);
@@ -64,7 +64,7 @@
64
64
  align-items: center;
65
65
  }
66
66
  .df-card__header-right > * {
67
- margin-left: var(--df-card-header-right-child-margin-left, 10px);
67
+ margin-left: var(--df-card-header-right-child-margin-left, var(--g-spacing-2));
68
68
  }
69
69
  .df-card__title {
70
70
  max-width: var(--df-card-title-max-width, 533px);
@@ -76,7 +76,7 @@
76
76
  max-width: 300px;
77
77
  }
78
78
  .df-card__note {
79
- margin-left: var(--df-card-note-margin-left, 5px);
79
+ margin-left: var(--df-card-note-margin-left, var(--g-spacing-1));
80
80
  }
81
81
  .df-card__note .gc-help-popover {
82
82
  display: flex;
@@ -21,7 +21,7 @@
21
21
  width: 20px;
22
22
  display: none;
23
23
  position: relative;
24
- margin: -1px 0 0 5px;
24
+ margin: var(--df-copy-button-margin, var(--g-spacing-0) var(--g-spacing-0) var(--g-spacing-0) var(--g-spacing-1));
25
25
  }
26
26
  .df-copy-button__button {
27
27
  position: absolute;
@@ -18,8 +18,8 @@
18
18
  */
19
19
  /* Border-radius */
20
20
  .df-group-indent {
21
- padding: var(--df-group-indent-padding, 11px var(--g-spacing-0) var(--g-spacing-0) var(--g-spacing-5));
22
- margin: var(--df-group-indent-margin, -11px var(--g-spacing-0) var(--g-spacing-0) 5px);
21
+ padding: var(--df-group-indent-padding, var(--g-spacing-3) var(--g-spacing-0) var(--g-spacing-0) var(--g-spacing-5));
22
+ margin: var(--df-group-indent-margin, calc(-1 * var(--g-spacing-3)) var(--g-spacing-0) var(--g-spacing-0) var(--g-spacing-1));
23
23
  border-left: 1px solid var(--g-color-line-generic-accent);
24
24
  }
25
25
  .df-group-indent:last-child {
@@ -29,5 +29,5 @@
29
29
  display: none;
30
30
  }
31
31
  .df-group-indent > .df-simple-vertical-accordeon_view {
32
- margin-top: var(--df-group-indent-simple-vertical-accordeon-view-margin-top, -10px);
32
+ margin-top: var(--df-group-indent-simple-vertical-accordeon-view-margin-top, calc(-1 * var(--g-spacing-3)));
33
33
  }
@@ -25,7 +25,7 @@
25
25
  align-items: flex-end;
26
26
  }
27
27
  .df-array-base__items-wrapper_add-button-down {
28
- margin-bottom: var(--df-spacing-inputs, 15px);
28
+ margin-bottom: var(--df-spacing-inputs, var(--g-spacing-4));
29
29
  }
30
30
  .df-array-base__items-wrapper_items-primitive {
31
31
  min-width: var(--df-array-base-items-primitive-min-width, 100%);
@@ -34,7 +34,7 @@
34
34
  min-width: unset;
35
35
  }
36
36
  .df-array-base__item-prefix {
37
- margin: var(--df-array-base-item-prefix-margin, -7px var(--g-spacing-0) var(--g-spacing-2));
37
+ margin: var(--df-array-base-item-prefix-margin, calc(-1 * var(--g-spacing-2)) var(--g-spacing-0) var(--g-spacing-2));
38
38
  }
39
39
  .df-array-base__add-button_right {
40
40
  margin-left: var(--df-array-base-add-button-right-margin-left, var(--g-spacing-1));
@@ -11,7 +11,7 @@ const Layouts_1 = require("../../Layouts");
11
11
  const RemoveButton_1 = require("../../RemoveButton");
12
12
  const CardOneOf = (props) => {
13
13
  var _a;
14
- const { input, meta, spec, name } = props;
14
+ const { input, meta, spec, name, Layout } = props;
15
15
  const [open, setOpen] = react_1.default.useState(true);
16
16
  const onToggle = react_1.default.useCallback(() => setOpen((f) => !f), [setOpen]);
17
17
  const onOpen = react_1.default.useCallback(() => setOpen(true), [setOpen]);
@@ -19,7 +19,13 @@ const CardOneOf = (props) => {
19
19
  props,
20
20
  onTogglerChange: onOpen,
21
21
  });
22
- const toggler = react_1.default.useMemo(() => (react_1.default.createElement(Layouts_1.Row, Object.assign({}, props, { name: "__stub-name" }), togglerInput)), [togglerInput, props]);
22
+ const toggler = react_1.default.useMemo(() => {
23
+ const togglerProps = Object.assign(Object.assign({}, props), { name: '__stub-name', children: togglerInput });
24
+ if (Layout) {
25
+ return react_1.default.createElement(Layout, Object.assign({}, togglerProps));
26
+ }
27
+ return react_1.default.createElement(Layouts_1.Row, Object.assign({}, togglerProps));
28
+ }, [togglerInput, props, Layout]);
23
29
  const actions = react_1.default.useMemo(() => {
24
30
  if ((0, core_1.isArrayItem)(name)) {
25
31
  return react_1.default.createElement(RemoveButton_1.RemoveButton, { onDrop: input.onDrop, name: name });
@@ -23,10 +23,10 @@
23
23
  height: var(--df-checkbox-height, 28px);
24
24
  }
25
25
  .df-checkbox-group .g-control-label__text {
26
- margin-inline-start: var(--df-checkbox-margint-start, 5px);
26
+ margin-inline-start: var(--df-checkbox-margint-start, var(--g-spacing-1));
27
27
  }
28
28
  .df-checkbox-group > *:not(:last-child) {
29
- margin-right: var(--df-checkbox-group-child-margin-right, 6px);
29
+ margin-right: var(--df-checkbox-group-child-margin-right, var(--g-spacing-3));
30
30
  }
31
31
  .df-checkbox-group_vertical {
32
32
  flex-direction: column;
@@ -35,5 +35,5 @@
35
35
  height: auto;
36
36
  }
37
37
  .df-checkbox-group_vertical > *:not(:last-child) {
38
- margin: var(--df-checkbox-group-vertical-child-margin, var(--g-spacing-0) var(--g-spacing-0) 6px);
38
+ margin: var(--df-checkbox-group-vertical-child-margin, var(--g-spacing-0) var(--g-spacing-0) var(--g-spacing-2));
39
39
  }
@@ -25,6 +25,6 @@
25
25
  }
26
26
  .df-file-input__file-name {
27
27
  display: block;
28
- margin: var(--df-file-input-file-name-margin, auto 10px);
28
+ margin: var(--df-file-input-file-name-margin, auto var(--g-spacing-2));
29
29
  max-width: var(--df-file-input-file-name-max-width, 160px);
30
30
  }
@@ -21,7 +21,7 @@
21
21
  height: var(--df-monaco-header-height, 52px);
22
22
  display: flex;
23
23
  justify-content: space-between;
24
- padding: var(--df-monaco-header-padding, 15px);
24
+ padding: var(--df-monaco-header-padding, var(--g-spacing-4));
25
25
  align-items: center;
26
26
  background-color: var(--g-color-base-float-hover);
27
27
  }
@@ -18,7 +18,7 @@
18
18
  */
19
19
  /* Border-radius */
20
20
  .df-monaco-input-dialog .g-dialog-footer {
21
- padding: var(--df-monaco-input-dialog-dialog-footer-padding, 6px var(--g-spacing-8) var(--g-spacing-8));
21
+ padding: var(--df-monaco-input-dialog-dialog-footer-padding, var(--g-spacing-2) var(--g-spacing-8) var(--g-spacing-8));
22
22
  }
23
23
  .df-monaco-input-dialog__container {
24
24
  border: 1px solid var(--g-color-line-generic);
@@ -26,7 +26,7 @@
26
26
  padding: var(--df-multi-oneof-content-flat-padding, var(--g-spacing-0));
27
27
  }
28
28
  .df-multi-oneof__content_flat > .df-group-indent > .df-use-search {
29
- margin-top: var(--df-spacing-inputs, 15px);
29
+ margin-top: var(--df-spacing-inputs, var(--g-spacing-4));
30
30
  }
31
31
  .df-multi-oneof__content_flat > .df-group-indent > .df-use-search:empty {
32
32
  display: none;
@@ -22,5 +22,5 @@
22
22
  }
23
23
  .df-number-with-scale__select {
24
24
  max-width: var(--df-number-with-scale-select-max-width, 102px);
25
- margin-left: var(--df-number-with-scale-select-margin-left, 5px);
25
+ margin-left: var(--df-number-with-scale-select-margin-left, var(--g-spacing-1));
26
26
  }
@@ -28,8 +28,8 @@
28
28
  all: unset;
29
29
  }
30
30
  .df-oneof_base > .df-group-indent > .df-use-search {
31
- padding: var(--df-oneof-base-padding, 11px var(--g-spacing-0) var(--g-spacing-0) var(--g-spacing-5));
32
- margin: var(--df-oneof-base-margin, var(--g-spacing-1) var(--g-spacing-0) var(--g-spacing-5) 5px);
31
+ padding: var(--df-oneof-base-padding, var(--g-spacing-3) var(--g-spacing-0) var(--g-spacing-0) var(--g-spacing-5));
32
+ margin: var(--df-oneof-base-margin, var(--g-spacing-1) var(--g-spacing-0) var(--g-spacing-5) var(--g-spacing-1));
33
33
  border-left: 1px solid var(--g-color-line-generic-accent);
34
34
  }
35
35
  .df-oneof_base > .df-group-indent > .df-use-search:empty {
@@ -39,7 +39,7 @@
39
39
  margin-bottom: var(--df-spacing-last-child, var(--g-spacing-0));
40
40
  }
41
41
  .df-oneof_base > .df-group-indent > .df-use-search > .df-simple-vertical-accordeon_view {
42
- margin-top: var(--df-oneof-base-simple-vertical-accordeon-margin-top, -10px);
42
+ margin-top: var(--df-oneof-base-simple-vertical-accordeon-margin-top, calc(-1 * var(--g-spacing-3)));
43
43
  }
44
44
  .df-oneof_flat > .df-group-indent {
45
45
  margin: var(--df-oneof-flat-margin, var(--g-spacing-0));
@@ -47,7 +47,7 @@
47
47
  padding: var(--df-oneof-flat-padding, var(--g-spacing-0));
48
48
  }
49
49
  .df-oneof_flat > .df-group-indent > .df-use-search {
50
- margin-top: var(--df-spacing-inputs, 15px);
50
+ margin-top: var(--df-spacing-inputs, var(--g-spacing-4));
51
51
  }
52
52
  .df-oneof_flat > .df-group-indent > .df-use-search:empty {
53
53
  display: none;
@@ -18,7 +18,7 @@
18
18
  */
19
19
  /* Border-radius */
20
20
  .df-table-array__table {
21
- margin-bottom: var(--df-table-array-table-margin-bottom, 10px);
21
+ margin-bottom: var(--df-table-array-table-margin-bottom, var(--g-spacing-2));
22
22
  }
23
23
  .df-table-array__table .g-table__cell {
24
24
  border-bottom: 0px transparent;
@@ -40,7 +40,7 @@
40
40
  min-width: var(--df-table-array-cell-min-width, 150px);
41
41
  }
42
42
  .df-table-array__cell_arr, .df-table-array__cell_obj {
43
- padding-left: var(--df-table-array-cell-obj-padding-left, 3px);
43
+ padding-left: var(--df-table-array-cell-obj-padding-left, var(--g-spacing-half));
44
44
  }
45
45
  .df-table-array__cell_arr .yc-text-input,
46
46
  .df-table-array__cell_arr .g-text-input,
@@ -25,7 +25,7 @@ const TextContentComponent = ({ spec, value, Layout, }) => {
25
25
  : undefined;
26
26
  content = (react_1.default.createElement(uikit_1.Alert, { icon: iconLib, message: content,
27
27
  // If the title is an empty line, then you need to explicitly write undefined, otherwise there will be an additional indent
28
- title: titleAlert, theme: textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.themeAlert }));
28
+ title: titleAlert, theme: textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.themeAlert, view: textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.viewAlert }));
29
29
  }
30
30
  else if (textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.themeLabel) {
31
31
  content = (react_1.default.createElement(uikit_1.Label, { size: "m", theme: textContentParams.themeLabel, className: b(), value: value, icon: iconLib }, content));
@@ -10,6 +10,7 @@ const RemoveButton_1 = require("../../RemoveButton");
10
10
  const SimpleVerticalAccordeon_1 = require("../../SimpleVerticalAccordeon");
11
11
  const Accordeon = ({ name, spec, input, meta, children, }) => {
12
12
  var _a;
13
+ const { variantTitle } = spec.viewSpec.layoutProps || {};
13
14
  const [open, setOpen] = react_1.default.useState(Boolean((_a = spec.viewSpec) === null || _a === void 0 ? void 0 : _a.layoutOpen));
14
15
  const onDrop = react_1.default.useCallback(() => {
15
16
  setOpen(false);
@@ -22,7 +23,7 @@ const Accordeon = ({ name, spec, input, meta, children, }) => {
22
23
  return react_1.default.createElement(RemoveButton_1.RemoveButton, { name: name, onDrop: onDrop });
23
24
  }, [spec.required, input.value, onDrop, name]);
24
25
  (0, hooks_1.useErrorChecker)({ name, meta, open, setOpen });
25
- return (react_1.default.createElement(SimpleVerticalAccordeon_1.SimpleVerticalAccordeon, { name: name, title: spec.viewSpec.layoutTitle || '', note: spec.viewSpec.layoutDescription || '', open: open, onOpenChange: setOpen, headerActionsTemplate: removeButton, hideInsteadOfDestroy: true, withBranchView: true },
26
+ return (react_1.default.createElement(SimpleVerticalAccordeon_1.SimpleVerticalAccordeon, { name: name, title: spec.viewSpec.layoutTitle || '', note: spec.viewSpec.layoutDescription || '', open: open, onOpenChange: setOpen, headerActionsTemplate: removeButton, hideInsteadOfDestroy: true, withBranchView: true, variantTitle: variantTitle },
26
27
  react_1.default.createElement(components_1.ErrorWrapper, { name: name, meta: meta, withoutChildErrorStyles: true }, children)));
27
28
  };
28
29
  exports.Accordeon = Accordeon;
@@ -18,7 +18,7 @@
18
18
  */
19
19
  /* Border-radius */
20
20
  .df-column {
21
- margin-bottom: var(--df-spacing-inputs, 15px);
21
+ margin-bottom: var(--df-spacing-inputs, var(--g-spacing-4));
22
22
  }
23
23
  .df-column:last-child {
24
24
  margin-bottom: var(--df-spacing-last-child, var(--g-spacing-0));
@@ -42,7 +42,7 @@
42
42
  }
43
43
  .df-column__title {
44
44
  word-break: break-word;
45
- margin-right: var(--df-column-title-margin-right, 3px);
45
+ margin-right: var(--df-column-title-margin-right, var(--g-spacing-half));
46
46
  }
47
47
  .df-column__title_required::after {
48
48
  content: "*";
@@ -53,7 +53,7 @@
53
53
  }
54
54
  .df-column__note-inner {
55
55
  position: absolute;
56
- margin-top: var(--df-column-note-inner-margin-top, 1px);
56
+ margin-top: var(--df-column-note-inner-margin-top, var(--g-spacing-0));
57
57
  }
58
58
  .df-column__note-inner .g-help-popover {
59
59
  display: flex;
@@ -71,7 +71,7 @@
71
71
  justify-content: space-around;
72
72
  }
73
73
  .df-column__remove-button {
74
- margin-left: var(--df-remove-button-margin-left, 5px);
74
+ margin-left: var(--df-remove-button-margin-left, var(--g-spacing-1));
75
75
  }
76
76
  .df-column__required-mark {
77
77
  color: var(--g-color-text-danger);
@@ -21,7 +21,7 @@
21
21
  display: flex;
22
22
  width: var(--df-row-width, 500px);
23
23
  max-width: var(--df-row-max-width, 500px);
24
- margin-bottom: var(--df-spacing-inputs, 15px);
24
+ margin-bottom: var(--df-spacing-inputs, var(--g-spacing-4));
25
25
  }
26
26
  .df-row:last-child {
27
27
  margin-bottom: var(--df-spacing-last-child, var(--g-spacing-0));
@@ -46,7 +46,7 @@
46
46
  }
47
47
  .df-row__title {
48
48
  word-break: break-word;
49
- margin-right: var(--df-row-title-margin-right, 3px);
49
+ margin-right: var(--df-row-title-margin-right, var(--g-spacing-half));
50
50
  }
51
51
  .df-row__title_required::after {
52
52
  content: "*";
@@ -58,7 +58,7 @@
58
58
  }
59
59
  .df-row__note-inner {
60
60
  position: absolute;
61
- margin-top: var(--df-row-note-inner-margin-top, 1px);
61
+ margin-top: var(--df-row-note-inner-margin-top, var(--g-spacing-0));
62
62
  }
63
63
  .df-row__note-inner .g-help-popover {
64
64
  display: flex;
@@ -70,19 +70,19 @@
70
70
  display: flex;
71
71
  flex-direction: column;
72
72
  flex-grow: 1;
73
- margin-left: var(--df-row-right-margin-left, 15px);
73
+ margin-left: var(--df-row-right-margin-left, var(--g-spacing-4));
74
74
  }
75
75
  .df-row__right-inner {
76
76
  display: flex;
77
77
  justify-content: space-around;
78
78
  }
79
79
  .df-row__description {
80
- margin-top: var(--df-row-description-margin-top, 10px);
80
+ margin-top: var(--df-row-description-margin-top, var(--g-spacing-2));
81
81
  color: var(--g-color-text-secondary);
82
82
  word-break: break-word;
83
83
  }
84
84
  .df-row__remove-button {
85
- margin-left: var(--df-remove-button-margin-left, 5px);
85
+ margin-left: var(--df-remove-button-margin-left, var(--g-spacing-1));
86
86
  }
87
87
  .df-row__required-mark {
88
88
  color: var(--g-color-text-danger);
@@ -43,7 +43,7 @@
43
43
  max-width: 300px;
44
44
  }
45
45
  .df-section__note {
46
- margin-left: var(--df-section-note-margin-left, 5px);
46
+ margin-left: var(--df-section-note-margin-left, var(--g-spacing-1));
47
47
  }
48
48
  .df-section__note .g-help-popover {
49
49
  display: flex;
@@ -55,5 +55,5 @@
55
55
  margin-top: var(--df-section-description-margin-top, var(--g-spacing-1));
56
56
  }
57
57
  .df-section__remove-button {
58
- margin-left: var(--df-remove-button-margin-left, 5px);
58
+ margin-left: var(--df-remove-button-margin-left, var(--g-spacing-1));
59
59
  }
@@ -18,6 +18,25 @@ const SectionBase = (_a) => {
18
18
  const arrOrObjFlag = (0, core_1.isArraySpec)(spec) || (0, core_1.isObjectSpec)(spec);
19
19
  const titleRef = react_1.default.useRef(null);
20
20
  let content = children;
21
+ const { variantTitle: variantTitleProp } = spec.viewSpec.layoutProps || {};
22
+ const { sizeTitle, variantTitle } = react_1.default.useMemo(() => {
23
+ if (variantTitleProp) {
24
+ return {
25
+ sizeTitle: undefined,
26
+ variantTitle: variantTitleProp,
27
+ };
28
+ }
29
+ if (titleSize === 'm') {
30
+ return {
31
+ sizeTitle: titleSize,
32
+ variantTitle: 'body-2',
33
+ };
34
+ }
35
+ return {
36
+ sizeTitle: titleSize,
37
+ variantTitle: 'body-1',
38
+ };
39
+ }, [variantTitleProp, titleSize]);
21
40
  const removeButton = react_1.default.useMemo(() => {
22
41
  if ((input === null || input === void 0 ? void 0 : input.value) && (input === null || input === void 0 ? void 0 : input.onDrop) && (0, core_1.isArrayItem)(name)) {
23
42
  return (react_1.default.createElement(RemoveButton_1.RemoveButton, { name: name, onDrop: input.onDrop, switcherClassName: b('remove-button') }));
@@ -49,10 +68,10 @@ const SectionBase = (_a) => {
49
68
  return (react_1.default.createElement("section", { className: b() },
50
69
  layoutTitle ? (react_1.default.createElement("div", { className: b('header', {
51
70
  'with-popover': !descriptionAsSubtitle,
52
- size: titleSize,
71
+ size: sizeTitle,
53
72
  }) },
54
73
  react_1.default.createElement(uikit_1.Popover, { className: b('popover'), content: layoutTitle, placement: __2.COMMON_POPOVER_PLACEMENT, disabled: layoutTitlePopoverDisabled },
55
- react_1.default.createElement(uikit_1.Text, { className: b('title'), variant: titleSize === 'm' ? 'body-2' : 'body-1', ref: titleRef, ellipsis: true }, layoutTitle)),
74
+ react_1.default.createElement(uikit_1.Text, { className: b('title'), variant: variantTitle, ref: titleRef, ellipsis: true }, layoutTitle)),
56
75
  description,
57
76
  removeButton)) : null,
58
77
  react_1.default.createElement("div", { className: b('content') }, content)));
@@ -19,7 +19,7 @@
19
19
  /* Border-radius */
20
20
  .df-transparent {
21
21
  display: flex;
22
- margin-bottom: var(--df-spacing-inputs, 15px);
22
+ margin-bottom: var(--df-spacing-inputs, var(--g-spacing-4));
23
23
  }
24
24
  .df-transparent:last-child {
25
25
  margin-bottom: var(--df-spacing-last-child, var(--g-spacing-0));
@@ -34,5 +34,5 @@
34
34
  width: auto;
35
35
  }
36
36
  .df-transparent__remove-button {
37
- margin-left: var(--df-remove-button-margin-left, 5px);
37
+ margin-left: var(--df-remove-button-margin-left, var(--g-spacing-1));
38
38
  }
@@ -25,7 +25,7 @@
25
25
  }
26
26
  .df-simple-vertical-accordeon_branch .df-simple-vertical-accordeon__body {
27
27
  padding-left: var(--df-simple-vertical-accordeon-body-padding-left, var(--g-spacing-5));
28
- margin-left: var(--df-simple-vertical-accordeon-body-margin-left, 5px);
28
+ margin-left: var(--df-simple-vertical-accordeon-body-margin-left, var(--g-spacing-1));
29
29
  border-left: 1px solid var(--g-color-line-generic-accent);
30
30
  }
31
31
  .df-simple-vertical-accordeon__header {
@@ -33,14 +33,14 @@
33
33
  align-items: center;
34
34
  }
35
35
  .df-simple-vertical-accordeon__header-inner {
36
- margin-left: var(--df-simple-vertical-accordeon-header-inner-margin-left, -13px);
36
+ margin-left: var(--df-simple-vertical-accordeon-header-inner-margin-left, calc(-1 * var(--g-spacing-3)));
37
37
  max-width: var(--df-simple-vertical-accordeon-header-inner-max-width, 533px);
38
38
  }
39
39
  .df-simple-vertical-accordeon__header .g-popover__handler {
40
40
  display: flex;
41
41
  }
42
42
  .df-simple-vertical-accordeon__tooltip {
43
- margin: var(--df-simple-vertical-accordeon-tooltip-margin, var(--g-spacing-0) 5px);
43
+ margin: var(--df-simple-vertical-accordeon-tooltip-margin, var(--g-spacing-0) var(--g-spacing-1));
44
44
  }
45
45
  .df-simple-vertical-accordeon__popover {
46
46
  padding: var(--g-spacing-2);
@@ -53,7 +53,7 @@
53
53
  }
54
54
  .df-simple-vertical-accordeon__body {
55
55
  margin-top: var(--df-simple-vertical-accordeon-body-margin-top, var(--g-spacing-1));
56
- padding-top: var(--df-simple-vertical-accordeon-body-padding-top, 6px);
56
+ padding-top: var(--df-simple-vertical-accordeon-body-padding-top, var(--g-spacing-1));
57
57
  }
58
58
  .df-simple-vertical-accordeon__body_hidden {
59
59
  display: none;
@@ -51,7 +51,7 @@ class SimpleVerticalAccordeon extends react_1.default.Component {
51
51
  }
52
52
  render() {
53
53
  var _a;
54
- const { children, headerActionsTemplate, className, contentClassName, buttonClassName, hideInsteadOfDestroy, withBranchView, viewLayout, name, } = this.props;
54
+ const { children, headerActionsTemplate, className, contentClassName, buttonClassName, hideInsteadOfDestroy, withBranchView, viewLayout, name, variantTitle, } = this.props;
55
55
  const { open, hidden, isFirstRender } = this.state;
56
56
  const content = hideInsteadOfDestroy ? (react_1.default.createElement("div", { ref: this.componentRef, className: b('body', { hidden: !open }) }, children)) : (open && (react_1.default.createElement("div", { ref: this.componentRef, className: b('body', contentClassName) }, children)));
57
57
  if (viewLayout && !isFirstRender && hidden) {
@@ -59,7 +59,7 @@ class SimpleVerticalAccordeon extends react_1.default.Component {
59
59
  }
60
60
  const title = this.getTitle();
61
61
  const titlePopoverDisabled = (((_a = this.titleRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 0) <= TITLE_TEXT_MAX_WIDTH;
62
- const currentTitleVariant = this.getCurrentTitleVariant();
62
+ const currentTitleVariant = variantTitle || this.getCurrentTitleVariant();
63
63
  return (Boolean(react_1.default.Children.count(children)) && (react_1.default.createElement("div", { className: b({ branch: withBranchView, view: viewLayout }, className) },
64
64
  react_1.default.createElement("div", { className: b('header') },
65
65
  react_1.default.createElement(uikit_1.Popover, { content: title, disabled: titlePopoverDisabled, placement: common_1.COMMON_POPOVER_PLACEMENT, className: b('popover'), hasArrow: true },
@@ -19,7 +19,7 @@
19
19
  /* Border-radius */
20
20
  .df-toggler-card {
21
21
  width: var(--df-toggler-card-width, 254px);
22
- padding: var(--df-toggler-card-padding, 6px);
22
+ padding: var(--df-toggler-card-padding, var(--g-spacing-2));
23
23
  height: var(--df-toggler-card-height, 88px);
24
24
  }
25
25
  .df-toggler-card__header {
@@ -28,7 +28,7 @@
28
28
  align-items: baseline;
29
29
  }
30
30
  .df-toggler-card__text {
31
- margin: var(--df-toggler-card-text-margin, var(--g-spacing-3) 15px var(--g-spacing-0) var(--g-spacing-0));
31
+ margin: var(--df-toggler-card-text-margin, var(--g-spacing-3) var(--g-spacing-4) var(--g-spacing-0) var(--g-spacing-0));
32
32
  display: block;
33
33
  height: var(--df-toggler-card-text-height, 36px);
34
34
  overflow: hidden;
@@ -10,11 +10,12 @@ const SimpleVerticalAccordeon_1 = require("../../SimpleVerticalAccordeon");
10
10
  const ViewAccordeon = ({ name, value, spec, children, }) => {
11
11
  const { showLayoutDescription } = (0, core_1.useDynamicFormsCtx)();
12
12
  const [open, setOpen] = react_1.default.useState((0, isBoolean_1.default)(spec.viewSpec.layoutOpen) ? spec.viewSpec.layoutOpen : true);
13
+ const { variantTitle } = spec.viewSpec.layoutProps || {};
13
14
  if (!(0, utils_1.isNotEmptyValue)(value, spec)) {
14
15
  return null;
15
16
  }
16
17
  return (react_1.default.createElement(SimpleVerticalAccordeon_1.SimpleVerticalAccordeon, { name: name, title: spec.viewSpec.layoutTitle || '', note: showLayoutDescription && spec.viewSpec.layoutDescription
17
18
  ? spec.viewSpec.layoutDescription
18
- : undefined, open: open, onOpenChange: setOpen, hideInsteadOfDestroy: true, withBranchView: true, viewLayout: true }, children));
19
+ : undefined, open: open, onOpenChange: setOpen, hideInsteadOfDestroy: true, withBranchView: true, viewLayout: true, variantTitle: variantTitle }, children));
19
20
  };
20
21
  exports.ViewAccordeon = ViewAccordeon;
@@ -50,7 +50,7 @@
50
50
  margin-inline-start: var(--df-view-column-note-margin-inline-start, var(--g-spacing-half));
51
51
  }
52
52
  .df-view-column__second-row > .df-view-transparent {
53
- margin-bottom: var(--df-view-column-second-row-child-view-transperant-margin-bottom, 6px);
53
+ margin-bottom: var(--df-view-column-second-row-child-view-transperant-margin-bottom, var(--g-spacing-2));
54
54
  }
55
55
  .df-view-column__second-row > .df-view-transparent:last-child {
56
56
  margin-bottom: var(--df-spacing-last-child, var(--g-spacing-0));
@@ -68,7 +68,7 @@
68
68
  text-overflow: ellipsis;
69
69
  }
70
70
  .df-view-row__right > .df-view-transparent {
71
- margin-bottom: var(--df-view-row-right-child-view-transparent-margin-bottom, 6px);
71
+ margin-bottom: var(--df-view-row-right-child-view-transparent-margin-bottom, var(--g-spacing-2));
72
72
  }
73
73
  .df-view-row__right > .df-view-transparent:last-child {
74
74
  margin-bottom: var(--df-spacing-last-child, var(--g-spacing-0));
@@ -49,7 +49,7 @@
49
49
  margin-bottom: var(--df-spacing-last-child, var(--g-spacing-0));
50
50
  }
51
51
  .df-view-table-cell__inner > .df-view-transparent {
52
- margin-bottom: var(--df-view-table-cell-inner-child-view-transparent-margin-bottom, 6px);
52
+ margin-bottom: var(--df-view-table-cell-inner-child-view-transparent-margin-bottom, var(--g-spacing-2));
53
53
  }
54
54
  .df-view-table-cell__inner > .df-view-transparent:last-child {
55
55
  margin-bottom: var(--df-spacing-last-child, var(--g-spacing-0));
@@ -18,5 +18,5 @@
18
18
  */
19
19
  /* Border-radius */
20
20
  .df-array-base-view__item-prefix {
21
- margin-bottom: var(--df-array-base-view-item-prefix-margin-bottom, 6px);
21
+ margin-bottom: var(--df-array-base-view-item-prefix-margin-bottom, var(--g-spacing-2));
22
22
  }
@@ -7,7 +7,7 @@ const isObjectLike_1 = tslib_1.__importDefault(require("lodash/isObjectLike"));
7
7
  const __1 = require("../");
8
8
  const core_1 = require("../../../core");
9
9
  const CardOneOfView = (props) => {
10
- const { value = {}, spec, name } = props;
10
+ const { value = {}, spec, name, Layout } = props;
11
11
  const [open, setOpen] = react_1.default.useState(true);
12
12
  const onToggle = react_1.default.useCallback(() => setOpen((f) => !f), [setOpen]);
13
13
  const specProperties = react_1.default.useMemo(() => ((0, isObjectLike_1.default)(spec.properties) ? spec.properties : {}), [spec.properties]);
@@ -18,8 +18,18 @@ const CardOneOfView = (props) => {
18
18
  ((_b = specProperties[valueKey]) === null || _b === void 0 ? void 0 : _b.viewSpec.layoutTitle) ||
19
19
  valueKey);
20
20
  }, [valueKey, spec.description, specProperties]);
21
- const title = react_1.default.useMemo(() => (react_1.default.createElement(__1.ViewRow, { spec: spec, value: valueName, name: name },
22
- react_1.default.createElement(react_1.default.Fragment, null, valueName))), [spec, name, valueName]);
21
+ const title = react_1.default.useMemo(() => {
22
+ const titleProps = {
23
+ spec: spec,
24
+ value: valueName,
25
+ name: name,
26
+ children: react_1.default.createElement(react_1.default.Fragment, null, valueName),
27
+ };
28
+ if (Layout) {
29
+ return react_1.default.createElement(Layout, Object.assign({}, titleProps));
30
+ }
31
+ return react_1.default.createElement(__1.ViewRow, Object.assign({}, titleProps));
32
+ }, [spec, name, valueName, Layout]);
23
33
  if (!value || !Object.keys(value).length) {
24
34
  return null;
25
35
  }
@@ -21,14 +21,14 @@
21
21
  display: flex;
22
22
  }
23
23
  .df-checkbox-group-view > *:not(:last-child) {
24
- margin-right: var(--df-checkbox-group-view-child-margin-right, 6px);
24
+ margin-right: var(--df-checkbox-group-view-child-margin-right, var(--g-spacing-3));
25
25
  }
26
26
  .df-checkbox-group-view_vertical {
27
27
  flex-direction: column;
28
28
  align-items: flex-start;
29
29
  }
30
30
  .df-checkbox-group-view_vertical > *:not(:last-child) {
31
- margin: var(--df-checkbox-group-view-vertical-child-margin, var(--g-spacing-0) var(--g-spacing-0) 6px);
31
+ margin: var(--df-checkbox-group-view-vertical-child-margin, var(--g-spacing-0) var(--g-spacing-0) var(--g-spacing-2));
32
32
  }
33
33
  .df-checkbox-group-view__popover {
34
34
  padding: var(--g-spacing-2);
@@ -18,7 +18,7 @@
18
18
  */
19
19
  /* Border-radius */
20
20
  .df-monaco-view-dialog .g-dialog-footer {
21
- padding: var(--df-monaco-view-dialog-footer-padding, 10px var(--g-spacing-8) var(--g-spacing-8));
21
+ padding: var(--df-monaco-view-dialog-footer-padding, var(--g-spacing-4));
22
22
  }
23
23
  .df-monaco-view-dialog__container {
24
24
  border: 1px solid var(--g-color-line-generic);
@@ -18,7 +18,7 @@
18
18
  */
19
19
  /* Border-radius */
20
20
  .df-table-array-view__table {
21
- margin-bottom: var(--df-table-array-view-table-margin-bottom, 10px);
21
+ margin-bottom: var(--df-table-array-view-table-margin-bottom, var(--g-spacing-3));
22
22
  }
23
23
  .df-table-array-view__cell {
24
24
  max-width: var(--df-table-array-view-cell-min-width, 150px);
@@ -24,7 +24,7 @@
24
24
  cursor: pointer;
25
25
  }
26
26
  .df-text-area-view__chevron {
27
- margin: var(--df-text-area-view-chevron-margin, 3px);
27
+ margin: var(--df-text-area-view-chevron-margin, var(--g-spacing-half));
28
28
  }
29
29
  .df-text-area-view__chevron_open {
30
30
  transform: rotate(180deg);
@@ -23,7 +23,7 @@
23
23
  }
24
24
  .df-use-oneof__toggler_card + .df-group-indent > .df-use-search:not(.df-group-indent) {
25
25
  padding-top: var(--df-use-oneof-card-child-padding, var(--g-spacing-0));
26
- margin-top: var(--df-spacing-inputs, 15px);
26
+ margin-top: var(--df-spacing-inputs, var(--g-spacing-4));
27
27
  }
28
28
  .df-use-oneof__card {
29
29
  display: flex;