@alfalab/core-components-tabs 7.1.1 → 7.2.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 (222) hide show
  1. package/components/primary-tablist/Component.d.ts +2 -4
  2. package/components/primary-tablist/Component.desktop.js +12 -4
  3. package/components/primary-tablist/Component.js +42 -21
  4. package/components/primary-tablist/Component.mobile.d.ts +1 -1
  5. package/components/primary-tablist/Component.mobile.js +13 -5
  6. package/components/primary-tablist/Component.responsive.d.ts +1 -1
  7. package/components/primary-tablist/Component.responsive.js +14 -7
  8. package/components/primary-tablist/index.css +53 -22
  9. package/components/primary-tablist/mobile.css +99 -69
  10. package/components/scrollable-container/Component.d.ts +1 -1
  11. package/components/scrollable-container/Component.js +4 -2
  12. package/components/scrollable-container/index.css +5 -5
  13. package/components/secondary-tablist/Component.d.ts +2 -6
  14. package/components/secondary-tablist/Component.desktop.d.ts +1 -1
  15. package/components/secondary-tablist/Component.desktop.js +3 -3
  16. package/components/secondary-tablist/Component.js +3 -3
  17. package/components/secondary-tablist/Component.mobile.d.ts +1 -1
  18. package/components/secondary-tablist/Component.mobile.js +4 -4
  19. package/components/secondary-tablist/Component.responsive.js +4 -4
  20. package/components/secondary-tablist/index.css +11 -11
  21. package/components/secondary-tablist/mobile.css +65 -57
  22. package/components/tab/Component.js +1 -1
  23. package/components/tab/index.css +3 -3
  24. package/components/tabs/Component.d.ts +1 -1
  25. package/components/tabs/Component.desktop.d.ts +1 -1
  26. package/components/tabs/Component.desktop.js +13 -5
  27. package/components/tabs/Component.js +2 -2
  28. package/components/tabs/Component.mobile.d.ts +2 -2
  29. package/components/tabs/Component.mobile.js +13 -5
  30. package/components/tabs/Component.responsive.d.ts +1 -1
  31. package/components/tabs/Component.responsive.js +13 -6
  32. package/components/title/Component.d.ts +8 -0
  33. package/components/title/Component.js +27 -0
  34. package/components/title/index.d.ts +1 -0
  35. package/components/title/index.js +12 -0
  36. package/cssm/components/primary-tablist/Component.d.ts +2 -4
  37. package/cssm/components/primary-tablist/Component.desktop.js +11 -3
  38. package/cssm/components/primary-tablist/Component.js +42 -21
  39. package/cssm/components/primary-tablist/Component.mobile.d.ts +1 -1
  40. package/cssm/components/primary-tablist/Component.mobile.js +11 -3
  41. package/cssm/components/primary-tablist/Component.responsive.d.ts +1 -1
  42. package/cssm/components/primary-tablist/Component.responsive.js +13 -6
  43. package/cssm/components/primary-tablist/index.module.css +33 -2
  44. package/cssm/components/scrollable-container/Component.d.ts +1 -1
  45. package/cssm/components/scrollable-container/Component.js +3 -1
  46. package/cssm/components/secondary-tablist/Component.d.ts +2 -6
  47. package/cssm/components/secondary-tablist/Component.desktop.d.ts +1 -1
  48. package/cssm/components/secondary-tablist/Component.desktop.js +2 -2
  49. package/cssm/components/secondary-tablist/Component.js +3 -3
  50. package/cssm/components/secondary-tablist/Component.mobile.d.ts +1 -1
  51. package/cssm/components/secondary-tablist/Component.mobile.js +2 -2
  52. package/cssm/components/secondary-tablist/Component.responsive.js +3 -3
  53. package/cssm/components/tabs/Component.d.ts +1 -1
  54. package/cssm/components/tabs/Component.desktop.d.ts +1 -1
  55. package/cssm/components/tabs/Component.desktop.js +11 -3
  56. package/cssm/components/tabs/Component.js +2 -2
  57. package/cssm/components/tabs/Component.mobile.d.ts +2 -2
  58. package/cssm/components/tabs/Component.mobile.js +11 -3
  59. package/cssm/components/tabs/Component.responsive.d.ts +1 -1
  60. package/cssm/components/tabs/Component.responsive.js +11 -4
  61. package/cssm/components/title/Component.d.ts +8 -0
  62. package/cssm/components/title/Component.js +27 -0
  63. package/cssm/components/title/index.d.ts +1 -0
  64. package/cssm/components/title/index.js +12 -0
  65. package/cssm/desktop.d.ts +2 -1
  66. package/cssm/desktop.js +13 -4
  67. package/cssm/hooks/use-collapsible-elements.d.ts +8 -0
  68. package/cssm/hooks/use-collapsible-elements.js +56 -0
  69. package/cssm/hooks/use-tablist-titles.d.ts +28 -0
  70. package/cssm/hooks/use-tablist-titles.js +45 -0
  71. package/{esm/useTabs.d.ts → cssm/hooks/use-tabs.d.ts} +1 -1
  72. package/cssm/{useTabs.js → hooks/use-tabs.js} +0 -0
  73. package/cssm/index.d.ts +1 -1
  74. package/cssm/index.js +12 -5
  75. package/cssm/mobile.d.ts +1 -1
  76. package/cssm/mobile.js +12 -4
  77. package/cssm/responsive.d.ts +2 -1
  78. package/cssm/responsive.js +13 -5
  79. package/cssm/synthetic-events.d.ts +6 -0
  80. package/cssm/synthetic-events.js +47 -0
  81. package/cssm/{tslib.es6-ce870b46.d.ts → tslib.es6-0857346e.d.ts} +8 -4
  82. package/cssm/{tslib.es6-ce870b46.js → tslib.es6-0857346e.js} +13 -1
  83. package/cssm/typings.d.ts +13 -2
  84. package/desktop.d.ts +2 -1
  85. package/desktop.js +15 -6
  86. package/esm/components/primary-tablist/Component.d.ts +2 -4
  87. package/esm/components/primary-tablist/Component.desktop.js +12 -4
  88. package/esm/components/primary-tablist/Component.js +43 -22
  89. package/esm/components/primary-tablist/Component.mobile.d.ts +1 -1
  90. package/esm/components/primary-tablist/Component.mobile.js +13 -5
  91. package/esm/components/primary-tablist/Component.responsive.d.ts +1 -1
  92. package/esm/components/primary-tablist/Component.responsive.js +14 -7
  93. package/esm/components/primary-tablist/index.css +53 -22
  94. package/esm/components/primary-tablist/mobile.css +99 -69
  95. package/esm/components/scrollable-container/Component.d.ts +1 -1
  96. package/esm/components/scrollable-container/Component.js +4 -2
  97. package/esm/components/scrollable-container/index.css +5 -5
  98. package/esm/components/secondary-tablist/Component.d.ts +2 -6
  99. package/esm/components/secondary-tablist/Component.desktop.d.ts +1 -1
  100. package/esm/components/secondary-tablist/Component.desktop.js +3 -3
  101. package/esm/components/secondary-tablist/Component.js +2 -2
  102. package/esm/components/secondary-tablist/Component.mobile.d.ts +1 -1
  103. package/esm/components/secondary-tablist/Component.mobile.js +4 -4
  104. package/esm/components/secondary-tablist/Component.responsive.js +4 -4
  105. package/esm/components/secondary-tablist/index.css +11 -11
  106. package/esm/components/secondary-tablist/mobile.css +65 -57
  107. package/esm/components/tab/Component.js +1 -1
  108. package/esm/components/tab/index.css +3 -3
  109. package/esm/components/tabs/Component.d.ts +1 -1
  110. package/esm/components/tabs/Component.desktop.d.ts +1 -1
  111. package/esm/components/tabs/Component.desktop.js +13 -5
  112. package/esm/components/tabs/Component.js +2 -2
  113. package/esm/components/tabs/Component.mobile.d.ts +2 -2
  114. package/esm/components/tabs/Component.mobile.js +13 -5
  115. package/esm/components/tabs/Component.responsive.d.ts +1 -1
  116. package/esm/components/tabs/Component.responsive.js +13 -6
  117. package/esm/components/title/Component.d.ts +8 -0
  118. package/esm/components/title/Component.js +18 -0
  119. package/esm/components/title/index.d.ts +1 -0
  120. package/esm/components/title/index.js +4 -0
  121. package/esm/desktop.d.ts +2 -1
  122. package/esm/desktop.js +13 -5
  123. package/esm/hooks/use-collapsible-elements.d.ts +8 -0
  124. package/esm/hooks/use-collapsible-elements.js +52 -0
  125. package/esm/hooks/use-tablist-titles.d.ts +28 -0
  126. package/esm/hooks/use-tablist-titles.js +41 -0
  127. package/{modern/useTabs.d.ts → esm/hooks/use-tabs.d.ts} +1 -1
  128. package/esm/{useTabs.js → hooks/use-tabs.js} +0 -0
  129. package/esm/index.d.ts +1 -1
  130. package/esm/index.js +13 -6
  131. package/esm/index.module-01d292c0.js +4 -0
  132. package/esm/index.module-16a12061.js +4 -0
  133. package/esm/mobile.d.ts +1 -1
  134. package/esm/mobile.js +13 -5
  135. package/esm/responsive.d.ts +2 -1
  136. package/esm/responsive.js +13 -6
  137. package/esm/synthetic-events.d.ts +6 -0
  138. package/esm/synthetic-events.js +41 -0
  139. package/{tslib.es6-fcb75541.d.ts → esm/tslib.es6-e74e5c93.d.ts} +8 -4
  140. package/esm/{tslib.es6-444ae64e.js → tslib.es6-e74e5c93.js} +13 -2
  141. package/esm/typings.d.ts +13 -2
  142. package/hooks/use-collapsible-elements.d.ts +8 -0
  143. package/hooks/use-collapsible-elements.js +56 -0
  144. package/hooks/use-tablist-titles.d.ts +28 -0
  145. package/hooks/use-tablist-titles.js +45 -0
  146. package/{cssm/useTabs.d.ts → hooks/use-tabs.d.ts} +1 -1
  147. package/{useTabs.js → hooks/use-tabs.js} +0 -0
  148. package/index.d.ts +1 -1
  149. package/index.js +14 -7
  150. package/index.module-370f6bd7.js +6 -0
  151. package/index.module-872dcef9.js +6 -0
  152. package/mobile.d.ts +1 -1
  153. package/mobile.js +14 -6
  154. package/modern/components/primary-tablist/Component.d.ts +2 -4
  155. package/modern/components/primary-tablist/Component.desktop.js +12 -4
  156. package/modern/components/primary-tablist/Component.js +38 -17
  157. package/modern/components/primary-tablist/Component.mobile.d.ts +1 -1
  158. package/modern/components/primary-tablist/Component.mobile.js +13 -5
  159. package/modern/components/primary-tablist/Component.responsive.d.ts +1 -1
  160. package/modern/components/primary-tablist/Component.responsive.js +13 -6
  161. package/modern/components/primary-tablist/index.css +53 -22
  162. package/modern/components/primary-tablist/mobile.css +99 -69
  163. package/modern/components/scrollable-container/Component.d.ts +1 -1
  164. package/modern/components/scrollable-container/Component.js +4 -2
  165. package/modern/components/scrollable-container/index.css +5 -5
  166. package/modern/components/secondary-tablist/Component.d.ts +2 -6
  167. package/modern/components/secondary-tablist/Component.desktop.d.ts +1 -1
  168. package/modern/components/secondary-tablist/Component.desktop.js +3 -3
  169. package/modern/components/secondary-tablist/Component.js +2 -2
  170. package/modern/components/secondary-tablist/Component.mobile.d.ts +1 -1
  171. package/modern/components/secondary-tablist/Component.mobile.js +4 -4
  172. package/modern/components/secondary-tablist/Component.responsive.js +4 -4
  173. package/modern/components/secondary-tablist/index.css +11 -11
  174. package/modern/components/secondary-tablist/mobile.css +65 -57
  175. package/modern/components/tab/Component.js +1 -1
  176. package/modern/components/tab/index.css +3 -3
  177. package/modern/components/tabs/Component.d.ts +1 -1
  178. package/modern/components/tabs/Component.desktop.d.ts +1 -1
  179. package/modern/components/tabs/Component.desktop.js +13 -5
  180. package/modern/components/tabs/Component.js +4 -4
  181. package/modern/components/tabs/Component.mobile.d.ts +2 -2
  182. package/modern/components/tabs/Component.mobile.js +13 -5
  183. package/modern/components/tabs/Component.responsive.d.ts +1 -1
  184. package/modern/components/tabs/Component.responsive.js +13 -6
  185. package/modern/components/title/Component.d.ts +8 -0
  186. package/modern/components/title/Component.js +13 -0
  187. package/modern/components/title/index.d.ts +1 -0
  188. package/modern/components/title/index.js +3 -0
  189. package/modern/desktop.d.ts +2 -1
  190. package/modern/desktop.js +12 -4
  191. package/modern/hooks/use-collapsible-elements.d.ts +8 -0
  192. package/modern/hooks/use-collapsible-elements.js +50 -0
  193. package/modern/hooks/use-tablist-titles.d.ts +28 -0
  194. package/modern/hooks/use-tablist-titles.js +40 -0
  195. package/{useTabs.d.ts → modern/hooks/use-tabs.d.ts} +1 -1
  196. package/modern/{useTabs.js → hooks/use-tabs.js} +3 -3
  197. package/modern/index.d.ts +1 -1
  198. package/modern/index.js +12 -5
  199. package/modern/index.module-01d292c0.js +4 -0
  200. package/modern/index.module-16a12061.js +4 -0
  201. package/modern/mobile.d.ts +1 -1
  202. package/modern/mobile.js +12 -4
  203. package/modern/responsive.d.ts +2 -1
  204. package/modern/responsive.js +12 -5
  205. package/modern/synthetic-events.d.ts +6 -0
  206. package/modern/synthetic-events.js +61 -0
  207. package/modern/typings.d.ts +13 -2
  208. package/package.json +7 -4
  209. package/responsive.d.ts +2 -1
  210. package/responsive.js +15 -7
  211. package/send-stats.js +1 -1
  212. package/synthetic-events.d.ts +6 -0
  213. package/synthetic-events.js +47 -0
  214. package/{esm/tslib.es6-444ae64e.d.ts → tslib.es6-cbc5fb87.d.ts} +8 -4
  215. package/{tslib.es6-fcb75541.js → tslib.es6-cbc5fb87.js} +13 -1
  216. package/typings.d.ts +13 -2
  217. package/esm/index.module-17321b1b.js +0 -4
  218. package/esm/index.module-198d371d.js +0 -4
  219. package/index.module-3530e300.js +0 -6
  220. package/index.module-c424649c.js +0 -6
  221. package/modern/index.module-17321b1b.js +0 -4
  222. package/modern/index.module-198d371d.js +0 -4
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../tslib.es6-0857346e.js');
6
+ var React = require('react');
7
+ var hooks = require('@alfalab/hooks');
8
+ require('@juggle/resize-observer');
9
+ var hooks_useCollapsibleElements = require('./use-collapsible-elements.js');
10
+ var hooks_useTabs = require('./use-tabs.js');
11
+
12
+ var useTablistTitles = function (_a) {
13
+ var _b = _a.titles, titles = _b === void 0 ? [] : _b, selectedId = _a.selectedId, collapsible = _a.collapsible, breakpoint = _a.breakpoint, onChange = _a.onChange;
14
+ var _c = hooks_useCollapsibleElements.useCollapsibleElements('[role=tab]', [titles]), containerRef = _c.containerRef, addonRef = _c.addonRef, idsCollapsedElements = _c.idsCollapsedElements;
15
+ var view = hooks.useMedia([['desktop', "(min-width: " + breakpoint + "px)"]], 'desktop')[0];
16
+ var tablistTitles = React.useMemo(function () {
17
+ var idsCollapsedTitles = [];
18
+ if (view === 'desktop' && collapsible) {
19
+ var visibleTitles = titles.filter(function (_a) {
20
+ var id = _a.id;
21
+ return !idsCollapsedElements.includes(String(id));
22
+ });
23
+ var lastVisibleTitle_1 = visibleTitles[visibleTitles.length - 1];
24
+ idsCollapsedElements.forEach(function (id) {
25
+ idsCollapsedTitles.push(selectedId === id && lastVisibleTitle_1 ? String(lastVisibleTitle_1.id) : id);
26
+ });
27
+ }
28
+ return titles.map(function (title) { return (tslib_es6.__assign(tslib_es6.__assign({}, title), { collapsed: idsCollapsedTitles.includes(String(title.id)), selected: title.id === selectedId })); });
29
+ }, [titles, collapsible, selectedId, idsCollapsedElements, view]);
30
+ var _d = hooks_useTabs.useTabs({
31
+ titles: tablistTitles,
32
+ selectedId: selectedId,
33
+ onChange: onChange,
34
+ }), selectedTab = _d.selectedTab, focusedTab = _d.focusedTab, getTabListItemProps = _d.getTabListItemProps;
35
+ return {
36
+ containerRef: containerRef,
37
+ addonRef: addonRef,
38
+ tablistTitles: tablistTitles,
39
+ selectedTab: selectedTab,
40
+ focusedTab: focusedTab,
41
+ getTabListItemProps: getTabListItemProps,
42
+ };
43
+ };
44
+
45
+ exports.useTablistTitles = useTablistTitles;
@@ -1,5 +1,5 @@
1
1
  import { KeyboardEvent, MouseEvent, MutableRefObject } from 'react';
