@gravity-ui/dynamic-forms 4.14.3 → 4.16.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 (129) hide show
  1. package/build/cjs/lib/core/components/Form/hooks/useSearch/useSearch.css +21 -2
  2. package/build/cjs/lib/kit/components/AccordeonCard/AccordeonCard.css +28 -9
  3. package/build/cjs/lib/kit/components/Card/Card.css +30 -11
  4. package/build/cjs/lib/kit/components/CopyButton/CopyButton.css +19 -0
  5. package/build/cjs/lib/kit/components/ErrorWrapper/ErrorWrapper.css +21 -2
  6. package/build/cjs/lib/kit/components/GenerateRandomValueButton/GenerateRandomValueButton.css +20 -1
  7. package/build/cjs/lib/kit/components/GroupIndent/GroupIndent.css +23 -7
  8. package/build/cjs/lib/kit/components/Inputs/ArrayBase/ArrayBase.css +23 -5
  9. package/build/cjs/lib/kit/components/Inputs/Checkbox/Checkbox.css +20 -1
  10. package/build/cjs/lib/kit/components/Inputs/CheckboxGroup/CheckboxGroup.css +23 -5
  11. package/build/cjs/lib/kit/components/Inputs/DateInput/DateInput.css +20 -1
  12. package/build/cjs/lib/kit/components/Inputs/FileInput/FileInput.css +21 -2
  13. package/build/cjs/lib/kit/components/Inputs/MonacoInput/MonacoHeader.css +21 -2
  14. package/build/cjs/lib/kit/components/Inputs/MonacoInput/MonacoInputBase.css +20 -1
  15. package/build/cjs/lib/kit/components/Inputs/MonacoInput/MonacoInputDialog.css +21 -2
  16. package/build/cjs/lib/kit/components/Inputs/MultiOneOf/MultiOneOf.css +23 -4
  17. package/build/cjs/lib/kit/components/Inputs/MultiSelect/MultiSelect.css +20 -1
  18. package/build/cjs/lib/kit/components/Inputs/NumberWithScale/NumberWithScale.css +21 -2
  19. package/build/cjs/lib/kit/components/Inputs/ObjectBase/ObjectBase.css +24 -6
  20. package/build/cjs/lib/kit/components/Inputs/OneOf/OneOf.css +27 -11
  21. package/build/cjs/lib/kit/components/Inputs/Select/Select.css +20 -1
  22. package/build/cjs/lib/kit/components/Inputs/Switch/Switch.css +20 -1
  23. package/build/cjs/lib/kit/components/Inputs/TableArrayInput/TableArrayInput.css +25 -6
  24. package/build/cjs/lib/kit/components/Inputs/TextContent/TextContent.css +21 -2
  25. package/build/cjs/lib/kit/components/Inputs/TextContent/TextContent.js +10 -1
  26. package/build/cjs/lib/kit/components/Inputs/TimeRangeSelector/components/TimeRangeSelect/TimeRangeSelect.css +19 -0
  27. package/build/cjs/lib/kit/components/Layouts/AccordeonCard/AccordeonCardForm.css +20 -1
  28. package/build/cjs/lib/kit/components/Layouts/Column/Column.css +81 -0
  29. package/build/cjs/lib/kit/components/Layouts/Column/Column.js +34 -0
  30. package/build/cjs/lib/kit/components/Layouts/Column/index.js +4 -0
  31. package/build/cjs/lib/kit/components/Layouts/Row/Row.css +31 -12
  32. package/build/cjs/lib/kit/components/Layouts/Section/Section.css +28 -9
  33. package/build/cjs/lib/kit/components/Layouts/Transparent/Transparent.css +23 -4
  34. package/build/cjs/lib/kit/components/Layouts/index.js +1 -0
  35. package/build/cjs/lib/kit/components/LongValue/LongValue.css +20 -1
  36. package/build/cjs/lib/kit/components/SimpleVerticalAccordeon/SimpleVerticalAccordeon.css +28 -9
  37. package/build/cjs/lib/kit/components/TogglerCard/TogglerCard.css +24 -6
  38. package/build/cjs/lib/kit/components/ViewLayouts/ViewColumn/ViewColumn.css +60 -0
  39. package/build/cjs/lib/kit/components/ViewLayouts/ViewColumn/ViewColumn.js +24 -0
  40. package/build/cjs/lib/kit/components/ViewLayouts/ViewColumn/index.js +4 -0
  41. package/build/cjs/lib/kit/components/ViewLayouts/ViewRow/ViewRow.css +50 -12
  42. package/build/cjs/lib/kit/components/ViewLayouts/ViewTableCell/ViewTableCell.css +42 -4
  43. package/build/cjs/lib/kit/components/ViewLayouts/ViewTransparent/ViewTransparent.css +42 -4
  44. package/build/cjs/lib/kit/components/ViewLayouts/index.js +1 -0
  45. package/build/cjs/lib/kit/components/Views/ArrayBaseView/ArrayBaseView.css +20 -1
  46. package/build/cjs/lib/kit/components/Views/CheckboxGroupView/CheckboxGroupView.css +24 -6
  47. package/build/cjs/lib/kit/components/Views/MonacoInputView/MonacoBaseView.css +20 -1
  48. package/build/cjs/lib/kit/components/Views/MonacoInputView/MonacoViewDialog.css +21 -2
  49. package/build/cjs/lib/kit/components/Views/MultiOneOfView/MultiOneOfView.css +25 -6
  50. package/build/cjs/lib/kit/components/Views/MultiSelectView/MultiSelectView.css +22 -3
  51. package/build/cjs/lib/kit/components/Views/NumberWithScaleView/NumberWithScaleView.css +21 -2
  52. package/build/cjs/lib/kit/components/Views/ObjectBaseView/ObjectBaseView.css +22 -4
  53. package/build/cjs/lib/kit/components/Views/OneOfView/OneOfView.css +23 -4
  54. package/build/cjs/lib/kit/components/Views/TableArrayView/TableArrayView.css +23 -4
  55. package/build/cjs/lib/kit/components/Views/TextAreaView/TextAreaView.css +20 -1
  56. package/build/cjs/lib/kit/constants/config.js +10 -0
  57. package/build/cjs/lib/kit/hooks/useOneOf/useOneOf.css +24 -5
  58. package/build/cjs/lib/kit/styles/mixins.css +19 -0
  59. package/build/cjs/lib/kit/styles/variables.css +19 -0
  60. package/build/cjs/lib/kit/utils/common.js +6 -2
  61. package/build/esm/lib/core/components/Form/hooks/useSearch/useSearch.css +21 -2
  62. package/build/esm/lib/core/components/Form/types/field.d.ts +1 -0
  63. package/build/esm/lib/core/types/specs.d.ts +3 -1
  64. package/build/esm/lib/kit/components/AccordeonCard/AccordeonCard.css +28 -9
  65. package/build/esm/lib/kit/components/Card/Card.css +30 -11
  66. package/build/esm/lib/kit/components/CopyButton/CopyButton.css +19 -0
  67. package/build/esm/lib/kit/components/ErrorWrapper/ErrorWrapper.css +21 -2
  68. package/build/esm/lib/kit/components/GenerateRandomValueButton/GenerateRandomValueButton.css +20 -1
  69. package/build/esm/lib/kit/components/GroupIndent/GroupIndent.css +23 -7
  70. package/build/esm/lib/kit/components/Inputs/ArrayBase/ArrayBase.css +23 -5
  71. package/build/esm/lib/kit/components/Inputs/Checkbox/Checkbox.css +20 -1
  72. package/build/esm/lib/kit/components/Inputs/CheckboxGroup/CheckboxGroup.css +23 -5
  73. package/build/esm/lib/kit/components/Inputs/DateInput/DateInput.css +20 -1
  74. package/build/esm/lib/kit/components/Inputs/FileInput/FileInput.css +21 -2
  75. package/build/esm/lib/kit/components/Inputs/MonacoInput/MonacoHeader.css +21 -2
  76. package/build/esm/lib/kit/components/Inputs/MonacoInput/MonacoInputBase.css +20 -1
  77. package/build/esm/lib/kit/components/Inputs/MonacoInput/MonacoInputDialog.css +21 -2
  78. package/build/esm/lib/kit/components/Inputs/MultiOneOf/MultiOneOf.css +23 -4
  79. package/build/esm/lib/kit/components/Inputs/MultiSelect/MultiSelect.css +20 -1
  80. package/build/esm/lib/kit/components/Inputs/NumberWithScale/NumberWithScale.css +21 -2
  81. package/build/esm/lib/kit/components/Inputs/ObjectBase/ObjectBase.css +24 -6
  82. package/build/esm/lib/kit/components/Inputs/OneOf/OneOf.css +27 -11
  83. package/build/esm/lib/kit/components/Inputs/Select/Select.css +20 -1
  84. package/build/esm/lib/kit/components/Inputs/Switch/Switch.css +20 -1
  85. package/build/esm/lib/kit/components/Inputs/TableArrayInput/TableArrayInput.css +25 -6
  86. package/build/esm/lib/kit/components/Inputs/TextContent/TextContent.css +21 -2
  87. package/build/esm/lib/kit/components/Inputs/TextContent/TextContent.js +11 -2
  88. package/build/esm/lib/kit/components/Inputs/TimeRangeSelector/components/TimeRangeSelect/TimeRangeSelect.css +19 -0
  89. package/build/esm/lib/kit/components/Layouts/AccordeonCard/AccordeonCardForm.css +20 -1
  90. package/build/esm/lib/kit/components/Layouts/Column/Column.css +81 -0
  91. package/build/esm/lib/kit/components/Layouts/Column/Column.d.ts +3 -0
  92. package/build/esm/lib/kit/components/Layouts/Column/Column.js +30 -0
  93. package/build/esm/lib/kit/components/Layouts/Column/index.d.ts +1 -0
  94. package/build/esm/lib/kit/components/Layouts/Column/index.js +1 -0
  95. package/build/esm/lib/kit/components/Layouts/Row/Row.css +31 -12
  96. package/build/esm/lib/kit/components/Layouts/Section/Section.css +28 -9
  97. package/build/esm/lib/kit/components/Layouts/Transparent/Transparent.css +23 -4
  98. package/build/esm/lib/kit/components/Layouts/index.d.ts +1 -0
  99. package/build/esm/lib/kit/components/Layouts/index.js +1 -0
  100. package/build/esm/lib/kit/components/LongValue/LongValue.css +20 -1
  101. package/build/esm/lib/kit/components/SimpleVerticalAccordeon/SimpleVerticalAccordeon.css +28 -9
  102. package/build/esm/lib/kit/components/TogglerCard/TogglerCard.css +24 -6
  103. package/build/esm/lib/kit/components/ViewLayouts/ViewColumn/ViewColumn.css +60 -0
  104. package/build/esm/lib/kit/components/ViewLayouts/ViewColumn/ViewColumn.d.ts +3 -0
  105. package/build/esm/lib/kit/components/ViewLayouts/ViewColumn/ViewColumn.js +20 -0
  106. package/build/esm/lib/kit/components/ViewLayouts/ViewColumn/index.d.ts +1 -0
  107. package/build/esm/lib/kit/components/ViewLayouts/ViewColumn/index.js +1 -0
  108. package/build/esm/lib/kit/components/ViewLayouts/ViewRow/ViewRow.css +50 -12
  109. package/build/esm/lib/kit/components/ViewLayouts/ViewTableCell/ViewTableCell.css +42 -4
  110. package/build/esm/lib/kit/components/ViewLayouts/ViewTransparent/ViewTransparent.css +42 -4
  111. package/build/esm/lib/kit/components/ViewLayouts/index.d.ts +1 -0
  112. package/build/esm/lib/kit/components/ViewLayouts/index.js +1 -0
  113. package/build/esm/lib/kit/components/Views/ArrayBaseView/ArrayBaseView.css +20 -1
  114. package/build/esm/lib/kit/components/Views/CheckboxGroupView/CheckboxGroupView.css +24 -6
  115. package/build/esm/lib/kit/components/Views/MonacoInputView/MonacoBaseView.css +20 -1
  116. package/build/esm/lib/kit/components/Views/MonacoInputView/MonacoViewDialog.css +21 -2
  117. package/build/esm/lib/kit/components/Views/MultiOneOfView/MultiOneOfView.css +25 -6
  118. package/build/esm/lib/kit/components/Views/MultiSelectView/MultiSelectView.css +22 -3
  119. package/build/esm/lib/kit/components/Views/NumberWithScaleView/NumberWithScaleView.css +21 -2
  120. package/build/esm/lib/kit/components/Views/ObjectBaseView/ObjectBaseView.css +22 -4
  121. package/build/esm/lib/kit/components/Views/OneOfView/OneOfView.css +23 -4
  122. package/build/esm/lib/kit/components/Views/TableArrayView/TableArrayView.css +23 -4
  123. package/build/esm/lib/kit/components/Views/TextAreaView/TextAreaView.css +20 -1
  124. package/build/esm/lib/kit/constants/config.js +11 -1
  125. package/build/esm/lib/kit/hooks/useOneOf/useOneOf.css +24 -5
  126. package/build/esm/lib/kit/styles/mixins.css +19 -0
  127. package/build/esm/lib/kit/styles/variables.css +19 -0
  128. package/build/esm/lib/kit/utils/common.js +6 -2
  129. package/package.json +1 -1
