@alfalab/core-components-tabs 7.2.9 → 7.3.0

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 (143) hide show
  1. package/{Component-0d7ca9a7.d.ts → Component-3677ec46.d.ts} +10 -0
  2. package/{esm/Component.responsive-0d7ca9a7.d.ts → Component.responsive-3677ec46.d.ts} +4 -3
  3. package/components/primary-tablist/Component.d.ts +1 -1
  4. package/components/primary-tablist/Component.desktop.js +2 -2
  5. package/components/primary-tablist/Component.js +4 -3
  6. package/components/primary-tablist/Component.mobile.js +3 -3
  7. package/components/primary-tablist/Component.responsive.d.ts +1 -1
  8. package/components/primary-tablist/Component.responsive.js +4 -4
  9. package/components/primary-tablist/index.css +29 -29
  10. package/components/primary-tablist/mobile.css +32 -32
  11. package/components/scrollable-container/Component.js +1 -1
  12. package/components/scrollable-container/index.css +5 -5
  13. package/components/secondary-tablist/Component.desktop.js +2 -2
  14. package/components/secondary-tablist/Component.js +1 -1
  15. package/components/secondary-tablist/Component.mobile.js +3 -3
  16. package/components/secondary-tablist/Component.responsive.js +2 -2
  17. package/components/secondary-tablist/index.css +11 -11
  18. package/components/secondary-tablist/mobile.css +13 -13
  19. package/components/tab/Component.js +1 -1
  20. package/components/tab/index.css +3 -3
  21. package/components/tabs/Component.d.ts +1 -1
  22. package/components/tabs/Component.desktop.js +3 -3
  23. package/components/tabs/Component.js +2 -2
  24. package/components/tabs/Component.mobile.d.ts +1 -1
  25. package/components/tabs/Component.mobile.js +3 -3
  26. package/components/tabs/Component.responsive.js +3 -3
  27. package/components/title/Component.js +2 -2
  28. package/components/title/index.js +1 -1
  29. package/{esm/Component-0d7ca9a7.d.ts → cssm/Component-3677ec46.d.ts} +10 -0
  30. package/{Component.responsive-0d7ca9a7.d.ts → cssm/Component.responsive-3677ec46.d.ts} +4 -3
  31. package/cssm/components/primary-tablist/Component.d.ts +1 -1
  32. package/cssm/components/primary-tablist/Component.js +3 -2
  33. package/cssm/components/primary-tablist/Component.responsive.d.ts +1 -1
  34. package/cssm/components/primary-tablist/Component.responsive.js +2 -2
  35. package/cssm/components/tabs/Component.d.ts +1 -1
  36. package/cssm/components/tabs/Component.js +2 -2
  37. package/cssm/components/tabs/Component.mobile.d.ts +1 -1
  38. package/cssm/components/title/Component.js +1 -1
  39. package/cssm/hooks/use-collapsible-elements.js +5 -3
  40. package/cssm/hooks/use-tablist-titles.d.ts +1 -1
  41. package/cssm/hooks/use-tablist-titles.js +31 -7
  42. package/cssm/{index-0d7ca9a7.d.ts → index-3677ec46.d.ts} +2 -2
  43. package/cssm/typings.d.ts +5 -1
  44. package/desktop.js +3 -3
  45. package/{cssm/Component-0d7ca9a7.d.ts → esm/Component-3677ec46.d.ts} +10 -0
  46. package/{modern/Component.responsive-0d7ca9a7.d.ts → esm/Component.responsive-3677ec46.d.ts} +4 -3
  47. package/esm/components/primary-tablist/Component.d.ts +1 -1
  48. package/esm/components/primary-tablist/Component.desktop.js +2 -2
  49. package/esm/components/primary-tablist/Component.js +4 -3
  50. package/esm/components/primary-tablist/Component.mobile.js +3 -3
  51. package/esm/components/primary-tablist/Component.responsive.d.ts +1 -1
  52. package/esm/components/primary-tablist/Component.responsive.js +4 -4
  53. package/esm/components/primary-tablist/index.css +29 -29
  54. package/esm/components/primary-tablist/mobile.css +32 -32
  55. package/esm/components/scrollable-container/Component.js +1 -1
  56. package/esm/components/scrollable-container/index.css +5 -5
  57. package/esm/components/secondary-tablist/Component.desktop.js +2 -2
  58. package/esm/components/secondary-tablist/Component.js +1 -1
  59. package/esm/components/secondary-tablist/Component.mobile.js +3 -3
  60. package/esm/components/secondary-tablist/Component.responsive.js +2 -2
  61. package/esm/components/secondary-tablist/index.css +11 -11
  62. package/esm/components/secondary-tablist/mobile.css +13 -13
  63. package/esm/components/tab/Component.js +1 -1
  64. package/esm/components/tab/index.css +3 -3
  65. package/esm/components/tabs/Component.d.ts +1 -1
  66. package/esm/components/tabs/Component.desktop.js +3 -3
  67. package/esm/components/tabs/Component.js +2 -2
  68. package/esm/components/tabs/Component.mobile.d.ts +1 -1
  69. package/esm/components/tabs/Component.mobile.js +3 -3
  70. package/esm/components/tabs/Component.responsive.js +3 -3
  71. package/esm/components/title/Component.js +2 -2
  72. package/esm/components/title/index.js +1 -1
  73. package/esm/desktop.js +3 -3
  74. package/esm/hooks/use-collapsible-elements.js +6 -4
  75. package/esm/hooks/use-tablist-titles.d.ts +1 -1
  76. package/esm/hooks/use-tablist-titles.js +32 -8
  77. package/esm/{index-0d7ca9a7.d.ts → index-3677ec46.d.ts} +2 -2
  78. package/esm/index.js +3 -3
  79. package/esm/index.module-307739e4.js +4 -0
  80. package/esm/index.module-426df292.js +4 -0
  81. package/esm/mobile.js +3 -3
  82. package/esm/responsive.js +3 -3
  83. package/esm/synthetic-events.js +1 -1
  84. package/esm/{tslib.es6-013dc637.d.ts → tslib.es6-991a0924.d.ts} +0 -0
  85. package/esm/{tslib.es6-013dc637.js → tslib.es6-991a0924.js} +0 -0
  86. package/esm/typings.d.ts +5 -1
  87. package/hooks/use-collapsible-elements.js +6 -4
  88. package/hooks/use-tablist-titles.d.ts +1 -1
  89. package/hooks/use-tablist-titles.js +32 -8
  90. package/{index-0d7ca9a7.d.ts → index-3677ec46.d.ts} +2 -2
  91. package/index.js +3 -3
  92. package/index.module-5b87e23a.js +6 -0
  93. package/index.module-78610370.js +6 -0
  94. package/mobile.js +3 -3
  95. package/modern/{Component-0d7ca9a7.d.ts → Component-3677ec46.d.ts} +10 -0
  96. package/{cssm/Component.responsive-0d7ca9a7.d.ts → modern/Component.responsive-3677ec46.d.ts} +4 -3
  97. package/modern/components/primary-tablist/Component.d.ts +1 -1
  98. package/modern/components/primary-tablist/Component.desktop.js +1 -1
  99. package/modern/components/primary-tablist/Component.js +3 -2
  100. package/modern/components/primary-tablist/Component.mobile.js +2 -2
  101. package/modern/components/primary-tablist/Component.responsive.d.ts +1 -1
  102. package/modern/components/primary-tablist/Component.responsive.js +3 -3
  103. package/modern/components/primary-tablist/index.css +29 -29
  104. package/modern/components/primary-tablist/mobile.css +32 -32
  105. package/modern/components/scrollable-container/Component.js +1 -1
  106. package/modern/components/scrollable-container/index.css +5 -5
  107. package/modern/components/secondary-tablist/Component.desktop.js +1 -1
  108. package/modern/components/secondary-tablist/Component.mobile.js +2 -2
  109. package/modern/components/secondary-tablist/Component.responsive.js +1 -1
  110. package/modern/components/secondary-tablist/index.css +11 -11
  111. package/modern/components/secondary-tablist/mobile.css +13 -13
  112. package/modern/components/tab/Component.js +1 -1
  113. package/modern/components/tab/index.css +3 -3
  114. package/modern/components/tabs/Component.d.ts +1 -1
  115. package/modern/components/tabs/Component.desktop.js +2 -2
  116. package/modern/components/tabs/Component.js +2 -2
  117. package/modern/components/tabs/Component.mobile.d.ts +1 -1
  118. package/modern/components/tabs/Component.mobile.js +2 -2
  119. package/modern/components/tabs/Component.responsive.js +2 -2
  120. package/modern/components/title/Component.js +1 -1
  121. package/modern/desktop.js +2 -2
  122. package/modern/hooks/use-collapsible-elements.js +5 -3
  123. package/modern/hooks/use-tablist-titles.d.ts +1 -1
  124. package/modern/hooks/use-tablist-titles.js +31 -7
  125. package/modern/{index-0d7ca9a7.d.ts → index-3677ec46.d.ts} +2 -2
  126. package/modern/index.js +2 -2
  127. package/modern/index.module-e2287162.js +4 -0
  128. package/modern/index.module-f5a85c82.js +4 -0
  129. package/modern/mobile.js +2 -2
  130. package/modern/responsive.js +2 -2
  131. package/modern/typings.d.ts +5 -1
  132. package/package.json +2 -2
  133. package/responsive.js +3 -3
  134. package/synthetic-events.js +1 -1
  135. package/{tslib.es6-ae130ebf.d.ts → tslib.es6-ab9150c8.d.ts} +0 -0
  136. package/{tslib.es6-ae130ebf.js → tslib.es6-ab9150c8.js} +0 -0
  137. package/typings.d.ts +5 -1
  138. package/esm/index.module-70b270f0.js +0 -4
  139. package/esm/index.module-b1b98fa8.js +0 -4
  140. package/index.module-8195e19e.js +0 -6
  141. package/index.module-8665be45.js +0 -6
  142. package/modern/index.module-55adfdc4.js +0 -4
  143. package/modern/index.module-bd275971.js +0 -4
