@alfalab/core-components-picker-button 11.2.0 → 11.3.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 (121) hide show
  1. package/Component-0816e61d.d.ts +5 -0
  2. package/Component-72dda473.d.ts +53 -0
  3. package/Component-c44170fe.d.ts +281 -0
  4. package/Component.desktop-785df74d.d.ts +1 -1
  5. package/Component.desktop.d.ts +1 -1
  6. package/Component.desktop.js +3 -2
  7. package/Component.mobile-d7e9f69d.d.ts +1 -1
  8. package/Component.mobile.d.ts +3 -3
  9. package/Component.responsive.d.ts +5 -7
  10. package/Component.responsive.js +1 -0
  11. package/consts-f777ba1a.d.ts +2 -0
  12. package/cssm/Component-0816e61d.d.ts +5 -0
  13. package/cssm/Component-72dda473.d.ts +53 -0
  14. package/cssm/Component-c44170fe.d.ts +281 -0
  15. package/cssm/Component.desktop-785df74d.d.ts +1 -1
  16. package/cssm/Component.desktop.d.ts +1 -1
  17. package/cssm/Component.desktop.js +2 -1
  18. package/cssm/Component.mobile-d7e9f69d.d.ts +1 -1
  19. package/cssm/Component.mobile.d.ts +3 -3
  20. package/cssm/Component.responsive.d.ts +5 -7
  21. package/cssm/Component.responsive.js +1 -0
  22. package/cssm/consts-f777ba1a.d.ts +2 -0
  23. package/cssm/desktop/index.js +1 -0
  24. package/cssm/field/Component.d.ts +3 -837
  25. package/cssm/field/index.module.css +2 -2
  26. package/cssm/{index-5cb54b98.d.ts → index-081223cb.d.ts} +8 -2
  27. package/cssm/index-785df74d.d.ts +2 -0
  28. package/{esm/Component.responsive-3109f463.d.ts → cssm/index-c44170fe.d.ts} +2 -10
  29. package/cssm/index-d7e9f69d.d.ts +2 -0
  30. package/cssm/index-ebda875c.d.ts +80 -0
  31. package/cssm/index.js +1 -0
  32. package/cssm/types-1b036d4b.d.ts +13 -0
  33. package/cssm/types-1c79e231.d.ts +113 -0
  34. package/cssm/typings-0816e61d.d.ts +1320 -0
  35. package/cssm/useSkeleton-1b036d4b.d.ts +40 -0
  36. package/cssm/utils-d2597f31.d.ts +41 -0
  37. package/desktop/index.js +1 -0
  38. package/esm/Component-0816e61d.d.ts +5 -0
  39. package/esm/Component-72dda473.d.ts +53 -0
  40. package/esm/Component-c44170fe.d.ts +281 -0
  41. package/esm/Component.desktop-785df74d.d.ts +1 -1
  42. package/esm/Component.desktop.d.ts +1 -1
  43. package/esm/Component.desktop.js +3 -2
  44. package/esm/Component.mobile-d7e9f69d.d.ts +1 -1
  45. package/esm/Component.mobile.d.ts +3 -3
  46. package/esm/Component.responsive.d.ts +5 -7
  47. package/esm/Component.responsive.js +1 -0
  48. package/esm/consts-f777ba1a.d.ts +2 -0
  49. package/esm/desktop/index.js +1 -0
  50. package/esm/field/Component.d.ts +3 -837
  51. package/esm/field/Component.js +1 -1
  52. package/esm/field/index.css +8 -8
  53. package/esm/{index-5cb54b98.d.ts → index-081223cb.d.ts} +8 -2
  54. package/esm/index-785df74d.d.ts +2 -0
  55. package/{Component.responsive-3109f463.d.ts → esm/index-c44170fe.d.ts} +2 -10
  56. package/esm/index-d7e9f69d.d.ts +2 -0
  57. package/esm/index-ebda875c.d.ts +80 -0
  58. package/esm/index.css +5 -5
  59. package/esm/index.js +1 -0
  60. package/esm/option/Component.js +1 -1
  61. package/esm/option/index.css +4 -4
  62. package/esm/types-1b036d4b.d.ts +13 -0
  63. package/esm/types-1c79e231.d.ts +113 -0
  64. package/esm/typings-0816e61d.d.ts +1320 -0
  65. package/esm/useSkeleton-1b036d4b.d.ts +40 -0
  66. package/esm/utils-d2597f31.d.ts +41 -0
  67. package/field/Component.d.ts +3 -837
  68. package/field/Component.js +1 -1
  69. package/field/index.css +8 -8
  70. package/{index-5cb54b98.d.ts → index-081223cb.d.ts} +8 -2
  71. package/index-785df74d.d.ts +2 -0
  72. package/{modern/Component.responsive-3109f463.d.ts → index-c44170fe.d.ts} +2 -10
  73. package/index-d7e9f69d.d.ts +2 -0
  74. package/index-ebda875c.d.ts +80 -0
  75. package/index.css +5 -5
  76. package/index.js +1 -0
  77. package/modern/Component-0816e61d.d.ts +5 -0
  78. package/modern/Component-72dda473.d.ts +53 -0
  79. package/modern/Component-c44170fe.d.ts +281 -0
  80. package/modern/Component.desktop-785df74d.d.ts +1 -1
  81. package/modern/Component.desktop.d.ts +1 -1
  82. package/modern/Component.desktop.js +3 -2
  83. package/modern/Component.mobile-d7e9f69d.d.ts +1 -1
  84. package/modern/Component.mobile.d.ts +3 -3
  85. package/modern/Component.responsive.d.ts +5 -7
  86. package/modern/Component.responsive.js +1 -0
  87. package/modern/consts-f777ba1a.d.ts +2 -0
  88. package/modern/desktop/index.js +1 -0
  89. package/modern/field/Component.d.ts +3 -837
  90. package/modern/field/Component.js +1 -1
  91. package/modern/field/index.css +8 -8
  92. package/modern/{index-5cb54b98.d.ts → index-081223cb.d.ts} +8 -2
  93. package/modern/index-785df74d.d.ts +2 -0
  94. package/{cssm/Component.responsive-3109f463.d.ts → modern/index-c44170fe.d.ts} +2 -10
  95. package/modern/index-d7e9f69d.d.ts +2 -0
  96. package/modern/index-ebda875c.d.ts +80 -0
  97. package/modern/index.css +5 -5
  98. package/modern/index.js +1 -0
  99. package/modern/option/Component.js +1 -1
  100. package/modern/option/index.css +4 -4
  101. package/modern/types-1b036d4b.d.ts +13 -0
  102. package/modern/types-1c79e231.d.ts +113 -0
  103. package/modern/typings-0816e61d.d.ts +1320 -0
  104. package/modern/useSkeleton-1b036d4b.d.ts +40 -0
  105. package/modern/utils-d2597f31.d.ts +41 -0
  106. package/option/Component.js +1 -1
  107. package/option/index.css +4 -4
  108. package/package.json +4 -3
  109. package/src/Component.desktop.tsx +3 -0
  110. package/src/Component.mobile.tsx +3 -1
  111. package/src/Component.responsive.tsx +6 -6
  112. package/src/field/index.module.css +1 -1
  113. package/types-1b036d4b.d.ts +13 -0
  114. package/types-1c79e231.d.ts +113 -0
  115. package/typings-0816e61d.d.ts +1320 -0
  116. package/useSkeleton-1b036d4b.d.ts +40 -0
  117. package/utils-d2597f31.d.ts +41 -0
  118. /package/{Component-5cb54b98.d.ts → Component-081223cb.d.ts} +0 -0
  119. /package/cssm/{Component-5cb54b98.d.ts → Component-081223cb.d.ts} +0 -0
  120. /package/esm/{Component-5cb54b98.d.ts → Component-081223cb.d.ts} +0 -0
  121. /package/modern/{Component-5cb54b98.d.ts → Component-081223cb.d.ts} +0 -0