@@ -1,5 +1,24 @@
1
+ /*
2
+ @mixin variables {
3
+ --g-spacing-base: 4px;
4
+
5
+ --g-spacing-0: calc(var(--g-spacing-base) * 0); //0px
6
+ --g-spacing-half: calc(var(--g-spacing-base) * 0.5); //2px
7
+ --g-spacing-1: var(--g-spacing-base); // 4px
8
+ --g-spacing-2: calc(var(--g-spacing-base) * 2); // 8px
9
+ --g-spacing-3: calc(var(--g-spacing-base) * 3); // 12px
10
+ --g-spacing-4: calc(var(--g-spacing-base) * 4); // 16px
11
+ --g-spacing-5: calc(var(--g-spacing-base) * 5); // 20px
12
+ --g-spacing-6: calc(var(--g-spacing-base) * 6); // 24px
13
+ --g-spacing-7: calc(var(--g-spacing-base) * 7); // 28px
14
+ --g-spacing-8: calc(var(--g-spacing-base) * 8); // 32px
15
+ --g-spacing-9: calc(var(--g-spacing-base) * 9); // 36px
16
+ --g-spacing-10: calc(var(--g-spacing-base) * 10); // 40px
17
+ }
18
+ */
19
+ /* Border-radius */
1
20
  .df-select {
2
- max-width: 305px;
21
+ max-width: var(--df-select-max-width, 305px);
3
22
  }