@@ -1,4 +1,4 @@
1
- /* hash: 114q3 */
1
+ /* hash: 108aj */
2
2
  :root {
3
3
  }:root {
4
4
  }:root {
@@ -49,26 +49,26 @@
49
49
 
50
50
  /* size xl */
51
51
  --secondary-tablist-xl-gaps: var(--gap-m);
52
- }.tabs__component_zu46d {
52
+ }.tabs__component_12ta1 {
53
53
  position: relative;
54
54
  display: inline-flex;
55
- }.tabs__fullWidthScroll_zu46d {
55
+ }.tabs__fullWidthScroll_12ta1 {
56
56
  margin: 0 var(--gap-m);
57
- }.tabs__container_zu46d {
57
+ }.tabs__container_12ta1 {
58
58
  overflow: hidden;
59
- }.tabs__title_zu46d {
59
+ }.tabs__title_12ta1 {
60
60
  white-space: nowrap;
61
- }/* sizes */.tabs__xxs_zu46d .tabs__title_zu46d + .tabs__title_zu46d {
61
+ }/* sizes */.tabs__xxs_12ta1 .tabs__title_12ta1 + .tabs__title_12ta1 {
62
62
  margin-left: var(--secondary-tablist-xxs-gaps);
63
- }.tabs__xs_zu46d .tabs__title_zu46d + .tabs__title_zu46d {
63
+ }.tabs__xs_12ta1 .tabs__title_12ta1 + .tabs__title_12ta1 {
64
64
  margin-left: var(--secondary-tablist-xs-gaps);
65
- }.tabs__s_zu46d .tabs__title_zu46d + .tabs__title_zu46d {
65
+ }.tabs__s_12ta1 .tabs__title_12ta1 + .tabs__title_12ta1 {
66
66
  margin-left: var(--secondary-tablist-s-gaps);
67
- }.tabs__m_zu46d .tabs__title_zu46d + .tabs__title_zu46d {
67
+ }.tabs__m_12ta1 .tabs__title_12ta1 + .tabs__title_12ta1 {
68
68
  margin-left: var(--secondary-tablist-m-gaps);
69
- }.tabs__l_zu46d .tabs__title_zu46d + .tabs__title_zu46d {
69
+ }.tabs__l_12ta1 .tabs__title_12ta1 + .tabs__title_12ta1 {
70
70
  margin-left: var(--secondary-tablist-l-gaps);
71
- }.tabs__xl_zu46d .tabs__title_zu46d + .tabs__title_zu46d {
71
+ }.tabs__xl_12ta1 .tabs__title_12ta1 + .tabs__title_12ta1 {
72
72
  margin-left: var(--secondary-tablist-xl-gaps);
73
73
  }
74
74
  :root {
@@ -885,8 +885,8 @@
885
885
  /* size xl */
886
886
  --secondary-tablist-xl-gaps: var(--gap-m);
887
887
  }
