@alfalab/core-components-select 17.10.1 → 17.12.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 (337) hide show
  1. package/components/arrow/Component.js +1 -1
  2. package/components/arrow/index.css +3 -3
  3. package/components/base-checkmark/Component.js +1 -1
  4. package/components/base-checkmark/index.css +6 -6
  5. package/components/base-option/Component.js +1 -1
  6. package/components/base-option/index.css +18 -17
  7. package/components/base-select/Component.js +2 -2
  8. package/components/base-select/components/list-desktop/list-popover-desktop.js +1 -1
  9. package/components/base-select/components/list-mobile/list-bottom-sheet-mobile.js +1 -1
  10. package/components/base-select/components/list-mobile/list-modal-mobile.js +1 -1
  11. package/components/base-select/index.css +24 -22
  12. package/components/base-select/mobile.css +16 -15
  13. package/components/checkmark/Component.js +1 -1
  14. package/components/checkmark/index.css +12 -11
  15. package/components/checkmark-mobile/Component.js +1 -1
  16. package/components/checkmark-mobile/index.css +6 -6
  17. package/components/clear-button/Component.js +1 -1
  18. package/components/clear-button/index.css +6 -6
  19. package/components/field/Component.js +1 -1
  20. package/components/field/index.css +12 -12
  21. package/components/footer/Component.js +1 -1
  22. package/components/footer/index.css +5 -5
  23. package/components/optgroup/Component.js +1 -1
  24. package/components/optgroup/index.css +6 -6
  25. package/components/option/Component.js +1 -1
  26. package/components/option/index.css +21 -21
  27. package/components/options-list/Component.js +3 -3
  28. package/components/options-list/index.css +14 -11
  29. package/components/search/Component.js +1 -1
  30. package/components/search/index.css +2 -2
  31. package/components/virtual-options-list/Component.js +1 -1
  32. package/components/virtual-options-list/index.css +20 -19
  33. package/cssm/components/base-option/index.module.css +3 -2
  34. package/cssm/components/base-select/index.module.css +13 -11
  35. package/cssm/components/base-select/mobile.module.css +4 -3
  36. package/cssm/components/checkmark/index.module.css +2 -1
  37. package/cssm/components/option/index.module.css +2 -2
  38. package/cssm/components/options-list/Component.js +2 -2
  39. package/cssm/components/options-list/index.module.css +4 -1
  40. package/cssm/components/virtual-options-list/index.module.css +5 -4
  41. package/cssm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css +3 -1
  42. package/cssm/presets/useSelectWithApply/options-list-with-apply/footer/vars.css +0 -0
  43. package/cssm/utils.d.ts +1 -1
  44. package/cssm/utils.js +11 -0
  45. package/esm/components/arrow/Component.js +1 -1
  46. package/esm/components/arrow/index.css +3 -3
  47. package/esm/components/base-checkmark/Component.js +1 -1
  48. package/esm/components/base-checkmark/index.css +6 -6
  49. package/esm/components/base-option/Component.js +1 -1
  50. package/esm/components/base-option/index.css +18 -17
  51. package/esm/components/base-select/Component.js +2 -2
  52. package/esm/components/base-select/components/list-desktop/list-popover-desktop.js +1 -1
  53. package/esm/components/base-select/components/list-mobile/list-bottom-sheet-mobile.js +1 -1
  54. package/esm/components/base-select/components/list-mobile/list-modal-mobile.js +1 -1
  55. package/esm/components/base-select/index.css +24 -22
  56. package/esm/components/base-select/mobile.css +16 -15
  57. package/esm/components/checkmark/Component.js +1 -1
  58. package/esm/components/checkmark/index.css +12 -11
  59. package/esm/components/checkmark-mobile/Component.js +1 -1
  60. package/esm/components/checkmark-mobile/index.css +6 -6
  61. package/esm/components/clear-button/Component.js +1 -1
  62. package/esm/components/clear-button/index.css +6 -6
  63. package/esm/components/field/Component.js +1 -1
  64. package/esm/components/field/index.css +12 -12
  65. package/esm/components/footer/Component.js +1 -1
  66. package/esm/components/footer/index.css +5 -5
  67. package/esm/components/optgroup/Component.js +1 -1
  68. package/esm/components/optgroup/index.css +6 -6
  69. package/esm/components/option/Component.js +1 -1
  70. package/esm/components/option/index.css +21 -21
  71. package/esm/components/options-list/Component.js +3 -3
  72. package/esm/components/options-list/index.css +14 -11
  73. package/esm/components/search/Component.js +1 -1
  74. package/esm/components/search/index.css +2 -2
  75. package/esm/components/virtual-options-list/Component.js +1 -1
  76. package/esm/components/virtual-options-list/index.css +20 -19
  77. package/esm/{list-popover-desktop-446b6d5f.js → list-popover-desktop-e4b69ce0.js} +1 -1
  78. package/esm/mobile/Component.mobile.js +1 -1
  79. package/esm/mobile.module-a3e68caf.js +4 -0
  80. package/esm/presets/index.js +1 -1
  81. package/esm/presets/useSelectWithApply/hook.js +1 -1
  82. package/esm/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  83. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
  84. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.css +6 -4
  85. package/esm/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  86. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  87. package/esm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  88. package/esm/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  89. package/esm/presets/useSelectWithLoading/hook.js +1 -1
  90. package/esm/presets/useSelectWithLoading/index.css +2 -2
  91. package/esm/shared/index.js +1 -1
  92. package/esm/utils.d.ts +1 -1
  93. package/esm/utils.js +13 -2
  94. package/{list-popover-desktop-6bae9b47.js → list-popover-desktop-8ffefe6e.js} +1 -1
  95. package/mobile/Component.mobile.js +1 -1
  96. package/mobile.module-97d68ba9.js +6 -0
  97. package/modern/components/arrow/Component.js +1 -1
  98. package/modern/components/arrow/index.css +3 -3
  99. package/modern/components/base-checkmark/Component.js +1 -1
  100. package/modern/components/base-checkmark/index.css +6 -6
  101. package/modern/components/base-option/Component.js +1 -1
  102. package/modern/components/base-option/index.css +18 -17
  103. package/modern/components/base-select/Component.js +2 -2
  104. package/modern/components/base-select/components/list-desktop/list-popover-desktop.js +1 -1
  105. package/modern/components/base-select/components/list-mobile/list-bottom-sheet-mobile.js +1 -1
  106. package/modern/components/base-select/components/list-mobile/list-modal-mobile.js +1 -1
  107. package/modern/components/base-select/index.css +24 -22
  108. package/modern/components/base-select/mobile.css +16 -15
  109. package/modern/components/checkmark/Component.js +1 -1
  110. package/modern/components/checkmark/index.css +12 -11
  111. package/modern/components/checkmark-mobile/Component.js +1 -1
  112. package/modern/components/checkmark-mobile/index.css +6 -6
  113. package/modern/components/clear-button/Component.js +1 -1
  114. package/modern/components/clear-button/index.css +6 -6
  115. package/modern/components/field/Component.js +1 -1
  116. package/modern/components/field/index.css +12 -12
  117. package/modern/components/footer/Component.js +1 -1
  118. package/modern/components/footer/index.css +5 -5
  119. package/modern/components/optgroup/Component.js +1 -1
  120. package/modern/components/optgroup/index.css +6 -6
  121. package/modern/components/option/Component.js +1 -1
  122. package/modern/components/option/index.css +21 -21
  123. package/modern/components/options-list/Component.js +3 -3
  124. package/modern/components/options-list/index.css +14 -11
  125. package/modern/components/search/Component.js +1 -1
  126. package/modern/components/search/index.css +2 -2
  127. package/modern/components/virtual-options-list/Component.js +1 -1
  128. package/modern/components/virtual-options-list/index.css +20 -19
  129. package/modern/{list-popover-desktop-46e08681.js → list-popover-desktop-85370c2c.js} +1 -1
  130. package/modern/mobile/Component.mobile.js +1 -1
  131. package/modern/mobile.module-eb08a4de.js +4 -0
  132. package/modern/presets/index.js +1 -1
  133. package/modern/presets/useSelectWithApply/hook.js +1 -1
  134. package/modern/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  135. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
  136. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.css +6 -4
  137. package/modern/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  138. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  139. package/modern/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  140. package/modern/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  141. package/modern/presets/useSelectWithLoading/hook.js +1 -1
  142. package/modern/presets/useSelectWithLoading/index.css +2 -2
  143. package/modern/shared/index.js +1 -1
  144. package/modern/utils.d.ts +1 -1
  145. package/modern/utils.js +13 -2
  146. package/moderncssm/Component.responsive.d.ts +7 -0
  147. package/moderncssm/Component.responsive.js +21 -0
  148. package/moderncssm/components/arrow/Component.d.ts +5 -0
  149. package/moderncssm/components/arrow/Component.js +8 -0
  150. package/moderncssm/components/arrow/index.d.ts +1 -0
  151. package/moderncssm/components/arrow/index.js +1 -0
  152. package/moderncssm/components/arrow/index.module.css +23 -0
  153. package/moderncssm/components/base-checkmark/Component.d.ts +5 -0
  154. package/moderncssm/components/base-checkmark/Component.js +15 -0
  155. package/moderncssm/components/base-checkmark/index.d.ts +1 -0
  156. package/moderncssm/components/base-checkmark/index.js +1 -0
  157. package/moderncssm/components/base-checkmark/index.module.css +30 -0
  158. package/moderncssm/components/base-option/Component.d.ts +4 -0
  159. package/moderncssm/components/base-option/Component.js +33 -0
  160. package/moderncssm/components/base-option/index.d.ts +1 -0
  161. package/moderncssm/components/base-option/index.js +1 -0
  162. package/moderncssm/components/base-option/index.module.css +81 -0
  163. package/moderncssm/components/base-select/Component.d.ts +14 -0
  164. package/moderncssm/components/base-select/Component.js +408 -0
  165. package/moderncssm/components/base-select/components/list-desktop/helpers/get-list-popover-desktop-props.d.ts +12 -0
  166. package/moderncssm/components/base-select/components/list-desktop/helpers/get-list-popover-desktop-props.js +15 -0
  167. package/moderncssm/components/base-select/components/list-desktop/list-popover-desktop.d.ts +9 -0
  168. package/moderncssm/components/base-select/components/list-desktop/list-popover-desktop.js +13 -0
  169. package/moderncssm/components/base-select/components/list-desktop/types/types.d.ts +3 -0
  170. package/moderncssm/components/base-select/components/list-desktop/types/types.js +1 -0
  171. package/moderncssm/components/base-select/components/list-mobile/helpers/get-list-bottom-sheet-mobile-props.d.ts +16 -0
  172. package/moderncssm/components/base-select/components/list-mobile/helpers/get-list-bottom-sheet-mobile-props.js +19 -0
  173. package/moderncssm/components/base-select/components/list-mobile/helpers/get-list-modal-mobile-props.d.ts +28 -0
  174. package/moderncssm/components/base-select/components/list-mobile/helpers/get-list-modal-mobile-props.js +18 -0
  175. package/moderncssm/components/base-select/components/list-mobile/helpers/index.d.ts +2 -0
  176. package/moderncssm/components/base-select/components/list-mobile/helpers/index.js +2 -0
  177. package/moderncssm/components/base-select/components/list-mobile/list-bottom-sheet-mobile.d.ts +15 -0
  178. package/moderncssm/components/base-select/components/list-mobile/list-bottom-sheet-mobile.js +24 -0
  179. package/moderncssm/components/base-select/components/list-mobile/list-mobile.d.ts +16 -0
  180. package/moderncssm/components/base-select/components/list-mobile/list-mobile.js +17 -0
  181. package/moderncssm/components/base-select/components/list-mobile/list-modal-mobile.d.ts +15 -0
  182. package/moderncssm/components/base-select/components/list-mobile/list-modal-mobile.js +32 -0
  183. package/moderncssm/components/base-select/components/list-mobile/types/types.d.ts +4 -0
  184. package/moderncssm/components/base-select/components/list-mobile/types/types.js +1 -0
  185. package/moderncssm/components/base-select/index.d.ts +1 -0
  186. package/moderncssm/components/base-select/index.js +1 -0
  187. package/moderncssm/components/base-select/index.module.css +81 -0
  188. package/moderncssm/components/base-select/mobile.module.css +48 -0
  189. package/moderncssm/components/base-select/types/component-types.d.ts +50 -0
  190. package/moderncssm/components/base-select/types/component-types.js +1 -0
  191. package/moderncssm/components/checkmark/Component.d.ts +5 -0
  192. package/moderncssm/components/checkmark/Component.js +20 -0
  193. package/moderncssm/components/checkmark/index.d.ts +1 -0
  194. package/moderncssm/components/checkmark/index.js +1 -0
  195. package/moderncssm/components/checkmark/index.module.css +59 -0
  196. package/moderncssm/components/checkmark-mobile/Component.d.ts +5 -0
  197. package/moderncssm/components/checkmark-mobile/Component.js +11 -0
  198. package/moderncssm/components/checkmark-mobile/index.d.ts +1 -0
  199. package/moderncssm/components/checkmark-mobile/index.js +1 -0
  200. package/moderncssm/components/checkmark-mobile/index.module.css +34 -0
  201. package/moderncssm/components/clear-button/Component.d.ts +5 -0
  202. package/moderncssm/components/clear-button/Component.js +9 -0
  203. package/moderncssm/components/clear-button/index.d.ts +1 -0
  204. package/moderncssm/components/clear-button/index.js +1 -0
  205. package/moderncssm/components/clear-button/index.module.css +47 -0
  206. package/moderncssm/components/field/Component.d.ts +13 -0
  207. package/moderncssm/components/field/Component.js +35 -0
  208. package/moderncssm/components/field/index.d.ts +1 -0
  209. package/moderncssm/components/field/index.js +1 -0
  210. package/moderncssm/components/field/index.module.css +74 -0
  211. package/moderncssm/components/footer/Component.d.ts +12 -0
  212. package/moderncssm/components/footer/Component.js +22 -0
  213. package/moderncssm/components/footer/index.d.ts +1 -0
  214. package/moderncssm/components/footer/index.js +1 -0
  215. package/moderncssm/components/footer/index.module.css +28 -0
  216. package/moderncssm/components/index.d.ts +9 -0
  217. package/moderncssm/components/index.js +9 -0
  218. package/moderncssm/components/native-select/Component.d.ts +25 -0
  219. package/moderncssm/components/native-select/Component.js +13 -0
  220. package/moderncssm/components/native-select/index.d.ts +1 -0
  221. package/moderncssm/components/native-select/index.js +1 -0
  222. package/moderncssm/components/optgroup/Component.d.ts +5 -0
  223. package/moderncssm/components/optgroup/Component.js +11 -0
  224. package/moderncssm/components/optgroup/index.d.ts +1 -0
  225. package/moderncssm/components/optgroup/index.js +1 -0
  226. package/moderncssm/components/optgroup/index.module.css +46 -0
  227. package/moderncssm/components/option/Component.d.ts +4 -0
  228. package/moderncssm/components/option/Component.js +23 -0
  229. package/moderncssm/components/option/index.d.ts +1 -0
  230. package/moderncssm/components/option/index.js +1 -0
  231. package/moderncssm/components/option/index.module.css +110 -0
  232. package/moderncssm/components/options-list/Component.d.ts +5 -0
  233. package/moderncssm/components/options-list/Component.js +88 -0
  234. package/moderncssm/components/options-list/index.d.ts +1 -0
  235. package/moderncssm/components/options-list/index.js +1 -0
  236. package/moderncssm/components/options-list/index.module.css +51 -0
  237. package/moderncssm/components/search/Component.d.ts +5 -0
  238. package/moderncssm/components/search/Component.js +9 -0
  239. package/moderncssm/components/search/index.d.ts +1 -0
  240. package/moderncssm/components/search/index.js +1 -0
  241. package/moderncssm/components/search/index.module.css +14 -0
  242. package/moderncssm/components/virtual-options-list/Component.d.ts +5 -0
  243. package/moderncssm/components/virtual-options-list/Component.js +138 -0
  244. package/moderncssm/components/virtual-options-list/index.d.ts +1 -0
  245. package/moderncssm/components/virtual-options-list/index.js +1 -0
  246. package/moderncssm/components/virtual-options-list/index.module.css +79 -0
  247. package/moderncssm/consts.d.ts +12 -0
  248. package/moderncssm/consts.js +13 -0
  249. package/moderncssm/desktop/Component.desktop.d.ts +6 -0
  250. package/moderncssm/desktop/Component.desktop.js +17 -0
  251. package/moderncssm/desktop/index.d.ts +2 -0
  252. package/moderncssm/desktop/index.js +1 -0
  253. package/moderncssm/hook-8c561f14.d.ts +115 -0
  254. package/moderncssm/hook-a8bc7fe8.d.ts +17 -0
  255. package/moderncssm/hook-a8bc7fe8.js +169 -0
  256. package/moderncssm/index.d.ts +2 -0
  257. package/moderncssm/index.js +1 -0
  258. package/moderncssm/mobile/Component.mobile.d.ts +5 -0
  259. package/moderncssm/mobile/Component.mobile.js +54 -0
  260. package/moderncssm/mobile/Component.modal.mobile.d.ts +4 -0
  261. package/moderncssm/mobile/Component.modal.mobile.js +6 -0
  262. package/moderncssm/mobile/index.d.ts +3 -0
  263. package/moderncssm/mobile/index.js +2 -0
  264. package/moderncssm/presets/index.d.ts +3 -0
  265. package/moderncssm/presets/index.js +3 -0
  266. package/moderncssm/presets/useLazyLoading/hook.d.ts +48 -0
  267. package/moderncssm/presets/useLazyLoading/hook.js +215 -0
  268. package/moderncssm/presets/useSelectWithApply/hook.d.ts +0 -0
  269. package/moderncssm/presets/useSelectWithApply/hook.js +4 -0
  270. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/Component.d.ts +0 -0
  271. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/Component.js +6 -0
  272. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/footer/Component.d.ts +12 -0
  273. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +12 -0
  274. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css +12 -0
  275. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/footer/vars.css +0 -0
  276. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/header/Component.d.ts +11 -0
  277. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/header/Component.js +9 -0
  278. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/header/index.module.css +9 -0
  279. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -0
  280. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/index.js +1 -0
  281. package/moderncssm/presets/useSelectWithLoading/hook.d.ts +13 -0
  282. package/moderncssm/presets/useSelectWithLoading/hook.js +23 -0
  283. package/moderncssm/presets/useSelectWithLoading/index.module.css +7 -0
  284. package/moderncssm/shared/index.d.ts +13 -0
  285. package/moderncssm/shared/index.js +14 -0
  286. package/moderncssm/typings.d.ts +744 -0
  287. package/moderncssm/typings.js +1 -0
  288. package/moderncssm/utils.d.ts +81 -0
  289. package/moderncssm/utils.js +184 -0
  290. package/moderncssm/vars.css +10 -0
  291. package/package.json +15 -15
  292. package/presets/index.js +1 -1
  293. package/presets/useSelectWithApply/hook.js +1 -1
  294. package/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  295. package/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
  296. package/presets/useSelectWithApply/options-list-with-apply/footer/index.css +6 -4
  297. package/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  298. package/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  299. package/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  300. package/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  301. package/presets/useSelectWithLoading/hook.js +1 -1
  302. package/presets/useSelectWithLoading/index.css +2 -2
  303. package/shared/index.js +1 -1
  304. package/src/components/arrow/index.module.css +1 -1
  305. package/src/components/base-checkmark/index.module.css +1 -1
  306. package/src/components/base-option/index.module.css +3 -3
  307. package/src/components/base-select/index.module.css +9 -9
  308. package/src/components/base-select/mobile.module.css +4 -4
  309. package/src/components/checkmark/index.module.css +1 -1
  310. package/src/components/checkmark-mobile/index.module.css +1 -1
  311. package/src/components/field/index.module.css +1 -1
  312. package/src/components/footer/index.module.css +1 -1
  313. package/src/components/optgroup/index.module.css +1 -1
  314. package/src/components/option/index.module.css +2 -3
  315. package/src/components/options-list/Component.tsx +2 -1
  316. package/src/components/options-list/index.module.css +6 -2
  317. package/src/components/search/index.module.css +1 -1
  318. package/src/components/virtual-options-list/index.module.css +5 -5
  319. package/src/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css +3 -2
  320. package/src/presets/useSelectWithApply/options-list-with-apply/footer/vars.css +3 -0
  321. package/src/presets/useSelectWithApply/options-list-with-apply/header/index.module.css +1 -1
  322. package/src/utils.ts +28 -3
  323. package/src/vars.css +4 -4
  324. package/utils.d.ts +1 -1
  325. package/utils.js +11 -0
  326. package/esm/mobile.module-eaf56278.js +0 -4
  327. package/mobile.module-8d14caac.js +0 -6
  328. package/modern/mobile.module-2f7796c1.js +0 -4
  329. /package/esm/{hook-570b8ac7.d.ts → hook-276c96dc.d.ts} +0 -0
  330. /package/esm/{hook-570b8ac7.js → hook-276c96dc.js} +0 -0
  331. /package/esm/{list-popover-desktop-446b6d5f.d.ts → list-popover-desktop-e4b69ce0.d.ts} +0 -0
  332. /package/{hook-a71861cb.d.ts → hook-c8ba558c.d.ts} +0 -0
  333. /package/{hook-a71861cb.js → hook-c8ba558c.js} +0 -0
  334. /package/{list-popover-desktop-6bae9b47.d.ts → list-popover-desktop-8ffefe6e.d.ts} +0 -0
  335. /package/modern/{hook-0b565ee2.d.ts → hook-a054f3bb.d.ts} +0 -0
  336. /package/modern/{hook-0b565ee2.js → hook-a054f3bb.js} +0 -0
  337. /package/modern/{list-popover-desktop-46e08681.d.ts → list-popover-desktop-85370c2c.d.ts} +0 -0
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ declare const SelectModalMobile: React.ForwardRefExoticComponent<Omit<import("../typings").BaseSelectProps, "Checkmark"> & import("../typings").AdditionalMobileProps & import("../typings").ModalSelectMobileProps & React.RefAttributes<unknown>>;
4
+ export { SelectModalMobile };
@@ -0,0 +1,6 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { SelectMobile } from './Component.mobile.js';
3
+
4
+ const SelectModalMobile = forwardRef((props, ref) => (React.createElement(SelectMobile, { ...props, isBottomSheet: false, ref: ref })));
5
+
6
+ export { SelectModalMobile };
@@ -0,0 +1,3 @@
1
+ export { SelectMobile } from "./Component.mobile";
2
+ export { SelectModalMobile } from "./Component.modal.mobile";
3
+ export type { SelectMobileProps, SelectModalMobileProps } from "../typings";
@@ -0,0 +1,2 @@
1
+ export { SelectMobile } from './Component.mobile.js';
2
+ export { SelectModalMobile } from './Component.modal.mobile.js';
@@ -0,0 +1,3 @@
1
+ export * from "./useSelectWithLoading/hook";
2
+ export * from "./useLazyLoading/hook";
3
+ export * from "../hook-8c561f14";
@@ -0,0 +1,3 @@
1
+ export { useSelectWithLoading } from './useSelectWithLoading/hook.js';
2
+ export { useLazyLoading } from './useLazyLoading/hook.js';
3
+ export { S as SELECT_ALL_KEY, u as useSelectWithApply } from '../hook-a8bc7fe8.js';
@@ -0,0 +1,48 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { OptionProps, OptionShape } from "../../typings";
4
+ type OptionsFetcherResponse = {
5
+ options: OptionShape[];
6
+ hasMore: boolean;
7
+ };
8
+ type useLazyLoadingProps = {
9
+ /** Количество элементов на "странице" */
10
+ limit?: number;
11
+ /** Начальный номер "страницы" */
12
+ initialOffset?: number;
13
+ /** Скелетон загружаемых элементов */
14
+ skeleton?: React.ReactNode;
15
+ /** Компонент пункта меню */
16
+ Option?: React.FC<OptionProps>;
17
+ /**
18
+ * Функция-загрузчик опций.
19
+ * @param offset - текущая страница
20
+ * @param limit - количество элементов на странице
21
+ * @param queryString - строчные данные, пробрасываемые для поиска из кастомного инпута, расположенного в заголовке OptionsList
22
+ * @returns Promise<{
23
+ * options - список опций следующей "страницы". Они аппендятся к предыдущим
24
+ * hasMore - указывает, есть ли еще незагруженные элементы (в случае false перестает загружать "следующую страницу")
25
+ * }>
26
+ */
27
+ optionsFetcher(offset: number, limit: number, queryString?: string): Promise<OptionsFetcherResponse>;
28
+ };
29
+ declare function useLazyLoading({ limit, initialOffset, optionsFetcher, skeleton, Option, }: useLazyLoadingProps): {
30
+ optionsProps: {
31
+ Option: (props: OptionProps) => React.JSX.Element;
32
+ options: OptionShape[];
33
+ optionsListProps: {
34
+ ref: React.RefObject<HTMLDivElement>;
35
+ inputProps: {
36
+ onChange: (event: React.ChangeEvent<HTMLInputElement>, payload: {
37
+ value: string;
38
+ }) => void;
39
+ value: string;
40
+ };
41
+ };
42
+ onOpen: (payload: {
43
+ open?: boolean;
44
+ }) => void;
45
+ };
46
+ reset: () => void;
47
+ };
48
+ export { useLazyLoading };
@@ -0,0 +1,215 @@
1
+ import React, { useReducer, useRef, useCallback, useEffect, useMemo } from 'react';
2
+ import { Skeleton } from '@alfalab/core-components-skeleton/moderncssm';
3
+ import { Option } from '../../components/option/Component.js';
4
+ import 'intersection-observer';
5
+
6
+ const DEBOUNCE_TIMEOUT = 300;
7
+ const actions = {
8
+ fetchOptionsStart() {
9
+ return { type: 'FETCH_OPTIONS_START' };
10
+ },
11
+ fetchOptionsBreak() {
12
+ return { type: 'FETCH_OPTIONS_BREAK' };
13
+ },
14
+ fetchOptionsSuccess(payload) {
15
+ return { type: 'FETCH_OPTIONS_SUCCESS', payload };
16
+ },
17
+ setIsOpened(opened) {
18
+ return { type: 'SET_IS_OPENED', payload: opened };
19
+ },
20
+ setQueryString(qs) {
21
+ return { type: 'SET_QUERY_STRING', payload: qs };
22
+ },
23
+ reset() {
24
+ return { type: 'RESET' };
25
+ },
26
+ };
27
+ const skeletonStyle = {
28
+ position: 'absolute',
29
+ top: '50%',
30
+ transform: 'translateY(-50%)',
31
+ height: '16px',
32
+ width: '50%',
33
+ };
34
+ function useLazyLoading({ limit = 10, initialOffset = 0, optionsFetcher, skeleton = React.createElement(Skeleton, { style: skeletonStyle, visible: true }), Option: Option$1 = Option, }) {
35
+ const initialOptions = [];
36
+ const initialLoading = false;
37
+ const lazyLoadingInitialState = {
38
+ opened: false,
39
+ offset: initialOffset,
40
+ options: initialOptions,
41
+ loading: initialLoading,
42
+ allOptionsLoaded: false,
43
+ queryString: '',
44
+ };
45
+ const lazyLoadingReducer = (state, action) => {
46
+ switch (action.type) {
47
+ case 'FETCH_OPTIONS_START': {
48
+ return {
49
+ ...state,
50
+ loading: true,
51
+ };
52
+ }
53
+ case 'FETCH_OPTIONS_BREAK': {
54
+ return {
55
+ ...state,
56
+ loading: false,
57
+ };
58
+ }
59
+ case 'FETCH_OPTIONS_SUCCESS': {
60
+ return {
61
+ ...state,
62
+ options: [...state.options, ...action.payload.options],
63
+ offset: state.offset + (action.payload.options.length ? 1 : 0),
64
+ allOptionsLoaded: !action.payload.hasMore,
65
+ loading: false,
66
+ };
67
+ }
68
+ case 'SET_IS_OPENED': {
69
+ return {
70
+ ...state,
71
+ opened: action.payload,
72
+ };
73
+ }
74
+ case 'SET_QUERY_STRING': {
75
+ return {
76
+ // Изменение queryString подразумевает сброс текущих опций.
77
+ ...lazyLoadingInitialState,
78
+ opened: state.opened,
79
+ loading: true,
80
+ queryString: action.payload,
81
+ };
82
+ }
83
+ case 'RESET': {
84
+ return {
85
+ ...lazyLoadingInitialState,
86
+ };
87
+ }
88
+ default: {
89
+ return state;
90
+ }
91
+ }
92
+ };
93
+ const [{ opened, offset, options, loading, allOptionsLoaded, queryString }, dispatch] = useReducer(lazyLoadingReducer, lazyLoadingInitialState);
94
+ const abortFetchingOptionsRef = useRef();
95
+ const fetchNextOffsetOptions = useCallback(() => {
96
+ dispatch(actions.fetchOptionsStart());
97
+ new Promise((resolve, reject) => {
98
+ // eslint-disable-next-line no-unused-expressions
99
+ abortFetchingOptionsRef.current?.();
100
+ abortFetchingOptionsRef.current = reject;
101
+ optionsFetcher(offset, limit, queryString).then((res) => {
102
+ resolve(res);
103
+ });
104
+ })
105
+ .then((res) => {
106
+ dispatch(actions.fetchOptionsSuccess(res));
107
+ abortFetchingOptionsRef.current = undefined;
108
+ })
109
+ .catch(
110
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
111
+ () => { });
112
+ }, [optionsFetcher, offset, limit, queryString]);
113
+ const listRef = useRef(null);
114
+ useEffect(() => {
115
+ let observer;
116
+ if (opened && !loading && !allOptionsLoaded) {
117
+ observer = new IntersectionObserver(([entry]) => {
118
+ if (entry.isIntersecting) {
119
+ if (observer) {
120
+ observer.disconnect();
121
+ }
122
+ fetchNextOffsetOptions();
123
+ }
124
+ }, {
125
+ root: listRef.current,
126
+ });
127
+ /*
128
+ * Обсервим пересечение последней опции с контейнером.
129
+ * Таким образом, загрузка следующей "страницы" начнется когда юзер доскроллит список
130
+ * до верхнего края последней опции, что обеспечивает плавность
131
+ */
132
+ const optionList = listRef.current?.querySelectorAll('[role="option"]');
133
+ const lastOption = optionList?.[optionList.length - 1];
134
+ if (lastOption) {
135
+ observer.observe(lastOption);
136
+ }
137
+ }
138
+ return () => {
139
+ if (observer) {
140
+ observer.disconnect();
141
+ }
142
+ };
143
+ }, [offset, fetchNextOffsetOptions, opened, allOptionsLoaded, initialOffset, loading]);
144
+ const onOpen = useCallback((payload) => {
145
+ if (payload.open) {
146
+ if (options.length === initialOptions.length) {
147
+ fetchNextOffsetOptions();
148
+ }
149
+ }
150
+ else {
151
+ // eslint-disable-next-line no-unused-expressions
152
+ abortFetchingOptionsRef.current?.();
153
+ dispatch(actions.fetchOptionsBreak());
154
+ }
155
+ dispatch(actions.setIsOpened(payload.open ?? false));
156
+ }, [initialOptions.length, fetchNextOffsetOptions, options.length]);
157
+ const fetchNextOptionsRef = useRef();
158
+ const fetchNextOptionsTimerRef = useRef();
159
+ useEffect(() => {
160
+ fetchNextOptionsRef.current = fetchNextOffsetOptions;
161
+ }, [fetchNextOffsetOptions]);
162
+ const onQueryStringChange = useCallback((_, payload) => {
163
+ dispatch(actions.setQueryString(payload.value));
164
+ /* eslint-disable no-unused-expressions */
165
+ /*
166
+ * Если во время загрузки опций юзер ввел новый текст в инпут,
167
+ * нужно прервать текущую загрузку, чтобы неактуальные опции не попали в выдачу
168
+ */
169
+ abortFetchingOptionsRef.current?.();
170
+ listRef.current?.scrollTo({ top: 0 });
171
+ /* Дебаунсим ввод текста, чтобы не отправлять запрос к новым опциям на каждый чих */
172
+ if (fetchNextOptionsTimerRef.current) {
173
+ clearTimeout(fetchNextOptionsTimerRef.current);
174
+ }
175
+ fetchNextOptionsTimerRef.current = setTimeout(() => {
176
+ /*
177
+ * После дебаунса необходимо вызвать функцию-загрузчик,
178
+ * содержащую актуальные на данный момент данные оффсета и queryString.
179
+ * Поэтому мы не можем обратиться напрямую к функции fetchNextOptions,
180
+ * так как она будет замкнута на старые значения, актуальные на момент вызова хэндлера,
181
+ * так что берем ее из обновляемого рефа
182
+ */
183
+ fetchNextOptionsRef.current?.();
184
+ }, DEBOUNCE_TIMEOUT);
185
+ /* eslint-enable */
186
+ }, []);
187
+ const renderOption = (props) => (React.createElement(Option$1, { ...props, highlighted: loading ? false : props.highlighted }));
188
+ const skeletonOptions = useMemo(() => Array(loading ? limit : 0)
189
+ .fill(0)
190
+ .map((_, key) => ({
191
+ key: `loading-${key}`,
192
+ disabled: true,
193
+ content: skeleton,
194
+ })), [loading, limit, skeleton]);
195
+ const reset = useCallback(() => {
196
+ dispatch(actions.reset());
197
+ }, []);
198
+ return {
199
+ optionsProps: {
200
+ Option: renderOption,
201
+ options: [...options, ...skeletonOptions],
202
+ optionsListProps: {
203
+ ref: listRef,
204
+ inputProps: {
205
+ onChange: onQueryStringChange,
206
+ value: queryString,
207
+ },
208
+ },
209
+ onOpen,
210
+ },
211
+ reset,
212
+ };
213
+ }
214
+
215
+ export { useLazyLoading };
@@ -0,0 +1,4 @@
1
+ import 'react';
2
+ import 'deep-equal';
3
+ import '../../utils.js';
4
+ export { S as SELECT_ALL_KEY, u as useSelectWithApply } from '../../hook-a8bc7fe8.js';
@@ -0,0 +1,6 @@
1
+ import 'react';
2
+ import '../../../components/options-list/Component.js';
3
+ import '../../../consts.js';
4
+ export { O as OptionsListWithApply } from '../../../hook-a8bc7fe8.js';
5
+ import './footer/Component.js';
6
+ import './header/Component.js';
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { OptionShape } from "../../../../typings";
4
+ type FooterProps = {
5
+ handleClear?: () => void;
6
+ handleApply?: () => void;
7
+ showClear?: boolean;
8
+ selectedDraft?: OptionShape[];
9
+ dataTestId?: string;
10
+ };
11
+ declare const Footer: ({ handleApply, handleClear, showClear, selectedDraft, dataTestId, }: FooterProps) => React.JSX.Element;
12
+ export { FooterProps, Footer };
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { ButtonDesktop } from '@alfalab/core-components-button/moderncssm/desktop';
3
+ import { getDataTestId } from '@alfalab/core-components-shared/moderncssm';
4
+ import styles from './index.module.css';
5
+
6
+ const Footer = ({ handleApply, handleClear, showClear, selectedDraft = [], dataTestId, }) => (React.createElement("div", {
7
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
8
+ tabIndex: 0, className: styles.footer },
9
+ React.createElement(ButtonDesktop, { size: 32, view: 'primary', onClick: handleApply, dataTestId: getDataTestId(dataTestId, 'apply'), className: styles.button }, "\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C"),
10
+ showClear && selectedDraft.length > 0 && (React.createElement(ButtonDesktop, { size: 32, view: 'secondary', onClick: handleClear, dataTestId: getDataTestId(dataTestId, 'clear'), className: styles.button }, "\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C"))));
11
+
12
+ export { Footer };
@@ -0,0 +1,12 @@
1
+ /* */
2
+ :root {
3
+ --select-option-list-footer-button-gap: var(--gap-8);
4
+ }
5
+ .footer {
6
+ background-color: var(--color-light-base-bg-primary);
7
+ padding: var(--gap-12);
8
+ outline: none
9
+ }
10
+ .footer > .button + .button {
11
+ margin-left: var(--select-option-list-footer-button-gap);
12
+ }
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { CheckboxProps } from "@alfalab/core-components-checkbox";
4
+ type HeaderProps = {
5
+ checked?: boolean;
6
+ indeterminate?: boolean;
7
+ onChange?: CheckboxProps['onChange'];
8
+ mobile?: boolean;
9
+ };
10
+ declare const Header: React.FC<HeaderProps>;
11
+ export { HeaderProps, Header };
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import cn from 'classnames';
3
+ import { Checkbox } from '@alfalab/core-components-checkbox/moderncssm';
4
+ import styles from './index.module.css';
5
+
6
+ const Header = ({ onChange, checked, indeterminate, mobile }) => (React.createElement("div", { className: cn({ [styles.desktop]: !mobile, [styles.mobile]: mobile }) },
7
+ React.createElement(Checkbox, { block: true, indeterminate: indeterminate, size: 'm', onChange: onChange, checked: checked, label: '\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435' })));
8
+
9
+ export { Header };
@@ -0,0 +1,9 @@
1
+ /* */
2
+
3
+ .desktop {
4
+ padding: var(--gap-12);
5
+ }
6
+
7
+ .mobile {
8
+ padding: var(--gap-12) var(--gap-8);
9
+ }
@@ -0,0 +1 @@
1
+ export * from "../../../hook-a8bc7fe8";
@@ -0,0 +1 @@
1
+ export { O as OptionsListWithApply } from '../../../hook-a8bc7fe8.js';
@@ -0,0 +1,13 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { BaseSelectProps, OptionProps, OptionShape } from "../../typings";
4
+ type useSelectWithLoadingProps = {
5
+ loading?: boolean;
6
+ visibleOptions?: BaseSelectProps['visibleOptions'];
7
+ Option?: React.FC<OptionProps>;
8
+ };
9
+ declare function useSelectWithLoading({ loading, visibleOptions, Option, }: useSelectWithLoadingProps): {
10
+ Option: (props: OptionProps) => React.JSX.Element;
11
+ options: OptionShape[];
12
+ } | null;
13
+ export { useSelectWithLoading };
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { Skeleton } from '@alfalab/core-components-skeleton/moderncssm';
3
+ import { Option } from '../../components/option/Component.js';
4
+ import styles from './index.module.css';
5
+
6
+ function useSelectWithLoading({ loading = false, visibleOptions = 6, Option: Option$1 = Option, }) {
7
+ const renderOption = (props) => (React.createElement(Option$1, { ...props, Checkmark: null, highlighted: loading ? false : props.highlighted }));
8
+ const options = Array(visibleOptions)
9
+ .fill(0)
10
+ .map((_, key) => ({
11
+ key: `loading-${key}`,
12
+ disabled: true,
13
+ content: React.createElement(Skeleton, { className: styles.skeleton, visible: true }),
14
+ }));
15
+ if (!loading)
16
+ return null;
17
+ return {
18
+ Option: renderOption,
19
+ options,
20
+ };
21
+ }
22
+
23
+ export { useSelectWithLoading };
@@ -0,0 +1,7 @@
1
+ .skeleton {
2
+ position: absolute;
3
+ top: 50%;
4
+ transform: translateY(-50%);
5
+ height: 16px;
6
+ width: 50%;
7
+ }
@@ -0,0 +1,13 @@
1
+ export * from "../presets/index";
2
+ export * from "../typings";
3
+ export * from "../utils";
4
+ export * from "../components/option/index";
5
+ export * from "../components/base-option/index";
6
+ export * from "../components/options-list/index";
7
+ export * from "../components/virtual-options-list/index";
8
+ export * from "../components/field/index";
9
+ export * from "../components/arrow/index";
10
+ export * from "../components/base-select/index";
11
+ export * from "../components/optgroup/index";
12
+ export * from "../components/footer/index";
13
+ export * from "../components/search/index";
@@ -0,0 +1,14 @@
1
+ export { useSelectWithLoading } from '../presets/useSelectWithLoading/hook.js';
2
+ export { useLazyLoading } from '../presets/useLazyLoading/hook.js';
3
+ export { S as SELECT_ALL_KEY, u as useSelectWithApply } from '../hook-a8bc7fe8.js';
4
+ export { defaultAccessor, defaultFilterFn, defaultGroupAccessor, getSelectTestIds, isGroup, isOptionShape, joinOptions, lastIndexOf, processOptions, usePrevious, useVisibleOptions } from '../utils.js';
5
+ export { Option } from '../components/option/Component.js';
6
+ export { BaseOption } from '../components/base-option/Component.js';
7
+ export { OptionsList } from '../components/options-list/Component.js';
8
+ export { VirtualOptionsList } from '../components/virtual-options-list/Component.js';
9
+ export { Field } from '../components/field/Component.js';
10
+ export { Arrow } from '../components/arrow/Component.js';
11
+ export { BaseSelect } from '../components/base-select/Component.js';
12
+ export { Optgroup } from '../components/optgroup/Component.js';
13
+ export { Footer } from '../components/footer/Component.js';
14
+ export { Search } from '../components/search/Component.js';