@alfalab/core-components-select 19.1.10-alfasans → 19.2.0-alfasans

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 (251) hide show
  1. package/components/arrow/index.css +4 -4
  2. package/components/arrow/index.module.css.js +1 -1
  3. package/components/base-checkmark/index.css +9 -9
  4. package/components/base-checkmark/index.module.css.js +1 -1
  5. package/components/base-option/index.css +14 -14
  6. package/components/base-option/index.module.css.js +1 -1
  7. package/components/base-select/Component.js +36 -49
  8. package/components/base-select/Component.js.map +1 -1
  9. package/components/base-select/index.css +70 -20
  10. package/components/base-select/index.module.css.js +1 -1
  11. package/components/base-select/index.module.css.js.map +1 -1
  12. package/components/base-select/mobile.css +12 -11
  13. package/components/base-select/mobile.module.css.js +1 -1
  14. package/components/base-select/mobile.module.css.js.map +1 -1
  15. package/components/checkmark/index.css +11 -11
  16. package/components/checkmark/index.module.css.js +1 -1
  17. package/components/checkmark-mobile/index.css +6 -6
  18. package/components/checkmark-mobile/index.module.css.js +1 -1
  19. package/components/clear-button/index.css +4 -4
  20. package/components/clear-button/index.module.css.js +1 -1
  21. package/components/field/index.css +13 -13
  22. package/components/field/index.module.css.js +1 -1
  23. package/components/footer/index.css +4 -4
  24. package/components/footer/index.module.css.js +1 -1
  25. package/components/optgroup/index.css +4 -4
  26. package/components/optgroup/index.module.css.js +1 -1
  27. package/components/option/desktop/index.css +23 -19
  28. package/components/option/desktop/index.module.css.js +1 -1
  29. package/components/option/desktop/index.module.css.js.map +1 -1
  30. package/components/option/mobile/index.css +20 -16
  31. package/components/option/mobile/index.module.css.js +1 -1
  32. package/components/option/mobile/index.module.css.js.map +1 -1
  33. package/components/options-list/Component.d.ts +4 -0
  34. package/components/options-list/Component.js +32 -53
  35. package/components/options-list/Component.js.map +1 -1
  36. package/components/options-list/index.css +13 -33
  37. package/components/options-list/index.module.css.js +1 -1
  38. package/components/options-list/index.module.css.js.map +1 -1
  39. package/components/search/index.css +1 -1
  40. package/components/search/index.module.css.js +1 -1
  41. package/components/virtual-options-list/Component.d.ts +4 -0
  42. package/components/virtual-options-list/Component.js +61 -48
  43. package/components/virtual-options-list/Component.js.map +1 -1
  44. package/cssm/components/base-select/Component.js +36 -49
  45. package/cssm/components/base-select/Component.js.map +1 -1
  46. package/cssm/components/base-select/index.module.css +61 -11
  47. package/cssm/components/base-select/mobile.module.css +1 -0
  48. package/cssm/components/option/desktop/index.module.css +4 -0
  49. package/cssm/components/option/mobile/index.module.css +4 -0
  50. package/cssm/components/options-list/Component.d.ts +4 -0
  51. package/cssm/components/options-list/Component.js +32 -53
  52. package/cssm/components/options-list/Component.js.map +1 -1
  53. package/cssm/components/options-list/index.module.css +6 -26
  54. package/cssm/components/virtual-options-list/Component.d.ts +4 -0
  55. package/cssm/components/virtual-options-list/Component.js +61 -48
  56. package/cssm/components/virtual-options-list/Component.js.map +1 -1
  57. package/cssm/presets/useSelectWithApply/hook.d.ts +12 -0
  58. package/cssm/presets/useSelectWithApply/options-list-with-apply/Component.d.ts +4 -0
  59. package/cssm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css +0 -5
  60. package/cssm/presets/useSelectWithApply/options-list-with-apply/header/index.module.css +9 -6
  61. package/cssm/shared/index.js +0 -1
  62. package/cssm/shared/index.js.map +1 -1
  63. package/cssm/typings.d.ts +21 -1
  64. package/cssm/utils.d.ts +1 -6
  65. package/cssm/utils.js +19 -28
  66. package/cssm/utils.js.map +1 -1
  67. package/esm/components/arrow/index.css +4 -4
  68. package/esm/components/arrow/index.module.css.js +1 -1
  69. package/esm/components/base-checkmark/index.css +9 -9
  70. package/esm/components/base-checkmark/index.module.css.js +1 -1
  71. package/esm/components/base-option/index.css +14 -14
  72. package/esm/components/base-option/index.module.css.js +1 -1
  73. package/esm/components/base-select/Component.js +37 -50
  74. package/esm/components/base-select/Component.js.map +1 -1
  75. package/esm/components/base-select/index.css +70 -20
  76. package/esm/components/base-select/index.module.css.js +1 -1
  77. package/esm/components/base-select/index.module.css.js.map +1 -1
  78. package/esm/components/base-select/mobile.css +12 -11
  79. package/esm/components/base-select/mobile.module.css.js +1 -1
  80. package/esm/components/base-select/mobile.module.css.js.map +1 -1
  81. package/esm/components/checkmark/index.css +11 -11
  82. package/esm/components/checkmark/index.module.css.js +1 -1
  83. package/esm/components/checkmark-mobile/index.css +6 -6
  84. package/esm/components/checkmark-mobile/index.module.css.js +1 -1
  85. package/esm/components/clear-button/index.css +4 -4
  86. package/esm/components/clear-button/index.module.css.js +1 -1
  87. package/esm/components/field/index.css +13 -13
  88. package/esm/components/field/index.module.css.js +1 -1
  89. package/esm/components/footer/index.css +4 -4
  90. package/esm/components/footer/index.module.css.js +1 -1
  91. package/esm/components/optgroup/index.css +4 -4
  92. package/esm/components/optgroup/index.module.css.js +1 -1
  93. package/esm/components/option/desktop/index.css +23 -19
  94. package/esm/components/option/desktop/index.module.css.js +1 -1
  95. package/esm/components/option/desktop/index.module.css.js.map +1 -1
  96. package/esm/components/option/mobile/index.css +20 -16
  97. package/esm/components/option/mobile/index.module.css.js +1 -1
  98. package/esm/components/option/mobile/index.module.css.js.map +1 -1
  99. package/esm/components/options-list/Component.d.ts +4 -0
  100. package/esm/components/options-list/Component.js +33 -54
  101. package/esm/components/options-list/Component.js.map +1 -1
  102. package/esm/components/options-list/index.css +13 -33
  103. package/esm/components/options-list/index.module.css.js +1 -1
  104. package/esm/components/options-list/index.module.css.js.map +1 -1
  105. package/esm/components/search/index.css +1 -1
  106. package/esm/components/search/index.module.css.js +1 -1
  107. package/esm/components/virtual-options-list/Component.d.ts +4 -0
  108. package/esm/components/virtual-options-list/Component.js +63 -49
  109. package/esm/components/virtual-options-list/Component.js.map +1 -1
  110. package/esm/mobile/modal.mobile.css +1 -1
  111. package/esm/mobile/modal.mobile.module.css.js +1 -1
  112. package/esm/presets/useSelectWithApply/hook.d.ts +12 -0
  113. package/esm/presets/useSelectWithApply/options-list-with-apply/Component.d.ts +4 -0
  114. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.css +2 -7
  115. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js +1 -1
  116. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js.map +1 -1
  117. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.css +12 -9
  118. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js +1 -1
  119. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js.map +1 -1
  120. package/esm/presets/useSelectWithLoading/index.css +1 -1
  121. package/esm/presets/useSelectWithLoading/index.module.css.js +1 -1
  122. package/esm/shared/index.js +1 -1
  123. package/esm/typings.d.ts +21 -1
  124. package/esm/utils.d.ts +1 -6
  125. package/esm/utils.js +21 -29
  126. package/esm/utils.js.map +1 -1
  127. package/mobile/modal.mobile.css +1 -1
  128. package/mobile/modal.mobile.module.css.js +1 -1
  129. package/modern/components/arrow/index.css +4 -4
  130. package/modern/components/arrow/index.module.css.js +1 -1
  131. package/modern/components/base-checkmark/index.css +9 -9
  132. package/modern/components/base-checkmark/index.module.css.js +1 -1
  133. package/modern/components/base-option/index.css +14 -14
  134. package/modern/components/base-option/index.module.css.js +1 -1
  135. package/modern/components/base-select/Component.js +34 -47
  136. package/modern/components/base-select/Component.js.map +1 -1
  137. package/modern/components/base-select/index.css +70 -20
  138. package/modern/components/base-select/index.module.css.js +1 -1
  139. package/modern/components/base-select/index.module.css.js.map +1 -1
  140. package/modern/components/base-select/mobile.css +12 -11
  141. package/modern/components/base-select/mobile.module.css.js +1 -1
  142. package/modern/components/base-select/mobile.module.css.js.map +1 -1
  143. package/modern/components/checkmark/index.css +11 -11
  144. package/modern/components/checkmark/index.module.css.js +1 -1
  145. package/modern/components/checkmark-mobile/index.css +6 -6
  146. package/modern/components/checkmark-mobile/index.module.css.js +1 -1
  147. package/modern/components/clear-button/index.css +4 -4
  148. package/modern/components/clear-button/index.module.css.js +1 -1
  149. package/modern/components/field/index.css +13 -13
  150. package/modern/components/field/index.module.css.js +1 -1
  151. package/modern/components/footer/index.css +4 -4
  152. package/modern/components/footer/index.module.css.js +1 -1
  153. package/modern/components/optgroup/index.css +4 -4
  154. package/modern/components/optgroup/index.module.css.js +1 -1
  155. package/modern/components/option/desktop/index.css +23 -19
  156. package/modern/components/option/desktop/index.module.css.js +1 -1
  157. package/modern/components/option/desktop/index.module.css.js.map +1 -1
  158. package/modern/components/option/mobile/index.css +20 -16
  159. package/modern/components/option/mobile/index.module.css.js +1 -1
  160. package/modern/components/option/mobile/index.module.css.js.map +1 -1
  161. package/modern/components/options-list/Component.d.ts +4 -0
  162. package/modern/components/options-list/Component.js +29 -49
  163. package/modern/components/options-list/Component.js.map +1 -1
  164. package/modern/components/options-list/index.css +13 -33
  165. package/modern/components/options-list/index.module.css.js +1 -1
  166. package/modern/components/options-list/index.module.css.js.map +1 -1
  167. package/modern/components/search/index.css +1 -1
  168. package/modern/components/search/index.module.css.js +1 -1
  169. package/modern/components/virtual-options-list/Component.d.ts +4 -0
  170. package/modern/components/virtual-options-list/Component.js +59 -45
  171. package/modern/components/virtual-options-list/Component.js.map +1 -1
  172. package/modern/mobile/modal.mobile.css +1 -1
  173. package/modern/mobile/modal.mobile.module.css.js +1 -1
  174. package/modern/presets/useSelectWithApply/hook.d.ts +12 -0
  175. package/modern/presets/useSelectWithApply/options-list-with-apply/Component.d.ts +4 -0
  176. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.css +2 -7
  177. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js +1 -1
  178. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js.map +1 -1
  179. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.css +12 -9
  180. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js +1 -1
  181. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js.map +1 -1
  182. package/modern/presets/useSelectWithLoading/index.css +1 -1
  183. package/modern/presets/useSelectWithLoading/index.module.css.js +1 -1
  184. package/modern/shared/index.js +1 -1
  185. package/modern/typings.d.ts +21 -1
  186. package/modern/utils.d.ts +1 -6
  187. package/modern/utils.js +21 -29
  188. package/modern/utils.js.map +1 -1
  189. package/moderncssm/components/base-select/Component.js +34 -47
  190. package/moderncssm/components/base-select/Component.js.map +1 -1
  191. package/moderncssm/components/base-select/index.module.css +67 -9
  192. package/moderncssm/components/base-select/mobile.module.css +1 -0
  193. package/moderncssm/components/option/desktop/index.module.css +3 -0
  194. package/moderncssm/components/option/mobile/index.module.css +3 -0
  195. package/moderncssm/components/options-list/Component.d.ts +4 -0
  196. package/moderncssm/components/options-list/Component.js +29 -49
  197. package/moderncssm/components/options-list/Component.js.map +1 -1
  198. package/moderncssm/components/options-list/index.module.css +7 -32
  199. package/moderncssm/components/virtual-options-list/Component.d.ts +4 -0
  200. package/moderncssm/components/virtual-options-list/Component.js +59 -45
  201. package/moderncssm/components/virtual-options-list/Component.js.map +1 -1
  202. package/moderncssm/presets/useSelectWithApply/hook.d.ts +12 -0
  203. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/Component.d.ts +4 -0
  204. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css +0 -4
  205. package/moderncssm/presets/useSelectWithApply/options-list-with-apply/header/index.module.css +8 -6
  206. package/moderncssm/shared/index.js +1 -1
  207. package/moderncssm/typings.d.ts +21 -1
  208. package/moderncssm/utils.d.ts +1 -6
  209. package/moderncssm/utils.js +21 -29
  210. package/moderncssm/utils.js.map +1 -1
  211. package/package.json +13 -14
  212. package/presets/useSelectWithApply/hook.d.ts +12 -0
  213. package/presets/useSelectWithApply/options-list-with-apply/Component.d.ts +4 -0
  214. package/presets/useSelectWithApply/options-list-with-apply/footer/index.css +2 -7
  215. package/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js +1 -1
  216. package/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js.map +1 -1
  217. package/presets/useSelectWithApply/options-list-with-apply/header/index.css +12 -9
  218. package/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js +1 -1
  219. package/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js.map +1 -1
  220. package/presets/useSelectWithLoading/index.css +1 -1
  221. package/presets/useSelectWithLoading/index.module.css.js +1 -1
  222. package/shared/index.js +0 -1
  223. package/shared/index.js.map +1 -1
  224. package/src/components/base-select/Component.tsx +41 -55
  225. package/src/components/base-select/index.module.css +60 -8
  226. package/src/components/base-select/mobile.module.css +1 -0
  227. package/src/components/option/index.module.css +4 -0
  228. package/src/components/options-list/Component.tsx +54 -97
  229. package/src/components/options-list/index.module.css +7 -31
  230. package/src/components/virtual-options-list/Component.tsx +95 -72
  231. package/src/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css +0 -4
  232. package/src/presets/useSelectWithApply/options-list-with-apply/header/index.module.css +4 -4
  233. package/src/typings.ts +26 -0
  234. package/src/utils.ts +30 -34
  235. package/src/vars.css +3 -0
  236. package/typings.d.ts +21 -1
  237. package/utils.d.ts +1 -6
  238. package/utils.js +19 -28
  239. package/utils.js.map +1 -1
  240. package/components/virtual-options-list/index.css +0 -83
  241. package/components/virtual-options-list/index.module.css.js +0 -8
  242. package/components/virtual-options-list/index.module.css.js.map +0 -1
  243. package/cssm/components/virtual-options-list/index.module.css +0 -83
  244. package/esm/components/virtual-options-list/index.css +0 -83
  245. package/esm/components/virtual-options-list/index.module.css.js +0 -6
  246. package/esm/components/virtual-options-list/index.module.css.js.map +0 -1
  247. package/modern/components/virtual-options-list/index.css +0 -83
  248. package/modern/components/virtual-options-list/index.module.css.js +0 -6
  249. package/modern/components/virtual-options-list/index.module.css.js.map +0 -1
  250. package/moderncssm/components/virtual-options-list/index.module.css +0 -81
  251. package/src/components/virtual-options-list/index.module.css +0 -77
