@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,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 };
@@ -0,0 +1,38 @@
1
+ import { ReactNode, RefObject } from 'react';
2
+ import { BaseSelectProps, GroupShape, OptionShape } from "./typings-5e1b8383";
3
+ declare const isGroup: (item: OptionShape | GroupShape) => item is GroupShape;
4
+ declare const isOptionShape: (item: OptionShape | string | null) => item is OptionShape;
5
+ declare const joinOptions: ({ selected, selectedMultiple, }: {
6
+ selected?: OptionShape | undefined;
7
+ selectedMultiple?: OptionShape[] | undefined;
8
+ }) => ReactNode[] | null;
9
+ declare function processOptions(options: BaseSelectProps['options'], selected?: BaseSelectProps['selected']): {
10
+ flatOptions: OptionShape[];
11
+ selectedOptions: OptionShape[];
12
+ };
13
+ type useVisibleOptionsArgs = {
14
+ /**
15
+ * Количество видимых пунктов
16
+ */
17
+ visibleOptions: number;
18
+ /**
19
+ * Реф на контейнер с пунтами меню
20
+ */
21
+ listRef: RefObject<HTMLElement>;
22
+ /**
23
+ * Реф на контейнер, которому нужно установить высоту
24
+ */
25
+ styleTargetRef?: RefObject<HTMLElement>;
26
+ /**
27
+ * Флаг открытия меню
28
+ */
29
+ open?: boolean;
30
+ /**
31
+ * Позволяет вызвать пересчет высоты
32
+ */
33
+ invalidate?: unknown;
34
+ };
35
+ declare function useVisibleOptions({ visibleOptions, listRef, styleTargetRef, open, invalidate, }: useVisibleOptionsArgs): void;
36
+ declare function usePrevious<T>(value: T): T | undefined;
37
+ declare const lastIndexOf: <T>(array: T[], predicate: (item: T) => boolean) => number;
38
+ export { isGroup, isOptionShape, joinOptions, processOptions, useVisibleOptions, usePrevious, lastIndexOf };
@@ -1,11 +1,12 @@
1
1
  /// <reference types="react" />
2
+ import React from 'react';
2
3
  import { ButtonProps } from "@alfalab/core-components-button";
3
4
  import { FieldProps as BaseFieldProps } from "../typings-5e1b8383";
4
- import { PickerButtonSize, PickerButtonVariant } from "../Component";
5
+ import { PickerButtonSize, PickerButtonVariant } from "../types";
5
6
  type FieldProps = Omit<BaseFieldProps, 'size' | 'hint' | 'success' | 'error' | 'placeholder'> & ButtonProps & {
6
7
  buttonSize?: PickerButtonSize;
7
8
  buttonVariant?: PickerButtonVariant;
8
9
  showArrow?: boolean;
9
10
  };
10
- declare const Field: ({ buttonSize, buttonVariant, view, label, open, multiple, rightAddons, Arrow, innerProps, className, selected, selectedMultiple, setSelectedItems, toggleMenu, valueRenderer, showArrow, labelView, ...restProps }: FieldProps) => JSX.Element;
11
+ declare const Field: ({ buttonSize, buttonVariant, view, label, open, multiple, rightAddons, Arrow, innerProps, className, selected, selectedMultiple, setSelectedItems, toggleMenu, valueRenderer, showArrow, labelView, ...restProps }: FieldProps) => React.JSX.Element;
11
12
  export { Field };
@@ -17,7 +17,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
17
17
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
18
18
  var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
19
19
 
20
- var styles = {"iconContainer":"picker-button__iconContainer_1alod","addonsContainer":"picker-button__addonsContainer_1alod","showControlIcon":"picker-button__showControlIcon_1alod","open":"picker-button__open_1alod"};
20
+ var styles = {"iconContainer":"picker-button__iconContainer_z7q5q","addonsContainer":"picker-button__addonsContainer_z7q5q","showControlIcon":"picker-button__showControlIcon_z7q5q","open":"picker-button__open_z7q5q"};
21
21
  require('./index.css')
22
22
 
