@alfalab/core-components-select 15.2.3 → 16.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 (362) hide show
  1. package/Component.desktop.d.ts +3 -16
  2. package/Component.desktop.js +4 -2
  3. package/Component.mobile.d.ts +3 -39
  4. package/Component.mobile.js +23 -10
  5. package/Component.modal.mobile.d.ts +2 -58
  6. package/Component.modal.mobile.js +23 -35
  7. package/Component.responsive.d.ts +3 -17
  8. package/Component.responsive.js +11 -13
  9. package/components/arrow/Component.js +1 -1
  10. package/components/arrow/index.css +5 -5
  11. package/components/base-checkmark/Component.js +1 -1
  12. package/components/base-checkmark/index.css +4 -4
  13. package/components/base-option/Component.js +1 -1
  14. package/components/base-option/index.css +16 -16
  15. package/components/base-select/Component.d.ts +17 -2
  16. package/components/base-select/Component.js +188 -81
  17. package/components/base-select/index.css +12 -12
  18. package/components/base-select/index.js +1 -1
  19. package/{esm/components/base-select-mobile/index.css → components/base-select/mobile.css} +13 -22
  20. package/components/checkmark/Component.js +1 -1
  21. package/components/checkmark/index.css +11 -11
  22. package/components/checkmark-mobile/Component.js +1 -1
  23. package/components/checkmark-mobile/index.css +6 -6
  24. package/components/field/Component.js +1 -1
  25. package/components/field/index.css +15 -17
  26. package/components/footer/Component.d.ts +12 -0
  27. package/components/{base-select-mobile/footer → footer}/Component.js +6 -5
  28. package/{modern/components/base-select-mobile → components}/footer/index.css +6 -6
  29. package/components/footer/index.d.ts +1 -0
  30. package/components/{base-select-mobile/footer → footer}/index.js +3 -2
  31. package/components/index.js +2 -1
  32. package/components/optgroup/Component.js +1 -1
  33. package/components/optgroup/index.css +7 -7
  34. package/components/option/Component.js +1 -1
  35. package/components/option/index.css +24 -24
  36. package/components/options-list/Component.js +7 -3
  37. package/components/options-list/index.css +11 -11
  38. package/components/options-list/index.js +2 -1
  39. package/components/search/Component.d.ts +2 -4
  40. package/components/search/Component.js +1 -1
  41. package/components/search/index.css +2 -2
  42. package/components/virtual-options-list/Component.js +7 -3
  43. package/components/virtual-options-list/index.css +18 -18
  44. package/components/virtual-options-list/index.js +2 -1
  45. package/cssm/Component.desktop.d.ts +3 -16
  46. package/cssm/Component.desktop.js +5 -2
  47. package/cssm/Component.mobile.d.ts +3 -39
  48. package/cssm/Component.mobile.js +27 -13
  49. package/cssm/Component.modal.mobile.d.ts +2 -58
  50. package/cssm/Component.modal.mobile.js +28 -39
  51. package/cssm/Component.responsive.d.ts +3 -17
  52. package/cssm/Component.responsive.js +13 -15
  53. package/cssm/components/arrow/index.module.css +2 -2
  54. package/cssm/components/base-option/index.module.css +3 -3
  55. package/cssm/components/base-select/Component.d.ts +17 -2
  56. package/cssm/components/base-select/Component.js +186 -80
  57. package/cssm/components/base-select/index.js +2 -1
  58. package/cssm/components/base-select/index.module.css +2 -2
  59. package/cssm/components/{base-select-mobile/index.module.css → base-select/mobile.module.css} +0 -9
  60. package/cssm/components/checkmark/index.module.css +1 -1
  61. package/cssm/components/field/index.module.css +3 -5
  62. package/cssm/components/footer/Component.d.ts +12 -0
  63. package/cssm/components/{base-select-mobile/footer → footer}/Component.js +5 -4
  64. package/cssm/components/footer/index.d.ts +1 -0
  65. package/cssm/components/{base-select-mobile/footer → footer}/index.js +3 -2
  66. package/cssm/components/{base-select-mobile/footer → footer}/index.module.css +1 -1
  67. package/cssm/components/index.js +3 -1
  68. package/cssm/components/optgroup/index.module.css +1 -1
  69. package/cssm/components/option/index.module.css +4 -4
  70. package/cssm/components/options-list/Component.js +6 -2
  71. package/cssm/components/options-list/index.js +2 -1
  72. package/cssm/components/options-list/index.module.css +2 -2
  73. package/cssm/components/search/Component.d.ts +2 -4
  74. package/cssm/components/virtual-options-list/Component.js +6 -2
  75. package/cssm/components/virtual-options-list/index.js +2 -1
  76. package/cssm/components/virtual-options-list/index.module.css +3 -3
  77. package/cssm/desktop/index.d.ts +2 -0
  78. package/cssm/desktop/index.js +51 -0
  79. package/cssm/{hook-244c8d6e.js → hook-2f9ec939.js} +9 -5
  80. package/{esm/hook-8abfea97.d.ts → cssm/hook-ad89c253.d.ts} +3 -2
  81. package/cssm/index.d.ts +2 -2
  82. package/cssm/index.js +10 -9
  83. package/cssm/mobile/index.d.ts +3 -0
  84. package/cssm/mobile/index.js +67 -0
  85. package/cssm/presets/index.d.ts +1 -1
  86. package/cssm/presets/index.js +3 -2
  87. package/cssm/presets/useSelectWithApply/hook.js +3 -2
  88. package/cssm/presets/useSelectWithApply/options-list-with-apply/Component.js +3 -2
  89. package/cssm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  90. package/cssm/presets/useSelectWithApply/options-list-with-apply/index.js +3 -2
  91. package/cssm/shared/index.d.ts +12 -0
  92. package/cssm/shared/index.js +87 -0
  93. package/cssm/typings.d.ts +86 -7
  94. package/desktop/index.d.ts +2 -0
  95. package/{desktop.js → desktop/index.js} +16 -14
  96. package/desktop/package.json +3 -0
  97. package/esm/Component.desktop.d.ts +3 -16
  98. package/esm/Component.desktop.js +4 -2
  99. package/esm/Component.mobile.d.ts +3 -39
  100. package/esm/Component.mobile.js +22 -9
  101. package/esm/Component.modal.mobile.d.ts +2 -58
  102. package/esm/Component.modal.mobile.js +24 -36
  103. package/esm/Component.responsive.d.ts +3 -17
  104. package/esm/Component.responsive.js +11 -13
  105. package/esm/components/arrow/Component.js +1 -1
  106. package/esm/components/arrow/index.css +5 -5
  107. package/esm/components/base-checkmark/Component.js +1 -1
  108. package/esm/components/base-checkmark/index.css +4 -4
  109. package/esm/components/base-option/Component.js +1 -1
  110. package/esm/components/base-option/index.css +16 -16
  111. package/esm/components/base-select/Component.d.ts +17 -2
  112. package/esm/components/base-select/Component.js +190 -83
  113. package/esm/components/base-select/index.css +12 -12
  114. package/esm/components/base-select/index.js +1 -1
  115. package/{components/base-select-mobile/index.css → esm/components/base-select/mobile.css} +13 -22
  116. package/esm/components/checkmark/Component.js +1 -1
  117. package/esm/components/checkmark/index.css +11 -11
  118. package/esm/components/checkmark-mobile/Component.js +1 -1
  119. package/esm/components/checkmark-mobile/index.css +6 -6
  120. package/esm/components/field/Component.js +1 -1
  121. package/esm/components/field/index.css +15 -17
  122. package/esm/components/footer/Component.d.ts +12 -0
  123. package/esm/components/{base-select-mobile/footer → footer}/Component.js +6 -5
  124. package/{components/base-select-mobile → esm/components}/footer/index.css +6 -6
  125. package/esm/components/footer/index.d.ts +1 -0
  126. package/esm/components/{base-select-mobile/footer → footer}/index.js +1 -0
  127. package/esm/components/index.js +2 -1
  128. package/esm/components/optgroup/Component.js +1 -1
  129. package/esm/components/optgroup/index.css +7 -7
  130. package/esm/components/option/Component.js +1 -1
  131. package/esm/components/option/index.css +24 -24
  132. package/esm/components/options-list/Component.js +7 -3
  133. package/esm/components/options-list/index.css +11 -11
  134. package/esm/components/options-list/index.js +2 -1
  135. package/esm/components/search/Component.d.ts +2 -4
  136. package/esm/components/search/Component.js +1 -1
  137. package/esm/components/search/index.css +2 -2
  138. package/esm/components/virtual-options-list/Component.js +7 -3
  139. package/esm/components/virtual-options-list/index.css +18 -18
  140. package/esm/components/virtual-options-list/index.js +2 -1
  141. package/esm/desktop/index.d.ts +2 -0
  142. package/esm/{desktop.js → desktop/index.js} +16 -14
  143. package/esm/{hook-e63a15d0.js → hook-8209d0d1.js} +10 -6
  144. package/{cssm/hook-8abfea97.d.ts → esm/hook-ad89c253.d.ts} +3 -2
  145. package/esm/index.d.ts +2 -2
  146. package/esm/index.js +8 -7
  147. package/esm/mobile/index.d.ts +3 -0
  148. package/esm/mobile/index.js +44 -0
  149. package/esm/presets/index.d.ts +1 -1
  150. package/esm/presets/index.js +3 -2
  151. package/esm/presets/useSelectWithApply/hook.js +3 -2
  152. package/esm/presets/useSelectWithApply/options-list-with-apply/Component.js +3 -2
  153. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
  154. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  155. package/esm/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  156. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  157. package/esm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  158. package/esm/presets/useSelectWithApply/options-list-with-apply/index.js +3 -2
  159. package/esm/presets/useSelectWithLoading/hook.js +1 -1
  160. package/esm/presets/useSelectWithLoading/index.css +2 -2
  161. package/esm/shared/index.d.ts +12 -0
  162. package/esm/shared/index.js +42 -0
  163. package/esm/typings.d.ts +86 -7
  164. package/{hook-8abfea97.d.ts → hook-ad89c253.d.ts} +3 -2
  165. package/{hook-74d61833.js → hook-cb17586d.js} +9 -5
  166. package/index.d.ts +2 -2
  167. package/index.js +8 -7
  168. package/mobile/index.d.ts +3 -0
  169. package/mobile/index.js +53 -0
  170. package/mobile/package.json +3 -0
  171. package/modern/Component.desktop.d.ts +3 -16
  172. package/modern/Component.desktop.js +5 -3
  173. package/modern/Component.mobile.d.ts +3 -39
  174. package/modern/Component.mobile.js +29 -13
  175. package/modern/Component.modal.mobile.d.ts +2 -58
  176. package/modern/Component.modal.mobile.js +23 -43
  177. package/modern/Component.responsive.d.ts +3 -17
  178. package/modern/Component.responsive.js +11 -13
  179. package/modern/components/arrow/Component.js +1 -1
  180. package/modern/components/arrow/index.css +5 -5
  181. package/modern/components/base-checkmark/Component.js +1 -1
  182. package/modern/components/base-checkmark/index.css +4 -4
  183. package/modern/components/base-option/Component.js +1 -1
  184. package/modern/components/base-option/index.css +16 -16
  185. package/modern/components/base-select/Component.d.ts +17 -2
  186. package/modern/components/base-select/Component.js +179 -72
  187. package/modern/components/base-select/index.css +12 -12
  188. package/modern/components/base-select/index.js +1 -1
  189. package/modern/components/{base-select-mobile/index.css → base-select/mobile.css} +13 -22
  190. package/modern/components/checkmark/Component.js +1 -1
  191. package/modern/components/checkmark/index.css +11 -11
  192. package/modern/components/checkmark-mobile/Component.js +1 -1
  193. package/modern/components/checkmark-mobile/index.css +6 -6
  194. package/modern/components/field/Component.js +1 -1
  195. package/modern/components/field/index.css +15 -17
  196. package/modern/components/footer/Component.d.ts +12 -0
  197. package/modern/components/{base-select-mobile/footer → footer}/Component.js +5 -4
  198. package/{esm/components/base-select-mobile → modern/components}/footer/index.css +6 -6
  199. package/modern/components/footer/index.d.ts +1 -0
  200. package/modern/components/{base-select-mobile/footer → footer}/index.js +1 -0
  201. package/modern/components/index.js +2 -1
  202. package/modern/components/optgroup/Component.js +1 -1
  203. package/modern/components/optgroup/index.css +7 -7
  204. package/modern/components/option/Component.js +1 -1
  205. package/modern/components/option/index.css +24 -24
  206. package/modern/components/options-list/Component.js +5 -3
  207. package/modern/components/options-list/index.css +11 -11
  208. package/modern/components/options-list/index.js +2 -1
  209. package/modern/components/search/Component.d.ts +2 -4
  210. package/modern/components/search/Component.js +1 -1
  211. package/modern/components/search/index.css +2 -2
  212. package/modern/components/virtual-options-list/Component.js +5 -3
  213. package/modern/components/virtual-options-list/index.css +18 -18
  214. package/modern/components/virtual-options-list/index.js +2 -1
  215. package/modern/desktop/index.d.ts +2 -0
  216. package/modern/{desktop.js → desktop/index.js} +16 -14
  217. package/modern/{hook-5e1db0b0.js → hook-4a3d365d.js} +7 -3
  218. package/modern/{hook-8abfea97.d.ts → hook-ad89c253.d.ts} +3 -2
  219. package/modern/index.d.ts +2 -2
  220. package/modern/index.js +8 -7
  221. package/modern/mobile/index.d.ts +3 -0
  222. package/modern/mobile/index.js +43 -0
  223. package/modern/presets/index.d.ts +1 -1
  224. package/modern/presets/index.js +3 -2
  225. package/modern/presets/useSelectWithApply/hook.js +3 -2
  226. package/modern/presets/useSelectWithApply/options-list-with-apply/Component.js +3 -2
  227. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
  228. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  229. package/modern/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  230. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  231. package/modern/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  232. package/modern/presets/useSelectWithApply/options-list-with-apply/index.js +3 -2
  233. package/modern/presets/useSelectWithLoading/hook.js +1 -1
  234. package/modern/presets/useSelectWithLoading/index.css +2 -2
  235. package/modern/shared/index.d.ts +12 -0
  236. package/modern/shared/index.js +41 -0
  237. package/modern/typings.d.ts +86 -7
  238. package/package.json +12 -10
  239. package/presets/index.d.ts +1 -1
  240. package/presets/index.js +3 -2
  241. package/presets/useSelectWithApply/hook.js +3 -2
  242. package/presets/useSelectWithApply/options-list-with-apply/Component.js +3 -2
  243. package/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
  244. package/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  245. package/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  246. package/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  247. package/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  248. package/presets/useSelectWithApply/options-list-with-apply/index.js +3 -2
  249. package/presets/useSelectWithLoading/hook.js +1 -1
  250. package/presets/useSelectWithLoading/index.css +2 -2
  251. package/shared/index.d.ts +12 -0
  252. package/{shared.js → shared/index.js} +44 -43
  253. package/shared/package.json +3 -0
  254. package/src/Component.desktop.tsx +5 -14
  255. package/src/Component.mobile.tsx +38 -57
  256. package/src/Component.modal.mobile.tsx +5 -147
  257. package/src/Component.responsive.tsx +9 -44
  258. package/src/components/base-select/Component.tsx +380 -156
  259. package/src/components/base-select/index.module.css +1 -1
  260. package/src/components/{base-select-mobile/index.module.css → base-select/mobile.module.css} +0 -15
  261. package/src/components/{base-select-mobile/footer → footer}/Component.tsx +22 -4
  262. package/src/components/{base-select-mobile/footer → footer}/index.module.css +1 -1
  263. package/src/components/footer/index.ts +1 -0
  264. package/src/components/options-list/Component.tsx +6 -2
  265. package/src/components/virtual-options-list/Component.tsx +6 -2
  266. package/src/desktop/index.ts +2 -0
  267. package/src/desktop/package.json +3 -0
  268. package/src/index.ts +2 -4
  269. package/src/mobile/index.ts +4 -0
  270. package/src/mobile/package.json +3 -0
  271. package/src/presets/useSelectWithApply/hook.tsx +9 -3
  272. package/src/shared/index.ts +13 -0
  273. package/src/shared/package.json +3 -0
  274. package/src/typings.ts +110 -9
  275. package/src/vars.css +1 -1
  276. package/typings.d.ts +86 -7
  277. package/Component-89f0cb07.d.ts +0 -38
  278. package/Component.mobile-ebda875c.d.ts +0 -6
  279. package/Component.mobile-f1f15074.d.ts +0 -404
  280. package/components/base-select-mobile/Component.d.ts +0 -70
  281. package/components/base-select-mobile/Component.js +0 -296
  282. package/components/base-select-mobile/footer/Component.d.ts +0 -9
  283. package/components/base-select-mobile/footer/index.d.ts +0 -1
  284. package/components/base-select-mobile/index.d.ts +0 -1
  285. package/components/base-select-mobile/index.js +0 -36
  286. package/cssm/Component-89f0cb07.d.ts +0 -38
  287. package/cssm/Component.mobile-ebda875c.d.ts +0 -6
  288. package/cssm/Component.mobile-f1f15074.d.ts +0 -404
  289. package/cssm/components/base-select-mobile/Component.d.ts +0 -70
  290. package/cssm/components/base-select-mobile/Component.js +0 -303
  291. package/cssm/components/base-select-mobile/footer/Component.d.ts +0 -9
  292. package/cssm/components/base-select-mobile/footer/index.d.ts +0 -1
  293. package/cssm/components/base-select-mobile/index.d.ts +0 -1
  294. package/cssm/components/base-select-mobile/index.js +0 -45
  295. package/cssm/desktop-69921c40.d.ts +0 -6
  296. package/cssm/desktop.d.ts +0 -2
  297. package/cssm/desktop.js +0 -48
  298. package/cssm/index-ebda875c.d.ts +0 -2
  299. package/cssm/mobile-96988a65.d.ts +0 -2
  300. package/cssm/mobile.d.ts +0 -5
  301. package/cssm/mobile.js +0 -62
  302. package/cssm/shared.d.ts +0 -5
  303. package/cssm/shared.js +0 -85
  304. package/cssm/typings-89f0cb07.d.ts +0 -93
  305. package/cssm/typings-baf4875b.d.ts +0 -52
  306. package/desktop-69921c40.d.ts +0 -6
  307. package/desktop.d.ts +0 -2
  308. package/esm/Component-89f0cb07.d.ts +0 -38
  309. package/esm/Component.mobile-ebda875c.d.ts +0 -6
  310. package/esm/Component.mobile-f1f15074.d.ts +0 -404
  311. package/esm/components/base-select-mobile/Component.d.ts +0 -70
  312. package/esm/components/base-select-mobile/Component.js +0 -286
  313. package/esm/components/base-select-mobile/footer/Component.d.ts +0 -9
  314. package/esm/components/base-select-mobile/footer/index.d.ts +0 -1
  315. package/esm/components/base-select-mobile/index.d.ts +0 -1
  316. package/esm/components/base-select-mobile/index.js +0 -28
  317. package/esm/desktop-69921c40.d.ts +0 -6
  318. package/esm/desktop.d.ts +0 -2
  319. package/esm/index-ebda875c.d.ts +0 -2
  320. package/esm/mobile-96988a65.d.ts +0 -2
  321. package/esm/mobile.d.ts +0 -5
  322. package/esm/mobile.js +0 -40
  323. package/esm/shared.d.ts +0 -5
  324. package/esm/shared.js +0 -41
  325. package/esm/typings-89f0cb07.d.ts +0 -93
  326. package/esm/typings-baf4875b.d.ts +0 -52
  327. package/index-ebda875c.d.ts +0 -2
  328. package/mobile-96988a65.d.ts +0 -2
  329. package/mobile.d.ts +0 -5
  330. package/mobile.js +0 -49
  331. package/modern/Component-89f0cb07.d.ts +0 -38
  332. package/modern/Component.mobile-ebda875c.d.ts +0 -6
  333. package/modern/Component.mobile-f1f15074.d.ts +0 -404
  334. package/modern/components/base-select-mobile/Component.d.ts +0 -70
  335. package/modern/components/base-select-mobile/Component.js +0 -285
  336. package/modern/components/base-select-mobile/footer/Component.d.ts +0 -9
  337. package/modern/components/base-select-mobile/footer/index.d.ts +0 -1
  338. package/modern/components/base-select-mobile/index.d.ts +0 -1
  339. package/modern/components/base-select-mobile/index.js +0 -27
  340. package/modern/desktop-69921c40.d.ts +0 -6
  341. package/modern/desktop.d.ts +0 -2
  342. package/modern/index-ebda875c.d.ts +0 -2
  343. package/modern/mobile-96988a65.d.ts +0 -2
  344. package/modern/mobile.d.ts +0 -5
  345. package/modern/mobile.js +0 -39
  346. package/modern/shared.d.ts +0 -5
  347. package/modern/shared.js +0 -40
  348. package/modern/typings-89f0cb07.d.ts +0 -93
  349. package/modern/typings-baf4875b.d.ts +0 -52
  350. package/shared.d.ts +0 -5
  351. package/src/components/base-select-mobile/Component.tsx +0 -572
  352. package/src/components/base-select-mobile/footer/index.ts +0 -1
  353. package/src/components/base-select-mobile/index.ts +0 -1
  354. package/src/desktop.ts +0 -1
  355. package/src/mobile.ts +0 -5
  356. package/src/shared.ts +0 -5
  357. package/typings-89f0cb07.d.ts +0 -93
  358. package/typings-baf4875b.d.ts +0 -52
  359. /package/cssm/{hook-244c8d6e.d.ts → hook-2f9ec939.d.ts} +0 -0
  360. /package/esm/{hook-e63a15d0.d.ts → hook-8209d0d1.d.ts} +0 -0
  361. /package/{hook-74d61833.d.ts → hook-cb17586d.d.ts} +0 -0
  362. /package/modern/{hook-5e1db0b0.d.ts → hook-4a3d365d.d.ts} +0 -0
