@redneckz/wildless-cms-uni-blocks 0.14.593 → 0.14.595

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 (227) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +18 -17
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/icons/IconName.d.ts +4 -2
  5. package/bundle/model/DefaultControlType.d.ts +7 -0
  6. package/bundle/ui-kit/DatePicker/DatePickerControl.d.ts +3 -7
  7. package/bundle/ui-kit/InfoCard/InfoCard.d.ts +9 -0
  8. package/bundle/ui-kit/Input/InputProps.d.ts +2 -6
  9. package/bundle/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +3 -5
  10. package/bundle/ui-kit/RadioButtonGroup/RadioButtonGroupControl.d.ts +2 -0
  11. package/bundle/ui-kit/Select/Select.d.ts +4 -7
  12. package/bundle/ui-kit/Select/SelectControl.d.ts +1 -8
  13. package/bundle/utils/getRequiredLabel.d.ts +2 -0
  14. package/cosmos-static/icons/InfoCircleIcon.svg +1 -0
  15. package/cosmos-static/icons/sprites.svg +1 -0
  16. package/dist/icons/IconName.d.ts +4 -2
  17. package/dist/icons/IconName.js +2 -0
  18. package/dist/icons/IconName.js.map +1 -1
  19. package/dist/model/DefaultControlType.d.ts +7 -0
  20. package/dist/model/DefaultControlType.js +2 -0
  21. package/dist/model/DefaultControlType.js.map +1 -0
  22. package/dist/ui-kit/Calculator/renderBinaryRadioButtonGroup.js +1 -1
  23. package/dist/ui-kit/Calculator/renderBinaryRadioButtonGroup.js.map +1 -1
  24. package/dist/ui-kit/DatePicker/DatePickerControl.d.ts +3 -7
  25. package/dist/ui-kit/DatePicker/DatePickerControl.js +2 -1
  26. package/dist/ui-kit/DatePicker/DatePickerControl.js.map +1 -1
  27. package/dist/ui-kit/FormField/Fields/SexField.js +5 -4
  28. package/dist/ui-kit/FormField/Fields/SexField.js.map +1 -1
  29. package/dist/ui-kit/FormField/Fields/VedField.js +1 -1
  30. package/dist/ui-kit/FormField/Fields/VedField.js.map +1 -1
  31. package/dist/ui-kit/InfoCard/InfoCard.d.ts +9 -0
  32. package/dist/ui-kit/InfoCard/InfoCard.js +8 -0
  33. package/dist/ui-kit/InfoCard/InfoCard.js.map +1 -0
  34. package/dist/ui-kit/Input/InputControl.js +2 -2
  35. package/dist/ui-kit/Input/InputControl.js.map +1 -1
  36. package/dist/ui-kit/Input/InputPhoneControl.js +2 -1
  37. package/dist/ui-kit/Input/InputPhoneControl.js.map +1 -1
  38. package/dist/ui-kit/Input/InputProps.d.ts +2 -6
  39. package/dist/ui-kit/Input/InputSnilsControl.js +2 -1
  40. package/dist/ui-kit/Input/InputSnilsControl.js.map +1 -1
  41. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +3 -5
  42. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js +1 -1
  43. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  44. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroupControl.d.ts +2 -0
  45. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js +10 -0
  46. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js.map +1 -0
  47. package/dist/ui-kit/Select/Select.d.ts +4 -7
  48. package/dist/ui-kit/Select/Select.js +3 -4
  49. package/dist/ui-kit/Select/Select.js.map +1 -1
  50. package/dist/ui-kit/Select/SelectControl.d.ts +1 -8
  51. package/dist/ui-kit/Select/SelectControl.js +2 -1
  52. package/dist/ui-kit/Select/SelectControl.js.map +1 -1
  53. package/dist/utils/getRequiredLabel.d.ts +2 -0
  54. package/dist/utils/getRequiredLabel.js +5 -0
  55. package/dist/utils/getRequiredLabel.js.map +1 -0
  56. package/lib/common.css +1 -1
  57. package/lib/icons/IconName.d.ts +4 -2
  58. package/lib/icons/IconName.js +2 -0
  59. package/lib/icons/IconName.js.map +1 -1
  60. package/lib/model/DefaultControlType.d.ts +7 -0
  61. package/lib/model/DefaultControlType.js +2 -0
  62. package/lib/model/DefaultControlType.js.map +1 -0
  63. package/lib/ui-kit/Calculator/renderBinaryRadioButtonGroup.js +1 -1
  64. package/lib/ui-kit/Calculator/renderBinaryRadioButtonGroup.js.map +1 -1
  65. package/lib/ui-kit/DatePicker/DatePickerControl.d.ts +3 -7
  66. package/lib/ui-kit/DatePicker/DatePickerControl.js +2 -1
  67. package/lib/ui-kit/DatePicker/DatePickerControl.js.map +1 -1
  68. package/lib/ui-kit/FormField/Fields/SexField.js +5 -4
  69. package/lib/ui-kit/FormField/Fields/SexField.js.map +1 -1
  70. package/lib/ui-kit/FormField/Fields/VedField.js +1 -1
  71. package/lib/ui-kit/FormField/Fields/VedField.js.map +1 -1
  72. package/lib/ui-kit/InfoCard/InfoCard.d.ts +9 -0
  73. package/lib/ui-kit/InfoCard/InfoCard.fixture.d.ts +4 -0
  74. package/lib/ui-kit/InfoCard/InfoCard.js +6 -0
  75. package/lib/ui-kit/InfoCard/InfoCard.js.map +1 -0
  76. package/lib/ui-kit/Input/InputControl.js +2 -2
  77. package/lib/ui-kit/Input/InputControl.js.map +1 -1
  78. package/lib/ui-kit/Input/InputPhoneControl.js +2 -1
  79. package/lib/ui-kit/Input/InputPhoneControl.js.map +1 -1
  80. package/lib/ui-kit/Input/InputProps.d.ts +2 -6
  81. package/lib/ui-kit/Input/InputSnilsControl.js +2 -1
  82. package/lib/ui-kit/Input/InputSnilsControl.js.map +1 -1
  83. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +3 -5
  84. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js +1 -1
  85. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  86. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroupControl.d.ts +2 -0
  87. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js +8 -0
  88. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js.map +1 -0
  89. package/lib/ui-kit/Select/Select.d.ts +4 -7
  90. package/lib/ui-kit/Select/Select.js +3 -4
  91. package/lib/ui-kit/Select/Select.js.map +1 -1
  92. package/lib/ui-kit/Select/SelectControl.d.ts +1 -8
  93. package/lib/ui-kit/Select/SelectControl.js +2 -1
  94. package/lib/ui-kit/Select/SelectControl.js.map +1 -1
  95. package/lib/utils/getRequiredLabel.d.ts +2 -0
  96. package/lib/utils/getRequiredLabel.js +2 -0
  97. package/lib/utils/getRequiredLabel.js.map +1 -0
  98. package/mobile/bundle/bundle.umd.js +18 -17
  99. package/mobile/bundle/bundle.umd.min.js +1 -1
  100. package/mobile/bundle/icons/IconName.d.ts +4 -2
  101. package/mobile/bundle/model/DefaultControlType.d.ts +7 -0
  102. package/mobile/bundle/ui-kit/DatePicker/DatePickerControl.d.ts +3 -7
  103. package/mobile/bundle/ui-kit/InfoCard/InfoCard.d.ts +9 -0
  104. package/mobile/bundle/ui-kit/Input/InputProps.d.ts +2 -6
  105. package/mobile/bundle/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +3 -5
  106. package/mobile/bundle/ui-kit/RadioButtonGroup/RadioButtonGroupControl.d.ts +2 -0
  107. package/mobile/bundle/ui-kit/Select/Select.d.ts +4 -7
  108. package/mobile/bundle/ui-kit/Select/SelectControl.d.ts +1 -8
  109. package/mobile/bundle/utils/getRequiredLabel.d.ts +2 -0
  110. package/mobile/dist/icons/IconName.d.ts +4 -2
  111. package/mobile/dist/icons/IconName.js +2 -0
  112. package/mobile/dist/icons/IconName.js.map +1 -1
  113. package/mobile/dist/model/DefaultControlType.d.ts +7 -0
  114. package/mobile/dist/model/DefaultControlType.js +2 -0
  115. package/mobile/dist/model/DefaultControlType.js.map +1 -0
  116. package/mobile/dist/ui-kit/Calculator/renderBinaryRadioButtonGroup.js +1 -1
  117. package/mobile/dist/ui-kit/Calculator/renderBinaryRadioButtonGroup.js.map +1 -1
  118. package/mobile/dist/ui-kit/DatePicker/DatePickerControl.d.ts +3 -7
  119. package/mobile/dist/ui-kit/DatePicker/DatePickerControl.js +2 -1
  120. package/mobile/dist/ui-kit/DatePicker/DatePickerControl.js.map +1 -1
  121. package/mobile/dist/ui-kit/FormField/Fields/SexField.js +5 -4
  122. package/mobile/dist/ui-kit/FormField/Fields/SexField.js.map +1 -1
  123. package/mobile/dist/ui-kit/FormField/Fields/VedField.js +1 -1
  124. package/mobile/dist/ui-kit/FormField/Fields/VedField.js.map +1 -1
  125. package/mobile/dist/ui-kit/InfoCard/InfoCard.d.ts +9 -0
  126. package/mobile/dist/ui-kit/InfoCard/InfoCard.js +8 -0
  127. package/mobile/dist/ui-kit/InfoCard/InfoCard.js.map +1 -0
  128. package/mobile/dist/ui-kit/Input/InputControl.js +2 -2
  129. package/mobile/dist/ui-kit/Input/InputControl.js.map +1 -1
  130. package/mobile/dist/ui-kit/Input/InputPhoneControl.js +2 -1
  131. package/mobile/dist/ui-kit/Input/InputPhoneControl.js.map +1 -1
  132. package/mobile/dist/ui-kit/Input/InputProps.d.ts +2 -6
  133. package/mobile/dist/ui-kit/Input/InputSnilsControl.js +2 -1
  134. package/mobile/dist/ui-kit/Input/InputSnilsControl.js.map +1 -1
  135. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +3 -5
  136. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js +1 -1
  137. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  138. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroupControl.d.ts +2 -0
  139. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js +10 -0
  140. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js.map +1 -0
  141. package/mobile/dist/ui-kit/Select/Select.d.ts +4 -7
  142. package/mobile/dist/ui-kit/Select/Select.js +3 -4
  143. package/mobile/dist/ui-kit/Select/Select.js.map +1 -1
  144. package/mobile/dist/ui-kit/Select/SelectControl.d.ts +1 -8
  145. package/mobile/dist/ui-kit/Select/SelectControl.js +2 -1
  146. package/mobile/dist/ui-kit/Select/SelectControl.js.map +1 -1
  147. package/mobile/dist/utils/getRequiredLabel.d.ts +2 -0
  148. package/mobile/dist/utils/getRequiredLabel.js +5 -0
  149. package/mobile/dist/utils/getRequiredLabel.js.map +1 -0
  150. package/mobile/lib/common.css +1 -1
  151. package/mobile/lib/icons/IconName.d.ts +4 -2
  152. package/mobile/lib/icons/IconName.js +2 -0
  153. package/mobile/lib/icons/IconName.js.map +1 -1
  154. package/mobile/lib/model/DefaultControlType.d.ts +7 -0
  155. package/mobile/lib/model/DefaultControlType.js +2 -0
  156. package/mobile/lib/model/DefaultControlType.js.map +1 -0
  157. package/mobile/lib/ui-kit/Calculator/renderBinaryRadioButtonGroup.js +1 -1
  158. package/mobile/lib/ui-kit/Calculator/renderBinaryRadioButtonGroup.js.map +1 -1
  159. package/mobile/lib/ui-kit/DatePicker/DatePickerControl.d.ts +3 -7
  160. package/mobile/lib/ui-kit/DatePicker/DatePickerControl.js +2 -1
  161. package/mobile/lib/ui-kit/DatePicker/DatePickerControl.js.map +1 -1
  162. package/mobile/lib/ui-kit/FormField/Fields/SexField.js +5 -4
  163. package/mobile/lib/ui-kit/FormField/Fields/SexField.js.map +1 -1
  164. package/mobile/lib/ui-kit/FormField/Fields/VedField.js +1 -1
  165. package/mobile/lib/ui-kit/FormField/Fields/VedField.js.map +1 -1
  166. package/mobile/lib/ui-kit/InfoCard/InfoCard.d.ts +9 -0
  167. package/mobile/lib/ui-kit/InfoCard/InfoCard.js +6 -0
  168. package/mobile/lib/ui-kit/InfoCard/InfoCard.js.map +1 -0
  169. package/mobile/lib/ui-kit/Input/InputControl.js +2 -2
  170. package/mobile/lib/ui-kit/Input/InputControl.js.map +1 -1
  171. package/mobile/lib/ui-kit/Input/InputPhoneControl.js +2 -1
  172. package/mobile/lib/ui-kit/Input/InputPhoneControl.js.map +1 -1
  173. package/mobile/lib/ui-kit/Input/InputProps.d.ts +2 -6
  174. package/mobile/lib/ui-kit/Input/InputSnilsControl.js +2 -1
  175. package/mobile/lib/ui-kit/Input/InputSnilsControl.js.map +1 -1
  176. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +3 -5
  177. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js +1 -1
  178. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  179. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroupControl.d.ts +2 -0
  180. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js +8 -0
  181. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js.map +1 -0
  182. package/mobile/lib/ui-kit/Select/Select.d.ts +4 -7
  183. package/mobile/lib/ui-kit/Select/Select.js +3 -4
  184. package/mobile/lib/ui-kit/Select/Select.js.map +1 -1
  185. package/mobile/lib/ui-kit/Select/SelectControl.d.ts +1 -8
  186. package/mobile/lib/ui-kit/Select/SelectControl.js +2 -1
  187. package/mobile/lib/ui-kit/Select/SelectControl.js.map +1 -1
  188. package/mobile/lib/utils/getRequiredLabel.d.ts +2 -0
  189. package/mobile/lib/utils/getRequiredLabel.js +2 -0
  190. package/mobile/lib/utils/getRequiredLabel.js.map +1 -0
  191. package/mobile/src/icons/IconName.ts +4 -4
  192. package/mobile/src/icons/InfoCircleIcon.svg +5 -0
  193. package/mobile/src/model/DefaultControlType.ts +7 -0
  194. package/mobile/src/ui-kit/Calculator/renderBinaryRadioButtonGroup.tsx +1 -1
  195. package/mobile/src/ui-kit/DatePicker/DatePickerControl.tsx +6 -14
  196. package/mobile/src/ui-kit/FormField/Fields/SexField.tsx +13 -11
  197. package/mobile/src/ui-kit/FormField/Fields/VedField.tsx +1 -1
  198. package/mobile/src/ui-kit/InfoCard/InfoCard.tsx +20 -0
  199. package/mobile/src/ui-kit/Input/InputControl.tsx +2 -3
  200. package/mobile/src/ui-kit/Input/InputPhoneControl.tsx +2 -1
  201. package/mobile/src/ui-kit/Input/InputProps.ts +2 -6
  202. package/mobile/src/ui-kit/Input/InputSnilsControl.tsx +2 -1
  203. package/mobile/src/ui-kit/RadioButtonGroup/RadioButtonGroup.tsx +9 -10
  204. package/mobile/src/ui-kit/RadioButtonGroup/RadioButtonGroupControl.tsx +18 -0
  205. package/mobile/src/ui-kit/Select/Select.tsx +8 -10
  206. package/mobile/src/ui-kit/Select/SelectControl.tsx +4 -10
  207. package/mobile/src/utils/getRequiredLabel.ts +4 -0
  208. package/package.json +1 -1
  209. package/src/icons/IconName.ts +356 -6
  210. package/src/icons/InfoCircleIcon.svg +5 -0
  211. package/src/model/DefaultControlType.ts +7 -0
  212. package/src/ui-kit/Calculator/renderBinaryRadioButtonGroup.tsx +1 -1
  213. package/src/ui-kit/DatePicker/DatePickerControl.tsx +6 -14
  214. package/src/ui-kit/FormField/Fields/SexField.tsx +13 -11
  215. package/src/ui-kit/FormField/Fields/VedField.tsx +1 -1
  216. package/src/ui-kit/InfoCard/InfoCard.fixture.tsx +9 -0
  217. package/src/ui-kit/InfoCard/InfoCard.tsx +20 -0
  218. package/src/ui-kit/Input/InputControl.tsx +2 -3
  219. package/src/ui-kit/Input/InputPhoneControl.tsx +2 -1
  220. package/src/ui-kit/Input/InputProps.ts +2 -6
  221. package/src/ui-kit/Input/InputSnilsControl.tsx +2 -1
  222. package/src/ui-kit/RadioButtonGroup/RadioButtonGroup.fixture.tsx +2 -2
  223. package/src/ui-kit/RadioButtonGroup/RadioButtonGroup.tsx +9 -10
  224. package/src/ui-kit/RadioButtonGroup/RadioButtonGroupControl.tsx +18 -0
  225. package/src/ui-kit/Select/Select.tsx +8 -10
  226. package/src/ui-kit/Select/SelectControl.tsx +4 -10
  227. package/src/utils/getRequiredLabel.ts +4 -0
