@elliemae/ds-tabs 2.3.0-next.3 → 3.0.0-alpha.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 (174) hide show
  1. package/dist/cjs/DSTabs.js +63 -0
  2. package/dist/cjs/DSTabs.js.map +7 -0
  3. package/dist/cjs/DSTabsCTX.js +56 -0
  4. package/dist/cjs/DSTabsCTX.js.map +7 -0
  5. package/dist/cjs/DSTabsDatatestid.js +46 -0
  6. package/dist/cjs/DSTabsDatatestid.js.map +7 -0
  7. package/dist/cjs/DSTabsTypes.js +27 -0
  8. package/dist/cjs/DSTabsTypes.js.map +7 -0
  9. package/dist/cjs/config/useCrossRef.js +44 -0
  10. package/dist/cjs/config/useCrossRef.js.map +7 -0
  11. package/dist/cjs/config/useTabs.js +68 -0
  12. package/dist/cjs/config/useTabs.js.map +7 -0
  13. package/dist/cjs/defaultProps.js +53 -0
  14. package/dist/cjs/defaultProps.js.map +7 -0
  15. package/dist/cjs/exportsRelated/DSTab.js +46 -0
  16. package/dist/cjs/exportsRelated/DSTab.js.map +7 -0
  17. package/dist/cjs/index.js +38 -0
  18. package/dist/cjs/index.js.map +7 -0
  19. package/dist/cjs/parts/carousel/Carousel.js +77 -0
  20. package/dist/cjs/parts/carousel/Carousel.js.map +7 -0
  21. package/dist/cjs/parts/carousel/styles.js +79 -0
  22. package/dist/cjs/parts/carousel/styles.js.map +7 -0
  23. package/dist/cjs/parts/carousel/useCarousel.js +80 -0
  24. package/dist/cjs/parts/carousel/useCarousel.js.map +7 -0
  25. package/dist/cjs/parts/carousel/useCarouselCallbacks.js +89 -0
  26. package/dist/cjs/parts/carousel/useCarouselCallbacks.js.map +7 -0
  27. package/dist/cjs/parts/tabBar/TabBar.js +171 -0
  28. package/dist/cjs/parts/tabBar/TabBar.js.map +7 -0
  29. package/dist/cjs/parts/tabBar/styles.js +294 -0
  30. package/dist/cjs/parts/tabBar/styles.js.map +7 -0
  31. package/dist/cjs/parts/tabBar/useTabBar.js +100 -0
  32. package/dist/cjs/parts/tabBar/useTabBar.js.map +7 -0
  33. package/dist/cjs/parts/tabsContent/TabsContent.js +53 -0
  34. package/dist/cjs/parts/tabsContent/TabsContent.js.map +7 -0
  35. package/dist/cjs/parts/tabsContent/styles.js +39 -0
  36. package/dist/cjs/parts/tabsContent/styles.js.map +7 -0
  37. package/dist/cjs/parts/tabsPanel/TabsPanels.js +79 -0
  38. package/dist/cjs/parts/tabsPanel/TabsPanels.js.map +7 -0
  39. package/dist/cjs/parts/tabsPanel/styles.js +45 -0
  40. package/dist/cjs/parts/tabsPanel/styles.js.map +7 -0
  41. package/dist/cjs/propTypes.js +58 -0
  42. package/dist/cjs/propTypes.js.map +7 -0
  43. package/dist/cjs/utils/constants.js +56 -0
  44. package/dist/cjs/utils/constants.js.map +7 -0
  45. package/dist/cjs/utils/helpers.js +88 -0
  46. package/dist/cjs/utils/helpers.js.map +7 -0
  47. package/dist/cjs/utils/hooks/useKeyboardNavigation.js +77 -0
  48. package/dist/cjs/utils/hooks/useKeyboardNavigation.js.map +7 -0
  49. package/dist/cjs/utils/hooks/useTabsCallbacks.js +60 -0
  50. package/dist/cjs/utils/hooks/useTabsCallbacks.js.map +7 -0
  51. package/dist/esm/DSTabs.js +34 -0
  52. package/dist/esm/DSTabs.js.map +7 -0
  53. package/dist/esm/DSTabsCTX.js +27 -0
  54. package/dist/esm/DSTabsCTX.js.map +7 -0
  55. package/dist/esm/DSTabsDatatestid.js +17 -0
  56. package/dist/esm/DSTabsDatatestid.js.map +7 -0
  57. package/dist/esm/DSTabsTypes.js +2 -0
  58. package/dist/esm/DSTabsTypes.js.map +7 -0
  59. package/{esm → dist/esm}/config/useCrossRef.js +6 -4
  60. package/dist/esm/config/useCrossRef.js.map +7 -0
  61. package/dist/esm/config/useTabs.js +39 -0
  62. package/dist/esm/config/useTabs.js.map +7 -0
  63. package/{esm → dist/esm}/defaultProps.js +9 -8
  64. package/dist/esm/defaultProps.js.map +7 -0
  65. package/dist/esm/exportsRelated/DSTab.js +17 -0
  66. package/dist/esm/exportsRelated/DSTab.js.map +7 -0
  67. package/dist/esm/index.js +9 -0
  68. package/dist/esm/index.js.map +7 -0
  69. package/dist/esm/parts/carousel/Carousel.js +48 -0
  70. package/dist/esm/parts/carousel/Carousel.js.map +7 -0
  71. package/dist/esm/parts/carousel/styles.js +50 -0
  72. package/dist/esm/parts/carousel/styles.js.map +7 -0
  73. package/{esm → dist/esm}/parts/carousel/useCarousel.js +15 -34
  74. package/dist/esm/parts/carousel/useCarousel.js.map +7 -0
  75. package/{esm → dist/esm}/parts/carousel/useCarouselCallbacks.js +20 -28
  76. package/dist/esm/parts/carousel/useCarouselCallbacks.js.map +7 -0
  77. package/dist/esm/parts/tabBar/TabBar.js +149 -0
  78. package/dist/esm/parts/tabBar/TabBar.js.map +7 -0
  79. package/dist/esm/parts/tabBar/styles.js +265 -0
  80. package/dist/esm/parts/tabBar/styles.js.map +7 -0
  81. package/{esm → dist/esm}/parts/tabBar/useTabBar.js +27 -35
  82. package/dist/esm/parts/tabBar/useTabBar.js.map +7 -0
  83. package/dist/esm/parts/tabsContent/TabsContent.js +24 -0
  84. package/dist/esm/parts/tabsContent/TabsContent.js.map +7 -0
  85. package/dist/esm/parts/tabsContent/styles.js +10 -0
  86. package/dist/esm/parts/tabsContent/styles.js.map +7 -0
  87. package/dist/esm/parts/tabsPanel/TabsPanels.js +50 -0
  88. package/dist/esm/parts/tabsPanel/TabsPanels.js.map +7 -0
  89. package/dist/esm/parts/tabsPanel/styles.js +16 -0
  90. package/dist/esm/parts/tabsPanel/styles.js.map +7 -0
  91. package/dist/esm/propTypes.js +29 -0
  92. package/dist/esm/propTypes.js.map +7 -0
  93. package/dist/esm/utils/constants.js +27 -0
  94. package/dist/esm/utils/constants.js.map +7 -0
  95. package/{esm → dist/esm}/utils/helpers.js +23 -28
  96. package/dist/esm/utils/helpers.js.map +7 -0
  97. package/dist/esm/utils/hooks/useKeyboardNavigation.js +48 -0
  98. package/dist/esm/utils/hooks/useKeyboardNavigation.js.map +7 -0
  99. package/dist/esm/utils/hooks/useTabsCallbacks.js +31 -0
  100. package/dist/esm/utils/hooks/useTabsCallbacks.js.map +7 -0
  101. package/{types → dist/types}/DSTabs.d.ts +2 -2
  102. package/{types → dist/types}/DSTabsCTX.d.ts +0 -0
  103. package/{types → dist/types}/DSTabsDatatestid.d.ts +0 -0
  104. package/{types → dist/types}/DSTabsTypes.d.ts +0 -0
  105. package/{types → dist/types}/config/useCrossRef.d.ts +0 -0
  106. package/{types → dist/types}/config/useTabs.d.ts +0 -0
  107. package/{types → dist/types}/defaultProps.d.ts +0 -0
  108. package/{types → dist/types}/exportsRelated/DSTab.d.ts +0 -0
  109. package/{types → dist/types}/index.d.ts +0 -0
  110. package/{types → dist/types}/parts/carousel/Carousel.d.ts +0 -0
  111. package/{types → dist/types}/parts/carousel/styles.d.ts +1 -1
  112. package/{types → dist/types}/parts/carousel/useCarousel.d.ts +0 -0
  113. package/{types → dist/types}/parts/carousel/useCarouselCallbacks.d.ts +0 -0
  114. package/{types → dist/types}/parts/tabBar/TabBar.d.ts +0 -0
  115. package/{types → dist/types}/parts/tabBar/styles.d.ts +0 -0
  116. package/{types → dist/types}/parts/tabBar/useTabBar.d.ts +0 -0
  117. package/{types → dist/types}/parts/tabsContent/TabsContent.d.ts +0 -0
  118. package/{types → dist/types}/parts/tabsContent/styles.d.ts +0 -0
  119. package/{types → dist/types}/parts/tabsPanel/TabsPanels.d.ts +0 -0
  120. package/{types → dist/types}/parts/tabsPanel/styles.d.ts +0 -0
  121. package/{types → dist/types}/propTypes.d.ts +0 -0
  122. package/{types → dist/types}/tests/DSTabs.callbacks.test.d.ts +0 -0
  123. package/{types → dist/types}/tests/DSTabs.func.test.d.ts +0 -0
  124. package/{types → dist/types}/tests/DSTabs.keyboard.test.d.ts +0 -0
  125. package/{types → dist/types}/tests/DSTabs.test.d.ts +0 -0
  126. package/{types → dist/types}/utils/constants.d.ts +0 -0
  127. package/{types → dist/types}/utils/helpers.d.ts +0 -0
  128. package/{types → dist/types}/utils/hooks/useKeyboardNavigation.d.ts +0 -0
  129. package/{types → dist/types}/utils/hooks/useTabsCallbacks.d.ts +0 -0
  130. package/package.json +77 -69
  131. package/cjs/DSTabs.js +0 -45
  132. package/cjs/DSTabsCTX.js +0 -30
  133. package/cjs/DSTabsDatatestid.js +0 -18
  134. package/cjs/DSTabsTypes.js +0 -2
  135. package/cjs/config/useCrossRef.js +0 -17
  136. package/cjs/config/useTabs.js +0 -51
  137. package/cjs/defaultProps.js +0 -27
  138. package/cjs/exportsRelated/DSTab.js +0 -32
  139. package/cjs/index.js +0 -17
  140. package/cjs/parts/carousel/Carousel.js +0 -69
  141. package/cjs/parts/carousel/styles.js +0 -65
  142. package/cjs/parts/carousel/useCarousel.js +0 -78
  143. package/cjs/parts/carousel/useCarouselCallbacks.js +0 -72
  144. package/cjs/parts/tabBar/TabBar.js +0 -168
  145. package/cjs/parts/tabBar/styles.js +0 -200
  146. package/cjs/parts/tabBar/useTabBar.js +0 -87
  147. package/cjs/parts/tabsContent/TabsContent.js +0 -49
  148. package/cjs/parts/tabsContent/styles.js +0 -15
  149. package/cjs/parts/tabsPanel/TabsPanels.js +0 -77
  150. package/cjs/parts/tabsPanel/styles.js +0 -25
  151. package/cjs/propTypes.js +0 -33
  152. package/cjs/utils/constants.js +0 -28
  153. package/cjs/utils/helpers.js +0 -75
  154. package/cjs/utils/hooks/useKeyboardNavigation.js +0 -61
  155. package/cjs/utils/hooks/useTabsCallbacks.js +0 -41
  156. package/esm/DSTabs.js +0 -35
  157. package/esm/DSTabsCTX.js +0 -25
  158. package/esm/DSTabsDatatestid.js +0 -14
  159. package/esm/DSTabsTypes.js +0 -1
  160. package/esm/config/useTabs.js +0 -47
  161. package/esm/exportsRelated/DSTab.js +0 -21
  162. package/esm/index.js +0 -4
  163. package/esm/parts/carousel/Carousel.js +0 -61
  164. package/esm/parts/carousel/styles.js +0 -54
  165. package/esm/parts/tabBar/TabBar.js +0 -159
  166. package/esm/parts/tabBar/styles.js +0 -186
  167. package/esm/parts/tabsContent/TabsContent.js +0 -40
  168. package/esm/parts/tabsContent/styles.js +0 -7
  169. package/esm/parts/tabsPanel/TabsPanels.js +0 -67
  170. package/esm/parts/tabsPanel/styles.js +0 -17
  171. package/esm/propTypes.js +0 -28
  172. package/esm/utils/constants.js +0 -20
  173. package/esm/utils/hooks/useKeyboardNavigation.js +0 -57
  174. package/esm/utils/hooks/useTabsCallbacks.js +0 -37
