@elliemae/ds-tabs 2.3.1 → 3.0.0-alpha.3

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 +74 -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 +58 -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 +69 -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 +95 -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 +84 -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 +45 -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 +31 -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 +42 -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 +66 -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 +19 -26
  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/package.json +78 -69
  102. package/cjs/DSTabs.js +0 -45
  103. package/cjs/DSTabsCTX.js +0 -30
  104. package/cjs/DSTabsDatatestid.js +0 -18
  105. package/cjs/DSTabsTypes.js +0 -2
  106. package/cjs/config/useCrossRef.js +0 -17
  107. package/cjs/config/useTabs.js +0 -54
  108. package/cjs/defaultProps.js +0 -27
  109. package/cjs/exportsRelated/DSTab.js +0 -32
  110. package/cjs/index.js +0 -17
  111. package/cjs/parts/carousel/Carousel.js +0 -69
  112. package/cjs/parts/carousel/styles.js +0 -65
  113. package/cjs/parts/carousel/useCarousel.js +0 -78
  114. package/cjs/parts/carousel/useCarouselCallbacks.js +0 -72
  115. package/cjs/parts/tabBar/TabBar.js +0 -168
  116. package/cjs/parts/tabBar/styles.js +0 -200
  117. package/cjs/parts/tabBar/useTabBar.js +0 -87
  118. package/cjs/parts/tabsContent/TabsContent.js +0 -49
  119. package/cjs/parts/tabsContent/styles.js +0 -15
  120. package/cjs/parts/tabsPanel/TabsPanels.js +0 -102
  121. package/cjs/parts/tabsPanel/styles.js +0 -25
  122. package/cjs/propTypes.js +0 -33
  123. package/cjs/utils/constants.js +0 -28
  124. package/cjs/utils/helpers.js +0 -71
  125. package/cjs/utils/hooks/useKeyboardNavigation.js +0 -61
  126. package/cjs/utils/hooks/useTabsCallbacks.js +0 -41
  127. package/esm/DSTabs.js +0 -35
  128. package/esm/DSTabsCTX.js +0 -25
  129. package/esm/DSTabsDatatestid.js +0 -14
  130. package/esm/DSTabsTypes.js +0 -1
  131. package/esm/config/useTabs.js +0 -50
  132. package/esm/exportsRelated/DSTab.js +0 -21
  133. package/esm/index.js +0 -4
  134. package/esm/parts/carousel/Carousel.js +0 -61
  135. package/esm/parts/carousel/styles.js +0 -54
  136. package/esm/parts/tabBar/TabBar.js +0 -159
  137. package/esm/parts/tabBar/styles.js +0 -186
  138. package/esm/parts/tabsContent/TabsContent.js +0 -40
  139. package/esm/parts/tabsContent/styles.js +0 -7
  140. package/esm/parts/tabsPanel/TabsPanels.js +0 -92
  141. package/esm/parts/tabsPanel/styles.js +0 -17
  142. package/esm/propTypes.js +0 -28
  143. package/esm/utils/constants.js +0 -20
  144. package/esm/utils/hooks/useKeyboardNavigation.js +0 -57
  145. package/esm/utils/hooks/useTabsCallbacks.js +0 -37
  146. package/types/DSTabs.d.ts +0 -14
  147. package/types/DSTabsCTX.d.ts +0 -4
  148. package/types/DSTabsDatatestid.d.ts +0 -12
  149. package/types/DSTabsTypes.d.ts +0 -205
  150. package/types/config/useCrossRef.d.ts +0 -2
  151. package/types/config/useTabs.d.ts +0 -2
  152. package/types/defaultProps.d.ts +0 -2
  153. package/types/exportsRelated/DSTab.d.ts +0 -14
  154. package/types/index.d.ts +0 -5
  155. package/types/parts/carousel/Carousel.d.ts +0 -3
  156. package/types/parts/carousel/styles.d.ts +0 -6
  157. package/types/parts/carousel/useCarousel.d.ts +0 -2
  158. package/types/parts/carousel/useCarouselCallbacks.d.ts +0 -2
  159. package/types/parts/tabBar/TabBar.d.ts +0 -2
  160. package/types/parts/tabBar/styles.d.ts +0 -7
  161. package/types/parts/tabBar/useTabBar.d.ts +0 -2
  162. package/types/parts/tabsContent/TabsContent.d.ts +0 -2
  163. package/types/parts/tabsContent/styles.d.ts +0 -1
  164. package/types/parts/tabsPanel/TabsPanels.d.ts +0 -2
  165. package/types/parts/tabsPanel/styles.d.ts +0 -2
  166. package/types/propTypes.d.ts +0 -54
  167. package/types/tests/DSTabs.callbacks.test.d.ts +0 -1
  168. package/types/tests/DSTabs.func.test.d.ts +0 -1
  169. package/types/tests/DSTabs.keyboard.test.d.ts +0 -1
  170. package/types/tests/DSTabs.test.d.ts +0 -1
  171. package/types/utils/constants.d.ts +0 -18
  172. package/types/utils/helpers.d.ts +0 -7
  173. package/types/utils/hooks/useKeyboardNavigation.d.ts +0 -2
  174. package/types/utils/hooks/useTabsCallbacks.d.ts +0 -2
