@salutejs/plasma-new-hope 0.131.0-canary.1390.10557448117.0 → 0.131.0-canary.1392.10557537816.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (178) hide show
  1. package/cjs/components/Segment/tokens.js +15 -1
  2. package/cjs/components/Segment/tokens.js.map +1 -1
  3. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.css +10 -4
  4. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +160 -83
  5. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
  6. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +37 -1
  7. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js.map +1 -1
  8. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles_1rr47x4.css +8 -0
  9. package/cjs/components/Segment/ui/SegmentGroup/variations/_vertical/base.js +9 -0
  10. package/cjs/components/Segment/ui/SegmentGroup/variations/_vertical/base.js.map +1 -0
  11. package/cjs/components/Segment/ui/SegmentGroup/variations/_vertical/base_11agnr.css +1 -0
  12. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.css +7 -3
  13. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +4 -2
  14. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
  15. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles.js +31 -2
  16. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles.js.map +1 -1
  17. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles_f1jpip.css +6 -0
  18. package/cjs/components/Segment/ui/SegmentItem/variations/_view/base.js +1 -1
  19. package/cjs/components/Segment/ui/SegmentItem/variations/_view/base.js.map +1 -1
  20. package/cjs/components/Segment/ui/SegmentItem/variations/_view/base_168a47w.css +1 -0
  21. package/cjs/components/Tabs/ui/Tabs/Tabs.js +2 -2
  22. package/cjs/components/Tabs/ui/Tabs/Tabs.js.map +1 -1
  23. package/cjs/components/_Icon/Icon.assets/DisclosureDown.js +22 -0
  24. package/cjs/components/_Icon/Icon.assets/DisclosureDown.js.map +1 -0
  25. package/cjs/components/_Icon/Icon.assets/DisclosureUp.js +22 -0
  26. package/cjs/components/_Icon/Icon.assets/DisclosureUp.js.map +1 -0
  27. package/cjs/components/_Icon/Icons/IconDisclosureDown.js +23 -0
  28. package/cjs/components/_Icon/Icons/IconDisclosureDown.js.map +1 -0
  29. package/cjs/components/_Icon/Icons/IconDisclosureUp.js +23 -0
  30. package/cjs/components/_Icon/Icons/IconDisclosureUp.js.map +1 -0
  31. package/cjs/index.css +17 -7
  32. package/emotion/cjs/components/Segment/README.md +61 -0
  33. package/emotion/cjs/components/Segment/tokens.js +15 -1
  34. package/emotion/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +156 -82
  35. package/emotion/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +25 -17
  36. package/emotion/cjs/components/Segment/ui/SegmentGroup/variations/_vertical/base.js +10 -0
  37. package/emotion/cjs/components/Segment/ui/SegmentGroup/variations/_vertical/tokens.json +1 -0
  38. package/emotion/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +4 -2
  39. package/emotion/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles.js +28 -6
  40. package/emotion/cjs/components/Segment/ui/SegmentItem/variations/_view/base.js +2 -1
  41. package/emotion/cjs/components/Tabs/ui/Tabs/Tabs.js +2 -2
  42. package/emotion/cjs/components/_Icon/Icon.assets/DisclosureDown.js +21 -0
  43. package/emotion/cjs/components/_Icon/Icon.assets/DisclosureUp.js +21 -0
  44. package/emotion/cjs/components/_Icon/Icons/IconDisclosureDown.js +22 -0
  45. package/emotion/cjs/components/_Icon/Icons/IconDisclosureUp.js +22 -0
  46. package/emotion/cjs/components/_Icon/index.js +14 -0
  47. package/emotion/cjs/examples/plasma_web/components/Segment/Segment.stories.tsx +143 -2
  48. package/emotion/cjs/examples/plasma_web/components/Segment/SegmentGroup.config.js +12 -9
  49. package/emotion/cjs/examples/plasma_web/components/Segment/SegmentItem.config.js +9 -9
  50. package/emotion/es/components/Segment/README.md +61 -0
  51. package/emotion/es/components/Segment/tokens.js +15 -1
  52. package/emotion/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +159 -85
  53. package/emotion/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +25 -17
  54. package/emotion/es/components/Segment/ui/SegmentGroup/variations/_vertical/base.js +4 -0
  55. package/emotion/es/components/Segment/ui/SegmentGroup/variations/_vertical/tokens.json +1 -0
  56. package/emotion/es/components/Segment/ui/SegmentItem/SegmentItem.js +5 -3
  57. package/emotion/es/components/Segment/ui/SegmentItem/SegmentItem.styles.js +27 -5
  58. package/emotion/es/components/Segment/ui/SegmentItem/variations/_view/base.js +2 -1
  59. package/emotion/es/components/Tabs/ui/Tabs/Tabs.js +2 -2
  60. package/emotion/es/components/_Icon/Icon.assets/DisclosureDown.js +14 -0
  61. package/emotion/es/components/_Icon/Icon.assets/DisclosureUp.js +14 -0
  62. package/emotion/es/components/_Icon/Icons/IconDisclosureDown.js +15 -0
  63. package/emotion/es/components/_Icon/Icons/IconDisclosureUp.js +15 -0
  64. package/emotion/es/components/_Icon/index.js +2 -0
  65. package/emotion/es/examples/plasma_web/components/Segment/Segment.stories.tsx +143 -2
  66. package/emotion/es/examples/plasma_web/components/Segment/SegmentGroup.config.js +12 -9
  67. package/emotion/es/examples/plasma_web/components/Segment/SegmentItem.config.js +9 -9
  68. package/es/components/Segment/tokens.js +15 -1
  69. package/es/components/Segment/tokens.js.map +1 -1
  70. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.css +10 -4
  71. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +163 -87
  72. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
  73. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +34 -2
  74. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js.map +1 -1
  75. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles_1rr47x4.css +8 -0
  76. package/es/components/Segment/ui/SegmentGroup/variations/_vertical/base.js +5 -0
  77. package/es/components/Segment/ui/SegmentGroup/variations/_vertical/base.js.map +1 -0
  78. package/es/components/Segment/ui/SegmentGroup/variations/_vertical/base_11agnr.css +1 -0
  79. package/es/components/Segment/ui/SegmentItem/SegmentItem.css +7 -3
  80. package/es/components/Segment/ui/SegmentItem/SegmentItem.js +5 -3
  81. package/es/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
  82. package/es/components/Segment/ui/SegmentItem/SegmentItem.styles.js +30 -3
  83. package/es/components/Segment/ui/SegmentItem/SegmentItem.styles.js.map +1 -1
  84. package/es/components/Segment/ui/SegmentItem/SegmentItem.styles_f1jpip.css +6 -0
  85. package/es/components/Segment/ui/SegmentItem/variations/_view/base.js +1 -1
  86. package/es/components/Segment/ui/SegmentItem/variations/_view/base.js.map +1 -1
  87. package/es/components/Segment/ui/SegmentItem/variations/_view/base_168a47w.css +1 -0
  88. package/es/components/Tabs/ui/Tabs/Tabs.js +2 -2
  89. package/es/components/Tabs/ui/Tabs/Tabs.js.map +1 -1
  90. package/es/components/_Icon/Icon.assets/DisclosureDown.js +18 -0
  91. package/es/components/_Icon/Icon.assets/DisclosureDown.js.map +1 -0
  92. package/es/components/_Icon/Icon.assets/DisclosureUp.js +18 -0
  93. package/es/components/_Icon/Icon.assets/DisclosureUp.js.map +1 -0
  94. package/es/components/_Icon/Icons/IconDisclosureDown.js +19 -0
  95. package/es/components/_Icon/Icons/IconDisclosureDown.js.map +1 -0
  96. package/es/components/_Icon/Icons/IconDisclosureUp.js +19 -0
  97. package/es/components/_Icon/Icons/IconDisclosureUp.js.map +1 -0
  98. package/es/index.css +17 -7
  99. package/package.json +2 -2
  100. package/styled-components/cjs/components/Segment/README.md +61 -0
  101. package/styled-components/cjs/components/Segment/tokens.js +15 -1
  102. package/styled-components/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +156 -82
  103. package/styled-components/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +16 -4
  104. package/styled-components/cjs/components/Segment/ui/SegmentGroup/variations/_vertical/base.js +10 -0
  105. package/styled-components/cjs/components/Segment/ui/SegmentGroup/variations/_vertical/tokens.json +1 -0
  106. package/styled-components/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +4 -2
  107. package/styled-components/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles.js +23 -5
  108. package/styled-components/cjs/components/Segment/ui/SegmentItem/variations/_view/base.js +2 -1
  109. package/styled-components/cjs/components/Tabs/ui/Tabs/Tabs.js +2 -2
  110. package/styled-components/cjs/components/_Icon/Icon.assets/DisclosureDown.js +21 -0
  111. package/styled-components/cjs/components/_Icon/Icon.assets/DisclosureUp.js +21 -0
  112. package/styled-components/cjs/components/_Icon/Icons/IconDisclosureDown.js +22 -0
  113. package/styled-components/cjs/components/_Icon/Icons/IconDisclosureUp.js +22 -0
  114. package/styled-components/cjs/components/_Icon/index.js +14 -0
  115. package/styled-components/cjs/examples/plasma_web/components/Segment/Segment.stories.tsx +143 -2
  116. package/styled-components/cjs/examples/plasma_web/components/Segment/SegmentGroup.config.js +7 -4
  117. package/styled-components/cjs/examples/plasma_web/components/Segment/SegmentItem.config.js +8 -8
  118. package/styled-components/es/components/Segment/README.md +61 -0
  119. package/styled-components/es/components/Segment/tokens.js +15 -1
  120. package/styled-components/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +159 -85
  121. package/styled-components/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles.js +16 -4
  122. package/styled-components/es/components/Segment/ui/SegmentGroup/variations/_vertical/base.js +4 -0
  123. package/styled-components/es/components/Segment/ui/SegmentGroup/variations/_vertical/tokens.json +1 -0
  124. package/styled-components/es/components/Segment/ui/SegmentItem/SegmentItem.js +5 -3
  125. package/styled-components/es/components/Segment/ui/SegmentItem/SegmentItem.styles.js +22 -4
  126. package/styled-components/es/components/Segment/ui/SegmentItem/variations/_view/base.js +2 -1
  127. package/styled-components/es/components/Tabs/ui/Tabs/Tabs.js +2 -2
  128. package/styled-components/es/components/_Icon/Icon.assets/DisclosureDown.js +14 -0
  129. package/styled-components/es/components/_Icon/Icon.assets/DisclosureUp.js +14 -0
  130. package/styled-components/es/components/_Icon/Icons/IconDisclosureDown.js +15 -0
  131. package/styled-components/es/components/_Icon/Icons/IconDisclosureUp.js +15 -0
  132. package/styled-components/es/components/_Icon/index.js +2 -0
  133. package/styled-components/es/examples/plasma_web/components/Segment/Segment.stories.tsx +143 -2
  134. package/styled-components/es/examples/plasma_web/components/Segment/SegmentGroup.config.js +7 -4
  135. package/styled-components/es/examples/plasma_web/components/Segment/SegmentItem.config.js +8 -8
  136. package/types/components/Segment/tokens.d.ts +14 -0
  137. package/types/components/Segment/tokens.d.ts.map +1 -1
  138. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts +7 -0
  139. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts.map +1 -1
  140. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.styles.d.ts +12 -0
  141. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.styles.d.ts.map +1 -1
  142. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.types.d.ts +5 -1
  143. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.types.d.ts.map +1 -1
  144. package/types/components/Segment/ui/SegmentGroup/variations/_vertical/base.d.ts +2 -0
  145. package/types/components/Segment/ui/SegmentGroup/variations/_vertical/base.d.ts.map +1 -0
  146. package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts +4 -0
  147. package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts.map +1 -1
  148. package/types/components/Segment/ui/SegmentItem/SegmentItem.styles.d.ts +9 -1
  149. package/types/components/Segment/ui/SegmentItem/SegmentItem.styles.d.ts.map +1 -1
  150. package/types/components/Segment/ui/SegmentItem/SegmentItem.types.d.ts +8 -0
  151. package/types/components/Segment/ui/SegmentItem/SegmentItem.types.d.ts.map +1 -1
  152. package/types/components/Segment/ui/SegmentItem/variations/_view/base.d.ts.map +1 -1
  153. package/types/components/Tabs/ui/Tabs/Tabs.d.ts.map +1 -1
  154. package/types/components/_Icon/Icon.assets/DisclosureDown.d.ts +4 -0
  155. package/types/components/_Icon/Icon.assets/DisclosureDown.d.ts.map +1 -0
  156. package/types/components/_Icon/Icon.assets/DisclosureUp.d.ts +4 -0
  157. package/types/components/_Icon/Icon.assets/DisclosureUp.d.ts.map +1 -0
  158. package/types/components/_Icon/Icons/IconDisclosureDown.d.ts +4 -0
  159. package/types/components/_Icon/Icons/IconDisclosureDown.d.ts.map +1 -0
  160. package/types/components/_Icon/Icons/IconDisclosureUp.d.ts +4 -0
  161. package/types/components/_Icon/Icons/IconDisclosureUp.d.ts.map +1 -0
  162. package/types/components/_Icon/index.d.ts +2 -0
  163. package/types/components/_Icon/index.d.ts.map +1 -1
  164. package/types/examples/plasma_b2c/components/Segment/Segment.d.ts +3 -0
  165. package/types/examples/plasma_b2c/components/Segment/Segment.d.ts.map +1 -1
  166. package/types/examples/plasma_web/components/Segment/Segment.d.ts +6 -0
  167. package/types/examples/plasma_web/components/Segment/Segment.d.ts.map +1 -1
  168. package/types/examples/plasma_web/components/Segment/SegmentGroup.config.d.ts +3 -0
  169. package/types/examples/plasma_web/components/Segment/SegmentGroup.config.d.ts.map +1 -1
  170. package/types/examples/plasma_web/components/Segment/SegmentItem.config.d.ts.map +1 -1
  171. package/types/examples/sds_engineer/components/Segment/Segment.d.ts +3 -0
  172. package/types/examples/sds_engineer/components/Segment/Segment.d.ts.map +1 -1
  173. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.styles_m9i9p0.css +0 -4
  174. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.styles_18h1p52.css +0 -2
  175. package/cjs/components/Segment/ui/SegmentItem/variations/_view/base_1m1u2ys.css +0 -1
  176. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.styles_m9i9p0.css +0 -4
  177. package/es/components/Segment/ui/SegmentItem/SegmentItem.styles_18h1p52.css +0 -2
  178. package/es/components/Segment/ui/SegmentItem/variations/_view/base_1m1u2ys.css +0 -1