@@ -1,13 +1,11 @@
1
- import { MOBILE_GRADIENT_WIDTH } from './constants.js';
2
-
1
+ import * as React from "react";
2
+ import { MOBILE_GRADIENT_WIDTH } from "./constants";
3
3
  const isElementVisible = (tab, tabList) => {
4
4
  const tabDimensions = tab.getBoundingClientRect();
5
5
  const tabListDimensions = tabList.getBoundingClientRect();
6
6
  return tabDimensions.left <= tabListDimensions.left ? tabListDimensions.left - tabDimensions.left <= tabDimensions.width : tabDimensions.right - tabListDimensions.right <= tabDimensions.width;
7
7
  };
8
- const isElementVisibleCarousel = function (tab, tabContainer) {
9
- let firstOrLastItem = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
10
-
8
+ const isElementVisibleCarousel = (tab, tabContainer, firstOrLastItem = true) => {
11
9
  if (tab && tabContainer) {
12
10
  const tabDimensions = tab.getBoundingClientRect();
13
11
  const tabContainerDimensions = tabContainer.getBoundingClientRect();
@@ -18,34 +16,22 @@ const isElementVisibleCarousel = function (tab, tabContainer) {
18
16
  const tabContainerDimensionsRight = Math.floor(tabContainerDimensions.right);
19
17
  return tabDimensionsLeft >= tabContainerDimensionsLeft && tabDimensionsRight <= tabContainerDimensionsRight;
20
18
  }
21
-
22
19
  return false;
23
20
  };
24
- const centerTab = _ref => {
25
- let {
26
- e,
27
- listRef
28
- } = _ref;
29
-
21
+ const centerTab = ({ e, listRef }) => {
30
22
  if (listRef.current) {
31
- const {
32
- offsetLeft
33
- } = e === null || e === void 0 ? void 0 : e.target;
34
- const {
35
- width: tabWidth
36
- } = (e === null || e === void 0 ? void 0 : e.target).getBoundingClientRect();
37
- const {
38
- width: listWidth
39
- } = listRef.current.getBoundingClientRect();
23
+ const { offsetLeft } = e?.target;
24
+ const { width: tabWidth } = (e?.target).getBoundingClientRect();
25
+ const { width: listWidth } = listRef.current.getBoundingClientRect();
40
26
  const extraSideSpace = listWidth - tabWidth;
41
27
  const leftOffsetToCenter = extraSideSpace > 0 ? extraSideSpace / 2 : 0;
42
28
  const centeredLeftOffset = offsetLeft > leftOffsetToCenter ? offsetLeft - leftOffsetToCenter : 0;
43
29
  listRef.current.scrollTo({
44
30
  top: 0,
45
31
  left: centeredLeftOffset,
46
- behavior: 'smooth'
32
+ behavior: "smooth"
47
33
  });
48
- e === null || e === void 0 ? void 0 : e.preventDefault();
34
+ e?.preventDefault();
49
35
  }
50
36
  };
51
37
  const getVisibleDimensions = (node, referenceNode) => {
@@ -56,9 +42,18 @@ const getVisibleDimensions = (node, referenceNode) => {
56
42
  height: Math.min(node.clientHeight, referenceNodeDimensions.top + referenceNode.clientHeight - nodeDimensions.top, node.clientHeight - (referenceNodeDimensions.top - nodeDimensions.top))
57
43
  };
58
44
  };
59
- const getIndexById = (children, activeId) => children && children.findIndex(item => item.props.tabId === activeId);
60
- const getIdByIndex = (children, index) => children && children[index].props.tabId || '';
61
- const shouldHaveLeftGradient = scrollLeft => Math.abs(scrollLeft) > MOBILE_GRADIENT_WIDTH;
45
+ const getIndexById = (children, activeId) => children && children.findIndex((item) => item.props.tabId === activeId);
46
+ const getIdByIndex = (children, index) => children && children[index].props.tabId || "";
47
+ const shouldHaveLeftGradient = (scrollLeft) => Math.abs(scrollLeft) > MOBILE_GRADIENT_WIDTH;
62
48
  const shouldHaveRightGradient = (scrollLeft, clientWidth, scrollWidth) => Math.abs(scrollLeft) <= scrollWidth - (clientWidth + MOBILE_GRADIENT_WIDTH);
63
-
64
- export { centerTab, getIdByIndex, getIndexById, getVisibleDimensions, isElementVisible, isElementVisibleCarousel, shouldHaveLeftGradient, shouldHaveRightGradient };
49
+ export {
50
+ centerTab,
51
+ getIdByIndex,
52
+ getIndexById,
53
+ getVisibleDimensions,
54
+ isElementVisible,
55
+ isElementVisibleCarousel,
56
+ shouldHaveLeftGradient,
57
+ shouldHaveRightGradient
58
+ };
59
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/utils/helpers.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import type { CenterTabPropsT, DSTabPropsWithDefaultT, VisibleDimensionsT } from '../DSTabsTypes';\nimport { MOBILE_GRADIENT_WIDTH } from './constants';\n\nexport const isElementVisible = (tab: HTMLElement, tabList: HTMLElement): boolean => {\n const tabDimensions = tab.getBoundingClientRect();\n const tabListDimensions = tabList.getBoundingClientRect();\n\n return tabDimensions.left <= tabListDimensions.left\n ? tabListDimensions.left - tabDimensions.left <= tabDimensions.width\n : tabDimensions.right - tabListDimensions.right <= tabDimensions.width;\n};\n\nexport const isElementVisibleCarousel = (\n tab: HTMLElement | null,\n tabContainer: HTMLDivElement | null,\n firstOrLastItem = true,\n): boolean => {\n if (tab && tabContainer) {\n const tabDimensions = tab.getBoundingClientRect();\n const tabContainerDimensions = tabContainer.getBoundingClientRect();\n\n const offset = firstOrLastItem ? 16 : 32;\n const tabDimensionsLeft = Math.floor(tabDimensions.left - offset);\n const tabDimensionsRight = Math.floor(tabDimensions.right + offset);\n\n const tabContainerDimensionsLeft = Math.floor(tabContainerDimensions.left);\n const tabContainerDimensionsRight = Math.floor(tabContainerDimensions.right);\n\n return tabDimensionsLeft >= tabContainerDimensionsLeft && tabDimensionsRight <= tabContainerDimensionsRight;\n }\n return false;\n};\n\nexport const centerTab = ({ e, listRef }: CenterTabPropsT) => {\n if (listRef.current) {\n const { offsetLeft } = e?.target as HTMLButtonElement;\n const { width: tabWidth } = (e?.target as HTMLButtonElement).getBoundingClientRect();\n const { width: listWidth } = listRef.current.getBoundingClientRect();\n const extraSideSpace = listWidth - tabWidth;\n const leftOffsetToCenter = extraSideSpace > 0 ? extraSideSpace / 2 : 0;\n const centeredLeftOffset = offsetLeft > leftOffsetToCenter ? offsetLeft - leftOffsetToCenter : 0;\n listRef.current.scrollTo({\n top: 0,\n left: centeredLeftOffset,\n behavior: 'smooth',\n });\n\n e?.preventDefault();\n }\n};\n\nexport const getVisibleDimensions = (node: HTMLElement, referenceNode: HTMLElement): VisibleDimensionsT => {\n const nodeDimensions = node.getBoundingClientRect();\n const referenceNodeDimensions = referenceNode.getBoundingClientRect();\n\n return {\n width: Math.min(\n node.clientWidth,\n referenceNodeDimensions.left + referenceNode.clientWidth - nodeDimensions.left,\n node.clientWidth - (referenceNodeDimensions.left - nodeDimensions.left),\n ),\n height: Math.min(\n node.clientHeight,\n referenceNodeDimensions.top + referenceNode.clientHeight - nodeDimensions.top,\n node.clientHeight - (referenceNodeDimensions.top - nodeDimensions.top),\n ),\n };\n};\n\nexport const getIndexById = (children: React.ReactElement<DSTabPropsWithDefaultT>[], activeId?: string): number =>\n children && children.findIndex((item: React.ReactElement<DSTabPropsWithDefaultT>) => item.props.tabId === activeId);\n\nexport const getIdByIndex = (children: React.ReactElement<DSTabPropsWithDefaultT>[], index: number): string =>\n (children && children[index].props.tabId) || '';\n\nexport const shouldHaveLeftGradient = (scrollLeft: number): boolean => Math.abs(scrollLeft) > MOBILE_GRADIENT_WIDTH;\n\nexport const shouldHaveRightGradient = (scrollLeft: number, clientWidth: number, scrollWidth: number): boolean =>\n Math.abs(scrollLeft) <= scrollWidth - (clientWidth + MOBILE_GRADIENT_WIDTH);\n"],
5
+ "mappings": "AAAA;ACCA;AAEO,MAAM,mBAAmB,CAAC,KAAkB,YAAkC;AACnF,QAAM,gBAAgB,IAAI;AAC1B,QAAM,oBAAoB,QAAQ;AAElC,SAAO,cAAc,QAAQ,kBAAkB,OAC3C,kBAAkB,OAAO,cAAc,QAAQ,cAAc,QAC7D,cAAc,QAAQ,kBAAkB,SAAS,cAAc;AAAA;AAG9D,MAAM,2BAA2B,CACtC,KACA,cACA,kBAAkB,SACN;AACZ,MAAI,OAAO,cAAc;AACvB,UAAM,gBAAgB,IAAI;AAC1B,UAAM,yBAAyB,aAAa;AAE5C,UAAM,SAAS,kBAAkB,KAAK;AACtC,UAAM,oBAAoB,KAAK,MAAM,cAAc,OAAO;AAC1D,UAAM,qBAAqB,KAAK,MAAM,cAAc,QAAQ;AAE5D,UAAM,6BAA6B,KAAK,MAAM,uBAAuB;AACrE,UAAM,8BAA8B,KAAK,MAAM,uBAAuB;AAEtE,WAAO,qBAAqB,8BAA8B,sBAAsB;AAAA;AAElF,SAAO;AAAA;AAGF,MAAM,YAAY,CAAC,EAAE,GAAG,cAA+B;AAC5D,MAAI,QAAQ,SAAS;AACnB,UAAM,EAAE,eAAe,GAAG;AAC1B,UAAM,EAAE,OAAO,aAAc,IAAG,QAA6B;AAC7D,UAAM,EAAE,OAAO,cAAc,QAAQ,QAAQ;AAC7C,UAAM,iBAAiB,YAAY;AACnC,UAAM,qBAAqB,iBAAiB,IAAI,iBAAiB,IAAI;AACrE,UAAM,qBAAqB,aAAa,qBAAqB,aAAa,qBAAqB;AAC/F,YAAQ,QAAQ,SAAS;AAAA,MACvB,KAAK;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA;AAGZ,OAAG;AAAA;AAAA;AAIA,MAAM,uBAAuB,CAAC,MAAmB,kBAAmD;AACzG,QAAM,iBAAiB,KAAK;AAC5B,QAAM,0BAA0B,cAAc;AAE9C,SAAO;AAAA,IACL,OAAO,KAAK,IACV,KAAK,aACL,wBAAwB,OAAO,cAAc,cAAc,eAAe,MAC1E,KAAK,cAAe,yBAAwB,OAAO,eAAe;AAAA,IAEpE,QAAQ,KAAK,IACX,KAAK,cACL,wBAAwB,MAAM,cAAc,eAAe,eAAe,KAC1E,KAAK,eAAgB,yBAAwB,MAAM,eAAe;AAAA;AAAA;AAKjE,MAAM,eAAe,CAAC,UAAwD,aACnF,YAAY,SAAS,UAAU,CAAC,SAAqD,KAAK,MAAM,UAAU;AAErG,MAAM,eAAe,CAAC,UAAwD,UAClF,YAAY,SAAS,OAAO,MAAM,SAAU;AAExC,MAAM,yBAAyB,CAAC,eAAgC,KAAK,IAAI,cAAc;AAEvF,MAAM,0BAA0B,CAAC,YAAoB,aAAqB,gBAC/E,KAAK,IAAI,eAAe,cAAe,eAAc;",
6
+ "names": []
7
+ }
@@ -0,0 +1,48 @@
1
+ import * as React from "react";
2
+ import { useCallback, useContext } from "react";
3
+ import { DSTabsContext, DSTabsCrossRefContext } from "../../DSTabsCTX";
4
+ const useKeyboardNavigation = () => {
5
+ const { focusableTabsRef } = useContext(DSTabsContext);
6
+ const { firstSubtabInternalRef, lastTabInternalRef } = useContext(DSTabsCrossRefContext);
7
+ const handleOnKeyDown = useCallback((e) => {
8
+ if (e.key === "ArrowRight" && focusableTabsRef.current) {
9
+ e.preventDefault();
10
+ e.stopPropagation();
11
+ const nextTab = focusableTabsRef.current[focusableTabsRef?.current?.indexOf?.(e.target) + 1];
12
+ if (nextTab)
13
+ nextTab.focus();
14
+ if (!nextTab)
15
+ return;
16
+ }
17
+ if (e.key === "ArrowLeft" && focusableTabsRef.current) {
18
+ e.preventDefault();
19
+ e.stopPropagation();
20
+ const prevTab = focusableTabsRef.current[focusableTabsRef?.current?.indexOf?.(e.target) - 1];
21
+ if (prevTab)
22
+ prevTab.focus();
23
+ if (!prevTab)
24
+ return;
25
+ }
26
+ if (e.key === "ArrowDown") {
27
+ e.preventDefault();
28
+ e.stopPropagation();
29
+ const canFocusCrossTabs = firstSubtabInternalRef?.current && lastTabInternalRef?.current;
30
+ if (canFocusCrossTabs)
31
+ firstSubtabInternalRef.current?.focus();
32
+ }
33
+ if (e.key === "ArrowUp") {
34
+ e.preventDefault();
35
+ e.stopPropagation();
36
+ const canFocusCrossTabs = firstSubtabInternalRef?.current && lastTabInternalRef?.current;
37
+ if (canFocusCrossTabs)
38
+ lastTabInternalRef.current?.focus();
39
+ }
40
+ }, [firstSubtabInternalRef, lastTabInternalRef, focusableTabsRef]);
41
+ return {
42
+ handleOnKeyDown
43
+ };
44
+ };
45
+ export {
46
+ useKeyboardNavigation
47
+ };
48
+ //# sourceMappingURL=useKeyboardNavigation.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/utils/hooks/useKeyboardNavigation.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport React, { useCallback, useContext } from 'react';\nimport { DSTabsContext, DSTabsCrossRefContext } from '../../DSTabsCTX';\nimport type { UseKeyboardNavigationReturnTypeT } from '../../DSTabsTypes';\n\nexport const useKeyboardNavigation = (): UseKeyboardNavigationReturnTypeT => {\n const { focusableTabsRef } = useContext(DSTabsContext);\n const { firstSubtabInternalRef, lastTabInternalRef } = useContext(DSTabsCrossRefContext);\n\n const handleOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'ArrowRight' && focusableTabsRef.current) {\n e.preventDefault();\n e.stopPropagation();\n const nextTab =\n focusableTabsRef.current[focusableTabsRef?.current?.indexOf?.(e.target as HTMLButtonElement) + 1];\n if (nextTab) nextTab.focus();\n if (!nextTab) return;\n }\n\n if (e.key === 'ArrowLeft' && focusableTabsRef.current) {\n e.preventDefault();\n e.stopPropagation();\n const prevTab =\n focusableTabsRef.current[focusableTabsRef?.current?.indexOf?.(e.target as HTMLButtonElement) - 1];\n if (prevTab) prevTab.focus();\n if (!prevTab) return;\n }\n\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n e.stopPropagation();\n const canFocusCrossTabs = firstSubtabInternalRef?.current && lastTabInternalRef?.current;\n if (canFocusCrossTabs) firstSubtabInternalRef.current?.focus();\n }\n\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n e.stopPropagation();\n const canFocusCrossTabs = firstSubtabInternalRef?.current && lastTabInternalRef?.current;\n if (canFocusCrossTabs) lastTabInternalRef.current?.focus();\n }\n },\n [firstSubtabInternalRef, lastTabInternalRef, focusableTabsRef],\n );\n\n return {\n handleOnKeyDown,\n };\n};\n"],
5
+ "mappings": "AAAA;ACEA;AACA;AAGO,MAAM,wBAAwB,MAAwC;AAC3E,QAAM,EAAE,qBAAqB,WAAW;AACxC,QAAM,EAAE,wBAAwB,uBAAuB,WAAW;AAElE,QAAM,kBAAkB,YACtB,CAAC,MAA2B;AAC1B,QAAI,EAAE,QAAQ,gBAAgB,iBAAiB,SAAS;AACtD,QAAE;AACF,QAAE;AACF,YAAM,UACJ,iBAAiB,QAAQ,kBAAkB,SAAS,UAAU,EAAE,UAA+B;AACjG,UAAI;AAAS,gBAAQ;AACrB,UAAI,CAAC;AAAS;AAAA;AAGhB,QAAI,EAAE,QAAQ,eAAe,iBAAiB,SAAS;AACrD,QAAE;AACF,QAAE;AACF,YAAM,UACJ,iBAAiB,QAAQ,kBAAkB,SAAS,UAAU,EAAE,UAA+B;AACjG,UAAI;AAAS,gBAAQ;AACrB,UAAI,CAAC;AAAS;AAAA;AAGhB,QAAI,EAAE,QAAQ,aAAa;AACzB,QAAE;AACF,QAAE;AACF,YAAM,oBAAoB,wBAAwB,WAAW,oBAAoB;AACjF,UAAI;AAAmB,+BAAuB,SAAS;AAAA;AAGzD,QAAI,EAAE,QAAQ,WAAW;AACvB,QAAE;AACF,QAAE;AACF,YAAM,oBAAoB,wBAAwB,WAAW,oBAAoB;AACjF,UAAI;AAAmB,2BAAmB,SAAS;AAAA;AAAA,KAGvD,CAAC,wBAAwB,oBAAoB;AAG/C,SAAO;AAAA,IACL;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,31 @@
1
+ import * as React from "react";
2
+ import { useCallback, useContext } from "react";
3
+ import { centerTab } from "../helpers";
4
+ import { DSTabsContext } from "../../DSTabsCTX";
5
+ const useTabsCallbacks = () => {
6
+ const {
7
+ setInternalActiveTab,
8
+ tabsListRef,
9
+ props: { onTabChange, isDSMobile, allowTextSelection, fixedTabsHeaders }
10
+ } = useContext(DSTabsContext);
11
+ const handleOnTabChange = useCallback((tabId, e) => {
12
+ setInternalActiveTab(tabId);
13
+ onTabChange(tabId, e);
14
+ if (isDSMobile && !fixedTabsHeaders && e) {
15
+ centerTab({ e, listRef: tabsListRef });
16
+ }
17
+ }, [fixedTabsHeaders, isDSMobile, onTabChange, setInternalActiveTab, tabsListRef]);
18
+ const handleOnMouseDown = useCallback((e) => {
19
+ const role = e.target.getAttribute("role");
20
+ if (role !== "tabpanel" && allowTextSelection)
21
+ e.stopPropagation();
22
+ }, [allowTextSelection]);
23
+ return {
24
+ handleOnTabChange,
25
+ handleOnMouseDown
26
+ };
27
+ };
28
+ export {
29
+ useTabsCallbacks
30
+ };
31
+ //# sourceMappingURL=useTabsCallbacks.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/utils/hooks/useTabsCallbacks.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback, useContext } from 'react';\nimport { centerTab } from '../helpers';\nimport { DSTabsContext } from '../../DSTabsCTX';\nimport type { UseTabsCallbacksReturnTypeT } from '../../DSTabsTypes';\n\nexport const useTabsCallbacks = (): UseTabsCallbacksReturnTypeT => {\n const {\n setInternalActiveTab,\n tabsListRef,\n props: { onTabChange, isDSMobile, allowTextSelection, fixedTabsHeaders },\n } = useContext(DSTabsContext);\n\n const handleOnTabChange = useCallback(\n (tabId: string, e?: React.MouseEvent) => {\n setInternalActiveTab(tabId);\n onTabChange(tabId, e);\n if (isDSMobile && !fixedTabsHeaders && e) {\n centerTab({ e, listRef: tabsListRef });\n }\n },\n [fixedTabsHeaders, isDSMobile, onTabChange, setInternalActiveTab, tabsListRef],\n );\n\n const handleOnMouseDown = useCallback(\n (e: React.MouseEvent) => {\n const role = (e.target as HTMLElement).getAttribute('role');\n if (role !== 'tabpanel' && allowTextSelection) e.stopPropagation();\n },\n [allowTextSelection],\n );\n\n return {\n handleOnTabChange,\n handleOnMouseDown,\n };\n};\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AAGO,MAAM,mBAAmB,MAAmC;AACjE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,OAAO,EAAE,aAAa,YAAY,oBAAoB;AAAA,MACpD,WAAW;AAEf,QAAM,oBAAoB,YACxB,CAAC,OAAe,MAAyB;AACvC,yBAAqB;AACrB,gBAAY,OAAO;AACnB,QAAI,cAAc,CAAC,oBAAoB,GAAG;AACxC,gBAAU,EAAE,GAAG,SAAS;AAAA;AAAA,KAG5B,CAAC,kBAAkB,YAAY,aAAa,sBAAsB;AAGpE,QAAM,oBAAoB,YACxB,CAAC,MAAwB;AACvB,UAAM,OAAQ,EAAE,OAAuB,aAAa;AACpD,QAAI,SAAS,cAAc;AAAoB,QAAE;AAAA,KAEnD,CAAC;AAGH,SAAO;AAAA,IACL;AAAA,IACA;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -1,9 +1,9 @@
1
1
  /// <reference path="../../../../shared/typings/react-desc.d.ts" />
2
- import type { WeakValidationMap } from 'react';
2
+ import React from 'react';
3
3
  import type { DSTabsPropsT } from './DSTabsTypes';
4
4
  declare const DSTabs: {
5
5
  (props: DSTabsPropsT): JSX.Element;
6
- propTypes: WeakValidationMap<unknown>;
6
+ propTypes: React.WeakValidationMap<unknown>;
7
7
  };
8
8
  declare const DSTabsWithSchema: {
9
9
  (props?: DSTabsPropsT | undefined): JSX.Element;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import type { StyledCarouselButtonWrapperPropsT } from '../../DSTabsTypes';
3
3
  export declare const StyledCarouselBtn: import("styled-components").StyledComponent<{
4
- (props: import("@elliemae/ds-button/types/v2/propTypes").DSButtonPropsT): JSX.Element;
4
+ (props: import("@elliemae/ds-button/dist/types/v2/propTypes").DSButtonPropsT): JSX.Element;
5
5
  propTypes: import("react").WeakValidationMap<unknown>;
6
6
  }, import("styled-components").DefaultTheme, {}, never>;
7
7
  export declare const StyledCarouselWrapper: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, {}, never>;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/package.json CHANGED
@@ -1,111 +1,114 @@
1
1
  {
2
2
  "name": "@elliemae/ds-tabs",
3
- "version": "2.3.0-next.3",
3
+ "version": "3.0.0-alpha.0",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Tabs",
6
- "module": "./esm/index.js",
7
- "main": "./cjs/index.js",
8
- "types": "./types/index.d.ts",
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "module": "./dist/esm/index.js",
10
+ "main": "./dist/cjs/index.js",
11
+ "types": "./dist/types/index.d.ts",
9
12
  "exports": {
10
13
  ".": {
11
- "import": "./esm/index.js",
12
- "require": "./cjs/index.js"
14
+ "import": "./dist/esm/index.js",
15
+ "require": "./dist/cjs/index.js"
13
16
  },
14
17
  "./utils/hooks/useTabsCallbacks": {
15
- "import": "./esm/utils/hooks/useTabsCallbacks.js",
16
- "require": "./cjs/utils/hooks/useTabsCallbacks.js"
18
+ "import": "./dist/esm/utils/hooks/useTabsCallbacks.js",
19
+ "require": "./dist/cjs/utils/hooks/useTabsCallbacks.js"
17
20
  },
18
21
  "./utils/hooks/useKeyboardNavigation": {
19
- "import": "./esm/utils/hooks/useKeyboardNavigation.js",
20
- "require": "./cjs/utils/hooks/useKeyboardNavigation.js"
22
+ "import": "./dist/esm/utils/hooks/useKeyboardNavigation.js",
23
+ "require": "./dist/cjs/utils/hooks/useKeyboardNavigation.js"
21
24
  },
22
25
  "./utils/helpers": {
23
- "import": "./esm/utils/helpers.js",
24
- "require": "./cjs/utils/helpers.js"
26
+ "import": "./dist/esm/utils/helpers.js",
27
+ "require": "./dist/cjs/utils/helpers.js"
25
28
  },
26
29
  "./utils/constants": {
27
- "import": "./esm/utils/constants.js",
28
- "require": "./cjs/utils/constants.js"
30
+ "import": "./dist/esm/utils/constants.js",
31
+ "require": "./dist/cjs/utils/constants.js"
29
32
  },
30
33
  "./propTypes": {
31
- "import": "./esm/propTypes.js",
32
- "require": "./cjs/propTypes.js"
34
+ "import": "./dist/esm/propTypes.js",
35
+ "require": "./dist/cjs/propTypes.js"
33
36
  },
34
37
  "./parts/tabsPanel/TabsPanels": {
35
- "import": "./esm/parts/tabsPanel/TabsPanels.js",
36
- "require": "./cjs/parts/tabsPanel/TabsPanels.js"
38
+ "import": "./dist/esm/parts/tabsPanel/TabsPanels.js",
39
+ "require": "./dist/cjs/parts/tabsPanel/TabsPanels.js"
37
40
  },
38
41
  "./parts/tabsPanel/styles": {
39
- "import": "./esm/parts/tabsPanel/styles.js",
40
- "require": "./cjs/parts/tabsPanel/styles.js"
42
+ "import": "./dist/esm/parts/tabsPanel/styles.js",
43
+ "require": "./dist/cjs/parts/tabsPanel/styles.js"
41
44
  },
42
45
  "./parts/tabsContent/TabsContent": {
43
- "import": "./esm/parts/tabsContent/TabsContent.js",
44
- "require": "./cjs/parts/tabsContent/TabsContent.js"
46
+ "import": "./dist/esm/parts/tabsContent/TabsContent.js",
47
+ "require": "./dist/cjs/parts/tabsContent/TabsContent.js"
45
48
  },
46
49
  "./parts/tabsContent/styles": {
47
- "import": "./esm/parts/tabsContent/styles.js",
48
- "require": "./cjs/parts/tabsContent/styles.js"
50
+ "import": "./dist/esm/parts/tabsContent/styles.js",
51
+ "require": "./dist/cjs/parts/tabsContent/styles.js"
49
52
  },
50
53
  "./parts/tabBar/useTabBar": {
51
- "import": "./esm/parts/tabBar/useTabBar.js",
52
- "require": "./cjs/parts/tabBar/useTabBar.js"
54
+ "import": "./dist/esm/parts/tabBar/useTabBar.js",
55
+ "require": "./dist/cjs/parts/tabBar/useTabBar.js"
53
56
  },
54
57
  "./parts/tabBar/TabBar": {
55
- "import": "./esm/parts/tabBar/TabBar.js",
56
- "require": "./cjs/parts/tabBar/TabBar.js"
58
+ "import": "./dist/esm/parts/tabBar/TabBar.js",
59
+ "require": "./dist/cjs/parts/tabBar/TabBar.js"
57
60
  },
58
61
  "./parts/tabBar/styles": {
59
- "import": "./esm/parts/tabBar/styles.js",
60
- "require": "./cjs/parts/tabBar/styles.js"
62
+ "import": "./dist/esm/parts/tabBar/styles.js",
63
+ "require": "./dist/cjs/parts/tabBar/styles.js"
61
64
  },
62
65
  "./parts/carousel/useCarouselCallbacks": {
63
- "import": "./esm/parts/carousel/useCarouselCallbacks.js",
64
- "require": "./cjs/parts/carousel/useCarouselCallbacks.js"
66
+ "import": "./dist/esm/parts/carousel/useCarouselCallbacks.js",
67
+ "require": "./dist/cjs/parts/carousel/useCarouselCallbacks.js"
65
68
  },
66
69
  "./parts/carousel/useCarousel": {
67
- "import": "./esm/parts/carousel/useCarousel.js",
68
- "require": "./cjs/parts/carousel/useCarousel.js"
70
+ "import": "./dist/esm/parts/carousel/useCarousel.js",
71
+ "require": "./dist/cjs/parts/carousel/useCarousel.js"
69
72
  },
70
73
  "./parts/carousel/styles": {
71
- "import": "./esm/parts/carousel/styles.js",
72
- "require": "./cjs/parts/carousel/styles.js"
74
+ "import": "./dist/esm/parts/carousel/styles.js",
75
+ "require": "./dist/cjs/parts/carousel/styles.js"
73
76
  },
74
77
  "./parts/carousel/Carousel": {
75
- "import": "./esm/parts/carousel/Carousel.js",
76
- "require": "./cjs/parts/carousel/Carousel.js"
78
+ "import": "./dist/esm/parts/carousel/Carousel.js",
79
+ "require": "./dist/cjs/parts/carousel/Carousel.js"
77
80
  },
78
81
  "./exportsRelated/DSTab": {
79
- "import": "./esm/exportsRelated/DSTab.js",
80
- "require": "./cjs/exportsRelated/DSTab.js"
82
+ "import": "./dist/esm/exportsRelated/DSTab.js",
83
+ "require": "./dist/cjs/exportsRelated/DSTab.js"
81
84
  },
82
85
  "./DSTabsTypes": {
83
- "import": "./esm/DSTabsTypes.js",
84
- "require": "./cjs/DSTabsTypes.js"
86
+ "import": "./dist/esm/DSTabsTypes.js",
87
+ "require": "./dist/cjs/DSTabsTypes.js"
85
88
  },
86
89
  "./DSTabsDatatestid": {
87
- "import": "./esm/DSTabsDatatestid.js",
88
- "require": "./cjs/DSTabsDatatestid.js"
90
+ "import": "./dist/esm/DSTabsDatatestid.js",
91
+ "require": "./dist/cjs/DSTabsDatatestid.js"
89
92
  },
90
93
  "./DSTabsCTX": {
91
- "import": "./esm/DSTabsCTX.js",
92
- "require": "./cjs/DSTabsCTX.js"
94
+ "import": "./dist/esm/DSTabsCTX.js",
95
+ "require": "./dist/cjs/DSTabsCTX.js"
93
96
  },
94
97
  "./DSTabs": {
95
- "import": "./esm/DSTabs.js",
96
- "require": "./cjs/DSTabs.js"
98
+ "import": "./dist/esm/DSTabs.js",
99
+ "require": "./dist/cjs/DSTabs.js"
97
100
  },
98
101
  "./defaultProps": {
99
- "import": "./esm/defaultProps.js",
100
- "require": "./cjs/defaultProps.js"
102
+ "import": "./dist/esm/defaultProps.js",
103
+ "require": "./dist/cjs/defaultProps.js"
101
104
  },
102
105
  "./config/useTabs": {
103
- "import": "./esm/config/useTabs.js",
104
- "require": "./cjs/config/useTabs.js"
106
+ "import": "./dist/esm/config/useTabs.js",
107
+ "require": "./dist/cjs/config/useTabs.js"
105
108
  },
106
109
  "./config/useCrossRef": {
107
- "import": "./esm/config/useCrossRef.js",
108
- "require": "./cjs/config/useCrossRef.js"
110
+ "import": "./dist/esm/config/useCrossRef.js",
111
+ "require": "./dist/cjs/config/useCrossRef.js"
109
112
  }
110
113
  },
111
114
  "sideEffects": [
@@ -117,29 +120,29 @@
117
120
  "url": "https://git.elliemae.io/platform-ui/dimsum.git"
118
121
  },
119
122
  "engines": {
120
- "npm": ">=7",
121
- "node": ">=14"
123
+ "pnpm": ">=6",
124
+ "node": ">=16"
122
125
  },
123
126
  "author": "ICE MT",
124
- "scripts": {
125
- "dev": "cross-env NODE_ENV=development && node ../../scripts/build/build.js -w",
126
- "prebuild": "exit 0",
127
- "predev": "exit 0",
128
- "build": "node ../../scripts/build/build.js"
127
+ "jestSonar": {
128
+ "sonar56x": true,
129
+ "reportPath": "reports",
130
+ "reportFile": "tests.xml",
131
+ "indent": 4
129
132
  },
130
133
  "dependencies": {
131
- "@elliemae/ds-button": "2.3.0-next.3",
132
- "@elliemae/ds-icon": "2.3.0-next.3",
133
- "@elliemae/ds-icons": "2.3.0-next.3",
134
- "@elliemae/ds-props-helpers": "2.3.0-next.3",
135
- "@elliemae/ds-system": "2.3.0-next.1",
134
+ "@elliemae/ds-button": "3.0.0-alpha.0",
135
+ "@elliemae/ds-icon": "3.0.0-alpha.0",
136
+ "@elliemae/ds-icons": "3.0.0-alpha.0",
137
+ "@elliemae/ds-props-helpers": "3.0.0-alpha.0",
138
+ "@elliemae/ds-system": "3.0.0-alpha.0",
136
139
  "@react-hook/resize-observer": "~1.2.5",
137
140
  "prop-types": "~15.7.2",
138
141
  "react-desc": "~4.1.3",
139
142
  "react-swipeable-views": "~0.13.9"
140
143
  },
141
144
  "devDependencies": {
142
- "@testing-library/jest-dom": "~5.15.0",
145
+ "@testing-library/jest-dom": "~5.15.1",
143
146
  "@testing-library/react": "~12.1.2",
144
147
  "@testing-library/user-event": "~13.5.0",
145
148
  "styled-components": "~5.3.3"
@@ -152,7 +155,12 @@
152
155
  },
153
156
  "publishConfig": {
154
157
  "access": "public",
155
- "directory": "dist",
156
- "generateSubmodules": true
158
+ "typeSafety": false
159
+ },
160
+ "scripts": {
161
+ "dev": "cross-env NODE_ENV=development node ../../scripts/build/build.mjs --watch",
162
+ "test": "node ../../scripts/testing/test.mjs",
163
+ "lint": "node ../../scripts/lint.mjs",
164
+ "build": "cross-env NODE_ENV=production node ../../scripts/build/build.mjs"
157
165
  }
158
166
  }
package/cjs/DSTabs.js DELETED
@@ -1,45 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _jsx = require('@babel/runtime/helpers/jsx');
6
- var reactDesc = require('react-desc');
7
- var propTypes = require('./propTypes.js');
8
- var DSTabsCTX = require('./DSTabsCTX.js');
9
- var TabsContent = require('./parts/tabsContent/TabsContent.js');
10
- var useTabs = require('./config/useTabs.js');
11
- var useCrossRef = require('./config/useCrossRef.js');
12
- var constants = require('./utils/constants.js');
13
-
14
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
-
16
- var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
17
-
18
- var _TabsContent, _TabsContent2;
19
-
20
- const DSTabs = props => {
21
- const ctx = useTabs.useTabs(props);
22
- const crossRefsCtx = useCrossRef.useCrossRef();
23
- const {
24
- type
25
- } = props;
26
-
27
- if (type === constants.TabTypes.SUBTABS) {
28
- return /*#__PURE__*/_jsx__default["default"](DSTabsCTX.DSTabsContext.Provider, {
29
- value: ctx
30
- }, void 0, _TabsContent || (_TabsContent = /*#__PURE__*/_jsx__default["default"](TabsContent.TabsContent, {})));
31
- }
32
-
33
- return /*#__PURE__*/_jsx__default["default"](DSTabsCTX.DSTabsCrossRefContext.Provider, {
34
- value: crossRefsCtx
35
- }, void 0, /*#__PURE__*/_jsx__default["default"](DSTabsCTX.DSTabsContext.Provider, {
36
- value: ctx
37
- }, void 0, _TabsContent2 || (_TabsContent2 = /*#__PURE__*/_jsx__default["default"](TabsContent.TabsContent, {}))));
38
- };
39
-
40
- const DSTabsWithSchema = reactDesc.describe(DSTabs);
41
- DSTabsWithSchema.propTypes = propTypes.tabsPropTypes;
42
-
43
- exports.DSTabs = DSTabs;
44
- exports.DSTabsWithSchema = DSTabsWithSchema;
45
- exports["default"] = DSTabs;
package/cjs/DSTabsCTX.js DELETED
@@ -1,30 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
- var defaultProps = require('./defaultProps.js');
7
-
8
- // eslint-disable-next-line @typescript-eslint/no-empty-function
9
- const noop = () => {};
10
-
11
- const defaultContext = {
12
- props: defaultProps.tabsDefaultProps,
13
- tabsRef: /*#__PURE__*/React.createRef(),
14
- tabsListRef: /*#__PURE__*/React.createRef(),
15
- carouselOnlyListRef: /*#__PURE__*/React.createRef(),
16
- focusableTabsRef: /*#__PURE__*/React.createRef(),
17
- tabsRefAsArray: /*#__PURE__*/React.createRef(),
18
- actualActiveTabRef: /*#__PURE__*/React.createRef(),
19
- setInternalActiveTab: noop,
20
- actualActiveTab: ''
21
- };
22
- const defaultCrossRefsContext = {
23
- lastTabInternalRef: /*#__PURE__*/React.createRef(),
24
- firstSubtabInternalRef: /*#__PURE__*/React.createRef()
25
- };
26
- const DSTabsContext = /*#__PURE__*/React.createContext(defaultContext);
27
- const DSTabsCrossRefContext = /*#__PURE__*/React.createContext(defaultCrossRefsContext);
28
-
29
- exports.DSTabsContext = DSTabsContext;
30
- exports.DSTabsCrossRefContext = DSTabsCrossRefContext;
@@ -1,18 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const DSTabsDatatestid = {
6
- TABS_CONTAINER: 'ds-tabs-container',
7
- TAB_BUTTON: 'ds-tabs-tab-button',
8
- SUBTAB_BUTTON: 'ds-tabs-subtab-button',
9
- TAB_PANEL: 'ds-tabs-tab-panel',
10
- SUB_TAB_LIST: 'subtabs-list',
11
- TAB_LIST: 'tab-list',
12
- CAROUSEL: {
13
- BUTTON_RIGHT: 'chevron-right',
14
- BUTTON_LEFT: 'chevron-left'
15
- }
16
- };
17
-
18
- exports.DSTabsDatatestid = DSTabsDatatestid;
@@ -1,2 +0,0 @@
1
- 'use strict';
2
-