@@ -1,285 +0,0 @@
1
- import React, { forwardRef, useRef, useMemo, useEffect } from 'react';
2
- import mergeRefs from 'react-merge-refs';
3
- import cn from 'classnames';
4
- import { useMultipleSelection, useCombobox } from 'downshift';
5
- import { BottomSheet } from '@alfalab/core-components-bottom-sheet/modern';
6
- import { ModalMobile } from '@alfalab/core-components-modal/modern/mobile';
7
- import { getDataTestId } from '@alfalab/core-components-shared/modern';
8
- import { defaultAccessor, processOptions, defaultFilterFn } from '../../utils.js';
9
- import { Arrow } from '../arrow/Component.js';
10
- import { Field } from '../field/Component.js';
11
- import { Optgroup } from '../optgroup/Component.js';
12
- import { Option } from '../option/Component.js';
13
- import { OptionsList } from '../options-list/Component.js';
14
- import { Search } from '../search/Component.js';
15
- import '@alfalab/icons-glyph/ChevronDownMIcon';
16
- import '@alfalab/hooks';
17
- import '../checkmark/Component.js';
18
- import '@alfalab/core-components-badge/modern';
19
- import '@alfalab/core-components-checkbox/modern';
20
- import '@alfalab/icons-glyph/CheckmarkCircleMIcon';
21
- import '@alfalab/icons-glyph/CheckmarkMIcon';
22
- import '../checkmark-mobile/Component.js';
23
- import '@alfalab/core-components-scrollbar/modern';
24
- import '../../consts.js';
25
- import '@alfalab/core-components-input/modern';
26
- import '@alfalab/icons-glyph/MagnifierMIcon';
27
-
28
- const styles = {"component":"select__component_r2ukf","sheet":"select__sheet_r2ukf","sheetContent":"select__sheetContent_r2ukf","modalContent":"select__modalContent_r2ukf","sheetContainer":"select__sheetContainer_r2ukf","block":"select__block_r2ukf","optionsListWrapper":"select__optionsListWrapper_r2ukf","optionsList":"select__optionsList_r2ukf","scrollbar":"select__scrollbar_r2ukf","emptySearchPlaceholder":"select__emptySearchPlaceholder_r2ukf","search":"select__search_r2ukf","option":"select__option_r2ukf","optionGroup":"select__optionGroup_r2ukf"};
29
- require('./index.css')
30
-
31
- const BaseSelectMobile = forwardRef(({ dataTestId, className, fieldClassName, optionsListClassName, optionClassName, optionGroupClassName, optionsListProps, options = [], autocomplete = false, multiple = false, allowUnselect = false, disabled = false, closeOnSelect = !multiple, circularNavigation = false, defaultOpen = false, open: openProp, optionsListWidth = 'content', name, id, selected = [], size = 'm', optionsSize = 'm', error, hint, block, label, labelView, placeholder, fieldProps = {}, optionProps = {}, searchProps = {}, showSearch = false, valueRenderer, onChange, onOpen, onFocus, onBlur, Arrow: Arrow$1 = Arrow, Field: Field$1 = Field, Optgroup: Optgroup$1 = Optgroup, Option: Option$1 = Option, OptionsList: OptionsList$1 = OptionsList, Search: Search$1 = Search, swipeable, footer, isBottomSheet, bottomSheetProps, modalProps, modalHeaderProps, modalFooterProps, showEmptyOptionsList = false, }, ref) => {
32
- const rootRef = useRef(null);
33
- const fieldRef = useRef(null);
34
- const listRef = useRef(null);
35
- const initiatorRef = useRef(null);
36
- const alreadyClickedRef = useRef(false);
37
- const searchRef = useRef(null);
38
- const [searchState, setSearchState] = React.useState('');
39
- const [search, setSearch] = typeof searchProps?.value === 'string'
40
- ? [searchProps.value, searchProps.onChange]
41
- : [searchState, setSearchState];
42
- const itemToString = (option) => (option ? option.key : '');
43
- const accessor = searchProps.accessor || defaultAccessor;
44
- const { filteredOptions, flatOptions, selectedOptions } = useMemo(() => processOptions(options, selected, (option) => defaultFilterFn(accessor(option), search)), [accessor, options, search, selected]);
45
- const scrollableContainerRef = useRef(null);
46
- const useMultipleSelectionProps = {
47
- itemToString,
48
- onSelectedItemsChange: (changes) => {
49
- if (onChange) {
50
- const { selectedItems = [] } = changes;
51
- onChange({
52
- selectedMultiple: selectedItems,
53
- selected: selectedItems.length ? selectedItems[0] : null,
54
- initiator: initiatorRef.current,
55
- name,
56
- });
57
- initiatorRef.current = null;
58
- }
59
- },
60
- stateReducer: (state, actionAndChanges) => {
61
- const { type, changes } = actionAndChanges;
62
- if (!allowUnselect &&
63
- type === useMultipleSelection.stateChangeTypes.DropdownKeyDownBackspace) {
64
- return state;
65
- }
66
- return changes;
67
- },
68
- };
69
- if (selected !== undefined) {
70
- useMultipleSelectionProps.selectedItems = selectedOptions;
71
- }
72
- const { selectedItems, addSelectedItem, setSelectedItems, removeSelectedItem, getDropdownProps, } = useMultipleSelection(useMultipleSelectionProps);
73
- const { isOpen: open, getMenuProps, getInputProps, getItemProps, getComboboxProps, getLabelProps, highlightedIndex, toggleMenu, openMenu, } = useCombobox({
74
- id,
75
- isOpen: openProp,
76
- circularNavigation,
77
- items: flatOptions,
78
- itemToString,
79
- defaultHighlightedIndex: -1,
80
- onIsOpenChange: ({ isOpen }) => {
81
- if (onOpen) {
82
- /**
83
- * Вызываем обработчик асинхронно.
84
- *
85
- * Иначе при клике вне открытого селекта сначала сработает onOpen, который закроет селект,
86
- * А затем сработает onClick кнопки открытия\закрытия с open=false и в итоге селект откроется снова.
87
- */
88
- setTimeout(() => {
89
- onOpen({
90
- open: isOpen,
91
- name,
92
- });
93
- }, 0);
94
- }
95
- if (showSearch) {
96
- if (isOpen) {
97
- setTimeout(() => {
98
- searchRef.current?.focus();
99
- // BottomSheet transition duration
100
- }, 500);
101
- }
102
- else {
103
- setSearch?.('');
104
- }
105
- }
106
- },
107
- stateReducer: (state, actionAndChanges) => {
108
- const { type, changes } = actionAndChanges;
109
- const { selectedItem } = changes;
110
- switch (type) {
111
- case useCombobox.stateChangeTypes.InputBlur:
112
- return state;
113
- case useCombobox.stateChangeTypes.InputKeyDownEnter:
114
- case useCombobox.stateChangeTypes.ItemClick:
115
- initiatorRef.current = selectedItem;
116
- if (selectedItem && !selectedItem.disabled && !alreadyClickedRef.current) {
117
- // TODO!!! Проблема downshift + React 18. ItemClick срабатывает дважды. См https://github.com/downshift-js/downshift/issues/1384
118
- if (React.version.indexOf('18') === 0) {
119
- alreadyClickedRef.current = true;
120
- setTimeout(() => {
121
- alreadyClickedRef.current = false;
122
- });
123
- }
124
- const alreadySelected = selectedItems.includes(selectedItem);
125
- const allowRemove = allowUnselect || (multiple && selectedItems.length > 1);
126
- if (alreadySelected && allowRemove) {
127
- if (multiple) {
128
- removeSelectedItem(selectedItem);
129
- }
130
- else {
131
- setSelectedItems([]);
132
- }
133
- }
134
- if (!alreadySelected) {
135
- if (multiple) {
136
- addSelectedItem(selectedItem);
137
- }
138
- else {
139
- setSelectedItems([selectedItem]);
140
- }
141
- }
142
- }
143
- return {
144
- ...changes,
145
- isOpen: !closeOnSelect || multiple,
146
- // при closeOnSelect === false - сохраняем подсвеченный индекс
147
- highlightedIndex: state.isOpen && !closeOnSelect
148
- ? state.highlightedIndex
149
- : changes.highlightedIndex,
150
- };
151
- default:
152
- return changes;
153
- }
154
- },
155
- });
156
- const menuProps = getMenuProps({ ref: listRef }, { suppressRefError: true });
157
- const inputProps = getInputProps(getDropdownProps({ ref: mergeRefs([ref, fieldRef]) }));
158
- const handleFieldFocus = (event) => {
159
- if (onFocus)
160
- onFocus(event);
161
- if (autocomplete && !open) {
162
- openMenu();
163
- }
164
- };
165
- const handleFieldBlur = (event) => {
166
- if (!open && onBlur)
167
- onBlur(event);
168
- };
169
- const handleFieldKeyDown = (event) => {
170
- inputProps.onKeyDown(event);
171
- // https://caniuse.com/?search=KeyboardEvent.key
172
- const isKeyUnsupported = event.key === 'Unidentified';
173
- if (autocomplete &&
174
- !open &&
175
- (isKeyUnsupported || event.key.length === 1 || event.key === 'Backspace')) {
176
- // Для автокомплита - открываем меню при начале ввода
177
- openMenu();
178
- }
179
- if ([' ', 'Enter'].includes(event.key) &&
180
- !autocomplete &&
181
- event.target.tagName !== 'INPUT' &&
182
- event.target.tagName !== 'BUTTON') {
183
- // Открываем\закрываем меню по нажатию enter или пробела
184
- event.preventDefault();
185
- if (!open || highlightedIndex === -1)
186
- toggleMenu();
187
- }
188
- };
189
- const handleFieldClick = (event) => {
190
- if (!autocomplete || event.target.tagName !== 'INPUT') {
191
- toggleMenu();
192
- }
193
- else {
194
- openMenu();
195
- }
196
- };
197
- const getOptionProps = (option, index) => {
198
- const selectedItem = selectedItems.some(({ key }) => key === option.key);
199
- return {
200
- ...optionProps,
201
- mobile: true,
202
- className: cn(styles.option, optionClassName),
203
- innerProps: getItemProps({
204
- index,
205
- item: option,
206
- disabled: option.disabled,
207
- onMouseDown: (event) => event.preventDefault(),
208
- }),
209
- multiple,
210
- index,
211
- option,
212
- size: optionsSize,
213
- disabled: option.disabled,
214
- highlighted: index === highlightedIndex,
215
- selected: selectedItem,
216
- dataTestId: getDataTestId(dataTestId, 'option'),
217
- };
218
- };
219
- useEffect(() => {
220
- if (defaultOpen)
221
- openMenu();
222
- }, [defaultOpen, openMenu]);
223
- useEffect(() => {
224
- if (openProp) {
225
- openMenu();
226
- }
227
- // eslint-disable-next-line react-hooks/exhaustive-deps
228
- }, []);
229
- const handleClose = () => {
230
- toggleMenu();
231
- };
232
- const renderValue = () => selectedItems.map((option) => (React.createElement("input", { type: 'hidden', name: name, value: option.key, key: option.key })));
233
- const renderSearch = () => showSearch && (React.createElement(Search$1, { ...searchProps?.componentProps, value: search, onChange: (_, payload) => setSearch?.(payload.value), dataTestId: getDataTestId(dataTestId, 'search'), onClear: () => setSearch?.(''), className: styles.search, ref: searchRef }));
234
- const { emptyPlaceholder } = optionsListProps;
235
- const renderEmptyPlaceholder = () => {
236
- if (emptyPlaceholder) {
237
- return emptyPlaceholder;
238
- }
239
- if (showSearch) {
240
- return React.createElement("div", { className: styles.emptySearchPlaceholder }, "\u041D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043D\u0430\u0448\u043B\u043E\u0441\u044C");
241
- }
242
- return undefined;
243
- };
244
- const renderOptionsList = () => {
245
- if (flatOptions.length === 0 && !showEmptyOptionsList && !showSearch)
246
- return null;
247
- return (React.createElement("div", { ...menuProps, className: cn(styles.optionsListWrapper, optionsListClassName) },
248
- React.createElement(OptionsList$1, { ...optionsListProps, ref: scrollableContainerRef, className: styles.optionsList, scrollbarClassName: styles.scrollbar, optionsListWidth: optionsListWidth, flatOptions: flatOptions, highlightedIndex: highlightedIndex, open: open, size: size, options: filteredOptions, Optgroup: Optgroup$1, Option: Option$1, selectedItems: selectedItems, setSelectedItems: setSelectedItems, toggleMenu: toggleMenu, getOptionProps: getOptionProps, visibleOptions: 0, dataTestId: getDataTestId(dataTestId, 'options-list'), optionGroupClassName: cn(styles.optionGroup, optionGroupClassName), emptyPlaceholder: renderEmptyPlaceholder() })));
249
- };
250
- return (React.createElement("div", { ...getComboboxProps({
251
- ref: rootRef,
252
- ...(disabled && { 'aria-disabled': true }),
253
- className: cn(styles.component, { [styles.block]: block }, className),
254
- }), onKeyDown: disabled ? undefined : handleFieldKeyDown, tabIndex: -1, "data-test-id": getDataTestId(dataTestId) },
255
- React.createElement(Field$1, { selectedMultiple: selectedItems, selected: selectedItems[0], setSelectedItems: setSelectedItems, toggleMenu: toggleMenu, multiple: multiple, open: open, disabled: disabled, size: size, placeholder: placeholder, label: label && React.createElement("span", { ...getLabelProps() }, label), labelView: labelView, Arrow: Arrow$1 && React.createElement(Arrow$1, { open: open }), error: error, hint: hint, valueRenderer: valueRenderer, className: fieldClassName, innerProps: {
256
- onBlur: handleFieldBlur,
257
- onFocus: disabled ? undefined : handleFieldFocus,
258
- onClick: disabled ? undefined : handleFieldClick,
259
- tabIndex: disabled ? -1 : 0,
260
- ref: mergeRefs([inputProps.ref]),
261
- id: inputProps.id,
262
- 'aria-labelledby': inputProps['aria-labelledby'],
263
- 'aria-controls': inputProps['aria-controls'],
264
- 'aria-autocomplete': autocomplete
265
- ? inputProps['aria-autocomplete']
266
- : undefined,
267
- }, dataTestId: getDataTestId(dataTestId, 'field'), ...fieldProps }),
268
- name && renderValue(),
269
- isBottomSheet ? (React.createElement(BottomSheet, { open: open, onClose: handleClose, className: styles.sheet, contentClassName: styles.sheetContent, containerClassName: styles.sheetContainer, title: label || placeholder, actionButton: footer, stickyHeader: true, hasCloser: true, swipeable: swipeable, scrollableContainerRef: scrollableContainerRef, initialHeight: showSearch ? 'full' : 'default', ...bottomSheetProps, bottomAddons: React.createElement(React.Fragment, null,
270
- renderSearch(),
271
- bottomSheetProps?.bottomAddons) }, renderOptionsList())) : (React.createElement(ModalMobile, { open: open, hasCloser: true, ...modalProps, onClose: (...args) => {
272
- handleClose();
273
- modalProps?.onClose?.(...args);
274
- }, contentClassName: cn(styles.sheetContent, modalProps?.contentClassName), ref: mergeRefs([
275
- scrollableContainerRef,
276
- modalProps?.ref,
277
- ]) },
278
- React.createElement(ModalMobile.Header, { hasCloser: true, sticky: true, ...modalHeaderProps, title: undefined, bottomAddons: React.createElement(React.Fragment, null,
279
- renderSearch(),
280
- modalHeaderProps?.bottomAddons) }, modalHeaderProps?.title || label || placeholder),
281
- React.createElement(ModalMobile.Content, { flex: true, className: styles.modalContent }, renderOptionsList()),
282
- modalFooterProps?.children && React.createElement(ModalMobile.Footer, { ...modalFooterProps })))));
283
- });
284
-
285
- export { BaseSelectMobile };
@@ -1,9 +0,0 @@
1
- /// <reference types="react" />
2
- import React from 'react';
3
- type FooterProps = {
4
- handleClear?: () => void;
5
- handleApply?: () => void;
6
- showClear?: boolean;
7
- };
8
- declare const Footer: ({ handleApply, handleClear, showClear }: FooterProps) => React.JSX.Element;
9
- export { FooterProps, Footer };
@@ -1 +0,0 @@
1
- export * from "./Component";
@@ -1 +0,0 @@
1
- export * from "./Component";
@@ -1,27 +0,0 @@
1
- export { BaseSelectMobile } from './Component.js';
2
- import 'react';
3
- import 'react-merge-refs';
4
- import 'classnames';
5
- import 'downshift';
6
- import '@alfalab/core-components-bottom-sheet/modern';
7
- import '@alfalab/core-components-modal/modern/mobile';
8
- import '@alfalab/core-components-shared/modern';
9
- import '../../utils.js';
10
- import '../arrow/Component.js';
11
- import '@alfalab/icons-glyph/ChevronDownMIcon';
12
- import '../field/Component.js';
13
- import '@alfalab/hooks';
14
- import '../optgroup/Component.js';
15
- import '../option/Component.js';
16
- import '../checkmark/Component.js';
17
- import '@alfalab/core-components-badge/modern';
18
- import '@alfalab/core-components-checkbox/modern';
19
- import '@alfalab/icons-glyph/CheckmarkCircleMIcon';
20
- import '@alfalab/icons-glyph/CheckmarkMIcon';
21
- import '../checkmark-mobile/Component.js';
22
- import '../options-list/Component.js';
23
- import '@alfalab/core-components-scrollbar/modern';
24
- import '../../consts.js';
25
- import '../search/Component.js';
26
- import '@alfalab/core-components-input/modern';
27
- import '@alfalab/icons-glyph/MagnifierMIcon';
@@ -1,6 +0,0 @@
1
- /// <reference types="react" />
2
- import React from "react";
3
- import { CommonButtonProps } from "./typings-89f0cb07";
4
- declare const ButtonDesktop: React.ForwardRefExoticComponent<CommonButtonProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
5
- export { ButtonDesktop };
6
- export type { CommonButtonProps as ButtonDesktopProps } from "./typings-89f0cb07";
@@ -1,2 +0,0 @@
1
- export { SelectDesktop, SelectDesktopProps } from "./Component.desktop";
2
- export {};
@@ -1,2 +0,0 @@
1
- /// <reference types="react" />
2
- export * from "./Component-89f0cb07";
@@ -1,2 +0,0 @@
1
- export * from "./Component.mobile-ebda875c";
2
- export {};
@@ -1,5 +0,0 @@
1
- export { SelectMobile } from "./Component.mobile";
2
- export { SelectModalMobile } from "./Component.modal.mobile";
3
- export type { SelectMobileProps } from "./Component.mobile";
4
- export type { SelectModalMobileProps } from "./Component.modal.mobile";
5
- export {};
package/modern/mobile.js DELETED
@@ -1,39 +0,0 @@
1
- export { SelectMobile } from './Component.mobile.js';
2
- export { SelectModalMobile } from './Component.modal.mobile.js';
3
- import 'react';
4
- import '@alfalab/core-components-form-control/modern/mobile';
5
- import './components/arrow/Component.js';
6
- import 'classnames';
7
- import '@alfalab/icons-glyph/ChevronDownMIcon';
8
- import './components/base-select-mobile/Component.js';
9
- import 'react-merge-refs';
10
- import 'downshift';
11
- import '@alfalab/core-components-bottom-sheet/modern';
12
- import '@alfalab/core-components-modal/modern/mobile';
13
- import '@alfalab/core-components-shared/modern';
14
- import './utils.js';
15
- import './components/field/Component.js';
16
- import '@alfalab/hooks';
17
- import './components/optgroup/Component.js';
18
- import './components/option/Component.js';
19
- import './components/checkmark/Component.js';
20
- import '@alfalab/core-components-badge/modern';
21
- import '@alfalab/core-components-checkbox/modern';
22
- import '@alfalab/icons-glyph/CheckmarkCircleMIcon';
23
- import '@alfalab/icons-glyph/CheckmarkMIcon';
24
- import './components/checkmark-mobile/Component.js';
25
- import './components/options-list/Component.js';
26
- import '@alfalab/core-components-scrollbar/modern';
27
- import './consts.js';
28
- import './components/search/Component.js';
29
- import '@alfalab/core-components-input/modern';
30
- import '@alfalab/icons-glyph/MagnifierMIcon';
31
- import './components/base-select-mobile/footer/Component.js';
32
- import '@alfalab/core-components-base-modal/modern';
33
- import '@alfalab/core-components-button/modern/mobile';
34
- import './components/virtual-options-list/Component.js';
35
- import 'react-virtual';
36
- import './hook-5e1db0b0.js';
37
- import './presets/useSelectWithApply/options-list-with-apply/footer/Component.js';
38
- import '@alfalab/core-components-button/modern/desktop';
39
- import './presets/useSelectWithApply/options-list-with-apply/header/Component.js';
@@ -1,5 +0,0 @@
1
- export * from "./components/index";
2
- export * from "./presets/index";
3
- export * from "./typings";
4
- export * from "./utils";
5
- export type { AdditionalMobileProps } from "./Component.mobile";
package/modern/shared.js DELETED
@@ -1,40 +0,0 @@
1
- export { Arrow } from './components/arrow/Component.js';
2
- export { BaseSelect } from './components/base-select/Component.js';
3
- export { Field } from './components/field/Component.js';
4
- export { Optgroup } from './components/optgroup/Component.js';
5
- export { Option } from './components/option/Component.js';
6
- export { OptionsList } from './components/options-list/Component.js';
7
- export { VirtualOptionsList } from './components/virtual-options-list/Component.js';
8
- export { BaseOption } from './components/base-option/Component.js';
9
- export { Search } from './components/search/Component.js';
10
- export { useSelectWithLoading } from './presets/useSelectWithLoading/hook.js';
11
- export { useLazyLoading } from './presets/useLazyLoading/hook.js';
12
- export { S as SELECT_ALL_KEY, u as useSelectWithApply } from './hook-5e1db0b0.js';
13
- export { defaultAccessor, defaultFilterFn, isGroup, isOptionShape, joinOptions, lastIndexOf, processOptions, usePrevious, useVisibleOptions } from './utils.js';
14
- import 'react';
15
- import 'classnames';
16
- import '@alfalab/icons-glyph/ChevronDownMIcon';
17
- import 'react-merge-refs';
18
- import '@juggle/resize-observer';
19
- import 'downshift';
20
- import '@alfalab/core-components-popover/modern';
21
- import '@alfalab/core-components-shared/modern';
22
- import '@alfalab/hooks';
23
- import './components/native-select/Component.js';
24
- import './components/checkmark/Component.js';
25
- import '@alfalab/core-components-badge/modern';
26
- import '@alfalab/core-components-checkbox/modern';
27
- import '@alfalab/icons-glyph/CheckmarkCircleMIcon';
28
- import '@alfalab/icons-glyph/CheckmarkMIcon';
29
- import './components/checkmark-mobile/Component.js';
30
- import '@alfalab/core-components-scrollbar/modern';
31
- import './consts.js';
32
- import 'react-virtual';
33
- import './components/base-checkmark/Component.js';
34
- import '@alfalab/core-components-input/modern';
35
- import '@alfalab/icons-glyph/MagnifierMIcon';
36
- import '@alfalab/core-components-skeleton/modern';
37
- import 'intersection-observer';
38
- import './presets/useSelectWithApply/options-list-with-apply/footer/Component.js';
39
- import '@alfalab/core-components-button/modern/desktop';
40
- import './presets/useSelectWithApply/options-list-with-apply/header/Component.js';
@@ -1,93 +0,0 @@
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
- type PrivateButtonProps = {
74
- /**
75
- * Основные стили компонента.
76
- */
77
- styles: {
78
- [key: string]: string;
79
- };
80
- /**
81
- * Стили компонента для default и inverted режима.
82
- */
83
- colorStylesMap: StyleColors;
84
- };
85
- type CommonButtonProps = ComponentProps & Partial<AnchorHTMLAttributes<HTMLAnchorElement> | ButtonHTMLAttributes<HTMLButtonElement>>;
86
- type ButtonProps = CommonButtonProps & {
87
- /**
88
- * Контрольная точка, с нее начинается desktop версия
89
- * @default 1024
90
- */
91
- breakpoint?: number;
92
- };
93
- export { StyleColors, ComponentProps, PrivateButtonProps, CommonButtonProps, ButtonProps };
@@ -1,52 +0,0 @@
1
- import { ReactNode } from 'react';
2
- import { BaseModalProps } from "@alfalab/core-components-base-modal";
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 };
package/shared.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export * from "./components/index";
2
- export * from "./presets/index";
3
- export * from "./typings";
4
- export * from "./utils";
5
- export type { AdditionalMobileProps } from "./Component.mobile";