@alfalab/core-components-picker-button 10.3.29 → 11.0.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 (274) hide show
  1. package/Component-5e1b8383.d.ts +72 -0
  2. package/Component-63dec22f.d.ts +167 -0
  3. package/Component-89a3cf4c.d.ts +6 -0
  4. package/Component-bdb4c6b9.d.ts +12 -0
  5. package/Component-e81c389f.d.ts +5 -0
  6. package/Component-ebda875c.d.ts +12 -0
  7. package/Component.desktop-785df74d.d.ts +6 -0
  8. package/{Component.d.ts → Component.desktop.d.ts} +4 -5
  9. package/Component.desktop.js +47 -0
  10. package/Component.mobile-06ffd24b.d.ts +41 -0
  11. package/Component.mobile-d7e9f69d.d.ts +6 -0
  12. package/Component.mobile-ebda875c.d.ts +6 -0
  13. package/Component.mobile-f1f15074.d.ts +34 -0
  14. package/Component.mobile.d.ts +16 -4
  15. package/Component.mobile.js +6 -4
  16. package/Component.modal.mobile-5e1b8383.d.ts +60 -0
  17. package/Component.responsive-3109f463.d.ts +26 -0
  18. package/Component.responsive.d.ts +6 -6
  19. package/Component.responsive.js +4 -3
  20. package/Context-bdb4c6b9.d.ts +4 -0
  21. package/ResponsiveContext-baf4875b.d.ts +5 -0
  22. package/component-89a3cf4c.d.ts +44 -0
  23. package/consts-f777ba1a.d.ts +2 -0
  24. package/cssm/Component-5e1b8383.d.ts +72 -0
  25. package/cssm/Component-63dec22f.d.ts +167 -0
  26. package/cssm/Component-89a3cf4c.d.ts +6 -0
  27. package/cssm/Component-bdb4c6b9.d.ts +12 -0
  28. package/cssm/Component-e81c389f.d.ts +5 -0
  29. package/cssm/Component-ebda875c.d.ts +12 -0
  30. package/cssm/Component.desktop-785df74d.d.ts +6 -0
  31. package/{modern/Component.d.ts → cssm/Component.desktop.d.ts} +4 -5
  32. package/cssm/{Component.js → Component.desktop.js} +5 -4
  33. package/cssm/Component.mobile-06ffd24b.d.ts +41 -0
  34. package/cssm/Component.mobile-d7e9f69d.d.ts +6 -0
  35. package/cssm/Component.mobile-ebda875c.d.ts +6 -0
  36. package/cssm/Component.mobile-f1f15074.d.ts +34 -0
  37. package/cssm/Component.mobile.d.ts +16 -4
  38. package/cssm/Component.mobile.js +6 -4
  39. package/cssm/Component.modal.mobile-5e1b8383.d.ts +60 -0
  40. package/cssm/Component.responsive-3109f463.d.ts +26 -0
  41. package/cssm/Component.responsive.d.ts +6 -6
  42. package/cssm/Component.responsive.js +4 -3
  43. package/cssm/Context-bdb4c6b9.d.ts +4 -0
  44. package/cssm/ResponsiveContext-baf4875b.d.ts +5 -0
  45. package/cssm/component-89a3cf4c.d.ts +44 -0
  46. package/cssm/consts-f777ba1a.d.ts +2 -0
  47. package/cssm/desktop-63dec22f.d.ts +6 -0
  48. package/cssm/desktop.d.ts +2 -1
  49. package/cssm/desktop.js +3 -3
  50. package/cssm/field/Component.d.ts +3 -2
  51. package/cssm/hook-9ea9e32c.d.ts +75 -0
  52. package/cssm/index-136acbb1.d.ts +28 -0
  53. package/cssm/index-3109f463.d.ts +62 -0
  54. package/cssm/index-425c8522.d.ts +6 -0
  55. package/cssm/index-89a3cf4c.d.ts +3 -0
  56. package/cssm/index-bdb4c6b9.d.ts +2 -0
  57. package/cssm/index-c44170fe.d.ts +160 -0
  58. package/cssm/index-e81c389f.d.ts +3 -0
  59. package/cssm/index-ebda875c.d.ts +81 -0
  60. package/cssm/index-f12ee135.d.ts +3 -0
  61. package/cssm/index.d.ts +2 -4
  62. package/cssm/index.js +8 -8
  63. package/cssm/mobile-96988a65.d.ts +2 -0
  64. package/cssm/mobile.d.ts +1 -1
  65. package/cssm/mobile.js +2 -1
  66. package/cssm/option/Component.d.ts +5 -4
  67. package/cssm/option/Component.js +2 -2
  68. package/cssm/option/index.js +1 -1
  69. package/cssm/shared-4cd3936b.d.ts +93 -0
  70. package/cssm/shared.d.ts +2 -0
  71. package/cssm/shared.js +13 -0
  72. package/cssm/types-425c8522.d.ts +259 -0
  73. package/cssm/types-ebda875c.d.ts +113 -0
  74. package/cssm/types.d.ts +3 -0
  75. package/cssm/types.js +2 -0
  76. package/cssm/typings-5e1b8383.d.ts +4 -459
  77. package/cssm/typings-9211a437.d.ts +95 -0
  78. package/cssm/typings-bdb4c6b9.d.ts +52 -0
  79. package/cssm/utils/index.d.ts +1 -1
  80. package/cssm/utils-1574ad8b.d.ts +29 -0
  81. package/cssm/utils-49cc3c24.d.ts +8 -0
  82. package/cssm/utils-5e1b8383.d.ts +38 -0
  83. package/desktop-63dec22f.d.ts +6 -0
  84. package/desktop.d.ts +2 -1
  85. package/desktop.js +3 -3
  86. package/esm/Component-5e1b8383.d.ts +72 -0
  87. package/esm/Component-63dec22f.d.ts +167 -0
  88. package/esm/Component-89a3cf4c.d.ts +6 -0
  89. package/esm/Component-bdb4c6b9.d.ts +12 -0
  90. package/esm/Component-e81c389f.d.ts +5 -0
  91. package/esm/Component-ebda875c.d.ts +12 -0
  92. package/esm/Component.desktop-785df74d.d.ts +6 -0
  93. package/{cssm/Component.d.ts → esm/Component.desktop.d.ts} +4 -5
  94. package/esm/{Component.js → Component.desktop.js} +5 -4
  95. package/esm/Component.mobile-06ffd24b.d.ts +41 -0
  96. package/esm/Component.mobile-d7e9f69d.d.ts +6 -0
  97. package/esm/Component.mobile-ebda875c.d.ts +6 -0
  98. package/esm/Component.mobile-f1f15074.d.ts +34 -0
  99. package/esm/Component.mobile.d.ts +16 -4
  100. package/esm/Component.mobile.js +6 -4
  101. package/esm/Component.modal.mobile-5e1b8383.d.ts +60 -0
  102. package/esm/Component.responsive-3109f463.d.ts +26 -0
  103. package/esm/Component.responsive.d.ts +6 -6
  104. package/esm/Component.responsive.js +4 -3
  105. package/esm/Context-bdb4c6b9.d.ts +4 -0
  106. package/esm/ResponsiveContext-baf4875b.d.ts +5 -0
  107. package/esm/component-89a3cf4c.d.ts +44 -0
  108. package/esm/consts-f777ba1a.d.ts +2 -0
  109. package/esm/desktop-63dec22f.d.ts +6 -0
  110. package/esm/desktop.d.ts +2 -1
  111. package/esm/desktop.js +2 -2
  112. package/esm/field/Component.d.ts +3 -2
  113. package/esm/field/Component.js +1 -1
  114. package/esm/field/index.css +5 -5
  115. package/esm/hook-9ea9e32c.d.ts +75 -0
  116. package/esm/index-136acbb1.d.ts +28 -0
  117. package/esm/index-3109f463.d.ts +62 -0
  118. package/esm/index-425c8522.d.ts +6 -0
  119. package/esm/index-89a3cf4c.d.ts +3 -0
  120. package/esm/index-bdb4c6b9.d.ts +2 -0
  121. package/esm/index-c44170fe.d.ts +160 -0
  122. package/esm/index-e81c389f.d.ts +3 -0
  123. package/esm/index-ebda875c.d.ts +81 -0
  124. package/esm/index-f12ee135.d.ts +3 -0
  125. package/esm/index.css +5 -5
  126. package/esm/index.d.ts +2 -4
  127. package/esm/index.js +6 -5
  128. package/esm/mobile-96988a65.d.ts +2 -0
  129. package/esm/mobile.d.ts +1 -1
  130. package/esm/mobile.js +2 -1
  131. package/esm/option/Component.d.ts +5 -4
  132. package/esm/option/Component.js +2 -2
  133. package/esm/option/index.css +4 -4
  134. package/esm/option/index.js +1 -1
  135. package/esm/shared-4cd3936b.d.ts +93 -0
  136. package/esm/shared.d.ts +2 -0
  137. package/esm/shared.js +5 -0
  138. package/esm/types-425c8522.d.ts +259 -0
  139. package/esm/types-ebda875c.d.ts +113 -0
  140. package/esm/types.d.ts +3 -0
  141. package/esm/types.js +1 -0
  142. package/esm/typings-5e1b8383.d.ts +4 -459
  143. package/esm/typings-9211a437.d.ts +95 -0
  144. package/esm/typings-bdb4c6b9.d.ts +52 -0
  145. package/esm/utils/index.d.ts +1 -1
  146. package/esm/utils-1574ad8b.d.ts +29 -0
  147. package/esm/utils-49cc3c24.d.ts +8 -0
  148. package/esm/utils-5e1b8383.d.ts +38 -0
  149. package/field/Component.d.ts +3 -2
  150. package/field/Component.js +1 -1
  151. package/field/index.css +5 -5
  152. package/hook-9ea9e32c.d.ts +75 -0
  153. package/index-136acbb1.d.ts +28 -0
  154. package/index-3109f463.d.ts +62 -0
  155. package/index-425c8522.d.ts +6 -0
  156. package/index-89a3cf4c.d.ts +3 -0
  157. package/index-bdb4c6b9.d.ts +2 -0
  158. package/index-c44170fe.d.ts +160 -0
  159. package/index-e81c389f.d.ts +3 -0
  160. package/index-ebda875c.d.ts +81 -0
  161. package/index-f12ee135.d.ts +3 -0
  162. package/index.css +5 -5
  163. package/index.d.ts +2 -4
  164. package/index.js +6 -6
  165. package/mobile-96988a65.d.ts +2 -0
  166. package/mobile.d.ts +1 -1
  167. package/mobile.js +2 -1
  168. package/modern/Component-5e1b8383.d.ts +72 -0
  169. package/modern/Component-63dec22f.d.ts +167 -0
  170. package/modern/Component-89a3cf4c.d.ts +6 -0
  171. package/modern/Component-bdb4c6b9.d.ts +12 -0
  172. package/modern/Component-e81c389f.d.ts +5 -0
  173. package/modern/Component-ebda875c.d.ts +12 -0
  174. package/modern/Component.desktop-785df74d.d.ts +6 -0
  175. package/{esm/Component.d.ts → modern/Component.desktop.d.ts} +4 -5
  176. package/modern/{Component.js → Component.desktop.js} +5 -4
  177. package/modern/Component.mobile-06ffd24b.d.ts +41 -0
  178. package/modern/Component.mobile-d7e9f69d.d.ts +6 -0
  179. package/modern/Component.mobile-ebda875c.d.ts +6 -0
  180. package/modern/Component.mobile-f1f15074.d.ts +34 -0
  181. package/modern/Component.mobile.d.ts +16 -4
  182. package/modern/Component.mobile.js +6 -4
  183. package/modern/Component.modal.mobile-5e1b8383.d.ts +60 -0
  184. package/modern/Component.responsive-3109f463.d.ts +26 -0
  185. package/modern/Component.responsive.d.ts +6 -6
  186. package/modern/Component.responsive.js +4 -3
  187. package/modern/Context-bdb4c6b9.d.ts +4 -0
  188. package/modern/ResponsiveContext-baf4875b.d.ts +5 -0
  189. package/modern/component-89a3cf4c.d.ts +44 -0
  190. package/modern/consts-f777ba1a.d.ts +2 -0
  191. package/modern/desktop-63dec22f.d.ts +6 -0
  192. package/modern/desktop.d.ts +2 -1
  193. package/modern/desktop.js +2 -2
  194. package/modern/field/Component.d.ts +3 -2
  195. package/modern/field/Component.js +1 -1
  196. package/modern/field/index.css +5 -5
  197. package/modern/hook-9ea9e32c.d.ts +75 -0
  198. package/modern/index-136acbb1.d.ts +28 -0
  199. package/modern/index-3109f463.d.ts +62 -0
  200. package/modern/index-425c8522.d.ts +6 -0
  201. package/modern/index-89a3cf4c.d.ts +3 -0
  202. package/modern/index-bdb4c6b9.d.ts +2 -0
  203. package/modern/index-c44170fe.d.ts +160 -0
  204. package/modern/index-e81c389f.d.ts +3 -0
  205. package/modern/index-ebda875c.d.ts +81 -0
  206. package/modern/index-f12ee135.d.ts +3 -0
  207. package/modern/index.css +5 -5
  208. package/modern/index.d.ts +2 -4
  209. package/modern/index.js +6 -5
  210. package/modern/mobile-96988a65.d.ts +2 -0
  211. package/modern/mobile.d.ts +1 -1
  212. package/modern/mobile.js +2 -1
  213. package/modern/option/Component.d.ts +5 -4
  214. package/modern/option/Component.js +2 -2
  215. package/modern/option/index.css +4 -4
  216. package/modern/option/index.js +1 -1
  217. package/modern/shared-4cd3936b.d.ts +93 -0
  218. package/modern/shared.d.ts +2 -0
  219. package/modern/shared.js +5 -0
  220. package/modern/types-425c8522.d.ts +259 -0
  221. package/modern/types-ebda875c.d.ts +113 -0
  222. package/modern/types.d.ts +3 -0
  223. package/modern/types.js +1 -0
  224. package/modern/typings-5e1b8383.d.ts +4 -459
  225. package/modern/typings-9211a437.d.ts +95 -0
  226. package/modern/typings-bdb4c6b9.d.ts +52 -0
  227. package/modern/utils/index.d.ts +1 -1
  228. package/modern/utils-1574ad8b.d.ts +29 -0
  229. package/modern/utils-49cc3c24.d.ts +8 -0
  230. package/modern/utils-5e1b8383.d.ts +38 -0
  231. package/option/Component.d.ts +5 -4
  232. package/option/Component.js +3 -3
  233. package/option/index.css +4 -4
  234. package/option/index.js +1 -1
  235. package/package.json +27 -3
  236. package/shared-4cd3936b.d.ts +93 -0
  237. package/shared.d.ts +2 -0
  238. package/shared.js +13 -0
  239. package/src/Component.desktop.tsx +122 -0
  240. package/src/Component.mobile.tsx +83 -0
  241. package/src/Component.responsive.tsx +61 -0
  242. package/src/desktop.ts +1 -0
  243. package/src/field/Component.tsx +86 -0
  244. package/src/field/index.module.css +18 -0
  245. package/src/field/index.ts +1 -0
  246. package/src/index.module.css +22 -0
  247. package/src/index.ts +4 -0
  248. package/src/mobile.ts +1 -0
  249. package/src/option/Component.tsx +30 -0
  250. package/src/option/index.module.css +17 -0
  251. package/src/option/index.ts +1 -0
  252. package/src/shared.ts +2 -0
  253. package/src/types.ts +3 -0
  254. package/src/utils/index.ts +19 -0
  255. package/types-425c8522.d.ts +259 -0
  256. package/types-ebda875c.d.ts +113 -0
  257. package/types.d.ts +3 -0
  258. package/types.js +2 -0
  259. package/typings-5e1b8383.d.ts +4 -459
  260. package/typings-9211a437.d.ts +95 -0
  261. package/typings-bdb4c6b9.d.ts +52 -0
  262. package/utils/index.d.ts +1 -1
  263. package/utils-1574ad8b.d.ts +29 -0
  264. package/utils-49cc3c24.d.ts +8 -0
  265. package/utils-5e1b8383.d.ts +38 -0
  266. package/Component.js +0 -46
  267. package/cssm/responsive.d.ts +0 -2
  268. package/cssm/responsive.js +0 -27
  269. package/esm/responsive.d.ts +0 -2
  270. package/esm/responsive.js +0 -16
  271. package/modern/responsive.d.ts +0 -2
  272. package/modern/responsive.js +0 -15
  273. package/responsive.d.ts +0 -2
  274. package/responsive.js +0 -24