@@ -9,7 +9,7 @@
9
9
  --select-arrow-color: var(--color-light-neutral-translucent-700);
10
10
  --select-arrow-disabled-color: var(--color-light-neutral-translucent-500);
11
11
  }
12
- .select__arrow_ko7rv {
12
+ .select__arrow_1fw45 {
13
13
  display: block;
14
14
  width: 24px;
15
15
  height: 24px;
@@ -19,15 +19,15 @@
19
19
  transform 0.15s ease-in-out,
20
20
  opacity 0.2s ease;
21
21
  }
22
- .select__arrow_ko7rv.select__disabled_ko7rv {
22
+ .select__arrow_1fw45.select__disabled_1fw45 {
23
23
  color: var(--select-arrow-disabled-color);
24
24
  }
25
- .select__arrow_ko7rv.select__size-40_ko7rv {
25
+ .select__arrow_1fw45.select__size-40_1fw45 {
26
26
  width: auto;
27
27
  width: initial;
28
28
  height: auto;
29
29
  height: initial;
30
30
  }
31
- .select__open_ko7rv {
31
+ .select__open_1fw45 {
32
32
  transform: var(--arrow-transform);
33
33
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"arrow":"select__arrow_ko7rv","disabled":"select__disabled_ko7rv","size-40":"select__size-40_ko7rv","open":"select__open_ko7rv"};
5
+ var styles = {"arrow":"select__arrow_1fw45","disabled":"select__disabled_1fw45","size-40":"select__size-40_1fw45","open":"select__open_1fw45"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -2,32 +2,32 @@
2
2
  --gap-s: 12px;
3
3
  --gap-12: var(--gap-s);
4
4
  }
5
- .select__checkmark_1752z {
5
+ .select__checkmark_hcgid {
6
6
  flex-shrink: 0;
7
7
  box-sizing: border-box;
8
8
  }
9
- .select__checkmark_1752z.select__before_1752z {
9
+ .select__checkmark_hcgid.select__before_hcgid {
10
10
  margin-right: var(--gap-12);
11
11
  }
12
- .select__checkmark_1752z.select__after_1752z {
12
+ .select__checkmark_hcgid.select__after_hcgid {
13
13
  margin-left: var(--gap-12);
14
14
  }
15
- .select__checkmark_1752z.select__start_1752z {
15
+ .select__checkmark_hcgid.select__start_hcgid {
16
16
  align-self: start;
17
17
  }
18
- .select__checkmark_1752z.select__center_1752z {
18
+ .select__checkmark_hcgid.select__center_hcgid {
19
19
  align-self: center;
20
20
  }
21
- .select__singleIcon_1752z {
21
+ .select__singleIcon_hcgid {
22
22
  flex-shrink: 0;
23
23
  opacity: 0;
24
24
  }
25
- .select__singleIcon_1752z.select__before_1752z {
25
+ .select__singleIcon_hcgid.select__before_hcgid {
26
26
  margin-right: var(--gap-12);
27
27
  }
28
- .select__singleIcon_1752z.select__after_1752z {
28
+ .select__singleIcon_hcgid.select__after_hcgid {
29
29
  margin-left: var(--gap-12);
30
30
  }
31
- .select__singleIcon_1752z.select__selected_1752z {
31
+ .select__singleIcon_hcgid.select__selected_hcgid {
32
32
  opacity: 1;
33
33
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"checkmark":"select__checkmark_1752z","before":"select__before_1752z","after":"select__after_1752z","start":"select__start_1752z","center":"select__center_1752z","singleIcon":"select__singleIcon_1752z","selected":"select__selected_1752z"};
5
+ var styles = {"checkmark":"select__checkmark_hcgid","before":"select__before_hcgid","after":"select__after_hcgid","start":"select__start_hcgid","center":"select__center_hcgid","singleIcon":"select__singleIcon_hcgid","selected":"select__selected_hcgid"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -35,7 +35,7 @@
35
35
  --select-option-active-color: var(--color-light-text-primary);
36
36
  --select-option-disabled-color: var(--color-light-text-secondary);
37
37
  }
38
- .select__option_1idhf {
38
+ .select__option_16gyz {
39
39
  font-size: 16px;
40
40
  line-height: 20px;
41
41
  font-weight: 400;
@@ -52,49 +52,49 @@
52
52
  cursor: pointer;
53
53
  min-height: var(--size-s-height);
54
54
  }
55
- .select__option_1idhf:not(.select__disabled_1idhf):active {
55
+ .select__option_16gyz:not(.select__disabled_16gyz):active {
56
56
  background: var(--select-option-active-background);
57
57
  color: var(--select-option-active-color);
58
58
  }
59
- .select__option_1idhf.select__checkmarkBefore_1idhf {
59
+ .select__option_16gyz.select__checkmarkBefore_16gyz {
60
60
  padding: var(--gap-0) var(--gap-0) var(--gap-0) var(--gap-12);
61
61
  }
62
- .select__option_1idhf.select__checkmarkBefore_1idhf.select__mobile_1idhf {
62
+ .select__option_16gyz.select__checkmarkBefore_16gyz.select__mobile_16gyz {
63
63
  padding-left: var(--gap-16);
64
64
  }
65
- .select__option_1idhf.select__checkmarkAfter_1idhf.select__checkmarkAfter_1idhf {
65
+ .select__option_16gyz.select__checkmarkAfter_16gyz.select__checkmarkAfter_16gyz {
66
66
  padding: var(--gap-0) var(--gap-12) var(--gap-0) var(--gap-0);
67
67
  }
68
- .select__option_1idhf.select__checkmarkAfter_1idhf.select__checkmarkAfter_1idhf.select__size-72_1idhf {
68
+ .select__option_16gyz.select__checkmarkAfter_16gyz.select__checkmarkAfter_16gyz.select__size-72_16gyz {
69
69
  padding-right: var(--gap-16);
70
70
  }
71
- .select__option_1idhf.select__checkmarkAfter_1idhf.select__checkmarkAfter_1idhf.select__mobile_1idhf {
71
+ .select__option_16gyz.select__checkmarkAfter_16gyz.select__checkmarkAfter_16gyz.select__mobile_16gyz {
72
72
  padding-right: var(--gap-20);
73
73
  }
74
- .select__option_1idhf.select__textContent_1idhf {
74
+ .select__option_16gyz.select__textContent_16gyz {
75
75
  padding: var(--gap-12);
76
76
  }
77
- .select__option_1idhf.select__textContent_1idhf.select__size-72_1idhf {
77
+ .select__option_16gyz.select__textContent_16gyz.select__size-72_16gyz {
78
78
  padding-left: var(--gap-16);
79
79
  padding-right: var(--gap-16);
80
80
  }
81
- .select__option_1idhf.select__textContent_1idhf.select__mobile_1idhf {
81
+ .select__option_16gyz.select__textContent_16gyz.select__mobile_16gyz {
82
82
  padding: var(--gap-16) var(--gap-20);
83
83
  }
84
- .select__selected_1idhf {
84
+ .select__selected_16gyz {
85
85
  background: var(--select-option-selected-background);
86
86
  color: var(--select-option-selected-color);
87
87
  cursor: default;
88
88
  }
89
- .select__highlighted_1idhf {
89
+ .select__highlighted_16gyz {
90
90
  background: var(--select-option-hover-background);
91
91
  color: var(--select-option-hover-color);
92
92
  }
93
- .select__disabled_1idhf {
93
+ .select__disabled_16gyz {
94
94
  cursor: var(--disabled-cursor);
95
95
  background: var(--select-option-disabled-background);
96
96
  color: var(--select-option-disabled-color);
97
97
  }
98
- .select__content_1idhf {
98
+ .select__content_16gyz {
99
99
  flex: 1;
100
100
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"option":"select__option_1idhf","disabled":"select__disabled_1idhf","checkmarkBefore":"select__checkmarkBefore_1idhf","mobile":"select__mobile_1idhf","checkmarkAfter":"select__checkmarkAfter_1idhf","size-72":"select__size-72_1idhf","textContent":"select__textContent_1idhf","selected":"select__selected_1idhf","highlighted":"select__highlighted_1idhf","content":"select__content_1idhf"};
5
+ var styles = {"option":"select__option_16gyz","disabled":"select__disabled_16gyz","checkmarkBefore":"select__checkmarkBefore_16gyz","mobile":"select__mobile_16gyz","checkmarkAfter":"select__checkmarkAfter_16gyz","size-72":"select__size-72_16gyz","textContent":"select__textContent_16gyz","selected":"select__selected_16gyz","highlighted":"select__highlighted_16gyz","content":"select__content_16gyz"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -5,12 +5,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var tslib = require('tslib');
6
6
  var React = require('react');
7
7
  var mergeRefs = require('react-merge-refs');
8
- var resizeObserver = require('@juggle/resize-observer');
9
8
  var cn = require('classnames');
10
9
  var computeScrollIntoView = require('compute-scroll-into-view');
11
10
  var downshift = require('downshift');
12
11
  var coreComponentsShared = require('@alfalab/core-components-shared');
13
- var hooks = require('@alfalab/hooks');
14
12
  var utils = require('../../utils.js');
15
13
  var Component = require('../native-select/Component.js');
16
14
  var index_module = require('./index.module.css.js');
@@ -32,13 +30,13 @@ function (props, ref) {
32
30
  var _b, _c;
33
31
  var dataTestId = props.dataTestId, className = props.className, fieldClassName = props.fieldClassName, optionGroupClassName = props.optionGroupClassName, optionsListClassName = props.optionsListClassName, optionClassName = props.optionClassName, popperClassName = props.popperClassName, options = props.options, _d = props.autocomplete, autocomplete = _d === void 0 ? false : _d, _e = props.multiple, multiple = _e === void 0 ? false : _e, _f = props.allowUnselect, allowUnselect = _f === void 0 ? false : _f, _g = props.disabled, disabled = _g === void 0 ? false : _g, _h = props.closeOnSelect, closeOnSelect = _h === void 0 ? !multiple : _h, _j = props.circularNavigation, circularNavigation = _j === void 0 ? false : _j, _k = props.nativeSelect, nativeSelect = _k === void 0 ? false : _k, _l = props.defaultOpen, defaultOpen = _l === void 0 ? false : _l, openProp = props.open, _m = props.popoverPosition, popoverPosition = _m === void 0 ? 'bottom-start' : _m, _o = props.preventFlip, preventFlip = _o === void 0 ? true : _o, _p = props.optionsListWidth, optionsListWidth = _p === void 0 ? 'content' : _p, name = props.name, id = props.id, selected = props.selected, _q = props.size, size = _q === void 0 ? 48 : _q, _r = props.optionsSize, optionsSize = _r === void 0 ? size : _r, error = props.error, hint = props.hint, block = props.block, label = props.label, labelView = props.labelView, placeholder = props.placeholder, _s = props.fieldProps, fieldProps = _s === void 0 ? {} : _s, _t = props.optionsListProps, optionsListProps = _t === void 0 ? {} : _t, _u = props.optionProps, optionProps = _u === void 0 ? {} : _u, _v = props.groupOptionProps, groupOptionProps = _v === void 0 ? {} : _v, _w = props.searchProps, searchProps = _w === void 0 ? {} : _w, _x = props.showSearch, showSearch = _x === void 0 ? false : _x, valueRenderer = props.valueRenderer, onChange = props.onChange, onOpen = props.onOpen, onFocus = props.onFocus, onBlur = props.onBlur, onScroll = props.onScroll, onClear = props.onClear, clear = props.clear, Arrow = props.Arrow, _y = props.Field, Field = _y === void 0 ? function () { return null; } : _y, _z = props.OptionsList, OptionsList = _z === void 0 ? function () { return null; } : _z, _0 = props.Optgroup, Optgroup = _0 === void 0 ? function () { return null; } : _0, _1 = props.Option, Option = _1 === void 0 ? function () { return null; } : _1, _2 = props.Search, Search = _2 === void 0 ? function () { return null; } : _2, updatePopover = props.updatePopover, zIndexPopover = props.zIndexPopover, _3 = props.showEmptyOptionsList, showEmptyOptionsList = _3 === void 0 ? false : _3, visibleOptions = props.visibleOptions, view = props.view, _4 = props.isBottomSheet, isBottomSheet = _4 === void 0 ? true : _4, footer = props.footer, swipeable = props.swipeable, modalProps = props.modalProps, popoverProps = props.popoverProps, modalFooterProps = props.modalFooterProps, modalHeaderProps = props.modalHeaderProps, bottomSheetProps = props.bottomSheetProps, Popover = props.Popover, ModalMobile = props.ModalMobile, BottomSheet = props.BottomSheet, limitDynamicOptionGroupSize = props.limitDynamicOptionGroupSize, _5 = props.environment, environment = _5 === void 0 ? coreComponentsShared.isClient() ? window : undefined : _5;
34
32
  var shouldSearchBlurRef = React.useRef(true);
35
- var rootRef = React.useRef(null);
36
33
  var fieldRef = React.useRef(null);
37
34
  var listRef = React.useRef(null);
38
35
  var initiatorRef = React.useRef(null);
39
36
  var searchRef = React.useRef(null);
40
37
  var scrollableContainerRef = React.useRef(null);
41
38
  var onOpenRef = React.useRef(onOpen);
39
+ var optionsListCtrlRef = React.useRef(null);
42
40
  var _6 = React__default.default.useState(''), searchState = _6[0], setSearchState = _6[1];
43
41
  var _7 = typeof (searchProps === null || searchProps === void 0 ? void 0 : searchProps.value) === 'string'
44
42
  ? [searchProps.value, searchProps.onChange]
@@ -60,17 +58,26 @@ function (props, ref) {
60
58
  var scrollIntoView = function (node) {
61
59
  if (!node || view === 'mobile')
62
60
  return;
63
- requestAnimationFrame(function () {
64
- var actions = computeScrollIntoView.compute(node, {
65
- boundary: listRef.current,
66
- block: 'nearest',
67
- scrollMode: 'if-needed',
68
- });
69
- actions.forEach(function (action) {
70
- var el = action.el, top = action.top;
71
- el.scrollTop = top;
61
+ var optionsListCtrl = optionsListCtrlRef.current;
62
+ if (optionsListCtrl) {
63
+ var dataIndex = node.getAttribute('data-index');
64
+ if (dataIndex) {
65
+ optionsListCtrl.scrollToIndex(Number(dataIndex));
66
+ }
67
+ }
68
+ else {
69
+ requestAnimationFrame(function () {
70
+ var actions = computeScrollIntoView.compute(node, {
71
+ boundary: listRef.current,
72
+ block: 'nearest',
73
+ scrollMode: 'if-needed',
74
+ });
75
+ actions.forEach(function (action) {
76
+ var el = action.el, top = action.top;
77
+ el.scrollTop = top;
78
+ });
72
79
  });
73
- });
80
+ }
74
81
  };
75
82
  var useMultipleSelectionProps = {
76
83
  itemToString: itemToString,
@@ -279,6 +286,7 @@ function (props, ref) {
279
286
  var getOptionProps = function (option, index) {
280
287
  var _a;
281
288
  return (tslib.__assign(tslib.__assign({}, optionProps), { mobile: view === 'mobile', className: cn__default.default(optionClassName, (_a = {},
289
+ _a[index_module.option] = view === 'desktop',
282
290
  _a[mobile_module.option] = view === 'mobile',
283
291
  _a)), innerProps: getItemProps({
284
292
  index: index,
@@ -293,6 +301,7 @@ function (props, ref) {
293
301
  shouldSearchBlurRef.current = true;
294
302
  (_b = fieldRef.current) === null || _b === void 0 ? void 0 : _b.focus();
295
303
  },
304
+ 'data-index': index,
296
305
  }), multiple: multiple, index: index, option: option, size: optionsSize, disabled: option.disabled, highlighted: index === highlightedIndex, selected: selectedItems.some(function (_a) {
297
306
  var key = _a.key;
298
307
  return key === option.key;
@@ -308,35 +317,6 @@ function (props, ref) {
308
317
  }
309
318
  // eslint-disable-next-line react-hooks/exhaustive-deps
310
319
  }, []);
311
- var calcOptionsListWidth = React.useCallback(function () {
312
- if (view === 'desktop' && listRef.current) {
313
- var widthAttr = optionsListWidth === 'field' ? 'width' : 'minWidth';
314
- var optionsListMinWidth = rootRef.current
315
- ? rootRef.current.getBoundingClientRect().width
316
- : 0;
317
- listRef.current.removeAttribute('style');
318
- listRef.current.style[widthAttr] = "".concat(optionsListMinWidth, "px");
319
- }
320
- }, [view, optionsListWidth]);
321
- React.useEffect(function () {
322
- if (view === 'desktop') {
323
- var ResizeObserver_1 = window.ResizeObserver || resizeObserver.ResizeObserver;
324
- var observer_1 = new ResizeObserver_1(calcOptionsListWidth);
325
- if (rootRef.current) {
326
- observer_1.observe(rootRef.current);
327
- }
328
- return function () {
329
- observer_1.disconnect();
330
- };
331
- }
332
- return coreComponentsShared.fnUtils.noop;
333
- }, [view, calcOptionsListWidth, open, optionsListWidth]);
334
- hooks.useLayoutEffect_SAFE_FOR_SSR(calcOptionsListWidth, [
335
- open,
336
- optionsListWidth,
337
- filteredOptions,
338
- selectedItems,
339
- ]);
340
320
  var renderValue = function () {
341
321
  return selectedItems.map(function (option) { return (React__default.default.createElement("input", { type: 'hidden', name: name, value: option.key, key: option.key })); });
342
322
  };
@@ -397,19 +377,26 @@ function (props, ref) {
397
377
  return undefined;
398
378
  };
399
379
  var renderOptionsList = function () {
400
- var _a, _b, _c;
380
+ var _a, _b, _c, _d, _e, _f, _g;
401
381
  if (flatOptions.length === 0 && !showEmptyOptionsList && !showSearch)
402
382
  return null;
403
383
  var listProps = optionsListProps;
404
- return (React__default.default.createElement("div", tslib.__assign({}, menuProps, { ref: view === 'desktop' ? menuRef : undefined, className: cn__default.default(optionsListClassName, view === 'mobile' && mobile_module.optionsListWrapper, view === 'desktop' && index_module.optionsListWrapper) }),
405
- React__default.default.createElement(OptionsList, tslib.__assign({}, listProps, { ref: view === 'desktop' ? listProps.ref : scrollableContainerRef, setHighlightedIndex: view === 'desktop' ? setHighlightedIndex : undefined, className: cn__default.default((_a = {}, _a[mobile_module.optionsList] = view === 'mobile', _a), listProps.className), scrollbarClassName: cn__default.default((_b = {}, _b[mobile_module.scrollbar] = view === 'mobile', _b), listProps.scrollbarClassName), optionsListWidth: optionsListWidth, flatOptions: flatOptions, highlightedIndex: highlightedIndex, open: open, size: size, options: filteredOptions, Optgroup: Optgroup, Option: Option, selectedItems: selectedItems, setSelectedItems: setSelectedItems, toggleMenu: toggleMenu, groupOptionProps: groupOptionProps, getOptionProps: getOptionProps, visibleOptions: view === 'desktop' ? visibleOptions : 0, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'options-list'), header: renderOptionsListHeader(), optionGroupClassName: cn__default.default(optionGroupClassName, (_c = {},
406
- _c[mobile_module.optionGroup] = view === 'mobile',
407
- _c)), emptyPlaceholder: renderEmptyPlaceholder(), onScroll: onScroll, search: search, multiple: multiple, limitDynamicOptionGroupSize: limitDynamicOptionGroupSize, client: view })),
384
+ return (React__default.default.createElement("div", tslib.__assign({}, menuProps, { ref: view === 'desktop' ? menuRef : undefined, className: cn__default.default(optionsListClassName, view === 'mobile' && mobile_module.optionsListWrapper, view === 'desktop' && index_module.optionsListWrapper, (_a = {},
385
+ _a[index_module.matchContent] = view === 'desktop' && optionsListWidth === 'content',
386
+ _a)) }),
387
+ React__default.default.createElement(OptionsList, tslib.__assign({}, listProps, { ctrlRef: optionsListCtrlRef, ref: view === 'desktop' ? listProps.ref : scrollableContainerRef, setHighlightedIndex: view === 'desktop' ? setHighlightedIndex : undefined, className: cn__default.default((_b = {},
388
+ _b[mobile_module.optionsList] = view === 'mobile',
389
+ _b), listProps.className), scrollbarClassName: cn__default.default((_c = {},
390
+ _c[index_module.scrollbar] = view === 'desktop',
391
+ _c[mobile_module.scrollbar] = view === 'mobile',
392
+ _c), listProps.scrollbarClassName), scrollableNodeClassName: cn__default.default((_d = {}, _d[index_module.scrollable] = view === 'desktop', _d)), contentNodeClassName: cn__default.default((_e = {}, _e[index_module.content] = view === 'desktop', _e)), listNodeClassName: cn__default.default((_f = {}, _f[index_module.list] = view === 'desktop', _f)), optionsListWidth: optionsListWidth, flatOptions: flatOptions, highlightedIndex: highlightedIndex, open: open, size: size, options: filteredOptions, Optgroup: Optgroup, Option: Option, selectedItems: selectedItems, setSelectedItems: setSelectedItems, toggleMenu: toggleMenu, groupOptionProps: groupOptionProps, getOptionProps: getOptionProps, visibleOptions: view === 'desktop' ? visibleOptions : 0, dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'options-list'), header: renderOptionsListHeader(), optionGroupClassName: cn__default.default(optionGroupClassName, (_g = {},
393
+ _g[mobile_module.optionGroup] = view === 'mobile',
394
+ _g)), emptyPlaceholder: renderEmptyPlaceholder(), onScroll: onScroll, search: search, multiple: multiple, limitDynamicOptionGroupSize: limitDynamicOptionGroupSize, client: view })),
408
395
  view === 'desktop' && React__default.default.createElement("div", { className: index_module.optionsListBorder })));
409
396
  };
410
397
  var renderInPopover = function () {
411
398
  if (!nativeSelect && Popover) {
412
- return (React__default.default.createElement(Popover, tslib.__assign({}, popoverProps, { open: open, withTransition: false, anchorElement: fieldRef.current, position: popoverPosition, preventFlip: preventFlip, popperClassName: cn__default.default(index_module.popoverInner, popperClassName), update: updatePopover, zIndex: zIndexPopover }), renderOptionsList()));
399
+ return (React__default.default.createElement(Popover, tslib.__assign({}, popoverProps, { open: open, withTransition: false, anchorElement: fieldRef.current, position: popoverPosition, preventFlip: preventFlip, popperClassName: cn__default.default(index_module.popoverInner, popperClassName), update: updatePopover, zIndex: zIndexPopover, useAnchorWidth: true, widthProp: optionsListWidth === 'field' ? 'width' : 'minWidth' }), renderOptionsList()));
413
400
  }
414
401
  return null;
415
402
  };
@@ -453,7 +440,7 @@ function (props, ref) {
453
440
  }
454
441
  return null;
455
442
  };
456
- return (React__default.default.createElement("div", tslib.__assign({}, (disabled && { 'aria-disabled': true }), { "aria-expanded": inputProps['aria-expanded'], "aria-haspopup": 'listbox', role: inputProps.role, className: cn__default.default(index_module.component, (_a = {}, _a[index_module.block] = block, _a), className), ref: rootRef, onKeyDown: disabled ? undefined : handleFieldKeyDown, tabIndex: -1, "data-test-id": coreComponentsShared.getDataTestId(dataTestId) }),
443
+ return (React__default.default.createElement("div", tslib.__assign({}, (disabled && { 'aria-disabled': true }), { "aria-expanded": inputProps['aria-expanded'], "aria-haspopup": 'listbox', role: inputProps.role, className: cn__default.default(index_module.component, (_a = {}, _a[index_module.block] = block, _a), className), onKeyDown: disabled ? undefined : handleFieldKeyDown, tabIndex: -1, "data-test-id": coreComponentsShared.getDataTestId(dataTestId) }),
457
444
  nativeSelect && renderNativeSelect(),
458
445
  React__default.default.createElement(Field, tslib.__assign({ selectedMultiple: selectedItems, selected: selectedItems[0], setSelectedItems: setSelectedItems, toggleMenu: toggleMenu, multiple: multiple, open: open, disabled: disabled, size: size, placeholder: placeholder, label: label && React__default.default.createElement("span", tslib.__assign({}, getLabelProps()), label), labelView: labelView, Arrow: Arrow && React__default.default.createElement(Arrow, { open: open, size: size, disabled: disabled }), error: error, hint: hint, valueRenderer: valueRenderer, className: fieldClassName, clear: clear, onClear: handleFieldClear, innerProps: {
459
446
  onBlur: handleFieldBlur,