@alfalab/core-components-select 14.3.5 → 15.0.1

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 (416) hide show
  1. package/Component.desktop.d.ts +19 -0
  2. package/{Component.js → Component.desktop.js} +6 -6
  3. package/Component.mobile-ebda875c.d.ts +6 -0
  4. package/Component.mobile-f1f15074.d.ts +387 -0
  5. package/Component.mobile.d.ts +41 -0
  6. package/Component.mobile.js +62 -0
  7. package/Component.modal.mobile.d.ts +60 -0
  8. package/Component.modal.mobile.js +62 -0
  9. package/Component.responsive.d.ts +1 -1
  10. package/Component.responsive.js +26 -25
  11. package/components/arrow/Component.js +1 -1
  12. package/components/arrow/index.css +3 -3
  13. package/components/base-checkmark/Component.js +1 -1
  14. package/components/base-checkmark/index.css +4 -4
  15. package/components/base-option/Component.js +1 -1
  16. package/components/base-option/index.css +13 -13
  17. package/components/base-select/Component.js +6 -6
  18. package/components/base-select/index.css +8 -8
  19. package/components/base-select/index.js +1 -1
  20. package/components/base-select-mobile/Component.d.ts +3 -3
  21. package/components/base-select-mobile/Component.js +13 -9
  22. package/components/base-select-mobile/footer/Component.js +4 -4
  23. package/components/base-select-mobile/footer/index.css +5 -5
  24. package/components/base-select-mobile/footer/index.js +1 -1
  25. package/components/base-select-mobile/index.css +13 -11
  26. package/components/base-select-mobile/index.js +1 -2
  27. package/components/checkmark/Component.js +1 -1
  28. package/components/checkmark/index.css +10 -10
  29. package/components/checkmark-mobile/Component.js +1 -1
  30. package/components/checkmark-mobile/index.css +6 -6
  31. package/components/field/Component.d.ts +8 -1
  32. package/components/field/Component.js +19 -16
  33. package/components/field/index.css +38 -11
  34. package/components/field/index.js +0 -1
  35. package/components/index.d.ts +0 -2
  36. package/components/index.js +4 -19
  37. package/components/optgroup/Component.js +1 -1
  38. package/components/optgroup/index.css +6 -6
  39. package/components/option/Component.js +1 -1
  40. package/components/option/index.css +20 -20
  41. package/components/options-list/Component.js +1 -1
  42. package/components/options-list/index.css +9 -9
  43. package/components/virtual-options-list/Component.js +1 -1
  44. package/components/virtual-options-list/index.css +15 -15
  45. package/cssm/Component.desktop.d.ts +19 -0
  46. package/cssm/{Component.js → Component.desktop.js} +6 -6
  47. package/cssm/Component.mobile-ebda875c.d.ts +6 -0
  48. package/cssm/Component.mobile-f1f15074.d.ts +387 -0
  49. package/cssm/Component.mobile.d.ts +41 -0
  50. package/cssm/Component.mobile.js +74 -0
  51. package/cssm/Component.modal.mobile.d.ts +60 -0
  52. package/cssm/Component.modal.mobile.js +74 -0
  53. package/cssm/Component.responsive.d.ts +1 -1
  54. package/cssm/Component.responsive.js +30 -33
  55. package/cssm/components/base-select/Component.js +5 -5
  56. package/cssm/components/base-select/index.js +1 -1
  57. package/cssm/components/base-select-mobile/Component.d.ts +3 -3
  58. package/cssm/components/base-select-mobile/Component.js +12 -8
  59. package/cssm/components/base-select-mobile/footer/Component.js +3 -3
  60. package/cssm/components/base-select-mobile/footer/index.js +1 -1
  61. package/cssm/components/base-select-mobile/index.js +1 -2
  62. package/cssm/components/base-select-mobile/index.module.css +4 -2
  63. package/cssm/components/field/Component.d.ts +8 -1
  64. package/cssm/components/field/Component.js +18 -15
  65. package/cssm/components/field/index.js +0 -1
  66. package/cssm/components/field/index.module.css +31 -4
  67. package/cssm/components/index.d.ts +0 -2
  68. package/cssm/components/index.js +7 -28
  69. package/cssm/desktop-63dec22f.d.ts +6 -0
  70. package/cssm/desktop.d.ts +2 -0
  71. package/cssm/desktop.js +44 -0
  72. package/cssm/hook-97e6e688.d.ts +16 -0
  73. package/cssm/hook-97e6e688.js +110 -0
  74. package/{esm/hook-b4e70cb0.d.ts → cssm/hook-9ea9e32c.d.ts} +9 -7
  75. package/cssm/index-ebda875c.d.ts +20 -60
  76. package/cssm/index.d.ts +2 -5
  77. package/cssm/index.js +34 -61
  78. package/cssm/mobile-96988a65.d.ts +2 -0
  79. package/cssm/mobile.d.ts +5 -4
  80. package/cssm/mobile.js +15 -24
  81. package/cssm/presets/index.d.ts +1 -1
  82. package/cssm/presets/index.js +9 -36
  83. package/cssm/presets/useLazyLoading/hook.js +9 -4
  84. package/cssm/presets/useSelectWithApply/hook.js +9 -48
  85. package/cssm/presets/useSelectWithApply/options-list-with-apply/Component.js +3 -42
  86. package/cssm/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +3 -3
  87. package/cssm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  88. package/cssm/presets/useSelectWithApply/options-list-with-apply/index.js +10 -49
  89. package/cssm/shared.d.ts +5 -0
  90. package/cssm/shared.js +78 -0
  91. package/cssm/typings-9211a437.d.ts +95 -0
  92. package/cssm/typings-baf4875b.d.ts +52 -0
  93. package/desktop-63dec22f.d.ts +6 -0
  94. package/desktop.d.ts +2 -0
  95. package/{responsive.js → desktop.js} +5 -19
  96. package/esm/Component.desktop.d.ts +19 -0
  97. package/esm/{Component.js → Component.desktop.js} +6 -6
  98. package/esm/Component.mobile-ebda875c.d.ts +6 -0
  99. package/esm/Component.mobile-f1f15074.d.ts +387 -0
  100. package/esm/Component.mobile.d.ts +41 -0
  101. package/esm/Component.mobile.js +54 -0
  102. package/esm/Component.modal.mobile.d.ts +60 -0
  103. package/esm/Component.modal.mobile.js +54 -0
  104. package/esm/Component.responsive.d.ts +1 -1
  105. package/esm/Component.responsive.js +26 -25
  106. package/esm/components/arrow/Component.js +1 -1
  107. package/esm/components/arrow/index.css +3 -3
  108. package/esm/components/base-checkmark/Component.js +1 -1
  109. package/esm/components/base-checkmark/index.css +4 -4
  110. package/esm/components/base-option/Component.js +1 -1
  111. package/esm/components/base-option/index.css +13 -13
  112. package/esm/components/base-select/Component.js +2 -2
  113. package/esm/components/base-select/index.css +8 -8
  114. package/esm/components/base-select/index.js +1 -1
  115. package/esm/components/base-select-mobile/Component.d.ts +3 -3
  116. package/esm/components/base-select-mobile/Component.js +9 -5
  117. package/esm/components/base-select-mobile/footer/Component.js +4 -4
  118. package/esm/components/base-select-mobile/footer/index.css +5 -5
  119. package/esm/components/base-select-mobile/footer/index.js +1 -1
  120. package/esm/components/base-select-mobile/index.css +13 -11
  121. package/esm/components/base-select-mobile/index.js +1 -2
  122. package/esm/components/checkmark/Component.js +1 -1
  123. package/esm/components/checkmark/index.css +10 -10
  124. package/esm/components/checkmark-mobile/Component.js +1 -1
  125. package/esm/components/checkmark-mobile/index.css +6 -6
  126. package/esm/components/field/Component.d.ts +8 -1
  127. package/esm/components/field/Component.js +19 -16
  128. package/esm/components/field/index.css +38 -11
  129. package/esm/components/field/index.js +0 -1
  130. package/esm/components/index.d.ts +0 -2
  131. package/esm/components/index.js +4 -17
  132. package/esm/components/optgroup/Component.js +1 -1
  133. package/esm/components/optgroup/index.css +6 -6
  134. package/esm/components/option/Component.js +1 -1
  135. package/esm/components/option/index.css +20 -20
  136. package/esm/components/options-list/Component.js +1 -1
  137. package/esm/components/options-list/index.css +9 -9
  138. package/esm/components/virtual-options-list/Component.js +1 -1
  139. package/esm/components/virtual-options-list/index.css +15 -15
  140. package/esm/desktop-63dec22f.d.ts +6 -0
  141. package/esm/desktop.d.ts +2 -0
  142. package/esm/{responsive.js → desktop.js} +4 -18
  143. package/{cssm/hook-b4e70cb0.d.ts → esm/hook-9ea9e32c.d.ts} +9 -7
  144. package/esm/hook-cb30fc23.d.ts +16 -0
  145. package/esm/hook-cb30fc23.js +102 -0
  146. package/esm/index-ebda875c.d.ts +20 -60
  147. package/esm/index.d.ts +2 -5
  148. package/esm/index.js +27 -29
  149. package/esm/mobile-96988a65.d.ts +2 -0
  150. package/esm/mobile.d.ts +5 -4
  151. package/esm/mobile.js +12 -16
  152. package/esm/presets/index.d.ts +1 -1
  153. package/esm/presets/index.js +7 -25
  154. package/esm/presets/useLazyLoading/hook.js +9 -5
  155. package/esm/presets/useSelectWithApply/hook.js +7 -33
  156. package/esm/presets/useSelectWithApply/options-list-with-apply/Component.js +2 -28
  157. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +4 -4
  158. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  159. package/esm/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  160. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  161. package/esm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  162. package/esm/presets/useSelectWithApply/options-list-with-apply/index.js +8 -34
  163. package/esm/presets/useSelectWithLoading/hook.js +1 -1
  164. package/esm/presets/useSelectWithLoading/index.css +2 -2
  165. package/esm/shared.d.ts +5 -0
  166. package/esm/shared.js +38 -0
  167. package/esm/typings-9211a437.d.ts +95 -0
  168. package/esm/typings-baf4875b.d.ts +52 -0
  169. package/hook-3e654f56.d.ts +16 -0
  170. package/hook-3e654f56.js +110 -0
  171. package/{hook-b4e70cb0.d.ts → hook-9ea9e32c.d.ts} +9 -7
  172. package/index-ebda875c.d.ts +20 -60
  173. package/index.d.ts +2 -5
  174. package/index.js +28 -51
  175. package/mobile-96988a65.d.ts +2 -0
  176. package/mobile.d.ts +5 -4
  177. package/mobile.js +14 -18
  178. package/modern/Component.desktop.d.ts +19 -0
  179. package/modern/{Component.js → Component.desktop.js} +7 -4
  180. package/modern/Component.mobile-ebda875c.d.ts +6 -0
  181. package/modern/Component.mobile-f1f15074.d.ts +387 -0
  182. package/modern/Component.mobile.d.ts +41 -0
  183. package/modern/Component.mobile.js +61 -0
  184. package/modern/Component.modal.mobile.d.ts +60 -0
  185. package/modern/Component.modal.mobile.js +61 -0
  186. package/modern/Component.responsive.d.ts +1 -1
  187. package/modern/Component.responsive.js +26 -25
  188. package/modern/components/arrow/Component.js +1 -1
  189. package/modern/components/arrow/index.css +3 -3
  190. package/modern/components/base-checkmark/Component.js +1 -1
  191. package/modern/components/base-checkmark/index.css +4 -4
  192. package/modern/components/base-option/Component.js +1 -1
  193. package/modern/components/base-option/index.css +13 -13
  194. package/modern/components/base-select/Component.js +2 -2
  195. package/modern/components/base-select/index.css +8 -8
  196. package/modern/components/base-select/index.js +1 -1
  197. package/modern/components/base-select-mobile/Component.d.ts +3 -3
  198. package/modern/components/base-select-mobile/Component.js +9 -5
  199. package/modern/components/base-select-mobile/footer/Component.js +4 -4
  200. package/modern/components/base-select-mobile/footer/index.css +5 -5
  201. package/modern/components/base-select-mobile/footer/index.js +1 -1
  202. package/modern/components/base-select-mobile/index.css +13 -11
  203. package/modern/components/base-select-mobile/index.js +1 -2
  204. package/modern/components/checkmark/Component.js +1 -1
  205. package/modern/components/checkmark/index.css +10 -10
  206. package/modern/components/checkmark-mobile/Component.js +1 -1
  207. package/modern/components/checkmark-mobile/index.css +6 -6
  208. package/modern/components/field/Component.d.ts +8 -1
  209. package/modern/components/field/Component.js +17 -14
  210. package/modern/components/field/index.css +38 -11
  211. package/modern/components/field/index.js +0 -1
  212. package/modern/components/index.d.ts +0 -2
  213. package/modern/components/index.js +4 -17
  214. package/modern/components/optgroup/Component.js +1 -1
  215. package/modern/components/optgroup/index.css +6 -6
  216. package/modern/components/option/Component.js +1 -1
  217. package/modern/components/option/index.css +20 -20
  218. package/modern/components/options-list/Component.js +1 -1
  219. package/modern/components/options-list/index.css +9 -9
  220. package/modern/components/virtual-options-list/Component.js +1 -1
  221. package/modern/components/virtual-options-list/index.css +15 -15
  222. package/modern/desktop-63dec22f.d.ts +6 -0
  223. package/modern/desktop.d.ts +2 -0
  224. package/modern/{responsive.js → desktop.js} +4 -18
  225. package/modern/hook-467b4d42.d.ts +16 -0
  226. package/modern/{Component-5c16a908.js → hook-467b4d42.js} +3 -66
  227. package/modern/{hook-b4e70cb0.d.ts → hook-9ea9e32c.d.ts} +9 -7
  228. package/modern/index-ebda875c.d.ts +20 -60
  229. package/modern/index.d.ts +2 -5
  230. package/modern/index.js +27 -29
  231. package/modern/mobile-96988a65.d.ts +2 -0
  232. package/modern/mobile.d.ts +5 -4
  233. package/modern/mobile.js +12 -16
  234. package/modern/presets/index.d.ts +1 -1
  235. package/modern/presets/index.js +7 -25
  236. package/modern/presets/useLazyLoading/hook.js +9 -5
  237. package/modern/presets/useSelectWithApply/hook.js +7 -33
  238. package/modern/presets/useSelectWithApply/options-list-with-apply/Component.js +2 -28
  239. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +4 -4
  240. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  241. package/modern/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  242. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  243. package/modern/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  244. package/modern/presets/useSelectWithApply/options-list-with-apply/index.js +8 -34
  245. package/modern/presets/useSelectWithLoading/hook.js +1 -1
  246. package/modern/presets/useSelectWithLoading/index.css +2 -2
  247. package/modern/shared.d.ts +5 -0
  248. package/modern/shared.js +37 -0
  249. package/modern/typings-9211a437.d.ts +95 -0
  250. package/modern/typings-baf4875b.d.ts +52 -0
  251. package/package.json +38 -12
  252. package/presets/index.d.ts +1 -1
  253. package/presets/index.js +7 -25
  254. package/presets/useLazyLoading/hook.js +9 -5
  255. package/presets/useSelectWithApply/hook.js +7 -33
  256. package/presets/useSelectWithApply/options-list-with-apply/Component.js +2 -28
  257. package/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +4 -4
  258. package/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  259. package/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  260. package/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  261. package/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  262. package/presets/useSelectWithApply/options-list-with-apply/index.js +8 -34
  263. package/presets/useSelectWithLoading/hook.js +1 -1
  264. package/presets/useSelectWithLoading/index.css +2 -2
  265. package/shared.d.ts +5 -0
  266. package/shared.js +64 -0
  267. package/src/Component.desktop.tsx +52 -0
  268. package/src/Component.mobile.tsx +149 -0
  269. package/src/Component.modal.mobile.tsx +144 -0
  270. package/src/Component.responsive.tsx +59 -0
  271. package/src/components/arrow/Component.tsx +12 -0
  272. package/src/components/arrow/index.module.css +15 -0
  273. package/src/components/arrow/index.ts +1 -0
  274. package/src/components/base-checkmark/Component.tsx +33 -0
  275. package/src/components/base-checkmark/index.module.css +18 -0
  276. package/src/components/base-checkmark/index.ts +1 -0
  277. package/src/components/base-option/Component.tsx +57 -0
  278. package/src/components/base-option/index.module.css +67 -0
  279. package/src/components/base-option/index.ts +1 -0
  280. package/src/components/base-select/Component.tsx +478 -0
  281. package/src/components/base-select/index.module.css +68 -0
  282. package/src/components/base-select/index.ts +1 -0
  283. package/src/components/base-select-mobile/Component.tsx +486 -0
  284. package/src/components/base-select-mobile/footer/Component.tsx +46 -0
  285. package/src/components/base-select-mobile/footer/index.module.css +23 -0
  286. package/src/components/base-select-mobile/footer/index.ts +1 -0
  287. package/src/components/base-select-mobile/index.module.css +48 -0
  288. package/src/components/base-select-mobile/index.ts +1 -0
  289. package/src/components/checkmark/Component.tsx +56 -0
  290. package/src/components/checkmark/index.module.css +48 -0
  291. package/src/components/checkmark/index.ts +1 -0
  292. package/src/components/checkmark-mobile/Component.tsx +18 -0
  293. package/src/components/checkmark-mobile/index.module.css +28 -0
  294. package/src/components/checkmark-mobile/index.ts +1 -0
  295. package/src/components/field/Component.tsx +110 -0
  296. package/src/components/field/index.module.css +60 -0
  297. package/src/components/field/index.ts +1 -0
  298. package/src/components/index.ts +8 -0
  299. package/src/components/native-select/Component.tsx +60 -0
  300. package/src/components/native-select/index.ts +1 -0
  301. package/src/components/optgroup/Component.tsx +15 -0
  302. package/src/components/optgroup/index.module.css +30 -0
  303. package/src/components/optgroup/index.ts +1 -0
  304. package/src/components/option/Component.tsx +65 -0
  305. package/src/components/option/index.module.css +108 -0
  306. package/src/components/option/index.ts +1 -0
  307. package/src/components/options-list/Component.tsx +140 -0
  308. package/src/components/options-list/index.module.css +40 -0
  309. package/src/components/options-list/index.ts +1 -0
  310. package/src/components/virtual-options-list/Component.tsx +217 -0
  311. package/src/components/virtual-options-list/index.module.css +76 -0
  312. package/src/components/virtual-options-list/index.ts +1 -0
  313. package/src/consts.ts +1 -0
  314. package/src/desktop.ts +1 -0
  315. package/src/index.ts +4 -0
  316. package/src/mobile.ts +5 -0
  317. package/src/presets/index.ts +3 -0
  318. package/src/presets/useLazyLoading/hook.tsx +309 -0
  319. package/src/presets/useSelectWithApply/hook.tsx +154 -0
  320. package/src/presets/useSelectWithApply/options-list-with-apply/Component.tsx +106 -0
  321. package/src/presets/useSelectWithApply/options-list-with-apply/footer/Component.tsx +37 -0
  322. package/src/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css +11 -0
  323. package/src/presets/useSelectWithApply/options-list-with-apply/header/Component.tsx +26 -0
  324. package/src/presets/useSelectWithApply/options-list-with-apply/header/index.module.css +9 -0
  325. package/src/presets/useSelectWithApply/options-list-with-apply/index.ts +1 -0
  326. package/src/presets/useSelectWithLoading/hook.tsx +40 -0
  327. package/src/shared.ts +5 -0
  328. package/src/typings.ts +691 -0
  329. package/src/utils.ts +154 -0
  330. package/src/vars.css +57 -0
  331. package/typings-9211a437.d.ts +95 -0
  332. package/typings-baf4875b.d.ts +52 -0
  333. package/Component-1e06de61.d.ts +0 -108
  334. package/Component-1e06de61.js +0 -165
  335. package/Component-3885b0d7.d.ts +0 -169
  336. package/Component.d.ts +0 -104
  337. package/Component.mobile-b2c0420d.d.ts +0 -93
  338. package/components/select-mobile/Component.d.ts +0 -0
  339. package/components/select-mobile/Component.js +0 -49
  340. package/components/select-mobile/index.d.ts +0 -1
  341. package/components/select-mobile/index.js +0 -49
  342. package/components/select-modal-mobile/Component.d.ts +0 -0
  343. package/components/select-modal-mobile/Component.js +0 -49
  344. package/components/select-modal-mobile/index.d.ts +0 -1
  345. package/components/select-modal-mobile/index.js +0 -49
  346. package/cssm/Component-3885b0d7.d.ts +0 -169
  347. package/cssm/Component-4727d474.d.ts +0 -108
  348. package/cssm/Component-4727d474.js +0 -175
  349. package/cssm/Component.d.ts +0 -104
  350. package/cssm/Component.mobile-b2c0420d.d.ts +0 -93
  351. package/cssm/components/select-mobile/Component.d.ts +0 -0
  352. package/cssm/components/select-mobile/Component.js +0 -66
  353. package/cssm/components/select-mobile/index.d.ts +0 -1
  354. package/cssm/components/select-mobile/index.js +0 -66
  355. package/cssm/components/select-modal-mobile/Component.d.ts +0 -0
  356. package/cssm/components/select-modal-mobile/Component.js +0 -66
  357. package/cssm/components/select-modal-mobile/index.d.ts +0 -1
  358. package/cssm/components/select-modal-mobile/index.js +0 -66
  359. package/cssm/getDataTestId-5c876d98.d.ts +0 -2
  360. package/cssm/getDataTestId-5c876d98.js +0 -8
  361. package/cssm/index-3885b0d7.d.ts +0 -3
  362. package/cssm/intersection-observer-9ec5cf59.d.ts +0 -1
  363. package/cssm/intersection-observer-9ec5cf59.js +0 -893
  364. package/cssm/responsive.d.ts +0 -2
  365. package/cssm/responsive.js +0 -67
  366. package/cssm/types-ebda875c.d.ts +0 -113
  367. package/esm/Component-16af9d1e.d.ts +0 -108
  368. package/esm/Component-16af9d1e.js +0 -155
  369. package/esm/Component-3885b0d7.d.ts +0 -169
  370. package/esm/Component.d.ts +0 -104
  371. package/esm/Component.mobile-b2c0420d.d.ts +0 -93
  372. package/esm/components/select-mobile/Component.d.ts +0 -0
  373. package/esm/components/select-mobile/Component.js +0 -41
  374. package/esm/components/select-mobile/index.d.ts +0 -1
  375. package/esm/components/select-mobile/index.js +0 -41
  376. package/esm/components/select-modal-mobile/Component.d.ts +0 -0
  377. package/esm/components/select-modal-mobile/Component.js +0 -41
  378. package/esm/components/select-modal-mobile/index.d.ts +0 -1
  379. package/esm/components/select-modal-mobile/index.js +0 -41
  380. package/esm/getDataTestId-1a678b16.d.ts +0 -2
  381. package/esm/getDataTestId-1a678b16.js +0 -6
  382. package/esm/index-3885b0d7.d.ts +0 -3
  383. package/esm/intersection-observer-4e5bb99c.d.ts +0 -1
  384. package/esm/intersection-observer-4e5bb99c.js +0 -891
  385. package/esm/presets/useLazyLoading/index.css +0 -8
  386. package/esm/responsive.d.ts +0 -2
  387. package/esm/types-ebda875c.d.ts +0 -113
  388. package/getDataTestId-3f974970.d.ts +0 -2
  389. package/getDataTestId-3f974970.js +0 -8
  390. package/index-3885b0d7.d.ts +0 -3
  391. package/intersection-observer-411362a8.d.ts +0 -1
  392. package/intersection-observer-411362a8.js +0 -893
  393. package/modern/Component-3885b0d7.d.ts +0 -169
  394. package/modern/Component-5c16a908.d.ts +0 -108
  395. package/modern/Component.d.ts +0 -104
  396. package/modern/Component.mobile-b2c0420d.d.ts +0 -93
  397. package/modern/components/select-mobile/Component.d.ts +0 -0
  398. package/modern/components/select-mobile/Component.js +0 -40
  399. package/modern/components/select-mobile/index.d.ts +0 -1
  400. package/modern/components/select-mobile/index.js +0 -40
  401. package/modern/components/select-modal-mobile/Component.d.ts +0 -0
  402. package/modern/components/select-modal-mobile/Component.js +0 -40
  403. package/modern/components/select-modal-mobile/index.d.ts +0 -1
  404. package/modern/components/select-modal-mobile/index.js +0 -40
  405. package/modern/getDataTestId-c17bfb0c.d.ts +0 -2
  406. package/modern/getDataTestId-c17bfb0c.js +0 -6
  407. package/modern/index-3885b0d7.d.ts +0 -3
  408. package/modern/intersection-observer-4e5bb99c.d.ts +0 -1
  409. package/modern/intersection-observer-4e5bb99c.js +0 -891
  410. package/modern/presets/useLazyLoading/index.css +0 -8
  411. package/modern/responsive.d.ts +0 -2
  412. package/modern/types-ebda875c.d.ts +0 -113
  413. package/presets/useLazyLoading/index.css +0 -8
  414. package/responsive.d.ts +0 -2
  415. package/types-ebda875c.d.ts +0 -113
  416. /package/{cssm/presets/useLazyLoading → src/presets/useSelectWithLoading}/index.module.css +0 -0
