@cleartrip/ct-design-tabs 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/StyledCounter/StyledCounter.d.ts +9 -0
  2. package/dist/StyledCounter/StyledCounter.d.ts.map +1 -0
  3. package/dist/StyledCounter/index.d.ts +2 -0
  4. package/dist/StyledCounter/index.d.ts.map +1 -0
  5. package/dist/StyledCounter/style.d.ts +10 -0
  6. package/dist/StyledCounter/style.d.ts.map +1 -0
  7. package/dist/StyledCounter/type.d.ts +4 -0
  8. package/dist/StyledCounter/type.d.ts.map +1 -0
  9. package/dist/TabItem/TabItem.d.ts +26 -0
  10. package/dist/TabItem/TabItem.d.ts.map +1 -0
  11. package/dist/TabItem/index.d.ts +3 -0
  12. package/dist/TabItem/index.d.ts.map +1 -0
  13. package/dist/TabItem/type.d.ts +23 -0
  14. package/dist/TabItem/type.d.ts.map +1 -0
  15. package/dist/Tabs.d.ts +6 -0
  16. package/dist/Tabs.d.ts.map +1 -0
  17. package/dist/ct-design-tabs.browser.cjs.js +232 -0
  18. package/dist/ct-design-tabs.browser.cjs.js.map +1 -0
  19. package/dist/ct-design-tabs.browser.esm.js +217 -0
  20. package/dist/ct-design-tabs.browser.esm.js.map +1 -0
  21. package/dist/ct-design-tabs.cjs.js +288 -0
  22. package/dist/ct-design-tabs.cjs.js.map +1 -0
  23. package/dist/ct-design-tabs.esm.js +271 -0
  24. package/dist/ct-design-tabs.esm.js.map +1 -0
  25. package/dist/ct-design-tabs.umd.js +374 -0
  26. package/dist/ct-design-tabs.umd.js.map +1 -0
  27. package/dist/index.d.ts +5 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/stats.html +6303 -0
  30. package/dist/style.d.ts +11 -0
  31. package/dist/style.d.ts.map +1 -0
  32. package/dist/type.d.ts +25 -0
  33. package/dist/type.d.ts.map +1 -0
  34. package/dist/useEventCallback.d.ts +4 -0
  35. package/dist/useEventCallback.d.ts.map +1 -0
  36. package/package.json +44 -0