@@ -0,0 +1,3 @@
1
+ type PickerButtonSize = 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl';
2
+ type PickerButtonVariant = 'default' | 'compact';
3
+ export { PickerButtonSize, PickerButtonVariant };
package/cssm/types.js ADDED
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+
@@ -1,461 +1,6 @@
1
- /// <reference types="react" />
2
- /// <reference types="react-transition-group" />
3
- import React from "react";
4
- import { ChangeEvent, InputHTMLAttributes, MouseEvent, ReactNode, CSSProperties, MutableRefObject, HTMLAttributes, FC, RefObject, AriaAttributes, FocusEvent, ReactElement, RefAttributes, SVGProps } from "react";
5
- import { CSSTransitionProps } from "react-transition-group/CSSTransition";
6
- import { BasePlacement, VariationPlacement } from "@popperjs/core";
7
- type InputProps = Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "type" | "value" | "defaultValue" | "onChange" | "onClick" | "onMouseDown" | "enterKeyHint"> & {
8
- /**
9
- * Значение поля ввода
10
- */
11
- value?: string;
12
- /**
13
- * Начальное значение поля
14
- */
15
- defaultValue?: string;
16
- /**
17
- * Растягивает компонент на ширину контейнера
18
- */
19
- block?: boolean;
20
- /**
21
- * Крестик для очистки поля
22
- */
23
- clear?: boolean;
24
- /**
25
- * Размер компонента
26
- */
27
- size?: "s" | "m" | "l" | "xl";
28
- /**
29
- * Набор цветов для компонента
30
- */
31
- colors?: "default" | "inverted";
32
- /**
33
- * Отображение ошибки
34
- */
35
- error?: ReactNode | boolean;
36
- /**
37
- * Отображение иконки успеха
38
- */
39
- success?: boolean;
40
- /**
41
- * Текст подсказки
42
- */
43
- hint?: ReactNode;
44
- /**
45
- * Лейбл компонента
46
- */
47
- label?: React.ReactNode;
48
- /**
49
- * Вид лейбла внутри / снаружи
50
- */
51
- labelView?: "inner" | "outer";
52
- /**
53
- * Атрибут type
54
- */
55
- type?: "number" | "card" | "email" | "money" | "password" | "tel" | "text";
56
- /**
57
- * Ref для обертки input
58
- */
59
- wrapperRef?: React.Ref<HTMLDivElement>;
60
- /**
61
- * Слот слева
62
- */
63
- leftAddons?: React.ReactNode;
64
- /**
65
- * Слот справа
66
- */
67
- rightAddons?: React.ReactNode;
68
- /**
69
- * Слот под инпутом
70
- */
71
- bottomAddons?: React.ReactNode;
72
- /**
73
- * Дополнительный класс
74
- */
75
- className?: string;
76
- /**
77
- * Дополнительный класс для поля
78
- */
79
- fieldClassName?: string;
80
- /**
81
- * Дополнительный класс инпута
82
- */
83
- inputClassName?: string;
84
- /**
85
- * Дополнительный класс для лейбла
86
- */
87
- labelClassName?: string;
88
- /**
89
- * Дополнительный класс для аддонов
90
- */
91
- addonsClassName?: string;
92
- /**
93
- * Класс, который будет установлен при фокусе
94
- */
95
- focusedClassName?: string;
96
- /**
97
- * Класс, который будет установлен, если в поле есть значение
98
- */
99
- filledClassName?: string;
100
- /**
101
- * Обработчик поля ввода
102
- */
103
- onChange?: (event: ChangeEvent<HTMLInputElement>, payload: {
104
- value: string;
105
- }) => void;
106
- /**
107
- * Обработчик нажатия на кнопку очистки
108
- */
109
- onClear?: (event: MouseEvent<HTMLButtonElement>) => void;
110
- /**
111
- * Обработчик клика по полю
112
- */
113
- onClick?: (event: MouseEvent<HTMLDivElement>) => void;
114
- /**
115
- * Обработчик MouseDown по полю
116
- */
117
- onMouseDown?: (event: MouseEvent<HTMLDivElement>) => void;
118
- /**
119
- * Обработчик MouseUp по полю
120
- */
121
- onMouseUp?: (event: MouseEvent<HTMLDivElement>) => void;
122
- /**
123
- * Идентификатор для систем автоматизированного тестирования
124
- */
125
- dataTestId?: string;
126
- };
127
- declare const Input: React.ForwardRefExoticComponent<Omit<React.InputHTMLAttributes<HTMLInputElement>, "size" | "defaultValue" | "onChange" | "onClick" | "onMouseDown" | "type" | "value" | "enterKeyHint"> & {
128
- value?: string | undefined;
129
- defaultValue?: string | undefined;
130
- block?: boolean | undefined;
131
- clear?: boolean | undefined;
132
- size?: "s" | "m" | "l" | "xl" | undefined;
133
- colors?: "default" | "inverted" | undefined;
134
- error?: ReactNode | boolean;
135
- success?: boolean | undefined;
136
- hint?: ReactNode;
137
- label?: React.ReactNode;
138
- labelView?: "inner" | "outer" | undefined;
139
- type?: "number" | "text" | "tel" | "email" | "card" | "money" | "password" | undefined;
140
- wrapperRef?: React.Ref<HTMLDivElement> | undefined;
141
- leftAddons?: React.ReactNode;
142
- rightAddons?: React.ReactNode;
143
- bottomAddons?: React.ReactNode;
144
- className?: string | undefined;
145
- fieldClassName?: string | undefined;
146
- inputClassName?: string | undefined;
147
- labelClassName?: string | undefined;
148
- addonsClassName?: string | undefined;
149
- focusedClassName?: string | undefined;
150
- filledClassName?: string | undefined;
151
- onChange?: ((event: ChangeEvent<HTMLInputElement>, payload: {
152
- value: string;
153
- }) => void) | undefined;
154
- onClear?: ((event: MouseEvent<HTMLButtonElement>) => void) | undefined;
155
- onClick?: ((event: MouseEvent<HTMLDivElement>) => void) | undefined;
156
- onMouseDown?: ((event: MouseEvent<HTMLDivElement>) => void) | undefined;
157
- onMouseUp?: ((event: MouseEvent<HTMLDivElement>) => void) | undefined;
158
- dataTestId?: string | undefined;
159
- } & React.RefAttributes<HTMLInputElement>>;
160
- type RefElement = HTMLElement | null;
161
- type Position = BasePlacement | VariationPlacement;
162
- type PopoverProps = {
163
- /**
164
- * Управление состоянием поповера (открыт/закрыт)
165
- */
166
- open: boolean;
167
- /**
168
- * Элемент, относительного которого появляется поповер
169
- */
170
- anchorElement: RefElement;
171
- /**
172
- * Использовать ширину родительского элемента
173
- */
174
- useAnchorWidth?: boolean;
175
- /**
176
- * Позиционирование поповера
177
- */
178
- position?: Position;
179
- /**
180
- * Запрещает поповеру менять свою позицию.
181
- * Например, если места снизу недостаточно,то он все равно будет показан снизу
182
- */
183
- preventFlip?: boolean;
184
- /**
185
- * Запрещает поповеру менять свою позицию, если он не влезает в видимую область.
186
- */
187
- preventOverflow?: boolean;
188
- /**
189
- * Позволяет поповеру подствраивать свою высоту под границы экрана, если из-за величины контента он выходит за рамки видимой области экрана
190
- */
191
- availableHeight?: boolean;
192
- /**
193
- * Если `true`, будет отрисована стрелочка
194
- */
195
- withArrow?: boolean;
196
- /**
197
- * Смещение поповера.
198
- * Если позиционирование top, bottom, то [x, y].
199
- * Если позиционирование left, right то [y, x].
200
- */
201
- offset?: [
202
- number,
203
- number
204
- ];
205
- /**
206
- * Дополнительный класс для поповера
207
- */
208
- popperClassName?: string;
209
- /**
210
- * Дополнительный класс для стрелочки
211
- */
212
- arrowClassName?: string;
213
- /**
214
- * Функция, возвращающая контейнер, в который будет рендериться поповер
215
- */
216
- getPortalContainer?: () => HTMLElement;
217
- /**
218
- * CSSTransitionProps, прокидываются в компонент CSSTransitionProps.
219
- */
220
- transition?: CSSTransitionProps;
221
- /**
222
- * Выставляет кастомное свойство transition-duration
223
- */
224
- transitionDuration?: CSSProperties["transitionDuration"];
225
- /**
226
- * Рендерит компонент, обернутый в Transition
227
- */
228
- withTransition?: boolean;
229
- /**
230
- * Идентификатор для систем автоматизированного тестирования
231
- */
232
- dataTestId?: string;
233
- /**
234
- * Хранит функцию, с помощью которой можно обновить положение компонента
235
- */
236
- update?: MutableRefObject<() => void>;
237
- /**
238
- * Дополнительный класс
239
- */
240
- className?: string;
241
- /**
242
- * z-index компонента
243
- */
244
- zIndex?: number;
245
- /**
246
- * Если поповер не помещается в переданной позиции (position), он попробует открыться в другой позиции,
247
- * по очереди для каждой позиции из этого списка.
248
- * Если не передавать, то поповер открывается в противоположном направлении от переданного position.
249
- */
250
- fallbackPlacements?: Position[];
251
- /**
252
- * Контент
253
- */
254
- children?: ReactNode;
255
- };
256
- declare const Popover: React.ForwardRefExoticComponent<PopoverProps & React.RefAttributes<HTMLDivElement>>;
257
- type BackgroundColorType = "accent" | "info" | "attention-muted" | "positive-muted" | "negative-muted" | "primary" | "primary-inverted" | "secondary" | "secondary-inverted" | "tertiary" | "tertiary-inverted" | "quaternary" | "quaternary-inverted" | "specialbg-component" | "specialbg-component-inverted" | "specialbg-primary-grouped" | "specialbg-secondary-grouped" | "specialbg-tertiary-grouped" | "specialbg-secondary-transparent" | "specialbg-secondary-transparent-inverted" | "specialbg-tertiary-transparent" | "specialbg-tertiary-transparent-inverted";
258
- type GraphicColorType = "accent" | "link" | "attention" | "positive" | "negative" | "primary" | "primary-inverted" | "secondary" | "secondary-inverted" | "tertiary" | "tertiary-inverted" | "quaternary" | "quaternary-inverted" | "static-light" | "static-accent" | "static-dark";
259
- type IconColorType = Extract<GraphicColorType, "positive" | "attention" | "link" | "negative" | "tertiary" | "secondary" | "primary">;
260
- type BadgeProps = {
261
- /**
262
- * Дополнительный класс
263
- */
264
- className?: string;
265
- /**
266
- * Вид компонента
267
- */
268
- view: "icon" | "count";
269
- /**
270
- * Размер компонента (только для view=icon)
271
- * //deprecated(используйте height для view=count )
272
- */
273
- size?: "s" | "m" | "l" | "xl";
274
- /**
275
- * Видимость белой обводки вокруг иконки
276
- */
277
- visibleIconOutline?: boolean;
278
- /**
279
- * Видимость цветной обводки вокруг иконки (только для view=icon)
280
- */
281
- visibleColorOutline?: boolean;
282
- /**
283
- * Контент компонента
284
- */
285
- content?: React.ReactElement | number;
286
- /**
287
- * Высота компонента, min = 16; max = 48 (только для view=count)
288
- */
289
- height?: number;
290
- /**
291
- * Цветовое оформление бейджа при view='count'
292
- */
293
- color?: Extract<BackgroundColorType, "accent" | "primary" | "specialbg-secondary-transparent">;
294
- /**
295
- * Цветовое оформление бейджа при view='icon'
296
- */
297
- iconColor?: IconColorType;
298
- /**
299
- * Цвет подложки под иконкой
300
- */
301
- iconUnderlayColor?: Extract<GraphicColorType, "primary" | "static-light">;
302
- /**
303
- * Идентификатор для систем автоматизированного тестирования
304
- */
305
- dataTestId?: string;
306
- };
307
- // eslint-disable-next-line complexity
308
- declare const Badge: ({ className, size, view, visibleIconOutline, visibleColorOutline, content, height, iconColor, color, iconUnderlayColor, dataTestId }: BadgeProps) => JSX.Element;
309
- type FormControlProps = HTMLAttributes<HTMLDivElement> & {
310
- /**
311
- * Растягивает компонент на ширину контейнера
312
- */
313
- block?: boolean;
314
- /**
315
- * Размер компонента
316
- */
317
- size?: "s" | "m" | "l" | "xl";
318
- /**
319
- * Набор цветов для компонента
320
- */
321
- colors?: "default" | "inverted";
322
- /**
323
- * Заблокированное состояние
324
- */
325
- disabled?: boolean;
326
- /**
327
- * Cостояние только для чтения
328
- */
329
- readOnly?: boolean;
330
- /**
331
- * Заполненное состояние
332
- */
333
- filled?: boolean;
334
- /**
335
- * Выбранное (фокус) состояние
336
- */
337
- focused?: boolean;
338
- /**
339
- * Отображение ошибки
340
- */
341
- error?: ReactNode | boolean;
342
- /**
343
- * Текст подсказки
344
- */
345
- hint?: ReactNode;
346
- /**
347
- * Лейбл компонента
348
- */
349
- label?: ReactNode;
350
- /**
351
- * Вид лейбла внутри / снаружи
352
- */
353
- labelView?: "inner" | "outer";
354
- /**
355
- * Слот слева
356
- */
357
- leftAddons?: ReactNode;
358
- /**
359
- * Слот справа
360
- */
361
- rightAddons?: ReactNode;
362
- /**
363
- * Слот под полем
364
- */
365
- bottomAddons?: ReactNode;
366
- /**
367
- * Дополнительный класс
368
- */
369
- className?: string;
370
- /**
371
- * Дополнительный класс для поля
372
- */
373
- fieldClassName?: string;
374
- /**
375
- * Дополнительный класс для поля
376
- */
377
- inputWrapperClassName?: string;
378
- /**
379
- * Дополнительный класс для лейбла
380
- */
381
- labelClassName?: string;
382
- /**
383
- * Дополнительный класс для аддонов
384
- */
385
- addonsClassName?: string;
386
- /**
387
- * Идентификатор для систем автоматизированного тестирования
388
- */
389
- dataTestId?: string;
390
- /**
391
- * Компонент поля (инпут, textarea и пр.)
392
- */
393
- children?: ReactNode;
394
- };
395
- declare const FormControl: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
396
- block?: boolean | undefined;
397
- size?: "s" | "m" | "l" | "xl" | undefined;
398
- colors?: "default" | "inverted" | undefined;
399
- disabled?: boolean | undefined;
400
- readOnly?: boolean | undefined;
401
- filled?: boolean | undefined;
402
- focused?: boolean | undefined;
403
- error?: ReactNode | boolean;
404
- hint?: ReactNode;
405
- label?: ReactNode;
406
- labelView?: "inner" | "outer" | undefined;
407
- leftAddons?: ReactNode;
408
- rightAddons?: ReactNode;
409
- bottomAddons?: ReactNode;
410
- className?: string | undefined;
411
- fieldClassName?: string | undefined;
412
- inputWrapperClassName?: string | undefined;
413
- labelClassName?: string | undefined;
414
- addonsClassName?: string | undefined;
415
- dataTestId?: string | undefined;
416
- children?: ReactNode;
417
- } & React.RefAttributes<HTMLDivElement>>;
418
- type PortalProps = {
419
- /** Контент */
420
- children?: ReactNode;
421
- /**
422
- * Функция, возвращающая контейнер, в который будут рендериться дочерние элементы
423
- */
424
- getPortalContainer?: () => Element;
425
- /**
426
- * Немедленно отрендерить дочерние элементы (false - контент будет отрендерен на след. рендер).
427
- */
428
- immediateMount?: boolean;
429
- };
430
- declare const Portal: import("react").ForwardRefExoticComponent<PortalProps & import("react").RefAttributes<Element>>;
431
- /**
432
- * Набор констант для z-index соответствующих классов компонентов.
433
- * Значения выбраны по приоритету.
434
- */
435
- declare const stackingOrder: {
436
- FOCUSED: number;
437
- DEFAULT: number;
438
- POPOVER: number;
439
- MODAL: number;
440
- TOAST: number;
441
- };
442
- declare const StackingContext: import("react").Context<number>;
443
- type StackProps = {
444
- /**
445
- * Render prop, в который передается функция.
446
- * Функция принимает аргумент со значением z-index из текущего контекста.
447
- */
448
- children: (value: number) => ReactNode;
449
- /**
450
- * Исходное значение для z-index.
451
- * @default 5
452
- */
453
- value?: number;
454
- };
455
- declare const Stack: FC<StackProps>;
456
- declare const PORTAL_CONTAINER_ATTRIBUTE = "alfa-portal-container";
457
- declare const getDefaultPortalContainer: () => Element;
458
- declare function setRef<T>(ref: RefObject<T> | ((instance: T | null) => void) | null | undefined, value: T | null): void;
1
+ import { AriaAttributes, FC, FocusEvent, MouseEvent, ReactElement, ReactNode, RefAttributes, SVGProps } from 'react';
2
+ import { InputProps } from "./index-c44170fe";
3
+ import { PopoverProps } from "./index-ebda875c";
459
4
  type AnyObject = Record<string, any>;