888
- .tabs__title_iofc0 {
888
+ .tabs__title_15528 {
889
889
  }
890
- .tabs__mobile_iofc0 .tabs__title_iofc0 + .tabs__title_iofc0 {
890
+ .tabs__mobile_15528 .tabs__title_15528 + .tabs__title_15528 {
891
891
  margin-left: var(--secondary-tablist-mobile-gaps);
892
892
  }
@@ -8,7 +8,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
8
8
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
9
9
  var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
10
10
 
11
- var styles = {"component":"tabs__component_1vp2q","hidden":"tabs__hidden_1vp2q"};
11
+ var styles = {"component":"tabs__component_x5xt6","hidden":"tabs__hidden_x5xt6"};
12
12
  require('./index.css')
13
13
 
14
14
  var Tab = function (_a) {
@@ -1,8 +1,8 @@
1
- /* hash: 1mcdn */
2
- .tabs__component_1vp2q {
1
+ /* hash: ugt9j */
2
+ .tabs__component_x5xt6 {
3
3
  outline: none;
4
4
  }
5
5
 
6
- .tabs__hidden_1vp2q {
6
+ .tabs__hidden_x5xt6 {
7
7
  display: none;
8
8
  }
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import { TabsProps } from "../../typings";
3
- declare const Tabs: ({ TabList, className, containerClassName, size, defaultMatch, children, selectedId, scrollable, collapsible, fullWidthScroll, keepMounted, dataTestId, onChange, }: Omit<TabsProps, 'view'>) => JSX.Element;
3
+ declare const Tabs: ({ TabList, className, containerClassName, size, defaultMatch, children, selectedId, scrollable, collapsible, collapsedTabsIds, fullWidthScroll, keepMounted, dataTestId, onChange, }: Omit<TabsProps, 'view'>) => JSX.Element;
4
4
  export { Tabs };
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('../../tslib.es6-ae130ebf.js');
3
+ var tslib_es6 = require('../../tslib.es6-ab9150c8.js');
4
4
  var React = require('react');
5
5
  var components_primaryTablist_Component_desktop = require('../primary-tablist/Component.desktop.js');
6
6
  var components_secondaryTablist_Component_desktop = require('../secondary-tablist/Component.desktop.js');
@@ -19,10 +19,10 @@ require('../../synthetic-events.js');
19
19
  require('../scrollable-container/Component.js');
20
20
  require('compute-scroll-into-view');
21
21
  require('../title/Component.js');
22
- require('../../index.module-8195e19e.js');
22
+ require('../../index.module-5b87e23a.js');
23
23
  require('../secondary-tablist/Component.js');
24
24
  require('@alfalab/core-components-tag');
25
- require('../../index.module-8665be45.js');
25
+ require('../../index.module-78610370.js');
26
26
 
27
27
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
28
28
 
@@ -7,7 +7,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
7
7
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
8
8
 
9
9
  var Tabs = function (_a) {
10
- var TabList = _a.TabList, className = _a.className, containerClassName = _a.containerClassName, size = _a.size, defaultMatch = _a.defaultMatch, children = _a.children, selectedId = _a.selectedId, scrollable = _a.scrollable, collapsible = _a.collapsible, _b = _a.fullWidthScroll, fullWidthScroll = _b === void 0 ? false : _b, _c = _a.keepMounted, keepMounted = _c === void 0 ? false : _c, dataTestId = _a.dataTestId, onChange = _a.onChange;
10
+ var TabList = _a.TabList, className = _a.className, containerClassName = _a.containerClassName, size = _a.size, defaultMatch = _a.defaultMatch, children = _a.children, selectedId = _a.selectedId, scrollable = _a.scrollable, collapsible = _a.collapsible, collapsedTabsIds = _a.collapsedTabsIds, _b = _a.fullWidthScroll, fullWidthScroll = _b === void 0 ? false : _b, _c = _a.keepMounted, keepMounted = _c === void 0 ? false : _c, dataTestId = _a.dataTestId, onChange = _a.onChange;
11
11
  var tabsArray = React__default.default.Children.toArray(children);
12
12
  var titles = tabsArray.map(function (_a) {
13
13
  var _b = _a.props, title = _b.title, id = _b.id, rightAddons = _b.rightAddons, disabled = _b.disabled, hidden = _b.hidden, toggleClassName = _b.toggleClassName;
@@ -22,7 +22,7 @@ var Tabs = function (_a) {
22
22
  });
23
23
  var tabs = tabsArray.filter(function (tab) { return tab.props.id === selectedId || tab.props.keepMounted || keepMounted; });
24
24
  return (React__default.default.createElement("div", { className: className },
25
- React__default.default.createElement(TabList, { containerClassName: containerClassName, size: size, titles: titles, selectedId: selectedId, scrollable: scrollable, collapsible: collapsible, onChange: onChange, dataTestId: dataTestId, defaultMatch: defaultMatch, fullWidthScroll: fullWidthScroll }),
25
+ React__default.default.createElement(TabList, { containerClassName: containerClassName, size: size, titles: titles, selectedId: selectedId, scrollable: scrollable, collapsible: collapsible, collapsedTabsIds: collapsedTabsIds, onChange: onChange, dataTestId: dataTestId, defaultMatch: defaultMatch, fullWidthScroll: fullWidthScroll }),
26
26
  tabs.map(function (tab) { return React.cloneElement(tab, { hidden: tab.props.id !== selectedId }); })));
27
27
  };
28
28
 
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import { TabsProps } from "../../typings";
3
- type TabsMobileProps = Omit<TabsProps, 'TabList' | 'size' | 'collapsible'>;
3
+ type TabsMobileProps = Omit<TabsProps, 'TabList' | 'size' | 'collapsible' | 'collapsedTabsIds'>;
4
4
  declare const TabsMobile: ({ view, scrollable, ...restProps }: TabsMobileProps) => JSX.Element;
5
5
  export { TabsMobileProps, TabsMobile };
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('../../tslib.es6-ae130ebf.js');
3
+ var tslib_es6 = require('../../tslib.es6-ab9150c8.js');
4
4
  var React = require('react');
5
5
  var components_primaryTablist_Component_mobile = require('../primary-tablist/Component.mobile.js');
6
6
  var components_secondaryTablist_Component_mobile = require('../secondary-tablist/Component.mobile.js');
@@ -19,10 +19,10 @@ require('../../synthetic-events.js');
19
19
  require('../scrollable-container/Component.js');
20
20
  require('compute-scroll-into-view');
21
21
  require('../title/Component.js');
22
- require('../../index.module-8195e19e.js');
22
+ require('../../index.module-5b87e23a.js');
23
23
  require('../secondary-tablist/Component.js');
24
24
  require('@alfalab/core-components-tag');
25
- require('../../index.module-8665be45.js');
25
+ require('../../index.module-78610370.js');
26
26
 
27
27
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
28
28
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('../../tslib.es6-ae130ebf.js');
3
+ var tslib_es6 = require('../../tslib.es6-ab9150c8.js');
4
4
  var React = require('react');
5
5
  var components_primaryTablist_Component_responsive = require('../primary-tablist/Component.responsive.js');
6
6
  var components_secondaryTablist_Component_responsive = require('../secondary-tablist/Component.responsive.js');
@@ -20,12 +20,12 @@ require('../../synthetic-events.js');
20
20
  require('../scrollable-container/Component.js');
21
21
  require('compute-scroll-into-view');
22
22
  require('../title/Component.js');
23
- require('../../index.module-8195e19e.js');
23
+ require('../../index.module-5b87e23a.js');
24
24
  require('../primary-tablist/Component.mobile.js');
25
25
  require('../secondary-tablist/Component.desktop.js');
26
26
  require('../secondary-tablist/Component.js');
27
27
  require('@alfalab/core-components-tag');
28
- require('../../index.module-8665be45.js');
28
+ require('../../index.module-78610370.js');
29
29
  require('../secondary-tablist/Component.mobile.js');
30
30
 
31
31
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('../../tslib.es6-ae130ebf.js');
3
+ var tslib_es6 = require('../../tslib.es6-ab9150c8.js');
4
4
  var React = require('react');
5
5
  var cn = require('classnames');
6
6
 
@@ -12,7 +12,7 @@ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
12
12
  var Title = React.forwardRef(function (_a, ref) {
13
13
  var _b, _c;
14
14
  var id = _a.id, toggleClassName = _a.toggleClassName, title = _a.title, _d = _a.styles, styles = _d === void 0 ? {} : _d, _e = _a.rightAddons, rightAddons = _e === void 0 ? null : _e, _f = _a.hidden, hidden = _f === void 0 ? false : _f, _g = _a.selected, selected = _g === void 0 ? false : _g, _h = _a.disabled, disabled = _h === void 0 ? false : _h, _j = _a.collapsed, collapsed = _j === void 0 ? false : _j, _k = _a.focused, focused = _k === void 0 ? false : _k, _l = _a.isOption, isOption = _l === void 0 ? false : _l, restProps = tslib_es6.__rest(_a, ["id", "toggleClassName", "title", "styles", "rightAddons", "hidden", "selected", "disabled", "collapsed", "focused", "isOption"]);
15
- return hidden ? null : (React__default.default.createElement("button", tslib_es6.__assign({}, restProps, { ref: ref, type: 'button', id: String(id), className: cn__default.default(styles.title, (_b = {},
15
+ return hidden ? null : (React__default.default.createElement("button", tslib_es6.__assign({}, restProps, { ref: ref, disabled: disabled, type: 'button', id: String(id), className: cn__default.default(styles.title, (_b = {},
16
16
  _b[styles.selected] = selected,
17
17
  _b[styles.disabled] = disabled,
18
18
  _b[styles.collapsed] = collapsed && !isOption,
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var components_title_Component = require('./Component.js');
4
- require('../../tslib.es6-ae130ebf.js');
4
+ require('../../tslib.es6-ab9150c8.js');
5
5
  require('react');
6
6
  require('classnames');
7
7
 
@@ -20,6 +20,11 @@ type PickerButtonDesktopProps = Omit<BaseSelectProps, 'Field' | 'placeholder' |
20
20
  * Тип кнопки
21
21
  */
22
22
  variant?: PickerButtonVariant;
23
+ /**
24
+ * Показывать стрелку
25
+ * @default true
26
+ */
27
+ showArrow?: boolean;
23
28
  };
24
29
  declare const PickerButtonDesktop: React.ForwardRefExoticComponent<Omit<BaseSelectProps, "placeholder" | "onFocus" | "size" | "selected" | "multiple" | "hint" | "options" | "autocomplete" | "allowUnselect" | "closeOnSelect" | "fieldProps" | "Arrow" | "Field"> & Pick<ButtonProps, "rightAddons" | "leftAddons" | "view" | "loading"> & {
25
30
  options: Array<BaseSelectProps['options'][0] & {
@@ -36,5 +41,10 @@ declare const PickerButtonDesktop: React.ForwardRefExoticComponent<Omit<BaseSele
36
41
  * Тип кнопки
37
42
  */
38
43
  variant?: PickerButtonVariant | undefined;
44
+ /**
45
+ * Показывать стрелку
46
+ * @default true
47
+ */
48
+ showArrow?: boolean | undefined;
39
49
  } & React.RefAttributes<HTMLInputElement>>;
40
50
  export { PickerButtonSize, PickerButtonVariant, PickerButtonDesktopProps, PickerButtonDesktop };
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import React from "react";
3
3
  import { AdditionalMobileProps } from "./index-3e68f8db";
4
- import { PickerButtonDesktopProps } from "./Component-0d7ca9a7";
4
+ import { PickerButtonDesktopProps } from "./Component-3677ec46";
5
5
  import { ButtonProps } from "./index-ebda875c";
6
6
  type PickerButtonMobileProps = Omit<PickerButtonDesktopProps, "OptionsList" | "Checkmark" | "onScroll"> & AdditionalMobileProps;
7
7
  declare const PickerButtonMobile: React.ForwardRefExoticComponent<Omit<PickerButtonDesktopProps, "onScroll" | "OptionsList" | "Checkmark"> & AdditionalMobileProps & React.RefAttributes<HTMLInputElement>>;
@@ -17,8 +17,9 @@ declare const PickerButtonResponsive: React.ForwardRefExoticComponent<Omit<impor
17
17
  options: ((import("./index-3e68f8db").OptionShape | import("./index-3e68f8db").GroupShape) & {
18
18
  icon?: React.FC<React.SVGProps<SVGSVGElement>> | undefined;
19
19
  })[];
20
- size?: import("./Component-0d7ca9a7").PickerButtonSize | undefined;
21
- variant?: import("./Component-0d7ca9a7").PickerButtonVariant | undefined;
20
+ size?: import("./Component-3677ec46").PickerButtonSize | undefined;
21
+ variant?: import("./Component-3677ec46").PickerButtonVariant | undefined;
22
+ showArrow?: boolean | undefined;
22
23
  } & AdditionalMobileProps & {
23
24
  /**
24
25
  * Контрольная точка, с нее начинается desktop версия
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import { Styles, TabListProps } from "../../typings";
3
- declare const PrimaryTabList: ({ size, styles, className, containerClassName, titles, selectedId, scrollable, collapsible, fullWidthScroll, onChange, dataTestId, breakpoint, }: TabListProps & Styles) => JSX.Element;
3
+ declare const PrimaryTabList: ({ size, styles, className, containerClassName, titles, selectedId, scrollable, collapsible, collapsedTabsIds, fullWidthScroll, onChange, dataTestId, breakpoint, }: TabListProps & Styles) => JSX.Element;
4
4
  export { PrimaryTabList };
@@ -23,12 +23,13 @@ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
23
23
  var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
24
24
 
25
25
  var PrimaryTabList = function (_a) {
26
- var size = _a.size, _b = _a.styles, styles = _b === void 0 ? {} : _b, className = _a.className, containerClassName = _a.containerClassName, _c = _a.titles, titles = _c === void 0 ? [] : _c, _d = _a.selectedId, selectedId = _d === void 0 ? titles.length ? titles[0].id : undefined : _d, _e = _a.scrollable, scrollable = _e === void 0 ? true : _e, collapsible = _a.collapsible, fullWidthScroll = _a.fullWidthScroll, onChange = _a.onChange, dataTestId = _a.dataTestId, _f = _a.breakpoint, breakpoint = _f === void 0 ? 1024 : _f;
26
+ var size = _a.size, _b = _a.styles, styles = _b === void 0 ? {} : _b, className = _a.className, containerClassName = _a.containerClassName, _c = _a.titles, titles = _c === void 0 ? [] : _c, _d = _a.selectedId, selectedId = _d === void 0 ? titles.length ? titles[0].id : undefined : _d, _e = _a.scrollable, scrollable = _e === void 0 ? true : _e, collapsible = _a.collapsible, collapsedTabsIds = _a.collapsedTabsIds, fullWidthScroll = _a.fullWidthScroll, onChange = _a.onChange, dataTestId = _a.dataTestId, _f = _a.breakpoint, breakpoint = _f === void 0 ? 1024 : _f;
27
27
  var lineRef = React.useRef(null);
28
28
  var _g = hooks_useTablistTitles.useTablistTitles({
29
29
  titles: titles,
30
30
  selectedId: selectedId,
31
31
  collapsible: collapsible,
32
+ collapsedTabsIds: collapsedTabsIds,
32
33
  breakpoint: breakpoint,
33
34
  onChange: onChange,
34
35
  }), containerRef = _g.containerRef, addonRef = _g.addonRef, tablistTitles = _g.tablistTitles, selectedTab = _g.selectedTab, focusedTab = _g.focusedTab, getTabListItemProps = _g.getTabListItemProps;
@@ -65,7 +66,7 @@ var PrimaryTabList = function (_a) {
65
66
  _a[styles.fullWidthScroll] = fullWidthScroll,
66
67
  _a)) },
67
68
  tablistTitles.map(function (title, index) { return (React__default.default.createElement(coreComponentsKeyboardFocusable.KeyboardFocusable, { key: title.id }, function (ref, focused) { return (React__default.default.createElement(components_title_Component.Title, tslib_es6.__assign({}, getTabListItemProps(index, ref), title, { focused: focused, styles: styles }))); })); }),
68
- collapsedOptions.length ? (React__default.default.createElement("span", { ref: addonRef, className: styles.pickerWrapper },
69
+ collapsedOptions.length ? (React__default.default.createElement("span", { ref: addonRef, role: 'tablist', className: styles.pickerWrapper },
69
70
  React__default.default.createElement(desktop.PickerButtonDesktop, { fieldClassName: styles.title, optionClassName: cn__default.default(styles.pickerOption, size && styles[size]), options: collapsedOptions, onChange: handleOptionsChange, rightAddons: collapsedAddonsLength ? (React__default.default.createElement(coreComponentsBadge.Badge, { view: 'count', content: collapsedAddonsLength })) : null, size: 'l', view: 'ghost', label: '\u0415\u0449\u0451', popoverPosition: 'bottom-end' }))) : null,
70
71
  React__default.default.createElement("div", { className: styles.line, ref: lineRef })));
71
72
  };
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import { TabListProps } from "../../typings";
3
- declare const PrimaryTabListResponsive: ({ size, defaultMatch, collapsible, fullWidthScroll, ...restProps }: TabListProps) => JSX.Element;
3
+ declare const PrimaryTabListResponsive: ({ size, defaultMatch, collapsible, collapsedTabsIds, fullWidthScroll, ...restProps }: TabListProps) => JSX.Element;
4
4
  export { PrimaryTabListResponsive };
@@ -27,12 +27,12 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
27
27
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
28
28
 
29
29
  var PrimaryTabListResponsive = function (_a) {
30
- var size = _a.size, _b = _a.defaultMatch, defaultMatch = _b === void 0 ? 'desktop' : _b, collapsible = _a.collapsible, fullWidthScroll = _a.fullWidthScroll, restProps = tslib_es6.__rest(_a, ["size", "defaultMatch", "collapsible", "fullWidthScroll"]);
30
+ var size = _a.size, _b = _a.defaultMatch, defaultMatch = _b === void 0 ? 'desktop' : _b, collapsible = _a.collapsible, collapsedTabsIds = _a.collapsedTabsIds, fullWidthScroll = _a.fullWidthScroll, restProps = tslib_es6.__rest(_a, ["size", "defaultMatch", "collapsible", "collapsedTabsIds", "fullWidthScroll"]);
31
31
  var view = hooks.useMedia([
32
32
  ['mobile', '(max-width: 767px)'],
33
33
  ['desktop', '(min-width: 768px)'],
34
34
  ], defaultMatch)[0];
35
- return view === 'desktop' ? (React__default.default.createElement(components_primaryTablist_Component_desktop.PrimaryTabListDesktop, tslib_es6.__assign({ collapsible: collapsible, size: size }, restProps))) : (React__default.default.createElement(components_primaryTablist_Component_mobile.PrimaryTabListMobile, tslib_es6.__assign({ fullWidthScroll: fullWidthScroll }, restProps)));
35
+ return view === 'desktop' ? (React__default.default.createElement(components_primaryTablist_Component_desktop.PrimaryTabListDesktop, tslib_es6.__assign({ collapsible: collapsible, collapsedTabsIds: collapsedTabsIds, size: size }, restProps))) : (React__default.default.createElement(components_primaryTablist_Component_mobile.PrimaryTabListMobile, tslib_es6.__assign({ fullWidthScroll: fullWidthScroll }, restProps)));
36
36
  };
37
37
 
38
38
  exports.PrimaryTabListResponsive = PrimaryTabListResponsive;
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import { TabsProps } from "../../typings";
3
- declare const Tabs: ({ TabList, className, containerClassName, size, defaultMatch, children, selectedId, scrollable, collapsible, fullWidthScroll, keepMounted, dataTestId, onChange, }: Omit<TabsProps, 'view'>) => JSX.Element;
3
+ declare const Tabs: ({ TabList, className, containerClassName, size, defaultMatch, children, selectedId, scrollable, collapsible, collapsedTabsIds, fullWidthScroll, keepMounted, dataTestId, onChange, }: Omit<TabsProps, 'view'>) => JSX.Element;
4
4
  export { Tabs };
@@ -7,7 +7,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
7
7
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
8
8
 
9
9
  var Tabs = function (_a) {
10
- var TabList = _a.TabList, className = _a.className, containerClassName = _a.containerClassName, size = _a.size, defaultMatch = _a.defaultMatch, children = _a.children, selectedId = _a.selectedId, scrollable = _a.scrollable, collapsible = _a.collapsible, _b = _a.fullWidthScroll, fullWidthScroll = _b === void 0 ? false : _b, _c = _a.keepMounted, keepMounted = _c === void 0 ? false : _c, dataTestId = _a.dataTestId, onChange = _a.onChange;
10
+ var TabList = _a.TabList, className = _a.className, containerClassName = _a.containerClassName, size = _a.size, defaultMatch = _a.defaultMatch, children = _a.children, selectedId = _a.selectedId, scrollable = _a.scrollable, collapsible = _a.collapsible, collapsedTabsIds = _a.collapsedTabsIds, _b = _a.fullWidthScroll, fullWidthScroll = _b === void 0 ? false : _b, _c = _a.keepMounted, keepMounted = _c === void 0 ? false : _c, dataTestId = _a.dataTestId, onChange = _a.onChange;
11
11
  var tabsArray = React__default.default.Children.toArray(children);
12
12
  var titles = tabsArray.map(function (_a) {
13
13
  var _b = _a.props, title = _b.title, id = _b.id, rightAddons = _b.rightAddons, disabled = _b.disabled, hidden = _b.hidden, toggleClassName = _b.toggleClassName;
@@ -22,7 +22,7 @@ var Tabs = function (_a) {
22
22
  });
23
23
  var tabs = tabsArray.filter(function (tab) { return tab.props.id === selectedId || tab.props.keepMounted || keepMounted; });
24
24
  return (React__default.default.createElement("div", { className: className },
25
- React__default.default.createElement(TabList, { containerClassName: containerClassName, size: size, titles: titles, selectedId: selectedId, scrollable: scrollable, collapsible: collapsible, onChange: onChange, dataTestId: dataTestId, defaultMatch: defaultMatch, fullWidthScroll: fullWidthScroll }),
25
+ React__default.default.createElement(TabList, { containerClassName: containerClassName, size: size, titles: titles, selectedId: selectedId, scrollable: scrollable, collapsible: collapsible, collapsedTabsIds: collapsedTabsIds, onChange: onChange, dataTestId: dataTestId, defaultMatch: defaultMatch, fullWidthScroll: fullWidthScroll }),
26
26
  tabs.map(function (tab) { return React.cloneElement(tab, { hidden: tab.props.id !== selectedId }); })));
27
27
  };
28
28
 
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import { TabsProps } from "../../typings";
3
- type TabsMobileProps = Omit<TabsProps, 'TabList' | 'size' | 'collapsible'>;
3
+ type TabsMobileProps = Omit<TabsProps, 'TabList' | 'size' | 'collapsible' | 'collapsedTabsIds'>;
4
4
  declare const TabsMobile: ({ view, scrollable, ...restProps }: TabsMobileProps) => JSX.Element;
5
5
  export { TabsMobileProps, TabsMobile };
@@ -12,7 +12,7 @@ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
12
12
  var Title = React.forwardRef(function (_a, ref) {
13
13
  var _b, _c;
14
14
  var id = _a.id, toggleClassName = _a.toggleClassName, title = _a.title, _d = _a.styles, styles = _d === void 0 ? {} : _d, _e = _a.rightAddons, rightAddons = _e === void 0 ? null : _e, _f = _a.hidden, hidden = _f === void 0 ? false : _f, _g = _a.selected, selected = _g === void 0 ? false : _g, _h = _a.disabled, disabled = _h === void 0 ? false : _h, _j = _a.collapsed, collapsed = _j === void 0 ? false : _j, _k = _a.focused, focused = _k === void 0 ? false : _k, _l = _a.isOption, isOption = _l === void 0 ? false : _l, restProps = tslib_es6.__rest(_a, ["id", "toggleClassName", "title", "styles", "rightAddons", "hidden", "selected", "disabled", "collapsed", "focused", "isOption"]);
15
- return hidden ? null : (React__default.default.createElement("button", tslib_es6.__assign({}, restProps, { ref: ref, type: 'button', id: String(id), className: cn__default.default(styles.title, (_b = {},
15
+ return hidden ? null : (React__default.default.createElement("button", tslib_es6.__assign({}, restProps, { ref: ref, disabled: disabled, type: 'button', id: String(id), className: cn__default.default(styles.title, (_b = {},
16
16
  _b[styles.selected] = selected,
17
17
  _b[styles.disabled] = disabled,
18
18
  _b[styles.collapsed] = collapsed && !isOption,
@@ -16,9 +16,11 @@ var useCollapsibleElements = function (selectors, deps) {
16
16
  if (!container)
17
17
  return;
18
18
  var addon = addonRef.current;
19
- var containerWidth = inlineSize || container.clientWidth;
19
+ var moreElement = Array.from(container.querySelectorAll('[role="tablist"]')).pop();
20
+ var moreElementRect = moreElement === null || moreElement === void 0 ? void 0 : moreElement.getBoundingClientRect();
20
21
  var elements = Array.from(container.querySelectorAll(selectors));
21
- var idsCollapsedElements = elements.reduce(function (acc, element) {
22
+ var containerWidth = (inlineSize || container.clientWidth) - ((moreElementRect === null || moreElementRect === void 0 ? void 0 : moreElementRect.width) || 0) * 1.5; // при рассчётах, даём кнопке "Ещё" чуть больше места, чтобы точно влезла
23
+ var collapsedIds = elements.reduce(function (acc, element) {
22
24
  var offsetLeft = element.offsetLeft, offsetWidth = element.offsetWidth, id = element.id;
23
25
  var elementOffset = offsetLeft + offsetWidth;
24
26
  var isCollapsedElement = getComputedStyle(element).visibility === 'collapse';
@@ -30,7 +32,7 @@ var useCollapsibleElements = function (selectors, deps) {
30
32
  acc.push(id);
31
33
  return acc;
32
34
  }, []);
33
- setIdsCollapsedElements(idsCollapsedElements);
35
+ setIdsCollapsedElements(collapsedIds);
34
36
  };
35
37
  var handleElementsResize = function (entries) {
36
38
  var inlineSize = entries[0].contentBoxSize[0].inlineSize;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { TabListProps } from "../typings";
3
- declare const useTablistTitles: ({ titles, selectedId, collapsible, breakpoint, onChange, }: Pick<TabListProps, 'titles' | 'selectedId' | 'collapsible' | 'onChange'> & Required<Pick<TabListProps, 'breakpoint'>>) => {
3
+ declare const useTablistTitles: ({ titles, selectedId, collapsible, collapsedTabsIds, breakpoint, onChange, }: Pick<TabListProps, 'titles' | 'selectedId' | 'collapsible' | 'collapsedTabsIds' | 'onChange'> & Required<Pick<TabListProps, 'breakpoint'>>) => {
4
4
  containerRef: import("react").RefObject<HTMLDivElement>;
5
5
  addonRef: import("react").RefObject<HTMLInputElement>;
6
6
  tablistTitles: {
@@ -8,23 +8,47 @@ var hooks_useTabs = require('./use-tabs.js');
8
8
  require('@juggle/resize-observer');
9
9
 
10
10
  var useTablistTitles = function (_a) {
11
- var _b = _a.titles, titles = _b === void 0 ? [] : _b, selectedId = _a.selectedId, collapsible = _a.collapsible, breakpoint = _a.breakpoint, onChange = _a.onChange;
11
+ var _b = _a.titles, titles = _b === void 0 ? [] : _b, selectedId = _a.selectedId, collapsible = _a.collapsible, collapsedTabsIds = _a.collapsedTabsIds, breakpoint = _a.breakpoint, onChange = _a.onChange;
12
12
  var _c = hooks_useCollapsibleElements.useCollapsibleElements('[role=tab]', [titles]), containerRef = _c.containerRef, addonRef = _c.addonRef, idsCollapsedElements = _c.idsCollapsedElements;
13
13
  var view = hooks.useMedia([['desktop', "(min-width: ".concat(breakpoint, "px)")]], 'desktop')[0];
14
14
  var tablistTitles = React.useMemo(function () {
15
15
  var idsCollapsedTitles = [];
16
+ var idsCollapsed = idsCollapsedElements.concat(collapsedTabsIds || []);
16
17
  if (view === 'desktop' && collapsible) {
17
18
  var visibleTitles = titles.filter(function (_a) {
18
19
  var id = _a.id;
19
- return !idsCollapsedElements.includes(String(id));
20
+ return !idsCollapsed.includes(String(id));
20
21
  });
21
- var lastVisibleTitle_1 = visibleTitles[visibleTitles.length - 1];
22
- idsCollapsedElements.forEach(function (id) {
23
- idsCollapsedTitles.push(selectedId === id && lastVisibleTitle_1 ? String(lastVisibleTitle_1.id) : id);
22
+ var lastVisibleTitle_1 = collapsedTabsIds
23
+ ? null
24
+ : visibleTitles[visibleTitles.length - 1];
25
+ idsCollapsed.forEach(function (id) {
26
+ if (selectedId === id && lastVisibleTitle_1) {
27
+ idsCollapsedTitles.push(String(lastVisibleTitle_1.id));
28
+ }
29
+ if (selectedId !== id) {
30
+ idsCollapsedTitles.push(id);
31
+ }
24
32
  });
25
33
  }
26
- return titles.map(function (title) { return (tslib_es6.__assign(tslib_es6.__assign({}, title), { collapsed: idsCollapsedTitles.includes(String(title.id)), selected: title.id === selectedId })); });
27
- }, [titles, collapsible, selectedId, idsCollapsedElements, view]);
34
+ var titlesMapped = titles.map(function (title) { return (tslib_es6.__assign(tslib_es6.__assign({}, title), { collapsed: idsCollapsedTitles.includes(String(title.id)), selected: title.id === selectedId })); });
35
+ if (collapsedTabsIds === null || collapsedTabsIds === void 0 ? void 0 : collapsedTabsIds.length) {
36
+ titlesMapped.sort(function (a, b) {
37
+ var hasA = collapsedTabsIds.includes(String(a.id));
38
+ var hasB = collapsedTabsIds.includes(String(b.id));
39
+ if (hasA === hasB) {
40
+ return 0;
41
+ }
42
+ return hasA ? 1 : -1;
43
+ });
44
+ }
45
+ return titlesMapped.sort(function (a, b) {
46
+ if (a.collapsed === b.collapsed) {
47
+ return 0;
48
+ }
49
+ return a.collapsed ? 1 : -1;
50
+ });
51
+ }, [collapsedTabsIds, idsCollapsedElements, view, collapsible, titles, selectedId]);
28
52
  var _d = hooks_useTabs.useTabs({
29
53
  titles: tablistTitles,
30
54
  selectedId: selectedId,
@@ -1,4 +1,4 @@
1
- export * from "./Component.responsive-0d7ca9a7";
1
+ export * from "./Component.responsive-3677ec46";
2
2
  export { PickerButtonResponsive as PickerButton };
3
3
  export type { PickerButtonResponsiveProps as PickerButtonProps };
4
- export type { PickerButtonDesktopProps, PickerButtonSize, PickerButtonVariant } from "./Component-0d7ca9a7";
4
+ export type { PickerButtonDesktopProps, PickerButtonSize, PickerButtonVariant } from "./Component-3677ec46";
package/cssm/typings.d.ts CHANGED
@@ -43,6 +43,10 @@ type TabsProps = {
43
43
  * Сворачивает не помещающиеся в окне табы в PickerButton
44
44
  */
45
45
  collapsible?: boolean;
46
+ /**
47
+ * Список табов, для контроля переноса вкладок в PickerButton
48
+ */
49
+ collapsedTabsIds?: string[];
46
50
  /**
47
51
  * При скроле табы будут уходить в край экрана
48
52
  */
@@ -118,7 +122,7 @@ type TabListTitle = {
118
122
  selected?: boolean;
119
123
  collapsed?: boolean;
120
124
  };
121
- type TabListProps = Pick<TabsProps, 'className' | 'containerClassName' | 'size' | 'defaultMatch' | 'selectedId' | 'scrollable' | 'collapsible' | 'onChange' | 'dataTestId' | 'fullWidthScroll'> & {
125
+ type TabListProps = Pick<TabsProps, 'className' | 'containerClassName' | 'size' | 'defaultMatch' | 'selectedId' | 'scrollable' | 'collapsible' | 'collapsedTabsIds' | 'onChange' | 'dataTestId' | 'fullWidthScroll'> & {
122
126
  /**
123
127
  * Заголовки табов
124
128
  */
package/desktop.js CHANGED
@@ -7,7 +7,7 @@ var components_tab_Component = require('./components/tab/Component.js');
7
7
  var components_tabs_Component_desktop = require('./components/tabs/Component.desktop.js');
8
8
  var hooks_useTabs = require('./hooks/use-tabs.js');
9
9
  var hooks_useCollapsibleElements = require('./hooks/use-collapsible-elements.js');
10
- require('./tslib.es6-ae130ebf.js');
10
+ require('./tslib.es6-ab9150c8.js');
11
11
  require('react');
12
12
  require('./components/primary-tablist/Component.js');
13
13
  require('classnames');
@@ -18,11 +18,11 @@ require('./hooks/use-tablist-titles.js');
18
18
  require('@alfalab/hooks');
19
19
  require('./synthetic-events.js');
20
20
  require('./components/title/Component.js');
21
- require('./index.module-8195e19e.js');
21
+ require('./index.module-5b87e23a.js');
22
22
  require('compute-scroll-into-view');
23
23
  require('./components/secondary-tablist/Component.js');
24
24
  require('@alfalab/core-components-tag');
25
- require('./index.module-8665be45.js');
25
+ require('./index.module-78610370.js');
26
26
  require('./components/tabs/Component.js');
27
27
  require('@juggle/resize-observer');
28
28
 
@@ -20,6 +20,11 @@ type PickerButtonDesktopProps = Omit<BaseSelectProps, 'Field' | 'placeholder' |
20
20
  * Тип кнопки
21
21
  */
22
22
  variant?: PickerButtonVariant;
23
+ /**
24
+ * Показывать стрелку
25
+ * @default true
26
+ */
27
+ showArrow?: boolean;
23
28
  };
24
29
  declare const PickerButtonDesktop: React.ForwardRefExoticComponent<Omit<BaseSelectProps, "placeholder" | "onFocus" | "size" | "selected" | "multiple" | "hint" | "options" | "autocomplete" | "allowUnselect" | "closeOnSelect" | "fieldProps" | "Arrow" | "Field"> & Pick<ButtonProps, "rightAddons" | "leftAddons" | "view" | "loading"> & {
25
30
  options: Array<BaseSelectProps['options'][0] & {
@@ -36,5 +41,10 @@ declare const PickerButtonDesktop: React.ForwardRefExoticComponent<Omit<BaseSele
36
41
  * Тип кнопки
37
42
  */
38
43
  variant?: PickerButtonVariant | undefined;
44
+ /**
45
+ * Показывать стрелку
46
+ * @default true
47
+ */
48
+ showArrow?: boolean | undefined;
39
49
  } & React.RefAttributes<HTMLInputElement>>;
40
50
  export { PickerButtonSize, PickerButtonVariant, PickerButtonDesktopProps, PickerButtonDesktop };
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import React from "react";
3
3
  import { AdditionalMobileProps } from "./index-3e68f8db";
4
- import { PickerButtonDesktopProps } from "./Component-0d7ca9a7";
4
+ import { PickerButtonDesktopProps } from "./Component-3677ec46";
5
5
  import { ButtonProps } from "./index-ebda875c";
6
6
  type PickerButtonMobileProps = Omit<PickerButtonDesktopProps, "OptionsList" | "Checkmark" | "onScroll"> & AdditionalMobileProps;
7
7
  declare const PickerButtonMobile: React.ForwardRefExoticComponent<Omit<PickerButtonDesktopProps, "onScroll" | "OptionsList" | "Checkmark"> & AdditionalMobileProps & React.RefAttributes<HTMLInputElement>>;
@@ -17,8 +17,9 @@ declare const PickerButtonResponsive: React.ForwardRefExoticComponent<Omit<impor
17
17
  options: ((import("./index-3e68f8db").OptionShape | import("./index-3e68f8db").GroupShape) & {
18
18
  icon?: React.FC<React.SVGProps<SVGSVGElement>> | undefined;
19
19
  })[];
20
- size?: import("./Component-0d7ca9a7").PickerButtonSize | undefined;
21
- variant?: import("./Component-0d7ca9a7").PickerButtonVariant | undefined;
20
+ size?: import("./Component-3677ec46").PickerButtonSize | undefined;
21
+ variant?: import("./Component-3677ec46").PickerButtonVariant | undefined;
22
+ showArrow?: boolean | undefined;
22
23
  } & AdditionalMobileProps & {
23
24
  /**
24
25
  * Контрольная точка, с нее начинается desktop версия
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import { Styles, TabListProps } from "../../typings";
3
- declare const PrimaryTabList: ({ size, styles, className, containerClassName, titles, selectedId, scrollable, collapsible, fullWidthScroll, onChange, dataTestId, breakpoint, }: TabListProps & Styles) => JSX.Element;
3
+ declare const PrimaryTabList: ({ size, styles, className, containerClassName, titles, selectedId, scrollable, collapsible, collapsedTabsIds, fullWidthScroll, onChange, dataTestId, breakpoint, }: TabListProps & Styles) => JSX.Element;
4
4
  export { PrimaryTabList };
@@ -1,7 +1,7 @@
1
- import { _ as __rest, a as __assign } from '../../tslib.es6-013dc637.js';
1
+ import { _ as __rest, a as __assign } from '../../tslib.es6-991a0924.js';
2
2
  import React from 'react';
3
3
  import { PrimaryTabList } from './Component.js';
4
- import { c as commonStyles } from '../../index.module-b1b98fa8.js';
4
+ import { c as commonStyles } from '../../index.module-307739e4.js';
5
5
  import 'classnames';
6
6
  import '@alfalab/core-components-badge/esm';
7
7
  import '@alfalab/core-components-keyboard-focusable/esm';
@@ -1,4 +1,4 @@
1
- import { a as __assign } from '../../tslib.es6-013dc637.js';
1
+ import { a as __assign } from '../../tslib.es6-991a0924.js';
2
2
  import React, { useRef, useEffect, useMemo } from 'react';
3
3
  import cn from 'classnames';
4
4
  import { Badge } from '@alfalab/core-components-badge/esm';
@@ -15,12 +15,13 @@ import '../../hooks/use-tabs.js';
15
15
  import 'compute-scroll-into-view';
16
16
 
17
17
  var PrimaryTabList = function (_a) {
18
- var size = _a.size, _b = _a.styles, styles = _b === void 0 ? {} : _b, className = _a.className, containerClassName = _a.containerClassName, _c = _a.titles, titles = _c === void 0 ? [] : _c, _d = _a.selectedId, selectedId = _d === void 0 ? titles.length ? titles[0].id : undefined : _d, _e = _a.scrollable, scrollable = _e === void 0 ? true : _e, collapsible = _a.collapsible, fullWidthScroll = _a.fullWidthScroll, onChange = _a.onChange, dataTestId = _a.dataTestId, _f = _a.breakpoint, breakpoint = _f === void 0 ? 1024 : _f;
18
+ var size = _a.size, _b = _a.styles, styles = _b === void 0 ? {} : _b, className = _a.className, containerClassName = _a.containerClassName, _c = _a.titles, titles = _c === void 0 ? [] : _c, _d = _a.selectedId, selectedId = _d === void 0 ? titles.length ? titles[0].id : undefined : _d, _e = _a.scrollable, scrollable = _e === void 0 ? true : _e, collapsible = _a.collapsible, collapsedTabsIds = _a.collapsedTabsIds, fullWidthScroll = _a.fullWidthScroll, onChange = _a.onChange, dataTestId = _a.dataTestId, _f = _a.breakpoint, breakpoint = _f === void 0 ? 1024 : _f;
19
19
  var lineRef = useRef(null);
20
20
  var _g = useTablistTitles({
21
21
  titles: titles,
22
22
  selectedId: selectedId,
23
23
  collapsible: collapsible,
24
+ collapsedTabsIds: collapsedTabsIds,
24
25
  breakpoint: breakpoint,
25
26
  onChange: onChange,
26
27
  }), containerRef = _g.containerRef, addonRef = _g.addonRef, tablistTitles = _g.tablistTitles, selectedTab = _g.selectedTab, focusedTab = _g.focusedTab, getTabListItemProps = _g.getTabListItemProps;
@@ -57,7 +58,7 @@ var PrimaryTabList = function (_a) {
57
58
  _a[styles.fullWidthScroll] = fullWidthScroll,
58
59
  _a)) },
59
60
  tablistTitles.map(function (title, index) { return (React.createElement(KeyboardFocusable, { key: title.id }, function (ref, focused) { return (React.createElement(Title, __assign({}, getTabListItemProps(index, ref), title, { focused: focused, styles: styles }))); })); }),
60
- collapsedOptions.length ? (React.createElement("span", { ref: addonRef, className: styles.pickerWrapper },
61
+ collapsedOptions.length ? (React.createElement("span", { ref: addonRef, role: 'tablist', className: styles.pickerWrapper },
61
62
  React.createElement(PickerButtonDesktop, { fieldClassName: styles.title, optionClassName: cn(styles.pickerOption, size && styles[size]), options: collapsedOptions, onChange: handleOptionsChange, rightAddons: collapsedAddonsLength ? (React.createElement(Badge, { view: 'count', content: collapsedAddonsLength })) : null, size: 'l', view: 'ghost', label: '\u0415\u0449\u0451', popoverPosition: 'bottom-end' }))) : null,
62
63
  React.createElement("div", { className: styles.line, ref: lineRef })));
63
64
  };