@alfalab/core-components-tabs 8.0.8 → 8.1.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 (270) hide show
  1. package/collapsible.d.ts +1 -6
  2. package/collapsible.js +5 -16
  3. package/components/primary-tablist/Component.collapsible.d.ts +2 -2
  4. package/components/primary-tablist/Component.collapsible.js +11 -11
  5. package/components/primary-tablist/Component.d.ts +2 -2
  6. package/components/primary-tablist/Component.desktop.js +8 -2
  7. package/components/primary-tablist/Component.js +8 -2
  8. package/components/primary-tablist/Component.mobile.js +12 -4
  9. package/components/primary-tablist/Component.responsive.js +7 -2
  10. package/components/primary-tablist/index.css +31 -29
  11. package/components/primary-tablist/mobile.css +34 -32
  12. package/components/scroll-controls/Component.d.ts +11 -0
  13. package/components/scroll-controls/Component.js +53 -0
  14. package/components/scroll-controls/index.css +94 -0
  15. package/components/scroll-controls/index.d.ts +1 -0
  16. package/components/scroll-controls/index.js +17 -0
  17. package/components/scroll-controls/utils.d.ts +7 -0
  18. package/components/scroll-controls/utils.js +56 -0
  19. package/components/scrollable-container/Component.d.ts +14 -2
  20. package/components/scrollable-container/Component.js +45 -8
  21. package/components/scrollable-container/index.css +10 -6
  22. package/components/scrollable-container/index.js +7 -0
  23. package/components/secondary-tablist/Component.d.ts +2 -2
  24. package/components/secondary-tablist/Component.desktop.js +8 -2
  25. package/components/secondary-tablist/Component.js +9 -3
  26. package/components/secondary-tablist/Component.mobile.d.ts +2 -2
  27. package/components/secondary-tablist/Component.mobile.js +10 -4
  28. package/components/secondary-tablist/Component.responsive.d.ts +1 -1
  29. package/components/secondary-tablist/Component.responsive.js +9 -3
  30. package/components/secondary-tablist/index.css +11 -11
  31. package/components/secondary-tablist/mobile.css +13 -13
  32. package/components/tab/Component.js +1 -1
  33. package/components/tab/index.css +3 -3
  34. package/components/tabs/Component.collapsible.d.ts +6 -0
  35. package/components/tabs/{Component.collabsible.desktop.js → Component.collapsible.js} +5 -6
  36. package/components/tabs/Component.d.ts +1 -1
  37. package/components/tabs/Component.desktop.js +8 -2
  38. package/components/tabs/Component.js +2 -2
  39. package/components/tabs/Component.mobile.d.ts +1 -1
  40. package/components/tabs/Component.mobile.js +8 -3
  41. package/components/tabs/Component.responsive.js +8 -3
  42. package/cssm/collapsible.d.ts +1 -6
  43. package/cssm/collapsible.js +4 -15
  44. package/cssm/components/primary-tablist/Component.collapsible.d.ts +2 -2
  45. package/cssm/components/primary-tablist/Component.collapsible.js +12 -11
  46. package/cssm/components/primary-tablist/Component.d.ts +2 -2
  47. package/cssm/components/primary-tablist/Component.desktop.js +8 -1
  48. package/cssm/components/primary-tablist/Component.js +9 -2
  49. package/cssm/components/primary-tablist/Component.mobile.js +8 -1
  50. package/cssm/components/primary-tablist/Component.responsive.js +7 -0
  51. package/cssm/components/primary-tablist/index.module.css +2 -0
  52. package/cssm/components/scroll-controls/Component.d.ts +11 -0
  53. package/cssm/components/scroll-controls/Component.js +52 -0
  54. package/cssm/components/scroll-controls/index.d.ts +1 -0
  55. package/cssm/components/scroll-controls/index.js +18 -0
  56. package/cssm/components/scroll-controls/index.module.css +93 -0
  57. package/cssm/components/scroll-controls/utils.d.ts +7 -0
  58. package/cssm/components/scroll-controls/utils.js +56 -0
  59. package/cssm/components/scrollable-container/Component.d.ts +14 -2
  60. package/cssm/components/scrollable-container/Component.js +45 -7
  61. package/cssm/components/scrollable-container/index.js +8 -0
  62. package/cssm/components/scrollable-container/index.module.css +5 -1
  63. package/cssm/components/secondary-tablist/Component.d.ts +2 -2
  64. package/cssm/components/secondary-tablist/Component.desktop.js +8 -1
  65. package/cssm/components/secondary-tablist/Component.js +10 -3
  66. package/cssm/components/secondary-tablist/Component.mobile.d.ts +2 -2
  67. package/cssm/components/secondary-tablist/Component.mobile.js +9 -2
  68. package/cssm/components/secondary-tablist/Component.responsive.d.ts +1 -1
  69. package/cssm/components/secondary-tablist/Component.responsive.js +9 -2
  70. package/cssm/components/tabs/Component.collapsible.d.ts +6 -0
  71. package/cssm/components/tabs/{Component.collabsible.desktop.js → Component.collapsible.js} +4 -5
  72. package/cssm/components/tabs/Component.d.ts +1 -1
  73. package/cssm/components/tabs/Component.desktop.js +7 -0
  74. package/cssm/components/tabs/Component.js +2 -2
  75. package/cssm/components/tabs/Component.mobile.d.ts +1 -1
  76. package/cssm/components/tabs/Component.mobile.js +7 -0
  77. package/cssm/components/tabs/Component.responsive.js +7 -0
  78. package/cssm/desktop.js +7 -0
  79. package/cssm/index-c76d6398.d.ts +0 -1
  80. package/cssm/index.js +7 -0
  81. package/cssm/mobile.js +7 -0
  82. package/cssm/shared.js +8 -1
  83. package/cssm/typings.d.ts +13 -2
  84. package/desktop.js +8 -2
  85. package/esm/collapsible.d.ts +1 -6
  86. package/esm/collapsible.js +4 -10
  87. package/esm/components/primary-tablist/Component.collapsible.d.ts +2 -2
  88. package/esm/components/primary-tablist/Component.collapsible.js +11 -11
  89. package/esm/components/primary-tablist/Component.d.ts +2 -2
  90. package/esm/components/primary-tablist/Component.desktop.js +8 -2
  91. package/esm/components/primary-tablist/Component.js +8 -2
  92. package/esm/components/primary-tablist/Component.mobile.js +11 -3
  93. package/esm/components/primary-tablist/Component.responsive.js +7 -2
  94. package/esm/components/primary-tablist/index.css +31 -29
  95. package/esm/components/primary-tablist/mobile.css +34 -32
  96. package/esm/components/scroll-controls/Component.d.ts +11 -0
  97. package/esm/components/scroll-controls/Component.js +43 -0
  98. package/esm/components/scroll-controls/index.css +94 -0
  99. package/esm/components/scroll-controls/index.d.ts +1 -0
  100. package/esm/components/scroll-controls/index.js +9 -0
  101. package/esm/components/scroll-controls/utils.d.ts +7 -0
  102. package/esm/components/scroll-controls/utils.js +50 -0
  103. package/esm/components/scrollable-container/Component.d.ts +14 -2
  104. package/esm/components/scrollable-container/Component.js +46 -9
  105. package/esm/components/scrollable-container/index.css +10 -6
  106. package/esm/components/scrollable-container/index.js +7 -0
  107. package/esm/components/secondary-tablist/Component.d.ts +2 -2
  108. package/esm/components/secondary-tablist/Component.desktop.js +8 -2
  109. package/esm/components/secondary-tablist/Component.js +9 -3
  110. package/esm/components/secondary-tablist/Component.mobile.d.ts +2 -2
  111. package/esm/components/secondary-tablist/Component.mobile.js +10 -4
  112. package/esm/components/secondary-tablist/Component.responsive.d.ts +1 -1
  113. package/esm/components/secondary-tablist/Component.responsive.js +9 -3
  114. package/esm/components/secondary-tablist/index.css +11 -11
  115. package/esm/components/secondary-tablist/mobile.css +13 -13
  116. package/esm/components/tab/Component.js +1 -1
  117. package/esm/components/tab/index.css +3 -3
  118. package/esm/components/tabs/Component.collapsible.d.ts +6 -0
  119. package/esm/components/tabs/{Component.collabsible.desktop.js → Component.collapsible.js} +5 -6
  120. package/esm/components/tabs/Component.d.ts +1 -1
  121. package/esm/components/tabs/Component.desktop.js +8 -2
  122. package/esm/components/tabs/Component.js +2 -2
  123. package/esm/components/tabs/Component.mobile.d.ts +1 -1
  124. package/esm/components/tabs/Component.mobile.js +8 -3
  125. package/esm/components/tabs/Component.responsive.js +8 -3
  126. package/esm/desktop.js +8 -2
  127. package/esm/index-c76d6398.d.ts +0 -1
  128. package/esm/index.js +8 -3
  129. package/esm/index.module-7fe2e8dc.js +4 -0
  130. package/esm/index.module-fbff2d78.js +4 -0
  131. package/esm/mobile.js +8 -3
  132. package/esm/shared.js +7 -1
  133. package/esm/typings.d.ts +13 -2
  134. package/index-c76d6398.d.ts +0 -1
  135. package/index-ebda875c.d.ts +86 -21
  136. package/index.js +8 -3
  137. package/index.module-447ba3e0.js +6 -0
  138. package/index.module-ee99c069.js +6 -0
  139. package/mobile.js +8 -3
  140. package/modern/collapsible.d.ts +1 -6
  141. package/modern/collapsible.js +4 -10
  142. package/modern/components/primary-tablist/Component.collapsible.d.ts +2 -2
  143. package/modern/components/primary-tablist/Component.collapsible.js +11 -11
  144. package/modern/components/primary-tablist/Component.d.ts +2 -2
  145. package/modern/components/primary-tablist/Component.desktop.js +8 -2
  146. package/modern/components/primary-tablist/Component.js +8 -2
  147. package/modern/components/primary-tablist/Component.mobile.js +11 -3
  148. package/modern/components/primary-tablist/Component.responsive.js +7 -2
  149. package/modern/components/primary-tablist/index.css +31 -29
  150. package/modern/components/primary-tablist/mobile.css +34 -32
  151. package/modern/components/scroll-controls/Component.d.ts +11 -0
  152. package/modern/components/scroll-controls/Component.js +40 -0
  153. package/modern/components/scroll-controls/index.css +94 -0
  154. package/modern/components/scroll-controls/index.d.ts +1 -0
  155. package/modern/components/scroll-controls/index.js +8 -0
  156. package/modern/components/scroll-controls/utils.d.ts +7 -0
  157. package/modern/components/scroll-controls/utils.js +50 -0
  158. package/modern/components/scrollable-container/Component.d.ts +14 -2
  159. package/modern/components/scrollable-container/Component.js +44 -9
  160. package/modern/components/scrollable-container/index.css +10 -6
  161. package/modern/components/scrollable-container/index.js +6 -0
  162. package/modern/components/secondary-tablist/Component.d.ts +2 -2
  163. package/modern/components/secondary-tablist/Component.desktop.js +8 -2
  164. package/modern/components/secondary-tablist/Component.js +9 -3
  165. package/modern/components/secondary-tablist/Component.mobile.d.ts +2 -2
  166. package/modern/components/secondary-tablist/Component.mobile.js +9 -3
  167. package/modern/components/secondary-tablist/Component.responsive.d.ts +1 -1
  168. package/modern/components/secondary-tablist/Component.responsive.js +9 -3
  169. package/modern/components/secondary-tablist/index.css +11 -11
  170. package/modern/components/secondary-tablist/mobile.css +13 -13
  171. package/modern/components/tab/Component.js +1 -1
  172. package/modern/components/tab/index.css +3 -3
  173. package/modern/components/tabs/Component.collapsible.d.ts +6 -0
  174. package/modern/components/tabs/{Component.collabsible.desktop.js → Component.collapsible.js} +4 -5
  175. package/modern/components/tabs/Component.d.ts +1 -1
  176. package/modern/components/tabs/Component.desktop.js +8 -2
  177. package/modern/components/tabs/Component.js +2 -2
  178. package/modern/components/tabs/Component.mobile.d.ts +1 -1
  179. package/modern/components/tabs/Component.mobile.js +8 -3
  180. package/modern/components/tabs/Component.responsive.js +8 -3
  181. package/modern/desktop.js +8 -2
  182. package/modern/index-c76d6398.d.ts +0 -1
  183. package/modern/index.js +8 -3
  184. package/modern/index.module-22ff4191.js +4 -0
  185. package/modern/index.module-3f8f9d5d.js +4 -0
  186. package/modern/mobile.js +8 -3
  187. package/modern/shared.js +6 -0
  188. package/modern/typings.d.ts +13 -2
  189. package/package.json +5 -2
  190. package/shared.js +7 -1
  191. package/src/collapsible.ts +1 -9
  192. package/src/components/primary-tablist/Component.collapsible.tsx +6 -7
  193. package/src/components/primary-tablist/Component.desktop.tsx +1 -1
  194. package/src/components/primary-tablist/Component.mobile.tsx +6 -1
  195. package/src/components/primary-tablist/Component.tsx +6 -2
  196. package/src/components/primary-tablist/index.module.css +4 -0
  197. package/src/components/scroll-controls/Component.tsx +78 -0
  198. package/src/components/scroll-controls/index.module.css +68 -0
  199. package/src/components/scroll-controls/index.ts +1 -0
  200. package/src/components/scroll-controls/utils.ts +60 -0
  201. package/src/components/scrollable-container/Component.tsx +81 -12
  202. package/src/components/scrollable-container/index.module.css +7 -1
  203. package/src/components/secondary-tablist/Component.desktop.tsx +1 -0
  204. package/src/components/secondary-tablist/Component.mobile.tsx +4 -2
  205. package/src/components/secondary-tablist/Component.responsive.tsx +1 -2
  206. package/src/components/secondary-tablist/Component.tsx +10 -2
  207. package/src/components/tabs/Component.collapsible.tsx +15 -0
  208. package/src/components/tabs/Component.mobile.tsx +1 -1
  209. package/src/components/tabs/Component.tsx +4 -0
  210. package/src/typings.ts +16 -0
  211. package/typings.d.ts +13 -2
  212. package/components/primary-tablist/Component.collapsible.desktop.d.ts +0 -5
  213. package/components/primary-tablist/Component.collapsible.desktop.js +0 -32
  214. package/components/primary-tablist/Component.collapsible.mobile.d.ts +0 -6
  215. package/components/primary-tablist/Component.collapsible.mobile.js +0 -35
  216. package/components/primary-tablist/Component.collapsible.responsive.d.ts +0 -5
  217. package/components/primary-tablist/Component.collapsible.responsive.js +0 -36
  218. package/components/tabs/Component.collabsible.desktop.d.ts +0 -6
  219. package/components/tabs/Component.collapsible.mobile.d.ts +0 -6
  220. package/components/tabs/Component.collapsible.mobile.js +0 -35
  221. package/components/tabs/Component.collapsible.responsive.d.ts +0 -6
  222. package/components/tabs/Component.collapsible.responsive.js +0 -37
  223. package/cssm/components/primary-tablist/Component.collapsible.desktop.d.ts +0 -5
  224. package/cssm/components/primary-tablist/Component.collapsible.desktop.js +0 -33
  225. package/cssm/components/primary-tablist/Component.collapsible.mobile.d.ts +0 -6
  226. package/cssm/components/primary-tablist/Component.collapsible.mobile.js +0 -37
  227. package/cssm/components/primary-tablist/Component.collapsible.responsive.d.ts +0 -5
  228. package/cssm/components/primary-tablist/Component.collapsible.responsive.js +0 -36
  229. package/cssm/components/tabs/Component.collabsible.desktop.d.ts +0 -6
  230. package/cssm/components/tabs/Component.collapsible.mobile.d.ts +0 -6
  231. package/cssm/components/tabs/Component.collapsible.mobile.js +0 -35
  232. package/cssm/components/tabs/Component.collapsible.responsive.d.ts +0 -6
  233. package/cssm/components/tabs/Component.collapsible.responsive.js +0 -37
  234. package/esm/components/primary-tablist/Component.collapsible.desktop.d.ts +0 -5
  235. package/esm/components/primary-tablist/Component.collapsible.desktop.js +0 -24
  236. package/esm/components/primary-tablist/Component.collapsible.mobile.d.ts +0 -6
  237. package/esm/components/primary-tablist/Component.collapsible.mobile.js +0 -26
  238. package/esm/components/primary-tablist/Component.collapsible.responsive.d.ts +0 -5
  239. package/esm/components/primary-tablist/Component.collapsible.responsive.js +0 -28
  240. package/esm/components/tabs/Component.collabsible.desktop.d.ts +0 -6
  241. package/esm/components/tabs/Component.collapsible.mobile.d.ts +0 -6
  242. package/esm/components/tabs/Component.collapsible.mobile.js +0 -27
  243. package/esm/components/tabs/Component.collapsible.responsive.d.ts +0 -6
  244. package/esm/components/tabs/Component.collapsible.responsive.js +0 -29
  245. package/esm/index.module-511c86f3.js +0 -4
  246. package/esm/index.module-ffeeb976.js +0 -4
  247. package/esm/mobile.module-34deaa77.js +0 -4
  248. package/index.module-0d8ea41a.js +0 -6
  249. package/index.module-38e4686f.js +0 -6
  250. package/mobile.module-a305e8da.js +0 -6
  251. package/modern/components/primary-tablist/Component.collapsible.desktop.d.ts +0 -5
  252. package/modern/components/primary-tablist/Component.collapsible.desktop.js +0 -20
  253. package/modern/components/primary-tablist/Component.collapsible.mobile.d.ts +0 -6
  254. package/modern/components/primary-tablist/Component.collapsible.mobile.js +0 -25
  255. package/modern/components/primary-tablist/Component.collapsible.responsive.d.ts +0 -5
  256. package/modern/components/primary-tablist/Component.collapsible.responsive.js +0 -26
  257. package/modern/components/tabs/Component.collabsible.desktop.d.ts +0 -6
  258. package/modern/components/tabs/Component.collapsible.mobile.d.ts +0 -6
  259. package/modern/components/tabs/Component.collapsible.mobile.js +0 -23
  260. package/modern/components/tabs/Component.collapsible.responsive.d.ts +0 -6
  261. package/modern/components/tabs/Component.collapsible.responsive.js +0 -25
  262. package/modern/index.module-4f82d773.js +0 -4
  263. package/modern/index.module-6f255828.js +0 -4
  264. package/modern/mobile.module-02182f0f.js +0 -4
  265. package/src/components/primary-tablist/Component.collapsible.desktop.tsx +0 -11
  266. package/src/components/primary-tablist/Component.collapsible.mobile.tsx +0 -27
  267. package/src/components/primary-tablist/Component.collapsible.responsive.tsx +0 -34
  268. package/src/components/tabs/Component.collabsible.desktop.tsx +0 -15
  269. package/src/components/tabs/Component.collapsible.mobile.tsx +0 -15
  270. package/src/components/tabs/Component.collapsible.responsive.tsx +0 -12
