@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,57 @@
1
+ import React, { FC, isValidElement } from 'react';
2
+ import cn from 'classnames';
3
+
4
+ import { OptionProps } from '../../typings';
5
+ import { BaseCheckmark } from '../base-checkmark';
6
+
7
+ import styles from './index.module.css';
8
+
9
+ export const BaseOption: FC<OptionProps> = ({
10
+ className,
11
+ option,
12
+ children,
13
+ selected,
14
+ highlighted,
15
+ disabled,
16
+ multiple,
17
+ Checkmark = BaseCheckmark,
18
+ checkmarkPosition = multiple ? 'before' : 'after',
19
+ innerProps,
20
+ dataTestId,
21
+ mobile = false,
22
+ }) => {
23
+ const content = children || option.content || option.key;
24
+ const { showCheckMark = true } = option;
25
+
26
+ const isTextContent = !isValidElement(content);
27
+
28
+ const renderCheckmark = () => {
29
+ if (Checkmark && showCheckMark) {
30
+ return <Checkmark disabled={disabled} selected={selected} multiple={multiple} />;
31
+ }
32
+
33
+ return null;
34
+ };
35
+
36
+ return (
37
+ <div
38
+ {...innerProps}
39
+ className={cn(styles.option, className, {
40
+ [styles.highlighted]: !mobile && highlighted,
41
+ [styles.selected]: selected,
42
+ [styles.disabled]: disabled,
43
+ [styles.textContent]: isTextContent,
44
+ [styles.mobile]: mobile,
45
+ [styles.checkmarkAfter]: !isTextContent && checkmarkPosition === 'after',
46
+ [styles.checkmarkBefore]: !isTextContent && checkmarkPosition === 'before',
47
+ })}
48
+ data-test-id={dataTestId}
49
+ >
50
+ {checkmarkPosition === 'before' && renderCheckmark()}
51
+
52
+ <div className={cn(styles.content)}>{content}</div>
53
+
54
+ {checkmarkPosition === 'after' && renderCheckmark()}
55
+ </div>
56
+ );
57
+ };
@@ -0,0 +1,67 @@
1
+ @import '@alfalab/core-components-themes/src/default.css';
2
+ @import '../../vars.css';
3
+
4
+ .option {
5
+ @mixin paragraph_component;
6
+
7
+ display: flex;
8
+ align-items: center;
9
+ gap: var(--gap-s);
10
+ transition: background-color 0.2s ease;
11
+ background: var(--select-option-background);
12
+ color: var(--select-option-color);
13
+ box-sizing: border-box;
14
+ position: relative;
15
+ cursor: pointer;
16
+ min-height: var(--size-s-height);
17
+
18
+ &:not(.disabled):active {
19
+ background: var(--select-option-active-background);
20
+ color: var(--select-option-active-color);
21
+ }
22
+
23
+ &.checkmarkBefore {
24
+ padding: 0 0 0 var(--gap-s);
25
+
26
+ &.mobile {
27
+ padding-left: var(--gap-m);
28
+ }
29
+ }
30
+
31
+ &.checkmarkAfter {
32
+ padding: 0 var(--gap-s) 0 0;
33
+
34
+ &.mobile {
35
+ padding-right: var(--gap-l);
36
+ }
37
+ }
38
+
39
+ &.textContent {
40
+ padding: var(--gap-s);
41
+
42
+ &.mobile {
43
+ padding: var(--gap-m) var(--gap-l) var(--gap-m) var(--gap-m);
44
+ }
45
+ }
46
+ }
47
+
48
+ .selected {
49
+ background: var(--select-option-selected-background);
50
+ color: var(--select-option-selected-color);
51
+ cursor: default;
52
+ }
53
+
54
+ .highlighted {
55
+ background: var(--select-option-hover-background);
56
+ color: var(--select-option-hover-color);
57
+ }
58
+
59
+ .disabled {
60
+ cursor: var(--disabled-cursor);
61
+ background: var(--select-option-disabled-background);
62
+ color: var(--select-option-disabled-color);
63
+ }
64
+
65
+ .content {
66
+ flex: 1;
67
+ }
@@ -0,0 +1 @@
1
+ export * from './Component';
@@ -0,0 +1,478 @@
1
+ /* eslint-disable no-nested-ternary */
2
+ import React, {
3
+ FocusEvent,
4
+ forwardRef,
5
+ KeyboardEvent,
6
+ MouseEvent,
7
+ useCallback,
8
+ useEffect,
9
+ useMemo,
10
+ useRef,
11
+ } from 'react';
12
+ import mergeRefs from 'react-merge-refs';
13
+ import { ResizeObserver as ResizeObserverPolyfill } from '@juggle/resize-observer';
14
+ import cn from 'classnames';
15
+ import {
16
+ useCombobox,
17
+ useMultipleSelection,
18
+ UseMultipleSelectionProps,
19
+ UseMultipleSelectionState,
20
+ } from 'downshift';
21
+
22
+ import { Popover } from '@alfalab/core-components-popover';
23
+ import { getDataTestId } from '@alfalab/core-components-shared';
24
+ import { useLayoutEffect_SAFE_FOR_SSR } from '@alfalab/hooks';
25
+
26
+ import { AnyObject, BaseSelectProps, OptionShape } from '../../typings';
27
+ import { processOptions } from '../../utils';
28
+ import { NativeSelect } from '../native-select';
29
+
30
+ import styles from './index.module.css';
31
+
32
+ export const BaseSelect = forwardRef(
33
+ (
34
+ {
35
+ dataTestId,
36
+ className,
37
+ fieldClassName,
38
+ optionsListClassName,
39
+ optionClassName,
40
+ popperClassName,
41
+ options,
42
+ autocomplete = false,
43
+ multiple = false,
44
+ allowUnselect = false,
45
+ disabled = false,
46
+ closeOnSelect = !multiple,
47
+ circularNavigation = false,
48
+ nativeSelect = false,
49
+ defaultOpen = false,
50
+ open: openProp,
51
+ popoverPosition = 'bottom-start',
52
+ preventFlip = true,
53
+ optionsListWidth = 'content',
54
+ name,
55
+ id,
56
+ selected,
57
+ size = 's',
58
+ optionsSize = size,
59
+ error,
60
+ hint,
61
+ block,
62
+ label,
63
+ labelView,
64
+ placeholder,
65
+ fieldProps = {},
66
+ optionsListProps = {},
67
+ optionProps = {},
68
+ valueRenderer,
69
+ onChange,
70
+ onOpen,
71
+ onFocus,
72
+ onBlur,
73
+ onScroll,
74
+ Arrow,
75
+ Field = () => null,
76
+ OptionsList = () => null,
77
+ Optgroup = () => null,
78
+ Option = () => null,
79
+ updatePopover,
80
+ zIndexPopover,
81
+ showEmptyOptionsList = false,
82
+ visibleOptions,
83
+ }: BaseSelectProps,
84
+ ref,
85
+ ) => {
86
+ const rootRef = useRef<HTMLLabelElement>(null);
87
+ const fieldRef = useRef<HTMLInputElement>(null);
88
+ const listRef = useRef<HTMLDivElement>(null);
89
+ const initiatorRef = useRef<OptionShape | null>(null);
90
+
91
+ const itemToString = (option: OptionShape) => (option ? option.key : '');
92
+
93
+ const { flatOptions, selectedOptions } = useMemo(
94
+ () => processOptions(options, selected),
95
+ [options, selected],
96
+ );
97
+
98
+ const useMultipleSelectionProps: UseMultipleSelectionProps<OptionShape> = {
99
+ itemToString,
100
+ onSelectedItemsChange: (changes) => {
101
+ if (onChange) {
102
+ const { selectedItems = [] } = changes;
103
+
104
+ onChange({
105
+ selectedMultiple: selectedItems,
106
+ selected: selectedItems.length ? selectedItems[0] : null,
107
+ initiator: initiatorRef.current,
108
+ name,
109
+ });
110
+
111
+ initiatorRef.current = null;
112
+ }
113
+ },
114
+ stateReducer: (state, actionAndChanges) => {
115
+ const { type, changes } = actionAndChanges;
116
+
117
+ if (
118
+ !allowUnselect &&
119
+ type === useMultipleSelection.stateChangeTypes.DropdownKeyDownBackspace
120
+ ) {
121
+ return state;
122
+ }
123
+
124
+ return changes as UseMultipleSelectionState<OptionShape>;
125
+ },
126
+ };
127
+
128
+ if (selected !== undefined) {
129
+ useMultipleSelectionProps.selectedItems = selectedOptions;
130
+ }
131
+
132
+ const {
133
+ selectedItems,
134
+ addSelectedItem,
135
+ setSelectedItems,
136
+ removeSelectedItem,
137
+ getDropdownProps,
138
+ } = useMultipleSelection(useMultipleSelectionProps);
139
+
140
+ const {
141
+ isOpen: open,
142
+ getMenuProps,
143
+ getInputProps,
144
+ getItemProps,
145
+ getComboboxProps,
146
+ getLabelProps,
147
+ highlightedIndex,
148
+ toggleMenu,
149
+ openMenu,
150
+ } = useCombobox<OptionShape>({
151
+ id,
152
+ isOpen: openProp,
153
+ circularNavigation,
154
+ items: flatOptions,
155
+ itemToString,
156
+ defaultHighlightedIndex: selectedItems.length === 0 ? -1 : undefined,
157
+ onIsOpenChange: (changes) => {
158
+ if (onOpen) {
159
+ /**
160
+ * Вызываем обработчик асинхронно.
161
+ *
162
+ * Иначе при клике вне открытого селекта сначала сработает onOpen, который закроет селект,
163
+ * А затем сработает onClick кнопки открытия\закрытия с open=false и в итоге селект откроется снова.
164
+ */
165
+ setTimeout(() => {
166
+ onOpen({
167
+ open: changes.isOpen,
168
+ name,
169
+ });
170
+ }, 0);
171
+ }
172
+ },
173
+ stateReducer: (state, actionAndChanges) => {
174
+ const { type, changes } = actionAndChanges;
175
+ const { selectedItem } = changes;
176
+
177
+ switch (type) {
178
+ case useCombobox.stateChangeTypes.InputKeyDownEnter:
179
+ case useCombobox.stateChangeTypes.ItemClick:
180
+ initiatorRef.current = selectedItem;
181
+
182
+ if (selectedItem && !selectedItem.disabled) {
183
+ const alreadySelected = selectedItems.includes(selectedItem);
184
+ const allowRemove =
185
+ allowUnselect || (multiple && selectedItems.length > 1);
186
+
187
+ if (alreadySelected && allowRemove) {
188
+ removeSelectedItem(selectedItem);
189
+ }
190
+
191
+ if (!alreadySelected) {
192
+ if (multiple) {
193
+ addSelectedItem(selectedItem);
194
+ } else {
195
+ setSelectedItems([selectedItem]);
196
+ }
197
+ }
198
+ }
199
+
200
+ return {
201
+ ...changes,
202
+ isOpen: !closeOnSelect,
203
+ // при closeOnSelect === false - сохраняем подсвеченный индекс
204
+ highlightedIndex:
205
+ state.isOpen && !closeOnSelect
206
+ ? state.highlightedIndex
207
+ : changes.highlightedIndex,
208
+ };
209
+ default:
210
+ return changes;
211
+ }
212
+ },
213
+ });
214
+
215
+ const menuProps = (getMenuProps as (options: object, additional: object) => AnyObject)(
216
+ { ref: listRef },
217
+ { suppressRefError: true },
218
+ );
219
+ const inputProps = getInputProps(getDropdownProps({ ref: mergeRefs([ref, fieldRef]) }));
220
+
221
+ const handleFieldFocus = (event: FocusEvent<HTMLDivElement | HTMLInputElement>) => {
222
+ if (onFocus) onFocus(event);
223
+
224
+ if (autocomplete && !open) {
225
+ openMenu();
226
+ }
227
+ };
228
+
229
+ const handleFieldBlur = (event: FocusEvent<HTMLDivElement | HTMLInputElement>) => {
230
+ const isNextFocusInsideList = listRef.current?.contains(
231
+ (event.relatedTarget || document.activeElement) as HTMLElement,
232
+ );
233
+
234
+ if (!isNextFocusInsideList) {
235
+ if (onBlur) onBlur(event);
236
+
237
+ inputProps.onBlur(event);
238
+ }
239
+ };
240
+
241
+ const handleFieldKeyDown = (event: KeyboardEvent<HTMLDivElement | HTMLInputElement>) => {
242
+ inputProps.onKeyDown(event);
243
+ if (autocomplete && !open && (event.key.length === 1 || event.key === 'Backspace')) {
244
+ // Для автокомплита - открываем меню при начале ввода
245
+ openMenu();
246
+ }
247
+
248
+ if (
249
+ [' ', 'Enter'].includes(event.key) &&
250
+ !autocomplete &&
251
+ !nativeSelect &&
252
+ (event.target as HTMLElement).tagName !== 'INPUT' &&
253
+ (event.target as HTMLElement).tagName !== 'BUTTON'
254
+ ) {
255
+ // Открываем\закрываем меню по нажатию enter или пробела
256
+ event.preventDefault();
257
+ if (!open || highlightedIndex === -1) toggleMenu();
258
+ }
259
+ };
260
+
261
+ const handleFieldClick = (event: MouseEvent) => {
262
+ if (!autocomplete || (event.target as HTMLElement).tagName !== 'INPUT') {
263
+ toggleMenu();
264
+ } else {
265
+ openMenu();
266
+ }
267
+ };
268
+
269
+ const handleNativeSelectChange = useCallback(
270
+ (event: React.ChangeEvent<HTMLSelectElement>) => {
271
+ setSelectedItems(
272
+ // eslint-disable-next-line
273
+ [...(event.target.options as any)].reduce(
274
+ (acc, option, index) =>
275
+ option.selected ? acc.concat(flatOptions[index]) : acc,
276
+ [],
277
+ ),
278
+ );
279
+ },
280
+ [flatOptions, setSelectedItems],
281
+ );
282
+
283
+ const getOptionProps = useCallback(
284
+ (option: OptionShape, index: number) => ({
285
+ ...(optionProps as object),
286
+ className: optionClassName,
287
+ innerProps: getItemProps({
288
+ index,
289
+ item: option,
290
+ disabled: option.disabled,
291
+ onMouseDown: (event: MouseEvent) => event.preventDefault(),
292
+ }),
293
+ multiple,
294
+ index,
295
+ option,
296
+ size: optionsSize,
297
+ disabled: option.disabled,
298
+ highlighted: index === highlightedIndex,
299
+ selected: selectedItems.includes(option),
300
+ dataTestId: getDataTestId(dataTestId, 'option'),
301
+ }),
302
+ [
303
+ dataTestId,
304
+ getItemProps,
305
+ highlightedIndex,
306
+ multiple,
307
+ optionClassName,
308
+ optionProps,
309
+ optionsSize,
310
+ selectedItems,
311
+ ],
312
+ );
313
+
314
+ useEffect(() => {
315
+ if (defaultOpen) openMenu();
316
+ }, [defaultOpen, openMenu]);
317
+
318
+ useEffect(() => {
319
+ if (openProp) {
320
+ openMenu();
321
+ }
322
+ // eslint-disable-next-line react-hooks/exhaustive-deps
323
+ }, []);
324
+
325
+ const calcOptionsListWidth = useCallback(() => {
326
+ if (listRef.current) {
327
+ const widthAttr = optionsListWidth === 'field' ? 'width' : 'minWidth';
328
+
329
+ const optionsListMinWidth = rootRef.current
330
+ ? rootRef.current.getBoundingClientRect().width
331
+ : 0;
332
+
333
+ listRef.current.setAttribute('style', '');
334
+ listRef.current.style[widthAttr] = `${optionsListMinWidth}px`;
335
+ }
336
+ }, [optionsListWidth]);
337
+
338
+ useEffect(() => {
339
+ const ResizeObserver = window.ResizeObserver || ResizeObserverPolyfill;
340
+ const observer = new ResizeObserver(calcOptionsListWidth);
341
+
342
+ if (rootRef.current) {
343
+ observer.observe(rootRef.current);
344
+ }
345
+
346
+ return () => {
347
+ observer.disconnect();
348
+ };
349
+ }, [calcOptionsListWidth, open, optionsListWidth]);
350
+
351
+ useLayoutEffect_SAFE_FOR_SSR(calcOptionsListWidth, [
352
+ open,
353
+ optionsListWidth,
354
+ options,
355
+ selectedItems,
356
+ ]);
357
+
358
+ const renderValue = useCallback(
359
+ () =>
360
+ selectedItems.map((option) => (
361
+ <input type='hidden' name={name} value={option.key} key={option.key} />
362
+ )),
363
+ [selectedItems, name],
364
+ );
365
+
366
+ const renderNativeSelect = useCallback(() => {
367
+ const value = multiple
368
+ ? selectedItems.map((option) => option.key)
369
+ : (selectedItems[0] || {}).key;
370
+
371
+ return (
372
+ <NativeSelect
373
+ {...menuProps}
374
+ className={styles.nativeSelect}
375
+ disabled={disabled}
376
+ multiple={multiple}
377
+ name={name}
378
+ value={value}
379
+ onChange={handleNativeSelectChange}
380
+ options={options}
381
+ />
382
+ );
383
+ }, [multiple, selectedItems, disabled, name, handleNativeSelectChange, options, menuProps]);
384
+
385
+ const needRenderOptionsList = flatOptions.length > 0 || showEmptyOptionsList;
386
+
387
+ return (
388
+ <div
389
+ {...getComboboxProps({
390
+ ref: rootRef,
391
+ ...(disabled && { 'aria-disabled': true }),
392
+ className: cn(styles.component, { [styles.block]: block }, className),
393
+ })}
394
+ onKeyDown={disabled ? undefined : handleFieldKeyDown}
395
+ tabIndex={-1}
396
+ data-test-id={getDataTestId(dataTestId)}
397
+ >
398
+ {nativeSelect && renderNativeSelect()}
399
+
400
+ <Field
401
+ selectedMultiple={selectedItems}
402
+ selected={selectedItems[0]}
403
+ setSelectedItems={setSelectedItems}
404
+ toggleMenu={toggleMenu}
405
+ multiple={multiple}
406
+ open={open}
407
+ disabled={disabled}
408
+ size={size}
409
+ placeholder={placeholder}
410
+ label={label && <span {...getLabelProps()}>{label}</span>}
411
+ labelView={labelView}
412
+ Arrow={Arrow && <Arrow open={open} />}
413
+ error={error}
414
+ hint={hint}
415
+ valueRenderer={valueRenderer}
416
+ className={fieldClassName}
417
+ innerProps={{
418
+ onBlur: handleFieldBlur,
419
+ onFocus: disabled ? undefined : handleFieldFocus,
420
+ onClick: disabled ? undefined : handleFieldClick,
421
+ tabIndex: disabled ? undefined : nativeSelect ? -1 : 0,
422
+ ref: mergeRefs([inputProps.ref]),
423
+ id: inputProps.id,
424
+ 'aria-labelledby': inputProps['aria-labelledby'],
425
+ 'aria-controls': inputProps['aria-controls'],
426
+ 'aria-autocomplete': autocomplete
427
+ ? inputProps['aria-autocomplete']
428
+ : undefined,
429
+ }}
430
+ dataTestId={getDataTestId(dataTestId, 'field')}
431
+ {...(fieldProps as AnyObject)}
432
+ />
433
+
434
+ {name && !nativeSelect && renderValue()}
435
+
436
+ {!nativeSelect && (
437
+ <Popover
438
+ open={open}
439
+ withTransition={false}
440
+ anchorElement={fieldRef.current as HTMLElement}
441
+ position={popoverPosition}
442
+ preventFlip={preventFlip}
443
+ popperClassName={cn(styles.popoverInner, popperClassName)}
444
+ update={updatePopover}
445
+ zIndex={zIndexPopover}
446
+ >
447
+ {needRenderOptionsList && (
448
+ <div
449
+ {...menuProps}
450
+ className={cn(optionsListClassName, styles.optionsList)}
451
+ >
452
+ <OptionsList
453
+ {...(optionsListProps as AnyObject)}
454
+ optionsListWidth={optionsListWidth}
455
+ flatOptions={flatOptions}
456
+ highlightedIndex={highlightedIndex}
457
+ open={open}
458
+ size={size}
459
+ options={options}
460
+ Optgroup={Optgroup}
461
+ Option={Option}
462
+ selectedItems={selectedItems}
463
+ setSelectedItems={setSelectedItems}
464
+ toggleMenu={toggleMenu}
465
+ getOptionProps={getOptionProps}
466
+ visibleOptions={visibleOptions}
467
+ onScroll={onScroll}
468
+ dataTestId={getDataTestId(dataTestId, 'options-list')}
469
+ />
470
+ <div className={styles.optionsListBorder} />
471
+ </div>
472
+ )}
473
+ </Popover>
474
+ )}
475
+ </div>
476
+ );
477
+ },
478
+ );
@@ -0,0 +1,68 @@
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
+ .popoverInner {
11
+ padding-top: var(--select-options-list-offset);
12
+ padding-bottom: var(--select-options-list-offset);
13
+ box-shadow: none;
14
+ border: none;
15
+ background: transparent;
16
+ border-radius: 0;
17
+ position: relative;
18
+ }
19
+
20
+ .optionsList {
21
+ position: relative;
22
+ padding-top: var(--select-options-list-top-padding);
23
+ padding-bottom: var(--select-options-list-bottom-padding);
24
+ box-shadow: var(--select-options-list-box-shadow);
25
+ border-radius: var(--select-options-list-border-radius);
26
+ background: var(--select-option-background);
27
+ overflow: hidden;
28
+ will-change: transform;
29
+ }
30
+
31
+ .optionsListBorder {
32
+ position: absolute;
33
+ top: 0;
34
+ right: 0;
35
+ bottom: 0;
36
+ left: 0;
37
+ box-shadow: inset 0 0 0 1px var(--color-light-border-secondary);
38
+ border-radius: inherit;
39
+ pointer-events: none;
40
+ }
41
+
42
+ .nativeSelect {
43
+ opacity: 0;
44
+ overflow: hidden;
45
+ position: absolute;
46
+ top: 0;
47
+ bottom: 0;
48
+ left: 0;
49
+ width: 100%;
50
+ max-width: 100%;
51
+ min-width: 0;
52
+ height: 100%;
53
+ cursor: pointer;
54
+ z-index: 1;
55
+ }
56
+
57
+ .block {
58
+ width: 100%;
59
+ }
60
+
61
+ /* width: max-content; fix for IE */
62
+
63
+ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
64
+ .component {
65
+ float: left;
66
+ clear: left;
67
+ }
68
+ }
@@ -0,0 +1 @@
1
+ export * from './Component';