460
5
  type OptionShape = {
461
6
  /**
@@ -1002,4 +547,4 @@ type CheckmarkProps = {
1002
547
  */
1003
548
  icon?: FC<SVGProps<SVGSVGElement>>;
1004
549
  };
1005
- export { InputProps, Input, Position, PopoverProps, Popover, IconColorType, BadgeProps, Badge, FormControlProps, FormControl, PortalProps, Portal, stackingOrder, StackingContext, StackProps, Stack, PORTAL_CONTAINER_ATTRIBUTE, getDefaultPortalContainer, setRef, AnyObject, OptionShape, GroupShape, BaseSelectChangePayload, BaseSelectProps, FieldProps, ArrowProps, OptionsListProps, OptgroupProps, OptionProps, CheckmarkProps };
550
+ export { AnyObject, OptionShape, GroupShape, BaseSelectChangePayload, BaseSelectProps, FieldProps, ArrowProps, OptionsListProps, OptgroupProps, OptionProps, CheckmarkProps };
@@ -0,0 +1,95 @@
1
+ import { AnchorHTMLAttributes, ButtonHTMLAttributes, ElementType, ReactNode } from 'react';
2
+ type StyleColors = {
3
+ default: {
4
+ [key: string]: string;
5
+ };
6
+ inverted: {
7
+ [key: string]: string;
8
+ };
9
+ };
10
+ type ComponentProps = {
11
+ /**
12
+ * Тип кнопки
13
+ * @default secondary
14
+ */
15
+ view?: 'accent' | 'primary' | 'secondary' | 'tertiary' | 'outlined' | 'filled' | 'transparent' | 'link' | 'ghost';
16
+ /**
17
+ * Слот слева
18
+ */
19
+ leftAddons?: ReactNode;
20
+ /**
21
+ * Слот справа
22
+ */
23
+ rightAddons?: ReactNode;
24
+ /**
25
+ * Размер компонента
26
+ * @default m
27
+ */
28
+ size?: 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl';
29
+ /**
30
+ * Растягивает компонент на ширину контейнера
31
+ * @default false
32
+ */
33
+ block?: boolean;
34
+ /**
35
+ * Дополнительный класс
36
+ */
37
+ className?: string;
38
+ /**
39
+ * Дополнительный класс для спиннера
40
+ */
41
+ spinnerClassName?: string;
42
+ /**
43
+ * Выводит ссылку в виде кнопки
44
+ */
45
+ href?: string;
46
+ /**
47
+ * Позволяет использовать кастомный компонент для кнопки (например Link из роутера)
48
+ */
49
+ Component?: ElementType;
50
+ /**
51
+ * Идентификатор для систем автоматизированного тестирования
52
+ */
53
+ dataTestId?: string;
54
+ /**
55
+ * Показать лоадер
56
+ * @default false
57
+ */
58
+ loading?: boolean;
59
+ /**
60
+ * Не переносить текст кнопки на новую строку
61
+ * @default false
62
+ */
63
+ nowrap?: boolean;
64
+ /**
65
+ * Набор цветов для компонента
66
+ */
67
+ colors?: 'default' | 'inverted';
68
+ /**
69
+ * Дочерние элементы.
70
+ */
71
+ children?: ReactNode;
72
+ /**
73
+ * Основные стили компонента.
74
+ */
75
+ styles: {
76
+ [key: string]: string;
77
+ };
78
+ /**
79
+ * Стили компонента для default и inverted режима.
80
+ */
81
+ colorStylesMap: StyleColors;
82
+ };
83
+ type AnchorBaseButtonProps = ComponentProps & AnchorHTMLAttributes<HTMLAnchorElement>;
84
+ type NativeBaseButtonProps = ComponentProps & ButtonHTMLAttributes<HTMLButtonElement>;
85
+ type BaseButtonProps = Partial<AnchorBaseButtonProps | NativeBaseButtonProps>;
86
+ type AnchorButtonProps = Omit<BaseButtonProps, 'styles' | 'colorStylesMap'> & AnchorHTMLAttributes<HTMLAnchorElement>;
87
+ type NativeButtonProps = Omit<BaseButtonProps, 'styles' | 'colorStylesMap'> & ButtonHTMLAttributes<HTMLButtonElement>;
88
+ type ButtonProps = Partial<AnchorButtonProps | NativeButtonProps> & {
89
+ /**
90
+ * Контрольная точка, с нее начинается desktop версия
91
+ * @default 1024
92
+ */
93
+ breakpoint?: number;
94
+ };
95
+ export { StyleColors, ComponentProps, AnchorBaseButtonProps, NativeBaseButtonProps, BaseButtonProps, AnchorButtonProps, NativeButtonProps, ButtonProps };
@@ -0,0 +1,52 @@
1
+ import { ReactNode } from 'react';
2
+ import { BaseModalProps } from "./index-bdb4c6b9";
3
+ type ModalDesktopProps = BaseModalProps & {
4
+ /**
5
+ * Ширина модального окна
6
+ * @default "m"
7
+ */
8
+ size?: 's' | 'm' | 'l' | 'xl' | 'fullscreen';
9
+ /**
10
+ * Растягивает модальное окно на весь экран
11
+ * @deprecated Используйте размер fullscreen
12
+ */
13
+ fullscreen?: boolean;
14
+ /**
15
+ * Фиксирует позицию модального окна после открытия,
16
+ * предотвращая скачки, если контент внутри будет меняться
17
+ */
18
+ fixedPosition?: boolean;
19
+ /**
20
+ * Управление наличием закрывающего крестика
21
+ * @default false
22
+ */
23
+ hasCloser?: boolean;
24
+ };
25
+ type ModalMobileProps = Omit<ModalDesktopProps, 'size' | 'fixedPosition' | 'fullscreen'>;
26
+ type ModalResponsiveProps = ModalDesktopProps & {
27
+ /**
28
+ * Контрольная точка, с нее начинается desktop версия
29
+ * @default 1024
30
+ */
31
+ breakpoint?: number;
32
+ };
33
+ type View = 'desktop' | 'mobile';
34
+ type TResponsiveModalContext = {
35
+ view: View;
36
+ size: NonNullable<ModalDesktopProps['size']>;
37
+ };
38
+ type ContentProps = {
39
+ /**
40
+ * Контент
41
+ */
42
+ children?: ReactNode;
43
+ /**
44
+ * Дополнительный класс
45
+ */
46
+ className?: string;
47
+ /**
48
+ * Растягивает контент на всю высоту
49
+ */
50
+ flex?: boolean;
51
+ };
52
+ export { ModalDesktopProps, ModalMobileProps, ModalResponsiveProps, View, TResponsiveModalContext, ContentProps };
@@ -1,4 +1,4 @@
1
1
  import { FC, SVGProps } from 'react';