@@ -1,4 +1,4 @@
1
- var _excluded = ["id", "selectionMode", "pilled", "stretch", "filledBackground", "disabled", "size", "view", "children"];
1
+ var _excluded = ["id", "selectionMode", "pilled", "stretch", "vertical", "filledBackground", "disabled", "size", "view", "children"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
4
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -8,9 +8,9 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
8
8
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
9
9
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
10
10
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
11
- import React, { forwardRef, useCallback, useMemo, useState, Children, useEffect } from 'react';
12
- import { safeUseId, useCarousel } from '@salutejs/plasma-core';
13
- import { IconDisclosureLeft, IconDisclosureRight } from '../../../_Icon';
11
+ import React, { forwardRef, useCallback, useMemo, useState, useEffect, useRef } from 'react';
12
+ import { safeUseId } from '@salutejs/plasma-core';
13
+ import { IconDisclosureLeft, IconDisclosureRight, IconDisclosureDown, IconDisclosureUp } from '../../../_Icon';
14
14
  import { classes, tokens } from '../../tokens';
15
15
  import { cx } from '../../../../utils';
16
16
  import { useSegmentInner } from '../../SegmentProvider/SegmentProvider';
@@ -20,13 +20,26 @@ import { base as disabledCSS } from './variations/_disabled/base';
20
20
  import { base as pilledCSS } from './variations/_pilled/base';
21
21
  import { base as filledBackgroundCSS } from './variations/_filledBackgound/base';
22
22
  import { base as stretchCSS } from './variations/_stretch/base';
23
- import { StyledArrow, StyledContent, StyledContentWrapper, base } from './SegmentGroup.styles';
23
+ import { base as verticalCSS } from './variations/_vertical/base';
24
+ import { StyledContent, StyledContentWrapper, base, StyledLeftArrow, StyledRightArrow, StyledTopArrow, StyledBottomArrow } from './SegmentGroup.styles';
25
+ var Keys = /*#__PURE__*/function (Keys) {
26
+ Keys[Keys["end"] = 35] = "end";
27
+ Keys[Keys["home"] = 36] = "home";
28
+ Keys[Keys["left"] = 37] = "left";
29
+ Keys[Keys["right"] = 39] = "right";
30
+ return Keys;
31
+ }(Keys || {});
32
+ export var getChildNodes = function getChildNodes(wrapper) {
33
+ var container = wrapper === null || wrapper === void 0 ? void 0 : wrapper.firstChild;
34
+ return container ? Array.from(container === null || container === void 0 ? void 0 : container.childNodes) : [];
35
+ };
24
36
  export var segmentGroupRoot = function segmentGroupRoot(Root) {
25
37
  return /*#__PURE__*/forwardRef(function (props, outerRef) {
26
38
  var id = props.id,
27
39
  selectionMode = props.selectionMode,
28
40
  pilled = props.pilled,
29
41
  stretch = props.stretch,
42
+ vertical = props.vertical,
30
43
  _props$filledBackgrou = props.filledBackground,
31
44
  filledBackground = _props$filledBackgrou === void 0 ? false : _props$filledBackgrou,
32
45
  _props$disabled = props.disabled,
@@ -35,132 +48,189 @@ export var segmentGroupRoot = function segmentGroupRoot(Root) {
35
48
  view = props.view,
36
49
  children = props.children,
37
50
  rest = _objectWithoutProperties(props, _excluded);
51
+ var scrollRef = useRef(null);
52
+ var trackRef = useRef(null);
53
+ var leftArrowRef = useRef(null);
38
54
  var _useSegmentInner = useSegmentInner(),
39
55
  setSelectionMode = _useSegmentInner.setSelectionMode,
40
56
  setDisabledGroup = _useSegmentInner.setDisabledGroup;
41
- var _useState = useState(0),
57
+ var _useState = useState(true),
42
58
  _useState2 = _slicedToArray(_useState, 2),
43
- index = _useState2[0],
44
- setIndex = _useState2[1];
45
- var _useState3 = useState(false),
59
+ firstItemVisible = _useState2[0],
60
+ setFirstItemVisible = _useState2[1];
61
+ var _useState3 = useState(true),
46
62
  _useState4 = _slicedToArray(_useState3, 2),
47
- firstItemVisible = _useState4[0],
48
- setFirstItemVisible = _useState4[1];
49
- var _useState5 = useState(false),
50
- _useState6 = _slicedToArray(_useState5, 2),
51
- lastItemVisible = _useState6[0],
52
- setLastItemVisible = _useState6[1];
63
+ lastItemVisible = _useState4[0],
64
+ setLastItemVisible = _useState4[1];
53
65
  var uniqId = safeUseId();
54
66
  var segmentGroupId = id || uniqId;
55
67
  var pilledAttr = view !== 'clear' && pilled;
56
68
  var filledBackgroundAttr = view !== 'clear' && filledBackground;
69
+ var clipScrollClass = !stretch ? classes.segmentGroupClipScroll : undefined;
70
+ var clipShowAllClass = stretch ? classes.segmentGroupClipShowAll : undefined;
57
71
  var pilledClass = pilledAttr ? classes.segmentPilled : undefined;
58
72
  var filledClass = filledBackgroundAttr ? classes.segmentGroupFilledBackground : undefined;
59
73
  var stretchClass = firstItemVisible && lastItemVisible && stretch ? classes.segmentStretch : undefined;
60
- var items = (Children === null || Children === void 0 ? void 0 : Children.map(children, function (child) {
61
- return child;
62
- })) || [];
74
+ var verticalClass = vertical ? classes.segmentVertical : undefined;
63
75
  var onPrev = useCallback(function () {
64
- !disabled && setIndex(function (prevIndex) {
65
- return prevIndex > 0 ? prevIndex - 1 : 0;
76
+ if (disabled || !scrollRef.current) {
77
+ return;
78
+ }
79
+ var childNodes = getChildNodes(scrollRef.current);
80
+ var scrollLeft = Math.round(scrollRef.current.scrollLeft);
81
+ var firstOverflowingTab = childNodes.slice().reverse().find(function (child) {
82
+ if (!child || child.offsetLeft === undefined) {
83
+ return;
84
+ }
85
+ var tabStartX = child.offsetLeft;
86
+ return tabStartX < scrollLeft;
66
87
  });
67
- }, [disabled]);
88
+ firstOverflowingTab === null || firstOverflowingTab === void 0 || firstOverflowingTab.scrollIntoView({
89
+ block: 'nearest',
90
+ inline: 'nearest'
91
+ });
92
+ }, [disabled, scrollRef]);
68
93
  var onNext = useCallback(function () {
69
- !disabled && setIndex(function (prevIndex) {
70
- return prevIndex < items.length - 1 ? prevIndex + 1 : prevIndex;
94
+ if (disabled || !scrollRef.current) {
95
+ return;
96
+ }
97
+ var scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);
98
+ var childNodes = getChildNodes(scrollRef.current);
99
+ var lastOverflowingChild = childNodes.find(function (child) {
100
+ if (!child || child.offsetLeft === undefined) {
101
+ return;
102
+ }
103
+ var tabEndX = child.offsetLeft + child.offsetWidth;
104
+ return tabEndX > scrollRight;
71
105
  });
72
- }, [disabled]);
73
- var onIntersecting = function onIntersecting(setVisible) {
74
- return function (entries) {
75
- /*
76
- * Пробегаемся по элементам на которых есть слушатель события появления.
77
- * Если элемент находится в зоне видимости или выходит из нее, меняем значение флага видимости
78
- */
79
- entries.forEach(function (entry) {
80
- if (entry.isIntersecting) {
81
- setVisible(true);
82
- } else {
83
- setVisible(false);
84
- }
106
+ lastOverflowingChild === null || lastOverflowingChild === void 0 || lastOverflowingChild.scrollIntoView({
107
+ block: 'nearest',
108
+ inline: 'nearest'
109
+ });
110
+ }, [disabled, scrollRef]);
111
+ var onKeyDown = useCallback(function (event) {
112
+ var childNodes = getChildNodes(scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current);
113
+ var index = childNodes.findIndex(function (child) {
114
+ return document.activeElement === child;
115
+ });
116
+ var minIndex = 0;
117
+ var maxIndex = childNodes.length - 1;
118
+ var nextIndex;
119
+ switch (event.keyCode) {
120
+ case Keys.end:
121
+ nextIndex = maxIndex;
122
+ break;
123
+ case Keys.left:
124
+ nextIndex = index > minIndex ? index - 1 : index;
125
+ break;
126
+ case Keys.right:
127
+ nextIndex = index < maxIndex ? index + 1 : index;
128
+ break;
129
+ case Keys.home:
130
+ nextIndex = minIndex;
131
+ break;
132
+ default:
133
+ return;
134
+ }
135
+ if (nextIndex !== index) {
136
+ var _childNodes$nextIndex, _childNodes$nextIndex2;
137
+ event.preventDefault();
138
+ (_childNodes$nextIndex = childNodes[nextIndex]) === null || _childNodes$nextIndex === void 0 || _childNodes$nextIndex.focus();
139
+ (_childNodes$nextIndex2 = childNodes[nextIndex]) === null || _childNodes$nextIndex2 === void 0 || _childNodes$nextIndex2.scrollIntoView({
140
+ block: 'center',
141
+ inline: 'center',
142
+ behavior: 'smooth'
85
143
  });
86
- };
87
- };
88
- var _useCarousel = useCarousel({
89
- index: index,
90
- axis: 'x',
91
- scrollAlign: 'start',
92
- detectActive: true,
93
- debounceMs: 250,
94
- onIndexChange: setIndex
95
- }),
96
- scrollRef = _useCarousel.scrollRef,
97
- trackRef = _useCarousel.trackRef;
144
+ }
145
+ }, []);
146
+ var handleScroll = useCallback(function (event) {
147
+ event.stopPropagation();
148
+ if (vertical) {
149
+ var maxScrollTop = event.currentTarget.scrollHeight - event.currentTarget.clientHeight;
150
+ var scrollTop = Math.round(event.currentTarget.scrollTop);
151
+ setFirstItemVisible(scrollTop <= 0);
152
+ setLastItemVisible(scrollTop >= maxScrollTop);
153
+ return;
154
+ }
155
+ var maxScrollLeft = event.currentTarget.scrollWidth - event.currentTarget.clientWidth;
156
+ var scrollLeft = Math.round(event.currentTarget.scrollLeft);
157
+ setFirstItemVisible(scrollLeft <= 0);
158
+ setLastItemVisible(scrollLeft >= maxScrollLeft);
159
+ }, [vertical]);
160
+ useEffect(function () {
161
+ var _scrollRef$current3, _scrollRef$current4;
162
+ if (vertical) {
163
+ var _scrollRef$current, _scrollRef$current2;
164
+ setLastItemVisible(((_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.scrollHeight) === ((_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 ? void 0 : _scrollRef$current2.clientHeight));
165
+ return;
166
+ }
167
+ setLastItemVisible(((_scrollRef$current3 = scrollRef.current) === null || _scrollRef$current3 === void 0 ? void 0 : _scrollRef$current3.scrollWidth) === ((_scrollRef$current4 = scrollRef.current) === null || _scrollRef$current4 === void 0 ? void 0 : _scrollRef$current4.clientWidth));
168
+ }, [vertical]);
169
+
170
+ // Этот хук компенсирует появление левой/верхней стрелки при прокрутке
171
+ useEffect(function () {
172
+ if (firstItemVisible || !scrollRef.current || !leftArrowRef.current) {
173
+ return;
174
+ }
175
+ if (vertical) {
176
+ scrollRef.current.scrollTo({
177
+ top: Math.round(scrollRef.current.scrollTop + leftArrowRef.current.clientHeight)
178
+ });
179
+ return;
180
+ }
181
+ scrollRef.current.scrollTo({
182
+ left: Math.round(scrollRef.current.scrollLeft + leftArrowRef.current.clientWidth)
183
+ });
184
+ }, [firstItemVisible, vertical]);
98
185
  var PreviousButton = useMemo(function () {
99
- return /*#__PURE__*/React.createElement(StyledArrow, {
186
+ var ArrowNode = vertical ? StyledTopArrow : StyledLeftArrow;
187
+ return /*#__PURE__*/React.createElement(ArrowNode, {
100
188
  type: "button",
101
189
  "aria-label": "\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u0439 \u0441\u0435\u0433\u043C\u0435\u043D\u0442",
102
190
  onClick: onPrev,
103
191
  tabIndex: disabled ? -1 : 0,
104
192
  disabled: disabled
105
- }, /*#__PURE__*/React.createElement(IconDisclosureLeft, {
193
+ }, vertical ? /*#__PURE__*/React.createElement(IconDisclosureUp, {
194
+ color: "var(".concat(tokens.arrowColor, ")"),
195
+ size: "s"
196
+ }) : /*#__PURE__*/React.createElement(IconDisclosureLeft, {
106
197
  color: "var(".concat(tokens.arrowColor, ")")
107
198
  }));
108
- }, [onPrev]);
199
+ }, [onPrev, vertical]);
109
200
  var NextButton = useMemo(function () {
110
- return /*#__PURE__*/React.createElement(StyledArrow, {
201
+ var ArrowNode = vertical ? StyledBottomArrow : StyledRightArrow;
202
+ return /*#__PURE__*/React.createElement(ArrowNode, {
111
203
  type: "button",
112
204
  "aria-label": "\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0441\u0435\u0433\u043C\u0435\u043D\u0442",
113
205
  onClick: onNext,
114
206
  tabIndex: disabled ? -1 : 0,
115
207
  disabled: disabled
116
- }, /*#__PURE__*/React.createElement(IconDisclosureRight, {
208
+ }, vertical ? /*#__PURE__*/React.createElement(IconDisclosureDown, {
209
+ color: "var(".concat(tokens.arrowColor, ")"),
210
+ size: "s"
211
+ }) : /*#__PURE__*/React.createElement(IconDisclosureRight, {
117
212
  color: "var(".concat(tokens.arrowColor, ")")
118
213
  }));
119
- }, [onNext]);
214
+ }, [onNext, vertical]);
120
215
  useEffect(function () {
121
216
  selectionMode && setSelectionMode(selectionMode);
122
217
  setDisabledGroup(disabled);
123
218
  }, [selectionMode, disabled]);
124
- useEffect(function () {
125
- var _trackRef$current;
126
- // Intersection observer для первого сегмента
127
- var observeFirstItem = new IntersectionObserver(onIntersecting(setFirstItemVisible), {
128
- root: null,
129
- rootMargin: '0px',
130
- threshold: 0.5
131
- });
132
-
133
- // Intersection observer для последнего сегмента
134
- var observeLastItem = new IntersectionObserver(onIntersecting(setLastItemVisible), {
135
- root: null,
136
- rootMargin: '0px',
137
- threshold: 0.5
138
- });
139
-
140
- // получаем список сегментов внутри SegmentGroup
141
- var childrenArray = Array.from(((_trackRef$current = trackRef.current) === null || _trackRef$current === void 0 ? void 0 : _trackRef$current.children) || []);
142
- if (childrenArray.length) {
143
- // подписываемся на событие появление внутри SegmentGroup
144
- observeFirstItem.observe(childrenArray[0]);
145
- observeLastItem.observe(childrenArray[childrenArray.length - 1]);
146
- }
147
- return function () {
148
- // отписываемся от события появления внутри SegmentGroup
149
- observeFirstItem.disconnect();
150
- observeLastItem.disconnect();
151
- };
152
- }, [children]);
153
219
  return /*#__PURE__*/React.createElement(Root, _extends({
154
220
  view: view,
155
221
  size: size,
222
+ vertical: vertical,
156
223
  id: segmentGroupId,
157
224
  ref: outerRef,
158
225
  filledBackground: filledBackgroundAttr,
159
226
  disabled: disabled,
160
227
  pilled: pilledAttr,
161
- className: cx(pilledClass, filledClass, stretchClass)
228
+ className: cx(pilledClass, filledClass, stretchClass, verticalClass),
229
+ onKeyDown: onKeyDown
162
230
  }, rest), !firstItemVisible && PreviousButton, /*#__PURE__*/React.createElement(StyledContentWrapper, {
163
- ref: scrollRef
231
+ className: cx(clipScrollClass, clipShowAllClass),
232
+ ref: scrollRef,
233
+ onScroll: handleScroll
164
234
  }, /*#__PURE__*/React.createElement(StyledContent, {
165
235
  ref: trackRef
166
236
  }, children)), !lastItemVisible && NextButton);
@@ -190,6 +260,10 @@ export var segmentGroupConfig = {
190
260
  css: stretchCSS,
191
261
  attrs: true
192
262
  },
263
+ vertical: {
264
+ css: verticalCSS,
265
+ attrs: true
266
+ },
193
267
  filledBackground: {
194
268
  css: filledBackgroundCSS,
195
269
  attrs: true
@@ -3,19 +3,31 @@ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(
3
3
  import { css } from 'styled-components';
4
4
  import styled from 'styled-components';
5
5
  import { addFocus } from '../../../../mixins';
6
- import { tokens } from '../../tokens';
6
+ import { classes, tokens } from '../../tokens';
7
7
  export var base = /*#__PURE__*/css(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteral(["\n display: inline-flex;\n align-items: center;\n"])));
8
8
  export var StyledContent = /*#__PURE__*/styled.div.withConfig({
9
9
  componentId: "plasma-new-hope__sc-1kj8wok-0"
10
10
  })(["display:inline-flex;flex-direction:row;align-items:center;"]);
11
11
  export var StyledContentWrapper = /*#__PURE__*/styled.div.withConfig({
12
12
  componentId: "plasma-new-hope__sc-1kj8wok-1"
13
- })(["position:relative;height:100%;margin:0;padding:0.25rem;::-webkit-scrollbar{display:none;}overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scroll-snap-type:x mandatory;"]);
13
+ })(["margin:-0.125rem;padding:0.125rem;box-sizing:content-box;position:relative;height:100%;width:100%;display:flex;align-items:center;&.", "{overflow:scroll;scroll-padding:0.25rem;overscroll-behavior:contain;scrollbar-width:none;::-webkit-scrollbar{display:none;}}&.", "{overflow:visible;}"], classes.segmentGroupClipScroll, classes.segmentGroupClipShowAll);
14
14
  export var StyledArrow = /*#__PURE__*/styled.button.withConfig({
15
15
  componentId: "plasma-new-hope__sc-1kj8wok-2"
16
- })(["display:flex;cursor:pointer;border:none;background-color:transparent;padding:0;outline:none;", ";&[disabled]{cursor:not-allowed;}"], /*#__PURE__*/addFocus({
16
+ })(["display:flex;cursor:pointer;border:none;background-color:transparent;outline:none;", ";&[disabled]{cursor:not-allowed;}"], /*#__PURE__*/addFocus({
17
17
  outlineSize: '0.063rem',
18
18
  outlineOffset: '-0.125rem',
19
19
  outlineColor: /*#__PURE__*/"var(".concat(tokens.outlineFocusColor, ")"),
20
20
  outlineRadius: 'calc(var(--plasma_private-outline-radius) - 0.063rem)'
21
- }));
21
+ }));
22
+ export var StyledLeftArrow = /*#__PURE__*/styled(StyledArrow).withConfig({
23
+ componentId: "plasma-new-hope__sc-1kj8wok-3"
24
+ })(["padding:var(", ");padding-right:0;margin-right:0.1875rem;"], tokens.groupArrowPadding);
25
+ export var StyledRightArrow = /*#__PURE__*/styled(StyledArrow).withConfig({
26
+ componentId: "plasma-new-hope__sc-1kj8wok-4"
27
+ })(["padding:var(", ");padding-left:0;margin-left:0.1875rem;"], tokens.groupArrowPadding);
28
+ export var StyledTopArrow = /*#__PURE__*/styled(StyledArrow).withConfig({
29
+ componentId: "plasma-new-hope__sc-1kj8wok-5"
30
+ })(["padding:var(", ");padding-bottom:0;margin-bottom:0.1875rem;"], tokens.groupVerticalArrowPadding);
31
+ export var StyledBottomArrow = /*#__PURE__*/styled(StyledArrow).withConfig({
32
+ componentId: "plasma-new-hope__sc-1kj8wok-6"
33
+ })(["padding:var(", ");padding-top:0;margin-top:0.1875rem;"], tokens.groupVerticalArrowPadding);
@@ -0,0 +1,4 @@
1
+ import { css } from 'styled-components';
2
+ import { classes, tokens } from '../../../../tokens';
3
+ import { StyledContent, StyledContentWrapper } from '../../SegmentGroup.styles';
4
+ export var base = /*#__PURE__*/css(["&.", "{flex-direction:column;max-height:var(", ");", "{flex-direction:column;}", "{flex-direction:column;}}"], classes.segmentVertical, tokens.groupVerticalHeight, StyledContentWrapper, StyledContent);
@@ -1,4 +1,4 @@
1
- var _excluded = ["size", "view", "id", "label", "value", "pilled", "customHandleSelect", "aria-label"];
1
+ var _excluded = ["size", "view", "id", "label", "value", "pilled", "contentLeft", "contentRight", "customHandleSelect", "aria-label"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
3
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
4
4
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
@@ -11,7 +11,7 @@ import { base as sizeCSS } from './variations/_size/base';
11
11
  import { base as viewCSS } from './variations/_view/base';
12
12
  import { base as disabledCSS } from './variations/_disabled/base';
13
13
  import { base as pilledCSS } from './variations/_pilled/base';
14
- import { StyledContent, base } from './SegmentItem.styles';
14
+ import { StyledContent, base, LeftContent, RightContent } from './SegmentItem.styles';
15
15
  export var segmentItemRoot = function segmentItemRoot(Root) {
16
16
  return /*#__PURE__*/forwardRef(function (props, outerRef) {
17
17
  var size = props.size,
@@ -20,6 +20,8 @@ export var segmentItemRoot = function segmentItemRoot(Root) {
20
20
  label = props.label,
21
21
  value = props.value,
22
22
  pilled = props.pilled,
23
+ contentLeft = props.contentLeft,
24
+ contentRight = props.contentRight,
23
25
  customHandleSelect = props.customHandleSelect,
24
26
  ariaLabelExternal = props['aria-label'],
25
27
  rest = _objectWithoutProperties(props, _excluded);
@@ -56,7 +58,7 @@ export var segmentItemRoot = function segmentItemRoot(Root) {
56
58
  onClick: handleSelectSegment,
57
59
  tabIndex: disabledGroup ? -1 : 0,
58
60
  disabled: disabledGroup
59
- }, rest), /*#__PURE__*/React.createElement(StyledContent, null, label || value));
61
+ }, rest), contentLeft && /*#__PURE__*/React.createElement(LeftContent, null, contentLeft), /*#__PURE__*/React.createElement(StyledContent, null, label || value), contentRight && /*#__PURE__*/React.createElement(RightContent, null, contentRight));
60
62
  });
61
63
  };
62
64
  export var segmentItemConfig = {
@@ -2,13 +2,31 @@ import styled from 'styled-components';
2
2
  import { css } from 'styled-components';
3
3
  import { addFocus, applyEllipsis } from '../../../../mixins';
4
4
  import { tokens } from '../../tokens';
5
- export var base = /*#__PURE__*/css(["position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;align-items:center;appearance:none;border:none;outline:none;cursor:pointer;margin-left:var(", ");-webkit-tap-highlight-color:rgba(0,0,0,0);&:first-child{margin-left:0;}", ";"], tokens.itemMarginLeft, /*#__PURE__*/addFocus({
5
+ export var base = /*#__PURE__*/css(["position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;appearance:none;border:none;outline:none;cursor:pointer;margin-left:var(", ");-webkit-tap-highlight-color:rgba(0,0,0,0);&:first-child{margin-left:0;}", ";"], tokens.itemMarginLeft, /*#__PURE__*/addFocus({
6
6
  outlineSize: '0.063rem',
7
- outlineOffset: '-0.125rem',
7
+ outlineOffset: '0.063rem',
8
8
  outlineColor: /*#__PURE__*/"var(".concat(tokens.outlineFocusColor, ")"),
9
9
  outlineRadius: 'calc(var(--plasma_private-outline-radius) + 0.063rem)',
10
10
  customFocusRules: /*#__PURE__*/"\n &.focus-visible:focus,\n &[data-focus-visible-added] {\n &::before {\n z-index: 1;\n outline: none;\n box-shadow: 0 0 0 0.063rem var(".concat(tokens.outlineFocusColor, ");\n }\n }\n ")
11
11
  }));
12
- export var StyledContent = /*#__PURE__*/styled.div.withConfig({
12
+ export var StyledLeftIcon = /*#__PURE__*/styled.div.withConfig({
13
13
  componentId: "plasma-new-hope__sc-m3m328-0"
14
- })(["display:inline-block;width:fit-content;", ";"], /*#__PURE__*/applyEllipsis());
14
+ })(["margin-right:var(", ");"], tokens.itemIconMargin);
15
+ export var StyledRightIcon = /*#__PURE__*/styled.div.withConfig({
16
+ componentId: "plasma-new-hope__sc-m3m328-1"
17
+ })(["margin-left:var(", ");"], tokens.itemIconMargin);
18
+ export var StyledContent = /*#__PURE__*/styled.div.withConfig({
19
+ componentId: "plasma-new-hope__sc-m3m328-2"
20
+ })(["display:inline-block;width:fit-content;padding:var(", ");", ";margin-right:", ";margin-left:", ";"], tokens.itemContentPadding, /*#__PURE__*/applyEllipsis(), function (_ref) {
21
+ var hasRightMargin = _ref.hasRightMargin;
22
+ return hasRightMargin ? "var(".concat(tokens.itemIconMargin, ")") : '0';
23
+ }, function (_ref2) {
24
+ var hasLeftMargin = _ref2.hasLeftMargin;
25
+ return hasLeftMargin ? "var(".concat(tokens.itemIconMargin, ")") : '0';
26
+ });
27
+ export var RightContent = /*#__PURE__*/styled.div.withConfig({
28
+ componentId: "plasma-new-hope__sc-m3m328-3"
29
+ })(["display:flex;margin-left:var(", ");color:var(", ");"], tokens.itemIconMargin, tokens.itemAdditionalColor);
30
+ export var LeftContent = /*#__PURE__*/styled.div.withConfig({
31
+ componentId: "plasma-new-hope__sc-m3m328-4"
32
+ })(["display:flex;margin-right:var(", ");color:inherit;"], tokens.itemIconMargin);
@@ -1,3 +1,4 @@
1
1
  import { css } from 'styled-components';
2
2
  import { classes, tokens } from '../../../../tokens';
3
- export var base = /*#__PURE__*/css(["color:var(", ");background-color:var(", ");&:hover{color:var(", ");background-color:var(", ");}&.", "{color:var(", ");background-color:var(", ");&:hover{color:var(", ");background-color:var(", ");}}"], tokens.itemColor, tokens.itemBackgroundColor, tokens.itemColorHover, tokens.itemBackgroundColorHover, /*#__PURE__*/String(classes.selectedSegmentItem), tokens.itemSelectedColor, tokens.itemSelectedBackgroundColor, tokens.itemSelectedColorHover, tokens.itemSelectedBackgroundColorHover);
3
+ import { RightContent } from '../../SegmentItem.styles';
4
+ export var base = /*#__PURE__*/css(["color:var(", ");background-color:var(", ");&:hover{color:var(", ");background-color:var(", ");", "{color:var(", ");}}&.", "{color:var(", ");background-color:var(", ");", "{color:var(", ");}&:hover{color:var(", ");background-color:var(", ");", "{color:var(", ");}}}"], tokens.itemColor, tokens.itemBackgroundColor, tokens.itemColorHover, tokens.itemBackgroundColorHover, RightContent, tokens.itemAdditionalColorHover, /*#__PURE__*/String(classes.selectedSegmentItem), tokens.itemSelectedColor, tokens.itemSelectedBackgroundColor, RightContent, tokens.itemSelectedAdditionalColor, tokens.itemSelectedColorHover, tokens.itemSelectedBackgroundColorHover, RightContent, tokens.itemSelectedAdditionalColorHover);
@@ -136,7 +136,7 @@ export var tabsRoot = function tabsRoot(Root) {
136
136
  var scrollLeft = Math.round(event.currentTarget.scrollLeft);
137
137
  setFirstItemVisible(scrollLeft <= 0);
138
138
  setLastItemVisible(scrollLeft >= maxScrollLeft);
139
- }, [setFirstItemVisible, setLastItemVisible]);
139
+ }, []);
140
140
  var onKeyDown = useCallback(function (event) {
141
141
  if (index === undefined) {
142
142
  return;
@@ -184,7 +184,7 @@ export var tabsRoot = function tabsRoot(Root) {
184
184
  scrollRef.current.scrollTo({
185
185
  left: Math.round(scrollRef.current.scrollLeft + leftArrowRef.current.clientWidth)
186
186
  });
187
- }, [firstItemVisible, scrollRef, leftArrowRef]);
187
+ }, [firstItemVisible]);
188
188
  return /*#__PURE__*/React.createElement(TabsContext.Provider, {
189
189
  value: refs
190
190
  }, /*#__PURE__*/React.createElement(Root, _extends({
@@ -0,0 +1,14 @@
1
+ var _path;
2
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
+ import React from 'react';
4
+ export var DisclosureDown = function DisclosureDown(props) {
5
+ return /*#__PURE__*/React.createElement("svg", _extends({
6
+ width: "100%",
7
+ viewBox: "0 0 24 24",
8
+ fill: "none"
9
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
10
+ d: "M17.78 18.21C17.48 17.92 17.01 17.92 16.71 18.21L12.75 22.18L8.78 18.21C8.48 17.92 8.01 17.92 7.71 18.21C7.42 18.51 7.42 18.98 7.71 19.28L12.75 24.31L17.78 19.28C18.07 18.98 18.07 18.51 17.78 18.21Z",
11
+ fillRule: "evenodd",
12
+ fill: "currentColor"
13
+ })));
14
+ };
@@ -0,0 +1,14 @@
1
+ var _path;
2
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
+ import React from 'react';
4
+ export var DisclosureUp = function DisclosureUp(props) {
5
+ return /*#__PURE__*/React.createElement("svg", _extends({
6
+ width: "100%",
7
+ viewBox: "0 0 24 24",
8
+ fill: "none"
9
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
10
+ d: "M17.18 8.18C16.89 8.47 16.41 8.47 16.12 8.18L12.15 4.21L8.18 8.18C7.89 8.47 7.41 8.47 7.12 8.18C6.83 7.89 6.83 7.41 7.12 7.12L12.15 2.09L17.18 7.12C17.47 7.41 17.47 7.89 17.18 8.18Z",
11
+ fillRule: "evenodd",
12
+ fill: "currentColor"
13
+ })));
14
+ };
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { DisclosureDown } from '../Icon.assets/DisclosureDown';
3
+ import { IconRoot } from '../IconRoot';
4
+ export var IconDisclosureDown = function IconDisclosureDown(_ref) {
5
+ var _ref$size = _ref.size,
6
+ size = _ref$size === void 0 ? 's' : _ref$size,
7
+ color = _ref.color,
8
+ className = _ref.className;
9
+ return /*#__PURE__*/React.createElement(IconRoot, {
10
+ className: className,
11
+ size: size,
12
+ color: color,
13
+ icon: DisclosureDown
14
+ });
15
+ };
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { DisclosureUp } from '../Icon.assets/DisclosureUp';
3
+ import { IconRoot } from '../IconRoot';
4
+ export var IconDisclosureUp = function IconDisclosureUp(_ref) {
5
+ var _ref$size = _ref.size,
6
+ size = _ref$size === void 0 ? 's' : _ref$size,
7
+ color = _ref.color,
8
+ className = _ref.className;
9
+ return /*#__PURE__*/React.createElement(IconRoot, {
10
+ className: className,
11
+ size: size,
12
+ color: color,
13
+ icon: DisclosureUp
14
+ });
15
+ };
@@ -1,6 +1,8 @@
1
1
  export { IconDisclosureLeft } from './Icons/IconDisclosureLeft';
2
2
  export { IconDisclosureRight } from './Icons/IconDisclosureRight';
3
3
  export { IconDisclosureDownFill } from './Icons/IconDisclosureDownFill';
4
+ export { IconDisclosureDown } from './Icons/IconDisclosureDown';
5
+ export { IconDisclosureUp } from './Icons/IconDisclosureUp';
4
6
  export { IconMic } from './Icons/IconMic';
5
7
  export { IconChevronLeft } from './Icons/IconChevronLeft';
6
8
  export { IconChevronDoubleLeft } from './Icons/IconChevronDoubleLeft';