@alfalab/core-components-select 17.7.2 → 17.8.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 (164) hide show
  1. package/components/arrow/Component.js +1 -1
  2. package/components/arrow/index.css +3 -3
  3. package/components/base-checkmark/Component.js +1 -1
  4. package/components/base-checkmark/index.css +6 -6
  5. package/components/base-option/Component.js +1 -1
  6. package/components/base-option/index.css +15 -15
  7. package/components/base-select/Component.js +8 -8
  8. package/components/base-select/index.css +11 -11
  9. package/components/base-select/mobile.css +12 -12
  10. package/components/checkmark/Component.js +1 -1
  11. package/components/checkmark/index.css +10 -10
  12. package/components/checkmark-mobile/Component.js +1 -1
  13. package/components/checkmark-mobile/index.css +6 -6
  14. package/components/field/Component.js +1 -1
  15. package/components/field/index.css +12 -12
  16. package/components/footer/Component.js +1 -1
  17. package/components/footer/index.css +5 -5
  18. package/components/optgroup/Component.js +1 -1
  19. package/components/optgroup/index.css +6 -6
  20. package/components/option/Component.js +1 -1
  21. package/components/option/index.css +19 -19
  22. package/components/options-list/Component.js +14 -5
  23. package/components/options-list/index.css +10 -10
  24. package/components/search/Component.js +1 -1
  25. package/components/search/index.css +2 -2
  26. package/components/virtual-options-list/Component.js +1 -1
  27. package/components/virtual-options-list/index.css +15 -15
  28. package/cssm/components/base-select/Component.js +6 -6
  29. package/cssm/components/options-list/Component.js +13 -4
  30. package/cssm/{hook-052c1a2e.js → hook-660a1b89.js} +6 -3
  31. package/cssm/mobile/Component.mobile.js +1 -1
  32. package/cssm/presets/index.d.ts +1 -1
  33. package/cssm/presets/index.js +1 -1
  34. package/cssm/presets/useSelectWithApply/hook.js +1 -1
  35. package/cssm/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  36. package/cssm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  37. package/cssm/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  38. package/cssm/shared/index.js +1 -1
  39. package/cssm/typings.d.ts +9 -1
  40. package/cssm/utils.d.ts +14 -2
  41. package/cssm/utils.js +26 -4
  42. package/esm/components/arrow/Component.js +1 -1
  43. package/esm/components/arrow/index.css +3 -3
  44. package/esm/components/base-checkmark/Component.js +1 -1
  45. package/esm/components/base-checkmark/index.css +6 -6
  46. package/esm/components/base-option/Component.js +1 -1
  47. package/esm/components/base-option/index.css +15 -15
  48. package/esm/components/base-select/Component.js +8 -8
  49. package/esm/components/base-select/index.css +11 -11
  50. package/esm/components/base-select/mobile.css +12 -12
  51. package/esm/components/checkmark/Component.js +1 -1
  52. package/esm/components/checkmark/index.css +10 -10
  53. package/esm/components/checkmark-mobile/Component.js +1 -1
  54. package/esm/components/checkmark-mobile/index.css +6 -6
  55. package/esm/components/field/Component.js +1 -1
  56. package/esm/components/field/index.css +12 -12
  57. package/esm/components/footer/Component.js +1 -1
  58. package/esm/components/footer/index.css +5 -5
  59. package/esm/components/optgroup/Component.js +1 -1
  60. package/esm/components/optgroup/index.css +6 -6
  61. package/esm/components/option/Component.js +1 -1
  62. package/esm/components/option/index.css +19 -19
  63. package/esm/components/options-list/Component.js +14 -5
  64. package/esm/components/options-list/index.css +10 -10
  65. package/esm/components/search/Component.js +1 -1
  66. package/esm/components/search/index.css +2 -2
  67. package/esm/components/virtual-options-list/Component.js +1 -1
  68. package/esm/components/virtual-options-list/index.css +15 -15
  69. package/esm/{hook-2fdebc58.js → hook-0ec24ade.js} +6 -3
  70. package/esm/mobile/Component.mobile.js +1 -1
  71. package/esm/presets/index.d.ts +1 -1
  72. package/esm/presets/index.js +1 -1
  73. package/esm/presets/useSelectWithApply/hook.js +1 -1
  74. package/esm/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  75. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
  76. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  77. package/esm/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  78. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  79. package/esm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  80. package/esm/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  81. package/esm/presets/useSelectWithLoading/hook.js +1 -1
  82. package/esm/presets/useSelectWithLoading/index.css +2 -2
  83. package/esm/shared/index.js +1 -1
  84. package/esm/typings.d.ts +9 -1
  85. package/esm/utils.d.ts +14 -2
  86. package/esm/utils.js +26 -4
  87. package/{hook-d6f8155c.js → hook-f0c98d9f.js} +6 -3
  88. package/mobile/Component.mobile.js +1 -1
  89. package/modern/components/arrow/Component.js +1 -1
  90. package/modern/components/arrow/index.css +3 -3
  91. package/modern/components/base-checkmark/Component.js +1 -1
  92. package/modern/components/base-checkmark/index.css +6 -6
  93. package/modern/components/base-option/Component.js +1 -1
  94. package/modern/components/base-option/index.css +15 -15
  95. package/modern/components/base-select/Component.js +6 -6
  96. package/modern/components/base-select/index.css +11 -11
  97. package/modern/components/base-select/mobile.css +12 -12
  98. package/modern/components/checkmark/Component.js +1 -1
  99. package/modern/components/checkmark/index.css +10 -10
  100. package/modern/components/checkmark-mobile/Component.js +1 -1
  101. package/modern/components/checkmark-mobile/index.css +6 -6
  102. package/modern/components/field/Component.js +1 -1
  103. package/modern/components/field/index.css +12 -12
  104. package/modern/components/footer/Component.js +1 -1
  105. package/modern/components/footer/index.css +5 -5
  106. package/modern/components/optgroup/Component.js +1 -1
  107. package/modern/components/optgroup/index.css +6 -6
  108. package/modern/components/option/Component.js +1 -1
  109. package/modern/components/option/index.css +19 -19
  110. package/modern/components/options-list/Component.js +14 -3
  111. package/modern/components/options-list/index.css +10 -10
  112. package/modern/components/search/Component.js +1 -1
  113. package/modern/components/search/index.css +2 -2
  114. package/modern/components/virtual-options-list/Component.js +1 -1
  115. package/modern/components/virtual-options-list/index.css +15 -15
  116. package/modern/{hook-2da7ff47.js → hook-2b938dd0.js} +5 -3
  117. package/modern/mobile/Component.mobile.js +1 -1
  118. package/modern/presets/index.d.ts +1 -1
  119. package/modern/presets/index.js +1 -1
  120. package/modern/presets/useSelectWithApply/hook.js +1 -1
  121. package/modern/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  122. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
  123. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  124. package/modern/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  125. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  126. package/modern/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  127. package/modern/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  128. package/modern/presets/useSelectWithLoading/hook.js +1 -1
  129. package/modern/presets/useSelectWithLoading/index.css +2 -2
  130. package/modern/shared/index.js +1 -1
  131. package/modern/typings.d.ts +9 -1
  132. package/modern/utils.d.ts +14 -2
  133. package/modern/utils.js +24 -4
  134. package/package.json +5 -5
  135. package/presets/index.d.ts +1 -1
  136. package/presets/index.js +1 -1
  137. package/presets/useSelectWithApply/hook.js +1 -1
  138. package/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  139. package/presets/useSelectWithApply/options-list-with-apply/footer/Component.js +1 -1
  140. package/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  141. package/presets/useSelectWithApply/options-list-with-apply/header/Component.js +1 -1
  142. package/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  143. package/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  144. package/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  145. package/presets/useSelectWithLoading/hook.js +1 -1
  146. package/presets/useSelectWithLoading/index.css +2 -2
  147. package/shared/index.js +1 -1
  148. package/src/components/base-select/Component.tsx +4 -2
  149. package/src/components/options-list/Component.tsx +15 -1
  150. package/src/presets/useSelectWithApply/hook.tsx +6 -3
  151. package/src/presets/useSelectWithApply/options-list-with-apply/Component.tsx +3 -1
  152. package/src/typings.ts +10 -0
  153. package/src/utils.ts +55 -4
  154. package/typings.d.ts +9 -1
  155. package/utils.d.ts +14 -2
  156. package/utils.js +26 -4
  157. /package/cssm/{hook-052c1a2e.d.ts → hook-660a1b89.d.ts} +0 -0
  158. /package/cssm/{hook-2f4e96b2.d.ts → hook-8c561f14.d.ts} +0 -0
  159. /package/esm/{hook-2fdebc58.d.ts → hook-0ec24ade.d.ts} +0 -0
  160. /package/esm/{hook-2f4e96b2.d.ts → hook-8c561f14.d.ts} +0 -0
  161. /package/{hook-2f4e96b2.d.ts → hook-8c561f14.d.ts} +0 -0
  162. /package/{hook-d6f8155c.d.ts → hook-f0c98d9f.d.ts} +0 -0
  163. /package/modern/{hook-2da7ff47.d.ts → hook-2b938dd0.d.ts} +0 -0
  164. /package/modern/{hook-2f4e96b2.d.ts → hook-8c561f14.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- /* hash: 1y4tx */
1
+ /* hash: 1bh40 */
2
2
  :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
3
  } /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
