@alfalab/core-components-select 18.2.7 → 18.2.8

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 (135) 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 +5 -5
  4. package/components/base-checkmark/index.module.css.js +1 -1
  5. package/components/base-option/index.css +16 -16
  6. package/components/base-option/index.module.css.js +1 -1
  7. package/components/base-select/index.css +14 -14
  8. package/components/base-select/index.module.css.js +1 -1
  9. package/components/base-select/mobile.css +11 -11
  10. package/components/base-select/mobile.module.css.js +1 -1
  11. package/components/checkmark/index.css +9 -9
  12. package/components/checkmark/index.module.css.js +1 -1
  13. package/components/checkmark-mobile/index.css +5 -5
  14. package/components/checkmark-mobile/index.module.css.js +1 -1
  15. package/components/clear-button/index.css +4 -4
  16. package/components/clear-button/index.module.css.js +1 -1
  17. package/components/field/index.css +13 -13
  18. package/components/field/index.module.css.js +1 -1
  19. package/components/footer/index.css +4 -4
  20. package/components/footer/index.module.css.js +1 -1
  21. package/components/optgroup/index.css +4 -4
  22. package/components/optgroup/index.module.css.js +1 -1
  23. package/components/option/desktop/index.css +19 -19
  24. package/components/option/desktop/index.module.css.js +1 -1
  25. package/components/option/mobile/index.css +16 -16
  26. package/components/option/mobile/index.module.css.js +1 -1
  27. package/components/options-list/Component.js +8 -5
  28. package/components/options-list/Component.js.map +1 -1
  29. package/components/options-list/index.css +24 -11
  30. package/components/options-list/index.module.css.js +1 -1
  31. package/components/options-list/index.module.css.js.map +1 -1
  32. package/components/search/index.css +1 -1
  33. package/components/search/index.module.css.js +1 -1
  34. package/components/virtual-options-list/index.css +13 -13
  35. package/components/virtual-options-list/index.module.css.js +1 -1
  36. package/cssm/components/base-select/index.module.css +3 -3
  37. package/cssm/components/options-list/Component.js +8 -5
  38. package/cssm/components/options-list/Component.js.map +1 -1
  39. package/cssm/components/options-list/index.module.css +18 -5
  40. package/esm/components/arrow/index.css +4 -4
  41. package/esm/components/arrow/index.module.css.js +1 -1
  42. package/esm/components/base-checkmark/index.css +5 -5
  43. package/esm/components/base-checkmark/index.module.css.js +1 -1
  44. package/esm/components/base-option/index.css +16 -16
  45. package/esm/components/base-option/index.module.css.js +1 -1
  46. package/esm/components/base-select/index.css +14 -14
  47. package/esm/components/base-select/index.module.css.js +1 -1
  48. package/esm/components/base-select/mobile.css +11 -11
  49. package/esm/components/base-select/mobile.module.css.js +1 -1
  50. package/esm/components/checkmark/index.css +9 -9
  51. package/esm/components/checkmark/index.module.css.js +1 -1
  52. package/esm/components/checkmark-mobile/index.css +5 -5
  53. package/esm/components/checkmark-mobile/index.module.css.js +1 -1
  54. package/esm/components/clear-button/index.css +4 -4
  55. package/esm/components/clear-button/index.module.css.js +1 -1
  56. package/esm/components/field/index.css +13 -13
  57. package/esm/components/field/index.module.css.js +1 -1
  58. package/esm/components/footer/index.css +4 -4
  59. package/esm/components/footer/index.module.css.js +1 -1
  60. package/esm/components/optgroup/index.css +4 -4
  61. package/esm/components/optgroup/index.module.css.js +1 -1
  62. package/esm/components/option/desktop/index.css +19 -19
  63. package/esm/components/option/desktop/index.module.css.js +1 -1
  64. package/esm/components/option/mobile/index.css +16 -16
  65. package/esm/components/option/mobile/index.module.css.js +1 -1
  66. package/esm/components/options-list/Component.js +8 -5
  67. package/esm/components/options-list/Component.js.map +1 -1
  68. package/esm/components/options-list/index.css +24 -11
  69. package/esm/components/options-list/index.module.css.js +1 -1
  70. package/esm/components/options-list/index.module.css.js.map +1 -1
  71. package/esm/components/search/index.css +1 -1
  72. package/esm/components/search/index.module.css.js +1 -1
  73. package/esm/components/virtual-options-list/index.css +13 -13
  74. package/esm/components/virtual-options-list/index.module.css.js +1 -1
  75. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  76. package/esm/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js +1 -1
  77. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  78. package/esm/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js +1 -1
  79. package/esm/presets/useSelectWithLoading/index.css +1 -1
  80. package/esm/presets/useSelectWithLoading/index.module.css.js +1 -1
  81. package/modern/components/arrow/index.css +4 -4
  82. package/modern/components/arrow/index.module.css.js +1 -1
  83. package/modern/components/base-checkmark/index.css +5 -5
  84. package/modern/components/base-checkmark/index.module.css.js +1 -1
  85. package/modern/components/base-option/index.css +16 -16
  86. package/modern/components/base-option/index.module.css.js +1 -1
  87. package/modern/components/base-select/index.css +14 -14
  88. package/modern/components/base-select/index.module.css.js +1 -1
  89. package/modern/components/base-select/mobile.css +11 -11
  90. package/modern/components/base-select/mobile.module.css.js +1 -1
  91. package/modern/components/checkmark/index.css +9 -9
  92. package/modern/components/checkmark/index.module.css.js +1 -1
  93. package/modern/components/checkmark-mobile/index.css +5 -5
  94. package/modern/components/checkmark-mobile/index.module.css.js +1 -1
  95. package/modern/components/clear-button/index.css +4 -4
  96. package/modern/components/clear-button/index.module.css.js +1 -1
  97. package/modern/components/field/index.css +13 -13
  98. package/modern/components/field/index.module.css.js +1 -1
  99. package/modern/components/footer/index.css +4 -4
  100. package/modern/components/footer/index.module.css.js +1 -1
  101. package/modern/components/optgroup/index.css +4 -4
  102. package/modern/components/optgroup/index.module.css.js +1 -1
  103. package/modern/components/option/desktop/index.css +19 -19
  104. package/modern/components/option/desktop/index.module.css.js +1 -1
  105. package/modern/components/option/mobile/index.css +16 -16
  106. package/modern/components/option/mobile/index.module.css.js +1 -1
  107. package/modern/components/options-list/Component.js +4 -1
  108. package/modern/components/options-list/Component.js.map +1 -1
  109. package/modern/components/options-list/index.css +24 -11
  110. package/modern/components/options-list/index.module.css.js +1 -1
  111. package/modern/components/options-list/index.module.css.js.map +1 -1
  112. package/modern/components/search/index.css +1 -1
  113. package/modern/components/search/index.module.css.js +1 -1
  114. package/modern/components/virtual-options-list/index.css +13 -13
  115. package/modern/components/virtual-options-list/index.module.css.js +1 -1
  116. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  117. package/modern/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js +1 -1
  118. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  119. package/modern/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js +1 -1
  120. package/modern/presets/useSelectWithLoading/index.css +1 -1
  121. package/modern/presets/useSelectWithLoading/index.module.css.js +1 -1
  122. package/moderncssm/components/base-select/index.module.css +1 -1
  123. package/moderncssm/components/options-list/Component.js +4 -1
  124. package/moderncssm/components/options-list/Component.js.map +1 -1
  125. package/moderncssm/components/options-list/index.module.css +26 -5
  126. package/package.json +6 -6
  127. package/presets/useSelectWithApply/options-list-with-apply/footer/index.css +3 -3
  128. package/presets/useSelectWithApply/options-list-with-apply/footer/index.module.css.js +1 -1
  129. package/presets/useSelectWithApply/options-list-with-apply/header/index.css +3 -3
  130. package/presets/useSelectWithApply/options-list-with-apply/header/index.module.css.js +1 -1
  131. package/presets/useSelectWithLoading/index.css +1 -1
  132. package/presets/useSelectWithLoading/index.module.css.js +1 -1
  133. package/src/components/options-list/Component.tsx +4 -0
  134. package/src/components/options-list/index.module.css +25 -5
  135. package/src/vars.css +2 -1
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"option":"select__option_kqgr6","disabled":"select__disabled_kqgr6","size-48":"select__size-48_kqgr6","size-56":"select__size-56_kqgr6","size-64":"select__size-64_kqgr6","size-72":"select__size-72_kqgr6","selected":"select__selected_kqgr6","highlighted":"select__highlighted_kqgr6","content":"select__content_kqgr6","textContent":"select__textContent_kqgr6"};
5
+ var styles = {"option":"select__option_1n01b","disabled":"select__disabled_1n01b","size-48":"select__size-48_1n01b","size-56":"select__size-56_1n01b","size-64":"select__size-64_1n01b","size-72":"select__size-72_1n01b","selected":"select__selected_1n01b","highlighted":"select__highlighted_1n01b","content":"select__content_1n01b","textContent":"select__textContent_1n01b"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -35,7 +35,7 @@
35
35
  --select-option-hover-color: var(--color-light-text-primary);
36
36
  --select-option-active-color: var(--color-light-text-primary);
37
37
  --select-option-disabled-color: var(--color-light-text-secondary);
38
- } .select__option_lioo6 {
38
+ } .select__option_79c26 {
39
39
  font-size: 16px;
40
40
  line-height: 20px;
41
41
  font-weight: 400;
@@ -50,10 +50,10 @@
50
50
  box-sizing: border-box;
51
51
  position: relative;
52
52
  cursor: pointer;
53
- } .select__option_lioo6:not(.select__disabled_lioo6):active {
53
+ } .select__option_79c26:not(.select__disabled_79c26):active {
54
54
  background: var(--select-option-active-background);
55
55
  color: var(--select-option-active-color);
56
- } .select__option_lioo6:before {
56
+ } .select__option_79c26:before {
57
57
  content: '';
58
58
  position: absolute;
59
59
  left: var(--select-option-left-padding);
@@ -63,40 +63,40 @@
63
63
  background: var(--select-option-divider-background);
64
64
  display: var(--select-option-divider-display);
65
65
  transition: opacity 0.2s ease;
66
- } .select__option_lioo6:first-child:before {
66
+ } .select__option_79c26:first-child:before {
67
67
  display: none;
68
- } .select__size-48_lioo6 {
68
+ } .select__size-48_79c26 {
69
69
  min-height: var(--size-s-height);
70
- } .select__size-56_lioo6 {
70
+ } .select__size-56_79c26 {
71
71
  min-height: var(--size-m-height);
72
- } .select__size-64_lioo6 {
72
+ } .select__size-64_79c26 {
73
73
  min-height: var(--size-l-height);
74
- } .select__size-72_lioo6 {
74
+ } .select__size-72_79c26 {
75
75
  min-height: var(--size-xl-height);
76
76
  padding-left: var(--select-option-l-left-padding);
77
77
  padding-right: var(--select-option-l-right-padding);
78
- } .select__size-72_lioo6:before {
78
+ } .select__size-72_79c26:before {
79
79
  left: var(--select-option-l-left-padding);
80
80
  right: var(--select-option-l-right-padding);
81
- } .select__selected_lioo6 {
81
+ } .select__selected_79c26 {
82
82
  background: var(--select-option-selected-background);
83
83
  color: var(--select-option-selected-color);
84
84
  cursor: default;
85
- } .select__highlighted_lioo6 {
85
+ } .select__highlighted_79c26 {
86
86
  background: var(--select-option-hover-background);
87
87
  color: var(--select-option-hover-color);
88
- } .select__highlighted_lioo6:before,
89
- .select__highlighted_lioo6 + .select__option_lioo6:before {
88
+ } .select__highlighted_79c26:before,
89
+ .select__highlighted_79c26 + .select__option_79c26:before {
90
90
  opacity: 0;
91
- } .select__disabled_lioo6 {
91
+ } .select__disabled_79c26 {
92
92
  cursor: var(--disabled-cursor);
93
93
  background: var(--select-option-disabled-background);
94
94
  color: var(--select-option-disabled-color);
95
- } .select__content_lioo6 {
95
+ } .select__content_79c26 {
96
96
  overflow: hidden;
97
97
  flex: 1;
98
98
  text-overflow: ellipsis;
99
- } .select__textContent_lioo6 {
99
+ } .select__textContent_79c26 {
100
100
  padding-top: var(--gap-12);
101
101
  padding-bottom: var(--gap-12);
102
102
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"option":"select__option_lioo6","disabled":"select__disabled_lioo6","size-48":"select__size-48_lioo6","size-56":"select__size-56_lioo6","size-64":"select__size-64_lioo6","size-72":"select__size-72_lioo6","selected":"select__selected_lioo6","highlighted":"select__highlighted_lioo6","content":"select__content_lioo6","textContent":"select__textContent_lioo6"};
5
+ var styles = {"option":"select__option_79c26","disabled":"select__disabled_79c26","size-48":"select__size-48_79c26","size-56":"select__size-56_79c26","size-64":"select__size-64_79c26","size-72":"select__size-72_79c26","selected":"select__selected_79c26","highlighted":"select__highlighted_79c26","content":"select__content_79c26","textContent":"select__textContent_79c26"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -86,20 +86,23 @@ var OptionsList = React.forwardRef(function (_a, ref) {
86
86
  }),
87
87
  emptyPlaceholder && options.length === 0 && (React__default.default.createElement("div", { className: index_module.emptyPlaceholder }, emptyPlaceholder)))); };