@@ -1,8 +1,7 @@
1
1
  import { __rest, __assign } from 'tslib';
2
2
  import React from 'react';
3
- import { CollapsiblePrimaryTabListDesktop } from '../primary-tablist/Component.collapsible.desktop.js';
3
+ import { CollapsiblePrimaryTabList } from '../primary-tablist/Component.collapsible.js';
4
4
  import { Tabs } from './Component.js';
5
- import '../primary-tablist/Component.collapsible.js';
6
5
  import 'classnames';
7
6
  import '@alfalab/core-components-badge/esm';
8
7
  import '@alfalab/core-components-keyboard-focusable/esm';
@@ -16,11 +15,11 @@ import '../../hooks/use-tabs.js';
16
15
  import '@alfalab/core-components-shared/esm';
17
16
  import '../../synthetic-events.js';
18
17
  import '../title/Component.js';
19
- import '../../index.module-511c86f3.js';
18
+ import '../../index.module-7fe2e8dc.js';
20
19
 
21
- var TabsCollapsibleDesktop = function (_a) {
20
+ var TabsCollapsible = function (_a) {
22
21
  var restProps = __rest(_a, []);
23
- return (React.createElement(Tabs, __assign({ TabList: CollapsiblePrimaryTabListDesktop }, restProps)));
22
+ return (React.createElement(Tabs, __assign({ TabList: CollapsiblePrimaryTabList }, restProps)));
24
23
  };
25
24
 
26
- export { TabsCollapsibleDesktop };
25
+ export { TabsCollapsible };
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import React from 'react';
3
3
  import { TabsProps } from "../../typings";
4
- declare const Tabs: ({ TabList, className, containerClassName, size, defaultMatchMediaValue, children, selectedId, scrollable, collapsedTabsIds, fullWidthScroll, keepMounted, dataTestId, onChange, breakpoint, }: Omit<TabsProps, 'view'>) => React.JSX.Element;
4
+ declare const Tabs: ({ TabList, className, containerClassName, size, defaultMatchMediaValue, children, selectedId, scrollable, collapsedTabsIds, fullWidthScroll, keepMounted, dataTestId, onChange, breakpoint, tagShape, tagView, }: Omit<TabsProps, 'view'>) => React.JSX.Element;
5
5
  export { Tabs };
@@ -10,11 +10,17 @@ import '../../hooks/use-tabs.js';
10
10
  import '@alfalab/core-components-shared/esm';
11
11
  import '../scrollable-container/Component.js';
12
12
  import 'compute-scroll-into-view';
13
+ import '../scroll-controls/Component.js';
14
+ import 'lodash.debounce';
15
+ import '@alfalab/core-components-icon-button/esm';
16
+ import '@alfalab/icons-glyph/ChevronLeftMIcon';
17
+ import '@alfalab/icons-glyph/ChevronRightMIcon';
18
+ import '../scroll-controls/utils.js';
13
19
  import '../title/Component.js';
14
- import '../../index.module-511c86f3.js';
20
+ import '../../index.module-7fe2e8dc.js';
15
21
  import '@alfalab/core-components-tag/esm/desktop';
16
22
  import '../secondary-tablist/Component.js';
17
- import '../../index.module-ffeeb976.js';
23
+ import '../../index.module-fbff2d78.js';
18
24
 
19
25
  var views = {
20
26
  primary: PrimaryTabListDesktop,
@@ -1,7 +1,7 @@
1
1
  import React, { cloneElement } from 'react';
2
2
 
3
3
  var Tabs = function (_a) {
4
- var TabList = _a.TabList, className = _a.className, containerClassName = _a.containerClassName, size = _a.size, defaultMatchMediaValue = _a.defaultMatchMediaValue, children = _a.children, selectedId = _a.selectedId, scrollable = _a.scrollable, 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, _d = _a.breakpoint, breakpoint = _d === void 0 ? 1024 : _d;
4
+ var TabList = _a.TabList, className = _a.className, containerClassName = _a.containerClassName, size = _a.size, defaultMatchMediaValue = _a.defaultMatchMediaValue, children = _a.children, selectedId = _a.selectedId, scrollable = _a.scrollable, 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, _d = _a.breakpoint, breakpoint = _d === void 0 ? 1024 : _d, tagShape = _a.tagShape, tagView = _a.tagView;
5
5
  var tabsArray = React.Children.toArray(children);
6
6
  var titles = tabsArray.map(function (_a) {
7
7
  var _b = _a.props, title = _b.title, id = _b.id, rightAddons = _b.rightAddons, disabled = _b.disabled, hidden = _b.hidden, toggleClassName = _b.toggleClassName, toggleTestId = _b.dataTestId;
@@ -17,7 +17,7 @@ var Tabs = function (_a) {
17
17
  });
18
18
  var tabs = tabsArray.filter(function (tab) { return tab.props.id === selectedId || tab.props.keepMounted || keepMounted; });
19
19
  return (React.createElement("div", { className: className },
20
- React.createElement(TabList, { containerClassName: containerClassName, size: size, titles: titles, selectedId: selectedId, scrollable: scrollable, collapsedTabsIds: collapsedTabsIds, onChange: onChange, dataTestId: dataTestId, defaultMatchMediaValue: defaultMatchMediaValue, fullWidthScroll: fullWidthScroll, breakpoint: breakpoint }),
20
+ React.createElement(TabList, { containerClassName: containerClassName, size: size, titles: titles, selectedId: selectedId, scrollable: scrollable, collapsedTabsIds: collapsedTabsIds, onChange: onChange, dataTestId: dataTestId, defaultMatchMediaValue: defaultMatchMediaValue, fullWidthScroll: fullWidthScroll, breakpoint: breakpoint, tagShape: tagShape, tagView: tagView }),
21
21
  tabs.map(function (tab) { return cloneElement(tab, { hidden: tab.props.id !== selectedId }); })));
22
22
  };
23
23
 
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import React from 'react';
3
3
  import { TabsProps } from "../../typings";
4
- type TabsMobileProps = Omit<TabsProps, 'TabList' | 'size' | 'collapsedTabsIds'>;
4
+ type TabsMobileProps = Omit<TabsProps, 'TabList' | 'collapsedTabsIds'>;
5
5
  declare const TabsMobile: ({ view, scrollable, ...restProps }: TabsMobileProps) => React.JSX.Element;
6
6
  export { TabsMobileProps, TabsMobile };
@@ -10,12 +10,17 @@ import '../../hooks/use-tabs.js';
10
10
  import '@alfalab/core-components-shared/esm';
11
11
  import '../scrollable-container/Component.js';
12
12
  import 'compute-scroll-into-view';
13
+ import '../scroll-controls/Component.js';
14
+ import 'lodash.debounce';
15
+ import '@alfalab/core-components-icon-button/esm';
16
+ import '@alfalab/icons-glyph/ChevronLeftMIcon';
17
+ import '@alfalab/icons-glyph/ChevronRightMIcon';
18
+ import '../scroll-controls/utils.js';
13
19
  import '../title/Component.js';
14
- import '../../index.module-511c86f3.js';
15
- import '../../mobile.module-34deaa77.js';
20
+ import '../../index.module-7fe2e8dc.js';
16
21
  import '@alfalab/core-components-tag/esm/mobile';
17
22
  import '../secondary-tablist/Component.js';
18
- import '../../index.module-ffeeb976.js';
23
+ import '../../index.module-fbff2d78.js';
19
24
 
20
25
  var views = {
21
26
  primary: PrimaryTabListMobile,
@@ -12,14 +12,19 @@ import '../../hooks/use-tabs.js';
12
12
  import '@alfalab/core-components-shared/esm';
13
13
  import '../scrollable-container/Component.js';
14
14
  import 'compute-scroll-into-view';
15
+ import '../scroll-controls/Component.js';
16
+ import 'lodash.debounce';
17
+ import '@alfalab/core-components-icon-button/esm';
18
+ import '@alfalab/icons-glyph/ChevronLeftMIcon';
19
+ import '@alfalab/icons-glyph/ChevronRightMIcon';
20
+ import '../scroll-controls/utils.js';
15
21
  import '../title/Component.js';
16
- import '../../index.module-511c86f3.js';
22
+ import '../../index.module-7fe2e8dc.js';
17
23
  import '../primary-tablist/Component.mobile.js';
18
- import '../../mobile.module-34deaa77.js';
19
24
  import '../secondary-tablist/Component.desktop.js';
20
25
  import '@alfalab/core-components-tag/esm/desktop';
21
26
  import '../secondary-tablist/Component.js';
22
- import '../../index.module-ffeeb976.js';
27
+ import '../../index.module-fbff2d78.js';
23
28
  import '../secondary-tablist/Component.mobile.js';
24
29
  import '@alfalab/core-components-tag/esm/mobile';
25
30
 
package/esm/desktop.js CHANGED
@@ -11,9 +11,15 @@ import './hooks/use-tabs.js';
11
11
  import '@alfalab/core-components-shared/esm';
12
12
  import './components/scrollable-container/Component.js';
13
13
  import 'compute-scroll-into-view';
14
+ import './components/scroll-controls/Component.js';
15
+ import 'lodash.debounce';
16
+ import '@alfalab/core-components-icon-button/esm';
17
+ import '@alfalab/icons-glyph/ChevronLeftMIcon';
18
+ import '@alfalab/icons-glyph/ChevronRightMIcon';
19
+ import './components/scroll-controls/utils.js';
14
20
  import './components/title/Component.js';
15
- import './index.module-511c86f3.js';
21
+ import './index.module-7fe2e8dc.js';
16
22
  import '@alfalab/core-components-tag/esm/desktop';
17
23
  import './components/secondary-tablist/Component.js';
18
- import './index.module-ffeeb976.js';
24
+ import './index.module-fbff2d78.js';
19
25
  import './components/tabs/Component.js';
@@ -137,5 +137,4 @@ type NavigationBarProps = {
137
137
  declare const NavigationBar: React.ForwardRefExoticComponent<NavigationBarProps & React.RefAttributes<HTMLDivElement>>;
138
138
  export { NavigationBar };
139
139
  export * from "./Component-63dec22f";
140
- export * from "./Component-8b2c2707";
141
140
  export type { NavigationBarProps };
package/esm/index.js CHANGED
@@ -13,14 +13,19 @@ import './hooks/use-tabs.js';
13
13
  import '@alfalab/core-components-shared/esm';
14
14
  import './components/scrollable-container/Component.js';
15
15
  import 'compute-scroll-into-view';
16
+ import './components/scroll-controls/Component.js';
17
+ import 'lodash.debounce';
18
+ import '@alfalab/core-components-icon-button/esm';
19
+ import '@alfalab/icons-glyph/ChevronLeftMIcon';
20
+ import '@alfalab/icons-glyph/ChevronRightMIcon';
21
+ import './components/scroll-controls/utils.js';
16
22
  import './components/title/Component.js';
17
- import './index.module-511c86f3.js';
23
+ import './index.module-7fe2e8dc.js';
18
24
  import './components/primary-tablist/Component.mobile.js';
19
- import './mobile.module-34deaa77.js';
20
25
  import './components/secondary-tablist/Component.desktop.js';
21
26
  import '@alfalab/core-components-tag/esm/desktop';
22
27
  import './components/secondary-tablist/Component.js';
23
- import './index.module-ffeeb976.js';
28
+ import './index.module-fbff2d78.js';
24
29
  import './components/secondary-tablist/Component.mobile.js';
25
30
  import '@alfalab/core-components-tag/esm/mobile';
26
31
  import './components/tabs/Component.js';
@@ -0,0 +1,4 @@
1
+ var commonStyles = {"component":"tabs__component_1u3uq","fullWidthScroll":"tabs__fullWidthScroll_1u3uq","container":"tabs__container_1u3uq","title":"tabs__title_1u3uq","disabled":"tabs__disabled_1u3uq","focused":"tabs__focused_1u3uq","collapsed":"tabs__collapsed_1u3uq","selected":"tabs__selected_1u3uq","line":"tabs__line_1u3uq","option":"tabs__option_1u3uq","s":"tabs__s_1u3uq","xs":"tabs__xs_1u3uq","xxs":"tabs__xxs_1u3uq","pickerWrapper":"tabs__pickerWrapper_1u3uq","m":"tabs__m_1u3uq","l":"tabs__l_1u3uq","xl":"tabs__xl_1u3uq","rightAddons":"tabs__rightAddons_1u3uq"};
2
+ require('./components/primary-tablist/index.css')
3
+
4
+ export { commonStyles as c };
@@ -0,0 +1,4 @@
1
+ var commonStyles = {"component":"tabs__component_tc0jp","fullWidthScroll":"tabs__fullWidthScroll_tc0jp","container":"tabs__container_tc0jp","title":"tabs__title_tc0jp","xxs":"tabs__xxs_tc0jp","xs":"tabs__xs_tc0jp","s":"tabs__s_tc0jp","m":"tabs__m_tc0jp","l":"tabs__l_tc0jp","xl":"tabs__xl_tc0jp"};
2
+ require('./components/secondary-tablist/index.css')
3
+
4
+ export { commonStyles as c };
package/esm/mobile.js CHANGED
@@ -11,10 +11,15 @@ import './hooks/use-tabs.js';
11
11
  import '@alfalab/core-components-shared/esm';
12
12
  import './components/scrollable-container/Component.js';
13
13
  import 'compute-scroll-into-view';
14
+ import './components/scroll-controls/Component.js';
15
+ import 'lodash.debounce';
16
+ import '@alfalab/core-components-icon-button/esm';
17
+ import '@alfalab/icons-glyph/ChevronLeftMIcon';
18
+ import '@alfalab/icons-glyph/ChevronRightMIcon';
19
+ import './components/scroll-controls/utils.js';
14
20
  import './components/title/Component.js';
15
- import './index.module-511c86f3.js';
16
- import './mobile.module-34deaa77.js';
21
+ import './index.module-7fe2e8dc.js';
17
22
  import '@alfalab/core-components-tag/esm/mobile';
18
23
  import './components/secondary-tablist/Component.js';
19
- import './index.module-ffeeb976.js';
24
+ import './index.module-fbff2d78.js';
20
25
  import './components/tabs/Component.js';
package/esm/shared.js CHANGED
@@ -4,7 +4,13 @@ export { useCollapsibleElements } from './hooks/use-collapsible-elements.js';
4
4
  import 'react';
5
5
  import 'classnames';
6
6
  import 'compute-scroll-into-view';
7
- import '@alfalab/core-components-shared/esm';
7
+ import './components/scroll-controls/Component.js';
8
8
  import 'tslib';
9
+ import 'lodash.debounce';
10
+ import '@alfalab/core-components-icon-button/esm';
11
+ import '@alfalab/icons-glyph/ChevronLeftMIcon';
12
+ import '@alfalab/icons-glyph/ChevronRightMIcon';
13
+ import './components/scroll-controls/utils.js';
14
+ import '@alfalab/core-components-shared/esm';
9
15
  import '@juggle/resize-observer';
10
16
  import '@alfalab/hooks';
package/esm/typings.d.ts CHANGED
@@ -69,6 +69,14 @@ type TabsProps = {
69
69
  * @default 1024
70
70
  */
71
71
  breakpoint?: number;
72
+ /**
73
+ * Форма тега (для view secondary только)
74
+ */
75
+ tagShape?: TagProps['shape'];
76
+ /**
77
+ * Стиль тега (для view secondary только)
78
+ */
79
+ tagView?: TagProps['view'];
72
80
  };
73
81
  type TabProps = {
74
82
  /**
@@ -123,7 +131,7 @@ type TabListTitle = {
123
131
  collapsed?: boolean;
124
132
  dataTestId?: string;
125
133
  };
126
- type TabListProps = Pick<TabsProps, 'className' | 'containerClassName' | 'size' | 'defaultMatchMediaValue' | 'selectedId' | 'scrollable' | 'collapsedTabsIds' | 'onChange' | 'dataTestId' | 'fullWidthScroll'> & {
134
+ type TabListProps = Pick<TabsProps, 'className' | 'containerClassName' | 'size' | 'defaultMatchMediaValue' | 'selectedId' | 'scrollable' | 'collapsedTabsIds' | 'onChange' | 'dataTestId' | 'fullWidthScroll' | 'tagShape' | 'tagView'> & {
127
135
  /**
128
136
  * Заголовки табов
129
137
  */
@@ -144,4 +152,7 @@ type Styles = {
144
152
  [key: string]: string;
145
153
  };
146
154
  };
147
- export { SelectedId, TabsProps, TabProps, TabListTitle, TabListProps, SecondaryTabListProps, UseTabsProps, Styles };
155
+ type PlatformProps = {
156
+ platform: 'desktop' | 'mobile';
157
+ };
158
+ export { SelectedId, TabsProps, TabProps, TabListTitle, TabListProps, SecondaryTabListProps, UseTabsProps, Styles, PlatformProps };
@@ -137,5 +137,4 @@ type NavigationBarProps = {
137
137
  declare const NavigationBar: React.ForwardRefExoticComponent<NavigationBarProps & React.RefAttributes<HTMLDivElement>>;
138
138
  export { NavigationBar };
139
139
  export * from "./Component-63dec22f";
140
- export * from "./Component-8b2c2707";
141
140
  export type { NavigationBarProps };
@@ -1,40 +1,105 @@
1
- /// <reference types="react-transition-group" />
2
1
  /// <reference types="react" />
2
+ /// <reference types="react-transition-group" />
3
3
  import React from "react";
4
- import { MouseEvent, ReactNode } from "react";
5
- import { CSSTransitionClassNames } from "react-transition-group/CSSTransition";
6
- import { TransitionProps } from "react-transition-group/Transition";
7
- type BackdropProps = Partial<TransitionProps> & {
4
+ import { ButtonHTMLAttributes, ReactNode, RefObject } from "react";
5
+ type StyleColors = {
6
+ default: {
7
+ [key: string]: string;
8
+ };
9
+ inverted: {
10
+ [key: string]: string;
11
+ };
12
+ };
13
+ type NativeProps = ButtonHTMLAttributes<HTMLButtonElement>;
14
+ type BaseTagProps = Omit<NativeProps, "onClick"> & {
8
15
  /**
9
- * Прозрачный бэкдроп
16
+ * Отображение кнопки в отмеченном (зажатом) состоянии
10
17
  */
11
- invisible?: boolean;
18
+ checked?: boolean;
12
19
  /**
13
- * Управляет видимостью компонента
20
+ * Размер компонента
21
+ */
22
+ size?: "xxs" | "xs" | "s" | "m" | "l" | "xl";
23
+ /**
24
+ * Дочерние элементы.
14
25
  */
15
- open: boolean;
26
+ children?: ReactNode;
16
27
  /**
17
- * Обработчик клика по бэкдропу
28
+ * Дополнительный класс для обёртки children
18
29
  */
19
- onClose?: (event: MouseEvent<HTMLElement>) => void;
30
+ childrenClassName?: string;
20
31
  /**
21
- * Дополнительный класс
32
+ * Слот слева
22
33
  */
23
- className?: string;
34
+ leftAddons?: ReactNode;
24
35
  /**
25
- * Классы анимации
26
- *
27
- * http://reactcommunity.org/react-transition-group/css-transition#CSSTransition-prop-classNames
36
+ * Слот справа
28
37
  */
29
- transitionClassNames?: string | CSSTransitionClassNames;
38
+ rightAddons?: ReactNode;
30
39
  /**
31
40
  * Идентификатор для систем автоматизированного тестирования
32
41
  */
33
42
  dataTestId?: string;
34
43
  /**
35
- * Дочерние элементы.
44
+ * Обработчик нажатия
36
45
  */
37
- children?: ReactNode;
46
+ onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>, payload: {
47
+ checked: boolean;
48
+ name?: string;
49
+ }) => void;
50
+ /**
51
+ * ref на children
52
+ */
53
+ childrenRef?: RefObject<HTMLSpanElement>;
54
+ /**
55
+ * Набор цветов для компонента
56
+ */
57
+ colors?: "default" | "inverted";
58
+ /**
59
+ * @deprecated данный проп больше не используется, временно оставлен для обратной совместимости
60
+ * Используйте props shape и view
61
+ * Вариант тега
62
+ */
63
+ variant?: "default" | "alt";
64
+ /**
65
+ * Форма тега
66
+ */
67
+ shape?: "rounded" | "rectangular";
68
+ /**
69
+ * Стиль тега
70
+ */
71
+ view?: "outlined" | "filled";
72
+ /**
73
+ * Основные стили компонента.
74
+ */
75
+ styles?: {
76
+ [key: string]: string;
77
+ };
78
+ /**
79
+ * Стили компонента для default и inverted режима.
80
+ */
81
+ colorStylesMap?: StyleColors;
38
82
  };
39
- declare const Backdrop: React.FC<BackdropProps>;
40
- export { BackdropProps, Backdrop };
83
+ declare const BaseTag: React.ForwardRefExoticComponent<Omit<NativeProps, "onClick"> & {
84
+ checked?: boolean | undefined;
85
+ size?: "s" | "xxs" | "xs" | "m" | "l" | "xl" | undefined;
86
+ children?: ReactNode;
87
+ childrenClassName?: string | undefined;
88
+ leftAddons?: ReactNode;
89
+ rightAddons?: ReactNode;
90
+ dataTestId?: string | undefined;
91
+ onClick?: ((event: React.MouseEvent<HTMLButtonElement, MouseEvent>, payload: {
92
+ checked: boolean;
93
+ name?: string;
94
+ }) => void) | undefined;
95
+ childrenRef?: React.RefObject<HTMLSpanElement> | undefined;
96
+ colors?: "default" | "inverted" | undefined;
97
+ variant?: "default" | "alt" | undefined;
98
+ shape?: "rounded" | "rectangular" | undefined;
99
+ view?: "outlined" | "filled" | undefined;
100
+ styles?: {
101
+ [key: string]: string;
102
+ } | undefined;
103
+ colorStylesMap?: StyleColors | undefined;
104
+ } & React.RefAttributes<HTMLButtonElement>>;
105
+ export { StyleColors, NativeProps, BaseTagProps, BaseTag };
package/index.js CHANGED
@@ -17,14 +17,19 @@ require('./hooks/use-tabs.js');
17
17
  require('@alfalab/core-components-shared');
18
18
  require('./components/scrollable-container/Component.js');
19
19
  require('compute-scroll-into-view');
20
+ require('./components/scroll-controls/Component.js');
21
+ require('lodash.debounce');
22
+ require('@alfalab/core-components-icon-button');
23
+ require('@alfalab/icons-glyph/ChevronLeftMIcon');
24
+ require('@alfalab/icons-glyph/ChevronRightMIcon');
25
+ require('./components/scroll-controls/utils.js');
20
26
  require('./components/title/Component.js');
21
- require('./index.module-0d8ea41a.js');
27
+ require('./index.module-ee99c069.js');
22
28
  require('./components/primary-tablist/Component.mobile.js');
23
- require('./mobile.module-a305e8da.js');
24
29
  require('./components/secondary-tablist/Component.desktop.js');
25
30
  require('@alfalab/core-components-tag/desktop');
26
31
  require('./components/secondary-tablist/Component.js');
27
- require('./index.module-38e4686f.js');
32
+ require('./index.module-447ba3e0.js');
28
33
  require('./components/secondary-tablist/Component.mobile.js');
29
34
  require('@alfalab/core-components-tag/mobile');
30
35
  require('./components/tabs/Component.js');
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var commonStyles = {"component":"tabs__component_tc0jp","fullWidthScroll":"tabs__fullWidthScroll_tc0jp","container":"tabs__container_tc0jp","title":"tabs__title_tc0jp","xxs":"tabs__xxs_tc0jp","xs":"tabs__xs_tc0jp","s":"tabs__s_tc0jp","m":"tabs__m_tc0jp","l":"tabs__l_tc0jp","xl":"tabs__xl_tc0jp"};
4
+ require('./components/secondary-tablist/index.css')
5
+
6
+ exports.commonStyles = commonStyles;
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var commonStyles = {"component":"tabs__component_1u3uq","fullWidthScroll":"tabs__fullWidthScroll_1u3uq","container":"tabs__container_1u3uq","title":"tabs__title_1u3uq","disabled":"tabs__disabled_1u3uq","focused":"tabs__focused_1u3uq","collapsed":"tabs__collapsed_1u3uq","selected":"tabs__selected_1u3uq","line":"tabs__line_1u3uq","option":"tabs__option_1u3uq","s":"tabs__s_1u3uq","xs":"tabs__xs_1u3uq","xxs":"tabs__xxs_1u3uq","pickerWrapper":"tabs__pickerWrapper_1u3uq","m":"tabs__m_1u3uq","l":"tabs__l_1u3uq","xl":"tabs__xl_1u3uq","rightAddons":"tabs__rightAddons_1u3uq"};
4
+ require('./components/primary-tablist/index.css')
5
+
6
+ exports.commonStyles = commonStyles;
package/mobile.js CHANGED
@@ -15,12 +15,17 @@ require('./hooks/use-tabs.js');
15
15
  require('@alfalab/core-components-shared');
16
16
  require('./components/scrollable-container/Component.js');
17
17
  require('compute-scroll-into-view');
18
+ require('./components/scroll-controls/Component.js');
19
+ require('lodash.debounce');
20
+ require('@alfalab/core-components-icon-button');
21
+ require('@alfalab/icons-glyph/ChevronLeftMIcon');
22
+ require('@alfalab/icons-glyph/ChevronRightMIcon');
23
+ require('./components/scroll-controls/utils.js');
18
24
  require('./components/title/Component.js');
19
- require('./index.module-0d8ea41a.js');
20
- require('./mobile.module-a305e8da.js');
25
+ require('./index.module-ee99c069.js');
21
26
  require('@alfalab/core-components-tag/mobile');
22
27
  require('./components/secondary-tablist/Component.js');
23
- require('./index.module-38e4686f.js');
28
+ require('./index.module-447ba3e0.js');
24
29
  require('./components/tabs/Component.js');
25
30
 
26
31
 
@@ -1,7 +1,2 @@
1
- export { TabsCollapsibleResponsive as TabsCollapsible, TabsCollapsibleResponsiveProps as TabsCollapsibleProps } from "./components/tabs/Component.collapsible.responsive";
2
- export * from "./components/tabs/Component.collabsible.desktop";
3
- export * from "./components/tabs/Component.collapsible.mobile";
4
- export * from "./components/primary-tablist/Component.collapsible.responsive";
5
- export * from "./components/primary-tablist/Component.collapsible.desktop";
6
- export * from "./components/primary-tablist/Component.collapsible.mobile";
1
+ export { TabsCollapsible, TabsCollapsibleProps } from "./components/tabs/Component.collapsible";
7
2
  export * from "./components/tab/index";
@@ -1,19 +1,13 @@
1
- export { TabsCollapsibleResponsive as TabsCollapsible } from './components/tabs/Component.collapsible.responsive.js';
2
- export { TabsCollapsibleDesktop } from './components/tabs/Component.collabsible.desktop.js';
3
- export { TabsCollapsibleMobile } from './components/tabs/Component.collapsible.mobile.js';
4
- export { CollapsiblePrimaryTabListResponsive } from './components/primary-tablist/Component.collapsible.responsive.js';
5
- export { CollapsiblePrimaryTabListDesktop } from './components/primary-tablist/Component.collapsible.desktop.js';
6
- export { CollapsiblePrimaryTabListMobile } from './components/primary-tablist/Component.collapsible.mobile.js';
1
+ export { TabsCollapsible } from './components/tabs/Component.collapsible.js';
7
2
  export { Tab } from './components/tab/Component.js';
8
3
  import 'react';
9
- import './components/tabs/Component.js';
10
- import '@alfalab/core-components-mq/modern';
11
4
  import './components/primary-tablist/Component.collapsible.js';
12
5
  import 'classnames';
13
6
  import '@alfalab/core-components-badge/modern';
14
7
  import '@alfalab/core-components-keyboard-focusable/modern';
15
8
  import '@alfalab/core-components-picker-button/modern/desktop';
16
9
  import './hooks/use-tablist-titles.js';
10
+ import '@alfalab/core-components-mq/modern';
17
11
  import './hooks/use-collapsible-elements.js';
18
12
  import '@juggle/resize-observer';
19
13
  import '@alfalab/hooks';
@@ -21,5 +15,5 @@ import './hooks/use-tabs.js';
21
15
  import '@alfalab/core-components-shared/modern';
22
16
  import './synthetic-events.js';
23
17
  import './components/title/Component.js';
24
- import './index.module-6f255828.js';
25
- import './mobile.module-02182f0f.js';
18
+ import './index.module-22ff4191.js';
19
+ import './components/tabs/Component.js';
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import React from 'react';
3
- import { Styles, TabListProps } from "../../typings";
4
- declare const CollapsiblePrimaryTabList: ({ size, className, containerClassName, titles, styles, selectedId, collapsedTabsIds, fullWidthScroll, onChange, dataTestId, breakpoint, defaultMatchMediaValue, }: TabListProps & Styles) => React.JSX.Element;
3
+ import { TabListProps } from "../../typings";
4
+ declare const CollapsiblePrimaryTabList: ({ size, className, containerClassName, titles, selectedId, collapsedTabsIds, fullWidthScroll, onChange, dataTestId, breakpoint, defaultMatchMediaValue, }: TabListProps) => React.JSX.Element;
5
5
  export { CollapsiblePrimaryTabList };
@@ -6,6 +6,7 @@ import { PickerButtonDesktop } from '@alfalab/core-components-picker-button/mode
6
6
  import { useTablistTitles } from '../../hooks/use-tablist-titles.js';
7
7
  import { createSyntheticMouseEvent } from '../../synthetic-events.js';
8
8
  import { Title } from '../title/Component.js';
9
+ import { c as commonStyles } from '../../index.module-22ff4191.js';
9
10
  import '@alfalab/core-components-mq/modern';
10
11
  import '../../hooks/use-collapsible-elements.js';
11
12
  import '@juggle/resize-observer';
@@ -13,8 +14,7 @@ import '@alfalab/hooks';
13
14
  import '../../hooks/use-tabs.js';
14
15
  import '@alfalab/core-components-shared/modern';
15
16
 
16
- const DEFAULT_STYLES = {};
17
- const CollapsiblePrimaryTabList = ({ size, className, containerClassName, titles = [], styles = DEFAULT_STYLES, selectedId = titles.length ? titles[0].id : undefined, collapsedTabsIds, fullWidthScroll, onChange, dataTestId, breakpoint = 1024, defaultMatchMediaValue, }) => {
17
+ const CollapsiblePrimaryTabList = ({ size = 'm', className, containerClassName, titles = [], selectedId = titles.length ? titles[0].id : undefined, collapsedTabsIds, fullWidthScroll, onChange, dataTestId, breakpoint = 1024, defaultMatchMediaValue, }) => {
18
18
  const lineRef = useRef(null);
19
19
  const { containerRef, addonRef, tablistTitles, selectedTab, getTabListItemProps } = useTablistTitles({
20
20
  titles,
@@ -35,11 +35,11 @@ const CollapsiblePrimaryTabList = ({ size, className, containerClassName, titles
35
35
  options.push({
36
36
  key: title.title,
37
37
  value: title.id,
38
- content: React.createElement(Title, { ...title, styles: styles, isOption: true }),
38
+ content: React.createElement(Title, { ...title, styles: commonStyles, isOption: true }),
39
39
  });
40
40
  }
41
41
  return options;
42
- }, []), [tablistTitles, styles]);
42
+ }, []), [tablistTitles]);
43
43
  const collapsedAddonsLength = tablistTitles.filter((title) => title.collapsed && title.rightAddons).length;
44
44
  const handleOptionsChange = (payload) => {
45
45
  if (payload.selected?.value && onChange) {
@@ -48,14 +48,14 @@ const CollapsiblePrimaryTabList = ({ size, className, containerClassName, titles
48
48
  onChange(syntheticMouseEvent, { selectedId: payload.selected.value });
49
49
  }
50
50
  };
51
- const renderContent = () => (React.createElement("div", { role: 'tablist', "data-test-id": dataTestId, className: cn(styles.component, className, size && styles[size], {
52
- [styles.fullWidthScroll]: fullWidthScroll,
51
+ const renderContent = () => (React.createElement("div", { role: 'tablist', "data-test-id": dataTestId, className: cn(commonStyles.component, className, size && commonStyles[size], {
52
+ [commonStyles.fullWidthScroll]: fullWidthScroll,
53
53
  }) },
54
- tablistTitles.map(({ dataTestId: _, ...restTitleProps }, index) => (React.createElement(KeyboardFocusable, { key: restTitleProps.id }, (ref, focused) => (React.createElement(Title, { ...getTabListItemProps(index, ref), ...restTitleProps, focused: focused, styles: styles }))))),
55
- collapsedOptions.length ? (React.createElement("span", { ref: addonRef, role: 'menu', className: styles.pickerWrapper },
56
- 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,
57
- React.createElement("div", { className: styles.line, ref: lineRef })));
58
- return (React.createElement("div", { ref: containerRef, className: cn(styles.container, containerClassName) }, renderContent()));
54
+ tablistTitles.map(({ dataTestId: _, ...restTitleProps }, index) => (React.createElement(KeyboardFocusable, { key: restTitleProps.id }, (ref, focused) => (React.createElement(Title, { ...getTabListItemProps(index, ref), ...restTitleProps, focused: focused, styles: commonStyles }))))),
55
+ collapsedOptions.length ? (React.createElement("span", { ref: addonRef, role: 'menu', className: commonStyles.pickerWrapper },
56
+ React.createElement(PickerButtonDesktop, { fieldClassName: commonStyles.title, optionClassName: cn(commonStyles.pickerOption, size && commonStyles[size]), options: collapsedOptions, onChange: handleOptionsChange, rightAddons: collapsedAddonsLength ? (React.createElement(Badge, { view: 'count', content: collapsedAddonsLength })) : null, size: 'm', view: 'ghost', label: '\u0415\u0449\u0451', popoverPosition: 'bottom-end' }))) : null,
57
+ React.createElement("div", { className: commonStyles.line, ref: lineRef })));
58
+ return (React.createElement("div", { ref: containerRef, className: cn(commonStyles.container, containerClassName) }, renderContent()));
59
59
  };
60
60
 
61
61
  export { CollapsiblePrimaryTabList };
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import React from 'react';
3
- import { Styles, TabListProps } from "../../typings";
4
- declare const PrimaryTabList: ({ size, styles, className, containerClassName, titles, selectedId, scrollable, fullWidthScroll, onChange, dataTestId, }: TabListProps & Styles) => React.JSX.Element;
3
+ import { PlatformProps, Styles, TabListProps } from "../../typings";
4
+ declare const PrimaryTabList: ({ size, styles, className, containerClassName, titles, selectedId, scrollable, fullWidthScroll, onChange, dataTestId, platform, }: TabListProps & Styles & PlatformProps) => React.JSX.Element;
5
5
  export { PrimaryTabList };
@@ -1,14 +1,20 @@
1
1
  import React from 'react';
2
2
  import { PrimaryTabList } from './Component.js';
3
- import { c as commonStyles } from '../../index.module-6f255828.js';
3
+ import { c as commonStyles } from '../../index.module-22ff4191.js';
4
4
  import 'classnames';
5
5
  import '@alfalab/core-components-keyboard-focusable/modern';
6
6
  import '../../hooks/use-tabs.js';
7
7
  import '@alfalab/core-components-shared/modern';
8
8
  import '../scrollable-container/Component.js';
9
9
  import 'compute-scroll-into-view';
10
+ import '../scroll-controls/Component.js';
11
+ import 'lodash.debounce';
12
+ import '@alfalab/core-components-icon-button/modern';
13
+ import '@alfalab/icons-glyph/ChevronLeftMIcon';
14
+ import '@alfalab/icons-glyph/ChevronRightMIcon';
15
+ import '../scroll-controls/utils.js';
10
16
  import '../title/Component.js';
11
17
 
12
- const PrimaryTabListDesktop = ({ size = 'm', ...restProps }) => (React.createElement(PrimaryTabList, { ...restProps, size: size, styles: commonStyles }));
18
+ const PrimaryTabListDesktop = ({ size = 'm', ...restProps }) => (React.createElement(PrimaryTabList, { ...restProps, size: size, styles: commonStyles, platform: 'desktop' }));
13
19
 
14
20
  export { PrimaryTabListDesktop };