4
23
  .df-select__meta-text {
5
24
  display: block;
@@ -1,5 +1,24 @@
1
+ /*
2
+ @mixin variables {
3
+ --g-spacing-base: 4px;
4
+
5
+ --g-spacing-0: calc(var(--g-spacing-base) * 0); //0px
6
+ --g-spacing-half: calc(var(--g-spacing-base) * 0.5); //2px
7
+ --g-spacing-1: var(--g-spacing-base); // 4px
8
+ --g-spacing-2: calc(var(--g-spacing-base) * 2); // 8px
9
+ --g-spacing-3: calc(var(--g-spacing-base) * 3); // 12px
10
+ --g-spacing-4: calc(var(--g-spacing-base) * 4); // 16px
11
+ --g-spacing-5: calc(var(--g-spacing-base) * 5); // 20px
12
+ --g-spacing-6: calc(var(--g-spacing-base) * 6); // 24px
13
+ --g-spacing-7: calc(var(--g-spacing-base) * 7); // 28px
14
+ --g-spacing-8: calc(var(--g-spacing-base) * 8); // 32px
15
+ --g-spacing-9: calc(var(--g-spacing-base) * 9); // 36px
16
+ --g-spacing-10: calc(var(--g-spacing-base) * 10); // 40px
17
+ }
18
+ */
19
+ /* Border-radius */
1
20
  .df-switch {
2
- height: 28px;
21
+ height: var(--df-switch-height, 28px);
3
22
  display: flex;
4
23
  align-items: center;
5
24
  }
@@ -1,5 +1,24 @@
1
+ /*
2
+ @mixin variables {
3
+ --g-spacing-base: 4px;
4
+
5
+ --g-spacing-0: calc(var(--g-spacing-base) * 0); //0px
6
+ --g-spacing-half: calc(var(--g-spacing-base) * 0.5); //2px
7
+ --g-spacing-1: var(--g-spacing-base); // 4px
8
+ --g-spacing-2: calc(var(--g-spacing-base) * 2); // 8px
9
+ --g-spacing-3: calc(var(--g-spacing-base) * 3); // 12px
10
+ --g-spacing-4: calc(var(--g-spacing-base) * 4); // 16px
11
+ --g-spacing-5: calc(var(--g-spacing-base) * 5); // 20px
12
+ --g-spacing-6: calc(var(--g-spacing-base) * 6); // 24px
13
+ --g-spacing-7: calc(var(--g-spacing-base) * 7); // 28px
14
+ --g-spacing-8: calc(var(--g-spacing-base) * 8); // 32px
15
+ --g-spacing-9: calc(var(--g-spacing-base) * 9); // 36px
16
+ --g-spacing-10: calc(var(--g-spacing-base) * 10); // 40px
17
+ }
18
+ */
19
+ /* Border-radius */
1
20
  .df-table-array__table {
2
- margin-bottom: 10px;
21
+ margin-bottom: var(--df-table-array-table-margin-bottom, 10px);
3
22
  }
4
23
  .df-table-array__table .g-table__cell {
5
24
  border-bottom: 0px transparent;
@@ -17,11 +36,11 @@
17
36
  .df-table-array__cell .g-select-control,
18
37
  .df-table-array__cell .yc-select,
19
38
  .df-table-array__cell .g-select {
20
- max-width: 150px;
21
- min-width: 150px;
39
+ max-width: var(--df-table-array-cell-max-width, 150px);
40
+ min-width: var(--df-table-array-cell-min-width, 150px);
22
41
  }
23
42
  .df-table-array__cell_arr, .df-table-array__cell_obj {
24
- padding-left: 3px;
43
+ padding-left: var(--df-table-array-cell-obj-padding-left, 3px);
25
44
  }
26
45
  .df-table-array__cell_arr .yc-text-input,
27
46
  .df-table-array__cell_arr .g-text-input,
@@ -37,12 +56,12 @@
37
56
  max-width: unset;
38
57
  }
39
58
  .df-table-array__cell_arr > .simple-vertical-accordeon, .df-table-array__cell_obj > .simple-vertical-accordeon {
40
- margin-bottom: 0;
59
+ margin-bottom: var(--df-table-array-cell-obj-simple-vertical-accordeon-margin-bottom, var(--g-spacing-0));
41
60
  }
42
61
  .df-table-array__cell_bool {
43
62
  max-width: 50px;
44
63
  min-width: 50px;
45
64
  }
46
65
  .df-table-array__idx {
47
- padding-top: 6px;
66
+ padding-top: var(--df-table-array-idx-padding-top, 6px);
48
67
  }
@@ -1,3 +1,22 @@
1
+ /*
2
+ @mixin variables {
3
+ --g-spacing-base: 4px;
4
+
5
+ --g-spacing-0: calc(var(--g-spacing-base) * 0); //0px
6
+ --g-spacing-half: calc(var(--g-spacing-base) * 0.5); //2px
7
+ --g-spacing-1: var(--g-spacing-base); // 4px
8
+ --g-spacing-2: calc(var(--g-spacing-base) * 2); // 8px
9
+ --g-spacing-3: calc(var(--g-spacing-base) * 3); // 12px
10
+ --g-spacing-4: calc(var(--g-spacing-base) * 4); // 16px
11
+ --g-spacing-5: calc(var(--g-spacing-base) * 5); // 20px
12
+ --g-spacing-6: calc(var(--g-spacing-base) * 6); // 24px
13
+ --g-spacing-7: calc(var(--g-spacing-base) * 7); // 28px
14
+ --g-spacing-8: calc(var(--g-spacing-base) * 8); // 32px
15
+ --g-spacing-9: calc(var(--g-spacing-base) * 9); // 36px
16
+ --g-spacing-10: calc(var(--g-spacing-base) * 10); // 40px
17
+ }
18
+ */
19
+ /* Border-radius */
1
20
  .df-text-content.g-label {
2
21
  height: auto;
3
22
  width: auto;
@@ -9,11 +28,11 @@
9
28
  .df-text-content__icon {
10
29
  display: flex;
11
30
  align-items: center;
12
- margin-right: 4px;
31
+ margin-right: var(--df-text-content-icon-margin-right, var(--g-spacing-1));
13
32
  }
14
33
  .df-text-content__wrapper {
15
34
  display: flex;
16
35
  }
17
36
  .df-text-content__separator {
18
- margin: 0 4px;
37
+ margin: var(--df-text-content-separator-margin, var(--g-spacing-0) var(--g-spacing-1));
19
38
  }
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- import { Label, Text } from '@gravity-ui/uikit';
2
+ import { isEmpty } from 'lodash';
3
+ import { Alert, Label, Text } from '@gravity-ui/uikit';
3
4
  import cloneDeep from 'lodash/cloneDeep';
4
5
  import { block } from '../../../utils';
5
6
  import { LazyLoader } from '../../LazyLoader';
@@ -15,7 +16,15 @@ export const TextContentComponent = ({ spec, value, Layout, }) => {
15
16
  }
16
17
  const iconLib = (textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.icon) ? (React.createElement(LazyLoader, { component: loadIcon(textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.icon) })) : null;
17
18
  let content = React.createElement("span", { dangerouslySetInnerHTML: { __html: text } });
18
- if (textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.themeLabel) {
19
+ if (textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.themeAlert) {
20
+ const titleAlert = (textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.titleAlert) || !isEmpty(textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.titleAlert)
21
+ ? textContentParams.titleAlert
22
+ : undefined;
23
+ content = (React.createElement(Alert, { icon: iconLib, message: content,
24
+ // If the title is an empty line, then you need to explicitly write undefined, otherwise there will be an additional indent
25
+ title: titleAlert, theme: textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.themeAlert }));
26
+ }
27
+ else if (textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.themeLabel) {
19
28
  content = (React.createElement(Label, { size: "m", theme: textContentParams.themeLabel, className: b(), value: value, icon: iconLib }, content));
20
29
  }
21
30
  else {
@@ -1,3 +1,22 @@
1
+ /*
2
+ @mixin variables {
3
+ --g-spacing-base: 4px;
4
+
5
+ --g-spacing-0: calc(var(--g-spacing-base) * 0); //0px
6
+ --g-spacing-half: calc(var(--g-spacing-base) * 0.5); //2px
7
+ --g-spacing-1: var(--g-spacing-base); // 4px
8
+ --g-spacing-2: calc(var(--g-spacing-base) * 2); // 8px
9
+ --g-spacing-3: calc(var(--g-spacing-base) * 3); // 12px
10
+ --g-spacing-4: calc(var(--g-spacing-base) * 4); // 16px
11
+ --g-spacing-5: calc(var(--g-spacing-base) * 5); // 20px
12
+ --g-spacing-6: calc(var(--g-spacing-base) * 6); // 24px
13
+ --g-spacing-7: calc(var(--g-spacing-base) * 7); // 28px
14
+ --g-spacing-8: calc(var(--g-spacing-base) * 8); // 32px
15
+ --g-spacing-9: calc(var(--g-spacing-base) * 9); // 36px
16
+ --g-spacing-10: calc(var(--g-spacing-base) * 10); // 40px
17
+ }
18
+ */
19
+ /* Border-radius */
1
20
  .df-time-range-select__select {
2
21
  min-width: 100px;
3
22
  }
@@ -1,3 +1,22 @@
1
+ /*
2
+ @mixin variables {
3
+ --g-spacing-base: 4px;
4
+
5
+ --g-spacing-0: calc(var(--g-spacing-base) * 0); //0px
6
+ --g-spacing-half: calc(var(--g-spacing-base) * 0.5); //2px
7
+ --g-spacing-1: var(--g-spacing-base); // 4px
8
+ --g-spacing-2: calc(var(--g-spacing-base) * 2); // 8px
9
+ --g-spacing-3: calc(var(--g-spacing-base) * 3); // 12px
10
+ --g-spacing-4: calc(var(--g-spacing-base) * 4); // 16px
11
+ --g-spacing-5: calc(var(--g-spacing-base) * 5); // 20px
12
+ --g-spacing-6: calc(var(--g-spacing-base) * 6); // 24px
13
+ --g-spacing-7: calc(var(--g-spacing-base) * 7); // 28px
14
+ --g-spacing-8: calc(var(--g-spacing-base) * 8); // 32px
15
+ --g-spacing-9: calc(var(--g-spacing-base) * 9); // 36px
16
+ --g-spacing-10: calc(var(--g-spacing-base) * 10); // 40px
17
+ }
18
+ */
19
+ /* Border-radius */
1
20
  .df-accordeon-card-form__accordeon-card-body {
2
- padding-right: 32px;
21
+ padding-right: var(--df-accordeon-card-form-body-padding-right, var(--g-spacing-8));
3
22
  }
@@ -0,0 +1,81 @@
1
+ /*
2
+ @mixin variables {
3
+ --g-spacing-base: 4px;
4
+
5
+ --g-spacing-0: calc(var(--g-spacing-base) * 0); //0px
6
+ --g-spacing-half: calc(var(--g-spacing-base) * 0.5); //2px
7
+ --g-spacing-1: var(--g-spacing-base); // 4px
8
+ --g-spacing-2: calc(var(--g-spacing-base) * 2); // 8px
9
+ --g-spacing-3: calc(var(--g-spacing-base) * 3); // 12px
10
+ --g-spacing-4: calc(var(--g-spacing-base) * 4); // 16px
11
+ --g-spacing-5: calc(var(--g-spacing-base) * 5); // 20px
12
+ --g-spacing-6: calc(var(--g-spacing-base) * 6); // 24px
13
+ --g-spacing-7: calc(var(--g-spacing-base) * 7); // 28px
14
+ --g-spacing-8: calc(var(--g-spacing-base) * 8); // 32px
15
+ --g-spacing-9: calc(var(--g-spacing-base) * 9); // 36px
16
+ --g-spacing-10: calc(var(--g-spacing-base) * 10); // 40px
17
+ }
18
+ */
19
+ /* Border-radius */
20
+ .df-column {
21
+ margin-bottom: var(--df-spacing-inputs, 15px);
22
+ }
23
+ .df-column:last-child {
24
+ margin-bottom: var(--df-spacing-last-child, var(--g-spacing-0));
25
+ }
26
+ .df-column__first-row {
27
+ min-height: var(--df-column-first-row-min-height, 28px);
28
+ display: flex;
29
+ margin-bottom: auto;
30
+ flex-direction: column;
31
+ flex-shrink: 0;
32
+ }
33
+ .df-column__first-row-inner {
34
+ display: inline;
35
+ margin-top: auto;
36
+ margin-bottom: auto;
37
+ }
38
+ .df-column__first-row::after {
39
+ content: "";
40
+ width: 100%;
41
+ flex-shrink: 1;
42
+ }
43
+ .df-column__title {
44
+ word-break: break-word;
45
+ margin-right: var(--df-column-title-margin-right, 3px);
46
+ }
47
+ .df-column__title_required::after {
48
+ content: "*";
49
+ color: var(--g-color-text-danger);
50
+ }
51
+ .df-column__note {
52
+ position: relative;
53
+ }
54
+ .df-column__note-inner {
55
+ position: absolute;
56
+ margin-top: var(--df-column-note-inner-margin-top, 1px);
57
+ }
58
+ .df-column__note-inner .g-help-popover {
59
+ display: flex;
60
+ }
61
+ .df-column__note-inner .g-help-popover > span {
62
+ display: flex;
63
+ }
64
+ .df-column__second-row {
65
+ display: flex;
66
+ flex-direction: column;
67
+ flex-grow: 1;
68
+ }
69
+ .df-column__second-row-inner {
70
+ display: flex;
71
+ justify-content: space-around;
72
+ }
73
+ .df-column__remove-button {
74
+ margin-left: var(--df-remove-button-margin-left, 5px);
75
+ }
76
+ .df-column__required-mark {
77
+ color: var(--g-color-text-danger);
78
+ }
79
+ .df-column__error-wrapper {
80
+ min-width: 100%;
81
+ }
@@ -0,0 +1,3 @@
1
+ import { FieldValue, LayoutProps, Spec } from '../../../../core';
2
+ import './Column.css';
3
+ export declare const Column: <T extends FieldValue, S extends Spec<any, undefined, undefined>>(props: LayoutProps<T, undefined, undefined, S>) => JSX.Element;
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { HelpPopover } from '@gravity-ui/components';
3
+ import { TrashBin } from '@gravity-ui/icons';
4
+ import { Button, Icon, Text } from '@gravity-ui/uikit';
5
+ import { isArrayItem, isArraySpec, isObjectSpec, withGenerateButton, } from '../../../../core';
6
+ import { ErrorWrapper, GenerateRandomValueButton } from '../../../components';
7
+ import { block } from '../../../utils';
8
+ import './Column.css';
9
+ const b = block('column');
10
+ const ColumnBase = ({ name, spec, input, meta, children, }) => {
11
+ const arrayItem = React.useMemo(() => isArrayItem(name), [name]);
12
+ const generateButton = React.useMemo(() => withGenerateButton(spec), [spec]);
13
+ return (React.createElement("div", { className: b() },
14
+ React.createElement("div", { className: b('first-row') },
15
+ React.createElement("div", { className: b('first-row-inner') },
16
+ React.createElement(Text, { className: b('title', { required: spec.required }) }, spec.viewSpec.layoutTitle),
17
+ spec.viewSpec.layoutDescription ? (React.createElement("span", { className: b('note') },
18
+ React.createElement(Text, { className: b('note-inner') },
19
+ React.createElement(HelpPopover, { htmlContent: spec.viewSpec.layoutDescription, placement: ['bottom', 'top'] })))) : null)),
20
+ React.createElement("div", { className: b('second-row') },
21
+ React.createElement("div", { className: b('second-row-inner') },
22
+ React.createElement(ErrorWrapper, { name: name, meta: meta, withoutChildErrorStyles:
23
+ // TODO: remove condition spec.viewSpec.type !== 'select'
24
+ (isArraySpec(spec) && spec.viewSpec.type !== 'select') ||
25
+ isObjectSpec(spec), className: b('error-wrapper') }, children),
26
+ generateButton ? (React.createElement(GenerateRandomValueButton, { spec: spec, onChange: input.onChange })) : null,
27
+ arrayItem ? (React.createElement(Button, { view: "flat-secondary", className: b('remove-button'), onClick: input.onDrop, qa: `${name}-remove-item` },
28
+ React.createElement(Icon, { data: TrashBin, size: 16 }))) : null))));
29
+ };
30
+ export const Column = (props) => React.createElement(ColumnBase, Object.assign({}, props));
@@ -0,0 +1 @@
1
+ export * from './Column';
@@ -0,0 +1 @@
1
+ export * from './Column';
@@ -1,15 +1,34 @@
1
+ /*
2
+ @mixin variables {
3
+ --g-spacing-base: 4px;
4
+
5
+ --g-spacing-0: calc(var(--g-spacing-base) * 0); //0px
6
+ --g-spacing-half: calc(var(--g-spacing-base) * 0.5); //2px
7
+ --g-spacing-1: var(--g-spacing-base); // 4px
8
+ --g-spacing-2: calc(var(--g-spacing-base) * 2); // 8px
9
+ --g-spacing-3: calc(var(--g-spacing-base) * 3); // 12px
10
+ --g-spacing-4: calc(var(--g-spacing-base) * 4); // 16px
11
+ --g-spacing-5: calc(var(--g-spacing-base) * 5); // 20px
12
+ --g-spacing-6: calc(var(--g-spacing-base) * 6); // 24px
13
+ --g-spacing-7: calc(var(--g-spacing-base) * 7); // 28px
14
+ --g-spacing-8: calc(var(--g-spacing-base) * 8); // 32px
15
+ --g-spacing-9: calc(var(--g-spacing-base) * 9); // 36px
16
+ --g-spacing-10: calc(var(--g-spacing-base) * 10); // 40px
17
+ }
18
+ */
19
+ /* Border-radius */
1
20
  .df-row {
2
21
  display: flex;
3
- width: 500px;
4
- max-width: 500px;
5
- margin-bottom: 15px;
22
+ width: var(--df-row-width, 500px);
23
+ max-width: var(--df-row-max-width, 500px);
24
+ margin-bottom: var(--df-spacing-inputs, 15px);
6
25
  }
7
26
  .df-row:last-child {
8
- margin-bottom: 0;
27
+ margin-bottom: var(--df-spacing-last-child, var(--g-spacing-0));
9
28
  }
10
29
  .df-row__left {
11
- width: 180px;
12
- min-height: 28px;
30
+ width: var(--df-row-left-width, 180px);
31
+ min-height: var(--df-row-left-min-height, 28px);
13
32
  display: flex;
14
33
  margin-bottom: auto;
15
34
  flex-direction: column;
@@ -27,19 +46,19 @@
27
46
  }
28
47
  .df-row__title {
29
48
  word-break: break-word;
30
- margin-right: 3px;
49
+ margin-right: var(--df-row-title-margin-right, 3px);
31
50
  }
32
51
  .df-row__title_required::after {
33
52
  content: "*";
34
53
  color: var(--g-color-text-danger);
35
54
  }
36
55
  .df-row__note {
37
- padding-right: 16px;
56
+ padding-right: var(--df-row-note-padding-right, var(--g-spacing-4));
38
57
  position: relative;
39
58
  }
40
59
  .df-row__note-inner {
41
60
  position: absolute;
42
- margin-top: 1px;
61
+ margin-top: var(--df-row-note-inner-margin-top, 1px);
43
62
  }
44
63
  .df-row__note-inner .g-help-popover {
45
64
  display: flex;
@@ -51,19 +70,19 @@
51
70
  display: flex;
52
71
  flex-direction: column;
53
72
  flex-grow: 1;
54
- margin-left: 15px;
73
+ margin-left: var(--df-row-right-margin-left, 15px);
55
74
  }
56
75
  .df-row__right-inner {
57
76
  display: flex;
58
77
  justify-content: space-around;
59
78
  }
60
79
  .df-row__description {
61
- margin-top: 10px;
80
+ margin-top: var(--df-row-description-margin-top, 10px);
62
81
  color: var(--g-color-text-secondary);
63
82
  word-break: break-word;
64
83
  }
65
84
  .df-row__remove-button {
66
- margin-left: 5px;
85
+ margin-left: var(--df-remove-button-margin-left, 5px);
67
86
  }
68
87
  .df-row__required-mark {
69
88
  color: var(--g-color-text-danger);
@@ -1,22 +1,41 @@
1
+ /*
2
+ @mixin variables {
3
+ --g-spacing-base: 4px;
4
+
5
+ --g-spacing-0: calc(var(--g-spacing-base) * 0); //0px
6
+ --g-spacing-half: calc(var(--g-spacing-base) * 0.5); //2px
7
+ --g-spacing-1: var(--g-spacing-base); // 4px
8
+ --g-spacing-2: calc(var(--g-spacing-base) * 2); // 8px
9
+ --g-spacing-3: calc(var(--g-spacing-base) * 3); // 12px
10
+ --g-spacing-4: calc(var(--g-spacing-base) * 4); // 16px
11
+ --g-spacing-5: calc(var(--g-spacing-base) * 5); // 20px
12
+ --g-spacing-6: calc(var(--g-spacing-base) * 6); // 24px
13
+ --g-spacing-7: calc(var(--g-spacing-base) * 7); // 28px
14
+ --g-spacing-8: calc(var(--g-spacing-base) * 8); // 32px
15
+ --g-spacing-9: calc(var(--g-spacing-base) * 9); // 36px
16
+ --g-spacing-10: calc(var(--g-spacing-base) * 10); // 40px
17
+ }
18
+ */
19
+ /* Border-radius */
1
20
  .df-section {
2
- margin-bottom: 20px;
21
+ margin-bottom: var(--df-spacing-inputs-section, var(--g-spacing-5));
3
22
  }
4
23
  .df-section:last-child {
5
- margin-bottom: 0;
24
+ margin-bottom: var(--df-spacing-last-child, var(--g-spacing-0));
6
25
  }
7
26
  .df-section__header {
8
27
  display: flex;
9
28
  align-items: center;
10
- margin-bottom: 20px;
29
+ margin-bottom: var(--df-section-header-margin-bottom, var(--g-spacing-5));
11
30
  }
12
31
  .df-section__header_size_s {
13
- height: 18px;
32
+ height: var(--df-section-header-size-s, 18px);
14
33
  }
15
34
  .df-section__header_size_m {
16
- height: 20px;
35
+ height: var(--df-section-header-size-m, 20px);
17
36
  }
18
37
  .df-section__title {
19
- max-width: 533px;
38
+ max-width: var(--df-section-title-max-width, 533px);
20
39
  }
21
40
  .df-section__title-popover {
22
41
  display: flex;
@@ -26,7 +45,7 @@
26
45
  display: flex;
27
46
  }
28
47
  .df-section__note {
29
- margin-left: 5px;
48
+ margin-left: var(--df-section-note-margin-left, 5px);
30
49
  }
31
50
  .df-section__note .g-help-popover {
32
51
  display: flex;
@@ -35,8 +54,8 @@
35
54
  display: flex;
36
55
  }
37
56
  .df-section__description {
38
- margin-top: 4px;
57
+ margin-top: var(--df-section-description-margin-top, var(--g-spacing-1));
39
58
  }
40
59
  .df-section__remove-button {
41
- margin-left: 5px;
60
+ margin-left: var(--df-remove-button-margin-left, 5px);
42
61
  }
@@ -1,12 +1,31 @@
1
+ /*
2
+ @mixin variables {
3
+ --g-spacing-base: 4px;
4
+
5
+ --g-spacing-0: calc(var(--g-spacing-base) * 0); //0px
6
+ --g-spacing-half: calc(var(--g-spacing-base) * 0.5); //2px
7
+ --g-spacing-1: var(--g-spacing-base); // 4px
8
+ --g-spacing-2: calc(var(--g-spacing-base) * 2); // 8px
9
+ --g-spacing-3: calc(var(--g-spacing-base) * 3); // 12px
10
+ --g-spacing-4: calc(var(--g-spacing-base) * 4); // 16px
11
+ --g-spacing-5: calc(var(--g-spacing-base) * 5); // 20px
12
+ --g-spacing-6: calc(var(--g-spacing-base) * 6); // 24px
13
+ --g-spacing-7: calc(var(--g-spacing-base) * 7); // 28px
14
+ --g-spacing-8: calc(var(--g-spacing-base) * 8); // 32px
15
+ --g-spacing-9: calc(var(--g-spacing-base) * 9); // 36px
16
+ --g-spacing-10: calc(var(--g-spacing-base) * 10); // 40px
17
+ }
18
+ */
19
+ /* Border-radius */
1
20
  .df-transparent {
2
21
  display: flex;
3
- margin-bottom: 15px;
22
+ margin-bottom: var(--df-spacing-inputs, 15px);
4
23
  }
5
24
  .df-transparent:last-child {
6
- margin-bottom: 0;
25
+ margin-bottom: var(--df-spacing-last-child, var(--g-spacing-0));
7
26
  }
8
27
  .df-transparent_array-item {
9
- max-width: 338px;
28
+ max-width: var(--df-transparent-array-item-max-width, 338px);
10
29
  }
11
30
  .df-transparent_without-max-width {
12
31
  max-width: unset;
@@ -15,5 +34,5 @@
15
34
  width: auto;
16
35
  }
17
36
  .df-transparent__remove-button {
18
- margin-left: 5px;
37
+ margin-left: var(--df-remove-button-margin-left, 5px);
19
38
  }
@@ -3,6 +3,7 @@ export * from './AccordeonCard';
3
3
  export * from './CardAccordeon';
4
4
  export * from './CardSection';
5
5
  export * from './Row';
6
+ export * from './Column';
6
7
  export * from './Section';
7
8
  export * from './TableCell';
8
9
  export * from './Transparent';
@@ -3,6 +3,7 @@ export * from './AccordeonCard';
3
3
  export * from './CardAccordeon';
4
4
  export * from './CardSection';
5
5
  export * from './Row';
6
+ export * from './Column';
6
7
  export * from './Section';
7
8
  export * from './TableCell';
8
9
  export * from './Transparent';
@@ -1,5 +1,24 @@
1
+ /*
2
+ @mixin variables {
3
+ --g-spacing-base: 4px;
4
+
5
+ --g-spacing-0: calc(var(--g-spacing-base) * 0); //0px
6
+ --g-spacing-half: calc(var(--g-spacing-base) * 0.5); //2px
7
+ --g-spacing-1: var(--g-spacing-base); // 4px
8
+ --g-spacing-2: calc(var(--g-spacing-base) * 2); // 8px
9
+ --g-spacing-3: calc(var(--g-spacing-base) * 3); // 12px
10
+ --g-spacing-4: calc(var(--g-spacing-base) * 4); // 16px
11
+ --g-spacing-5: calc(var(--g-spacing-base) * 5); // 20px
12
+ --g-spacing-6: calc(var(--g-spacing-base) * 6); // 24px
13
+ --g-spacing-7: calc(var(--g-spacing-base) * 7); // 28px
14
+ --g-spacing-8: calc(var(--g-spacing-base) * 8); // 32px
15
+ --g-spacing-9: calc(var(--g-spacing-base) * 9); // 36px
16
+ --g-spacing-10: calc(var(--g-spacing-base) * 10); // 40px
17
+ }
18
+ */
19
+ /* Border-radius */
1
20
  .df-long-value {
2
- max-width: 100%;
21
+ max-width: var(--df-long-value-max-width, 100%);
3
22
  overflow: hidden;
4
23
  text-overflow: ellipsis;
5
24
  white-space: nowrap;
@@ -1,12 +1,31 @@
1
+ /*
2
+ @mixin variables {
3
+ --g-spacing-base: 4px;
4
+
5
+ --g-spacing-0: calc(var(--g-spacing-base) * 0); //0px
6
+ --g-spacing-half: calc(var(--g-spacing-base) * 0.5); //2px
7
+ --g-spacing-1: var(--g-spacing-base); // 4px
8
+ --g-spacing-2: calc(var(--g-spacing-base) * 2); // 8px
9
+ --g-spacing-3: calc(var(--g-spacing-base) * 3); // 12px
10
+ --g-spacing-4: calc(var(--g-spacing-base) * 4); // 16px
11
+ --g-spacing-5: calc(var(--g-spacing-base) * 5); // 20px
12
+ --g-spacing-6: calc(var(--g-spacing-base) * 6); // 24px
13
+ --g-spacing-7: calc(var(--g-spacing-base) * 7); // 28px
14
+ --g-spacing-8: calc(var(--g-spacing-base) * 8); // 32px
15
+ --g-spacing-9: calc(var(--g-spacing-base) * 9); // 36px
16
+ --g-spacing-10: calc(var(--g-spacing-base) * 10); // 40px
17
+ }
18
+ */
19
+ /* Border-radius */
1
20
  .df-simple-vertical-accordeon {
2
- margin-bottom: 20px;
21
+ margin-bottom: var(--df-spacing-inputs-section, var(--g-spacing-5));
3
22
  }
4
23
  .df-simple-vertical-accordeon:last-child {
5
- margin-bottom: 0;
24
+ margin-bottom: var(--df-spacing-last-child, var(--g-spacing-0));
6
25
  }
7
26
  .df-simple-vertical-accordeon_branch .df-simple-vertical-accordeon__body {
8
- padding-left: 20px;
9
- margin-left: 5px;
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);
10
29
  border-left: 1px solid var(--g-color-line-generic-accent);
11
30
  }
12
31
  .df-simple-vertical-accordeon__header {
@@ -14,14 +33,14 @@
14
33
  align-items: center;
15
34
  }
16
35
  .df-simple-vertical-accordeon__header-inner {
17
- margin-left: -13px;
18
- max-width: 533px;
36
+ margin-left: var(--df-simple-vertical-accordeon-header-inner-margin-left, -13px);
37
+ max-width: var(--df-simple-vertical-accordeon-header-inner-max-width, 533px);
19
38
  }
20
39
  .df-simple-vertical-accordeon__header .g-popover__handler {
21
40
  display: flex;
22
41
  }
23
42
  .df-simple-vertical-accordeon__tooltip {
24
- margin: 0px 5px;
43
+ margin: var(--df-simple-vertical-accordeon-tooltip-margin, var(--g-spacing-0) 5px);
25
44
  }
26
45
  .df-simple-vertical-accordeon__chevron {
27
46
  transform: rotate(-90deg);
@@ -30,8 +49,8 @@
30
49
  transform: none;
31
50
  }
32
51
  .df-simple-vertical-accordeon__body {
33
- margin-top: 4px;
34
- padding-top: 6px;
52
+ margin-top: var(--df-simple-vertical-accordeon-body-margin-top, var(--g-spacing-1));
53
+ padding-top: var(--df-simple-vertical-accordeon-body-padding-top, 6px);
35
54
  }
36
55
  .df-simple-vertical-accordeon__body_hidden {
37
56
  display: none;