@@ -0,0 +1,288 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var styled = require('styled-components');
6
+ var react = require('react');
7
+ var ctDesignButton = require('@cleartrip/ct-design-button');
8
+ var useTheme = require('@cleartrip/ct-design-use-theme');
9
+ var ctDesignTypography = require('@cleartrip/ct-design-typography');
10
+ var useMergeRefs = require('@cleartrip/ct-design-use-merge-refs');
11
+ var usePropState = require('@cleartrip/ct-design-use-props-state');
12
+
13
+ function _interopDefault(e) {
14
+ return e && e.__esModule ? e : { default: e };
15
+ }
16
+
17
+ var styled__default = /*#__PURE__*/ _interopDefault(styled);
18
+ var useTheme__default = /*#__PURE__*/ _interopDefault(useTheme);
19
+ var useMergeRefs__default = /*#__PURE__*/ _interopDefault(useMergeRefs);
20
+ var usePropState__default = /*#__PURE__*/ _interopDefault(usePropState);
21
+
22
+ var getTabStyles = function (_a) {
23
+ var theme = _a.theme,
24
+ isHorizontal = _a.isHorizontal,
25
+ width = _a.width,
26
+ height = _a.height,
27
+ rest = tslib.__rest(_a, ['theme', 'isHorizontal', 'width', 'height']);
28
+ return tslib.__assign(
29
+ {
30
+ display: 'flex',
31
+ flexDirection: isHorizontal ? 'row' : 'column',
32
+ width: width || isHorizontal ? '100%' : '',
33
+ height: height || !isHorizontal ? '100%' : '',
34
+ justifyContent: 'space-between',
35
+ borderBottomWidth: theme.border.width.sm,
36
+ borderColor: theme.color.border.default,
37
+ borderBottomStyle: theme.border.style.solid,
38
+ cursor: 'pointer',
39
+ position: 'relative',
40
+ },
41
+ rest
42
+ );
43
+ };
44
+
45
+ var getTabItemStyles = function (_a) {
46
+ _a.theme;
47
+ var rest = tslib.__rest(_a, ['theme']);
48
+ return tslib.__assign({ backgroundColor: 'transparent', outline: 0, border: 0 }, rest);
49
+ };
50
+ var getLabelVariant = function (_a) {
51
+ var size = _a.size;
52
+ switch (size) {
53
+ case 'small': {
54
+ return ctDesignTypography.TypographyVariant.B2;
55
+ }
56
+ case 'medium': {
57
+ return ctDesignTypography.TypographyVariant.B1;
58
+ }
59
+ case 'large': {
60
+ return ctDesignTypography.TypographyVariant.B1;
61
+ }
62
+ default: {
63
+ return ctDesignTypography.TypographyVariant.B2;
64
+ }
65
+ }
66
+ };
67
+ var getTabLabelColor = function (_a) {
68
+ var selected = _a.selected,
69
+ theme = _a.theme,
70
+ focusColor = _a.focusColor,
71
+ color = _a.color;
72
+ if (selected) {
73
+ return focusColor || color || theme.color.tab.selectedPrimaryLabel;
74
+ } else {
75
+ return color || theme.color.tab.nonSelectedPrimaryLabel;
76
+ }
77
+ };
78
+ var TabItem = react.forwardRef(function (props) {
79
+ var tabKey = props.tabKey,
80
+ onClick = props.onClick,
81
+ tabIndex = props.tabIndex,
82
+ _a = props.selected,
83
+ selected = _a === void 0 ? false : _a,
84
+ label = props.label,
85
+ disabled = props.disabled,
86
+ size = props.size,
87
+ _b = props.tabItemCSS,
88
+ tabItemCSS = _b === void 0 ? { label: {}, Root: {} } : _b,
89
+ css = props.css,
90
+ focusColor = props.focusColor,
91
+ children = props.children;
92
+ var theme = useTheme__default.default();
93
+ var tabItemStyles = getTabItemStyles(
94
+ tslib.__assign(
95
+ tslib.__assign({ theme: theme }, css),
96
+ tabItemCSS === null || tabItemCSS === void 0 ? void 0 : tabItemCSS.Root
97
+ )
98
+ );
99
+ var handleClick = react.useCallback(
100
+ function (event) {
101
+ if (!disabled) {
102
+ onClick(event, props);
103
+ }
104
+ },
105
+ [tabKey, onClick]
106
+ );
107
+ var _c = tabItemCSS.label,
108
+ color = _c.color;
109
+ tslib.__rest(_c, ['color']);
110
+ return jsxRuntime.jsx(
111
+ ctDesignButton.Button,
112
+ tslib.__assign(
113
+ { disabled: disabled, css: tabItemStyles, onClick: handleClick, tabIndex: tabIndex },
114
+ {
115
+ children: label
116
+ ? jsxRuntime.jsx(
117
+ ctDesignTypography.Typography,
118
+ tslib.__assign(
119
+ {
120
+ variant: getLabelVariant({ size: size }),
121
+ colorCode: getTabLabelColor({
122
+ selected: selected,
123
+ theme: theme,
124
+ focusColor: focusColor,
125
+ color: color,
126
+ }),
127
+ },
128
+ { children: label }
129
+ )
130
+ )
131
+ : children,
132
+ }
133
+ )
134
+ );
135
+ });
136
+
137
+ var useMounted = function () {
138
+ var _a = react.useState(false),
139
+ isMounted = _a[0],
140
+ setIsMounted = _a[1];
141
+ react.useEffect(function () {
142
+ setIsMounted(true);
143
+ }, []);
144
+ return isMounted;
145
+ };
146
+ var StyledTab = styled__default.default.div(function (_a) {
147
+ var css = _a.css,
148
+ theme = _a.theme,
149
+ _b = _a.isHorizontal,
150
+ isHorizontal = _b === void 0 ? true : _b,
151
+ width = _a.width,
152
+ height = _a.height;
153
+ return getTabStyles(
154
+ tslib.__assign({ theme: theme, isHorizontal: isHorizontal, width: width, height: height }, css)
155
+ );
156
+ });
157
+ var StyledFlexContainer = styled__default.default.div(function (_a) {
158
+ _a.theme;
159
+ return {
160
+ display: 'flex',
161
+ flexDirection: 'row',
162
+ };
163
+ });
164
+ var Indicator = styled__default.default.div(function (_a) {
165
+ var theme = _a.theme,
166
+ width = _a.width,
167
+ left = _a.left,
168
+ color = _a.color;
169
+ return {
170
+ position: 'absolute',
171
+ height: '2px',
172
+ bottom: 0,
173
+ transition: 'all ease-in 0.3s',
174
+ backgroundColor: color || theme.color.background.primary,
175
+ width: width,
176
+ left: left,
177
+ };
178
+ });
179
+ var Tab = react.forwardRef(function (_a, forwardedRef) {
180
+ _a.children;
181
+ var tabList = _a.tabList,
182
+ _b = _a.selectedTabIndex,
183
+ selectedTabIndex = _b === void 0 ? 0 : _b,
184
+ onClick = _a.onClick,
185
+ _c = _a.isHorizontal,
186
+ isHorizontal = _c === void 0 ? true : _c,
187
+ css = _a.css,
188
+ tabCSS = _a.tabCSS,
189
+ focusColor = _a.focusColor,
190
+ props = tslib.__rest(_a, [
191
+ 'children',
192
+ 'tabList',
193
+ 'selectedTabIndex',
194
+ 'onClick',
195
+ 'isHorizontal',
196
+ 'css',
197
+ 'tabCSS',
198
+ 'focusColor',
199
+ ]);
200
+ var theme = styled.useTheme();
201
+ var isMounted = useMounted();
202
+ var _d = usePropState__default.default(selectedTabIndex),
203
+ selectedIndex = _d[0],
204
+ setSelectedIndex = _d[1];
205
+ var _e = react.useState({ width: 0, left: 0 }),
206
+ indicatorStyle = _e[0],
207
+ setIndicatorStyle = _e[1];
208
+ var listRef = react.useRef(null);
209
+ var tabsRef = react.useRef(null);
210
+ var handleRef = useMergeRefs__default.default(react.forwardRef, tabsRef);
211
+ var updateIndicatorState = function () {
212
+ var _a, _b;
213
+ if (listRef.current && selectedIndex !== undefined) {
214
+ var children = listRef.current.children;
215
+ var tab = children[selectedIndex];
216
+ var tabMeta = tab ? tab.getBoundingClientRect() : { left: 0, width: 0 };
217
+ var rect = (_a = tabsRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
218
+ var tabsMeta = {
219
+ scrollLeft: ((_b = tabsRef.current) === null || _b === void 0 ? void 0 : _b.scrollLeft) || 0,
220
+ left: (rect === null || rect === void 0 ? void 0 : rect.left) || 0,
221
+ };
222
+ var correction = tabsMeta.scrollLeft;
223
+ var startValue = tabMeta.left - tabsMeta.left + correction;
224
+ var newIndicatorStyle = { left: startValue, width: tabMeta.width };
225
+ var dStart = Math.abs(indicatorStyle.left - newIndicatorStyle.left);
226
+ var dSize = Math.abs(indicatorStyle.width - newIndicatorStyle.width);
227
+ if (dStart >= 1 || dSize >= 1) {
228
+ setIndicatorStyle(newIndicatorStyle);
229
+ }
230
+ }
231
+ };
232
+ react.useEffect(
233
+ function () {
234
+ updateIndicatorState();
235
+ },
236
+ [selectedIndex]
237
+ );
238
+ var handleClick = function (e, tabItem) {
239
+ setSelectedIndex(tabItem.tabIndex || 0);
240
+ if (onClick) {
241
+ onClick(e, tabItem);
242
+ }
243
+ };
244
+ var tabItemList = tabList.map(function (item, index) {
245
+ return jsxRuntime.jsx(
246
+ TabItem,
247
+ {
248
+ selected: index === selectedIndex,
249
+ tabIndex: index,
250
+ tabKey: index,
251
+ onClick: handleClick,
252
+ label: item.label,
253
+ tabItemCSS: tabCSS === null || tabCSS === void 0 ? void 0 : tabCSS.TabItemCSS,
254
+ focusColor: focusColor,
255
+ },
256
+ index
257
+ );
258
+ });
259
+ var indicatorStyles = tslib.__assign(
260
+ tslib.__assign({}, indicatorStyle),
261
+ tabCSS === null || tabCSS === void 0 ? void 0 : tabCSS.IndicatorCSS
262
+ );
263
+ return jsxRuntime.jsxs(
264
+ StyledTab,
265
+ tslib.__assign(
266
+ {
267
+ ref: handleRef,
268
+ theme: theme,
269
+ isHorizontal: isHorizontal,
270
+ css: tslib.__assign(
271
+ tslib.__assign({}, css),
272
+ tabCSS === null || tabCSS === void 0 ? void 0 : tabCSS.Root
273
+ ),
274
+ },
275
+ props,
276
+ {
277
+ children: [
278
+ jsxRuntime.jsx(StyledFlexContainer, tslib.__assign({ ref: listRef }, { children: tabItemList })),
279
+ isMounted && jsxRuntime.jsx(Indicator, tslib.__assign({ color: focusColor }, indicatorStyles)),
280
+ ],
281
+ }
282
+ )
283
+ );
284
+ });
285
+
286
+ exports.TabItem = TabItem;
287
+ exports.Tabs = Tab;
288
+ //# sourceMappingURL=ct-design-tabs.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ct-design-tabs.cjs.js","sources":["../packages/components/Tabs/src/style.ts","../packages/components/Tabs/src/TabItem/TabItem.tsx","../packages/components/Tabs/src/Tabs.tsx"],"sourcesContent":[null,null,null],"names":["__rest","__assign","TypographyVariant","forwardRef","useTheme","useCallback","_jsx","Button","Typography","useState","useEffect","styled","usePropState","useRef","useMergeRefs","_jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;AAIO,IAAM,YAAY,GAAG,UAAC,EAMmB,EAAA;AAL/C,IAAA,IAAA,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,YAAY,kBAAA,EACZ,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,MAAM,GAAA,EAAA,CAAA,MAAA,EACH,IAAI,GAAAA,YAAA,CAAA,EAAA,EALqB,4CAM5B,CADO,CAAA;AACwD,IAAA,yBAC/D,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,YAAY,GAAG,KAAK,GAAG,QAAQ,EAC9C,KAAK,EAAE,KAAK,IAAI,YAAY,GAAG,MAAM,GAAG,EAAE,EAC1C,MAAM,EAAE,MAAM,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,EAAE,EAC7C,cAAc,EAAE,eAAe,EAC/B,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACxC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EACvC,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAC3C,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,UAAU,EACjB,EAAA,IAAI,GACN;CAAA;;ACXF,IAAM,gBAAgB,GAAG,UAAC,EAAkB,EAAA;AAAhB,IAAK,EAAA,CAAA,KAAA,CAAA,KAAK,IAAI,GAAAA,YAAA,CAAA,EAAA,EAAhB,SAAkB,EAAF;AAAO,IAAA,QAChDC,cAAA,CAAA,EAAA,eAAe,EAAE,aAAa,EAC9B,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,CAAC,EACN,EAAA,IAAI,GACN;CAAA,CAAC;AAEI,IAAM,eAAe,GAAG,UAAC,EAAuC,EAAA;AAArC,IAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AACrC,IAAA,QAAQ,IAAI;QACX,KAAK,OAAO,EAAE;YACb,OAAOC,oCAAiB,CAAC,EAAE,CAAC;AAC5B,SAAA;QACD,KAAK,QAAQ,EAAE;YACd,OAAOA,oCAAiB,CAAC,EAAE,CAAC;AAC5B,SAAA;QACD,KAAK,OAAO,EAAE;YACb,OAAOA,oCAAiB,CAAC,EAAE,CAAC;AAC5B,SAAA;AACD,QAAA,SAAS;YACR,OAAOA,oCAAiB,CAAC,EAAE,CAAC;AAC5B,SAAA;AACD,KAAA;AACF,CAAC,CAAC;AAEK,IAAM,gBAAgB,GAAG,UAAC,EAUhC,EAAA;QATA,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;AAOL,IAAA,IAAI,QAAQ,EAAE;QACb,OAAO,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC;AACnE,KAAA;AAAM,SAAA;QACN,OAAO,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC;AACxD,KAAA;AACF,CAAC,CAAC;AAEF,IAAM,OAAO,GAAGC,gBAAU,CAAC,UAAC,KAAK,EAAA;AAE/B,IAAA,IAAA,MAAM,GAWH,KAAK,CAAA,MAXF,EACN,OAAO,GAUJ,KAAK,CAAA,OAVD,EACP,QAAQ,GASL,KAAK,SATA,EACR,EAAA,GAQG,KAAK,CAAA,QARQ,EAAhB,QAAQ,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,KAAK,KAAA,EAChB,KAAK,GAOF,KAAK,MAPH,EACL,QAAQ,GAML,KAAK,SANA,EACR,IAAI,GAKD,KAAK,CALJ,IAAA,EACJ,EAIG,GAAA,KAAK,WAJ4B,EAApC,UAAU,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAA,EAAA,EACpC,GAAG,GAGA,KAAK,IAHL,EACH,UAAU,GAEP,KAAK,WAFE,EACV,QAAQ,GACL,KAAK,SADA,CACC;AAEV,IAAA,IAAM,KAAK,GAAGC,yBAAQ,EAAE,CAAC;AACzB,IAAA,IAAM,aAAa,GAAG,gBAAgB,CAAGH,cAAA,CAAAA,cAAA,CAAA,EAAA,KAAK,OAAA,EAAK,EAAA,GAAG,CAAK,EAAA,UAAU,aAAV,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAV,UAAU,CAAE,IAAI,EAAG,CAAC;AAC/E,IAAA,IAAM,WAAW,GAAGI,iBAAW,CAC9B,UAAC,KAAK,EAAA;QACL,IAAI,CAAC,QAAQ,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACtB,SAAA;AACF,KAAC,EACD,CAAC,MAAM,EAAE,OAAO,CAAC,CACjB,CAAC;AAEF,IAAA,IAAM,EAAqB,GAAA,UAAU,CAAC,KAAK,CAAnC,CAAA,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA,CAASL,YAAA,CAAA,EAAA,EAAhB,CAAkB,OAAA,CAAA,EAAoB;AAC5C,IAAA,QACCM,cAAA,CAACC,qBAAM,EAAAN,cAAA,CAAA,EAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAA,EAAA,EAAA,QAAA,EACtF,KAAK,IACLK,cAAC,CAAAE,6BAAU,EACVP,cAAA,CAAA,EAAA,OAAO,EAAE,eAAe,CAAC,EAAE,IAAI,EAAA,IAAA,EAAE,CAAC,EAClC,SAAS,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAA,QAAA,EAAE,KAAK,EAAA,KAAA,EAAE,UAAU,EAAA,UAAA,EAAE,KAAK,EAAA,KAAA,EAAE,CAAC,EAElE,EAAA,EAAA,QAAA,EAAA,KAAK,IACM,KAEb,QAAQ,CACR,EAAA,CAAA,CACO,EACR;AACH,CAAC;;ACpFD,IAAM,UAAU,GAAG,YAAA;IACZ,IAAA,EAAA,GAA4BQ,cAAQ,CAAC,KAAK,CAAC,EAA1C,SAAS,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,YAAY,GAAA,EAAA,CAAA,CAAA,CAAmB,CAAC;AAElD,IAAAC,eAAS,CAAC,YAAA;QACT,YAAY,CAAC,IAAI,CAAC,CAAC;KACnB,EAAE,EAAE,CAAC,CAAC;AACP,IAAA,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAIF,IAAM,SAAS,GAAGC,uBAAM,CAAC,GAAG,CAC3B,UAAC,EAAkD,EAAA;AAAhD,IAAA,IAAA,GAAG,SAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,oBAAmB,EAAnB,YAAY,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,IAAI,KAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,MAAM,GAAA,EAAA,CAAA,MAAA,CAAA;AAAO,IAAA,OAAA,YAAY,CAAAV,cAAA,CAAA,EAAG,KAAK,EAAA,KAAA,EAAE,YAAY,EAAA,YAAA,EAAE,KAAK,OAAA,EAAE,MAAM,EAAA,MAAA,EAAA,EAAK,GAAG,CAAG,CAAA,CAAA;AAA5D,CAA4D,CACpH,CAAC;AAEF,IAAM,mBAAmB,GAAGU,uBAAM,CAAC,GAAG,CAAC,UAAC,EAAS,EAAA;AAAP,IAAK,EAAA,CAAA,MAAA;AAAO,IAAA,QAAC;AACtD,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,aAAa,EAAE,KAAK;KACpB,EAAC;AAHoD,CAGpD,CAAC,CAAC;AAEJ,IAAM,SAAS,GAAGA,uBAAM,CAAC,GAAG,CAAY,UAAC,EAA6B,EAAA;QAA3B,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;AAAO,IAAA,QAAC;AAC3E,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,MAAM,EAAE,CAAC;AACT,QAAA,UAAU,EAAE,kBAAkB;QAC9B,eAAe,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO;AACxD,QAAA,KAAK,EAAA,KAAA;AACL,QAAA,IAAI,EAAA,IAAA;KACJ,EAAC;AARyE,CAQzE,CAAC,CAAC;AAEJ,IAAM,GAAG,GAAGR,gBAAU,CACrB,UACC,EAUC,EACD,YAAY,EAAA;AAVX,IAAsB,EAAA,CAAA,QAAA,CACtB,KAAA,OAAO,aAAA,CACP,CAAA,EAAA,GAAA,EAAA,CAAA,gBAAoB,CAApB,CAAA,gBAAgB,mBAAG,CAAC,GAAA,EAAA,CACpB,CAAA,OAAO,aAAA,CACP,CAAA,EAAA,GAAA,EAAA,CAAA,YAAmB,CAAnB,CAAA,YAAY,mBAAG,IAAI,GAAA,EAAA,CACnB,CAAA,GAAG,SAAA,CACH,CAAA,MAAM,GAAA,EAAA,CAAA,MAAA,CAAA,CACN,UAAU,GAAA,EAAA,CAAA,UAAA,CAAA,CACP,KAAK,GAAAH,YAAA,CAAA,EAAA,EATT,qGAUC,EADQ;AAIT,IAAA,IAAM,KAAK,GAAGI,eAAQ,EAAE,CAAC;AAEzB,IAAA,IAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAEzB,IAAA,EAAA,GAAoCQ,6BAAY,CAAS,gBAAgB,CAAC,EAAzE,aAAa,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,gBAAgB,GAAA,EAAA,CAAA,CAAA,CAA0C,CAAC;AAC3E,IAAA,IAAA,KAAsCH,cAAQ,CAAkC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAArG,cAAc,QAAA,EAAE,iBAAiB,QAAoE,CAAC;AAC7G,IAAA,IAAM,OAAO,GAAGI,YAAM,CAAiB,IAAI,CAAC,CAAC;AAC7C,IAAA,IAAM,OAAO,GAAGA,YAAM,CAAiB,IAAI,CAAC,CAAC;IAE7C,IAAM,SAAS,GAAGC,6BAAY,CAACX,gBAAU,EAAE,OAAO,CAAC,CAAC;AAEpD,IAAA,IAAM,oBAAoB,GAAG,YAAA;;AAC5B,QAAA,IAAI,OAAO,CAAC,OAAO,IAAI,aAAa,KAAK,SAAS,EAAE;AACnD,YAAA,IAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC1C,YAAA,IAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;YACpC,IAAM,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC,qBAAqB,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC1E,IAAM,IAAI,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,qBAAqB,EAAE,CAAC;AACtD,YAAA,IAAM,QAAQ,GAAG;gBAChB,UAAU,EAAE,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,KAAI,CAAC;gBAC5C,IAAI,EAAE,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,IAAI,KAAI,CAAC;aACrB,CAAC;AACF,YAAA,IAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;YACvC,IAAM,UAAU,GAAG,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;AAE7D,YAAA,IAAM,iBAAiB,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;AACrE,YAAA,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACtE,YAAA,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAEvE,YAAA,IAAI,MAAM,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;gBAC9B,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AACrC,aAAA;AACD,SAAA;AACF,KAAC,CAAC;AACF,IAAAO,eAAS,CAAC,YAAA;AACT,QAAA,oBAAoB,EAAE,CAAC;AACxB,KAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AAGpB,IAAA,IAAM,WAAW,GAAG,UAAC,CAAa,EAAE,OAA0C,EAAA;AAC7E,QAAA,gBAAgB,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AACxC,QAAA,IAAI,OAAO,EAAE;AACZ,YAAA,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACpB,SAAA;AACF,KAAC,CAAC;IAEF,IAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK,EAAA;QAC3C,QACCJ,eAAC,OAAO,EAAA,EAEP,QAAQ,EAAE,KAAK,KAAK,aAAa,EACjC,QAAQ,EAAE,KAAK,EACf,MAAM,EAAE,KAAK,EACb,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,UAAU,EAAE,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,UAAU,EAC9B,UAAU,EAAE,UAAU,EAPjB,EAAA,KAAK,CAQT,EACD;AACH,KAAC,CAAC,CAAC;AACH,IAAA,IAAM,eAAe,GAAAL,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAQ,cAAc,CAAA,EAAK,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,YAAY,CAAE,CAAC;IACvE,QACCc,eAAC,CAAA,SAAS,EACTd,cAAA,CAAA,EAAA,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAOA,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAA,GAAG,GAAK,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,IAAI,CAC1B,EAAA,EAAA,KAAK,EAET,EAAA,QAAA,EAAA,CAAAK,cAAA,CAAC,mBAAmB,EAAAL,cAAA,CAAA,EAAC,GAAG,EAAE,OAAO,EAAG,EAAA,EAAA,QAAA,EAAA,WAAW,EAAuB,CAAA,CAAA,EACrE,SAAS,IAAIK,cAAA,CAAC,SAAS,EAAAL,cAAA,CAAA,EAAC,KAAK,EAAE,UAAU,EAAA,EAAM,eAAe,CAAA,CAAI,CACxD,EAAA,CAAA,CAAA,EACX;AACH,CAAC;;;;;"}
@@ -0,0 +1,271 @@
1
+ import { __rest, __assign } from 'tslib';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import styled, { useTheme as useTheme$1 } from 'styled-components';
4
+ import { forwardRef, useCallback, useState, useRef, useEffect } from 'react';
5
+ import { Button } from '@cleartrip/ct-design-button';
6
+ import useTheme from '@cleartrip/ct-design-use-theme';
7
+ import { Typography, TypographyVariant } from '@cleartrip/ct-design-typography';
8
+ import useMergeRefs from '@cleartrip/ct-design-use-merge-refs';
9
+ import usePropState from '@cleartrip/ct-design-use-props-state';
10
+
11
+ var getTabStyles = function (_a) {
12
+ var theme = _a.theme,
13
+ isHorizontal = _a.isHorizontal,
14
+ width = _a.width,
15
+ height = _a.height,
16
+ rest = __rest(_a, ['theme', 'isHorizontal', 'width', 'height']);
17
+ return __assign(
18
+ {
19
+ display: 'flex',
20
+ flexDirection: isHorizontal ? 'row' : 'column',
21
+ width: width || isHorizontal ? '100%' : '',
22
+ height: height || !isHorizontal ? '100%' : '',
23
+ justifyContent: 'space-between',
24
+ borderBottomWidth: theme.border.width.sm,
25
+ borderColor: theme.color.border.default,
26
+ borderBottomStyle: theme.border.style.solid,
27
+ cursor: 'pointer',
28
+ position: 'relative',
29
+ },
30
+ rest
31
+ );
32
+ };
33
+
34
+ var getTabItemStyles = function (_a) {
35
+ _a.theme;
36
+ var rest = __rest(_a, ['theme']);
37
+ return __assign({ backgroundColor: 'transparent', outline: 0, border: 0 }, rest);
38
+ };
39
+ var getLabelVariant = function (_a) {
40
+ var size = _a.size;
41
+ switch (size) {
42
+ case 'small': {
43
+ return TypographyVariant.B2;
44
+ }
45
+ case 'medium': {
46
+ return TypographyVariant.B1;
47
+ }
48
+ case 'large': {
49
+ return TypographyVariant.B1;
50
+ }
51
+ default: {
52
+ return TypographyVariant.B2;
53
+ }
54
+ }
55
+ };
56
+ var getTabLabelColor = function (_a) {
57
+ var selected = _a.selected,
58
+ theme = _a.theme,
59
+ focusColor = _a.focusColor,
60
+ color = _a.color;
61
+ if (selected) {
62
+ return focusColor || color || theme.color.tab.selectedPrimaryLabel;
63
+ } else {
64
+ return color || theme.color.tab.nonSelectedPrimaryLabel;
65
+ }
66
+ };
67
+ var TabItem = forwardRef(function (props) {
68
+ var tabKey = props.tabKey,
69
+ onClick = props.onClick,
70
+ tabIndex = props.tabIndex,
71
+ _a = props.selected,
72
+ selected = _a === void 0 ? false : _a,
73
+ label = props.label,
74
+ disabled = props.disabled,
75
+ size = props.size,
76
+ _b = props.tabItemCSS,
77
+ tabItemCSS = _b === void 0 ? { label: {}, Root: {} } : _b,
78
+ css = props.css,
79
+ focusColor = props.focusColor,
80
+ children = props.children;
81
+ var theme = useTheme();
82
+ var tabItemStyles = getTabItemStyles(
83
+ __assign(
84
+ __assign({ theme: theme }, css),
85
+ tabItemCSS === null || tabItemCSS === void 0 ? void 0 : tabItemCSS.Root
86
+ )
87
+ );
88
+ var handleClick = useCallback(
89
+ function (event) {
90
+ if (!disabled) {
91
+ onClick(event, props);
92
+ }
93
+ },
94
+ [tabKey, onClick]
95
+ );
96
+ var _c = tabItemCSS.label,
97
+ color = _c.color;
98
+ __rest(_c, ['color']);
99
+ return jsx(
100
+ Button,
101
+ __assign(
102
+ { disabled: disabled, css: tabItemStyles, onClick: handleClick, tabIndex: tabIndex },
103
+ {
104
+ children: label
105
+ ? jsx(
106
+ Typography,
107
+ __assign(
108
+ {
109
+ variant: getLabelVariant({ size: size }),
110
+ colorCode: getTabLabelColor({
111
+ selected: selected,
112
+ theme: theme,
113
+ focusColor: focusColor,
114
+ color: color,
115
+ }),
116
+ },
117
+ { children: label }
118
+ )
119
+ )
120
+ : children,
121
+ }
122
+ )
123
+ );
124
+ });
125
+
126
+ var useMounted = function () {
127
+ var _a = useState(false),
128
+ isMounted = _a[0],
129
+ setIsMounted = _a[1];
130
+ useEffect(function () {
131
+ setIsMounted(true);
132
+ }, []);
133
+ return isMounted;
134
+ };
135
+ var StyledTab = styled.div(function (_a) {
136
+ var css = _a.css,
137
+ theme = _a.theme,
138
+ _b = _a.isHorizontal,
139
+ isHorizontal = _b === void 0 ? true : _b,
140
+ width = _a.width,
141
+ height = _a.height;
142
+ return getTabStyles(__assign({ theme: theme, isHorizontal: isHorizontal, width: width, height: height }, css));
143
+ });
144
+ var StyledFlexContainer = styled.div(function (_a) {
145
+ _a.theme;
146
+ return {
147
+ display: 'flex',
148
+ flexDirection: 'row',
149
+ };
150
+ });
151
+ var Indicator = styled.div(function (_a) {
152
+ var theme = _a.theme,
153
+ width = _a.width,
154
+ left = _a.left,
155
+ color = _a.color;
156
+ return {
157
+ position: 'absolute',
158
+ height: '2px',
159
+ bottom: 0,
160
+ transition: 'all ease-in 0.3s',
161
+ backgroundColor: color || theme.color.background.primary,
162
+ width: width,
163
+ left: left,
164
+ };
165
+ });
166
+ var Tab = forwardRef(function (_a, forwardedRef) {
167
+ _a.children;
168
+ var tabList = _a.tabList,
169
+ _b = _a.selectedTabIndex,
170
+ selectedTabIndex = _b === void 0 ? 0 : _b,
171
+ onClick = _a.onClick,
172
+ _c = _a.isHorizontal,
173
+ isHorizontal = _c === void 0 ? true : _c,
174
+ css = _a.css,
175
+ tabCSS = _a.tabCSS,
176
+ focusColor = _a.focusColor,
177
+ props = __rest(_a, [
178
+ 'children',
179
+ 'tabList',
180
+ 'selectedTabIndex',
181
+ 'onClick',
182
+ 'isHorizontal',
183
+ 'css',
184
+ 'tabCSS',
185
+ 'focusColor',
186
+ ]);
187
+ var theme = useTheme$1();
188
+ var isMounted = useMounted();
189
+ var _d = usePropState(selectedTabIndex),
190
+ selectedIndex = _d[0],
191
+ setSelectedIndex = _d[1];
192
+ var _e = useState({ width: 0, left: 0 }),
193
+ indicatorStyle = _e[0],
194
+ setIndicatorStyle = _e[1];
195
+ var listRef = useRef(null);
196
+ var tabsRef = useRef(null);
197
+ var handleRef = useMergeRefs(forwardRef, tabsRef);
198
+ var updateIndicatorState = function () {
199
+ var _a, _b;
200
+ if (listRef.current && selectedIndex !== undefined) {
201
+ var children = listRef.current.children;
202
+ var tab = children[selectedIndex];
203
+ var tabMeta = tab ? tab.getBoundingClientRect() : { left: 0, width: 0 };
204
+ var rect = (_a = tabsRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
205
+ var tabsMeta = {
206
+ scrollLeft: ((_b = tabsRef.current) === null || _b === void 0 ? void 0 : _b.scrollLeft) || 0,
207
+ left: (rect === null || rect === void 0 ? void 0 : rect.left) || 0,
208
+ };
209
+ var correction = tabsMeta.scrollLeft;
210
+ var startValue = tabMeta.left - tabsMeta.left + correction;
211
+ var newIndicatorStyle = { left: startValue, width: tabMeta.width };
212
+ var dStart = Math.abs(indicatorStyle.left - newIndicatorStyle.left);
213
+ var dSize = Math.abs(indicatorStyle.width - newIndicatorStyle.width);
214
+ if (dStart >= 1 || dSize >= 1) {
215
+ setIndicatorStyle(newIndicatorStyle);
216
+ }
217
+ }
218
+ };
219
+ useEffect(
220
+ function () {
221
+ updateIndicatorState();
222
+ },
223
+ [selectedIndex]
224
+ );
225
+ var handleClick = function (e, tabItem) {
226
+ setSelectedIndex(tabItem.tabIndex || 0);
227
+ if (onClick) {
228
+ onClick(e, tabItem);
229
+ }
230
+ };
231
+ var tabItemList = tabList.map(function (item, index) {
232
+ return jsx(
233
+ TabItem,
234
+ {
235
+ selected: index === selectedIndex,
236
+ tabIndex: index,
237
+ tabKey: index,
238
+ onClick: handleClick,
239
+ label: item.label,
240
+ tabItemCSS: tabCSS === null || tabCSS === void 0 ? void 0 : tabCSS.TabItemCSS,
241
+ focusColor: focusColor,
242
+ },
243
+ index
244
+ );
245
+ });
246
+ var indicatorStyles = __assign(
247
+ __assign({}, indicatorStyle),
248
+ tabCSS === null || tabCSS === void 0 ? void 0 : tabCSS.IndicatorCSS
249
+ );
250
+ return jsxs(
251
+ StyledTab,
252
+ __assign(
253
+ {
254
+ ref: handleRef,
255
+ theme: theme,
256
+ isHorizontal: isHorizontal,
257
+ css: __assign(__assign({}, css), tabCSS === null || tabCSS === void 0 ? void 0 : tabCSS.Root),
258
+ },
259
+ props,
260
+ {
261
+ children: [
262
+ jsx(StyledFlexContainer, __assign({ ref: listRef }, { children: tabItemList })),
263
+ isMounted && jsx(Indicator, __assign({ color: focusColor }, indicatorStyles)),
264
+ ],
265
+ }
266
+ )
267
+ );
268
+ });
269
+
270
+ export { TabItem, Tab as Tabs };
271
+ //# sourceMappingURL=ct-design-tabs.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ct-design-tabs.esm.js","sources":["../packages/components/Tabs/src/style.ts","../packages/components/Tabs/src/TabItem/TabItem.tsx","../packages/components/Tabs/src/Tabs.tsx"],"sourcesContent":[null,null,null],"names":["_jsx","useTheme","_jsxs"],"mappings":"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"}