@@ -0,0 +1,294 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __reExport = (target, module2, copyDefault, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
+ }
18
+ return target;
19
+ };
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
+ };
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+ var styles_exports = {};
29
+ __export(styles_exports, {
30
+ StyledRequiredMark: () => StyledRequiredMark,
31
+ StyledSelectionIndicator: () => StyledSelectionIndicator,
32
+ StyledSubTabsList: () => StyledSubTabsList,
33
+ StyledTabButton: () => StyledTabButton,
34
+ StyledTabList: () => StyledTabList,
35
+ StyledTabWrapper: () => StyledTabWrapper
36
+ });
37
+ var React = __toESM(require("react"));
38
+ var import_styled_components = __toESM(require("styled-components"));
39
+ var import_ds_system = require("@elliemae/ds-system");
40
+ var import_constants = require("../../utils/constants");
41
+ const StyledSelectionIndicator = import_styled_components.default.div`
42
+ position: absolute;
43
+ height: 3px;
44
+ top: ${({ tabType, isDSMobile }) => {
45
+ if (isDSMobile)
46
+ return `35px`;
47
+ if (tabType === import_constants.TabTypes.NORMAL_SMALL)
48
+ return `15px`;
49
+ return `25px`;
50
+ }};
51
+ margin-top: ${({ theme }) => theme.space.xxxs};
52
+ pointer-events: none;
53
+ transition: 200ms cubic-bezier(0.36, 0, 1, 1);
54
+ z-index: 10;
55
+ ${({ isDSMobile }) => isDSMobile ? `
56
+ margin-left: 0;
57
+ margin-top: 3px;
58
+ ` : ``}
59
+ `;
60
+ const mobileGradientsSettings = import_ds_system.css`
61
+ ${({ theme, mobileGradients, isDSMobile, fixedTabsHeaders }) => {
62
+ if (isDSMobile && !fixedTabsHeaders) {
63
+ if (mobileGradients.right && mobileGradients.left)
64
+ return `background: linear-gradient(90deg, rgba(238,238,238,0) 0%, ${theme.colors.brand[200]} 20%, ${theme.colors.brand[200]} 80%, rgba(238,238,238,0) 100%);`;
65
+ if (mobileGradients.right)
66
+ return `background: linear-gradient(90deg, ${theme.colors.brand[200]} 0%, ${theme.colors.brand[200]} 80%, rgba(238,238,238,0) 100%);`;
67
+ if (mobileGradients.left)
68
+ return `background: linear-gradient(90deg, rgba(238,238,238,0) 0%, ${theme.colors.brand[200]} 20%, ${theme.colors.brand[200]} 100%);`;
69
+ }
70
+ return ``;
71
+ }}
72
+ `;
73
+ const StyledTabWrapper = import_styled_components.default.div`
74
+ display: flex;
75
+ flex: 1;
76
+ flex-wrap: nowrap;
77
+ ${({ fixedTabsHeaders, isDSMobile }) => !fixedTabsHeaders && isDSMobile ? "" : "overflow-x: hidden;"}
78
+ ${({ theme, isDSMobile }) => isDSMobile ? `border-bottom: 1px solid ${theme.colors.brand[300]};` : ``}
79
+ `;
80
+ const StyledTabButton = import_styled_components.default.button`
81
+ position: relative;
82
+ background-color: transparent;
83
+ border: none;
84
+ cursor: pointer;
85
+ transition: 100ms cubic-bezier(0, 0, 0.42, 1);
86
+ text-transform: ${({ tabType }) => tabType === import_constants.TabTypes.SUBTABS ? `capitalize` : `uppercase`};
87
+ letter-spacing: 0px;
88
+ white-space: nowrap;
89
+ padding: 2px 0;
90
+ margin-right: ${({ fixedTabsHeaders, isDSMobile }) => {
91
+ if (fixedTabsHeaders)
92
+ return "0px";
93
+ if (!fixedTabsHeaders && isDSMobile)
94
+ return "14px";
95
+ return "16px";
96
+ }};
97
+
98
+ margin-left: ${({ fixedTabsHeaders, isDSMobile }) => {
99
+ if (fixedTabsHeaders)
100
+ return "0px";
101
+ if (!fixedTabsHeaders && isDSMobile)
102
+ return "14px";
103
+ return "16px";
104
+ }};
105
+
106
+ color: ${({ theme }) => theme.colors.neutral[700]};
107
+ ${(0, import_ds_system.onlySafariAndFirefox)("-webkit-text-stroke: 0.4px transparent;")}
108
+
109
+ ${({ tabType }) => tabType === import_constants.TabTypes.NORMAL ? `height: 32px;` : `height: 22px;`}
110
+
111
+ ${({ theme, isActive, disabled }) => isActive && !disabled ? `
112
+ font-weight: ${theme.fontWeights.semibold};
113
+ ${(0, import_ds_system.safariAndFirefoxBold)(`#353C46`)}
114
+
115
+ &:hover {
116
+ ${(0, import_ds_system.safariAndFirefoxBold)(`#1E79C2`)}
117
+ }
118
+
119
+ ` : `
120
+
121
+ `}
122
+
123
+ ${({ theme, disabled }) => disabled ? `
124
+ color: ${theme.colors.neutral[500]};
125
+ cursor: not-allowed;
126
+ ` : `
127
+ &:hover {
128
+ color: ${theme.colors.brand[600]};
129
+ }
130
+ `}
131
+
132
+
133
+ ${({ theme, showSeparator, tabType }) => showSeparator ? `
134
+ &:not(:last-of-type):before
135
+ {
136
+ content: "";
137
+ position: absolute;
138
+ width: 1px;
139
+ right: -16px;
140
+ top: 50%;
141
+ transform: translateY(-50%);
142
+ height: ${tabType === import_constants.TabTypes.SUBTABS ? `10px` : `16px`};
143
+ background: ${theme.colors.neutral[400]};
144
+ }` : ``}
145
+
146
+ ${({ theme, isDSMobile, tabType, isActive }) => !isDSMobile ? `
147
+ &:focus {
148
+ outline: none;
149
+ &:after {
150
+ position: absolute;
151
+ content: '';
152
+ top: 0;
153
+ left: -16px;
154
+ width: calc(100% + 32px);
155
+ height: 100%;
156
+ z-index: 5;
157
+ border-radius: 2px;
158
+ border: 2px solid ${theme.colors.brand[700]};
159
+ }
160
+
161
+ ${tabType !== import_constants.TabTypes.SUBTABS && isActive ? `
162
+ &:before {
163
+ position: absolute;
164
+ content: '';
165
+ left: -16px;
166
+ right: 0;
167
+ top: calc(100% - 2px);
168
+ transform: none;
169
+ width: calc(100% + 32px);
170
+ height: 2px;
171
+ z-index: 10;
172
+ background: linear-gradient(to right, transparent 0px, transparent 12px, white 12px, white 16px, transparent 16px,transparent calc(100% - 16px), white calc(100% - 16px), white calc(100% - 12px), transparent calc(100% - 12px), transparent 100%);
173
+ }
174
+ ` : ``}
175
+ }
176
+
177
+ ` : ``}
178
+
179
+
180
+
181
+ ${({ theme, isActive, disabled, isDSMobile }) => isDSMobile ? `
182
+ height: 40px;
183
+ color: ${theme.colors.brand[600]};
184
+ font-weight: ${theme.fontWeights.regular};
185
+ padding: 0;
186
+ font-size: 13px;
187
+ line-height: 1.3;
188
+ ${(0, import_ds_system.onlySafariAndFirefox)("-webkit-text-stroke: 0.4px transparent;")}
189
+
190
+ &:focus {
191
+ font-weight: ${theme.fontWeights.regular};
192
+ font-size: 13px;
193
+ ${(0, import_ds_system.safariAndFirefoxBold)("#006AA9")}
194
+ }
195
+
196
+ ${isActive ? `
197
+ font-weight: ${theme.fontWeights.regular};
198
+ font-size: 13px;
199
+ ${(0, import_ds_system.safariAndFirefoxBold)("#006AA9")}
200
+ ` : ``}
201
+
202
+ ${isActive && !disabled ? `
203
+ font-size: 13px;
204
+ color: ${theme.colors.brand[700]};
205
+ line-height: 1.3;
206
+ font-weight: ${theme.fontWeights.regular};
207
+ -webkit-font-smoothing: subpixel-antialiased;
208
+ -webkit-text-stroke: 0.4px ${theme.colors.brand[700]};` : ``}
209
+
210
+ ${!disabled ? `
211
+ &:hover,
212
+ &:focus {
213
+ outline: none;
214
+ color: ${theme.colors.brand[700]};
215
+ ${(0, import_ds_system.safariAndFirefoxBold)("#006AA9")}
216
+ }` : ``}
217
+
218
+ ` : ``}
219
+ `;
220
+ const StyledSubTabsList = import_styled_components.default.div`
221
+ position: relative;
222
+ display: flex;
223
+ flex-wrap: nowrap;
224
+ flex: 1;
225
+ width: 100%;
226
+ ${({ withCarousel }) => withCarousel ? "max-width: 100%;" : ""}
227
+ `;
228
+ const StyledTabList = import_styled_components.default.div`
229
+ position: relative;
230
+ display: flex;
231
+ flex-wrap: nowrap;
232
+ flex: 1;
233
+ width: 100%;
234
+ ${({ withCarousel, isDSMobile }) => withCarousel && !isDSMobile ? `max-width: 100%;` : ""}
235
+
236
+ ${({ theme, isDSMobile, tabType }) => tabType !== import_constants.TabTypes.NORMAL_SMALL && !isDSMobile ? `
237
+ &:after {
238
+ content: '';
239
+ position: absolute;
240
+ width: 100%;
241
+ height: 1px;
242
+ box-shadow: 0px 0px 0px 1px ${theme.colors.neutral[400]};
243
+ pointer-events: none;
244
+ bottom: 0px;
245
+ }
246
+ ` : ``}
247
+
248
+ ${StyledTabButton} {
249
+ padding-bottom: 0;
250
+ padding-top: 0;
251
+ }
252
+
253
+ ${({ theme, isDSMobile }) => isDSMobile ? `
254
+
255
+ background: ${theme.colors.brand[200]};` : ``}
256
+
257
+ ${mobileGradientsSettings}
258
+
259
+
260
+ ${({ isDSMobile, fixedTabsHeaders }) => isDSMobile ? `
261
+ ${!fixedTabsHeaders ? `
262
+ z-index: 0;
263
+ overflow-x: auto;
264
+ overflow-y: hidden;
265
+ scrollbar-width: thin;
266
+ &::-webkit-scrollbar {
267
+ display: none;
268
+ }` : `
269
+ display: flex;
270
+ ${StyledTabButton} {
271
+ flex: 1;
272
+ overflow-x: hidden;
273
+ }`}` : ``}
274
+
275
+ ${StyledSelectionIndicator} {
276
+ ${({ indicatorStyle }) => `
277
+ width: ${indicatorStyle.width};
278
+ left: ${indicatorStyle.left};
279
+ `}
280
+ }
281
+
282
+ ${StyledSelectionIndicator} {
283
+ background: ${({ theme, indicatorStyle, isDSMobile }) => !isDSMobile ? indicatorStyle.backgroundWithTransparent : theme.colors.brand[600]};
284
+ }
285
+ `;
286
+ const StyledRequiredMark = import_styled_components.default.span`
287
+ color: ${({ theme }) => theme.colors.danger[900]};
288
+ font-size: 6px;
289
+ margin-left: 2px;
290
+ position: absolute;
291
+ top: 5px;
292
+ `;
293
+ module.exports = __toCommonJS(styles_exports);
294
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/parts/tabBar/styles.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* eslint-disable indent */\n/* eslint-disable max-lines */\nimport styled from 'styled-components';\nimport { safariAndFirefoxBold, onlySafariAndFirefox, css } from '@elliemae/ds-system';\nimport { TabTypes } from '../../utils/constants';\nimport type {\n StyledSelectionIndicatoPropsT,\n StyledSubTabsListPropsT,\n StyledTabListPropsT,\n StyledTabButtonPropsT,\n StyledTabWrapperPropsT,\n} from '../../DSTabsTypes';\n\nexport const StyledSelectionIndicator = styled.div<StyledSelectionIndicatoPropsT>`\n position: absolute;\n height: 3px;\n top: ${({ tabType, isDSMobile }) => {\n if (isDSMobile) return `35px`;\n if (tabType === TabTypes.NORMAL_SMALL) return `15px`;\n return `25px`;\n }};\n margin-top: ${({ theme }) => theme.space.xxxs};\n pointer-events: none;\n transition: 200ms cubic-bezier(0.36, 0, 1, 1);\n z-index: 10;\n ${({ isDSMobile }) =>\n isDSMobile\n ? ` \n margin-left: 0;\n margin-top: 3px;\n `\n : ``}\n`;\n\nconst mobileGradientsSettings = css<StyledTabListPropsT>`\n ${({ theme, mobileGradients, isDSMobile, fixedTabsHeaders }) => {\n if (isDSMobile && !fixedTabsHeaders) {\n if (mobileGradients.right && mobileGradients.left)\n return `background: linear-gradient(90deg, rgba(238,238,238,0) 0%, ${theme.colors.brand[200]} 20%, ${theme.colors.brand[200]} 80%, rgba(238,238,238,0) 100%);`;\n if (mobileGradients.right)\n return `background: linear-gradient(90deg, ${theme.colors.brand[200]} 0%, ${theme.colors.brand[200]} 80%, rgba(238,238,238,0) 100%);`;\n if (mobileGradients.left)\n return `background: linear-gradient(90deg, rgba(238,238,238,0) 0%, ${theme.colors.brand[200]} 20%, ${theme.colors.brand[200]} 100%);`;\n }\n return ``;\n }}\n`;\n\nexport const StyledTabWrapper = styled.div<StyledTabWrapperPropsT>`\n display: flex;\n flex: 1;\n flex-wrap: nowrap;\n ${({ fixedTabsHeaders, isDSMobile }) => (!fixedTabsHeaders && isDSMobile ? '' : 'overflow-x: hidden;')}\n ${({ theme, isDSMobile }) => (isDSMobile ? `border-bottom: 1px solid ${theme.colors.brand[300]};` : ``)}\n`;\n\nexport const StyledTabButton = styled.button<StyledTabButtonPropsT>`\n position: relative;\n background-color: transparent;\n border: none;\n cursor: pointer;\n transition: 100ms cubic-bezier(0, 0, 0.42, 1);\n text-transform: ${({ tabType }) => (tabType === TabTypes.SUBTABS ? `capitalize` : `uppercase`)};\n letter-spacing: 0px;\n white-space: nowrap;\n padding: 2px 0;\n margin-right: ${({ fixedTabsHeaders, isDSMobile }) => {\n if (fixedTabsHeaders) return '0px';\n if (!fixedTabsHeaders && isDSMobile) return '14px';\n return '16px';\n }};\n\n margin-left: ${({ fixedTabsHeaders, isDSMobile }) => {\n if (fixedTabsHeaders) return '0px';\n if (!fixedTabsHeaders && isDSMobile) return '14px';\n return '16px';\n }};\n\n color: ${({ theme }) => theme.colors.neutral[700]};\n ${onlySafariAndFirefox('-webkit-text-stroke: 0.4px transparent;')}\n\n ${({ tabType }) => (tabType === TabTypes.NORMAL ? `height: 32px;` : `height: 22px;`)}\n\n ${({ theme, isActive, disabled }) =>\n isActive && !disabled\n ? `\n font-weight: ${theme.fontWeights.semibold};\n ${safariAndFirefoxBold(`#353C46`)}\n\n &:hover {\n ${safariAndFirefoxBold(`#1E79C2`)}\n }\n \n `\n : `\n \n `}\n\n ${({ theme, disabled }) =>\n disabled\n ? `\n color: ${theme.colors.neutral[500]};\n cursor: not-allowed;\n `\n : `\n &:hover {\n color: ${theme.colors.brand[600]};\n }\n `}\n\n\n ${({ theme, showSeparator, tabType }) =>\n showSeparator\n ? `\n &:not(:last-of-type):before\n {\n content: \"\";\n position: absolute;\n width: 1px;\n right: -16px;\n top: 50%;\n transform: translateY(-50%);\n height: ${tabType === TabTypes.SUBTABS ? `10px` : `16px`};\n background: ${theme.colors.neutral[400]};\n }`\n : ``}\n\n ${({ theme, isDSMobile, tabType, isActive }) =>\n !isDSMobile\n ? `\n &:focus {\n outline: none;\n &:after {\n position: absolute;\n content: '';\n top: 0;\n left: -16px;\n width: calc(100% + 32px);\n height: 100%;\n z-index: 5;\n border-radius: 2px;\n border: 2px solid ${theme.colors.brand[700]};\n }\n\n ${\n tabType !== TabTypes.SUBTABS && isActive\n ? `\n &:before {\n position: absolute;\n content: '';\n left: -16px;\n right: 0;\n top: calc(100% - 2px);\n transform: none;\n width: calc(100% + 32px);\n height: 2px;\n z-index: 10;\n background: linear-gradient(to right, transparent 0px, transparent 12px, white 12px, white 16px, transparent 16px,transparent calc(100% - 16px), white calc(100% - 16px), white calc(100% - 12px), transparent calc(100% - 12px), transparent 100%);\n }\n `\n : ``\n }\n }\n \n `\n : ``}\n\n \n \n${({ theme, isActive, disabled, isDSMobile }) =>\n isDSMobile\n ? `\n height: 40px;\n color: ${theme.colors.brand[600]};\n font-weight: ${theme.fontWeights.regular};\n padding: 0;\n font-size: 13px;\n line-height: 1.3;\n ${onlySafariAndFirefox('-webkit-text-stroke: 0.4px transparent;')} \n\n &:focus {\n font-weight: ${theme.fontWeights.regular};\n font-size: 13px;\n ${safariAndFirefoxBold('#006AA9')}\n }\n\n ${\n isActive\n ? `\n font-weight: ${theme.fontWeights.regular};\n font-size: 13px;\n ${safariAndFirefoxBold('#006AA9')}\n `\n : ``\n }\n\n ${\n isActive && !disabled\n ? `\n font-size: 13px;\n color: ${theme.colors.brand[700]};\n line-height: 1.3;\n font-weight: ${theme.fontWeights.regular};\n -webkit-font-smoothing: subpixel-antialiased; \n -webkit-text-stroke: 0.4px ${theme.colors.brand[700]};`\n : ``\n }\n\n ${\n !disabled\n ? `\n &:hover,\n &:focus {\n outline: none;\n color: ${theme.colors.brand[700]};\n ${safariAndFirefoxBold('#006AA9')}\n }`\n : ``\n }\n\n `\n : ``}\n`;\n\nexport const StyledSubTabsList = styled.div<StyledSubTabsListPropsT>`\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n flex: 1;\n width: 100%;\n ${({ withCarousel }) => (withCarousel ? 'max-width: 100%;' : '')}\n`;\n\nexport const StyledTabList = styled.div<StyledTabListPropsT>`\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n flex: 1;\n width: 100%;\n ${({ withCarousel, isDSMobile }) => (withCarousel && !isDSMobile ? `max-width: 100%;` : '')}\n\n ${({ theme, isDSMobile, tabType }) =>\n tabType !== TabTypes.NORMAL_SMALL && !isDSMobile\n ? `\n &:after {\n content: '';\n position: absolute;\n width: 100%;\n height: 1px;\n box-shadow: 0px 0px 0px 1px ${theme.colors.neutral[400]};\n pointer-events: none;\n bottom: 0px;\n }\n `\n : ``}\n\n ${StyledTabButton} {\n padding-bottom: 0;\n padding-top: 0;\n }\n\n ${({ theme, isDSMobile }) =>\n isDSMobile\n ? `\n \n background: ${theme.colors.brand[200]};`\n : ``}\n\n ${mobileGradientsSettings}\n\n\n ${({ isDSMobile, fixedTabsHeaders }) =>\n isDSMobile\n ? `\n ${\n !fixedTabsHeaders\n ? `\n z-index: 0;\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: thin;\n &::-webkit-scrollbar {\n display: none;\n }`\n : `\n display: flex;\n ${StyledTabButton} {\n flex: 1;\n overflow-x: hidden;\n }`\n }`\n : ``}\n\n ${StyledSelectionIndicator} {\n ${({ indicatorStyle }) => `\n width: ${indicatorStyle.width};\n left: ${indicatorStyle.left};\n `}\n }\n\n ${StyledSelectionIndicator} {\n background: ${({ theme, indicatorStyle, isDSMobile }) =>\n !isDSMobile ? indicatorStyle.backgroundWithTransparent : theme.colors.brand[600]};\n }\n`;\n\nexport const StyledRequiredMark = styled.span`\n color: ${({ theme }) => theme.colors.danger[900]};\n font-size: 6px;\n margin-left: 2px;\n position: absolute;\n top: 5px;\n`;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,100 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __reExport = (target, module2, copyDefault, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
+ }
18
+ return target;
19
+ };
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
+ };
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+ var useTabBar_exports = {};
29
+ __export(useTabBar_exports, {
30
+ useTabBar: () => useTabBar
31
+ });
32
+ var React = __toESM(require("react"));
33
+ var import_react = require("react");
34
+ var import_resize_observer = __toESM(require("@react-hook/resize-observer"));
35
+ var import_helpers = require("../../utils/helpers");
36
+ var import_DSTabsCTX = require("../../DSTabsCTX");
37
+ var import_constants = require("../../utils/constants");
38
+ const useTabBar = () => {
39
+ const {
40
+ actualActiveTab,
41
+ actualActiveTabRef,
42
+ tabsListRef,
43
+ props: { showSelectionIndicator, isDSMobile, fixedTabsHeaders }
44
+ } = (0, import_react.useContext)(import_DSTabsCTX.DSTabsContext);
45
+ const [mobileGradients, setMobileGradients] = (0, import_react.useState)({ left: false, right: false });
46
+ const [indicatorStyle, setIndicatorStyle] = (0, import_react.useState)(import_constants.defaultIndicatorStyles);
47
+ const getIndicatorStyles = (0, import_react.useCallback)(() => {
48
+ if (tabsListRef.current) {
49
+ const tabList = tabsListRef.current;
50
+ const activeTabButton = actualActiveTabRef.current;
51
+ if (!activeTabButton || !(0, import_helpers.isElementVisible)(activeTabButton, tabList))
52
+ return import_constants.defaultIndicatorStyles;
53
+ const missingMargins = isDSMobile ? 0 : 16;
54
+ const tabClientWidth = isDSMobile && !fixedTabsHeaders ? activeTabButton.clientWidth : activeTabButton.clientWidth + missingMargins * 2;
55
+ const position = isDSMobile && !fixedTabsHeaders ? activeTabButton.getBoundingClientRect().left - tabList.getBoundingClientRect().left + tabList.scrollLeft : activeTabButton.getBoundingClientRect().left - tabList.getBoundingClientRect().left - missingMargins;
56
+ const backgroundWithTransparent = `linear-gradient(to right, transparent 0px, transparent 16px, #1E79C2 16px, #1E79C2 ${tabClientWidth - 16}px,transparent ${tabClientWidth - 16}px,transparent ${tabClientWidth}px )`;
57
+ return {
58
+ left: `${position}px`,
59
+ width: `${tabClientWidth}px`,
60
+ backgroundWithTransparent
61
+ };
62
+ }
63
+ return import_constants.defaultIndicatorStyles;
64
+ }, [actualActiveTabRef, fixedTabsHeaders, isDSMobile, tabsListRef]);
65
+ const updateIndicatorStyle = (0, import_react.useCallback)(() => setTimeout(() => setIndicatorStyle(getIndicatorStyles()), 100), [getIndicatorStyles, setIndicatorStyle]);
66
+ (0, import_resize_observer.default)(tabsListRef, updateIndicatorStyle);
67
+ const updateMobileGradients = (0, import_react.useCallback)(() => {
68
+ if (tabsListRef.current && isDSMobile && !fixedTabsHeaders) {
69
+ const { scrollLeft, scrollWidth, clientWidth } = tabsListRef.current;
70
+ setMobileGradients({
71
+ left: (0, import_helpers.shouldHaveLeftGradient)(scrollLeft),
72
+ right: (0, import_helpers.shouldHaveRightGradient)(scrollLeft, clientWidth, scrollWidth)
73
+ });
74
+ }
75
+ }, [fixedTabsHeaders, isDSMobile, tabsListRef]);
76
+ (0, import_react.useLayoutEffect)(() => {
77
+ if (showSelectionIndicator) {
78
+ updateIndicatorStyle();
79
+ }
80
+ if (isDSMobile && !fixedTabsHeaders) {
81
+ updateMobileGradients();
82
+ }
83
+ }, [
84
+ updateMobileGradients,
85
+ showSelectionIndicator,
86
+ updateIndicatorStyle,
87
+ isDSMobile,
88
+ fixedTabsHeaders,
89
+ actualActiveTab
90
+ ]);
91
+ return {
92
+ updateIndicatorStyle,
93
+ setIndicatorStyle,
94
+ indicatorStyle,
95
+ mobileGradients,
96
+ updateMobileGradients
97
+ };
98
+ };
99
+ module.exports = __toCommonJS(useTabBar_exports);
100
+ //# sourceMappingURL=useTabBar.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/parts/tabBar/useTabBar.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* eslint-disable max-statements */\nimport { useCallback, useLayoutEffect, useState, useContext } from 'react';\nimport useResizeObserver from '@react-hook/resize-observer';\nimport { isElementVisible, shouldHaveLeftGradient, shouldHaveRightGradient } from '../../utils/helpers';\nimport { DSTabsContext } from '../../DSTabsCTX';\nimport { defaultIndicatorStyles } from '../../utils/constants';\nimport type { IndicatorStyleT, MobileGradientsT, UseTabBarReturnTypeT } from '../../DSTabsTypes';\n\nexport const useTabBar = (): UseTabBarReturnTypeT => {\n const {\n actualActiveTab,\n actualActiveTabRef,\n tabsListRef,\n props: { showSelectionIndicator, isDSMobile, fixedTabsHeaders },\n } = useContext(DSTabsContext);\n\n const [mobileGradients, setMobileGradients] = useState<MobileGradientsT>({ left: false, right: false });\n const [indicatorStyle, setIndicatorStyle] = useState<IndicatorStyleT>(defaultIndicatorStyles);\n\n const getIndicatorStyles = useCallback(() => {\n if (tabsListRef.current) {\n const tabList = tabsListRef.current;\n const activeTabButton = actualActiveTabRef.current;\n\n if (!activeTabButton || !isElementVisible(activeTabButton, tabList)) return defaultIndicatorStyles;\n\n // The missingMargins are to make the selection indicator white marks work properly in desktop, we need\n // the full width of the tab button with margins.\n const missingMargins = isDSMobile ? 0 : 16;\n\n const tabClientWidth =\n isDSMobile && !fixedTabsHeaders\n ? activeTabButton.clientWidth\n : activeTabButton.clientWidth + missingMargins * 2;\n\n // The reason why we use the tabList.scrollLeft is due to the centerOnTabChange (only in Mobile and FlexibleTabs)\n // behavior that adds scroll to the tabList\n const position =\n isDSMobile && !fixedTabsHeaders\n ? activeTabButton.getBoundingClientRect().left - tabList.getBoundingClientRect().left + tabList.scrollLeft\n : activeTabButton.getBoundingClientRect().left - tabList.getBoundingClientRect().left - missingMargins;\n\n const backgroundWithTransparent = `linear-gradient(to right, transparent 0px, transparent 16px, #1E79C2 16px, #1E79C2 ${\n tabClientWidth - 16\n }px,transparent ${tabClientWidth - 16}px,transparent ${tabClientWidth}px )`;\n\n return {\n left: `${position}px`,\n width: `${tabClientWidth}px`,\n backgroundWithTransparent,\n };\n }\n return defaultIndicatorStyles;\n }, [actualActiveTabRef, fixedTabsHeaders, isDSMobile, tabsListRef]);\n\n const updateIndicatorStyle = useCallback(\n () => setTimeout(() => setIndicatorStyle(getIndicatorStyles()), 100),\n [getIndicatorStyles, setIndicatorStyle],\n );\n\n useResizeObserver(tabsListRef, updateIndicatorStyle);\n\n const updateMobileGradients = useCallback(() => {\n if (tabsListRef.current && isDSMobile && !fixedTabsHeaders) {\n const { scrollLeft, scrollWidth, clientWidth } = tabsListRef.current;\n setMobileGradients({\n left: shouldHaveLeftGradient(scrollLeft),\n right: shouldHaveRightGradient(scrollLeft, clientWidth, scrollWidth),\n });\n }\n }, [fixedTabsHeaders, isDSMobile, tabsListRef]);\n\n useLayoutEffect(() => {\n if (showSelectionIndicator) {\n updateIndicatorStyle();\n }\n if (isDSMobile && !fixedTabsHeaders) {\n updateMobileGradients();\n }\n }, [\n updateMobileGradients,\n showSelectionIndicator,\n updateIndicatorStyle,\n isDSMobile,\n fixedTabsHeaders,\n actualActiveTab,\n ]);\n\n return {\n updateIndicatorStyle,\n setIndicatorStyle,\n indicatorStyle,\n mobileGradients,\n updateMobileGradients,\n };\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAmE;AACnE,6BAA8B;AAC9B,qBAAkF;AAClF,uBAA8B;AAC9B,uBAAuC;AAGhC,MAAM,YAAY,MAA4B;AACnD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,EAAE,wBAAwB,YAAY;AAAA,MAC3C,6BAAW;AAEf,QAAM,CAAC,iBAAiB,sBAAsB,2BAA2B,EAAE,MAAM,OAAO,OAAO;AAC/F,QAAM,CAAC,gBAAgB,qBAAqB,2BAA0B;AAEtE,QAAM,qBAAqB,8BAAY,MAAM;AAC3C,QAAI,YAAY,SAAS;AACvB,YAAM,UAAU,YAAY;AAC5B,YAAM,kBAAkB,mBAAmB;AAE3C,UAAI,CAAC,mBAAmB,CAAC,qCAAiB,iBAAiB;AAAU,eAAO;AAI5E,YAAM,iBAAiB,aAAa,IAAI;AAExC,YAAM,iBACJ,cAAc,CAAC,mBACX,gBAAgB,cAChB,gBAAgB,cAAc,iBAAiB;AAIrD,YAAM,WACJ,cAAc,CAAC,mBACX,gBAAgB,wBAAwB,OAAO,QAAQ,wBAAwB,OAAO,QAAQ,aAC9F,gBAAgB,wBAAwB,OAAO,QAAQ,wBAAwB,OAAO;AAE5F,YAAM,4BAA4B,uFAChC,iBAAiB,oBACD,iBAAiB,oBAAoB;AAEvD,aAAO;AAAA,QACL,MAAM,GAAG;AAAA,QACT,OAAO,GAAG;AAAA,QACV;AAAA;AAAA;AAGJ,WAAO;AAAA,KACN,CAAC,oBAAoB,kBAAkB,YAAY;AAEtD,QAAM,uBAAuB,8BAC3B,MAAM,WAAW,MAAM,kBAAkB,uBAAuB,MAChE,CAAC,oBAAoB;AAGvB,sCAAkB,aAAa;AAE/B,QAAM,wBAAwB,8BAAY,MAAM;AAC9C,QAAI,YAAY,WAAW,cAAc,CAAC,kBAAkB;AAC1D,YAAM,EAAE,YAAY,aAAa,gBAAgB,YAAY;AAC7D,yBAAmB;AAAA,QACjB,MAAM,2CAAuB;AAAA,QAC7B,OAAO,4CAAwB,YAAY,aAAa;AAAA;AAAA;AAAA,KAG3D,CAAC,kBAAkB,YAAY;AAElC,oCAAgB,MAAM;AACpB,QAAI,wBAAwB;AAC1B;AAAA;AAEF,QAAI,cAAc,CAAC,kBAAkB;AACnC;AAAA;AAAA,KAED;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGF,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,69 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
25
+ var __export = (target, all) => {
26
+ for (var name in all)
27
+ __defProp(target, name, { get: all[name], enumerable: true });
28
+ };
29
+ var __reExport = (target, module2, copyDefault, desc) => {
30
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
31
+ for (let key of __getOwnPropNames(module2))
32
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
33
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
34
+ }
35
+ return target;
36
+ };
37
+ var __toESM = (module2, isNodeMode) => {
38
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
39
+ };
40
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
41
+ return (module2, temp) => {
42
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
43
+ };
44
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
45
+ var TabsContent_exports = {};
46
+ __export(TabsContent_exports, {
47
+ TabsContent: () => TabsContent
48
+ });
49
+ var React = __toESM(require("react"));
50
+ var import_react = __toESM(require("react"));
51
+ var import_TabsPanels = require("../tabsPanel/TabsPanels");
52
+ var import_TabBar = require("../tabBar/TabBar");
53
+ var import_styles = require("./styles");
54
+ var import_DSTabsCTX = require("../../DSTabsCTX");
55
+ var import_DSTabsDatatestid = require("../../DSTabsDatatestid");
56
+ const TabsContent = () => {
57
+ const {
58
+ props: { containerProps, innerRef, tabsListAriaLabel, tabBarExtraContent }
59
+ } = (0, import_react.useContext)(import_DSTabsCTX.DSTabsContext);
60
+ return /* @__PURE__ */ import_react.default.createElement("div", __spreadProps(__spreadValues({}, containerProps), {
61
+ ref: innerRef,
62
+ "data-testid": import_DSTabsDatatestid.DSTabsDatatestid.TABS_CONTAINER
63
+ }), /* @__PURE__ */ import_react.default.createElement(import_styles.StyledTabBarContainer, {
64
+ "aria-label": tabsListAriaLabel,
65
+ role: "tablist"
66
+ }, /* @__PURE__ */ import_react.default.createElement(import_TabBar.TabBar, null), tabBarExtraContent), /* @__PURE__ */ import_react.default.createElement(import_TabsPanels.TabsPanels, null));
67
+ };
68
+ module.exports = __toCommonJS(TabsContent_exports);
69
+ //# sourceMappingURL=TabsContent.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/parts/tabsContent/TabsContent.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import React, { useContext } from 'react';\nimport { TabsPanels } from '../tabsPanel/TabsPanels';\nimport { TabBar } from '../tabBar/TabBar';\nimport { StyledTabBarContainer } from './styles';\nimport { DSTabsContext } from '../../DSTabsCTX';\nimport { DSTabsDatatestid } from '../../DSTabsDatatestid';\n\nexport const TabsContent = (): JSX.Element => {\n const {\n props: { containerProps, innerRef, tabsListAriaLabel, tabBarExtraContent },\n } = useContext(DSTabsContext);\n\n return (\n <div {...containerProps} ref={innerRef} data-testid={DSTabsDatatestid.TABS_CONTAINER}>\n <StyledTabBarContainer aria-label={tabsListAriaLabel} role=\"tablist\">\n <TabBar />\n {tabBarExtraContent}\n </StyledTabBarContainer>\n <TabsPanels />\n </div>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkC;AAClC,wBAA2B;AAC3B,oBAAuB;AACvB,oBAAsC;AACtC,uBAA8B;AAC9B,8BAAiC;AAE1B,MAAM,cAAc,MAAmB;AAC5C,QAAM;AAAA,IACJ,OAAO,EAAE,gBAAgB,UAAU,mBAAmB;AAAA,MACpD,6BAAW;AAEf,SACE,mDAAC,OAAD,iCAAS,iBAAT;AAAA,IAAyB,KAAK;AAAA,IAAU,eAAa,yCAAiB;AAAA,MACpE,mDAAC,qCAAD;AAAA,IAAuB,cAAY;AAAA,IAAmB,MAAK;AAAA,KACzD,mDAAC,sBAAD,OACC,qBAEH,mDAAC,8BAAD;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,39 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __reExport = (target, module2, copyDefault, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
+ }
18
+ return target;
19
+ };
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
+ };
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+ var styles_exports = {};
29
+ __export(styles_exports, {
30
+ StyledTabBarContainer: () => StyledTabBarContainer
31
+ });
32
+ var React = __toESM(require("react"));
33
+ var import_styled_components = __toESM(require("styled-components"));
34
+ const StyledTabBarContainer = import_styled_components.default.div`
35
+ display: flex;
36
+ overflow-x: hidden;
37
+ `;
38
+ module.exports = __toCommonJS(styles_exports);
39
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/parts/tabsContent/styles.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import styled from 'styled-components';\n\nexport const StyledTabBarContainer = styled.div`\n display: flex;\n overflow-x: hidden;\n`;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,+BAAmB;AAEZ,MAAM,wBAAwB,iCAAO;AAAA;AAAA;AAAA;",
6
+ "names": []
7
+ }