@@ -0,0 +1,486 @@
1
+ import React, {
2
+ FocusEvent,
3
+ forwardRef,
4
+ KeyboardEvent,
5
+ MouseEvent,
6
+ ReactNode,
7
+ useEffect,
8
+ useMemo,
9
+ useRef,
10
+ } from 'react';
11
+ import mergeRefs from 'react-merge-refs';
12
+ import cn from 'classnames';
13
+ import {
14
+ useCombobox,
15
+ useMultipleSelection,
16
+ UseMultipleSelectionProps,
17
+ UseMultipleSelectionState,
18
+ } from 'downshift';
19
+
20
+ import { BottomSheet, BottomSheetProps } from '@alfalab/core-components-bottom-sheet';
21
+ import { ModalMobile } from '@alfalab/core-components-modal/mobile';
22
+ import { getDataTestId } from '@alfalab/core-components-shared';
23
+
24
+ import {
25
+ AnyObject,
26
+ BaseSelectProps,
27
+ OptionProps,
28
+ OptionShape,
29
+ OptionsListProps,
30
+ } from '../../typings';
31
+ import { processOptions } from '../../utils';
32
+ import { Arrow as DefaultArrow } from '../arrow';
33
+ import { Field as DefaultField } from '../field';
34
+ import { Optgroup as DefaultOptgroup } from '../optgroup';
35
+ import { Option as DefaultOption } from '../option';
36
+ import { OptionsList as DefaultOptionsList } from '../options-list';
37
+
38
+ import styles from './index.module.css';
39
+
40
+ export type SelectMobileProps = Omit<BaseSelectProps, 'Checkmark' | 'onScroll'> & {
41
+ /**
42
+ * Футер
43
+ * @deprecated Используйте bottomSheetProps.actionButton
44
+ */
45
+ footer?: ReactNode;
46
+
47
+ /**
48
+ * Будет ли свайпаться шторка
49
+ * @deprecated Используйте bottomSheetProps.swipeable
50
+ */
51
+ swipeable?: boolean;
52
+
53
+ /**
54
+ * Отображать в BottomSheet
55
+ */
56
+ isBottomSheet?: boolean;
57
+
58
+ /**
59
+ * Дополнительные пропсы шторки
60
+ */
61
+ bottomSheetProps?: Partial<BottomSheetProps>;
62
+
63
+ /**
64
+ * Дополнительные пропсы модалки
65
+ */
66
+ modalProps?: Partial<React.ComponentProps<typeof ModalMobile>>;
67
+
68
+ /**
69
+ * Дополнительные пропсы шапки модалки
70
+ */
71
+ modalHeaderProps?: Partial<React.ComponentProps<typeof ModalMobile.Header>>;
72
+
73
+ /**
74
+ * Дополнительные пропсы футера модалки
75
+ */
76
+ modalFooterProps?: Partial<React.ComponentProps<typeof ModalMobile.Footer>>;
77
+ };
78
+
79
+ export const BaseSelectMobile = forwardRef(
80
+ (
81
+ {
82
+ dataTestId,
83
+ className,
84
+ fieldClassName,
85
+ optionsListClassName,
86
+ optionClassName,
87
+ optionGroupClassName,
88
+ optionsListProps,
89
+ options = [],
90
+ autocomplete = false,
91
+ multiple = false,
92
+ allowUnselect = false,
93
+ disabled = false,
94
+ closeOnSelect = !multiple,
95
+ circularNavigation = false,
96
+ defaultOpen = false,
97
+ open: openProp,
98
+ optionsListWidth = 'content',
99
+ name,
100
+ id,
101
+ selected = [],
102
+ size = 'm',
103
+ optionsSize = 'm',
104
+ error,
105
+ hint,
106
+ block,
107
+ label,
108
+ labelView,
109
+ placeholder,
110
+ fieldProps = {},
111
+ optionProps = {},
112
+ valueRenderer,
113
+ onChange,
114
+ onOpen,
115
+ onFocus,
116
+ onBlur,
117
+ Arrow = DefaultArrow,
118
+ Field = DefaultField,
119
+ Optgroup = DefaultOptgroup,
120
+ Option = DefaultOption,
121
+ OptionsList = DefaultOptionsList,
122
+ swipeable,
123
+ footer,
124
+ isBottomSheet,
125
+ bottomSheetProps,
126
+ modalProps,
127
+ modalHeaderProps,
128
+ modalFooterProps,
129
+ showEmptyOptionsList = false,
130
+ }: SelectMobileProps,
131
+ ref,
132
+ ) => {
133
+ const rootRef = useRef<HTMLLabelElement>(null);
134
+ const fieldRef = useRef<HTMLInputElement>(null);
135
+ const listRef = useRef<HTMLDivElement>(null);
136
+ const initiatorRef = useRef<OptionShape | null>(null);
137
+ const alreadyClickedRef = useRef<boolean>(false);
138
+
139
+ const itemToString = (option: OptionShape) => (option ? option.key : '');
140
+
141
+ const { flatOptions, selectedOptions } = useMemo(
142
+ () => processOptions(options, selected),
143
+ [options, selected],
144
+ );
145
+
146
+ const scrollableContainerRef = useRef<HTMLDivElement>(null);
147
+
148
+ const useMultipleSelectionProps: UseMultipleSelectionProps<OptionShape> = {
149
+ itemToString,
150
+ onSelectedItemsChange: (changes) => {
151
+ if (onChange) {
152
+ const { selectedItems = [] } = changes;
153
+
154
+ onChange({
155
+ selectedMultiple: selectedItems,
156
+ selected: selectedItems.length ? selectedItems[0] : null,
157
+ initiator: initiatorRef.current,
158
+ name,
159
+ });
160
+
161
+ initiatorRef.current = null;
162
+ }
163
+ },
164
+ stateReducer: (state, actionAndChanges) => {
165
+ const { type, changes } = actionAndChanges;
166
+
167
+ if (
168
+ !allowUnselect &&
169
+ type === useMultipleSelection.stateChangeTypes.DropdownKeyDownBackspace
170
+ ) {
171
+ return state;
172
+ }
173
+
174
+ return changes as UseMultipleSelectionState<OptionShape>;
175
+ },
176
+ };
177
+
178
+ if (selected !== undefined) {
179
+ useMultipleSelectionProps.selectedItems = selectedOptions;
180
+ }
181
+
182
+ const {
183
+ selectedItems,
184
+ addSelectedItem,
185
+ setSelectedItems,
186
+ removeSelectedItem,
187
+ getDropdownProps,
188
+ } = useMultipleSelection(useMultipleSelectionProps);
189
+
190
+ const {
191
+ isOpen: open,
192
+ getMenuProps,
193
+ getInputProps,
194
+ getItemProps,
195
+ getComboboxProps,
196
+ getLabelProps,
197
+ highlightedIndex,
198
+ toggleMenu,
199
+ openMenu,
200
+ } = useCombobox<OptionShape>({
201
+ id,
202
+ isOpen: openProp,
203
+ circularNavigation,
204
+ items: flatOptions,
205
+ itemToString,
206
+ defaultHighlightedIndex: -1,
207
+ onIsOpenChange: ({ isOpen }) => {
208
+ if (onOpen) {
209
+ /**
210
+ * Вызываем обработчик асинхронно.
211
+ *
212
+ * Иначе при клике вне открытого селекта сначала сработает onOpen, который закроет селект,
213
+ * А затем сработает onClick кнопки открытия\закрытия с open=false и в итоге селект откроется снова.
214
+ */
215
+ setTimeout(() => {
216
+ onOpen({
217
+ open: isOpen,
218
+ name,
219
+ });
220
+ }, 0);
221
+ }
222
+ },
223
+ stateReducer: (state, actionAndChanges) => {
224
+ const { type, changes } = actionAndChanges;
225
+ const { selectedItem } = changes;
226
+
227
+ switch (type) {
228
+ case useCombobox.stateChangeTypes.InputBlur:
229
+ return state;
230
+ case useCombobox.stateChangeTypes.InputKeyDownEnter:
231
+ case useCombobox.stateChangeTypes.ItemClick:
232
+ initiatorRef.current = selectedItem;
233
+
234
+ if (selectedItem && !selectedItem.disabled && !alreadyClickedRef.current) {
235
+ alreadyClickedRef.current = true;
236
+ // TODO!!! Проблема downshift + React 18. ItemClick срабатывает дважды. См https://github.com/downshift-js/downshift/issues/1384
237
+ setTimeout(() => {
238
+ alreadyClickedRef.current = false;
239
+ });
240
+ const alreadySelected = selectedItems.includes(selectedItem);
241
+ const allowRemove =
242
+ allowUnselect || (multiple && selectedItems.length > 1);
243
+
244
+ if (alreadySelected && allowRemove) {
245
+ if (multiple) {
246
+ removeSelectedItem(selectedItem);
247
+ } else {
248
+ setSelectedItems([]);
249
+ }
250
+ }
251
+
252
+ if (!alreadySelected) {
253
+ if (multiple) {
254
+ addSelectedItem(selectedItem);
255
+ } else {
256
+ setSelectedItems([selectedItem]);
257
+ }
258
+ }
259
+ }
260
+
261
+ return {
262
+ ...changes,
263
+ isOpen: !closeOnSelect || multiple,
264
+ // при closeOnSelect === false - сохраняем подсвеченный индекс
265
+ highlightedIndex:
266
+ state.isOpen && !closeOnSelect
267
+ ? state.highlightedIndex
268
+ : changes.highlightedIndex,
269
+ };
270
+ default:
271
+ return changes;
272
+ }
273
+ },
274
+ });
275
+
276
+ const menuProps = (getMenuProps as (options: object, additional: object) => AnyObject)(
277
+ { ref: listRef },
278
+ { suppressRefError: true },
279
+ );
280
+ const inputProps = getInputProps(getDropdownProps({ ref: mergeRefs([ref, fieldRef]) }));
281
+
282
+ const handleFieldFocus = (event: FocusEvent<HTMLDivElement | HTMLInputElement>) => {
283
+ if (onFocus) onFocus(event);
284
+
285
+ if (autocomplete && !open) {
286
+ openMenu();
287
+ }
288
+ };
289
+
290
+ const handleFieldBlur = (event: FocusEvent<HTMLDivElement | HTMLInputElement>) => {
291
+ if (!open && onBlur) onBlur(event);
292
+ };
293
+
294
+ const handleFieldKeyDown = (event: KeyboardEvent<HTMLDivElement | HTMLInputElement>) => {
295
+ inputProps.onKeyDown(event);
296
+ if (autocomplete && !open && (event.key.length === 1 || event.key === 'Backspace')) {
297
+ // Для автокомплита - открываем меню при начале ввода
298
+ openMenu();
299
+ }
300
+
301
+ if (
302
+ [' ', 'Enter'].includes(event.key) &&
303
+ !autocomplete &&
304
+ (event.target as HTMLElement).tagName !== 'INPUT' &&
305
+ (event.target as HTMLElement).tagName !== 'BUTTON'
306
+ ) {
307
+ // Открываем\закрываем меню по нажатию enter или пробела
308
+ event.preventDefault();
309
+ if (!open || highlightedIndex === -1) toggleMenu();
310
+ }
311
+ };
312
+
313
+ const handleFieldClick = (event: MouseEvent) => {
314
+ if (!autocomplete || (event.target as HTMLElement).tagName !== 'INPUT') {
315
+ toggleMenu();
316
+ } else {
317
+ openMenu();
318
+ }
319
+ };
320
+
321
+ const getOptionProps = (option: OptionShape, index: number): OptionProps => {
322
+ const selectedItem = selectedItems.includes(option);
323
+
324
+ return {
325
+ ...(optionProps as object),
326
+ mobile: true,
327
+ className: cn(styles.option, optionClassName),
328
+ innerProps: getItemProps({
329
+ index,
330
+ item: option,
331
+ disabled: option.disabled,
332
+ onMouseDown: (event: MouseEvent) => event.preventDefault(),
333
+ }),
334
+ multiple,
335
+ index,
336
+ option,
337
+ size: optionsSize,
338
+ disabled: option.disabled,
339
+ highlighted: index === highlightedIndex,
340
+ selected: selectedItem,
341
+ dataTestId: getDataTestId(dataTestId, 'option'),
342
+ };
343
+ };
344
+
345
+ useEffect(() => {
346
+ if (defaultOpen) openMenu();
347
+ }, [defaultOpen, openMenu]);
348
+
349
+ useEffect(() => {
350
+ if (openProp) {
351
+ openMenu();
352
+ }
353
+ // eslint-disable-next-line react-hooks/exhaustive-deps
354
+ }, []);
355
+
356
+ const handleClose = () => {
357
+ toggleMenu();
358
+ };
359
+
360
+ const renderValue = () =>
361
+ selectedItems.map((option) => (
362
+ <input type='hidden' name={name} value={option.key} key={option.key} />
363
+ ));
364
+
365
+ const renderOptionsList = () => {
366
+ if (flatOptions.length === 0 && !showEmptyOptionsList) return null;
367
+
368
+ return (
369
+ <div {...menuProps} className={optionsListClassName}>
370
+ <OptionsList
371
+ {...(optionsListProps as OptionsListProps)}
372
+ ref={scrollableContainerRef}
373
+ optionsListWidth={optionsListWidth}
374
+ flatOptions={flatOptions}
375
+ highlightedIndex={highlightedIndex}
376
+ open={open}
377
+ size={size}
378
+ options={options}
379
+ Optgroup={Optgroup}
380
+ Option={Option}
381
+ selectedItems={selectedItems}
382
+ setSelectedItems={setSelectedItems}
383
+ toggleMenu={toggleMenu}
384
+ getOptionProps={getOptionProps}
385
+ visibleOptions={0}
386
+ dataTestId={getDataTestId(dataTestId, 'options-list')}
387
+ optionGroupClassName={cn(styles.optionGroup, optionGroupClassName)}
388
+ />
389
+ </div>
390
+ );
391
+ };
392
+
393
+ return (
394
+ <div
395
+ {...getComboboxProps({
396
+ ref: rootRef,
397
+ ...(disabled && { 'aria-disabled': true }),
398
+ className: cn(styles.component, { [styles.block]: block }, className),
399
+ })}
400
+ onKeyDown={disabled ? undefined : handleFieldKeyDown}
401
+ tabIndex={-1}
402
+ data-test-id={getDataTestId(dataTestId)}
403
+ >
404
+ <Field
405
+ selectedMultiple={selectedItems}
406
+ selected={selectedItems[0]}
407
+ setSelectedItems={setSelectedItems}
408
+ toggleMenu={toggleMenu}
409
+ multiple={multiple}
410
+ open={open}
411
+ disabled={disabled}
412
+ size={size}
413
+ placeholder={placeholder}
414
+ label={label && <span {...getLabelProps()}>{label}</span>}
415
+ labelView={labelView}
416
+ Arrow={Arrow && <Arrow open={open} />}
417
+ error={error}
418
+ hint={hint}
419
+ valueRenderer={valueRenderer}
420
+ className={fieldClassName}
421
+ innerProps={{
422
+ onBlur: handleFieldBlur,
423
+ onFocus: disabled ? undefined : handleFieldFocus,
424
+ onClick: disabled ? undefined : handleFieldClick,
425
+ tabIndex: disabled ? -1 : 0,
426
+ ref: mergeRefs([inputProps.ref]),
427
+ id: inputProps.id,
428
+ 'aria-labelledby': inputProps['aria-labelledby'],
429
+ 'aria-controls': inputProps['aria-controls'],
430
+ 'aria-autocomplete': autocomplete
431
+ ? inputProps['aria-autocomplete']
432
+ : undefined,
433
+ }}
434
+ dataTestId={getDataTestId(dataTestId, 'field')}
435
+ {...(fieldProps as AnyObject)}
436
+ />
437
+
438
+ {name && renderValue()}
439
+
440
+ {isBottomSheet ? (
441
+ <BottomSheet
442
+ open={open}
443
+ onClose={handleClose}
444
+ className={styles.sheet}
445
+ contentClassName={styles.sheetContent}
446
+ containerClassName={styles.sheetContainer}
447
+ title={label || placeholder}
448
+ actionButton={footer}
449
+ stickyHeader={true}
450
+ hasCloser={true}
451
+ swipeable={swipeable}
452
+ scrollableContainerRef={scrollableContainerRef}
453
+ {...bottomSheetProps}
454
+ >
455
+ {renderOptionsList()}
456
+ </BottomSheet>
457
+ ) : (
458
+ <ModalMobile
459
+ open={open}
460
+ hasCloser={true}
461
+ {...modalProps}
462
+ onClose={(...args) => {
463
+ handleClose();
464
+ modalProps?.onClose?.(...args);
465
+ }}
466
+ contentClassName={cn(styles.sheetContent, modalProps?.contentClassName)}
467
+ ref={mergeRefs([
468
+ scrollableContainerRef,
469
+ modalProps?.ref as React.Ref<HTMLDivElement>,
470
+ ])}
471
+ >
472
+ <ModalMobile.Header hasCloser={true} sticky={true} {...modalHeaderProps}>
473
+ {label || placeholder}
474
+ </ModalMobile.Header>
475
+
476
+ <ModalMobile.Content flex={true} className={styles.modalContent}>
477
+ {renderOptionsList()}
478
+ </ModalMobile.Content>
479
+
480
+ {modalFooterProps?.children && <ModalMobile.Footer {...modalFooterProps} />}
481
+ </ModalMobile>
482
+ )}
483
+ </div>
484
+ );
485
+ },
486
+ );
@@ -0,0 +1,46 @@
1
+ import React, { useContext, useEffect } from 'react';
2
+ import cn from 'classnames';
3
+
4
+ import { BaseModalContext } from '@alfalab/core-components-base-modal';
5
+ import { ButtonMobile } from '@alfalab/core-components-button/mobile';
6
+
7
+ import styles from './index.module.css';
8
+
9
+ export type FooterProps = {
10
+ handleClear?: () => void;
11
+ handleApply?: () => void;
12
+ showClear?: boolean;
13
+ };
14
+
15
+ export const Footer = ({ handleApply, handleClear, showClear }: FooterProps) => {
16
+ const { footerHighlighted, setHasFooter } = useContext(BaseModalContext);
17
+
18
+ useEffect(() => {
19
+ setHasFooter(true);
20
+ }, [setHasFooter]);
21
+
22
+ return (
23
+ <div
24
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
25
+ tabIndex={0}
26
+ className={cn(styles.footer, {
27
+ [styles.highlighted]: footerHighlighted,
28
+ })}
29
+ >
30
+ {showClear && (
31
+ <ButtonMobile
32
+ size='m'
33
+ view='secondary'
34
+ className={styles.button}
35
+ onClick={handleClear}
36
+ >
37
+ Сбросить
38
+ </ButtonMobile>
39
+ )}
40
+
41
+ <ButtonMobile size='m' view='primary' className={styles.button} onClick={handleApply}>
42
+ Применить
43
+ </ButtonMobile>
44
+ </div>
45
+ );
46
+ };
@@ -0,0 +1,23 @@
1
+ @import '@alfalab/core-components-themes/src/default.css';
2
+ @import '../../../vars.css';
3
+
4
+ .footer {
5
+ display: flex;
6
+ box-sizing: border-box;
7
+ width: 100%;
8
+ padding: var(--gap-m) var(--gap-m);
9
+ background-color: var(--color-light-bg-primary);
10
+
11
+ & .button:first-of-type {
12
+ margin-right: var(--gap-m);
13
+ }
14
+ }
15
+
16
+ .button {
17
+ width: 50%;
18
+ }
19
+
20
+ .highlighted {
21
+ border-top: 1px solid var(--color-light-border-primary);
22
+ background-color: var(--color-light-bg-primary);
23
+ }
@@ -0,0 +1 @@
1
+ export * from './Component';
@@ -0,0 +1,48 @@
1
+ @import '@alfalab/core-components-themes/src/default.css';
2
+ @import '../../vars.css';
3
+
4
+ .component {
5
+ width: max-content;
6
+ position: relative;
7
+ outline: 0;
8
+ }
9
+
10
+ .sheet {
11
+ overflow: hidden;
12
+ }
13
+
14
+ .sheetContent {
15
+ padding: 0;
16
+
17
+ & .modalContent {
18
+ padding: 0;
19
+ }
20
+ }
21
+
22
+ .sheetContainer {
23
+ padding: 0;
24
+ }
25
+
26
+ .block {
27
+ width: 100%;
28
+ }
29
+
30
+ /* width: max-content; fix for IE */
31
+ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
32
+ .component {
33
+ float: left;
34
+ clear: left;
35
+ }
36
+ }
37
+
38
+ .option {
39
+ padding: var(--gap-2xs) var(--gap-l) var(--gap-2xs) var(--gap-m);
40
+
41
+ &:before {
42
+ display: none;
43
+ }
44
+ }
45
+
46
+ .optionGroup {
47
+ padding: var(--gap-m) var(--gap-m) var(--gap-xs);
48
+ }
@@ -0,0 +1 @@
1
+ export * from './Component';
@@ -0,0 +1,56 @@
1
+ import React, { useCallback } from 'react';
2
+ import cn from 'classnames';
3
+
4
+ import { Badge } from '@alfalab/core-components-badge';
5
+ import { Checkbox, CheckboxProps } from '@alfalab/core-components-checkbox';
6
+ import { CheckmarkCircleMIcon } from '@alfalab/icons-glyph/CheckmarkCircleMIcon';
7
+ import CheckmarkMIcon from '@alfalab/icons-glyph/CheckmarkMIcon';
8
+
9
+ import { CheckmarkProps } from '../../typings';
10
+
11
+ import styles from './index.module.css';
12
+
13
+ export const Checkmark = ({
14
+ selected,
15
+ disabled = false,
16
+ className,
17
+ multiple,
18
+ position = 'before',
19
+ }: CheckmarkProps) => {
20
+ const single = !multiple;
21
+
22
+ const checkmarkClassNames = cn(styles.checkmark, className, styles[position], {
23
+ [styles.multiple]: !single,
24
+ [styles.single]: single,
25
+ [styles.selected]: selected,
26
+ });
27
+
28
+ const handleCheckboxClick = useCallback<Required<CheckboxProps>['onClick']>(
29
+ (event) => event.stopPropagation(),
30
+ [],
31
+ );
32
+
33
+ return single ? (
34
+ <div className={checkmarkClassNames}>
35
+ {position === 'before' ? (
36
+ <Badge
37
+ className={styles.after}
38
+ view='icon'
39
+ size='m'
40
+ iconColor='positive'
41
+ content={<CheckmarkCircleMIcon className={styles.colorIcon} />}
42
+ />
43
+ ) : (
44
+ <CheckmarkMIcon className={cn(styles.displayIcon)} />
45
+ )}
46
+ </div>
47
+ ) : (
48
+ <Checkbox
49
+ checked={selected}
50
+ disabled={disabled}
51
+ className={checkmarkClassNames}
52
+ size='m'
53
+ onClick={handleCheckboxClick}
54
+ />
55
+ );
56
+ };