@@ -1,19 +1,18 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { type DefaultControlType } from '../../model/DefaultControlType';
2
3
  import { type TextProps } from '../../model/HeadlineType';
3
4
  import { type ListOrientation } from '../../model/ListOrientation';
4
5
  import { style } from '../../utils/style';
5
6
  import { Checkbox } from '../Checkbox/Checkbox';
7
+ import { type ControlProps } from '../ControlProps';
6
8
  import { Text } from '../Text/Text';
7
9
 
8
10
  export type RadioButtonItem = TextProps & {
9
11
  id: string;
10
12
  };
11
13
 
12
- interface RadioButtonGroupProps {
13
- title?: string;
14
+ export interface RadioButtonGroupProps extends DefaultControlType, ControlProps<string> {
14
15
  items?: RadioButtonItem[];
15
- checkedItem?: string;
16
- className?: string;
17
16
  onChange?: (id: string) => void;
18
17
  disabled?: boolean;
19
18
  orientation?: ListOrientation;
@@ -26,19 +25,19 @@ const orientationStyleMap: Record<ListOrientation, string> = {
26
25
 
27
26
  export const RadioButtonGroup = JSX<RadioButtonGroupProps>(
28
27
  ({
29
- title,
28
+ label,
30
29
  items,
31
- checkedItem,
30
+ value,
32
31
  className,
33
32
  onChange: onChangeCheckedItem,
34
33
  disabled = false,
35
34
  orientation = 'horizontal',
36
35
  }) => (
37
36
  <div className="grid gap-xs whitespace-nowrap">
38
- {title ? (
39
- <div role="radiogroup" aria-label={title}>
37
+ {label ? (
38
+ <div role="radiogroup" aria-label={label}>
40
39
  <Text color="text-secondary-text" font="font-light">
41
- {title}
40
+ {label}
42
41
  </Text>
43
42
  </div>
44
43
  ) : null}
@@ -52,7 +51,7 @@ export const RadioButtonGroup = JSX<RadioButtonGroupProps>(
52
51
  key={String(id)}
53
52
  isRadio
54
53
  text={text}
55
- value={checkedItem === id}
54
+ value={value === id}
56
55
  onChange={() => onChangeCheckedItem && onChangeCheckedItem(id)}
57
56
  disabled={disabled}
58
57
  />
@@ -0,0 +1,18 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { getRequiredLabel } from '../../utils/getRequiredLabel';
3
+ import { style } from '../../utils/style';
4
+ import { renderErrorText } from '../Input/renderErrorText';
5
+ import { RadioButtonGroup, type RadioButtonGroupProps } from './RadioButtonGroup';
6
+
7
+ export const RadioButtonGroupControl = JSX<RadioButtonGroupProps>(
8
+ ({ className, label, onChange, error, ...rest }) => (
9
+ <div className={style('shrink-0 w-full', className)}>
10
+ <RadioButtonGroup
11
+ label={getRequiredLabel({ label, errors: rest?.errors })}
12
+ onChange={(_) => onChange && onChange(_)}
13
+ {...rest}
14
+ />
15
+ {renderErrorText(error)}
16
+ </div>
17
+ ),
18
+ );
@@ -1,9 +1,10 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useCallback, useState } from '@redneckz/uni-jsx/lib/hooks';
3
3
  import { useBool } from '@redneckz/uni-jsx/lib/hooks/useBool';
4
- import { type LabelProps } from '../../model/HeadlineType';
4
+ import { type DefaultControlType } from '../../model/DefaultControlType';
5
5
  import { type IconVersion } from '../../model/IconVersion';
6
6
  import { style } from '../../utils/style';
7
+ import { type ControlProps } from '../ControlProps';
7
8
  import { Icon } from '../Icon/Icon';
8
9
  import { Input } from '../Input/Input';
9
10
  import { renderLabel } from '../Input/renderLabel';
@@ -11,21 +12,16 @@ import { formatOption } from './formatOption';
11
12
  import { type Option } from './Option';
12
13
  import { useSelectPopup } from './useSelectPopup';
13
14
 
14
- export type SelectProps = LabelProps & {
15
- className?: string;
15
+ export interface SelectProps extends DefaultControlType, ControlProps<Option> {
16
16
  options?: Option[];
17
- value?: Option;
18
17
  valid?: boolean;
19
18
  isBorder?: boolean;
20
- placeholder?: string;
21
19
  isSearch?: boolean;
22
- onChange?: (value: Option) => void;
23
20
  iconVersion?: IconVersion;
24
21
  disabled?: boolean;
25
- };
22
+ }
26
23
 
27
24
  export const Select = JSX<SelectProps>(
28
- // eslint-disable-next-line complexity
29
25
  ({
30
26
  className,
31
27
  label,
@@ -37,11 +33,11 @@ export const Select = JSX<SelectProps>(
37
33
  isSearch = false,
38
34
  iconVersion = 'black',
39
35
  onChange,
40
- disabled,
36
+ disabled = false,
41
37
  }) => {
42
38
  const [isOpen, { setFalse: close, setTrue: open }] = useBool();
43
39
  const [query, setQuery] = useState('');
44
- const isDisabled = disabled || options.length === 0;
40
+ const isDisabled = getDisabled(disabled, options.length);
45
41
  const hasOpen = isOpen && !isDisabled;
46
42
 
47
43
  const handleClose = useCallback(() => {
@@ -101,3 +97,5 @@ const getStyle = (isBorder: boolean, valid: boolean, disabled: boolean) =>
101
97
  disabled ? 'bg-main-divider' : 'cursor-pointer ',
102
98
  valid ? 'border-gray' : 'border-error',
103
99
  );
100
+
101
+ const getDisabled = (disabled: boolean, length: number) => disabled || length === 0;
@@ -1,18 +1,12 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { getRequiredLabel } from '../../utils/getRequiredLabel';
2
3
  import { renderErrorText } from '../Input/renderErrorText';
3
4
  import { Select, type SelectProps } from './Select';
4
5
 
5
- interface SelectControlProps extends SelectProps {
6
- label?: string;
7
- error?: string;
8
- errors?: string[];
9
- className?: string;
10
- }
11
-
12
- export const SelectControl = JSX<SelectControlProps>(
13
- ({ className = '', label, error, ...rest }) => (
6
+ export const SelectControl = JSX<SelectProps>(
7
+ ({ className = '', label, error, errors, ...rest }) => (
14
8
  <div className={className}>
15
- <Select {...rest} valid={!error} label={rest?.errors ? `${label}*` : label} />
9
+ <Select {...rest} valid={!error} label={getRequiredLabel({ label, errors })} />
16
10
  {renderErrorText(error)}
17
11
  </div>
18
12
  ),
@@ -0,0 +1,4 @@
1
+ import type { DefaultControlType } from '../model/DefaultControlType';
2
+
3
+ export const getRequiredLabel = ({ label, errors }: DefaultControlType) =>
4
+ label && errors ? `${label}*` : label;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.14.593",
3
+ "version": "0.14.595",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -1,17 +1,258 @@
1
-
2
1
  // Generated. Do not touch
3
2
  /* eslint-disable max-len, max-lines */
4
3
 
5
4
  export const IconsWithoutInversion = new Set([
6
- 'ActualBalanceIcon', 'AlarmIcon', 'BelarusianFlag', 'ChartIcon', 'ChevronLeftIcon', 'ClientIcon', 'DollarIcon', 'DoneIcon', 'EuroIcon', 'FullScreenIcon', 'HeadphonesIcon', 'HeartIcon', 'HouseIcon', 'LogoIcon', 'MagnifierIcon', 'MapMarkerClusterIcon', 'MapMarkerClusterYellowIcon', 'MapMarkerSingleIcon', 'MapOpenedIcon', 'MoneyInsuranceIcon', 'NewDocIcon', 'PackA4Icon', 'PassSendIcon', 'PercentIcon', 'RefreshIcon', 'ResponseFailIcon', 'ResponseOKIcon', 'SignDocsIcon', 'SoundIcon'
5
+ 'ActualBalanceIcon',
6
+ 'AlarmIcon',
7
+ 'BelarusianFlag',
8
+ 'ChartIcon',
9
+ 'ChevronLeftIcon',
10
+ 'ClientIcon',
11
+ 'DollarIcon',
12
+ 'DoneIcon',
13
+ 'EuroIcon',
14
+ 'FullScreenIcon',
15
+ 'HeadphonesIcon',
16
+ 'HeartIcon',
17
+ 'HouseIcon',
18
+ 'LogoIcon',
19
+ 'MagnifierIcon',
20
+ 'MapMarkerClusterIcon',
21
+ 'MapMarkerClusterYellowIcon',
22
+ 'MapMarkerSingleIcon',
23
+ 'MapOpenedIcon',
24
+ 'MoneyInsuranceIcon',
25
+ 'NewDocIcon',
26
+ 'PackA4Icon',
27
+ 'PassSendIcon',
28
+ 'PercentIcon',
29
+ 'RefreshIcon',
30
+ 'ResponseFailIcon',
31
+ 'ResponseOKIcon',
32
+ 'SignDocsIcon',
33
+ 'SoundIcon',
7
34
  ]);
8
35
 
9
36
  export enum IconMap {
10
- AchievementIcon = 'AchievementIcon', ActualBalanceIcon = 'ActualBalanceIcon', AlarmIcon = 'AlarmIcon', AppleIcon = 'AppleIcon', ArrowDownIcon = 'ArrowDownIcon', ArrowDownSolidIcon = 'ArrowDownSolidIcon', ArrowLeftIcon = 'ArrowLeftIcon', ArrowRightIcon = 'ArrowRightIcon', ArrowTopRightIcon = 'ArrowTopRightIcon', ArrowUpIcon = 'ArrowUpIcon', ArrowUpSolidIcon = 'ArrowUpSolidIcon', AtmIcon = 'AtmIcon', BankIcon = 'BankIcon', BelarusianFlag = 'BelarusianFlag', BriefcaseIcon = 'BriefcaseIcon', BuildingIcon = 'BuildingIcon', BurgerIcon = 'BurgerIcon', CalendarCircleIcon = 'CalendarCircleIcon', CalendarIcon = 'CalendarIcon', CalendarTickIcon = 'CalendarTickIcon', CardIcon = 'CardIcon', CardPosIcon = 'CardPosIcon', CardSendIcon = 'CardSendIcon', CardTickIcon = 'CardTickIcon', ChartIcon = 'ChartIcon', ChartRoundIcon = 'ChartRoundIcon', ChartSquareIcon = 'ChartSquareIcon', ChevronLeftIcon = 'ChevronLeftIcon', ChineseYuanRenminbiIcon = 'ChineseYuanRenminbiIcon', ClientIcon = 'ClientIcon', CloseIcon = 'CloseIcon', CoinIcon = 'CoinIcon', ConvertCardIcon = 'ConvertCardIcon', CopyIcon = 'CopyIcon', CourtHouseIcon = 'CourtHouseIcon', CupIcon = 'CupIcon', DevIcon = 'DevIcon', DiscountShapeIcon = 'DiscountShapeIcon', DocDownloadIcon = 'DocDownloadIcon', DocIcon = 'DocIcon', DollarIcon = 'DollarIcon', DoneIcon = 'DoneIcon', DoneSimpleIcon = 'DoneSimpleIcon', DzenIcon = 'DzenIcon', EmptyWalletChangeIcon = 'EmptyWalletChangeIcon', EmptyWalletIcon = 'EmptyWalletIcon', EuroIcon = 'EuroIcon', FaxIcon = 'FaxIcon', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'GeolocationIcon', GlobalIcon = 'GlobalIcon', GpsIcon = 'GpsIcon', GridIcon = 'GridIcon', HeadphonesIcon = 'HeadphonesIcon', HeartIcon = 'HeartIcon', HeartTickIcon = 'HeartTickIcon', HouseIcon = 'HouseIcon', HuaweiIcon = 'HuaweiIcon', LockIcon = 'LockIcon', LogoIcon = 'LogoIcon', LoupeIcon = 'LoupeIcon', MagnifierIcon = 'MagnifierIcon', MailIcon = 'MailIcon', MapMarkerClusterIcon = 'MapMarkerClusterIcon', MapMarkerClusterYellowIcon = 'MapMarkerClusterYellowIcon', MapMarkerSingleIcon = 'MapMarkerSingleIcon', MapOpenedIcon = 'MapOpenedIcon', MinusIcon = 'MinusIcon', MoneyIcon = 'MoneyIcon', MoneyInsuranceIcon = 'MoneyInsuranceIcon', MonitorMobileIcon = 'MonitorMobileIcon', NewDocIcon = 'NewDocIcon', NotificationBingIcon = 'NotificationBingIcon', OkIcon = 'OkIcon', PackA4Icon = 'PackA4Icon', PassSendIcon = 'PassSendIcon', PercentageRoundIcon = 'PercentageRoundIcon', PercentIcon = 'PercentIcon', PersonalCardIcon = 'PersonalCardIcon', PhoneCallingIcon = 'PhoneCallingIcon', PhoneIcon = 'PhoneIcon', PlayMarketIcon = 'PlayMarketIcon', PlusCircleIcon = 'PlusCircleIcon', PlusIcon = 'PlusIcon', Profile2UserIcon = 'Profile2UserIcon', ProfileIcon = 'ProfileIcon', RefreshIcon = 'RefreshIcon', ResponseFailIcon = 'ResponseFailIcon', ResponseOKIcon = 'ResponseOKIcon', RoundRubleIcon = 'RoundRubleIcon', RustoreIcon = 'RustoreIcon', RutubeIcon = 'RutubeIcon', SafeIcon = 'SafeIcon', SecurityСardIcon = 'SecurityСardIcon', ShieldTickIcon = 'ShieldTickIcon', SignDocsIcon = 'SignDocsIcon', SmallClockIcon = 'SmallClockIcon', SoundIcon = 'SoundIcon', TelegramIcon = 'TelegramIcon', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'UserSquareIcon', UserTickIcon = 'UserTickIcon', VKIcon = 'VKIcon', WalletAddIcon = 'WalletAddIcon', WalletIcon = 'WalletIcon', WalletWithMoneyIcon = 'WalletWithMoneyIcon', YoutubeIcon = 'YoutubeIcon'
37
+ AchievementIcon = 'AchievementIcon',
38
+ ActualBalanceIcon = 'ActualBalanceIcon',
39
+ AlarmIcon = 'AlarmIcon',
40
+ AppleIcon = 'AppleIcon',
41
+ ArrowDownIcon = 'ArrowDownIcon',
42
+ ArrowDownSolidIcon = 'ArrowDownSolidIcon',
43
+ ArrowLeftIcon = 'ArrowLeftIcon',
44
+ ArrowRightIcon = 'ArrowRightIcon',
45
+ ArrowTopRightIcon = 'ArrowTopRightIcon',
46
+ ArrowUpIcon = 'ArrowUpIcon',
47
+ ArrowUpSolidIcon = 'ArrowUpSolidIcon',
48
+ AtmIcon = 'AtmIcon',
49
+ BankIcon = 'BankIcon',
50
+ BelarusianFlag = 'BelarusianFlag',
51
+ BriefcaseIcon = 'BriefcaseIcon',
52
+ BuildingIcon = 'BuildingIcon',
53
+ BurgerIcon = 'BurgerIcon',
54
+ CalendarCircleIcon = 'CalendarCircleIcon',
55
+ CalendarIcon = 'CalendarIcon',
56
+ CalendarTickIcon = 'CalendarTickIcon',
57
+ CardIcon = 'CardIcon',
58
+ CardPosIcon = 'CardPosIcon',
59
+ CardSendIcon = 'CardSendIcon',
60
+ CardTickIcon = 'CardTickIcon',
61
+ ChartIcon = 'ChartIcon',
62
+ ChartRoundIcon = 'ChartRoundIcon',
63
+ ChartSquareIcon = 'ChartSquareIcon',
64
+ ChevronLeftIcon = 'ChevronLeftIcon',
65
+ ChineseYuanRenminbiIcon = 'ChineseYuanRenminbiIcon',
66
+ ClientIcon = 'ClientIcon',
67
+ CloseIcon = 'CloseIcon',
68
+ CoinIcon = 'CoinIcon',
69
+ ConvertCardIcon = 'ConvertCardIcon',
70
+ CopyIcon = 'CopyIcon',
71
+ CourtHouseIcon = 'CourtHouseIcon',
72
+ CupIcon = 'CupIcon',
73
+ DevIcon = 'DevIcon',
74
+ DiscountShapeIcon = 'DiscountShapeIcon',
75
+ DocDownloadIcon = 'DocDownloadIcon',
76
+ DocIcon = 'DocIcon',
77
+ DollarIcon = 'DollarIcon',
78
+ DoneIcon = 'DoneIcon',
79
+ DoneSimpleIcon = 'DoneSimpleIcon',
80
+ DzenIcon = 'DzenIcon',
81
+ EmptyWalletChangeIcon = 'EmptyWalletChangeIcon',
82
+ EmptyWalletIcon = 'EmptyWalletIcon',
83
+ EuroIcon = 'EuroIcon',
84
+ FaxIcon = 'FaxIcon',
85
+ FullScreenIcon = 'FullScreenIcon',
86
+ GeolocationIcon = 'GeolocationIcon',
87
+ GlobalIcon = 'GlobalIcon',
88
+ GpsIcon = 'GpsIcon',
89
+ GridIcon = 'GridIcon',
90
+ HeadphonesIcon = 'HeadphonesIcon',
91
+ HeartIcon = 'HeartIcon',
92
+ HeartTickIcon = 'HeartTickIcon',
93
+ HouseIcon = 'HouseIcon',
94
+ HuaweiIcon = 'HuaweiIcon',
95
+ InfoCircleIcon = 'InfoCircleIcon',
96
+ LockIcon = 'LockIcon',
97
+ LogoIcon = 'LogoIcon',
98
+ LoupeIcon = 'LoupeIcon',
99
+ MagnifierIcon = 'MagnifierIcon',
100
+ MailIcon = 'MailIcon',
101
+ MapMarkerClusterIcon = 'MapMarkerClusterIcon',
102
+ MapMarkerClusterYellowIcon = 'MapMarkerClusterYellowIcon',
103
+ MapMarkerSingleIcon = 'MapMarkerSingleIcon',
104
+ MapOpenedIcon = 'MapOpenedIcon',
105
+ MinusIcon = 'MinusIcon',
106
+ MoneyIcon = 'MoneyIcon',
107
+ MoneyInsuranceIcon = 'MoneyInsuranceIcon',
108
+ MonitorMobileIcon = 'MonitorMobileIcon',
109
+ NewDocIcon = 'NewDocIcon',
110
+ NotificationBingIcon = 'NotificationBingIcon',
111
+ OkIcon = 'OkIcon',
112
+ PackA4Icon = 'PackA4Icon',
113
+ PassSendIcon = 'PassSendIcon',
114
+ PercentageRoundIcon = 'PercentageRoundIcon',
115
+ PercentIcon = 'PercentIcon',
116
+ PersonalCardIcon = 'PersonalCardIcon',
117
+ PhoneCallingIcon = 'PhoneCallingIcon',
118
+ PhoneIcon = 'PhoneIcon',
119
+ PlayMarketIcon = 'PlayMarketIcon',
120
+ PlusCircleIcon = 'PlusCircleIcon',
121
+ PlusIcon = 'PlusIcon',
122
+ Profile2UserIcon = 'Profile2UserIcon',
123
+ ProfileIcon = 'ProfileIcon',
124
+ RefreshIcon = 'RefreshIcon',
125
+ ResponseFailIcon = 'ResponseFailIcon',
126
+ ResponseOKIcon = 'ResponseOKIcon',
127
+ RoundRubleIcon = 'RoundRubleIcon',
128
+ RustoreIcon = 'RustoreIcon',
129
+ RutubeIcon = 'RutubeIcon',
130
+ SafeIcon = 'SafeIcon',
131
+ SecurityСardIcon = 'SecurityСardIcon',
132
+ ShieldTickIcon = 'ShieldTickIcon',
133
+ SignDocsIcon = 'SignDocsIcon',
134
+ SmallClockIcon = 'SmallClockIcon',
135
+ SoundIcon = 'SoundIcon',
136
+ TelegramIcon = 'TelegramIcon',
137
+ UserGeoLocationIcon = 'UserGeoLocationIcon',
138
+ UserSquareIcon = 'UserSquareIcon',
139
+ UserTickIcon = 'UserTickIcon',
140
+ VKIcon = 'VKIcon',
141
+ WalletAddIcon = 'WalletAddIcon',
142
+ WalletIcon = 'WalletIcon',
143
+ WalletWithMoneyIcon = 'WalletWithMoneyIcon',
144
+ YoutubeIcon = 'YoutubeIcon',
11
145
  }
12
146
 
13
147
  export enum IconTitleMap {
14
- AchievementIcon = 'Достижение', ActualBalanceIcon = 'Деньги', AlarmIcon = 'Предупреждение', AppleIcon = 'Лого «Apple»', ArrowDownIcon = 'Стрелка \'Вниз\'', ArrowDownSolidIcon = 'Стрелка сплошная \'Вниз\'', ArrowLeftIcon = 'Стрелка \'Влево\'', ArrowRightIcon = 'Стрелка \'Вправо\'', ArrowTopRightIcon = 'Стрелка \'Вверх-право\'', ArrowUpIcon = 'Стрелка \'Вверх\'', ArrowUpSolidIcon = 'Стрелка сплошная \'Вверх\'', AtmIcon = 'Банкомат', BankIcon = 'Банк', BelarusianFlag = 'Белорусский флаг', BriefcaseIcon = 'Портфель', BuildingIcon = 'Здание с деревом', BurgerIcon = 'Бургер', CalendarCircleIcon = 'Скруглённый календарь', CalendarIcon = 'Календарь', CalendarTickIcon = 'Календарь с галочкой', CardIcon = 'Кред. карта', CardPosIcon = 'Кред. карта под наклоном', CardSendIcon = 'Карта', CardTickIcon = 'Кред. карта с галочкой', ChartIcon = 'Инвестиции', ChartRoundIcon = 'Диаграмма (в круге)', ChartSquareIcon = 'Деньги внутри кошелька', ChevronLeftIcon = 'Стрелка \'Влево\'', ChineseYuanRenminbiIcon = 'Китайский юань', ClientIcon = 'Клиент', CloseIcon = 'Крестик', CoinIcon = 'Монеты', ConvertCardIcon = 'Конвертирование', CopyIcon = 'Копирование', CourtHouseIcon = 'Здание суда', CupIcon = 'Кубок', DevIcon = 'Разработка', DiscountShapeIcon = 'Скидка', DocDownloadIcon = 'Скачать документ', DocIcon = 'Документ', DollarIcon = 'Доллар', DoneIcon = 'Зелёная \'галочка\' в круге', DoneSimpleIcon = 'Зелёная \'галочка\'', DzenIcon = 'Лого «Дзен»', EmptyWalletChangeIcon = 'Пустой кошелёк с возвратом', EmptyWalletIcon = 'Пустой кошелёк', EuroIcon = 'Евро', FaxIcon = 'Факс', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'Геолокация', GlobalIcon = 'Глобус', GpsIcon = 'Gps', GridIcon = 'Сетка (белая)', HeadphonesIcon = 'HeadphonesIcon', HeartIcon = 'Сердце', HeartTickIcon = 'Сердцебеение', HouseIcon = 'Ипотека', HuaweiIcon = 'Лого «Huawei»', LockIcon = 'Замок', LogoIcon = 'Логотип', LoupeIcon = 'Лупа', MagnifierIcon = 'MagnifierIcon', MailIcon = 'E-mail', MapMarkerClusterIcon = 'Маркер карты', MapMarkerClusterYellowIcon = 'Маркер карты (желтый)', MapMarkerSingleIcon = 'Маркер карты РСХБ', MapOpenedIcon = 'Иконка Развёрнутая карта', MinusIcon = 'Минус', MoneyIcon = 'Деньги', MoneyInsuranceIcon = 'Денежное страхование', MonitorMobileIcon = 'Монитор и мобильный', NewDocIcon = 'Новый документ', NotificationBingIcon = 'Колокольчик нотификаций', OkIcon = 'Лого «Одноклассники»', PackA4Icon = 'Пачка бумаги А4', PassSendIcon = 'Бизнес', PercentageRoundIcon = 'Проценты (круг.)', PercentIcon = 'PercentIcon', PersonalCardIcon = 'Персональная карта', PhoneCallingIcon = 'Звонящий телефон', PhoneIcon = 'Телефон', PlayMarketIcon = 'Лого «PlayMarket»', PlusCircleIcon = 'Плюс в круге', PlusIcon = 'Плюс', Profile2UserIcon = 'Профиль, 2 персоны', ProfileIcon = 'Профиль', RefreshIcon = 'RefreshIcon', ResponseFailIcon = 'Ошибка', ResponseOKIcon = 'Ок', RoundRubleIcon = 'Рубль (круг.)', RustoreIcon = 'Лого «Rustore»', RutubeIcon = 'Лого «Rutube»', SafeIcon = 'Сейф', SecurityСardIcon = 'Безопасность', ShieldTickIcon = 'Безопасность', SignDocsIcon = 'Подписанные документы', SmallClockIcon = 'Маленькие часы', SoundIcon = 'Кольцо', TelegramIcon = 'Лого «Telegram»', UserGeoLocationIcon = 'Самолётик', UserSquareIcon = 'Пользователь в рамке', UserTickIcon = 'Пользователь', VKIcon = 'Лого «VK»', WalletAddIcon = 'Кошелёк с плюсом', WalletIcon = 'Кошелёк', WalletWithMoneyIcon = 'Кошелёк с деньгами', YoutubeIcon = 'Лого «Youtube»'
148
+ AchievementIcon = 'Достижение',
149
+ ActualBalanceIcon = 'Деньги',
150
+ AlarmIcon = 'Предупреждение',
151
+ AppleIcon = 'Лого «Apple»',
152
+ ArrowDownIcon = "Стрелка 'Вниз'",
153
+ ArrowDownSolidIcon = "Стрелка сплошная 'Вниз'",
154
+ ArrowLeftIcon = "Стрелка 'Влево'",
155
+ ArrowRightIcon = "Стрелка 'Вправо'",
156
+ ArrowTopRightIcon = "Стрелка 'Вверх-право'",
157
+ ArrowUpIcon = "Стрелка 'Вверх'",
158
+ ArrowUpSolidIcon = "Стрелка сплошная 'Вверх'",
159
+ AtmIcon = 'Банкомат',
160
+ BankIcon = 'Банк',
161
+ BelarusianFlag = 'Белорусский флаг',
162
+ BriefcaseIcon = 'Портфель',
163
+ BuildingIcon = 'Здание с деревом',
164
+ BurgerIcon = 'Бургер',
165
+ CalendarCircleIcon = 'Скруглённый календарь',
166
+ CalendarIcon = 'Календарь',
167
+ CalendarTickIcon = 'Календарь с галочкой',
168
+ CardIcon = 'Кред. карта',
169
+ CardPosIcon = 'Кред. карта под наклоном',
170
+ CardSendIcon = 'Карта',
171
+ CardTickIcon = 'Кред. карта с галочкой',
172
+ ChartIcon = 'Инвестиции',
173
+ ChartRoundIcon = 'Диаграмма (в круге)',
174
+ ChartSquareIcon = 'Деньги внутри кошелька',
175
+ ChevronLeftIcon = "Стрелка 'Влево'",
176
+ ChineseYuanRenminbiIcon = 'Китайский юань',
177
+ ClientIcon = 'Клиент',
178
+ CloseIcon = 'Крестик',
179
+ CoinIcon = 'Монеты',
180
+ ConvertCardIcon = 'Конвертирование',
181
+ CopyIcon = 'Копирование',
182
+ CourtHouseIcon = 'Здание суда',
183
+ CupIcon = 'Кубок',
184
+ DevIcon = 'Разработка',
185
+ DiscountShapeIcon = 'Скидка',
186
+ DocDownloadIcon = 'Скачать документ',
187
+ DocIcon = 'Документ',
188
+ DollarIcon = 'Доллар',
189
+ DoneIcon = "Зелёная 'галочка' в круге",
190
+ DoneSimpleIcon = "Зелёная 'галочка'",
191
+ DzenIcon = 'Лого «Дзен»',
192
+ EmptyWalletChangeIcon = 'Пустой кошелёк с возвратом',
193
+ EmptyWalletIcon = 'Пустой кошелёк',
194
+ EuroIcon = 'Евро',
195
+ FaxIcon = 'Факс',
196
+ FullScreenIcon = 'FullScreenIcon',
197
+ GeolocationIcon = 'Геолокация',
198
+ GlobalIcon = 'Глобус',
199
+ GpsIcon = 'Gps',
200
+ GridIcon = 'Сетка (белая)',
201
+ HeadphonesIcon = 'HeadphonesIcon',
202
+ HeartIcon = 'Сердце',
203
+ HeartTickIcon = 'Сердцебеение',
204
+ HouseIcon = 'Ипотека',
205
+ HuaweiIcon = 'Лого «Huawei»',
206
+ InfoCircleIcon = 'Инфо',
207
+ LockIcon = 'Замок',
208
+ LogoIcon = 'Логотип',
209
+ LoupeIcon = 'Лупа',
210
+ MagnifierIcon = 'MagnifierIcon',
211
+ MailIcon = 'E-mail',
212
+ MapMarkerClusterIcon = 'Маркер карты',
213
+ MapMarkerClusterYellowIcon = 'Маркер карты (желтый)',
214
+ MapMarkerSingleIcon = 'Маркер карты РСХБ',
215
+ MapOpenedIcon = 'Иконка Развёрнутая карта',
216
+ MinusIcon = 'Минус',
217
+ MoneyIcon = 'Деньги',
218
+ MoneyInsuranceIcon = 'Денежное страхование',
219
+ MonitorMobileIcon = 'Монитор и мобильный',
220
+ NewDocIcon = 'Новый документ',
221
+ NotificationBingIcon = 'Колокольчик нотификаций',
222
+ OkIcon = 'Лого «Одноклассники»',
223
+ PackA4Icon = 'Пачка бумаги А4',
224
+ PassSendIcon = 'Бизнес',
225
+ PercentageRoundIcon = 'Проценты (круг.)',
226
+ PercentIcon = 'PercentIcon',
227
+ PersonalCardIcon = 'Персональная карта',
228
+ PhoneCallingIcon = 'Звонящий телефон',
229
+ PhoneIcon = 'Телефон',
230
+ PlayMarketIcon = 'Лого «PlayMarket»',
231
+ PlusCircleIcon = 'Плюс в круге',
232
+ PlusIcon = 'Плюс',
233
+ Profile2UserIcon = 'Профиль, 2 персоны',
234
+ ProfileIcon = 'Профиль',
235
+ RefreshIcon = 'RefreshIcon',
236
+ ResponseFailIcon = 'Ошибка',
237
+ ResponseOKIcon = 'Ок',
238
+ RoundRubleIcon = 'Рубль (круг.)',
239
+ RustoreIcon = 'Лого «Rustore»',
240
+ RutubeIcon = 'Лого «Rutube»',
241
+ SafeIcon = 'Сейф',
242
+ SecurityСardIcon = 'Безопасность',
243
+ ShieldTickIcon = 'Безопасность',
244
+ SignDocsIcon = 'Подписанные документы',
245
+ SmallClockIcon = 'Маленькие часы',
246
+ SoundIcon = 'Кольцо',
247
+ TelegramIcon = 'Лого «Telegram»',
248
+ UserGeoLocationIcon = 'Самолётик',
249
+ UserSquareIcon = 'Пользователь в рамке',
250
+ UserTickIcon = 'Пользователь',
251
+ VKIcon = 'Лого «VK»',
252
+ WalletAddIcon = 'Кошелёк с плюсом',
253
+ WalletIcon = 'Кошелёк',
254
+ WalletWithMoneyIcon = 'Кошелёк с деньгами',
255
+ YoutubeIcon = 'Лого «Youtube»',
15
256
  }
16
257
 
17
258
  /**
@@ -19,7 +260,116 @@ export enum IconTitleMap {
19
260
  * @title Иконка
20
261
  * @enumNames [
21
262
  * "",
22
- * 'Достижение', 'Деньги', 'Предупреждение', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка сплошная \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Стрелка сплошная \'Вверх\'', 'Банкомат', 'Банк', 'Белорусский флаг', 'Портфель', 'Здание с деревом', 'Бургер', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Кред. карта', 'Кред. карта под наклоном', 'Карта', 'Кред. карта с галочкой', 'Инвестиции', 'Диаграмма (в круге)', 'Деньги внутри кошелька', 'Стрелка \'Влево\'', 'Китайский юань', 'Клиент', 'Крестик', 'Монеты', 'Конвертирование', 'Копирование', 'Здание суда', 'Кубок', 'Разработка', 'Скидка', 'Скачать документ', 'Документ', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Лого «Дзен»', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'Факс', 'FullScreenIcon', 'Геолокация', 'Глобус', 'Gps', 'Сетка (белая)', 'HeadphonesIcon', 'Сердце', 'Сердцебеение', 'Ипотека', 'Лого «Huawei»', 'Замок', 'Логотип', 'Лупа', 'MagnifierIcon', 'E-mail', 'Маркер карты', 'Маркер карты (желтый)', 'Маркер карты РСХБ', 'Иконка Развёрнутая карта', 'Минус', 'Деньги', 'Денежное страхование', 'Монитор и мобильный', 'Новый документ', 'Колокольчик нотификаций', 'Лого «Одноклассники»', 'Пачка бумаги А4', 'Бизнес', 'Проценты (круг.)', 'PercentIcon', 'Персональная карта', 'Звонящий телефон', 'Телефон', 'Лого «PlayMarket»', 'Плюс в круге', 'Плюс', 'Профиль, 2 персоны', 'Профиль', 'RefreshIcon', 'Ошибка', 'Ок', 'Рубль (круг.)', 'Лого «Rustore»', 'Лого «Rutube»', 'Сейф', 'Безопасность', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Кольцо', 'Лого «Telegram»', 'Самолётик', 'Пользователь в рамке', 'Пользователь', 'Лого «VK»', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Лого «Youtube»'
263
+ * 'Достижение', 'Деньги', 'Предупреждение', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка сплошная \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Стрелка сплошная \'Вверх\'', 'Банкомат', 'Банк', 'Белорусский флаг', 'Портфель', 'Здание с деревом', 'Бургер', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Кред. карта', 'Кред. карта под наклоном', 'Карта', 'Кред. карта с галочкой', 'Инвестиции', 'Диаграмма (в круге)', 'Деньги внутри кошелька', 'Стрелка \'Влево\'', 'Китайский юань', 'Клиент', 'Крестик', 'Монеты', 'Конвертирование', 'Копирование', 'Здание суда', 'Кубок', 'Разработка', 'Скидка', 'Скачать документ', 'Документ', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Лого «Дзен»', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'Факс', 'FullScreenIcon', 'Геолокация', 'Глобус', 'Gps', 'Сетка (белая)', 'HeadphonesIcon', 'Сердце', 'Сердцебиение', 'Ипотека', 'Лого «Huawei»', 'Инфо', 'Замок', 'Логотип', 'Лупа', 'MagnifierIcon', 'E-mail', 'Маркер карты', 'Маркер карты (желтый)', 'Маркер карты РСХБ', 'Иконка Развёрнутая карта', 'Минус', 'Деньги', 'Денежное страхование', 'Монитор и мобильный', 'Новый документ', 'Колокольчик нотификаций', 'Лого «Одноклассники»', 'Пачка бумаги А4', 'Бизнес', 'Проценты (круг.)', 'PercentIcon', 'Персональная карта', 'Звонящий телефон', 'Телефон', 'Лого «PlayMarket»', 'Плюс в круге', 'Плюс', 'Профиль, 2 персоны', 'Профиль', 'RefreshIcon', 'Ошибка', 'Ок', 'Рубль (круг.)', 'Лого «Rustore»', 'Лого «Rutube»', 'Сейф', 'Безопасность', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Кольцо', 'Лого «Telegram»', 'Самолётик', 'Пользователь в рамке', 'Пользователь', 'Лого «VK»', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Лого «Youtube»'
23
264
  * ]
24
265
  */
25
- export type IconName = '' | 'AchievementIcon' | 'ActualBalanceIcon' | 'AlarmIcon' | 'AppleIcon' | 'ArrowDownIcon' | 'ArrowDownSolidIcon' | 'ArrowLeftIcon' | 'ArrowRightIcon' | 'ArrowTopRightIcon' | 'ArrowUpIcon' | 'ArrowUpSolidIcon' | 'AtmIcon' | 'BankIcon' | 'BelarusianFlag' | 'BriefcaseIcon' | 'BuildingIcon' | 'BurgerIcon' | 'CalendarCircleIcon' | 'CalendarIcon' | 'CalendarTickIcon' | 'CardIcon' | 'CardPosIcon' | 'CardSendIcon' | 'CardTickIcon' | 'ChartIcon' | 'ChartRoundIcon' | 'ChartSquareIcon' | 'ChevronLeftIcon' | 'ChineseYuanRenminbiIcon' | 'ClientIcon' | 'CloseIcon' | 'CoinIcon' | 'ConvertCardIcon' | 'CopyIcon' | 'CourtHouseIcon' | 'CupIcon' | 'DevIcon' | 'DiscountShapeIcon' | 'DocDownloadIcon' | 'DocIcon' | 'DollarIcon' | 'DoneIcon' | 'DoneSimpleIcon' | 'DzenIcon' | 'EmptyWalletChangeIcon' | 'EmptyWalletIcon' | 'EuroIcon' | 'FaxIcon' | 'FullScreenIcon' | 'GeolocationIcon' | 'GlobalIcon' | 'GpsIcon' | 'GridIcon' | 'HeadphonesIcon' | 'HeartIcon' | 'HeartTickIcon' | 'HouseIcon' | 'HuaweiIcon' | 'LockIcon' | 'LogoIcon' | 'LoupeIcon' | 'MagnifierIcon' | 'MailIcon' | 'MapMarkerClusterIcon' | 'MapMarkerClusterYellowIcon' | 'MapMarkerSingleIcon' | 'MapOpenedIcon' | 'MinusIcon' | 'MoneyIcon' | 'MoneyInsuranceIcon' | 'MonitorMobileIcon' | 'NewDocIcon' | 'NotificationBingIcon' | 'OkIcon' | 'PackA4Icon' | 'PassSendIcon' | 'PercentageRoundIcon' | 'PercentIcon' | 'PersonalCardIcon' | 'PhoneCallingIcon' | 'PhoneIcon' | 'PlayMarketIcon' | 'PlusCircleIcon' | 'PlusIcon' | 'Profile2UserIcon' | 'ProfileIcon' | 'RefreshIcon' | 'ResponseFailIcon' | 'ResponseOKIcon' | 'RoundRubleIcon' | 'RustoreIcon' | 'RutubeIcon' | 'SafeIcon' | 'SecurityСardIcon' | 'ShieldTickIcon' | 'SignDocsIcon' | 'SmallClockIcon' | 'SoundIcon' | 'TelegramIcon' | 'UserGeoLocationIcon' | 'UserSquareIcon' | 'UserTickIcon' | 'VKIcon' | 'WalletAddIcon' | 'WalletIcon' | 'WalletWithMoneyIcon' | 'YoutubeIcon';
266
+ export type IconName =
267
+ | ''
268
+ | 'AchievementIcon'
269
+ | 'ActualBalanceIcon'
270
+ | 'AlarmIcon'
271
+ | 'AppleIcon'
272
+ | 'ArrowDownIcon'
273
+ | 'ArrowDownSolidIcon'
274
+ | 'ArrowLeftIcon'
275
+ | 'ArrowRightIcon'
276
+ | 'ArrowTopRightIcon'
277
+ | 'ArrowUpIcon'
278
+ | 'ArrowUpSolidIcon'
279
+ | 'AtmIcon'
280
+ | 'BankIcon'
281
+ | 'BelarusianFlag'
282
+ | 'BriefcaseIcon'
283
+ | 'BuildingIcon'
284
+ | 'BurgerIcon'
285
+ | 'CalendarCircleIcon'
286
+ | 'CalendarIcon'
287
+ | 'CalendarTickIcon'
288
+ | 'CardIcon'
289
+ | 'CardPosIcon'
290
+ | 'CardSendIcon'
291
+ | 'CardTickIcon'
292
+ | 'ChartIcon'
293
+ | 'ChartRoundIcon'
294
+ | 'ChartSquareIcon'
295
+ | 'ChevronLeftIcon'
296
+ | 'ChineseYuanRenminbiIcon'
297
+ | 'ClientIcon'
298
+ | 'CloseIcon'
299
+ | 'CoinIcon'
300
+ | 'ConvertCardIcon'
301
+ | 'CopyIcon'
302
+ | 'CourtHouseIcon'
303
+ | 'CupIcon'
304
+ | 'DevIcon'
305
+ | 'DiscountShapeIcon'
306
+ | 'DocDownloadIcon'
307
+ | 'DocIcon'
308
+ | 'DollarIcon'
309
+ | 'DoneIcon'
310
+ | 'DoneSimpleIcon'
311
+ | 'DzenIcon'
312
+ | 'EmptyWalletChangeIcon'
313
+ | 'EmptyWalletIcon'
314
+ | 'EuroIcon'
315
+ | 'FaxIcon'
316
+ | 'FullScreenIcon'
317
+ | 'GeolocationIcon'
318
+ | 'GlobalIcon'
319
+ | 'GpsIcon'
320
+ | 'GridIcon'
321
+ | 'HeadphonesIcon'
322
+ | 'HeartIcon'
323
+ | 'HeartTickIcon'
324
+ | 'HouseIcon'
325
+ | 'HuaweiIcon'
326
+ | 'InfoCircleIcon'
327
+ | 'LockIcon'
328
+ | 'LogoIcon'
329
+ | 'LoupeIcon'
330
+ | 'MagnifierIcon'
331
+ | 'MailIcon'
332
+ | 'MapMarkerClusterIcon'
333
+ | 'MapMarkerClusterYellowIcon'
334
+ | 'MapMarkerSingleIcon'
335
+ | 'MapOpenedIcon'
336
+ | 'MinusIcon'
337
+ | 'MoneyIcon'
338
+ | 'MoneyInsuranceIcon'
339
+ | 'MonitorMobileIcon'
340
+ | 'NewDocIcon'
341
+ | 'NotificationBingIcon'
342
+ | 'OkIcon'
343
+ | 'PackA4Icon'
344
+ | 'PassSendIcon'
345
+ | 'PercentageRoundIcon'
346
+ | 'PercentIcon'
347
+ | 'PersonalCardIcon'
348
+ | 'PhoneCallingIcon'
349
+ | 'PhoneIcon'
350
+ | 'PlayMarketIcon'
351
+ | 'PlusCircleIcon'
352
+ | 'PlusIcon'
353
+ | 'Profile2UserIcon'
354
+ | 'ProfileIcon'
355
+ | 'RefreshIcon'
356
+ | 'ResponseFailIcon'
357
+ | 'ResponseOKIcon'
358
+ | 'RoundRubleIcon'
359
+ | 'RustoreIcon'
360
+ | 'RutubeIcon'
361
+ | 'SafeIcon'
362
+ | 'SecurityСardIcon'
363
+ | 'ShieldTickIcon'
364
+ | 'SignDocsIcon'
365
+ | 'SmallClockIcon'
366
+ | 'SoundIcon'
367
+ | 'TelegramIcon'
368
+ | 'UserGeoLocationIcon'
369
+ | 'UserSquareIcon'
370
+ | 'UserTickIcon'
371
+ | 'VKIcon'
372
+ | 'WalletAddIcon'
373
+ | 'WalletIcon'
374
+ | 'WalletWithMoneyIcon'
375
+ | 'YoutubeIcon';
@@ -0,0 +1,5 @@
1
+ <svg title='Инфо' isInverse="true" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M9.99996 6.8125C10.4602 6.8125 10.8333 7.1856 10.8333 7.64583V11.8125C10.8333 12.2727 10.4602 12.6458 9.99996 12.6458C9.53972 12.6458 9.16663 12.2727 9.16663 11.8125V7.64583C9.16663 7.1856 9.53972 6.8125 9.99996 6.8125Z" fill="currentColor"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M6.30154 2.59342C7.43399 2.08704 8.69161 1.8125 10 1.8125C15.0603 1.8125 19.1667 5.91893 19.1667 10.9792C19.1667 16.0394 15.0603 20.1458 10 20.1458C4.9398 20.1458 0.833374 16.0394 0.833374 10.9792C0.833374 8.91627 1.52148 7.00918 2.66623 5.47981C2.94202 5.11135 3.46428 5.03623 3.83273 5.31202C4.20119 5.58781 4.27631 6.11007 4.00052 6.47853C3.06193 7.73248 2.50004 9.29206 2.50004 10.9792C2.50004 15.1189 5.86028 18.4792 10 18.4792C14.1398 18.4792 17.5 15.1189 17.5 10.9792C17.5 6.8394 14.1398 3.47917 10 3.47917C8.92514 3.47917 7.89943 3.70462 6.98188 4.11491C6.56173 4.30278 6.06883 4.11448 5.88096 3.69434C5.69309 3.27419 5.88139 2.78129 6.30154 2.59342Z" fill="currentColor"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M9.16211 14.3138C9.16211 13.8536 9.53521 13.4805 9.99544 13.4805H10.0029C10.4632 13.4805 10.8363 13.8536 10.8363 14.3138C10.8363 14.774 10.4632 15.1471 10.0029 15.1471H9.99544C9.53521 15.1471 9.16211 14.774 9.16211 14.3138Z" fill="currentColor"/>
5
+ </svg>
@@ -0,0 +1,7 @@
1
+ export interface DefaultControlType {
2
+ className?: string;
3
+ label?: string;
4
+ error?: string;
5
+ errors?: string[];
6
+ placeholder?: string;
7
+ }
@@ -44,7 +44,7 @@ export const renderBinaryRadioButtonGroup = ({
44
44
  <RadioButtonGroup
45
45
  orientation={orientation}
46
46
  items={items}
47
- checkedItem={items[value ? 0 : 1].id}
47
+ value={items[value ? 0 : 1].id}
48
48
  onChange={(_) => onChange && onChange(_ === items[0].id)}
49
49
  {...rest}
50
50
  />
@@ -1,25 +1,17 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { type DefaultControlType } from '../../model/DefaultControlType';
3
+ import { getRequiredLabel } from '../../utils/getRequiredLabel';
2
4
  import { style } from '../../utils/style';
5
+ import { type ControlProps } from '../ControlProps';
3
6
  import { renderErrorText } from '../Input/renderErrorText';
4
7
  import { DatePicker } from './DatePicker';
5
8
 
6
- export interface DatePickerControlProps {
7
- className?: string;
8
- label: string;
9
- value?: Date;
10
- error?: string;
11
- errors?: string[];
12
- onChange?: (value: Date) => void;
13
- }
9
+ export interface DatePickerControlProps extends DefaultControlType, ControlProps<Date> {}
14
10
 
15
11
  export const DatePickerControl = JSX<DatePickerControlProps>(
16
- ({ className, label, error, ...rest }) => (
12
+ ({ className, label, error, errors, ...rest }) => (
17
13
  <div className={style('shrink-0 w-full', className)}>
18
- <DatePicker
19
- label={label && rest?.errors ? `${label}*` : label}
20
- valid={Boolean(!error)}
21
- {...rest}
22
- />
14
+ <DatePicker label={getRequiredLabel({ label, errors })} valid={Boolean(!error)} {...rest} />
23
15
  {renderErrorText(error)}
24
16
  </div>
25
17
  ),