2
- import { UseTabsProps } from "./typings";
2
+ import { UseTabsProps } from "../typings";
3
3
  declare function useTabs({ titles, selectedId, onChange }: UseTabsProps): {
4
4
  getTabListItemProps: (index: number, outerRef?: MutableRefObject<HTMLElement> | undefined) => {
5
5
  role: string;
File without changes
package/cssm/index.d.ts CHANGED
@@ -3,5 +3,5 @@ export * from "./components/scrollable-container/index";
3
3
  export * from "./components/secondary-tablist/Component.responsive";
4
4
  export * from "./components/tab/index";
5
5
  export * from "./components/tabs/Component.responsive";
6
- export * from "./useTabs";
6
+ export * from "./hooks/use-tabs";
7
7
  export * from "./typings";
package/cssm/index.js CHANGED
@@ -2,14 +2,22 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('./tslib.es6-ce870b46.js');
5
+ require('./tslib.es6-0857346e.js');
6
6
  require('react');
7
- require('@alfalab/core-components-keyboard-focusable/cssm');
8
7
  require('classnames');
8
+ require('@alfalab/core-components/picker-button/desktop');
9
+ require('@alfalab/core-components-badge/cssm');
10
+ require('@alfalab/core-components-keyboard-focusable/cssm');
11
+ require('@alfalab/hooks');
12
+ require('@juggle/resize-observer');
13
+ require('./hooks/use-collapsible-elements.js');
14
+ var hooks_useTabs = require('./hooks/use-tabs.js');
15
+ require('./hooks/use-tablist-titles.js');
16
+ require('./synthetic-events.js');
9
17
  require('compute-scroll-into-view');
10
18
  require('./components/scrollable-container/index.module.css');
11
19
  var components_scrollableContainer_Component = require('./components/scrollable-container/Component.js');
12
- var useTabs = require('./useTabs.js');
20
+ require('./components/title/Component.js');
13
21
  require('./components/primary-tablist/Component.js');
14
22
  require('./components/primary-tablist/index.module.css');
15
23
  require('./components/primary-tablist/Component.desktop.js');
@@ -20,7 +28,6 @@ require('./components/secondary-tablist/Component.desktop.js');
20
28
  require('./components/tab/index.module.css');
21
29
  var components_tab_Component = require('./components/tab/Component.js');
22
30
  require('./components/tabs/Component.js');
23
- require('@alfalab/hooks');
24
31
  require('./components/primary-tablist/mobile.module.css');
25
32
  require('./components/primary-tablist/Component.mobile.js');
26
33
  var components_primaryTablist_Component_responsive = require('./components/primary-tablist/Component.responsive.js');
@@ -31,8 +38,8 @@ var components_tabs_Component_responsive = require('./components/tabs/Component.
31
38
 
32
39
 
33
40
 
41
+ exports.useTabs = hooks_useTabs.useTabs;
34
42
  exports.ScrollableContainer = components_scrollableContainer_Component.ScrollableContainer;
35
- exports.useTabs = useTabs.useTabs;
36
43
  exports.Tab = components_tab_Component.Tab;
37
44
  exports.PrimaryTabListResponsive = components_primaryTablist_Component_responsive.PrimaryTabListResponsive;
38
45
  exports.SecondaryTabListResponsive = components_secondaryTablist_Component_responsive.SecondaryTabListResponsive;
package/cssm/mobile.d.ts CHANGED
@@ -3,5 +3,5 @@ export * from "./components/scrollable-container/index";
3
3
  export * from "./components/secondary-tablist/Component.mobile";
4
4
  export * from "./components/tab/index";
5
5
  export * from "./components/tabs/Component.mobile";
6
- export * from "./useTabs";
6
+ export * from "./hooks/use-tabs";
7
7
  export * from "./typings";
package/cssm/mobile.js CHANGED
@@ -2,14 +2,22 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('./tslib.es6-ce870b46.js');
5
+ require('./tslib.es6-0857346e.js');
6
6
  require('react');
7
- require('@alfalab/core-components-keyboard-focusable/cssm');
8
7
  require('classnames');
8
+ require('@alfalab/core-components/picker-button/desktop');
9
+ require('@alfalab/core-components-badge/cssm');
10
+ require('@alfalab/core-components-keyboard-focusable/cssm');
11
+ require('@alfalab/hooks');
12
+ require('@juggle/resize-observer');
13
+ require('./hooks/use-collapsible-elements.js');
14
+ var hooks_useTabs = require('./hooks/use-tabs.js');
15
+ require('./hooks/use-tablist-titles.js');
16
+ require('./synthetic-events.js');
9
17
  require('compute-scroll-into-view');
10
18
  require('./components/scrollable-container/index.module.css');
11
19
  var components_scrollableContainer_Component = require('./components/scrollable-container/Component.js');
12
- var useTabs = require('./useTabs.js');
20
+ require('./components/title/Component.js');
13
21
  require('./components/primary-tablist/Component.js');
14
22
  require('./components/primary-tablist/index.module.css');
15
23
  require('@alfalab/core-components-tag/cssm');
@@ -26,8 +34,8 @@ var components_tabs_Component_mobile = require('./components/tabs/Component.mobi
26
34
 
27
35
 
28
36
 
37
+ exports.useTabs = hooks_useTabs.useTabs;
29
38
  exports.ScrollableContainer = components_scrollableContainer_Component.ScrollableContainer;
30
- exports.useTabs = useTabs.useTabs;
31
39
  exports.Tab = components_tab_Component.Tab;
32
40
  exports.PrimaryTabListMobile = components_primaryTablist_Component_mobile.PrimaryTabListMobile;
33
41
  exports.SecondaryTabListMobile = components_secondaryTablist_Component_mobile.SecondaryTabListMobile;
@@ -3,5 +3,6 @@ export * from "./components/scrollable-container/index";
3
3
  export * from "./components/secondary-tablist/Component.responsive";
4
4
  export * from "./components/tab/index";
5
5
  export * from "./components/tabs/Component.responsive";
6
- export * from "./useTabs";
6
+ export * from "./hooks/use-tabs";
7
+ export * from "./hooks/use-collapsible-elements";
7
8
  export * from "./typings";
@@ -2,14 +2,22 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('./tslib.es6-ce870b46.js');
5
+ require('./tslib.es6-0857346e.js');
6
6
  require('react');
7
- require('@alfalab/core-components-keyboard-focusable/cssm');
8
7
  require('classnames');
8
+ require('@alfalab/core-components/picker-button/desktop');
9
+ require('@alfalab/core-components-badge/cssm');
10
+ require('@alfalab/core-components-keyboard-focusable/cssm');
11
+ require('@alfalab/hooks');
12
+ require('@juggle/resize-observer');
13
+ var hooks_useCollapsibleElements = require('./hooks/use-collapsible-elements.js');
14
+ var hooks_useTabs = require('./hooks/use-tabs.js');
15
+ require('./hooks/use-tablist-titles.js');
16
+ require('./synthetic-events.js');
9
17
  require('compute-scroll-into-view');
10
18
  require('./components/scrollable-container/index.module.css');
11
19
  var components_scrollableContainer_Component = require('./components/scrollable-container/Component.js');
12
- var useTabs = require('./useTabs.js');
20
+ require('./components/title/Component.js');
13
21
  require('./components/primary-tablist/Component.js');
14
22
  require('./components/primary-tablist/index.module.css');
15
23
  require('./components/primary-tablist/Component.desktop.js');
@@ -20,7 +28,6 @@ require('./components/secondary-tablist/Component.desktop.js');
20
28
  require('./components/tab/index.module.css');
21
29
  var components_tab_Component = require('./components/tab/Component.js');
22
30
  require('./components/tabs/Component.js');
23
- require('@alfalab/hooks');
24
31
  require('./components/primary-tablist/mobile.module.css');
25
32
  require('./components/primary-tablist/Component.mobile.js');
26
33
  var components_primaryTablist_Component_responsive = require('./components/primary-tablist/Component.responsive.js');
@@ -31,8 +38,9 @@ var components_tabs_Component_responsive = require('./components/tabs/Component.
31
38
 
32
39
 
33
40
 
41
+ exports.useCollapsibleElements = hooks_useCollapsibleElements.useCollapsibleElements;
42
+ exports.useTabs = hooks_useTabs.useTabs;
34
43
  exports.ScrollableContainer = components_scrollableContainer_Component.ScrollableContainer;
35
- exports.useTabs = useTabs.useTabs;
36
44
  exports.Tab = components_tab_Component.Tab;
37
45
  exports.PrimaryTabListResponsive = components_primaryTablist_Component_responsive.PrimaryTabListResponsive;
38
46
  exports.SecondaryTabListResponsive = components_secondaryTablist_Component_responsive.SecondaryTabListResponsive;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ declare const createSyntheticEvent: <T extends Element, E extends Event>(event: E) => React.SyntheticEvent<T, E>;
4
+ declare const createUIEvent: <T extends Element, E extends Event>(event: E) => React.UIEvent<T, E>;
5
+ declare const createSyntheticMouseEvent: <T extends Element>(event: MouseEvent) => React.MouseEvent<T, MouseEvent>;
6
+ export { createSyntheticEvent, createUIEvent, createSyntheticMouseEvent };
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('./tslib.es6-0857346e.js');
6
+
7
+ var createSyntheticEvent = function (event) {
8
+ var isDefaultPrevented = false;
9
+ var isPropagationStopped = false;
10
+ var preventDefault = function () {
11
+ isDefaultPrevented = true;
12
+ event.preventDefault();
13
+ };
14
+ var stopPropagation = function () {
15
+ isPropagationStopped = true;
16
+ event.stopPropagation();
17
+ };
18
+ return {
19
+ nativeEvent: event,
20
+ currentTarget: event.currentTarget,
21
+ target: event.target,
22
+ bubbles: event.bubbles,
23
+ cancelable: event.cancelable,
24
+ defaultPrevented: event.defaultPrevented,
25
+ eventPhase: event.eventPhase,
26
+ isTrusted: event.isTrusted,
27
+ preventDefault: preventDefault,
28
+ isDefaultPrevented: function () { return isDefaultPrevented; },
29
+ stopPropagation: stopPropagation,
30
+ isPropagationStopped: function () { return isPropagationStopped; },
31
+ persist: function () { },
32
+ timeStamp: event.timeStamp,
33
+ type: event.type,
34
+ };
35
+ };
36
+ var createUIEvent = function (event) { return (tslib_es6.__assign(tslib_es6.__assign({}, createSyntheticEvent(event)), { detail: 0, view: {
37
+ styleMedia: {
38
+ type: '',
39
+ matchMedium: function () { return false; },
40
+ },
41
+ document: document,
42
+ } })); };
43
+ var createSyntheticMouseEvent = function (event) { return (tslib_es6.__assign(tslib_es6.__assign({}, createUIEvent(event)), { altKey: event.altKey, button: event.button, buttons: event.buttons, clientX: event.clientX, clientY: event.clientY, ctrlKey: event.ctrlKey, getModifierState: event.getModifierState, metaKey: event.metaKey, movementX: event.movementX, movementY: event.movementY, pageX: event.pageX, pageY: event.pageY, relatedTarget: event.relatedTarget, screenX: event.screenX, screenY: event.screenY, shiftKey: event.shiftKey })); };
44
+
45
+ exports.createSyntheticEvent = createSyntheticEvent;
46
+ exports.createSyntheticMouseEvent = createSyntheticMouseEvent;
47
+ exports.createUIEvent = createUIEvent;
@@ -12,9 +12,12 @@ declare function __generator(thisArg: any, body: any): {
12
12
  declare function __exportStar(m: any, o: any): void;
13
13
  declare function __values(o: any): any;
14
14
  declare function __read(o: any, n: any): any;
15
+ /** @deprecated */
15
16
  declare function __spread(...args: any[]): any[];
17
+ /** @deprecated */
16
18
  declare function __spreadArrays(...args: any[]): any[];
17
- declare function __await(v: any): any;
19
+ declare function __spreadArray(to: any, from: any, pack: any, ...args: any[]): any;
20
+ declare function __await(v: any): __await;
18
21
  declare class __await {
19
22
  constructor(v: any);
20
23
  v: any;
@@ -25,8 +28,9 @@ declare function __asyncValues(o: any): any;
25
28
  declare function __makeTemplateObject(cooked: any, raw: any): any;
26
29
  declare function __importStar(mod: any): any;
27
30
  declare function __importDefault(mod: any): any;
28
- declare function __classPrivateFieldGet(receiver: any, privateMap: any): any;
29
- declare function __classPrivateFieldSet(receiver: any, privateMap: any, value: any): any;
31
+ declare function __classPrivateFieldGet(receiver: any, state: any, kind: any, f: any): any;
32
+ declare function __classPrivateFieldSet(receiver: any, state: any, value: any, kind: any, f: any): any;
33
+ declare function __classPrivateFieldIn(state: any, receiver: any): any;
30
34
  declare function __assign(...args: any[]): any;
31
35
  declare function __createBinding(o: any, m: any, k: any, k2: any): void;
32
- export { __extends, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet, __assign, __createBinding };
36
+ export { __extends, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __spreadArray, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet, __classPrivateFieldIn, __assign, __createBinding };
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- /*! *****************************************************************************
3
+ /******************************************************************************
4
4
  Copyright (c) Microsoft Corporation.
5
5
 
6
6
  Permission to use, copy, modify, and/or distribute this software for any
@@ -38,5 +38,17 @@ function __rest(s, e) {
38
38
  }
39
39
  return t;
40
40
  }
41
+ function __spreadArray(to, from, pack) {
42
+ if (pack || arguments.length === 2)
43
+ for (var i = 0, l = from.length, ar; i < l; i++) {
44
+ if (ar || !(i in from)) {
45
+ if (!ar)
46
+ ar = Array.prototype.slice.call(from, 0, i);
47
+ ar[i] = from[i];
48
+ }
49
+ }
50
+ return to.concat(ar || Array.prototype.slice.call(from));
51
+ }
41
52
 
42
53
  exports.__rest = __rest;
54
+ exports.__spreadArray = __spreadArray;
package/cssm/typings.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { MouseEvent, FC, ReactElement, ReactNode } from 'react';
1
+ import { FC, MouseEvent, ReactElement, ReactNode } from 'react';
2
2
  import { TagProps } from "@alfalab/core-components-tag";
3
3
  type SelectedId = string | number;
4
4
  type TabsMatchMedia = 'desktop' | 'mobile';
@@ -39,6 +39,10 @@ type TabsProps = {
39
39
  * Рендерить заголовки табов в контейнере со скроллом
40
40
  */
41
41
  scrollable?: boolean;
42
+ /**
43
+ * Сворачивает не помещающиеся в окне табы в PickerButton
44
+ */
45
+ collapsible?: boolean;
42
46
  /**
43
47
  * При скроле табы будут уходить в край экрана
44
48
  */
@@ -111,12 +115,19 @@ type TabListTitle = {
111
115
  rightAddons?: ReactNode;
112
116
  hidden?: boolean;
113
117
  toggleClassName?: string;
118
+ selected?: boolean;
119
+ collapsed?: boolean;
114
120
  };
115
- type TabListProps = Pick<TabsProps, 'className' | 'containerClassName' | 'size' | 'defaultMatch' | 'selectedId' | 'scrollable' | 'onChange' | 'dataTestId' | 'fullWidthScroll'> & {
121
+ type TabListProps = Pick<TabsProps, 'className' | 'containerClassName' | 'size' | 'defaultMatch' | 'selectedId' | 'scrollable' | 'collapsible' | 'onChange' | 'dataTestId' | 'fullWidthScroll'> & {
116
122
  /**
117
123
  * Заголовки табов
118
124
  */
119
125
  titles?: TabListTitle[];
126
+ /**
127
+ * Контрольная точка, с нее начинается desktop версия
128
+ * @default 1024
129
+ */
130
+ breakpoint?: number;
120
131
  };
121
132
  type SecondaryTabListProps = TabListProps & {
122
133
  tagSize?: TagProps['size'];
package/desktop.d.ts CHANGED
@@ -3,5 +3,6 @@ export * from "./components/scrollable-container/index";
3
3
  export * from "./components/secondary-tablist/Component.desktop";
4
4
  export * from "./components/tab/index";
5
5
  export * from "./components/tabs/Component.desktop";
6
- export * from "./useTabs";
6
+ export * from "./hooks/use-tabs";
7
+ export * from "./hooks/use-collapsible-elements";
7
8
  export * from "./typings";
package/desktop.js CHANGED
@@ -2,19 +2,27 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('./tslib.es6-fcb75541.js');
5
+ require('./tslib.es6-cbc5fb87.js');
6
6
  require('react');
7
- require('@alfalab/core-components-keyboard-focusable');
8
7
  require('classnames');
8
+ require('@alfalab/core-components/picker-button/desktop');
9
+ require('@alfalab/core-components-badge');
10
+ require('@alfalab/core-components-keyboard-focusable');
11
+ require('@alfalab/hooks');
12
+ require('@juggle/resize-observer');
13
+ var hooks_useCollapsibleElements = require('./hooks/use-collapsible-elements.js');
14
+ var hooks_useTabs = require('./hooks/use-tabs.js');
15
+ require('./hooks/use-tablist-titles.js');
16
+ require('./synthetic-events.js');
9
17
  require('compute-scroll-into-view');
10
18
  var components_scrollableContainer_Component = require('./components/scrollable-container/Component.js');
11
- var useTabs = require('./useTabs.js');
19
+ require('./components/title/Component.js');
12
20
  require('./components/primary-tablist/Component.js');
13
- require('./index.module-c424649c.js');
21
+ require('./index.module-370f6bd7.js');
14
22
  var components_primaryTablist_Component_desktop = require('./components/primary-tablist/Component.desktop.js');
15
23
  require('@alfalab/core-components-tag');
16
24
  require('./components/secondary-tablist/Component.js');
17
- require('./index.module-3530e300.js');
25
+ require('./index.module-872dcef9.js');
18
26
  var components_secondaryTablist_Component_desktop = require('./components/secondary-tablist/Component.desktop.js');
19
27
  var components_tab_Component = require('./components/tab/Component.js');
20
28
  require('./components/tabs/Component.js');
@@ -22,8 +30,9 @@ var components_tabs_Component_desktop = require('./components/tabs/Component.des
22
30
 
23
31
 
24
32
 
33
+ exports.useCollapsibleElements = hooks_useCollapsibleElements.useCollapsibleElements;
34
+ exports.useTabs = hooks_useTabs.useTabs;
25
35
  exports.ScrollableContainer = components_scrollableContainer_Component.ScrollableContainer;
26
- exports.useTabs = useTabs.useTabs;
27
36
  exports.PrimaryTabListDesktop = components_primaryTablist_Component_desktop.PrimaryTabListDesktop;
28
37
  exports.SecondaryTabListDesktop = components_secondaryTablist_Component_desktop.SecondaryTabListDesktop;
29
38
  exports.Tab = components_tab_Component.Tab;
@@ -1,6 +1,4 @@
1
1
  /// <reference types="react" />
2
- import { Styles } from "../../typings";
3
- declare const PrimaryTabList: ({ size, styles, className, containerClassName, titles, selectedId, scrollable, fullWidthScroll, onChange, dataTestId, }: Pick<import("../../typings").TabsProps, "className" | "onChange" | "size" | "dataTestId" | "containerClassName" | "defaultMatch" | "selectedId" | "scrollable" | "fullWidthScroll"> & {
4
- titles?: import("../../typings").TabListTitle[] | undefined;
5
- } & Styles) => JSX.Element;
2
+ import { Styles, TabListProps } from "../../typings";
3
+ declare const PrimaryTabList: ({ size, styles, className, containerClassName, titles, selectedId, scrollable, collapsible, fullWidthScroll, onChange, dataTestId, breakpoint, }: TabListProps & Styles) => JSX.Element;
6
4
  export { PrimaryTabList };
@@ -1,12 +1,20 @@
1
- import { _ as __rest, a as __assign } from '../../tslib.es6-444ae64e.js';
1
+ import { _ as __rest, a as __assign } from '../../tslib.es6-e74e5c93.js';
2
2
  import React from 'react';
3
- import '@alfalab/core-components-keyboard-focusable/esm';
4
3
  import 'classnames';
4
+ import '@alfalab/core-components/picker-button/desktop';
5
+ import '@alfalab/core-components-badge/esm';
6
+ import '@alfalab/core-components-keyboard-focusable/esm';
7
+ import '@alfalab/hooks';
8
+ import '@juggle/resize-observer';
9
+ import '../../hooks/use-collapsible-elements.js';
10
+ import '../../hooks/use-tabs.js';
11
+ import '../../hooks/use-tablist-titles.js';
12
+ import '../../synthetic-events.js';
5
13
  import 'compute-scroll-into-view';
6
14
  import '../scrollable-container/Component.js';
7
- import '../../useTabs.js';
15
+ import '../title/Component.js';
8
16
  import { PrimaryTabList } from './Component.js';
9
- import { c as commonStyles } from '../../index.module-17321b1b.js';
17
+ import { c as commonStyles } from '../../index.module-01d292c0.js';
10
18
 
11
19
  var PrimaryTabListDesktop = function (_a) {
12
20
  var _b = _a.size, size = _b === void 0 ? 'm' : _b, restProps = __rest(_a, ["size"]);
@@ -1,46 +1,67 @@
1
- import { a as __assign } from '../../tslib.es6-444ae64e.js';
2
- import React, { useRef, useEffect } from 'react';
3
- import { KeyboardFocusable } from '@alfalab/core-components-keyboard-focusable/esm';
1
+ import { a as __assign } from '../../tslib.es6-e74e5c93.js';
2
+ import React, { useRef, useEffect, useMemo } from 'react';
4
3
  import cn from 'classnames';
4
+ import { PickerButtonDesktop } from '@alfalab/core-components/picker-button/desktop';
5
+ import { Badge } from '@alfalab/core-components-badge/esm';
6
+ import { KeyboardFocusable } from '@alfalab/core-components-keyboard-focusable/esm';
7
+ import '@alfalab/hooks';
8
+ import '@juggle/resize-observer';
9
+ import '../../hooks/use-collapsible-elements.js';
10
+ import '../../hooks/use-tabs.js';
11
+ import { useTablistTitles } from '../../hooks/use-tablist-titles.js';
12
+ import { createSyntheticMouseEvent } from '../../synthetic-events.js';
5
13
  import 'compute-scroll-into-view';
6
14
  import { ScrollableContainer } from '../scrollable-container/Component.js';
7
- import { useTabs } from '../../useTabs.js';
15
+ import { Title } from '../title/Component.js';
8
16
 
9
17
  var PrimaryTabList = function (_a) {
10
- var size = _a.size, _b = _a.styles, styles = _b === void 0 ? {} : _b, className = _a.className, containerClassName = _a.containerClassName, _c = _a.titles, titles = _c === void 0 ? [] : _c, _d = _a.selectedId, selectedId = _d === void 0 ? titles.length ? titles[0].id : undefined : _d, _e = _a.scrollable, scrollable = _e === void 0 ? true : _e, fullWidthScroll = _a.fullWidthScroll, onChange = _a.onChange, dataTestId = _a.dataTestId;
18
+ var size = _a.size, _b = _a.styles, styles = _b === void 0 ? {} : _b, className = _a.className, containerClassName = _a.containerClassName, _c = _a.titles, titles = _c === void 0 ? [] : _c, _d = _a.selectedId, selectedId = _d === void 0 ? titles.length ? titles[0].id : undefined : _d, _e = _a.scrollable, scrollable = _e === void 0 ? true : _e, collapsible = _a.collapsible, fullWidthScroll = _a.fullWidthScroll, onChange = _a.onChange, dataTestId = _a.dataTestId, _f = _a.breakpoint, breakpoint = _f === void 0 ? 1024 : _f;
11
19
  var lineRef = useRef(null);
12
- var _f = useTabs({
20
+ var _g = useTablistTitles({
13
21
  titles: titles,
14
22
  selectedId: selectedId,
23
+ collapsible: collapsible,
24
+ breakpoint: breakpoint,
15
25
  onChange: onChange,
16
- }), selectedTab = _f.selectedTab, focusedTab = _f.focusedTab, getTabListItemProps = _f.getTabListItemProps;
26
+ }), containerRef = _g.containerRef, addonRef = _g.addonRef, tablistTitles = _g.tablistTitles, selectedTab = _g.selectedTab, focusedTab = _g.focusedTab, getTabListItemProps = _g.getTabListItemProps;
17
27
  useEffect(function () {
18
28
  if (selectedTab && lineRef.current) {
19
29
  lineRef.current.style.width = selectedTab.offsetWidth + "px";
20
30
  lineRef.current.style.transform = "translateX(" + selectedTab.offsetLeft + "px)";
21
31
  }
22
- }, [selectedTab]);
32
+ }, [selectedTab, tablistTitles]);
33
+ var collapsedOptions = useMemo(function () {
34
+ return tablistTitles.reduce(function (options, title) {
35
+ if (title.collapsed) {
36
+ options.push({
37
+ key: title.title,
38
+ value: title.id,
39
+ content: React.createElement(Title, __assign({}, title, { styles: styles, isOption: true })),
40
+ });
41
+ }
42
+ return options;
43
+ }, []);
44
+ }, [tablistTitles, styles]);
45
+ var collapsedAddonsLength = tablistTitles.filter(function (title) { return title.collapsed && title.rightAddons; }).length;
46
+ var handleOptionsChange = function (payload) {
47
+ var _a;
48
+ if (((_a = payload.selected) === null || _a === void 0 ? void 0 : _a.value) && onChange) {
49
+ var nativeMouseEvent = new MouseEvent('change');
50
+ var syntheticMouseEvent = createSyntheticMouseEvent(nativeMouseEvent);
51
+ onChange(syntheticMouseEvent, { selectedId: payload.selected.value });
52
+ }
53
+ };
23
54
  var renderContent = function () {
24
55
  var _a;
25
56
  return (React.createElement("div", { role: 'tablist', "data-test-id": dataTestId, className: cn(styles.component, className, size && styles[size], (_a = {},
26
57
  _a[styles.fullWidthScroll] = fullWidthScroll,
27
58
  _a)) },
28
- titles.map(function (item, index) {
29
- if (item.hidden)
30
- return null;
31
- return (React.createElement(KeyboardFocusable, { key: item.id }, function (ref, focused) {
32
- var _a;
33
- return (React.createElement("button", __assign({}, getTabListItemProps(index, ref), { type: 'button', className: cn(styles.title, (_a = {},
34
- _a[styles.selected] = item.id === selectedId,
35
- _a[styles.disabled] = item.disabled,
36
- _a), item.toggleClassName) }),
37
- React.createElement("span", { className: focused ? styles.focused : undefined }, item.title),
38
- item.rightAddons && (React.createElement("span", { className: styles.rightAddons }, item.rightAddons))));
39
- }));
40
- }),
59
+ tablistTitles.map(function (title, index) { return (React.createElement(KeyboardFocusable, { key: title.id }, function (ref, focused) { return (React.createElement(Title, __assign({}, getTabListItemProps(index, ref), title, { focused: focused, styles: styles }))); })); }),
60
+ collapsedOptions.length ? (React.createElement("span", { ref: addonRef, className: styles.pickerWrapper },
61
+ 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,
41
62
  React.createElement("div", { className: styles.line, ref: lineRef })));
42
63
  };
43
- return scrollable ? (React.createElement(ScrollableContainer, { activeChild: focusedTab || selectedTab, containerClassName: containerClassName, fullWidthScroll: fullWidthScroll }, renderContent())) : (React.createElement("div", { className: cn(styles.container, containerClassName) }, renderContent()));
64
+ return scrollable && !collapsible ? (React.createElement(ScrollableContainer, { activeChild: focusedTab || selectedTab, containerClassName: containerClassName, fullWidthScroll: fullWidthScroll }, renderContent())) : (React.createElement("div", { ref: containerRef, className: cn(styles.container, containerClassName) }, renderContent()));
44
65
  };
45
66
 
46
67
  export { PrimaryTabList };
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import { TabListProps } from "../../typings";
3
3
  type PrimaryTabListMobileProps = Omit<TabListProps, 'size'>;
4
- declare const PrimaryTabListMobile: ({ className, ...restProps }: Pick<TabListProps, "className" | "onChange" | "dataTestId" | "containerClassName" | "defaultMatch" | "selectedId" | "scrollable" | "fullWidthScroll" | "titles">) => JSX.Element;
4
+ declare const PrimaryTabListMobile: ({ className, ...restProps }: PrimaryTabListMobileProps) => JSX.Element;
5
5
  export { PrimaryTabListMobileProps, PrimaryTabListMobile };
@@ -1,14 +1,22 @@
1
- import { a as __assign, _ as __rest } from '../../tslib.es6-444ae64e.js';
1
+ import { a as __assign, _ as __rest } from '../../tslib.es6-e74e5c93.js';
2
2
  import React from 'react';
3
- import '@alfalab/core-components-keyboard-focusable/esm';
4
3
  import cn from 'classnames';
4
+ import '@alfalab/core-components/picker-button/desktop';
5
+ import '@alfalab/core-components-badge/esm';
6
+ import '@alfalab/core-components-keyboard-focusable/esm';
7
+ import '@alfalab/hooks';
8
+ import '@juggle/resize-observer';
9
+ import '../../hooks/use-collapsible-elements.js';
10
+ import '../../hooks/use-tabs.js';
11
+ import '../../hooks/use-tablist-titles.js';
12
+ import '../../synthetic-events.js';
5
13
  import 'compute-scroll-into-view';
6
14
  import '../scrollable-container/Component.js';
7
- import '../../useTabs.js';
15
+ import '../title/Component.js';
8
16
  import { PrimaryTabList } from './Component.js';
9
- import { c as commonStyles } from '../../index.module-17321b1b.js';
17
+ import { c as commonStyles } from '../../index.module-01d292c0.js';
10
18
 
11
- var mobileStyles = {"title":"tabs__title_fowyz tabs__title_1aith","mobile":"tabs__mobile_fowyz"};
19
+ var mobileStyles = {"title":"tabs__title_ob67q tabs__title_1qgkh","mobile":"tabs__mobile_ob67q"};
12
20
  require('./mobile.css')
13
21
 
14
22
  var styles = __assign(__assign({}, commonStyles), mobileStyles);
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import { TabListProps } from "../../typings";
3
- declare const PrimaryTabListResponsive: ({ size, defaultMatch, fullWidthScroll, ...restProps }: TabListProps) => JSX.Element;
3
+ declare const PrimaryTabListResponsive: ({ size, defaultMatch, collapsible, fullWidthScroll, ...restProps }: TabListProps) => JSX.Element;
4
4
  export { PrimaryTabListResponsive };
@@ -1,23 +1,30 @@
1
- import { _ as __rest, a as __assign } from '../../tslib.es6-444ae64e.js';
1
+ import { _ as __rest, a as __assign } from '../../tslib.es6-e74e5c93.js';
2
2
  import React from 'react';
3
- import '@alfalab/core-components-keyboard-focusable/esm';
4
3
  import 'classnames';
4
+ import '@alfalab/core-components/picker-button/desktop';
5
+ import '@alfalab/core-components-badge/esm';
6
+ import '@alfalab/core-components-keyboard-focusable/esm';
7
+ import { useMedia } from '@alfalab/hooks';
8
+ import '@juggle/resize-observer';
9
+ import '../../hooks/use-collapsible-elements.js';
10
+ import '../../hooks/use-tabs.js';
11
+ import '../../hooks/use-tablist-titles.js';
12
+ import '../../synthetic-events.js';
5
13
  import 'compute-scroll-into-view';
6
14
  import '../scrollable-container/Component.js';
7
- import '../../useTabs.js';
15
+ import '../title/Component.js';
8
16
  import './Component.js';
9
- import '../../index.module-17321b1b.js';
17
+ import '../../index.module-01d292c0.js';
10
18
  import { PrimaryTabListDesktop } from './Component.desktop.js';
11
- import { useMedia } from '@alfalab/hooks';
12
19
  import { PrimaryTabListMobile } from './Component.mobile.js';
13
20
 
14
21
  var PrimaryTabListResponsive = function (_a) {
15
- var size = _a.size, _b = _a.defaultMatch, defaultMatch = _b === void 0 ? 'desktop' : _b, fullWidthScroll = _a.fullWidthScroll, restProps = __rest(_a, ["size", "defaultMatch", "fullWidthScroll"]);
22
+ var size = _a.size, _b = _a.defaultMatch, defaultMatch = _b === void 0 ? 'desktop' : _b, collapsible = _a.collapsible, fullWidthScroll = _a.fullWidthScroll, restProps = __rest(_a, ["size", "defaultMatch", "collapsible", "fullWidthScroll"]);
16
23
  var view = useMedia([
17
24
  ['mobile', '(max-width: 767px)'],
18
25
  ['desktop', '(min-width: 768px)'],
19
26
  ], defaultMatch)[0];
20
- return view === 'desktop' ? (React.createElement(PrimaryTabListDesktop, __assign({ size: size }, restProps))) : (React.createElement(PrimaryTabListMobile, __assign({ fullWidthScroll: fullWidthScroll }, restProps)));
27
+ return view === 'desktop' ? (React.createElement(PrimaryTabListDesktop, __assign({ collapsible: collapsible, size: size }, restProps))) : (React.createElement(PrimaryTabListMobile, __assign({ fullWidthScroll: fullWidthScroll }, restProps)));
21
28
  };
22
29
 
23
30
  export { PrimaryTabListResponsive };