2
- import { PickerButtonSize, PickerButtonVariant } from "../index";
2
+ import { PickerButtonSize, PickerButtonVariant } from "../types";
3
3
  declare const getIcon: (variant: PickerButtonVariant, size: PickerButtonSize) => FC<SVGProps<SVGSVGElement>>;
4
4
  export { getIcon };
@@ -0,0 +1,29 @@
1
+ type SavedStyle = {
2
+ value: string;
3
+ key: string;
4
+ el: HTMLElement;
5
+ };
6
+ type RestoreStyle = {
7
+ container: HTMLElement;
8
+ modals: number;
9
+ styles: SavedStyle[];
10
+ };
11
+ declare class ModalStore {
12
+ private readonly restoreStyles;
13
+ constructor();
14
+ getRestoreStyles: () => RestoreStyle[];
15
+ }
16
+ declare const getModalStore: () => ModalStore;
17
+ declare class GlobalStore {
18
+ private readonly modalStore;
19
+ constructor();
20
+ getModalStore: () => ModalStore;
21
+ }
22
+ declare function isScrolledToTop(target: HTMLElement): boolean;
23
+ declare function isScrolledToBottom(target: HTMLElement): boolean;
24
+ declare function hasScrollbar(target: HTMLElement): boolean;
25
+ declare const getScrollbarSize: () => number;
26
+ declare const restoreContainerStyles: (container: HTMLElement) => void;
27
+ declare const handleContainer: (container?: HTMLElement) => void;
28
+ export type { SavedStyle };
29
+ export { getModalStore, GlobalStore, isScrolledToTop, isScrolledToBottom, hasScrollbar, getScrollbarSize, restoreContainerStyles, handleContainer };
@@ -0,0 +1,8 @@
1
+ declare const TIMEOUT = 500;
2
+ declare const SWIPE_VELOCITY = 0.4;
3
+ declare const MARKER_HEIGHT = 24;
4
+ declare const CLOSE_OFFSET = 0.2;
5
+ declare const SCROLL_OFFSET = 1;
6
+ declare const HEADER_OFFSET = 24;
7
+ declare const convertPercentToNumber: (value: string | number, fullHeight: number, headerOffset?: number) => number;
8
+ export { TIMEOUT, SWIPE_VELOCITY, MARKER_HEIGHT, CLOSE_OFFSET, SCROLL_OFFSET, HEADER_OFFSET, convertPercentToNumber };