@@ -0,0 +1,1320 @@
1
+ /// <reference types="react-transition-group" />
2
+ /// <reference types="react" />
3
+ import React from "react";
4
+ import { HTMLAttributes, ReactElement, ReactNode, RefObject, FC, KeyboardEvent, MouseEvent, MutableRefObject, Ref, AriaAttributes, FocusEvent, RefAttributes, SVGProps } from "react";
5
+ import { HandledEvents } from "react-swipeable/es/types";
6
+ import { TransitionProps } from "react-transition-group/Transition";
7
+ import { CSSTransitionClassNames } from "react-transition-group/CSSTransition";
8
+ import { NavigationBarProps } from "./types-1c79e231";
9
+ import { BackgroundColorType } from "./index-72dda473";
10
+ import { SwipeableHandlers } from "react-swipeable";
11
+ import { FormControlProps } from "./index-c44170fe";
12
+ import { PopoverProps } from "@alfalab/core-components-popover";
13
+ import { UseSelectWithApplyProps } from "./field/Component";
14
+ type BackdropProps = Partial<TransitionProps> & {
15
+ /**
16
+ * Прозрачный бэкдроп
17
+ */
18
+ invisible?: boolean;
19
+ /**
20
+ * Управляет видимостью компонента
21
+ */
22
+ open: boolean;
23
+ /**
24
+ * Обработчик клика по бэкдропу
25
+ */
26
+ onClose?: (event: MouseEvent<HTMLElement>) => void;
27
+ /**
28
+ * Дополнительный класс
29
+ */
30
+ className?: string;
31
+ /**
32
+ * Классы анимации
33
+ *
34
+ * http://reactcommunity.org/react-transition-group/css-transition#CSSTransition-prop-classNames
35
+ */
36
+ transitionClassNames?: string | CSSTransitionClassNames;
37
+ /**
38
+ * Идентификатор для систем автоматизированного тестирования
39
+ */
40
+ dataTestId?: string;
41
+ /**
42
+ * Дочерние элементы.
43
+ */
44
+ children?: ReactNode;
45
+ };
46
+ type PortalProps = {
47
+ /** Контент */
48
+ children?: ReactNode;
49
+ /**
50
+ * Функция, возвращающая контейнер, в который будут рендериться дочерние элементы
51
+ */
52
+ getPortalContainer?: () => Element;
53
+ /**
54
+ * Немедленно отрендерить дочерние элементы (false - контент будет отрендерен на след. рендер).
55
+ */
56
+ immediateMount?: boolean;
57
+ };
58
+ type BaseModalProps = {
59
+ /**
60
+ * Контент
61
+ */
62
+ children?: ReactNode;
63
+ /**
64
+ * Компонент бэкдропа
65
+ */
66
+ Backdrop?: FC<BackdropProps>;
67
+ /**
68
+ * Свойства для Бэкдропа
69
+ */
70
+ backdropProps?: Partial<BackdropProps> & Record<string, unknown>;
71
+ /**
72
+ * Нода, компонент или функция возвращающая их
73
+ *
74
+ * Контейнер к которому будут добавляться порталы
75
+ */
76
+ container?: PortalProps["getPortalContainer"];
77
+ /**
78
+ * Отключает автоматический перевод фокуса на модалку при открытии
79
+ * @default false
80
+ */
81
+ disableAutoFocus?: boolean;
82
+ /**
83
+ * Отключает ловушку фокуса
84
+ * @default false
85
+ */
86
+ disableFocusLock?: boolean;
87
+ /**
88
+ * Отключает восстановление фокуса на предыдущем элементе после закрытия модалки
89
+ * @default false
90
+ */
91
+ disableRestoreFocus?: boolean;
92
+ /**
93
+ * Отключает вызов `callback` при нажатии Escape
94
+ * @default false
95
+ */
96
+ disableEscapeKeyDown?: boolean;
97
+ /**
98
+ * Отключает вызов `callback` при клике на бэкдроп
99
+ * @default false
100
+ */
101
+ disableBackdropClick?: boolean;
102
+ /**
103
+ * Отключает блокировку скролла при открытии модального окна
104
+ * @default false
105
+ */
106
+ disableBlockingScroll?: boolean;
107
+ /**
108
+ * Содержимое модалки всегда в DOM
109
+ * @default false
110
+ */
111
+ keepMounted?: boolean;
112
+ /**
113
+ * Управление видимостью модалки
114
+ */
115
+ open: boolean;
116
+ /**
117
+ * Дополнительный класс
118
+ */
119
+ className?: string;
120
+ /**
121
+ * Дополнительный класс
122
+ */
123
+ contentClassName?: string;
124
+ /**
125
+ * Дополнительные пропсы на dialog wrapper
126
+ */
127
+ wrapperProps?: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
128
+ /**
129
+ * Дополнительные пропсы на обертку контента
130
+ */
131
+ contentProps?: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
132
+ /**
133
+ * Дополнительные пропсы на компонентную обертку контента
134
+ */
135
+ componentDivProps?: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
136
+ /**
137
+ * Дополнительный класс для обертки (Modal)
138
+ */
139
+ wrapperClassName?: string;
140
+ /**
141
+ * Обработчик скролла контента
142
+ */
143
+ scrollHandler?: "wrapper" | "content" | MutableRefObject<HTMLDivElement | null>;
144
+ /**
145
+ * Пропсы для анимации (CSSTransition)
146
+ */
147
+ transitionProps?: Partial<TransitionProps>;
148
+ /**
149
+ * Рендерить ли в контейнер через портал.
150
+ * @default true
151
+ */
152
+ usePortal?: boolean;
153
+ /**
154
+ * Обработчик события нажатия на бэкдроп
155
+ */
156
+ onBackdropClick?: (event: MouseEvent) => void;
157
+ /**
158
+ * Обработчик события нажатия на Escape
159
+ *
160
+ * Если `disableEscapeKeyDown` - false и модальное окно в фокусе
161
+ */
162
+ onEscapeKeyDown?: (event: KeyboardEvent) => void;
163
+ /**
164
+ * Обработчик закрытия
165
+ */
166
+ onClose?: (event: MouseEvent<HTMLElement> | KeyboardEvent<HTMLElement>, reason?: "backdropClick" | "escapeKeyDown" | "closerClick") => void;
167
+ /**
168
+ * Обработчик события onEntered компонента Transition
169
+ */
170
+ onMount?: () => void;
171
+ /**
172
+ * Обработчик события onExited компонента Transition
173
+ */
174
+ onUnmount?: () => void;
175
+ /**
176
+ * Идентификатор для систем автоматизированного тестирования
177
+ */
178
+ dataTestId?: string;
179
+ /**
180
+ * z-index компонента
181
+ */
182
+ zIndex?: number;
183
+ /**
184
+ * Реф, который должен быть установлен компонентной области
185
+ */
186
+ componentRef?: MutableRefObject<HTMLDivElement | null>;
187
+ };
188
+ type BaseModalContext = {
189
+ parentRef: React.RefObject<HTMLDivElement>;
190
+ componentRef: React.RefObject<HTMLDivElement>;
191
+ hasFooter?: boolean;
192
+ hasHeader?: boolean;
193
+ hasScroll?: boolean;
194
+ headerHighlighted?: boolean;
195
+ footerHighlighted?: boolean;
196
+ headerOffset?: number;
197
+ setHeaderOffset: (offset: number) => void;
198
+ contentRef: Ref<HTMLElement>;
199
+ setHasHeader: (exists: boolean) => void;
200
+ setHasFooter: (exists: boolean) => void;
201
+ onClose: Required<BaseModalProps>["onClose"];
202
+ };
203
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
204
+ declare const BaseModalContext: React.Context<BaseModalContext>;
205
+ type BottomSheetTitleAlign = "center" | "left";
206
+ type BottomSheetProps = {
207
+ /**
208
+ * Контент
209
+ */
210
+ children?: ReactNode;
211
+ /**
212
+ * Управление видимостью
213
+ */
214
+ open: boolean;
215
+ /**
216
+ * Заголовок
217
+ */
218
+ title?: ReactNode;
219
+ /**
220
+ * Размер заголовка
221
+ */
222
+ titleSize?: NavigationBarProps["titleSize"];
223
+ /**
224
+ * Подзаголовок.
225
+ */
226
+ subtitle?: NavigationBarProps["subtitle"];
227
+ /**
228
+ * Кнопка действия (обычно, это кнопка закрытия)
229
+ */
230
+ actionButton?: ReactNode;
231
+ /**
232
+ * Нода, компонент или функция возвращающая их
233
+ *
234
+ * Контейнер к которому будут добавляться порталы
235
+ */
236
+ container?: BaseModalProps["container"];
237
+ /**
238
+ * Рендерить ли в контейнер через портал.
239
+ */
240
+ usePortal?: BaseModalProps["usePortal"];
241
+ /**
242
+ * Дополнительный класс
243
+ */
244
+ className?: string;
245
+ /**
246
+ * Дополнительный класс
247
+ */
248
+ contentClassName?: string;
249
+ /**
250
+ * Дополнительные пропсы на контейнер.
251
+ */
252
+ containerProps?: HTMLAttributes<HTMLDivElement>;
253
+ /**
254
+ * Дополнительный класс
255
+ */
256
+ containerClassName?: string;
257
+ /**
258
+ * Цвет фона
259
+ */
260
+ backgroundColor?: Extract<BackgroundColorType, "primary" | "secondary">;
261
+ /**
262
+ * Дополнительный класс шапки
263
+ */
264
+ headerClassName?: string;
265
+ /**
266
+ * Дополнительный класс футера
267
+ */
268
+ footerClassName?: string;
269
+ /**
270
+ * Дополнительный класс для аддонов
271
+ */
272
+ addonClassName?: string;
273
+ /**
274
+ * Дополнительный класс для компонента крестика
275
+ */
276
+ closerClassName?: string;
277
+ /**
278
+ * Дополнительный класс для компонента стрелки назад
279
+ */
280
+ backerClassName?: string;
281
+ /**
282
+ * Дополнительный класс для компонента модального окна
283
+ */
284
+ modalClassName?: string;
285
+ /**
286
+ * Дополнительный класс для обертки модального окна
287
+ */
288
+ modalWrapperClassName?: string;
289
+ /**
290
+ * Дополнительный класс для маркера
291
+ */
292
+ swipeableMarkerClassName?: string;
293
+ /**
294
+ * Кастомный маркер
295
+ */
296
+ swipeableMarker?: ReactElement;
297
+ /**
298
+ * TransitionProps, прокидываются в компонент CSSTransitionProps.
299
+ */
300
+ transitionProps?: Partial<TransitionProps>;
301
+ /**
302
+ * Идентификатор для систем автоматизированного тестирования
303
+ */
304
+ dataTestId?: string;
305
+ /**
306
+ * z-index компонента
307
+ */
308
+ zIndex?: number;
309
+ /**
310
+ * Будет ли свайпаться шторка
311
+ * @default true
312
+ */
313
+ swipeable?: boolean;
314
+ /**
315
+ * Будет ли свайпаться контент
316
+ */
317
+ swipeableContent?: boolean;
318
+ /**
319
+ * Порог свайпа
320
+ */
321
+ swipeThreshold?: number;
322
+ /**
323
+ * Слот слева
324
+ */
325
+ leftAddons?: ReactNode;
326
+ /**
327
+ * Слот справа
328
+ */
329
+ rightAddons?: ReactNode;
330
+ /**
331
+ * Слот снизу
332
+ */
333
+ bottomAddons?: ReactNode;
334
+ /**
335
+ * Наличие компонента крестика
336
+ */
337
+ hasCloser?: boolean;
338
+ /**
339
+ * Наличие компонента стрелки назад
340
+ */
341
+ hasBacker?: boolean;
342
+ /**
343
+ * Выравнивание заголовка
344
+ */
345
+ titleAlign?: BottomSheetTitleAlign;
346
+ /**
347
+ * Фиксирует шапку
348
+ */
349
+ stickyHeader?: boolean;
350
+ /**
351
+ * Фиксирует футер
352
+ */
353
+ stickyFooter?: boolean;
354
+ /**
355
+ * Высота шторки
356
+ */
357
+ initialHeight?: "default" | "full";
358
+ /**
359
+ * Будет ли виден оверлэй
360
+ */
361
+ hideOverlay?: boolean;
362
+ /**
363
+ * Будет ли видна шапка
364
+ */
365
+ hideHeader?: boolean;
366
+ /**
367
+ * Будет ли обрезан заголовок
368
+ */
369
+ trimTitle?: boolean;
370
+ /**
371
+ * Запретить закрытие шторки кликом на оверлэй
372
+ */
373
+ disableOverlayClick?: boolean;
374
+ /**
375
+ * Отключает блокировку скролла при открытии модального окна
376
+ */
377
+ disableBlockingScroll?: boolean;
378
+ /**
379
+ * Отключает ловушку фокуса
380
+ */
381
+ disableFocusLock?: boolean;
382
+ /**
383
+ * @deprecated данный проп больше не используется, временно оставлен для обратной совместимости
384
+ * Не анимировать шторку при изменении размера вьюпорта
385
+ */
386
+ ignoreScreenChange?: boolean;
387
+ /**
388
+ * Свойства для Бэкдропа
389
+ */
390
+ backdropProps?: BaseModalProps["backdropProps"];
391
+ /**
392
+ * Реф на контейнер, в котором происходит скролл
393
+ */
394
+ scrollableContainerRef?: RefObject<HTMLElement>;
395
+ /**
396
+ * Реф для управления компонентом.
397
+ */
398
+ bottomSheetInstanceRef?: RefObject<{
399
+ scrollToArea: (idx: number) => void;
400
+ }>;
401
+ /**
402
+ * Реф на контейнер, в котором находится шторка
403
+ */
404
+ sheetContainerRef?: RefObject<HTMLElement>;
405
+ /**
406
+ * Магнитные области видимой высоты шторки.
407
+ * Можно использовать значения в пикселях - 10(число), либо в процентах - 10%(строка).
408
+ * По-умолчанию -[0, window.innerHeight - '24px']
409
+ * массив должен состоять минимум из 2 элементов
410
+ */
411
+ magneticAreas?: Array<number | string>;
412
+ /**
413
+ * Индекс точки из magneticAreas, к которому нужно примагнититься при первом открытии шторки.
414
+ */
415
+ initialActiveAreaIndex?: number;
416
+ /**
417
+ * Отключает скролл контентной области.
418
+ */
419
+ scrollLocked?: boolean;
420
+ /**
421
+ * Скрыть скроллбар внутри шторки
422
+ */
423
+ hideScrollbar?: boolean;
424
+ /**
425
+ * Верхний отступ шторки, если она открыта на максимальную высоту
426
+ */
427
+ headerOffset?: number;
428
+ /**
429
+ * Содержимое bottom-sheet всегда в DOM
430
+ */
431
+ keepMounted?: boolean;
432
+ /**
433
+ * Отключает автоматический перевод фокуса на bottom-sheet при открытии
434
+ */
435
+ disableAutoFocus?: boolean;
436
+ /**
437
+ * Отключает восстановление фокуса на предыдущем элементе после закрытия bottom-sheet
438
+ */
439
+ disableRestoreFocus?: boolean;
440
+ /**
441
+ * Отключает вызов `onClose` при нажатии Escape
442
+ */
443
+ disableEscapeKeyDown?: boolean;
444
+ /**
445
+ * Обработчик закрытия
446
+ */
447
+ onClose: () => void;
448
+ /**
449
+ * Обработчик нажатия на стрелку назад
450
+ */
451
+ onBack?: () => void;
452
+ /**
453
+ * Вызывается в начале анимации притягивания к одной из `magneticAreas`
454
+ */
455
+ onMagnetize?: (index: number) => void;
456
+ /**
457
+ * Вызывается после окончания анимации притягивания
458
+ */
459
+ onMagnetizeEnd?: (index: number) => void;
460
+ /**
461
+ * Вызывается при изменении положения шторки
462
+ */
463
+ onOffsetChange?: (offset: number, percent: number) => void;
464
+ /**
465
+ * Вызывается в начале свайпа
466
+ */
467
+ onSwipeStart?: (event: HandledEvents) => void;
468
+ /**
469
+ * Вызывается после окончания свайпа
470
+ */
471
+ onSwipeEnd?: (event: HandledEvents | null) => void;
472
+ };
473
+ declare const BottomSheet: React.ForwardRefExoticComponent<BottomSheetProps & React.RefAttributes<HTMLDivElement>>;
474
+ declare const CLOSE_OFFSET = 0.2;
475
+ declare const HEADER_OFFSET = 24;
476
+ type InputProps = Omit<BaseInputProps, "FormControlComponent"> & {
477
+ /**
478
+ * Контрольная точка, с нее начинается desktop версия
479
+ * @default 1024
480
+ */
481
+ breakpoint?: number;
482
+ /**
483
+ * Значение по-умолчанию для хука useMatchMedia
484
+ */
485
+ defaultMatchMediaValue?: boolean | (() => boolean);
486
+ };
487
+ declare const Input: React.ForwardRefExoticComponent<Omit<BaseInputProps, "FormControlComponent"> & {
488
+ breakpoint?: number | undefined;
489
+ defaultMatchMediaValue?: boolean | (() => boolean) | undefined;
490
+ } & React.RefAttributes<HTMLInputElement>>;
491
+ type HeaderProps = Omit<NavigationBarProps, "size" | "view" | "parentRef">;
492
+ type ModalDesktopProps = BaseModalProps & {
493
+ /**
494
+ * Ширина модального окна
495
+ * @default "m"
496
+ */
497
+ size?: "s" | "m" | "l" | "xl" | "fullscreen";
498
+ /**
499
+ * Растягивает модальное окно на весь экран
500
+ * @deprecated Используйте размер fullscreen
501
+ */
502
+ fullscreen?: boolean;
503
+ /**
504
+ * Фиксирует позицию модального окна после открытия,
505
+ * предотвращая скачки, если контент внутри будет меняться
506
+ */
507
+ fixedPosition?: boolean;
508
+ /**
509
+ * Управление наличием закрывающего крестика
510
+ * @default false
511
+ */
512
+ hasCloser?: boolean;
513
+ };
514
+ type ModalResponsiveProps = ModalDesktopProps & {
515
+ /**
516
+ * Контрольная точка, с нее начинается desktop версия
517
+ * @default 1024
518
+ */
519
+ breakpoint?: number;
520
+ };
521
+ type View = "desktop" | "mobile";
522
+ type TResponsiveModalContext = {
523
+ view: View;
524
+ size: NonNullable<ModalDesktopProps["size"]>;
525
+ };
526
+ type ContentProps = {
527
+ /**
528
+ * Контент
529
+ */
530
+ children?: ReactNode;
531
+ /**
532
+ * Дополнительный класс
533
+ */
534
+ className?: string;
535
+ /**
536
+ * Растягивает контент на всю высоту
537
+ */
538
+ flex?: boolean;
539
+ };
540
+ type FooterProps = {
541
+ /**
542
+ * Контент футера
543
+ */
544
+ children?: ReactNode;
545
+ /**
546
+ * Дополнительный класс
547
+ */
548
+ className?: string;
549
+ /**
550
+ * Фиксирует футер
551
+ */
552
+ sticky?: boolean;
553
+ /**
554
+ * Выравнивание элементов футера
555
+ */
556
+ layout?: "start" | "center" | "space-between" | "column";
557
+ /**
558
+ * Отступы между элементами футера
559
+ */
560
+ gap?: 16 | 24 | 32;
561
+ };
562
+ declare const ModalResponsive: React.ForwardRefExoticComponent<BaseModalProps & {
563
+ size?: "s" | "m" | "l" | "xl" | "fullscreen" | undefined;
564
+ fullscreen?: boolean | undefined;
565
+ fixedPosition?: boolean | undefined;
566
+ hasCloser?: boolean | undefined;
567
+ } & {
568
+ breakpoint?: number | undefined;
569
+ } & React.RefAttributes<HTMLDivElement>> & {
570
+ Header: React.FC<HeaderProps>;
571
+ Content: React.FC<ContentProps>;
572
+ Footer: React.FC<FooterProps>;
573
+ };
574
+ declare const ModalContext: import("react").Context<BaseModalContext>;
575
+ type FooterProps$0 = {
576
+ /**
577
+ * Контент футера
578
+ */
579
+ children?: ReactNode;
580
+ /**
581
+ * Фиксирует футер
582
+ */
583
+ sticky?: boolean;
584
+ /**
585
+ * Дополнительный класс
586
+ */
587
+ className?: string;
588
+ };
589
+ declare const Footer$0: FC<FooterProps$0>;
590
+ type HeaderProps$0 = Omit<NavigationBarProps, "view" | "size"> & {
591
+ headerRef: RefObject<HTMLDivElement>;
592
+ headerOffset: number;
593
+ };
594
+ declare const Header$0: FC<HeaderProps$0>;
595
+ declare const Modal: React.ForwardRefExoticComponent<BaseModalProps & {
596
+ size?: "s" | "m" | "l" | "xl" | "fullscreen" | undefined;
597
+ fullscreen?: boolean | undefined;
598
+ fixedPosition?: boolean | undefined;
599
+ hasCloser?: boolean | undefined;
600
+ } & {
601
+ view: View;
602
+ } & React.RefAttributes<HTMLDivElement>>;
603
+ type SwipeableBackdropProps = BackdropProps & {
604
+ /**
605
+ * Прозрачность бэкдропа
606
+ */
607
+ opacity?: number;
608
+ /**
609
+ * Обработчики свайпа
610
+ */
611
+ handlers?: SwipeableHandlers;
612
+ /**
613
+ * Время анимации opacity
614
+ */
615
+ opacityTimeout?: number;
616
+ };
617
+ declare const SwipeableBackdrop: FC<SwipeableBackdropProps>;
618
+ /**
619
+ * Набор констант для z-index соответствующих классов компонентов.
620
+ * Значения выбраны по приоритету.
621
+ */
622
+ declare const stackingOrder: {
623
+ FOCUSED: number;
624
+ DEFAULT: number;
625
+ POPOVER: number;
626
+ MODAL: number;
627
+ TOAST: number;
628
+ };
629
+ declare const StackingContext: import("react").Context<number>;
630
+ type StackProps = {
631
+ /**
632
+ * Render prop, в который передается функция.
633
+ * Функция принимает аргумент со значением z-index из текущего контекста.
634
+ */
635
+ children: (value: number) => ReactNode;
636
+ /**
637
+ * Исходное значение для z-index.
638
+ * @default 5
639
+ */
640
+ value?: number;
641
+ };
642
+ declare const Stack: FC<StackProps>;
643
+ declare const PORTAL_CONTAINER_ATTRIBUTE = "alfa-portal-container";
644
+ declare const getDefaultPortalContainer: () => Element;
645
+ declare function setRef<T>(ref: RefObject<T> | ((instance: T | null) => void) | null | undefined, value: T | null): void;
646
+ type SavedStyle = {
647
+ value: string;
648
+ key: string;
649
+ el: HTMLElement;
650
+ };
651
+ type RestoreStyle = {
652
+ container: HTMLElement;
653
+ modals: number;
654
+ styles: SavedStyle[];
655
+ };
656
+ declare class ModalStore {
657
+ private readonly restoreStyles;
658
+ constructor();
659
+ getRestoreStyles: () => RestoreStyle[];
660
+ }
661
+ declare const getModalStore: () => ModalStore;
662
+ declare class GlobalStore {
663
+ private readonly modalStore;
664
+ constructor();
665
+ getModalStore: () => ModalStore;
666
+ }
667
+ type InputDesktopProps = Omit<BaseInputProps, "FormControlComponent">;
668
+ declare const InputDesktop: React.ForwardRefExoticComponent<InputDesktopProps & React.RefAttributes<HTMLInputElement>>;
669
+ type InputMobileProps = Omit<BaseInputProps, "FormControlComponent">;
670
+ declare const InputMobile: React.ForwardRefExoticComponent<InputMobileProps & React.RefAttributes<HTMLInputElement>>;
671
+ declare const Content: FC<ContentProps>;
672
+ declare const ResponsiveContext: React.Context<TResponsiveModalContext>;
673
+ type AnyObject = Record<string, any>;
674
+ type OptionShape = {
675
+ /**
676
+ * Текстовое представление пункта
677
+ */
678
+ key: string;
679
+ /**
680
+ * Контент, который будет отрисован в выпадающем списке и в поле при выборе
681
+ */
682
+ content?: ReactNode;
683
+ /**
684
+ * Блокирует данный пункт для выбора
685
+ */
686
+ disabled?: boolean;
687
+ /**
688
+ * Разрешает показ компонента Checkmark, иногда нужно его убирать для показа контента ошибки или пустого состояния
689
+ */
690
+ showCheckMark?: boolean;
691
+ /**
692
+ * Дополнительные данные
693
+ */
694
+ value?: any;
695
+ };
696
+ type GroupShape = {
697
+ /**
698
+ * Заголовок группы
699
+ */
700
+ label?: string;
701
+ /**
702
+ * Дочерние элементы
703
+ */
704
+ options: OptionShape[];
705
+ };
706
+ type BaseSelectChangePayload = {
707
+ selected: OptionShape | null;
708
+ selectedMultiple: OptionShape[];
709
+ initiator: OptionShape | null;
710
+ name?: string;
711
+ };
712
+ type BaseSelectProps = {
713
+ /**
714
+ * Идентификатор для систем автоматизированного тестирования
715
+ */
716
+ dataTestId?: string;
717
+ /**
718
+ * Дополнительный класс
719
+ */
720
+ className?: string;
721
+ /**
722
+ * Дополнительный класс для поля
723
+ */
724
+ fieldClassName?: string;
725
+ /**
726
+ * Дополнительный класс выпадающего меню
727
+ */
728
+ optionsListClassName?: string;
729
+ /**
730
+ * Дополнительный класс для пункта меню
731
+ */
732
+ optionClassName?: string;
733
+ /**
734
+ * Дополнительный класс для компонента группы пунктов
735
+ */
736
+ optionGroupClassName?: string;
737
+ /**
738
+ * Дополнительный класс для поповера
739
+ */
740
+ popperClassName?: string;
741
+ /**
742
+ * Список вариантов выбора
743
+ */
744
+ options: Array<OptionShape | GroupShape>;
745
+ /**
746
+ * Атрибут id
747
+ */
748
+ id?: string;
749
+ /**
750
+ * Атрибут name
751
+ */
752
+ name?: string;
753
+ /**
754
+ * Управление возможностью выбора значения
755
+ */
756
+ disabled?: boolean;
757
+ /**
758
+ * Начальное состояние селекта
759
+ */
760
+ defaultOpen?: boolean;
761
+ /**
762
+ * Управление открытием
763
+ */
764
+ open?: boolean;
765
+ /**
766
+ * Возможность выбрать несколько значений
767
+ */
768
+ multiple?: boolean;
769
+ /**
770
+ * Размер компонента
771
+ */
772
+ size?: 's' | 'm' | 'l' | 'xl';
773
+ /**
774
+ * Размер пунктов меню
775
+ */
776
+ optionsSize?: 's' | 'm' | 'l' | 'xl';
777
+ /**
778
+ * Растягивает компонент на ширину контейнера
779
+ */
780
+ block?: boolean;
781
+ /**
782
+ * Управляет шириной выпадающего меню.
783
+ * Ширину определяет контент, либо ширина равна ширине поля
784
+ */
785
+ optionsListWidth?: 'content' | 'field';
786
+ /**
787
+ * Лейбл поля
788
+ */
789
+ label?: ReactNode;
790
+ /**
791
+ * Вид лейбла внутри / снаружи
792
+ */
793
+ labelView?: 'inner' | 'outer';
794
+ /**
795
+ * Плейсхолдер поля
796
+ */
797
+ placeholder?: string;
798
+ /**
799
+ * Отображение ошибки
800
+ */
801
+ error?: ReactNode | boolean;
802
+ /**
803
+ * Подсказка под полем
804
+ */
805
+ hint?: ReactNode;
806
+ /**
807
+ * Возможность использовать селект как input-autocomplete
808
+ */
809
+ autocomplete?: boolean;
810
+ /**
811
+ * Позволяет снять выбранное значение
812
+ */
813
+ allowUnselect?: boolean;
814
+ /**
815
+ * Закрывать меню после выбора?
816
+ */
817
+ closeOnSelect?: boolean;
818
+ /**
819
+ * При навигации с клавиатуры переходить от последнего пункта меню к первому и наоборот.
820
+ */
821
+ circularNavigation?: boolean;
822
+ /**
823
+ * Запрещает поповеру менять свою позицию.
824
+ * Например, если места снизу недостаточно,то он все равно будет показан снизу
825
+ */
826
+ preventFlip?: boolean;
827
+ /**
828
+ * Список value выбранных пунктов (controlled-селект)
829
+ */
830
+ selected?: Array<string | OptionShape> | string | OptionShape | null;
831
+ /**
832
+ * Рендерит нативный селект вместо выпадающего меню. (на десктопе использовать только с multiple=false)
833
+ */
834
+ nativeSelect?: boolean;
835
+ /**
836
+ * Позиционирование выпадающего списка
837
+ */
838
+ popoverPosition?: PopoverProps['position'];
839
+ /**
840
+ * Количество видимых пунктов меню (5 = 5.5)
841
+ */
842
+ visibleOptions?: number;
843
+ /**
844
+ * Кастомный рендер выбранного пункта
845
+ */
846
+ valueRenderer?: ({ selected, selectedMultiple, }: {
847
+ selected?: OptionShape;
848
+ selectedMultiple: OptionShape[];
849
+ }) => ReactNode;
850
+ /**
851
+ * Компонент стрелки
852
+ */
853
+ Arrow?: FC<ArrowProps> | null | false;
854
+ /**
855
+ * Компонент поля
856
+ */
857
+ Field?: FC<FieldProps>;
858
+ /**
859
+ * Пропсы, которые будут прокинуты в компонент поля
860
+ */
861
+ fieldProps?: unknown;
862
+ /**
863
+ * Пропсы, которые будут прокинуты в компонент списка
864
+ */
865
+ optionsListProps?: unknown;
866
+ /**
867
+ * Пропсы, которые будут прокинуты в компонент пункта меню
868
+ */
869
+ optionProps?: unknown;
870
+ /**
871
+ * Компонент выпадающего меню
872
+ */
873
+ OptionsList?: FC<OptionsListProps & RefAttributes<HTMLDivElement>>;
874
+ /**
875
+ * Компонент группы
876
+ */
877
+ Optgroup?: FC<OptgroupProps>;
878
+ /**
879
+ * Компонент пункта меню
880
+ */
881
+ Option?: FC<OptionProps>;
882
+ /**
883
+ * Включает отображение поиска
884
+ */
885
+ showSearch?: boolean;
886
+ /**
887
+ * Компонент поиска
888
+ */
889
+ Search?: FC<SearchProps>;
890
+ /**
891
+ * Настройки поиска
892
+ */
893
+ searchProps?: {
894
+ componentProps?: SearchProps;
895
+ accessor?: (option: OptionShape) => string;
896
+ filterFn?: (optionText: string, search: string) => boolean;
897
+ value?: string;
898
+ onChange?: (value: string) => void;
899
+ };
900
+ /**
901
+ * Обработчик выбора
902
+ */
903
+ onChange?: (payload: BaseSelectChangePayload) => void;
904
+ /**
905
+ * Обработчик открытия\закрытия селекта
906
+ */
907
+ onOpen?: (payload: {
908
+ open?: boolean;
909
+ name?: string;
910
+ }) => void;
911
+ /**
912
+ * Обработчик фокуса поля
913
+ */
914
+ onBlur?: (event: FocusEvent<HTMLDivElement | HTMLInputElement>) => void;
915
+ /**
916
+ * Обработчик блюра поля
917
+ */
918
+ onFocus?: (event: FocusEvent<HTMLDivElement | HTMLInputElement>) => void;
919
+ /**
920
+ * Обработчик скрола
921
+ */
922
+ onScroll?: (event: MouseEvent<HTMLDivElement>) => void;
923
+ /**
924
+ * Хранит функцию, с помощью которой можно обновить положение поповера
925
+ */
926
+ updatePopover?: PopoverProps['update'];
927
+ /**
928
+ * z-index поповера
929
+ */
930
+ zIndexPopover?: PopoverProps['zIndex'];
931
+ /**
932
+ * Показывать OptionsList, если он пустой
933
+ */
934
+ showEmptyOptionsList?: boolean;
935
+ };
936
+ type FieldProps = {
937
+ /**
938
+ * Дополнительный класс
939
+ */
940
+ className?: string;
941
+ /**
942
+ * Выбранный пункт
943
+ */
944
+ selected?: OptionShape;
945
+ /**
946
+ * Список выбранных пунктов
947
+ */
948
+ selectedMultiple?: OptionShape[];
949
+ /**
950
+ * Метод для ручной установки выбранных пунктов
951
+ */
952
+ setSelectedItems: (selected: OptionShape[]) => void;
953
+ /**
954
+ * Метод переключающий видимость выпадающего списка
955
+ */
956
+ toggleMenu: () => void;
957
+ /**
958
+ * Флаг, можно ли выбрать несколько значений
959
+ */
960
+ multiple?: boolean;
961
+ /**
962
+ * Флаг, открыто ли меню
963
+ */
964
+ open?: boolean;
965
+ /**
966
+ * Флаг, поле заблокировано
967
+ */
968
+ disabled?: boolean;
969
+ /**
970
+ * Лейбл поля
971
+ */
972
+ label?: ReactNode;
973
+ /**
974
+ * Вид лейбла внутри / снаружи
975
+ */
976
+ labelView?: 'inner' | 'outer';
977
+ /**
978
+ * Плейсхолдер поля
979
+ */
980
+ placeholder?: string;
981
+ /**
982
+ * Отображение ошибки
983
+ */
984
+ error?: ReactNode | boolean;
985
+ /**
986
+ * Отображение иконки успеха
987
+ */
988
+ success?: boolean;
989
+ /**
990
+ * Подсказка под полем
991
+ */
992
+ hint?: ReactNode;
993
+ /**
994
+ * Компонент стрелки
995
+ */
996
+ Arrow?: ReactElement | false | null;
997
+ /**
998
+ * Кастомный рендер выбранного пункта
999
+ */
1000
+ valueRenderer?: BaseSelectProps['valueRenderer'];
1001
+ /**
1002
+ * Внутренние свойства, которые должны быть установлены компоненту.
1003
+ */
1004
+ innerProps: {
1005
+ onBlur?: (event: FocusEvent<HTMLDivElement | HTMLInputElement>) => void;
1006
+ onFocus?: (event: FocusEvent<HTMLDivElement | HTMLInputElement>) => void;
1007
+ onClick?: (event: MouseEvent<HTMLDivElement | HTMLInputElement>) => void;
1008
+ tabIndex?: number;
1009
+ id: string;
1010
+ } & RefAttributes<HTMLDivElement | HTMLInputElement> & AriaAttributes;
1011
+ /**
1012
+ * Идентификатор для систем автоматизированного тестирования
1013
+ */
1014
+ dataTestId?: string;
1015
+ } & AnyObject;
1016
+ type ArrowProps = {
1017
+ /**
1018
+ * Дополнительный класс
1019
+ */
1020
+ className?: string;
1021
+ /**
1022
+ * Флаг, открыто ли меню
1023
+ */
1024
+ open?: boolean;
1025
+ };
1026
+ type OptionsListProps = {
1027
+ /**
1028
+ * Дополнительный класс
1029
+ */
1030
+ className?: string;
1031
+ /**
1032
+ * Дополнительный класс для компонента группы пунктов
1033
+ */
1034
+ optionGroupClassName?: string;
1035
+ /**
1036
+ * Дополнительный класс для скроллбара
1037
+ */
1038
+ scrollbarClassName?: string;
1039
+ /**
1040
+ * Размер компонента
1041
+ */
1042
+ size?: 's' | 'm' | 'l' | 'xl';
1043
+ /**
1044
+ * Компонент пункта меню
1045
+ */
1046
+ Option: FC<OptionProps>;
1047
+ /**
1048
+ * Функция для получения пропсов для ячейки
1049
+ */
1050
+ getOptionProps: (option: OptionShape, index: number) => OptionProps;
1051
+ /**
1052
+ * Список выбранных пунктов
1053
+ */
1054
+ selectedItems?: OptionShape[];
1055
+ /**
1056
+ * Метод для ручной установки выбранных пунктов
1057
+ */
1058
+ setSelectedItems: (selected: OptionShape[]) => void;
1059
+ /**
1060
+ * Метод переключающий видимость выпадающего списка
1061
+ */
1062
+ toggleMenu: () => void;
1063
+ /**
1064
+ * Контент шапки
1065
+ */
1066
+ header?: ReactNode;
1067
+ /**
1068
+ * Контент футера
1069
+ */
1070
+ footer?: ReactNode;
1071
+ /**
1072
+ * Список вариантов выбора
1073
+ */
1074
+ options?: Array<OptionShape | GroupShape>;
1075
+ /**
1076
+ * Плоский список пунктов меню (например, нужно для виртуализации)
1077
+ */
1078
+ flatOptions?: OptionShape[];
1079
+ /**
1080
+ * Индекс выделенного пункта
1081
+ */
1082
+ highlightedIndex?: number;
1083
+ /**
1084
+ * Флаг, открыто ли меню
1085
+ */
1086
+ open?: boolean;
1087
+ /**
1088
+ * Компонент группы
1089
+ */
1090
+ Optgroup?: BaseSelectProps['Optgroup'];
1091
+ /**
1092
+ * Будет отображаться, если компонент пустой
1093
+ */
1094
+ emptyPlaceholder?: ReactNode;
1095
+ /**
1096
+ * Количество видимых пунктов меню (5 = 5.5)
1097
+ */
1098
+ visibleOptions?: number;
1099
+ /**
1100
+ * Обработчик скрола
1101
+ */
1102
+ onScroll?: (event: MouseEvent<HTMLDivElement>) => void;
1103
+ /**
1104
+ * Идентификатор для систем автоматизированного тестирования
1105
+ */
1106
+ dataTestId?: string;
1107
+ /**
1108
+ * Дополнительные пропсы для Input'a, находящегося внутри кастомного OptionsList
1109
+ */
1110
+ inputProps?: InputProps;
1111
+ /**
1112
+ * Нужно ли показывать футер
1113
+ */
1114
+ showFooter?: boolean;
1115
+ /**
1116
+ * Нужно ли использовать нативный скроллбар
1117
+ */
1118
+ nativeScrollbar?: boolean;
1119
+ /**
1120
+ * Управляет шириной выпадающего меню.
1121
+ * Ширину определяет контент, либо ширина равна ширине поля
1122
+ */
1123
+ optionsListWidth?: BaseSelectProps['optionsListWidth'];
1124
+ /**
1125
+ * Обработчик подтверждения изменений
1126
+ */
1127
+ onApply?: () => void;
1128
+ /**
1129
+ * Обработчик отмены изменений
1130
+ */
1131
+ onClear?: () => void;
1132
+ /**
1133
+ * Указать индекс пункта для hover состояния
1134
+ */
1135
+ setHighlightedIndex?: (index: number) => void;
1136
+ };
1137
+ type OptgroupProps = {
1138
+ /**
1139
+ * Дополнительный класс для компонента группы пунктов
1140
+ */
1141
+ className?: string;
1142
+ /**
1143
+ * Размер компонента
1144
+ */
1145
+ size?: 's' | 'm' | 'l' | 'xl';
1146
+ /**
1147
+ * Заголовок группы
1148
+ */
1149
+ label?: string;
1150
+ /**
1151
+ * Дочерние элементы
1152
+ */
1153
+ children?: ReactNode;
1154
+ };
1155
+ type OptionProps = {
1156
+ /**
1157
+ * Дополнительный класс
1158
+ */
1159
+ className?: string;
1160
+ /**
1161
+ * Размер компонента
1162
+ */
1163
+ size?: 's' | 'm' | 'l' | 'xl';
1164
+ /**
1165
+ * Контент пункта меню
1166
+ */
1167
+ children?: ReactNode;
1168
+ /**
1169
+ * Данные пункта меню
1170
+ */
1171
+ option: OptionShape;
1172
+ /**
1173
+ * Индекс пункта
1174
+ */
1175
+ index: number;
1176
+ /**
1177
+ * Флаг, выбран ли данный пункт
1178
+ */
1179
+ selected?: boolean;
1180
+ /**
1181
+ * Флаг, подсвечен ли данный пункт
1182
+ */
1183
+ highlighted?: boolean;
1184
+ /**
1185
+ * Флаг, заблокирован ли данный пункт
1186
+ */
1187
+ disabled?: boolean;
1188
+ /**
1189
+ * Флаг множественного выбора
1190
+ */
1191
+ multiple?: boolean;
1192
+ /**
1193
+ * Компонент пункта меню
1194
+ */
1195
+ Checkmark?: FC<CheckmarkProps> | null;
1196
+ /**
1197
+ * Внутренние свойства, которые должны быть установлены компоненту.
1198
+ */
1199
+ innerProps: {
1200
+ id: string;
1201
+ onClick?: (event: MouseEvent<HTMLDivElement>) => void;
1202
+ onMouseDown?: (event: MouseEvent<HTMLDivElement>) => void;
1203
+ onMouseMove?: (event: MouseEvent<HTMLDivElement>) => void;
1204
+ role?: string;
1205
+ } & RefAttributes<HTMLDivElement> & AriaAttributes;
1206
+ /**
1207
+ * Идентификатор для систем автоматизированного тестирования
1208
+ */
1209
+ dataTestId?: string;
1210
+ /**
1211
+ * Позиция иконки "галочки"
1212
+ */
1213
+ checkmarkPosition?: 'before' | 'after';
1214
+ /**
1215
+ * Мобильная верcия option.
1216
+ */
1217
+ mobile?: boolean;
1218
+ };
1219
+ type CheckmarkProps = {
1220
+ /**
1221
+ * Флаг, данный пункт выбран
1222
+ */
1223
+ selected?: boolean;
1224
+ /**
1225
+ * Флаг, данный пункт задизейблен
1226
+ */
1227
+ disabled?: boolean;
1228
+ /**
1229
+ * Дополнительный класс
1230
+ */
1231
+ className?: string;
1232
+ /**
1233
+ * Флаг множественного выбора
1234
+ */
1235
+ multiple?: boolean;
1236
+ /**
1237
+ * Расположение отметки
1238
+ */
1239
+ position?: 'before' | 'after';
1240
+ /**
1241
+ * Иконка выбранного пункта
1242
+ */
1243
+ icon?: FC<SVGProps<SVGSVGElement>>;
1244
+ };
1245
+ type SearchProps = InputProps & RefAttributes<HTMLInputElement>;
1246
+ type SelectFieldProps = Omit<FormControlProps, 'size'> & Record<string, unknown>;
1247
+ type AdditionalMobileProps = {
1248
+ /**
1249
+ * Показывать кнопку 'Сбросить' в футере мобильного компонента
1250
+ */
1251
+ showClear?: UseSelectWithApplyProps['showClear'];
1252
+ /**
1253
+ * Показывать пункт "Выбрать все"
1254
+ */
1255
+ showSelectAll?: UseSelectWithApplyProps['showSelectAll'];
1256
+ /**
1257
+ * Показывать пункт "Выбрать все" в заголовке списка у мобильного компонента
1258
+ */
1259
+ showHeaderWithSelectAll?: UseSelectWithApplyProps['showHeaderWithSelectAll'];
1260
+ /**
1261
+ * Использовать ли хук useSelectWithApply в мобильном компоненте
1262
+ */
1263
+ useWithApplyHook?: boolean;
1264
+ };
1265
+ type BottomSheetSelectMobileProps = {
1266
+ /**
1267
+ * Футер
1268
+ * @deprecated Используйте bottomSheetProps.actionButton
1269
+ */
1270
+ footer?: ReactNode;
1271
+ /**
1272
+ * Будет ли свайпаться шторка
1273
+ * @deprecated Используйте bottomSheetProps.swipeable
1274
+ */
1275
+ swipeable?: boolean;
1276
+ /**
1277
+ * Дополнительные пропсы шторки
1278
+ */
1279
+ bottomSheetProps?: Partial<BottomSheetProps>;
1280
+ };
1281
+ type ModalSelectMobileProps = {
1282
+ /**
1283
+ * Дополнительные пропсы шапки модалки
1284
+ */
1285
+ modalHeaderProps?: Partial<ModalHeaderProps>;
1286
+ /**
1287
+ * Дополнительные пропсы модалки
1288
+ */
1289
+ modalProps?: Partial<ModalProps & RefAttributes<HTMLDivElement>>;
1290
+ /**
1291
+ * Дополнительные пропсы футера модалки
1292
+ */
1293
+ modalFooterProps?: Partial<ModalFooterProps>;
1294
+ };
1295
+ type ConditionalMobileProps = ({
1296
+ isBottomSheet?: true;
1297
+ } & BottomSheetSelectMobileProps) | ({
1298
+ isBottomSheet: false;
1299
+ } & ModalSelectMobileProps);
1300
+ type SelectModalMobileProps = Omit<BaseSelectProps, 'Checkmark'> & AdditionalMobileProps & ModalSelectMobileProps;
1301
+ type SelectMobileProps = Omit<BaseSelectProps, 'Checkmark'> & AdditionalMobileProps & ConditionalMobileProps;
1302
+ type SelectDesktopProps = Omit<BaseSelectProps, 'fieldProps'> & {
1303
+ /**
1304
+ * Пропсы, которые будут прокинуты в компонент поля
1305
+ */
1306
+ fieldProps?: SelectFieldProps;
1307
+ };
1308
+ type SelectProps = BaseSelectProps & AdditionalMobileProps & ConditionalMobileProps & {
1309
+ /**
1310
+ * Контрольная точка, с нее начинается desktop версия
1311
+ * @default 1024
1312
+ */
1313
+ breakpoint?: number;
1314
+ /**
1315
+ * Значение по-умолчанию для хука useMatchMedia
1316
+ */
1317
+ defaultMatchMediaValue?: boolean | (() => boolean);
1318
+ };
1319
+ export { BottomSheet, CLOSE_OFFSET, HEADER_OFFSET, InputProps, Input, ModalResponsive as Modal, ModalResponsiveProps as ModalProps, ModalContext, FooterProps$0 as FooterProps, Footer$0 as Footer, HeaderProps$0 as HeaderProps, Header$0 as Header, SwipeableBackdropProps, SwipeableBackdrop, stackingOrder, StackingContext, StackProps, Stack, PORTAL_CONTAINER_ATTRIBUTE, getDefaultPortalContainer, setRef, getModalStore, GlobalStore, InputDesktopProps, InputDesktop, InputMobileProps, InputMobile, Content, ResponsiveContext, AnyObject, OptionShape, GroupShape, BaseSelectChangePayload, BaseSelectProps, FieldProps, ArrowProps, OptionsListProps, OptgroupProps, OptionProps, CheckmarkProps, SearchProps, SelectFieldProps, AdditionalMobileProps, BottomSheetSelectMobileProps, ModalSelectMobileProps, SelectModalMobileProps, SelectMobileProps, SelectDesktopProps, SelectProps };
1320
+ export type { BottomSheetProps, BottomSheetTitleAlign, HeaderProps as ModalHeaderProps, FooterProps as ModalFooterProps, ContentProps as ModalContentProps, SavedStyle };