4
4
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -16,8 +16,8 @@
16
16
  --gap-s: 12px;
17
17
  } :root {
18
18
  } :root {
19
- } .select__desktop_g5yh6 {
19
+ } .select__desktop_16sff {
20
20
  padding: var(--gap-s);
21
- } .select__mobile_g5yh6 {
21
+ } .select__mobile_16sff {
22
22
  padding: var(--gap-s) var(--gap-xs);
23
23
  }
@@ -1 +1 @@
1
- export * from "../../../hook-2da7ff47";
1
+ export * from "../../../hook-2b938dd0";
@@ -1 +1 @@
1
- export { O as OptionsListWithApply } from '../../../hook-2da7ff47.js';
1
+ export { O as OptionsListWithApply } from '../../../hook-2b938dd0.js';
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { Skeleton } from '@alfalab/core-components-skeleton/modern';
3
3
  import { Option } from '../../components/option/Component.js';
4
4
 
5
- const styles = {"skeleton":"select__skeleton_1x68k"};
5
+ const styles = {"skeleton":"select__skeleton_1hki1"};
6
6
  require('./index.css')
7
7
 
8
8
  function useSelectWithLoading({ loading = false, visibleOptions = 6, Option: Option$1 = Option, }) {
@@ -1,5 +1,5 @@
1
- /* hash: 8y9x1 */
2
- .select__skeleton_1x68k {
1
+ /* hash: 14jp0 */
2
+ .select__skeleton_1hki1 {
3
3
  position: absolute;
4
4
  top: 50%;
5
5
  transform: translateY(-50%);
@@ -1,6 +1,6 @@
1
1
  export { useSelectWithLoading } from '../presets/useSelectWithLoading/hook.js';
2
2
  export { useLazyLoading } from '../presets/useLazyLoading/hook.js';
3
- export { S as SELECT_ALL_KEY, u as useSelectWithApply } from '../hook-2da7ff47.js';
3
+ export { S as SELECT_ALL_KEY, u as useSelectWithApply } from '../hook-2b938dd0.js';
4
4
  export { defaultAccessor, defaultFilterFn, defaultGroupAccessor, getSelectTestIds, isGroup, isOptionShape, joinOptions, lastIndexOf, processOptions, usePrevious, useVisibleOptions } from '../utils.js';
5
5
  export { Option } from '../components/option/Component.js';
6
6
  export { BaseOption } from '../components/base-option/Component.js';
@@ -5,7 +5,7 @@ import { InputProps } from "@alfalab/core-components-input";
5
5
  import { ModalProps } from "@alfalab/core-components-modal";
6
6
  import { ModalFooterProps, ModalHeaderProps } from "@alfalab/core-components-modal/shared";
7
7
  import { PopoverProps } from "@alfalab/core-components-popover";
8
- import { UseSelectWithApplyProps } from "./hook-2f4e96b2";
8
+ import { UseSelectWithApplyProps } from "./hook-8c561f14";
9
9
  type AnyObject = Record<string, any>;
10
10
  type OptionShape = {
11
11
  /**
@@ -279,6 +279,10 @@ type BaseSelectProps = {
279
279
  * Дополнительные пропсы для Popover
280
280
  */
281
281
  popoverProps?: Omit<PopoverProps, 'update' | 'zIndex' | 'position' | 'className' | 'open' | 'anchorElement' | 'preventFlip' | 'dataTestId'>;
282
+ /**
283
+ * Ограничение динамического размера группы вариантов выбора
284
+ */
285
+ limitDynamicOptionGroupSize?: boolean;
282
286
  };
283
287
  type FieldProps = {
284
288
  /**
@@ -489,6 +493,10 @@ type OptionsListProps = {
489
493
  * Возможность выбрать несколько значений
490
494
  */
491
495
  multiple?: boolean;
496
+ /**
497
+ * Ограничение динамического размера группы вариантов выбора
498
+ */
499
+ limitDynamicOptionGroupSize?: BaseSelectProps['limitDynamicOptionGroupSize'];
492
500
  };
493
501
  type OptgroupProps = {
494
502
  /**
package/modern/utils.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ReactNode, RefObject } from 'react';
2
- import { BaseSelectProps, GroupShape, OptionShape } from "./typings";
2
+ import { BaseSelectProps, GroupShape, OptionShape, OptionsListProps } from "./typings";
3
3
  declare const isGroup: (item: OptionShape | GroupShape) => item is GroupShape;
4
4
  declare const isOptionShape: (item: OptionShape | string | null) => item is OptionShape;
5
5
  declare const joinOptions: ({ selected, selectedMultiple, }: {
@@ -32,8 +32,20 @@ type useVisibleOptionsArgs = {
32
32
  * Позволяет вызвать пересчет высоты
33
33
  */
34
34
  invalidate?: unknown;
35
+ /**
36
+ * Список вариантов выбора
37
+ */
38
+ options?: Array<OptionShape | GroupShape>;
39
+ /**
40
+ * Максимальный размер варианта выбора
41
+ */
42
+ size?: Extract<OptionsListProps['size'], number>;
43
+ /**
44
+ * Учитывать действительное число вариантов выбора
45
+ */
46
+ actualOptionsCount?: boolean;
35
47
  };
36
- declare function useVisibleOptions({ visibleOptions, listRef, styleTargetRef, open, invalidate, }: useVisibleOptionsArgs): void;
48
+ declare function useVisibleOptions({ visibleOptions, listRef, styleTargetRef, open, invalidate, options, size, actualOptionsCount, }: useVisibleOptionsArgs): void;
37
49
  declare function defaultFilterFn(optionText: string, search: string): boolean;
38
50
  declare function defaultGroupAccessor(option: GroupShape): string | undefined;
39
51
  declare function defaultAccessor(option: OptionShape): string;
package/modern/utils.js CHANGED
@@ -68,8 +68,9 @@ function processOptions(options, selected = [], filterFn = () => true, filterGro
68
68
  });
69
69
  return { filteredOptions, flatOptions, selectedOptions };
70
70
  }
71
- function useVisibleOptions({ visibleOptions, listRef, styleTargetRef = listRef, open, invalidate, }) {
71
+ function useVisibleOptions({ visibleOptions, listRef, styleTargetRef = listRef, open, invalidate, options, size, actualOptionsCount, }) {
72
72
  useEffect(() => {
73
+ const measureOptionHeight = (element) => typeof size === 'number' ? Math.min(element.clientHeight, size) : element.clientHeight;
73
74
  const list = listRef.current;
74
75
  const styleTarget = styleTargetRef.current;
75
76
  if (open && list && styleTarget && visibleOptions > 0) {
@@ -77,17 +78,36 @@ function useVisibleOptions({ visibleOptions, listRef, styleTargetRef = listRef,
77
78
  const optionsNodes = [].slice.call(list.children, 0, visibleOptions + 1);
78
79
  let height = optionsNodes
79
80
  .slice(0, visibleOptions)
80
- .reduce((acc, child) => acc + child.clientHeight, 0);
81
+ .reduce((acc, child) => acc + measureOptionHeight(child), 0);
81
82
  if (visibleOptions < childCount) {
82
- const lastVisibleOptionHeight = optionsNodes[optionsNodes.length - 1].clientHeight;
83
+ const lastVisibleOptionHeight = measureOptionHeight(optionsNodes[optionsNodes.length - 1]);
83
84
  // Если кол-во опций больше visibleOptions на 1, то показываем все опции, иначе добавляем половинку
84
85
  height += Math.round(childCount - visibleOptions === 1
85
86
  ? lastVisibleOptionHeight
86
87
  : lastVisibleOptionHeight / 2);
87
88
  }
89
+ else if (visibleOptions > childCount &&
90
+ actualOptionsCount &&
91
+ typeof size === 'number') {
92
+ const actualCount = (options ?? []).reduce((sum, option) => sum + 1 + (isGroup(option) ? option.options.length : 0), 0);
93
+ height =
94
+ Math.min(actualCount === 0 ? /** empty placeholder */ 1 : actualCount, visibleOptions) * size;
95
+ if (visibleOptions < actualCount) {
96
+ height += size / 2;
97
+ }
98
+ }
88
99
  styleTarget.style.height = `${height}px`;
89
100
  }
90
- }, [listRef, open, styleTargetRef, visibleOptions, invalidate]);
101
+ }, [
102
+ actualOptionsCount,
103
+ listRef,
104
+ open,
105
+ options,
106
+ size,
107
+ styleTargetRef,
108
+ visibleOptions,
109
+ invalidate,
110
+ ]);
91
111
  }
92
112
  function defaultFilterFn(optionText, search) {
93
113
  if (!search)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfalab/core-components-select",
3
- "version": "17.7.2",
3
+ "version": "17.8.1",
4
4
  "description": "Select component",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -17,12 +17,12 @@
17
17
  "dependencies": {
18
18
  "@alfalab/core-components-badge": "^5.5.2",
19
19
  "@alfalab/core-components-base-modal": "^5.7.9",
20
- "@alfalab/core-components-bottom-sheet": "^6.15.6",
21
- "@alfalab/core-components-button": "^11.5.1",
20
+ "@alfalab/core-components-bottom-sheet": "^6.15.7",
21
+ "@alfalab/core-components-button": "^11.5.2",
22
22
  "@alfalab/core-components-checkbox": "^4.4.1",
23
23
  "@alfalab/core-components-form-control": "^12.2.4",
24
- "@alfalab/core-components-input": "^15.0.0",
25
- "@alfalab/core-components-modal": "^9.3.6",
24
+ "@alfalab/core-components-input": "^15.0.1",
25
+ "@alfalab/core-components-modal": "^9.3.7",
26
26
  "@alfalab/core-components-mq": "^4.2.0",
27
27
  "@alfalab/core-components-popover": "^6.2.4",
28
28
  "@alfalab/core-components-scrollbar": "^3.0.2",
@@ -1,3 +1,3 @@
1
1
  export * from "./useSelectWithLoading/hook";
2
2
  export * from "./useLazyLoading/hook";
3
- export * from "../hook-2f4e96b2";
3
+ export * from "../hook-8c561f14";
package/presets/index.js CHANGED
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var presets_useSelectWithLoading_hook = require('./useSelectWithLoading/hook.js');
6
6
  var presets_useLazyLoading_hook = require('./useLazyLoading/hook.js');
7
- var presets_useSelectWithApply_optionsListWithApply_Component = require('../hook-d6f8155c.js');
7
+ var presets_useSelectWithApply_optionsListWithApply_Component = require('../hook-f0c98d9f.js');
8
8
 
9
9
 
10
10
 
@@ -6,7 +6,7 @@ require('tslib');
6
6
  require('react');
7
7
  require('deep-equal');
8
8
  require('../../utils.js');
9
- var presets_useSelectWithApply_optionsListWithApply_Component = require('../../hook-d6f8155c.js');
9
+ var presets_useSelectWithApply_optionsListWithApply_Component = require('../../hook-f0c98d9f.js');
10
10
 
11
11
 
12
12
 
@@ -6,7 +6,7 @@ require('tslib');
6
6
  require('react');
7
7
  require('../../../components/options-list/Component.js');
8
8
  require('../../../consts.js');
9
- var presets_useSelectWithApply_optionsListWithApply_Component = require('../../../hook-d6f8155c.js');
9
+ var presets_useSelectWithApply_optionsListWithApply_Component = require('../../../hook-f0c98d9f.js');
10
10
  require('./footer/Component.js');
11
11
  require('./header/Component.js');
12
12
 
@@ -10,7 +10,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
10
10
 
11
11
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
12
12
 
13
- var styles = {"footer":"select__footer_cmbqq","button":"select__button_cmbqq"};
13
+ var styles = {"footer":"select__footer_1kh1z","button":"select__button_1kh1z"};
14
14
  require('./index.css')
15
15
 
16
16
  var Footer = function (_a) {
@@ -1,4 +1,4 @@
1
- /* hash: crl1f */
1
+ /* hash: 58idc */
2
2
  :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
3
  } /* deprecated */ :root {
4
4
  --color-light-base-bg-primary: #fff; /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -17,10 +17,10 @@
17
17
  --gap-s: 12px;
18
18
  } :root {
19
19
  } :root {
20
- } .select__footer_cmbqq {
20
+ } .select__footer_1kh1z {
21
21
  background-color: var(--color-light-base-bg-primary);
22
22
  padding: var(--gap-s);
23
23
  outline: none
24
- } .select__footer_cmbqq > .select__button_cmbqq + .select__button_cmbqq {
24
+ } .select__footer_1kh1z > .select__button_1kh1z + .select__button_1kh1z {
25
25
  margin-left: var(--gap-xs);
26
26
  }
@@ -11,7 +11,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
11
11
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
12
12
  var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
13
13
 
14
- var styles = {"desktop":"select__desktop_g5yh6","mobile":"select__mobile_g5yh6"};
14
+ var styles = {"desktop":"select__desktop_16sff","mobile":"select__mobile_16sff"};
15
15
  require('./index.css')
16
16
 
17
17
  var Header = function (_a) {
@@ -1,4 +1,4 @@
1
- /* hash: 1y4tx */
1
+ /* hash: 1bh40 */
2
2
  :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
3
  } /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
4
4
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -16,8 +16,8 @@
16
16
  --gap-s: 12px;
17
17
  } :root {
18
18
  } :root {
19
- } .select__desktop_g5yh6 {
19
+ } .select__desktop_16sff {
20
20
  padding: var(--gap-s);
21
- } .select__mobile_g5yh6 {
21
+ } .select__mobile_16sff {
22
22
  padding: var(--gap-s) var(--gap-xs);
23
23
  }
@@ -1 +1 @@
1
- export * from "../../../hook-d6f8155c";
1
+ export * from "../../../hook-f0c98d9f";
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var presets_useSelectWithApply_optionsListWithApply_Component = require('../../../hook-d6f8155c.js');
5
+ var presets_useSelectWithApply_optionsListWithApply_Component = require('../../../hook-f0c98d9f.js');
6
6
 
7
7
 
8
8
 
@@ -11,7 +11,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
11
11
 
12
12
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
13
13
 
14
- var styles = {"skeleton":"select__skeleton_1x68k"};
14
+ var styles = {"skeleton":"select__skeleton_1hki1"};
15
15
  require('./index.css')
16
16
 
17
17
  function useSelectWithLoading(_a) {
@@ -1,5 +1,5 @@
1
- /* hash: 8y9x1 */
2
- .select__skeleton_1x68k {
1
+ /* hash: 14jp0 */
2
+ .select__skeleton_1hki1 {
3
3
  position: absolute;
4
4
  top: 50%;
5
5
  transform: translateY(-50%);
package/shared/index.js CHANGED
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var presets_useSelectWithLoading_hook = require('../presets/useSelectWithLoading/hook.js');
6
6
  var presets_useLazyLoading_hook = require('../presets/useLazyLoading/hook.js');
7
- var presets_useSelectWithApply_optionsListWithApply_Component = require('../hook-d6f8155c.js');
7
+ var presets_useSelectWithApply_optionsListWithApply_Component = require('../hook-f0c98d9f.js');
8
8
  var utils = require('../utils.js');
9
9
  var components_option_Component = require('../components/option/Component.js');
10
10
  var components_baseOption_Component = require('../components/base-option/Component.js');
@@ -148,6 +148,7 @@ export const BaseSelect = forwardRef(
148
148
  Popover,
149
149
  ModalMobile,
150
150
  BottomSheet,
151
+ limitDynamicOptionGroupSize,
151
152
  }: ComponentProps,
152
153
  ref,
153
154
  ) => {
@@ -660,6 +661,7 @@ export const BaseSelect = forwardRef(
660
661
  onScroll={onScroll}
661
662
  search={search}
662
663
  multiple={multiple}
664
+ limitDynamicOptionGroupSize={limitDynamicOptionGroupSize}
663
665
  />
664
666
  {view === 'desktop' && <div className={styles.optionsListBorder} />}
665
667
  </div>
@@ -717,7 +719,7 @@ export const BaseSelect = forwardRef(
717
719
  bottomAddons={
718
720
  <React.Fragment>
719
721
  {renderSearch()}
720
- {bottomSheetProps?.bottomAddons}
722
+ {flatOptions.length > 0 && bottomSheetProps?.bottomAddons}
721
723
  </React.Fragment>
722
724
  }
723
725
  containerProps={{
@@ -771,7 +773,7 @@ export const BaseSelect = forwardRef(
771
773
  bottomAddons={
772
774
  <React.Fragment>
773
775
  {renderSearch()}
774
- {modalHeaderProps?.bottomAddons}
776
+ {flatOptions.length > 0 && modalHeaderProps?.bottomAddons}
775
777
  </React.Fragment>
776
778
  }
777
779
  >
@@ -47,6 +47,7 @@ export const OptionsList = forwardRef<HTMLDivElement, OptionsListProps>(
47
47
  search,
48
48
  setSelectedItems,
49
49
  multiple,
50
+ limitDynamicOptionGroupSize = false,
50
51
  },
51
52
  ref,
52
53
  ) => {
@@ -116,7 +117,20 @@ export const OptionsList = forwardRef<HTMLDivElement, OptionsListProps>(
116
117
  visibleOptions,
117
118
  listRef,
118
119
  open,
119
- invalidate: options,
120
+ options,
121
+ actualOptionsCount: limitDynamicOptionGroupSize,
122
+ size: limitDynamicOptionGroupSize
123
+ ? (() => {
124
+ switch (typeof size) {
125
+ case 'string':
126
+ throw new Error(
127
+ 'OptionsList with `limitDynamicOptionGroupSize` enabled needs a `size` with number type',
128
+ );
129
+ default:
130
+ return size;
131
+ }
132
+ })()
133
+ : undefined,
120
134
  });
121
135
 
122
136
  if (options.length === 0 && !emptyPlaceholder && !header && !footer) {
@@ -92,7 +92,7 @@ export function useSelectWithApply({
92
92
  const groupAccessor = searchProps.groupAccessor ?? defaultGroupAccessor;
93
93
  const filterGroup = searchProps.filterGroup ?? false;
94
94
 
95
- const { flatOptions, selectedOptions } = useMemo(
95
+ const { flatOptions, filteredOptions, selectedOptions } = useMemo(
96
96
  () =>
97
97
  processOptions(
98
98
  options,
@@ -177,8 +177,11 @@ export function useSelectWithApply({
177
177
  }, [selectedOptions]);
178
178
 
179
179
  const memoizedOptions = useMemo(
180
- () => (showSelectAll ? [selectAllOption, ...options] : options),
181
- [options, showSelectAll],
180
+ () =>
181
+ filteredOptions.length && showSelectAll
182
+ ? [selectAllOption, ...filteredOptions]
183
+ : filteredOptions,
184
+ [filteredOptions, showSelectAll],
182
185
  );
183
186
 
184
187
  return {
@@ -97,7 +97,9 @@ export const OptionsListWithApply = forwardRef<HTMLDivElement, OptionsListWithAp
97
97
  return (
98
98
  <React.Fragment>
99
99
  {header}
100
- {showHeaderWithSelectAll && <Header {...headerProps} />}
100
+ {showHeaderWithSelectAll && flatOptions.length > 0 && (
101
+ <Header {...headerProps} />
102
+ )}
101
103
  </React.Fragment>
102
104
  );
103
105
  };
package/src/typings.ts CHANGED
@@ -365,6 +365,11 @@ export type BaseSelectProps = {
365
365
  | 'preventFlip'
366
366
  | 'dataTestId'
367
367
  >;
368
+
369
+ /**
370
+ * Ограничение динамического размера группы вариантов выбора
371
+ */
372
+ limitDynamicOptionGroupSize?: boolean;
368
373
  };
369
374
 
370
375
  // TODO: использовать InputProps
@@ -626,6 +631,11 @@ export type OptionsListProps = {
626
631
  * Возможность выбрать несколько значений
627
632
  */
628
633
  multiple?: boolean;
634
+
635
+ /**
636
+ * Ограничение динамического размера группы вариантов выбора
637
+ */
638
+ limitDynamicOptionGroupSize?: BaseSelectProps['limitDynamicOptionGroupSize'];
629
639
  };
630
640
 
631
641
  export type OptgroupProps = {