23
23
  var Field = function (_a) {
package/field/index.css CHANGED
@@ -1,4 +1,4 @@
1
- /* hash: 1mchh */
1
+ /* hash: 1vxxg */
2
2
  :root {
3
3
  } /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
4
4
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -16,13 +16,13 @@
16
16
  } :root {
17
17
  } :root {
18
18
  --arrow-transform: rotate(180deg);
19
- } .picker-button__iconContainer_1alod {
19
+ } .picker-button__iconContainer_z7q5q {
20
20
  display: flex;
21
21
  transition: transform 0.15s ease-in-out;
22
- } .picker-button__addonsContainer_1alod {
22
+ } .picker-button__addonsContainer_z7q5q {
23
23
  display: flex
24
- } .picker-button__addonsContainer_1alod.picker-button__showControlIcon_1alod {
24
+ } .picker-button__addonsContainer_z7q5q.picker-button__showControlIcon_z7q5q {
25
25
  margin-right: var(--gap-2xs);
26
- } .picker-button__open_1alod {
26
+ } .picker-button__open_z7q5q {
27
27
  transform: var(--arrow-transform);
28
28
  }
@@ -0,0 +1,75 @@
1
+ /// <reference types="react" />
2
+ import { BaseSelectProps, OptionShape } from "./typings-5e1b8383";
3
+ type UseSelectWithApplyProps = {
4
+ /**
5
+ * Список выбранных пунктов
6
+ */
7
+ selected: BaseSelectProps['selected'];
8
+ /**
9
+ * Список вариантов выбора
10
+ */
11
+ options: BaseSelectProps['options'];
12
+ /**
13
+ * Обработчик выбора
14
+ */
15
+ onChange: BaseSelectProps['onChange'];
16
+ /**
17
+ * Компонент выпадающего меню
18
+ */
19
+ OptionsList?: BaseSelectProps['OptionsList'];
20
+ /**
21
+ * Пропсы, которые будут прокинуты в компонент списка
22
+ */
23
+ optionsListProps?: BaseSelectProps['optionsListProps'];
24
+ /**
25
+ * Показывать кнопку очистки
26
+ */
27
+ showClear?: boolean;
28
+ /**
29
+ * Показывать пункт "Выбрать все"
30
+ */
31
+ showSelectAll?: boolean;
32
+ /**
33
+ * Показывать пункт "Выбрать все" в заголовке списка
34
+ */
35
+ showHeaderWithSelectAll?: boolean;
36
+ };
37
+ declare const SELECT_ALL_KEY = "select_all";
38
+ declare function useSelectWithApply({ options, selected, onChange, OptionsList, optionsListProps, showClear, showSelectAll, showHeaderWithSelectAll, }: UseSelectWithApplyProps): {
39
+ OptionsList: import("react").ForwardRefExoticComponent<import("./typings-5e1b8383").OptionsListProps & {
40
+ showClear?: boolean | undefined;
41
+ onClose?: (() => void) | undefined;
42
+ selectedDraft?: OptionShape[] | undefined;
43
+ OptionsList?: import("react").FC<import("./typings-5e1b8383").OptionsListProps & import("react").RefAttributes<HTMLDivElement>> | undefined;
44
+ Footer?: import("react").FC<import("./Component-5e1b8383").FooterProps> | undefined;
45
+ Header?: import("react").FC<import("./Component-ebda875c").HeaderProps> | undefined;
46
+ headerProps?: import("./Component-ebda875c").HeaderProps | undefined; /**
47
+ * Показывать кнопку очистки
48
+ */
49
+ showHeaderWithSelectAll?: boolean | undefined;
50
+ } & import("react").RefAttributes<HTMLDivElement>>;
51
+ optionsListProps: {
52
+ OptionsList: import("react").FC<import("./typings-5e1b8383").OptionsListProps & import("react").RefAttributes<HTMLDivElement>> | undefined;
53
+ showClear: boolean;
54
+ onClear: () => void;
55
+ onApply: () => void;
56
+ onClose: () => void;
57
+ selectedDraft: OptionShape[];
58
+ showHeaderWithSelectAll: boolean;
59
+ headerProps: {
60
+ indeterminate: boolean;
61
+ checked: boolean;
62
+ onChange: () => void;
63
+ };
64
+ };
65
+ allowUnselect: boolean;
66
+ multiple: boolean;
67
+ options: (OptionShape | import("./typings-5e1b8383").GroupShape | {
68
+ key: string;
69
+ content: string;
70
+ })[];
71
+ onChange: (payload: import("./typings-5e1b8383").BaseSelectChangePayload) => void;
72
+ selected: string | OptionShape | (string | OptionShape)[] | null | undefined;
73
+ };
74
+ export * from "./Component-5e1b8383";
75
+ export { UseSelectWithApplyProps, SELECT_ALL_KEY, useSelectWithApply };
@@ -0,0 +1,28 @@
1
+ /// <reference types="react" />
2
+ import { FC, ReactNode } from "react";
3
+ /**
4
+ * Набор констант для z-index соответствующих классов компонентов.
5
+ * Значения выбраны по приоритету.
6
+ */
7
+ declare const stackingOrder: {
8
+ FOCUSED: number;
9
+ DEFAULT: number;
10
+ POPOVER: number;
11
+ MODAL: number;
12
+ TOAST: number;
13
+ };
14
+ declare const StackingContext: import("react").Context<number>;
15
+ type StackProps = {
16
+ /**
17
+ * Render prop, в который передается функция.
18
+ * Функция принимает аргумент со значением z-index из текущего контекста.
19
+ */
20
+ children: (value: number) => ReactNode;
21
+ /**
22
+ * Исходное значение для z-index.
23
+ * @default 5
24
+ */
25
+ value?: number;
26
+ };
27
+ declare const Stack: FC<StackProps>;
28
+ export { stackingOrder, StackingContext, StackProps, Stack };
@@ -0,0 +1,62 @@
1
+ import { FC, ReactNode } from "react";
2
+ type MqProps = {
3
+ /**
4
+ * Media выражение или кастомный запрос из `mq.json`, например `--mobile`.
5
+ */
6
+ query?: string;
7
+ /**
8
+ * Запрос на поддержку тач-событий
9
+ */
10
+ touch?: boolean;
11
+ /**
12
+ * Дочерние элементы.
13
+ */
14
+ children?: ReactNode;
15
+ /**
16
+ * Обработчик изменений в совпадении запросов
17
+ */
18
+ onMatchChange?: (isMatched: boolean) => void;
19
+ };
20
+ declare const Mq: FC<MqProps>;
21
+ /**
22
+ * Хук для медиа запросов.
23
+ * @param query media выражение или кастомный запрос из `mq.json`, например `--mobile`.
24
+ * @param defaultValue Значение по-умолчанию.
25
+ */
26
+ declare const useMatchMedia: (query: string, defaultValue?: boolean | (() => boolean)) => boolean[];
27
+ /**
28
+ * Возвращает MediaQueryList для заданного media-выражения.
29
+ *
30
+ * @param queryProp media выражение или кастомный запрос из `mq.json`, например `--mobile`.
31
+ */
32
+ declare function getMatchMedia(queryProp: string): MediaQueryList;
33
+ /**
34
+ * Удаляет MediaQueryList.
35
+ *
36
+ * @param queryProp media выражение или кастомный запрос из `mq.json`, например `--mobile`.
37
+ */
38
+ declare function releaseMatchMedia(queryProp: string): void;
39
+ /**
40
+ * Возвращает `true`, если есть поддержка `Pointer Events`
41
+ */
42
+ declare function isPointerEventsSupported(): boolean;
43
+ /**
44
+ * Возвращает `true`, если есть поддержка `Touch Events`
45
+ */
46
+ declare function isTouchSupported(): boolean;
47
+ declare const _exports: {
48
+ "--mobile-xs": string;
49
+ "--mobile-s": string;
50
+ "--mobile-m": string;
51
+ "--mobile-l": string;
52
+ "--mobile": string;
53
+ "--tablet-s": string;
54
+ "--tablet-m": string;
55
+ "--tablet": string;
56
+ "--desktop-s": string;
57
+ "--desktop-m": string;
58
+ "--desktop-l": string;
59
+ "--desktop-xl": string;
60
+ "--desktop": string;
61
+ };
62
+ export { _exports as default, MqProps, Mq, useMatchMedia, getMatchMedia, releaseMatchMedia, isPointerEventsSupported, isTouchSupported };
@@ -0,0 +1,6 @@
1
+ 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';
2
+ type BorderColorType = 'accent' | 'key' | 'key-inverted' | 'link' | 'primary' | 'primary-inverted' | 'secondary' | 'secondary-inverted' | 'tertiary' | 'tertiary-inverted' | 'underline' | 'underline-inverted' | 'graphic-attention' | 'graphic-link' | 'graphic-negative' | 'graphic-positive' | 'specialbg-secondary-transparent' | 'specialbg-secondary-transparent-inverted' | 'specialbg-tertiary-transparent' | 'specialbg-tertiary-transparent-inverted';
3
+ 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';
4
+ type ShadowType = 'shadow-xs' | 'shadow-s' | 'shadow-m' | 'shadow-l' | 'shadow-xl' | 'shadow-xs-hard' | 'shadow-s-hard' | 'shadow-m-hard' | 'shadow-l-hard' | 'shadow-xl-hard' | 'shadow-xs-up' | 'shadow-s-up' | 'shadow-m-up' | 'shadow-l-up' | 'shadow-xl-up' | 'shadow-xs-hard-up' | 'shadow-s-hard-up' | 'shadow-m-hard-up' | 'shadow-l-hard-up' | 'shadow-xl-hard-up';
5
+ type GapType = '3xs' | '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | '8xl';
6
+ export { BackgroundColorType, BorderColorType, GraphicColorType, ShadowType, GapType };
@@ -0,0 +1,3 @@
1
+ declare const isClient: () => boolean;
2
+ declare const getDataTestId: (dataTestId?: string, element?: string) => string | undefined;
3
+ export { isClient, getDataTestId };
@@ -0,0 +1,2 @@
1
+ export * from "./Component-ebda875c";
2
+ export * from "./utils-1574ad8b";
@@ -0,0 +1,160 @@
1
+ /// <reference types="react" />
2
+ import React from "react";
3
+ import { ChangeEvent, ElementType, InputHTMLAttributes, MouseEvent, ReactNode } from "react";
4
+ type StyleColors = {
5
+ default: {
6
+ [key: string]: string;
7
+ };
8
+ inverted: {
9
+ [key: string]: string;
10
+ };
11
+ };
12
+ type BaseInputProps = Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "type" | "value" | "defaultValue" | "onChange" | "onClick" | "onMouseDown" | "enterKeyHint"> & {
13
+ /**
14
+ * Значение поля ввода
15
+ */
16
+ value?: string;
17
+ /**
18
+ * Начальное значение поля
19
+ */
20
+ defaultValue?: string;
21
+ /**
22
+ * Растягивает компонент на ширину контейнера
23
+ */
24
+ block?: boolean;
25
+ /**
26
+ * Крестик для очистки поля
27
+ */
28
+ clear?: boolean;
29
+ /**
30
+ * Размер компонента
31
+ */
32
+ size?: "s" | "m" | "l" | "xl";
33
+ /**
34
+ * Набор цветов для компонента
35
+ */
36
+ colors?: "default" | "inverted";
37
+ /**
38
+ * Отображение ошибки
39
+ */
40
+ error?: ReactNode | boolean;
41
+ /**
42
+ * Отображение иконки успеха
43
+ */
44
+ success?: boolean;
45
+ /**
46
+ * Текст подсказки
47
+ */
48
+ hint?: ReactNode;
49
+ /**
50
+ * Лейбл компонента
51
+ */
52
+ label?: React.ReactNode;
53
+ /**
54
+ * Вид лейбла внутри / снаружи
55
+ */
56
+ labelView?: "inner" | "outer";
57
+ /**
58
+ * Атрибут type
59
+ */
60
+ type?: "number" | "card" | "email" | "money" | "password" | "tel" | "text";
61
+ /**
62
+ * Ref для обертки input
63
+ */
64
+ wrapperRef?: React.Ref<HTMLDivElement> | null;
65
+ /**
66
+ * Слот слева
67
+ */
68
+ leftAddons?: React.ReactNode;
69
+ /**
70
+ * Слот справа
71
+ */
72
+ rightAddons?: React.ReactNode;
73
+ /**
74
+ * Слот под инпутом
75
+ */
76
+ bottomAddons?: React.ReactNode;
77
+ /**
78
+ * Дополнительный класс
79
+ */
80
+ className?: string;
81
+ /**
82
+ * Дополнительный класс для поля
83
+ */
84
+ fieldClassName?: string;
85
+ /**
86
+ * Дополнительный класс инпута
87
+ */
88
+ inputClassName?: string;
89
+ /**
90
+ * Дополнительный класс для лейбла
91
+ */
92
+ labelClassName?: string;
93
+ /**
94
+ * Дополнительный класс для аддонов
95
+ */
96
+ addonsClassName?: string;
97
+ /**
98
+ * Класс, который будет установлен при фокусе
99
+ */
100
+ focusedClassName?: string;
101
+ /**
102
+ * Класс, который будет установлен, если в поле есть значение
103
+ */
104
+ filledClassName?: string;
105
+ /**
106
+ * Обработчик поля ввода
107
+ */
108
+ onChange?: (event: ChangeEvent<HTMLInputElement>, payload: {
109
+ value: string;
110
+ }) => void;
111
+ /**
112
+ * Обработчик нажатия на кнопку очистки
113
+ */
114
+ onClear?: (event: MouseEvent<HTMLButtonElement>) => void;
115
+ /**
116
+ * Обработчик клика по полю
117
+ */
118
+ onClick?: (event: MouseEvent<HTMLDivElement>) => void;
119
+ /**
120
+ * Обработчик MouseDown по полю
121
+ */
122
+ onMouseDown?: (event: MouseEvent<HTMLDivElement>) => void;
123
+ /**
124
+ * Обработчик MouseUp по полю
125
+ */
126
+ onMouseUp?: (event: MouseEvent<HTMLDivElement>) => void;
127
+ /**
128
+ * Идентификатор для систем автоматизированного тестирования
129
+ */
130
+ FormControlComponent?: ElementType;
131
+ /**
132
+ * Идентификатор для систем автоматизированного тестирования
133
+ */
134
+ dataTestId?: string;
135
+ /**
136
+ * Стили компонента для default и inverted режима.
137
+ */
138
+ colorStyles?: StyleColors;
139
+ };
140
+ type InputProps = Omit<BaseInputProps, "FormControlComponent" | "colorStyles"> & {
141
+ /**
142
+ * Контрольная точка, с нее начинается desktop версия
143
+ * @default 1024
144
+ */
145
+ breakpoint?: number;
146
+ /**
147
+ * Значение по-умолчанию для хука useMatchMedia
148
+ */
149
+ defaultMatchMediaValue?: boolean | (() => boolean);
150
+ };
151
+ declare const Input: React.ForwardRefExoticComponent<Omit<BaseInputProps, "FormControlComponent" | "colorStyles"> & {
152
+ breakpoint?: number | undefined;
153
+ defaultMatchMediaValue?: boolean | (() => boolean) | undefined;
154
+ } & React.RefAttributes<HTMLInputElement>>;
155
+ type InputDesktopProps = Omit<BaseInputProps, "FormControlComponent" | "colorStyles">;
156
+ declare const InputDesktop: React.ForwardRefExoticComponent<InputDesktopProps & React.RefAttributes<HTMLInputElement>>;
157
+ type InputMobileProps = Omit<BaseInputProps, "FormControlComponent" | "colorStyles">;
158
+ declare const InputMobile: React.ForwardRefExoticComponent<InputMobileProps & React.RefAttributes<HTMLInputElement>>;
159
+ export { InputProps, Input, InputDesktopProps, InputDesktop, InputMobileProps, InputMobile };
160
+ export * from "./Component.desktop-785df74d";
@@ -0,0 +1,3 @@
1
+ export * from "./Component-89a3cf4c";
2
+ export * from "./index-ebda875c";
3
+ export type { NavigationBarProps } from "./types-ebda875c";
@@ -0,0 +1,81 @@
1
+ /// <reference types="react" />
2
+ /// <reference types="react-transition-group" />
3
+ import React from "react";
4
+ import { ButtonHTMLAttributes, ElementType, FC, AnchorHTMLAttributes, ReactElement } from "react";
5
+ import { ButtonProps } from "@alfalab/core-components-button";
6
+ interface CloserProps extends ButtonHTMLAttributes<HTMLButtonElement> {
7
+ /**
8
+ * Вид компонента
9
+ */
10
+ view: "desktop" | "mobile";
11
+ /**
12
+ * Дополнительный класс
13
+ */
14
+ className?: string;
15
+ /**
16
+ * Позиция крестика
17
+ */
18
+ align?: "left" | "right";
19
+ /**
20
+ * Фиксирует крестик
21
+ */
22
+ sticky?: boolean;
23
+ /**
24
+ * Иконка
25
+ */
26
+ icon?: ElementType;
27
+ /**
28
+ * Идентификатор для систем автоматизированного тестирования
29
+ */
30
+ dataTestId?: string;
31
+ /**
32
+ * Коллбэк закрытия.
33
+ */
34
+ onClose?: (event: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>, reason?: "backdropClick" | "escapeKeyDown" | "closerClick") => void;
35
+ }
36
+ declare const Closer: FC<CloserProps>;
37
+ type IconButtonProps = {
38
+ /**
39
+ * Компонент иконки
40
+ */
41
+ icon: ElementType<{
42
+ className?: string;
43
+ }> | ReactElement;
44
+ /**
45
+ * Тип кнопки
46
+ */
47
+ view?: "primary" | "secondary" | "transparent" | "tertiary" | "negative";
48
+ /**
49
+ * Размер компонента
50
+ */
51
+ size?: "xxs" | "xs" | "s";
52
+ /**
53
+ * Дополнительный класс
54
+ */
55
+ className?: string;
56
+ /**
57
+ * Выравнивание иконки
58
+ * @default 'center'
59
+ */
60
+ alignIcon?: "left" | "center" | "right";
61
+ /**
62
+ * Идентификатор для систем автоматизированного тестирования
63
+ */
64
+ dataTestId?: string;
65
+ /**
66
+ * Набор цветов для компонента
67
+ */
68
+ colors?: "default" | "inverted";
69
+ } & Omit<ButtonHTMLAttributes<HTMLButtonElement>, "size"> & Pick<ButtonProps, "href" | "loading" | "breakpoint"> & Pick<AnchorHTMLAttributes<HTMLAnchorElement>, "target" | "download">;
70
+ declare const IconButton: React.ForwardRefExoticComponent<{
71
+ icon: ElementType<{
72
+ className?: string;
73
+ }> | ReactElement;
74
+ view?: "primary" | "secondary" | "tertiary" | "transparent" | "negative" | undefined;
75
+ size?: "s" | "xs" | "xxs" | undefined;
76
+ className?: string | undefined;
77
+ alignIcon?: "center" | "right" | "left" | undefined;
78
+ dataTestId?: string | undefined;
79
+ colors?: "default" | "inverted" | undefined;
80
+ } & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "size"> & Pick<ButtonProps, "href" | "loading" | "breakpoint"> & Pick<React.AnchorHTMLAttributes<HTMLAnchorElement>, "download" | "target"> & React.RefAttributes<HTMLButtonElement>>;
81
+ export { CloserProps, Closer, IconButtonProps, IconButton };
@@ -0,0 +1,3 @@
1
+ export * from "./component-89a3cf4c";
2
+ export type { BottomSheetProps, BottomSheetTitleAlign } from "./types-425c8522";
3
+ export { CLOSE_OFFSET, HEADER_OFFSET } from "./utils-49cc3c24";
package/index.css CHANGED
@@ -1,4 +1,4 @@
1
- /* hash: 1atc9 */
1
+ /* hash: 5cg11 */
2
2
  :root {
3
3
  } /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
4
4
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -16,13 +16,13 @@
16
16
  --gap-m: 16px;
17
17
  } :root {
18
18
  } :root {
19
- } .picker-button__container_1uvx5 {
19
+ } .picker-button__container_1dqr7 {
20
20
  min-width: auto;
21
- } .cc-picker-button.picker-button__optionsPopover_1uvx5.picker-button__sideGap_1uvx5 {
21
+ } .cc-picker-button.picker-button__optionsPopover_1dqr7.picker-button__sideGap_1dqr7 {
22
22
  padding: 0 var(--gap-xs);
23
- } .cc-picker-button .picker-button__option_1uvx5 {
23
+ } .cc-picker-button .picker-button__option_1dqr7 {
24
24
  padding: 0 var(--gap-m)
25
- } .cc-picker-button .picker-button__option_1uvx5:before {
25
+ } .cc-picker-button .picker-button__option_1dqr7:before {
26
26
  /* Удаляем разделители у опций выпадающего списка. */
27
27
  display: none;
28
28
  }