88
88
  var renderWithCustomScrollbar = function () {
89
- var _a;
89
+ var _a, _b;
90
90
  var scrollableNodeProps = {
91
91
  onScroll: handleScroll,
92
92
  'data-test-id': dataTestId,
93
93
  ref: ref,
94
94
  };
95
- return (React__default.default.createElement(coreComponentsScrollbar.Scrollbar, { className: cn__default.default(index_module.scrollable, scrollbarClassName), ref: scrollbarRef, style: { height: height }, horizontalAutoStretch: optionsListWidth === 'content', scrollableNodeProps: scrollableNodeProps, contentNodeProps: { ref: listRef }, maskProps: {
95
+ return (React__default.default.createElement(coreComponentsScrollbar.Scrollbar, { className: cn__default.default(index_module.scrollable, scrollbarClassName), verticalBarClassName: cn__default.default(index_module.verticalBar, (_a = {},
96
+ _a[index_module.verticalBarWithHeader] = Boolean(header),
97
+ _a[index_module.verticalBarWithFooter] = Boolean(footer),
98
+ _a)), ref: scrollbarRef, style: { height: height }, horizontalAutoStretch: optionsListWidth === 'content', scrollableNodeProps: scrollableNodeProps, contentNodeProps: { ref: listRef }, maskProps: {
96
99
  /*
97
100
  * Для корректного подсчета высоты опций(иначе для optionsListWidth: 'field'
98
101
  * высота опции всегда будет равна высоте одной строчки)
99
102
  */
100
- className: cn__default.default((_a = {},
101
- _a[index_module.mask] = optionsListWidth === 'content' && !measured,
102
- _a)),
103
+ className: cn__default.default((_b = {},
104
+ _b[index_module.mask] = optionsListWidth === 'content' && !measured,
105
+ _b)),
103
106
  } }, renderListItems()));
104
107
  };
105
108
  var renderWithNativeScrollbar = function () { return (React__default.default.createElement("div", { className: cn__default.default(index_module.scrollable, scrollbarClassName), ref: mergeRefs__default.default([listRef, ref]), onScroll: handleScroll, style: { height: height } }, renderListItems())); };
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../../src/components/options-list/Component.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useRef, useState } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { Scrollbar } from '@alfalab/core-components-scrollbar';\n\nimport { DEFAULT_VISIBLE_OPTIONS, SIZE_TO_CLASSNAME_MAP } from '../../consts';\nimport { useNativeScrollbar } from '../../hooks/use-native-scrollbar';\nimport { type GroupShape, type OptionShape, type OptionsListProps } from '../../typings';\nimport { isGroup, useVisibleOptions } from '../../utils';\nimport { Optgroup as DefaultOptgroup } from '../optgroup';\n\nimport styles from './index.module.css';\n\nconst createCounter = () => {\n let count = 0;\n\n // eslint-disable-next-line no-plusplus\n return () => count++;\n};\n\nexport const OptionsList = forwardRef<HTMLDivElement, OptionsListProps>(\n (\n {\n size = 48,\n className,\n optionGroupClassName,\n footerClassName,\n scrollbarClassName,\n Option,\n getOptionProps,\n groupOptionProps = {},\n options = [],\n Optgroup = DefaultOptgroup,\n dataTestId,\n emptyPlaceholder,\n visibleOptions = DEFAULT_VISIBLE_OPTIONS,\n onScroll,\n open,\n header,\n footer,\n showFooter = true,\n optionsListWidth,\n nativeScrollbar: nativeScrollbarProp,\n flatOptions = [],\n setHighlightedIndex,\n selectedItems,\n search,\n setSelectedItems,\n multiple,\n limitDynamicOptionGroupSize = false,\n client,\n },\n ref,\n ) => {\n const [scrollTop, setScrollTop] = useState(true);\n const [scrollBottom, setScrollBottom] = useState(false);\n\n const nativeScrollbar = useNativeScrollbar({\n nativeScrollbar: nativeScrollbarProp,\n client,\n });\n\n const handleScroll = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n const scrolledToHeader = event.currentTarget.scrollTop <= 0;\n const scrolledToFooter =\n event.currentTarget.scrollHeight - event.currentTarget.offsetHeight <=\n event.currentTarget.scrollTop;\n\n setScrollTop(scrolledToHeader);\n setScrollBottom(scrolledToFooter);\n\n onScroll?.(event);\n },\n [onScroll],\n );\n\n const renderOption = (option: OptionShape, index: number) => (\n <Option key={option.key} {...getOptionProps(option, index)} />\n );\n\n const listRef = useRef<HTMLDivElement>(null);\n const scrollbarRef = useRef<HTMLDivElement>(null);\n const counter = createCounter();\n const renderGroup = (group: GroupShape) => {\n const groupSelectedItems = selectedItems?.filter(({ key: selectedItemKey }) =>\n group.options.some((option) => option.key === selectedItemKey),\n );\n const handleSelectedItems = (items: OptionShape[]) => {\n setSelectedItems(\n (\n selectedItems?.filter(\n ({ key: selectedItemKey }) =>\n !group.options.some((option) => option.key === selectedItemKey),\n ) ?? []\n ).concat(items),\n );\n };\n\n return (\n <Optgroup\n className={optionGroupClassName}\n label={group.label}\n key={group.label}\n size={size}\n options={group.options}\n selectedItems={groupSelectedItems}\n setSelectedItems={handleSelectedItems}\n search={search}\n multiple={multiple}\n {...groupOptionProps}\n >\n {group.options.map((option) => renderOption(option, counter()))}\n </Optgroup>\n );\n };\n\n const actualOptionsCount = limitDynamicOptionGroupSize && options.length > 0;\n\n const [measured, height] = useVisibleOptions({\n visibleOptions,\n listRef,\n open,\n options,\n actualOptionsCount,\n size: actualOptionsCount\n ? (() => {\n switch (typeof size) {\n case 'string':\n throw new Error(\n 'OptionsList with `limitDynamicOptionGroupSize` enabled needs a `size` with number type',\n );\n default:\n return size;\n }\n })()\n : undefined,\n });\n\n if (options.length === 0 && !emptyPlaceholder && !header && !footer) {\n return null;\n }\n\n const renderListItems = () => (\n <React.Fragment>\n {options.map((option) =>\n isGroup(option) ? renderGroup(option) : renderOption(option, counter()),\n )}\n\n {emptyPlaceholder && options.length === 0 && (\n <div className={styles.emptyPlaceholder}>{emptyPlaceholder}</div>\n )}\n </React.Fragment>\n );\n\n const renderWithCustomScrollbar = () => {\n const scrollableNodeProps = {\n onScroll: handleScroll,\n 'data-test-id': dataTestId,\n ref: ref as React.RefObject<HTMLDivElement>,\n };\n\n return (\n <Scrollbar\n className={cn(styles.scrollable, scrollbarClassName)}\n ref={scrollbarRef}\n style={{ height }}\n horizontalAutoStretch={optionsListWidth === 'content'}\n scrollableNodeProps={scrollableNodeProps}\n contentNodeProps={{ ref: listRef }}\n maskProps={{\n /*\n * Для корректного подсчета высоты опций(иначе для optionsListWidth: 'field'\n * высота опции всегда будет равна высоте одной строчки)\n */\n className: cn({\n [styles.mask]: optionsListWidth === 'content' && !measured,\n }),\n }}\n >\n {renderListItems()}\n </Scrollbar>\n );\n };\n\n const renderWithNativeScrollbar = () => (\n <div\n className={cn(styles.scrollable, scrollbarClassName)}\n ref={mergeRefs([listRef, ref])}\n onScroll={handleScroll}\n style={{ height }}\n >\n {renderListItems()}\n </div>\n );\n\n const resetHighlightedIndex = () => setHighlightedIndex?.(-1);\n\n return (\n <div\n {...(nativeScrollbar && { 'data-test-id': dataTestId })}\n className={cn(styles.optionsList, styles[SIZE_TO_CLASSNAME_MAP[size]], className)}\n >\n {header && (\n <div\n className={cn(styles.optionsListHeader, {\n [styles.headerHighlighted]: !scrollTop,\n })}\n onMouseEnter={resetHighlightedIndex}\n >\n {header}\n </div>\n )}\n\n {nativeScrollbar ? renderWithNativeScrollbar() : renderWithCustomScrollbar()}\n\n {showFooter && footer && (\n <div\n onMouseEnter={resetHighlightedIndex}\n className={cn(styles.optionsListFooter, footerClassName, {\n [styles.withBorder]:\n visibleOptions &&\n flatOptions.length > visibleOptions &&\n !scrollBottom,\n })}\n >\n {footer}\n </div>\n )}\n </div>\n );\n },\n);\n"],"names":["forwardRef","DefaultOptgroup","DEFAULT_VISIBLE_OPTIONS","useState","useNativeScrollbar","useCallback","React","__assign","useRef","useVisibleOptions","isGroup","styles","Scrollbar","cn","mergeRefs","SIZE_TO_CLASSNAME_MAP"],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["../../src/components/options-list/Component.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useRef, useState } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { Scrollbar } from '@alfalab/core-components-scrollbar';\n\nimport { DEFAULT_VISIBLE_OPTIONS, SIZE_TO_CLASSNAME_MAP } from '../../consts';\nimport { useNativeScrollbar } from '../../hooks/use-native-scrollbar';\nimport { type GroupShape, type OptionShape, type OptionsListProps } from '../../typings';\nimport { isGroup, useVisibleOptions } from '../../utils';\nimport { Optgroup as DefaultOptgroup } from '../optgroup';\n\nimport styles from './index.module.css';\n\nconst createCounter = () => {\n let count = 0;\n\n // eslint-disable-next-line no-plusplus\n return () => count++;\n};\n\nexport const OptionsList = forwardRef<HTMLDivElement, OptionsListProps>(\n (\n {\n size = 48,\n className,\n optionGroupClassName,\n footerClassName,\n scrollbarClassName,\n Option,\n getOptionProps,\n groupOptionProps = {},\n options = [],\n Optgroup = DefaultOptgroup,\n dataTestId,\n emptyPlaceholder,\n visibleOptions = DEFAULT_VISIBLE_OPTIONS,\n onScroll,\n open,\n header,\n footer,\n showFooter = true,\n optionsListWidth,\n nativeScrollbar: nativeScrollbarProp,\n flatOptions = [],\n setHighlightedIndex,\n selectedItems,\n search,\n setSelectedItems,\n multiple,\n limitDynamicOptionGroupSize = false,\n client,\n },\n ref,\n ) => {\n const [scrollTop, setScrollTop] = useState(true);\n const [scrollBottom, setScrollBottom] = useState(false);\n\n const nativeScrollbar = useNativeScrollbar({\n nativeScrollbar: nativeScrollbarProp,\n client,\n });\n\n const handleScroll = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n const scrolledToHeader = event.currentTarget.scrollTop <= 0;\n const scrolledToFooter =\n event.currentTarget.scrollHeight - event.currentTarget.offsetHeight <=\n event.currentTarget.scrollTop;\n\n setScrollTop(scrolledToHeader);\n setScrollBottom(scrolledToFooter);\n\n onScroll?.(event);\n },\n [onScroll],\n );\n\n const renderOption = (option: OptionShape, index: number) => (\n <Option key={option.key} {...getOptionProps(option, index)} />\n );\n\n const listRef = useRef<HTMLDivElement>(null);\n const scrollbarRef = useRef<HTMLDivElement>(null);\n const counter = createCounter();\n const renderGroup = (group: GroupShape) => {\n const groupSelectedItems = selectedItems?.filter(({ key: selectedItemKey }) =>\n group.options.some((option) => option.key === selectedItemKey),\n );\n const handleSelectedItems = (items: OptionShape[]) => {\n setSelectedItems(\n (\n selectedItems?.filter(\n ({ key: selectedItemKey }) =>\n !group.options.some((option) => option.key === selectedItemKey),\n ) ?? []\n ).concat(items),\n );\n };\n\n return (\n <Optgroup\n className={optionGroupClassName}\n label={group.label}\n key={group.label}\n size={size}\n options={group.options}\n selectedItems={groupSelectedItems}\n setSelectedItems={handleSelectedItems}\n search={search}\n multiple={multiple}\n {...groupOptionProps}\n >\n {group.options.map((option) => renderOption(option, counter()))}\n </Optgroup>\n );\n };\n\n const actualOptionsCount = limitDynamicOptionGroupSize && options.length > 0;\n\n const [measured, height] = useVisibleOptions({\n visibleOptions,\n listRef,\n open,\n options,\n actualOptionsCount,\n size: actualOptionsCount\n ? (() => {\n switch (typeof size) {\n case 'string':\n throw new Error(\n 'OptionsList with `limitDynamicOptionGroupSize` enabled needs a `size` with number type',\n );\n default:\n return size;\n }\n })()\n : undefined,\n });\n\n if (options.length === 0 && !emptyPlaceholder && !header && !footer) {\n return null;\n }\n\n const renderListItems = () => (\n <React.Fragment>\n {options.map((option) =>\n isGroup(option) ? renderGroup(option) : renderOption(option, counter()),\n )}\n\n {emptyPlaceholder && options.length === 0 && (\n <div className={styles.emptyPlaceholder}>{emptyPlaceholder}</div>\n )}\n </React.Fragment>\n );\n\n const renderWithCustomScrollbar = () => {\n const scrollableNodeProps = {\n onScroll: handleScroll,\n 'data-test-id': dataTestId,\n ref: ref as React.RefObject<HTMLDivElement>,\n };\n\n return (\n <Scrollbar\n className={cn(styles.scrollable, scrollbarClassName)}\n verticalBarClassName={cn(styles.verticalBar, {\n [styles.verticalBarWithHeader]: Boolean(header),\n [styles.verticalBarWithFooter]: Boolean(footer),\n })}\n ref={scrollbarRef}\n style={{ height }}\n horizontalAutoStretch={optionsListWidth === 'content'}\n scrollableNodeProps={scrollableNodeProps}\n contentNodeProps={{ ref: listRef }}\n maskProps={{\n /*\n * Для корректного подсчета высоты опций(иначе для optionsListWidth: 'field'\n * высота опции всегда будет равна высоте одной строчки)\n */\n className: cn({\n [styles.mask]: optionsListWidth === 'content' && !measured,\n }),\n }}\n >\n {renderListItems()}\n </Scrollbar>\n );\n };\n\n const renderWithNativeScrollbar = () => (\n <div\n className={cn(styles.scrollable, scrollbarClassName)}\n ref={mergeRefs([listRef, ref])}\n onScroll={handleScroll}\n style={{ height }}\n >\n {renderListItems()}\n </div>\n );\n\n const resetHighlightedIndex = () => setHighlightedIndex?.(-1);\n\n return (\n <div\n {...(nativeScrollbar && { 'data-test-id': dataTestId })}\n className={cn(styles.optionsList, styles[SIZE_TO_CLASSNAME_MAP[size]], className)}\n >\n {header && (\n <div\n className={cn(styles.optionsListHeader, {\n [styles.headerHighlighted]: !scrollTop,\n })}\n onMouseEnter={resetHighlightedIndex}\n >\n {header}\n </div>\n )}\n\n {nativeScrollbar ? renderWithNativeScrollbar() : renderWithCustomScrollbar()}\n\n {showFooter && footer && (\n <div\n onMouseEnter={resetHighlightedIndex}\n className={cn(styles.optionsListFooter, footerClassName, {\n [styles.withBorder]:\n visibleOptions &&\n flatOptions.length > visibleOptions &&\n !scrollBottom,\n })}\n >\n {footer}\n </div>\n )}\n </div>\n );\n },\n);\n"],"names":["forwardRef","DefaultOptgroup","DEFAULT_VISIBLE_OPTIONS","useState","useNativeScrollbar","useCallback","React","__assign","useRef","useVisibleOptions","isGroup","styles","Scrollbar","cn","mergeRefs","SIZE_TO_CLASSNAME_MAP"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAcA,IAAM,aAAa,GAAG,YAAA;IAClB,IAAI,KAAK,GAAG,CAAC;;AAGb,IAAA,OAAO,cAAM,OAAA,KAAK,EAAE,CAAA,EAAA;AACxB,CAAC;IAEY,WAAW,GAAGA,gBAAU,CACjC,UACI,EA6BC,EACD,GAAG,EAAA;;QA7BC,EAAS,GAAA,EAAA,CAAA,IAAA,EAAT,IAAI,GAAA,EAAA,KAAA,MAAA,GAAG,EAAE,GAAA,EAAA,EACT,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,oBAAoB,GAAA,EAAA,CAAA,oBAAA,EACpB,eAAe,GAAA,EAAA,CAAA,eAAA,EACf,kBAAkB,GAAA,EAAA,CAAA,kBAAA,EAClB,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,EAAA,GAAA,EAAA,CAAA,gBAAqB,EAArB,gBAAgB,mBAAG,EAAE,GAAA,EAAA,EACrB,EAAA,GAAA,EAAA,CAAA,OAAY,EAAZ,OAAO,mBAAG,EAAE,GAAA,EAAA,EACZ,EAAA,GAAA,EAAA,CAAA,QAA0B,EAA1B,QAAQ,mBAAGC,kBAAe,GAAA,EAAA,EAC1B,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,gBAAgB,GAAA,EAAA,CAAA,gBAAA,EAChB,EAAA,GAAA,EAAA,CAAA,cAAwC,EAAxC,cAAc,GAAG,EAAA,KAAA,MAAA,GAAAC,8BAAuB,KAAA,EACxC,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,kBAAiB,EAAjB,UAAU,GAAG,EAAA,KAAA,MAAA,GAAA,IAAI,GAAA,EAAA,EACjB,gBAAgB,GAAA,EAAA,CAAA,gBAAA,EACC,mBAAmB,GAAA,EAAA,CAAA,eAAA,EACpC,EAAgB,GAAA,EAAA,CAAA,WAAA,EAAhB,WAAW,GAAG,EAAA,KAAA,MAAA,GAAA,EAAE,GAAA,EAAA,EAChB,mBAAmB,GAAA,EAAA,CAAA,mBAAA,EACnB,aAAa,GAAA,EAAA,CAAA,aAAA,EACb,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,gBAAgB,sBAAA,EAChB,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,EAAmC,GAAA,EAAA,CAAA,2BAAA,EAAnC,2BAA2B,GAAA,EAAA,KAAA,MAAA,GAAG,KAAK,GAAA,EAAA,EACnC,MAAM,GAAA,EAAA,CAAA,MAAA;IAIJ,IAAA,EAAA,GAA4BC,cAAQ,CAAC,IAAI,CAAC,EAAzC,SAAS,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,YAAY,GAAA,EAAA,CAAA,CAAA,CAAkB;IAC1C,IAAA,EAAA,GAAkCA,cAAQ,CAAC,KAAK,CAAC,EAAhD,YAAY,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,eAAe,GAAA,EAAA,CAAA,CAAA,CAAmB;IAEvD,IAAM,eAAe,GAAGC,qCAAkB,CAAC;AACvC,QAAA,eAAe,EAAE,mBAAmB;AACpC,QAAA,MAAM,EAAA,MAAA;AACT,KAAA,CAAC;AAEF,IAAA,IAAM,YAAY,GAAGC,iBAAW,CAC5B,UAAC,KAAmD,EAAA;QAChD,IAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,IAAI,CAAC;AAC3D,QAAA,IAAM,gBAAgB,GAClB,KAAK,CAAC,aAAa,CAAC,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,YAAY;AACnE,YAAA,KAAK,CAAC,aAAa,CAAC,SAAS;QAEjC,YAAY,CAAC,gBAAgB,CAAC;QAC9B,eAAe,CAAC,gBAAgB,CAAC;AAEjC,QAAA,QAAQ,aAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,CAAG,KAAK,CAAC;AACrB,KAAC,EACD,CAAC,QAAQ,CAAC,CACb;AAED,IAAA,IAAM,YAAY,GAAG,UAAC,MAAmB,EAAE,KAAa,EAAK,EAAA,QACzDC,sBAAA,CAAA,aAAA,CAAC,MAAM,EAAAC,cAAA,CAAA,EAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAA,EAAM,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAI,CAAA,EADL,EAE5D;AAED,IAAA,IAAM,OAAO,GAAGC,YAAM,CAAiB,IAAI,CAAC;AAC5C,IAAA,IAAM,YAAY,GAAGA,YAAM,CAAiB,IAAI,CAAC;AACjD,IAAA,IAAM,OAAO,GAAG,aAAa,EAAE;IAC/B,IAAM,WAAW,GAAG,UAAC,KAAiB,EAAA;QAClC,IAAM,kBAAkB,GAAG,aAAa,KAAb,IAAA,IAAA,aAAa,KAAb,MAAA,GAAA,MAAA,GAAA,aAAa,CAAE,MAAM,CAAC,UAAC,EAAwB,EAAA;AAAjB,YAAA,IAAA,eAAe,GAAA,EAAA,CAAA,GAAA;AACpE,YAAA,OAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,MAAM,EAAK,EAAA,OAAA,MAAM,CAAC,GAAG,KAAK,eAAe,CAAA,EAAA,CAAC;AAA9D,SAA8D,CACjE;QACD,IAAM,mBAAmB,GAAG,UAAC,KAAoB,EAAA;;AAC7C,YAAA,gBAAgB,CACZ,CACI,CAAA,EAAA,GAAA,aAAa,KAAb,IAAA,IAAA,aAAa,KAAb,MAAA,GAAA,MAAA,GAAA,aAAa,CAAE,MAAM,CACjB,UAAC,EAAwB,EAAA;AAAjB,gBAAA,IAAA,eAAe,GAAA,EAAA,CAAA,GAAA;AACnB,gBAAA,OAAA,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,MAAM,EAAK,EAAA,OAAA,MAAM,CAAC,GAAG,KAAK,eAAe,CAAA,EAAA,CAAC;aAAA,CACtE,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,EAAE,EACT,MAAM,CAAC,KAAK,CAAC,CAClB;AACL,SAAC;AAED,QAAA,QACIF,sBAAA,CAAA,aAAA,CAAC,QAAQ,EAAAC,cAAA,CAAA,EACL,SAAS,EAAE,oBAAoB,EAC/B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,GAAG,EAAE,KAAK,CAAC,KAAK,EAChB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,aAAa,EAAE,kBAAkB,EACjC,gBAAgB,EAAE,mBAAmB,EACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAAA,EACd,gBAAgB,CAAA,EAEnB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,EAAA,EAAK,OAAA,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAA/B,EAA+B,CAAC,CACxD;AAEnB,KAAC;IAED,IAAM,kBAAkB,GAAG,2BAA2B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;IAEtE,IAAA,EAAA,GAAqBE,uBAAiB,CAAC;AACzC,QAAA,cAAc,EAAA,cAAA;AACd,QAAA,OAAO,EAAA,OAAA;AACP,QAAA,IAAI,EAAA,IAAA;AACJ,QAAA,OAAO,EAAA,OAAA;AACP,QAAA,kBAAkB,EAAA,kBAAA;AAClB,QAAA,IAAI,EAAE;AACF,cAAE,CAAC,YAAA;gBACG,QAAQ,OAAO,IAAI;AACf,oBAAA,KAAK,QAAQ;AACT,wBAAA,MAAM,IAAI,KAAK,CACX,wFAAwF,CAC3F;AACL,oBAAA;AACI,wBAAA,OAAO,IAAI;AAClB;AACL,aAAC;AACH,cAAE,SAAS;AAClB,KAAA,CAAC,EAlBK,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,MAAM,QAkBrB;AAEF,IAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE;AACjE,QAAA,OAAO,IAAI;AACd;IAED,IAAM,eAAe,GAAG,YAAM,EAAA,QAC1BH,sBAAC,CAAA,aAAA,CAAAA,sBAAK,CAAC,QAAQ,EAAA,IAAA;AACV,QAAA,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,EAAA;YAChB,OAAAI,aAAO,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAAvE,SAAuE,CAC1E;QAEA,gBAAgB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,KACrCJ,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEK,YAAM,CAAC,gBAAgB,IAAG,gBAAgB,CAAO,CACpE,CACY,EATS,EAU7B;AAED,IAAA,IAAM,yBAAyB,GAAG,YAAA;;AAC9B,QAAA,IAAM,mBAAmB,GAAG;AACxB,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,GAAG,EAAE,GAAsC;SAC9C;QAED,QACIL,qCAACM,iCAAS,EAAA,EACN,SAAS,EAAEC,mBAAE,CAACF,YAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,EACpD,oBAAoB,EAAEE,mBAAE,CAACF,YAAM,CAAC,WAAW,GAAA,EAAA,GAAA,EAAA;AACvC,gBAAA,EAAA,CAACA,YAAM,CAAC,qBAAqB,IAAG,OAAO,CAAC,MAAM,CAAC;AAC/C,gBAAA,EAAA,CAACA,YAAM,CAAC,qBAAqB,IAAG,OAAO,CAAC,MAAM,CAAC;AACjD,gBAAA,EAAA,EAAA,EACF,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,EAAE,MAAM,EAAA,MAAA,EAAE,EACjB,qBAAqB,EAAE,gBAAgB,KAAK,SAAS,EACrD,mBAAmB,EAAE,mBAAmB,EACxC,gBAAgB,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAClC,SAAS,EAAE;AACP;;;AAGG;AACH,gBAAA,SAAS,EAAEE,mBAAE,EAAA,EAAA,GAAA,EAAA;oBACT,EAAC,CAAAF,YAAM,CAAC,IAAI,CAAA,GAAG,gBAAgB,KAAK,SAAS,IAAI,CAAC,QAAQ;AAC5D,oBAAA,EAAA,EAAA;AACL,aAAA,EAAA,EAEA,eAAe,EAAE,CACV;AAEpB,KAAC;IAED,IAAM,yBAAyB,GAAG,YAAM,EAAA,QACpCL,sBACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEO,mBAAE,CAACF,YAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,EACpD,GAAG,EAAEG,0BAAS,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAC9B,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,EAAE,MAAM,EAAA,MAAA,EAAE,EAEhB,EAAA,eAAe,EAAE,CAChB,EAR8B,EASvC;AAED,IAAA,IAAM,qBAAqB,GAAG,YAAM,EAAA,OAAA,mBAAmB,KAAnB,IAAA,IAAA,mBAAmB,KAAnB,MAAA,GAAA,MAAA,GAAA,mBAAmB,CAAG,EAAE,CAAC,CAAA,EAAA;AAE7D,IAAA,QACIR,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAAC,cAAA,CAAA,EAAA,GACS,eAAe,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,GAAC,EACvD,SAAS,EAAEM,mBAAE,CAACF,YAAM,CAAC,WAAW,EAAEA,YAAM,CAACI,4BAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,EAAA,CAAA;QAEhF,MAAM,KACHT,sBACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEO,mBAAE,CAACF,YAAM,CAAC,iBAAiB,GAAA,EAAA,GAAA,EAAA;AAClC,gBAAA,EAAA,CAACA,YAAM,CAAC,iBAAiB,CAAA,GAAG,CAAC,SAAS;AACxC,gBAAA,EAAA,EAAA,EACF,YAAY,EAAE,qBAAqB,EAElC,EAAA,MAAM,CACL,CACT;QAEA,eAAe,GAAG,yBAAyB,EAAE,GAAG,yBAAyB,EAAE;AAE3E,QAAA,UAAU,IAAI,MAAM,KACjBL,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,YAAY,EAAE,qBAAqB,EACnC,SAAS,EAAEO,mBAAE,CAACF,YAAM,CAAC,iBAAiB,EAAE,eAAe,GAAA,EAAA,GAAA,EAAA;AACnD,gBAAA,EAAA,CAACA,YAAM,CAAC,UAAU,CAAA,GACd,cAAc;oBACd,WAAW,CAAC,MAAM,GAAG,cAAc;AACnC,oBAAA,CAAC,YAAY;AACnB,gBAAA,EAAA,EAAA,EAAA,EAED,MAAM,CACL,CACT,CACC;AAEd,CAAC;;;;"}
@@ -10,34 +10,47 @@
10
10
  --gap-16: var(--gap-m);
11
11
  --gap-24: var(--gap-xl);
12
12
  } :root {
13
+ --select-options-list-scrollbar-gap: var(--gap-12);
13
14
  --select-options-list-empty-placeholder-color: var(--color-light-text-secondary);
14
- } .select__optionsList_6zwqx {
15
+ } .select__optionsList_1qcq8 {
15
16
  width: 100%;
16
17
  outline: none;
17
18
  box-sizing: border-box;
18
19
  position: relative;
19
- } .select__optionsListHeader_6zwqx {
20
+ } .select__optionsList_1qcq8 .select__scrollable_1qcq8 {
21
+ overflow: auto;
22
+ width: 100%;
23
+ } .select__optionsList_1qcq8 .select__scrollable_1qcq8 .select__verticalBar_1qcq8.select__verticalBar_1qcq8 {
24
+ top: var(--select-options-list-scrollbar-gap);
25
+ height: calc(100% - 2 * var(--select-options-list-scrollbar-gap));
26
+ } .select__optionsList_1qcq8 .select__scrollable_1qcq8 .select__verticalBar_1qcq8.select__verticalBar_1qcq8.select__verticalBarWithHeader_1qcq8 {
27
+ top: 0;
28
+ height: calc(100% - var(--select-options-list-scrollbar-gap));
29
+ } .select__optionsList_1qcq8 .select__scrollable_1qcq8 .select__verticalBar_1qcq8.select__verticalBar_1qcq8.select__verticalBarWithFooter_1qcq8 {
30
+ top: var(--select-options-list-scrollbar-gap);
31
+ height: calc(100% - var(--select-options-list-scrollbar-gap));
32
+ } .select__optionsList_1qcq8 .select__scrollable_1qcq8 .select__verticalBar_1qcq8.select__verticalBar_1qcq8.select__verticalBarWithHeader_1qcq8.select__verticalBarWithFooter_1qcq8 {
33
+ top: 0;
34
+ height: 100%;
35
+ } .select__optionsListHeader_1qcq8 {
20
36
  box-sizing: border-box;
21
37
  border-bottom: 1px solid transparent;
22
38
  transition: border-color 0.2s ease;
23
- } .select__optionsListHeader_6zwqx.select__headerHighlighted_6zwqx {
39
+ } .select__optionsListHeader_1qcq8.select__headerHighlighted_1qcq8 {
24
40
  border-bottom-color: var(--color-light-neutral-300);
25
- } .select__optionsListFooter_6zwqx {
41
+ } .select__optionsListFooter_1qcq8 {
26
42
  position: sticky;
27
43
  bottom: var(--gap-0);
28
44
  box-sizing: border-box;
29
45
  border-top: 1px solid transparent;
30
46
  transition: border-color 0.2s ease;
31
- } .select__optionsListFooter_6zwqx.select__withBorder_6zwqx {
47
+ } .select__optionsListFooter_1qcq8.select__withBorder_1qcq8 {
32
48
  border-top-color: var(--color-light-neutral-300);
33
- } .select__scrollable_6zwqx {
34
- overflow: auto;
35
- width: 100%;
36
- } .select__mask_6zwqx {
49
+ } .select__mask_1qcq8 {
37
50
  min-width: 4000px;
38
- } .select__emptyPlaceholder_6zwqx {
51
+ } .select__emptyPlaceholder_1qcq8 {
39
52
  padding: var(--gap-16) var(--gap-12);
40
53
  color: var(--select-options-list-empty-placeholder-color);
41
- } .select__size-72_6zwqx .select__emptyPlaceholder_6zwqx {
54
+ } .select__size-72_1qcq8 .select__emptyPlaceholder_1qcq8 {
42
55
  padding: var(--gap-24) var(--gap-16);
43
56
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"optionsList":"select__optionsList_6zwqx","optionsListHeader":"select__optionsListHeader_6zwqx","headerHighlighted":"select__headerHighlighted_6zwqx","optionsListFooter":"select__optionsListFooter_6zwqx","withBorder":"select__withBorder_6zwqx","scrollable":"select__scrollable_6zwqx","mask":"select__mask_6zwqx","emptyPlaceholder":"select__emptyPlaceholder_6zwqx","size-72":"select__size-72_6zwqx"};
5
+ var styles = {"optionsList":"select__optionsList_1qcq8","scrollable":"select__scrollable_1qcq8","verticalBar":"select__verticalBar_1qcq8","verticalBarWithHeader":"select__verticalBarWithHeader_1qcq8","verticalBarWithFooter":"select__verticalBarWithFooter_1qcq8","optionsListHeader":"select__optionsListHeader_1qcq8","headerHighlighted":"select__headerHighlighted_1qcq8","optionsListFooter":"select__optionsListFooter_1qcq8","withBorder":"select__withBorder_1qcq8","mask":"select__mask_1qcq8","emptyPlaceholder":"select__emptyPlaceholder_1qcq8","size-72":"select__size-72_1qcq8"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["../../src/components/options-list/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n@import '../../vars.css';\n\n.optionsList {\n width: 100%;\n outline: none;\n box-sizing: border-box;\n position: relative;\n}\n\n.optionsListHeader {\n box-sizing: border-box;\n border-bottom: 1px solid transparent;\n transition: border-color 0.2s ease;\n\n &.headerHighlighted {\n border-bottom-color: var(--color-light-neutral-300);\n }\n}\n\n.optionsListFooter {\n position: sticky;\n bottom: var(--gap-0);\n box-sizing: border-box;\n border-top: 1px solid transparent;\n transition: border-color 0.2s ease;\n\n &.withBorder {\n border-top-color: var(--color-light-neutral-300);\n }\n}\n\n.scrollable {\n overflow: auto;\n width: 100%;\n}\n\n.mask {\n min-width: 4000px;\n}\n\n.emptyPlaceholder {\n padding: var(--gap-16) var(--gap-12);\n color: var(--select-options-list-empty-placeholder-color);\n}\n\n.size-72 .emptyPlaceholder {\n padding: var(--gap-24) var(--gap-16);\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,aAAa,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,YAAY,CAAC,0BAA0B,CAAC,YAAY,CAAC,0BAA0B,CAAC,MAAM,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,gCAAgC,CAAC,SAAS,CAAC,uBAAuB,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/options-list/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n@import '../../vars.css';\n\n.optionsList {\n width: 100%;\n outline: none;\n box-sizing: border-box;\n position: relative;\n\n & .scrollable {\n overflow: auto;\n width: 100%;\n\n & .verticalBar.verticalBar {\n top: var(--select-options-list-scrollbar-gap);\n height: calc(100% - 2 * var(--select-options-list-scrollbar-gap));\n\n &.verticalBarWithHeader {\n top: 0;\n height: calc(100% - var(--select-options-list-scrollbar-gap));\n }\n\n &.verticalBarWithFooter {\n top: var(--select-options-list-scrollbar-gap);\n height: calc(100% - var(--select-options-list-scrollbar-gap));\n }\n\n &.verticalBarWithHeader.verticalBarWithFooter {\n top: 0;\n height: 100%;\n }\n }\n }\n}\n\n.optionsListHeader {\n box-sizing: border-box;\n border-bottom: 1px solid transparent;\n transition: border-color 0.2s ease;\n\n &.headerHighlighted {\n border-bottom-color: var(--color-light-neutral-300);\n }\n}\n\n.optionsListFooter {\n position: sticky;\n bottom: var(--gap-0);\n box-sizing: border-box;\n border-top: 1px solid transparent;\n transition: border-color 0.2s ease;\n\n &.withBorder {\n border-top-color: var(--color-light-neutral-300);\n }\n}\n\n.mask {\n min-width: 4000px;\n}\n\n.emptyPlaceholder {\n padding: var(--gap-16) var(--gap-12);\n color: var(--select-options-list-empty-placeholder-color);\n}\n\n.size-72 .emptyPlaceholder {\n padding: var(--gap-24) var(--gap-16);\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,aAAa,CAAC,2BAA2B,CAAC,YAAY,CAAC,0BAA0B,CAAC,aAAa,CAAC,2BAA2B,CAAC,uBAAuB,CAAC,qCAAqC,CAAC,uBAAuB,CAAC,qCAAqC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,YAAY,CAAC,0BAA0B,CAAC,MAAM,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,gCAAgC,CAAC,SAAS,CAAC,uBAAuB,CAAC;;;;"}
@@ -1,3 +1,3 @@
1
- .select__component_16ak6.select__component_16ak6 {
1
+ .select__component_1m3en.select__component_1m3en {
2
2
  width: auto;
3
3
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"component":"select__component_16ak6"};
5
+ var styles = {"component":"select__component_1m3en"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -17,35 +17,35 @@
17
17
 
18
18
  --select-option-left-padding: var(--gap-12);
19
19
  --select-option-right-padding: var(--gap-12);
20
- } .select__virtualOptionsList_yyfv8 {
20
+ } .select__virtualOptionsList_1e2us {
21
21
  width: 100%;
22
22
  outline: none;
23
23
  box-sizing: border-box;
24
24
  position: sticky;
25
25
  justify-content: space-between;
26
- } .select__virtualOptionsListHeader_yyfv8 {
26
+ } .select__virtualOptionsListHeader_1e2us {
27
27
  box-sizing: border-box;
28
28
  border-bottom: 1px solid var(--color-light-neutral-300);
29
- } .select__virtualOptionsListFooter_yyfv8 {
29
+ } .select__virtualOptionsListFooter_1e2us {
30
30
  position: sticky;
31
31
  bottom: var(--gap-0);
32
32
  box-sizing: border-box;
33
33
  border-top: 1px solid transparent;
34
- } .select__virtualOptionsListFooter_yyfv8.select__withBorder_yyfv8 {
34
+ } .select__virtualOptionsListFooter_1e2us.select__withBorder_1e2us {
35
35
  border-top: 1px solid var(--color-light-neutral-300);
36
- } .select__scrollable_yyfv8 {
36
+ } .select__scrollable_1e2us {
37
37
  position: relative;
38
38
  overflow: auto;
39
39
  width: 100%;
40
- } .select__inner_yyfv8 {
40
+ } .select__inner_1e2us {
41
41
  position: relative;
42
42
  width: 100%;
43
- } .select__virtualRow_yyfv8 {
43
+ } .select__virtualRow_1e2us {
44
44
  position: absolute;
45
45
  top: var(--gap-0);
46
46
  left: var(--gap-0);
47
47
  width: 100%;
48
- } .select__virtualRow_yyfv8:before {
48
+ } .select__virtualRow_1e2us:before {
49
49
  content: '';
50
50
  position: absolute;
51
51
  z-index: 1;
@@ -55,15 +55,15 @@
55
55
  height: 1px;
56
56
  background: var(--select-option-divider-background);
57
57
  display: var(--select-option-divider-display);
58
- } .select__virtualRow_yyfv8:first-child:before {
58
+ } .select__virtualRow_1e2us:first-child:before {
59
59
  display: none;
60
- } .select__highlighted_yyfv8:before,
61
- .select__highlighted_yyfv8 + .select__virtualRow_yyfv8:before {
60
+ } .select__highlighted_1e2us:before,
61
+ .select__highlighted_1e2us + .select__virtualRow_1e2us:before {
62
62
  display: none;
63
- } .select__emptyPlaceholder_yyfv8 {
63
+ } .select__emptyPlaceholder_1e2us {
64
64
  padding: var(--gap-16) var(--gap-12);
65
65
  color: var(--select-options-list-empty-placeholder-color);
66
66
  flex: 1;
67
- } .select__size-72_yyfv8 .select__emptyPlaceholder_yyfv8 {
67
+ } .select__size-72_1e2us .select__emptyPlaceholder_1e2us {
68
68
  padding: var(--gap-24) var(--gap-16);
69
69
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"virtualOptionsList":"select__virtualOptionsList_yyfv8","virtualOptionsListHeader":"select__virtualOptionsListHeader_yyfv8","virtualOptionsListFooter":"select__virtualOptionsListFooter_yyfv8","withBorder":"select__withBorder_yyfv8","scrollable":"select__scrollable_yyfv8","inner":"select__inner_yyfv8","virtualRow":"select__virtualRow_yyfv8","highlighted":"select__highlighted_yyfv8","emptyPlaceholder":"select__emptyPlaceholder_yyfv8","size-72":"select__size-72_yyfv8"};
5
+ var styles = {"virtualOptionsList":"select__virtualOptionsList_1e2us","virtualOptionsListHeader":"select__virtualOptionsListHeader_1e2us","virtualOptionsListFooter":"select__virtualOptionsListFooter_1e2us","withBorder":"select__withBorder_1e2us","scrollable":"select__scrollable_1e2us","inner":"select__inner_1e2us","virtualRow":"select__virtualRow_1e2us","highlighted":"select__highlighted_1e2us","emptyPlaceholder":"select__emptyPlaceholder_1e2us","size-72":"select__size-72_1e2us"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -6,9 +6,9 @@
6
6
  0 20px 24px rgba(0, 0, 0, 0.08), 0 12px 16px rgba(0, 0, 0, 0.04),
7
7
  0 4px 8px rgba(0, 0, 0, 0.04), 0 0 1px rgba(0, 0, 0, 0.04);
8
8
  } :root {
9
- --border-radius-m: 8px;
9
+ --border-radius-xl: 16px;
10
10
  --border-radius-0: 0;
11
- --border-radius-8: var(--border-radius-m);
11
+ --border-radius-16: var(--border-radius-xl);
12
12
  } :root {
13
13
  --gap-2xs: 4px;
14
14
  --gap-s: 12px;
@@ -19,7 +19,7 @@
19
19
  --gap-16: var(--gap-m);
20
20
  } :root {
21
21
 
22
- --select-options-list-border-radius: var(--border-radius-8);
22
+ --select-options-list-border-radius: var(--border-radius-16);
23
23
  --select-options-list-box-shadow: var(--shadow-m);
24
24
  --select-options-list-offset: var(--gap-4);
25
25
  --select-options-list-top-padding: var(--gap-0);
@@ -87,20 +87,23 @@ var OptionsList = React.forwardRef(function (_a, ref) {
87
87
  }),
88
88
  emptyPlaceholder && options.length === 0 && (React__default.default.createElement("div", { className: styles__default.default.emptyPlaceholder }, emptyPlaceholder)))); };
89
89
  var renderWithCustomScrollbar = function () {
90
- var _a;
90
+ var _a, _b;
91
91
  var scrollableNodeProps = {
92
92
  onScroll: handleScroll,
93
93
  'data-test-id': dataTestId,
94
94
  ref: ref,
95
95
  };
96
- return (React__default.default.createElement(cssm.Scrollbar, { className: cn__default.default(styles__default.default.scrollable, scrollbarClassName), ref: scrollbarRef, style: { height: height }, horizontalAutoStretch: optionsListWidth === 'content', scrollableNodeProps: scrollableNodeProps, contentNodeProps: { ref: listRef }, maskProps: {
96
+ return (React__default.default.createElement(cssm.Scrollbar, { className: cn__default.default(styles__default.default.scrollable, scrollbarClassName), verticalBarClassName: cn__default.default(styles__default.default.verticalBar, (_a = {},
97
+ _a[styles__default.default.verticalBarWithHeader] = Boolean(header),
98
+ _a[styles__default.default.verticalBarWithFooter] = Boolean(footer),
99
+ _a)), ref: scrollbarRef, style: { height: height }, horizontalAutoStretch: optionsListWidth === 'content', scrollableNodeProps: scrollableNodeProps, contentNodeProps: { ref: listRef }, maskProps: {
97
100
  /*
98
101
  * Для корректного подсчета высоты опций(иначе для optionsListWidth: 'field'
99
102
  * высота опции всегда будет равна высоте одной строчки)
100
103
  */
101
- className: cn__default.default((_a = {},
102
- _a[styles__default.default.mask] = optionsListWidth === 'content' && !measured,
103
- _a)),
104
+ className: cn__default.default((_b = {},
105
+ _b[styles__default.default.mask] = optionsListWidth === 'content' && !measured,
106
+ _b)),
104
107
  } }, renderListItems()));
105
108
  };
106
109
  var renderWithNativeScrollbar = function () { return (React__default.default.createElement("div", { className: cn__default.default(styles__default.default.scrollable, scrollbarClassName), ref: mergeRefs__default.default([listRef, ref]), onScroll: handleScroll, style: { height: height } }, renderListItems())); };
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../../../src/components/options-list/Component.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useRef, useState } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { Scrollbar } from '@alfalab/core-components-scrollbar';\n\nimport { DEFAULT_VISIBLE_OPTIONS, SIZE_TO_CLASSNAME_MAP } from '../../consts';\nimport { useNativeScrollbar } from '../../hooks/use-native-scrollbar';\nimport { type GroupShape, type OptionShape, type OptionsListProps } from '../../typings';\nimport { isGroup, useVisibleOptions } from '../../utils';\nimport { Optgroup as DefaultOptgroup } from '../optgroup';\n\nimport styles from './index.module.css';\n\nconst createCounter = () => {\n let count = 0;\n\n // eslint-disable-next-line no-plusplus\n return () => count++;\n};\n\nexport const OptionsList = forwardRef<HTMLDivElement, OptionsListProps>(\n (\n {\n size = 48,\n className,\n optionGroupClassName,\n footerClassName,\n scrollbarClassName,\n Option,\n getOptionProps,\n groupOptionProps = {},\n options = [],\n Optgroup = DefaultOptgroup,\n dataTestId,\n emptyPlaceholder,\n visibleOptions = DEFAULT_VISIBLE_OPTIONS,\n onScroll,\n open,\n header,\n footer,\n showFooter = true,\n optionsListWidth,\n nativeScrollbar: nativeScrollbarProp,\n flatOptions = [],\n setHighlightedIndex,\n selectedItems,\n search,\n setSelectedItems,\n multiple,\n limitDynamicOptionGroupSize = false,\n client,\n },\n ref,\n ) => {\n const [scrollTop, setScrollTop] = useState(true);\n const [scrollBottom, setScrollBottom] = useState(false);\n\n const nativeScrollbar = useNativeScrollbar({\n nativeScrollbar: nativeScrollbarProp,\n client,\n });\n\n const handleScroll = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n const scrolledToHeader = event.currentTarget.scrollTop <= 0;\n const scrolledToFooter =\n event.currentTarget.scrollHeight - event.currentTarget.offsetHeight <=\n event.currentTarget.scrollTop;\n\n setScrollTop(scrolledToHeader);\n setScrollBottom(scrolledToFooter);\n\n onScroll?.(event);\n },\n [onScroll],\n );\n\n const renderOption = (option: OptionShape, index: number) => (\n <Option key={option.key} {...getOptionProps(option, index)} />\n );\n\n const listRef = useRef<HTMLDivElement>(null);\n const scrollbarRef = useRef<HTMLDivElement>(null);\n const counter = createCounter();\n const renderGroup = (group: GroupShape) => {\n const groupSelectedItems = selectedItems?.filter(({ key: selectedItemKey }) =>\n group.options.some((option) => option.key === selectedItemKey),\n );\n const handleSelectedItems = (items: OptionShape[]) => {\n setSelectedItems(\n (\n selectedItems?.filter(\n ({ key: selectedItemKey }) =>\n !group.options.some((option) => option.key === selectedItemKey),\n ) ?? []\n ).concat(items),\n );\n };\n\n return (\n <Optgroup\n className={optionGroupClassName}\n label={group.label}\n key={group.label}\n size={size}\n options={group.options}\n selectedItems={groupSelectedItems}\n setSelectedItems={handleSelectedItems}\n search={search}\n multiple={multiple}\n {...groupOptionProps}\n >\n {group.options.map((option) => renderOption(option, counter()))}\n </Optgroup>\n );\n };\n\n const actualOptionsCount = limitDynamicOptionGroupSize && options.length > 0;\n\n const [measured, height] = useVisibleOptions({\n visibleOptions,\n listRef,\n open,\n options,\n actualOptionsCount,\n size: actualOptionsCount\n ? (() => {\n switch (typeof size) {\n case 'string':\n throw new Error(\n 'OptionsList with `limitDynamicOptionGroupSize` enabled needs a `size` with number type',\n );\n default:\n return size;\n }\n })()\n : undefined,\n });\n\n if (options.length === 0 && !emptyPlaceholder && !header && !footer) {\n return null;\n }\n\n const renderListItems = () => (\n <React.Fragment>\n {options.map((option) =>\n isGroup(option) ? renderGroup(option) : renderOption(option, counter()),\n )}\n\n {emptyPlaceholder && options.length === 0 && (\n <div className={styles.emptyPlaceholder}>{emptyPlaceholder}</div>\n )}\n </React.Fragment>\n );\n\n const renderWithCustomScrollbar = () => {\n const scrollableNodeProps = {\n onScroll: handleScroll,\n 'data-test-id': dataTestId,\n ref: ref as React.RefObject<HTMLDivElement>,\n };\n\n return (\n <Scrollbar\n className={cn(styles.scrollable, scrollbarClassName)}\n ref={scrollbarRef}\n style={{ height }}\n horizontalAutoStretch={optionsListWidth === 'content'}\n scrollableNodeProps={scrollableNodeProps}\n contentNodeProps={{ ref: listRef }}\n maskProps={{\n /*\n * Для корректного подсчета высоты опций(иначе для optionsListWidth: 'field'\n * высота опции всегда будет равна высоте одной строчки)\n */\n className: cn({\n [styles.mask]: optionsListWidth === 'content' && !measured,\n }),\n }}\n >\n {renderListItems()}\n </Scrollbar>\n );\n };\n\n const renderWithNativeScrollbar = () => (\n <div\n className={cn(styles.scrollable, scrollbarClassName)}\n ref={mergeRefs([listRef, ref])}\n onScroll={handleScroll}\n style={{ height }}\n >\n {renderListItems()}\n </div>\n );\n\n const resetHighlightedIndex = () => setHighlightedIndex?.(-1);\n\n return (\n <div\n {...(nativeScrollbar && { 'data-test-id': dataTestId })}\n className={cn(styles.optionsList, styles[SIZE_TO_CLASSNAME_MAP[size]], className)}\n >\n {header && (\n <div\n className={cn(styles.optionsListHeader, {\n [styles.headerHighlighted]: !scrollTop,\n })}\n onMouseEnter={resetHighlightedIndex}\n >\n {header}\n </div>\n )}\n\n {nativeScrollbar ? renderWithNativeScrollbar() : renderWithCustomScrollbar()}\n\n {showFooter && footer && (\n <div\n onMouseEnter={resetHighlightedIndex}\n className={cn(styles.optionsListFooter, footerClassName, {\n [styles.withBorder]:\n visibleOptions &&\n flatOptions.length > visibleOptions &&\n !scrollBottom,\n })}\n >\n {footer}\n </div>\n )}\n </div>\n );\n },\n);\n"],"names":["forwardRef","DefaultOptgroup","DEFAULT_VISIBLE_OPTIONS","useState","useNativeScrollbar","useCallback","React","__assign","useRef","useVisibleOptions","isGroup","styles","Scrollbar","cn","mergeRefs","SIZE_TO_CLASSNAME_MAP"],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/options-list/Component.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useRef, useState } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { Scrollbar } from '@alfalab/core-components-scrollbar';\n\nimport { DEFAULT_VISIBLE_OPTIONS, SIZE_TO_CLASSNAME_MAP } from '../../consts';\nimport { useNativeScrollbar } from '../../hooks/use-native-scrollbar';\nimport { type GroupShape, type OptionShape, type OptionsListProps } from '../../typings';\nimport { isGroup, useVisibleOptions } from '../../utils';\nimport { Optgroup as DefaultOptgroup } from '../optgroup';\n\nimport styles from './index.module.css';\n\nconst createCounter = () => {\n let count = 0;\n\n // eslint-disable-next-line no-plusplus\n return () => count++;\n};\n\nexport const OptionsList = forwardRef<HTMLDivElement, OptionsListProps>(\n (\n {\n size = 48,\n className,\n optionGroupClassName,\n footerClassName,\n scrollbarClassName,\n Option,\n getOptionProps,\n groupOptionProps = {},\n options = [],\n Optgroup = DefaultOptgroup,\n dataTestId,\n emptyPlaceholder,\n visibleOptions = DEFAULT_VISIBLE_OPTIONS,\n onScroll,\n open,\n header,\n footer,\n showFooter = true,\n optionsListWidth,\n nativeScrollbar: nativeScrollbarProp,\n flatOptions = [],\n setHighlightedIndex,\n selectedItems,\n search,\n setSelectedItems,\n multiple,\n limitDynamicOptionGroupSize = false,\n client,\n },\n ref,\n ) => {\n const [scrollTop, setScrollTop] = useState(true);\n const [scrollBottom, setScrollBottom] = useState(false);\n\n const nativeScrollbar = useNativeScrollbar({\n nativeScrollbar: nativeScrollbarProp,\n client,\n });\n\n const handleScroll = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n const scrolledToHeader = event.currentTarget.scrollTop <= 0;\n const scrolledToFooter =\n event.currentTarget.scrollHeight - event.currentTarget.offsetHeight <=\n event.currentTarget.scrollTop;\n\n setScrollTop(scrolledToHeader);\n setScrollBottom(scrolledToFooter);\n\n onScroll?.(event);\n },\n [onScroll],\n );\n\n const renderOption = (option: OptionShape, index: number) => (\n <Option key={option.key} {...getOptionProps(option, index)} />\n );\n\n const listRef = useRef<HTMLDivElement>(null);\n const scrollbarRef = useRef<HTMLDivElement>(null);\n const counter = createCounter();\n const renderGroup = (group: GroupShape) => {\n const groupSelectedItems = selectedItems?.filter(({ key: selectedItemKey }) =>\n group.options.some((option) => option.key === selectedItemKey),\n );\n const handleSelectedItems = (items: OptionShape[]) => {\n setSelectedItems(\n (\n selectedItems?.filter(\n ({ key: selectedItemKey }) =>\n !group.options.some((option) => option.key === selectedItemKey),\n ) ?? []\n ).concat(items),\n );\n };\n\n return (\n <Optgroup\n className={optionGroupClassName}\n label={group.label}\n key={group.label}\n size={size}\n options={group.options}\n selectedItems={groupSelectedItems}\n setSelectedItems={handleSelectedItems}\n search={search}\n multiple={multiple}\n {...groupOptionProps}\n >\n {group.options.map((option) => renderOption(option, counter()))}\n </Optgroup>\n );\n };\n\n const actualOptionsCount = limitDynamicOptionGroupSize && options.length > 0;\n\n const [measured, height] = useVisibleOptions({\n visibleOptions,\n listRef,\n open,\n options,\n actualOptionsCount,\n size: actualOptionsCount\n ? (() => {\n switch (typeof size) {\n case 'string':\n throw new Error(\n 'OptionsList with `limitDynamicOptionGroupSize` enabled needs a `size` with number type',\n );\n default:\n return size;\n }\n })()\n : undefined,\n });\n\n if (options.length === 0 && !emptyPlaceholder && !header && !footer) {\n return null;\n }\n\n const renderListItems = () => (\n <React.Fragment>\n {options.map((option) =>\n isGroup(option) ? renderGroup(option) : renderOption(option, counter()),\n )}\n\n {emptyPlaceholder && options.length === 0 && (\n <div className={styles.emptyPlaceholder}>{emptyPlaceholder}</div>\n )}\n </React.Fragment>\n );\n\n const renderWithCustomScrollbar = () => {\n const scrollableNodeProps = {\n onScroll: handleScroll,\n 'data-test-id': dataTestId,\n ref: ref as React.RefObject<HTMLDivElement>,\n };\n\n return (\n <Scrollbar\n className={cn(styles.scrollable, scrollbarClassName)}\n verticalBarClassName={cn(styles.verticalBar, {\n [styles.verticalBarWithHeader]: Boolean(header),\n [styles.verticalBarWithFooter]: Boolean(footer),\n })}\n ref={scrollbarRef}\n style={{ height }}\n horizontalAutoStretch={optionsListWidth === 'content'}\n scrollableNodeProps={scrollableNodeProps}\n contentNodeProps={{ ref: listRef }}\n maskProps={{\n /*\n * Для корректного подсчета высоты опций(иначе для optionsListWidth: 'field'\n * высота опции всегда будет равна высоте одной строчки)\n */\n className: cn({\n [styles.mask]: optionsListWidth === 'content' && !measured,\n }),\n }}\n >\n {renderListItems()}\n </Scrollbar>\n );\n };\n\n const renderWithNativeScrollbar = () => (\n <div\n className={cn(styles.scrollable, scrollbarClassName)}\n ref={mergeRefs([listRef, ref])}\n onScroll={handleScroll}\n style={{ height }}\n >\n {renderListItems()}\n </div>\n );\n\n const resetHighlightedIndex = () => setHighlightedIndex?.(-1);\n\n return (\n <div\n {...(nativeScrollbar && { 'data-test-id': dataTestId })}\n className={cn(styles.optionsList, styles[SIZE_TO_CLASSNAME_MAP[size]], className)}\n >\n {header && (\n <div\n className={cn(styles.optionsListHeader, {\n [styles.headerHighlighted]: !scrollTop,\n })}\n onMouseEnter={resetHighlightedIndex}\n >\n {header}\n </div>\n )}\n\n {nativeScrollbar ? renderWithNativeScrollbar() : renderWithCustomScrollbar()}\n\n {showFooter && footer && (\n <div\n onMouseEnter={resetHighlightedIndex}\n className={cn(styles.optionsListFooter, footerClassName, {\n [styles.withBorder]:\n visibleOptions &&\n flatOptions.length > visibleOptions &&\n !scrollBottom,\n })}\n >\n {footer}\n </div>\n )}\n </div>\n );\n },\n);\n"],"names":["forwardRef","DefaultOptgroup","DEFAULT_VISIBLE_OPTIONS","useState","useNativeScrollbar","useCallback","React","__assign","useRef","useVisibleOptions","isGroup","styles","Scrollbar","cn","mergeRefs","SIZE_TO_CLASSNAME_MAP"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAcA,IAAM,aAAa,GAAG,YAAA;IAClB,IAAI,KAAK,GAAG,CAAC;;AAGb,IAAA,OAAO,cAAM,OAAA,KAAK,EAAE,CAAA,EAAA;AACxB,CAAC;IAEY,WAAW,GAAGA,gBAAU,CACjC,UACI,EA6BC,EACD,GAAG,EAAA;;QA7BC,EAAS,GAAA,EAAA,CAAA,IAAA,EAAT,IAAI,GAAA,EAAA,KAAA,MAAA,GAAG,EAAE,GAAA,EAAA,EACT,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,oBAAoB,GAAA,EAAA,CAAA,oBAAA,EACpB,eAAe,GAAA,EAAA,CAAA,eAAA,EACf,kBAAkB,GAAA,EAAA,CAAA,kBAAA,EAClB,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,EAAA,GAAA,EAAA,CAAA,gBAAqB,EAArB,gBAAgB,mBAAG,EAAE,GAAA,EAAA,EACrB,EAAA,GAAA,EAAA,CAAA,OAAY,EAAZ,OAAO,mBAAG,EAAE,GAAA,EAAA,EACZ,EAAA,GAAA,EAAA,CAAA,QAA0B,EAA1B,QAAQ,mBAAGC,kBAAe,GAAA,EAAA,EAC1B,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,gBAAgB,GAAA,EAAA,CAAA,gBAAA,EAChB,EAAA,GAAA,EAAA,CAAA,cAAwC,EAAxC,cAAc,GAAG,EAAA,KAAA,MAAA,GAAAC,8BAAuB,KAAA,EACxC,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,kBAAiB,EAAjB,UAAU,GAAG,EAAA,KAAA,MAAA,GAAA,IAAI,GAAA,EAAA,EACjB,gBAAgB,GAAA,EAAA,CAAA,gBAAA,EACC,mBAAmB,GAAA,EAAA,CAAA,eAAA,EACpC,EAAgB,GAAA,EAAA,CAAA,WAAA,EAAhB,WAAW,GAAG,EAAA,KAAA,MAAA,GAAA,EAAE,GAAA,EAAA,EAChB,mBAAmB,GAAA,EAAA,CAAA,mBAAA,EACnB,aAAa,GAAA,EAAA,CAAA,aAAA,EACb,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,gBAAgB,sBAAA,EAChB,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,EAAmC,GAAA,EAAA,CAAA,2BAAA,EAAnC,2BAA2B,GAAA,EAAA,KAAA,MAAA,GAAG,KAAK,GAAA,EAAA,EACnC,MAAM,GAAA,EAAA,CAAA,MAAA;IAIJ,IAAA,EAAA,GAA4BC,cAAQ,CAAC,IAAI,CAAC,EAAzC,SAAS,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,YAAY,GAAA,EAAA,CAAA,CAAA,CAAkB;IAC1C,IAAA,EAAA,GAAkCA,cAAQ,CAAC,KAAK,CAAC,EAAhD,YAAY,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,eAAe,GAAA,EAAA,CAAA,CAAA,CAAmB;IAEvD,IAAM,eAAe,GAAGC,qCAAkB,CAAC;AACvC,QAAA,eAAe,EAAE,mBAAmB;AACpC,QAAA,MAAM,EAAA,MAAA;AACT,KAAA,CAAC;AAEF,IAAA,IAAM,YAAY,GAAGC,iBAAW,CAC5B,UAAC,KAAmD,EAAA;QAChD,IAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,IAAI,CAAC;AAC3D,QAAA,IAAM,gBAAgB,GAClB,KAAK,CAAC,aAAa,CAAC,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,YAAY;AACnE,YAAA,KAAK,CAAC,aAAa,CAAC,SAAS;QAEjC,YAAY,CAAC,gBAAgB,CAAC;QAC9B,eAAe,CAAC,gBAAgB,CAAC;AAEjC,QAAA,QAAQ,aAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,CAAG,KAAK,CAAC;AACrB,KAAC,EACD,CAAC,QAAQ,CAAC,CACb;AAED,IAAA,IAAM,YAAY,GAAG,UAAC,MAAmB,EAAE,KAAa,EAAK,EAAA,QACzDC,sBAAA,CAAA,aAAA,CAAC,MAAM,EAAAC,cAAA,CAAA,EAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAA,EAAM,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAI,CAAA,EADL,EAE5D;AAED,IAAA,IAAM,OAAO,GAAGC,YAAM,CAAiB,IAAI,CAAC;AAC5C,IAAA,IAAM,YAAY,GAAGA,YAAM,CAAiB,IAAI,CAAC;AACjD,IAAA,IAAM,OAAO,GAAG,aAAa,EAAE;IAC/B,IAAM,WAAW,GAAG,UAAC,KAAiB,EAAA;QAClC,IAAM,kBAAkB,GAAG,aAAa,KAAb,IAAA,IAAA,aAAa,KAAb,MAAA,GAAA,MAAA,GAAA,aAAa,CAAE,MAAM,CAAC,UAAC,EAAwB,EAAA;AAAjB,YAAA,IAAA,eAAe,GAAA,EAAA,CAAA,GAAA;AACpE,YAAA,OAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,MAAM,EAAK,EAAA,OAAA,MAAM,CAAC,GAAG,KAAK,eAAe,CAAA,EAAA,CAAC;AAA9D,SAA8D,CACjE;QACD,IAAM,mBAAmB,GAAG,UAAC,KAAoB,EAAA;;AAC7C,YAAA,gBAAgB,CACZ,CACI,CAAA,EAAA,GAAA,aAAa,KAAb,IAAA,IAAA,aAAa,KAAb,MAAA,GAAA,MAAA,GAAA,aAAa,CAAE,MAAM,CACjB,UAAC,EAAwB,EAAA;AAAjB,gBAAA,IAAA,eAAe,GAAA,EAAA,CAAA,GAAA;AACnB,gBAAA,OAAA,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,MAAM,EAAK,EAAA,OAAA,MAAM,CAAC,GAAG,KAAK,eAAe,CAAA,EAAA,CAAC;aAAA,CACtE,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,EAAE,EACT,MAAM,CAAC,KAAK,CAAC,CAClB;AACL,SAAC;AAED,QAAA,QACIF,sBAAA,CAAA,aAAA,CAAC,QAAQ,EAAAC,cAAA,CAAA,EACL,SAAS,EAAE,oBAAoB,EAC/B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,GAAG,EAAE,KAAK,CAAC,KAAK,EAChB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,aAAa,EAAE,kBAAkB,EACjC,gBAAgB,EAAE,mBAAmB,EACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAAA,EACd,gBAAgB,CAAA,EAEnB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,EAAA,EAAK,OAAA,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAA/B,EAA+B,CAAC,CACxD;AAEnB,KAAC;IAED,IAAM,kBAAkB,GAAG,2BAA2B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;IAEtE,IAAA,EAAA,GAAqBE,uBAAiB,CAAC;AACzC,QAAA,cAAc,EAAA,cAAA;AACd,QAAA,OAAO,EAAA,OAAA;AACP,QAAA,IAAI,EAAA,IAAA;AACJ,QAAA,OAAO,EAAA,OAAA;AACP,QAAA,kBAAkB,EAAA,kBAAA;AAClB,QAAA,IAAI,EAAE;AACF,cAAE,CAAC,YAAA;gBACG,QAAQ,OAAO,IAAI;AACf,oBAAA,KAAK,QAAQ;AACT,wBAAA,MAAM,IAAI,KAAK,CACX,wFAAwF,CAC3F;AACL,oBAAA;AACI,wBAAA,OAAO,IAAI;AAClB;AACL,aAAC;AACH,cAAE,SAAS;AAClB,KAAA,CAAC,EAlBK,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,MAAM,QAkBrB;AAEF,IAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE;AACjE,QAAA,OAAO,IAAI;AACd;IAED,IAAM,eAAe,GAAG,YAAM,EAAA,QAC1BH,sBAAC,CAAA,aAAA,CAAAA,sBAAK,CAAC,QAAQ,EAAA,IAAA;AACV,QAAA,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,EAAA;YAChB,OAAAI,aAAO,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAAvE,SAAuE,CAC1E;QAEA,gBAAgB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,KACrCJ,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEK,uBAAM,CAAC,gBAAgB,IAAG,gBAAgB,CAAO,CACpE,CACY,EATS,EAU7B;AAED,IAAA,IAAM,yBAAyB,GAAG,YAAA;;AAC9B,QAAA,IAAM,mBAAmB,GAAG;AACxB,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,GAAG,EAAE,GAAsC;SAC9C;QAED,QACIL,qCAACM,cAAS,EAAA,EACN,SAAS,EAAEC,mBAAE,CAACF,uBAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,EACpD,oBAAoB,EAAEE,mBAAE,CAACF,uBAAM,CAAC,WAAW,GAAA,EAAA,GAAA,EAAA;AACvC,gBAAA,EAAA,CAACA,uBAAM,CAAC,qBAAqB,IAAG,OAAO,CAAC,MAAM,CAAC;AAC/C,gBAAA,EAAA,CAACA,uBAAM,CAAC,qBAAqB,IAAG,OAAO,CAAC,MAAM,CAAC;AACjD,gBAAA,EAAA,EAAA,EACF,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,EAAE,MAAM,EAAA,MAAA,EAAE,EACjB,qBAAqB,EAAE,gBAAgB,KAAK,SAAS,EACrD,mBAAmB,EAAE,mBAAmB,EACxC,gBAAgB,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAClC,SAAS,EAAE;AACP;;;AAGG;AACH,gBAAA,SAAS,EAAEE,mBAAE,EAAA,EAAA,GAAA,EAAA;oBACT,EAAC,CAAAF,uBAAM,CAAC,IAAI,CAAA,GAAG,gBAAgB,KAAK,SAAS,IAAI,CAAC,QAAQ;AAC5D,oBAAA,EAAA,EAAA;AACL,aAAA,EAAA,EAEA,eAAe,EAAE,CACV;AAEpB,KAAC;IAED,IAAM,yBAAyB,GAAG,YAAM,EAAA,QACpCL,sBACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEO,mBAAE,CAACF,uBAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,EACpD,GAAG,EAAEG,0BAAS,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAC9B,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,EAAE,MAAM,EAAA,MAAA,EAAE,EAEhB,EAAA,eAAe,EAAE,CAChB,EAR8B,EASvC;AAED,IAAA,IAAM,qBAAqB,GAAG,YAAM,EAAA,OAAA,mBAAmB,KAAnB,IAAA,IAAA,mBAAmB,KAAnB,MAAA,GAAA,MAAA,GAAA,mBAAmB,CAAG,EAAE,CAAC,CAAA,EAAA;AAE7D,IAAA,QACIR,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAAC,cAAA,CAAA,EAAA,GACS,eAAe,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,GAAC,EACvD,SAAS,EAAEM,mBAAE,CAACF,uBAAM,CAAC,WAAW,EAAEA,uBAAM,CAACI,4BAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,EAAA,CAAA;QAEhF,MAAM,KACHT,sBACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEO,mBAAE,CAACF,uBAAM,CAAC,iBAAiB,GAAA,EAAA,GAAA,EAAA;AAClC,gBAAA,EAAA,CAACA,uBAAM,CAAC,iBAAiB,CAAA,GAAG,CAAC,SAAS;AACxC,gBAAA,EAAA,EAAA,EACF,YAAY,EAAE,qBAAqB,EAElC,EAAA,MAAM,CACL,CACT;QAEA,eAAe,GAAG,yBAAyB,EAAE,GAAG,yBAAyB,EAAE;AAE3E,QAAA,UAAU,IAAI,MAAM,KACjBL,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,YAAY,EAAE,qBAAqB,EACnC,SAAS,EAAEO,mBAAE,CAACF,uBAAM,CAAC,iBAAiB,EAAE,eAAe,GAAA,EAAA,GAAA,EAAA;AACnD,gBAAA,EAAA,CAACA,uBAAM,CAAC,UAAU,CAAA,GACd,cAAc;oBACd,WAAW,CAAC,MAAM,GAAG,cAAc;AACnC,oBAAA,CAAC,YAAY;AACnB,gBAAA,EAAA,EAAA,EAAA,EAED,MAAM,CACL,CACT,CACC;AAEd,CAAC;;;;"}
@@ -10,13 +10,29 @@
10
10
  --gap-16: var(--gap-m);
11
11
  --gap-24: var(--gap-xl);
12
12
  } :root {
13
+ --select-options-list-scrollbar-gap: var(--gap-12);
13
14
  --select-options-list-empty-placeholder-color: var(--color-light-text-secondary);
14
15
  } .optionsList {
15
16
  width: 100%;
16
17
  outline: none;
17
18
  box-sizing: border-box;
18
19
  position: relative;
19
- } .optionsListHeader {
20
+ } .optionsList .scrollable {
21
+ overflow: auto;
22
+ width: 100%;
23
+ } .optionsList .scrollable .verticalBar.verticalBar {
24
+ top: var(--select-options-list-scrollbar-gap);
25
+ height: calc(100% - 2 * var(--select-options-list-scrollbar-gap));
26
+ } .optionsList .scrollable .verticalBar.verticalBar.verticalBarWithHeader {
27
+ top: 0;
28
+ height: calc(100% - var(--select-options-list-scrollbar-gap));
29
+ } .optionsList .scrollable .verticalBar.verticalBar.verticalBarWithFooter {
30
+ top: var(--select-options-list-scrollbar-gap);
31
+ height: calc(100% - var(--select-options-list-scrollbar-gap));
32
+ } .optionsList .scrollable .verticalBar.verticalBar.verticalBarWithHeader.verticalBarWithFooter {
33
+ top: 0;
34
+ height: 100%;
35
+ } .optionsListHeader {
20
36
  box-sizing: border-box;
21
37
  border-bottom: 1px solid transparent;
22
38
  transition: border-color 0.2s ease;
@@ -30,10 +46,7 @@
30
46
  transition: border-color 0.2s ease;
31
47
  } .optionsListFooter.withBorder {
32
48
  border-top-color: var(--color-light-neutral-300);
33
- } .scrollable {
34
- overflow: auto;
35
- width: 100%;
36
- } .mask {
49
+ } .mask {
37
50
  min-width: 4000px;
38
51
  } .emptyPlaceholder {
39
52
  padding: var(--gap-16) var(--gap-12);
@@ -6,7 +6,7 @@
6
6
  } :root {
7
7
  --select-arrow-color: var(--color-light-neutral-translucent-700);
8
8
  --select-arrow-disabled-color: var(--color-light-neutral-translucent-500);
9
- } .select__arrow_1p3an {
9
+ } .select__arrow_12s2s {
10
10
  display: block;
11
11
  width: 24px;
12
12
  height: 24px;
@@ -15,13 +15,13 @@
15
15
  transition:
16
16
  transform 0.15s ease-in-out,
17
17
  opacity 0.2s ease;
18
- } .select__arrow_1p3an.select__disabled_1p3an {
18
+ } .select__arrow_12s2s.select__disabled_12s2s {
19
19
  color: var(--select-arrow-disabled-color);
20
- } .select__arrow_1p3an.select__size-40_1p3an {
20
+ } .select__arrow_12s2s.select__size-40_12s2s {
21
21
  width: auto;
22
22
  width: initial;
23
23
  height: auto;
24
24
  height: initial;
25
- } .select__open_1p3an {
25
+ } .select__open_12s2s {
26
26
  transform: var(--arrow-transform);
27
27
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- var styles = {"arrow":"select__arrow_1p3an","disabled":"select__disabled_1p3an","size-40":"select__size-40_1p3an","open":"select__open_1p3an"};
3
+ var styles = {"arrow":"select__arrow_12s2s","disabled":"select__disabled_12s2s","size-40":"select__size-40_12s2s","open":"select__open_12s2s"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -1,15 +1,15 @@
1
- .select__checkmark_5okzd {
1
+ .select__checkmark_zwaav {
2
2
  flex-shrink: 0;
3
3
  box-sizing: border-box;
4
- } .select__checkmark_5okzd.select__start_5okzd {
4
+ } .select__checkmark_zwaav.select__start_zwaav {
5
5
  align-self: start;
6
- } .select__checkmark_5okzd.select__center_5okzd {
6
+ } .select__checkmark_zwaav.select__center_zwaav {
7
7
  align-self: center;
8
- } .select__single_5okzd {
8
+ } .select__single_zwaav {
9
9
  display: flex;
10
10
  align-items: center;
11
11
  justify-content: center;
12
12
  opacity: 0;
13
- } .select__single_5okzd.select__selected_5okzd {
13
+ } .select__single_zwaav.select__selected_zwaav {
14
14
  opacity: 1;
15
15
  }