@toptal/picasso-tabs 2.0.9-alpha-cjs-and-esm-publish-test-99555d2ed.1 → 3.0.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.
- package/dist-package/src/Tab/Tab.d.ts +3 -3
- package/dist-package/src/Tab/Tab.d.ts.map +1 -1
- package/dist-package/src/Tab/Tab.js +62 -14
- package/dist-package/src/Tab/Tab.js.map +1 -1
- package/dist-package/src/TabLabel/TabLabel.d.ts.map +1 -1
- package/dist-package/src/TabLabel/TabLabel.js +2 -3
- package/dist-package/src/TabLabel/TabLabel.js.map +1 -1
- package/dist-package/src/Tabs/Tabs.d.ts +19 -10
- package/dist-package/src/Tabs/Tabs.d.ts.map +1 -1
- package/dist-package/src/Tabs/Tabs.js +51 -21
- package/dist-package/src/Tabs/Tabs.js.map +1 -1
- package/dist-package/src/Tabs/index.d.ts +3 -2
- package/dist-package/src/Tabs/index.d.ts.map +1 -1
- package/dist-package/src/TabsCompound/index.d.ts +4 -2
- package/dist-package/src/TabsCompound/index.d.ts.map +1 -1
- package/dist-package/src/index.d.ts +0 -1
- package/dist-package/src/index.d.ts.map +1 -1
- package/dist-package/src/index.js +0 -1
- package/dist-package/src/index.js.map +1 -1
- package/package.json +16 -16
- package/src/Tab/Tab.tsx +100 -21
- package/src/Tab/__snapshots__/test.tsx.snap +91 -37
- package/src/Tab/story/CustomValue.example.tsx +2 -2
- package/src/Tab/test.tsx +9 -1
- package/src/TabLabel/TabLabel.tsx +10 -4
- package/src/Tabs/Tabs.tsx +114 -61
- package/src/Tabs/__snapshots__/test.tsx.snap +61 -76
- package/src/Tabs/index.ts +3 -2
- package/src/Tabs/story/Default.example.tsx +1 -1
- package/src/Tabs/story/FullWidth.example.tsx +1 -1
- package/src/Tabs/story/ScrollButtons.example.tsx +1 -1
- package/src/Tabs/story/Vertical.example.tsx +1 -1
- package/src/Tabs/test.tsx +11 -8
- package/src/index.ts +1 -2
- package/LICENSE +0 -20
- package/dist-package/src/Tab/styles.d.ts +0 -4
- package/dist-package/src/Tab/styles.d.ts.map +0 -1
- package/dist-package/src/Tab/styles.js +0 -94
- package/dist-package/src/Tab/styles.js.map +0 -1
- package/dist-package/src/TabScrollButton/TabScrollButton.d.ts +0 -12
- package/dist-package/src/TabScrollButton/TabScrollButton.d.ts.map +0 -1
- package/dist-package/src/TabScrollButton/TabScrollButton.js +0 -40
- package/dist-package/src/TabScrollButton/TabScrollButton.js.map +0 -1
- package/dist-package/src/TabScrollButton/index.d.ts +0 -5
- package/dist-package/src/TabScrollButton/index.d.ts.map +0 -1
- package/dist-package/src/TabScrollButton/index.js +0 -2
- package/dist-package/src/TabScrollButton/index.js.map +0 -1
- package/dist-package/src/TabScrollButton/styles.d.ts +0 -4
- package/dist-package/src/TabScrollButton/styles.d.ts.map +0 -1
- package/dist-package/src/TabScrollButton/styles.js +0 -35
- package/dist-package/src/TabScrollButton/styles.js.map +0 -1
- package/dist-package/src/Tabs/styles.d.ts +0 -4
- package/dist-package/src/Tabs/styles.d.ts.map +0 -1
- package/dist-package/src/Tabs/styles.js +0 -41
- package/dist-package/src/Tabs/styles.js.map +0 -1
- package/dist-package/src/Tabs/use-tab-action.d.ts +0 -5
- package/dist-package/src/Tabs/use-tab-action.d.ts.map +0 -1
- package/dist-package/src/Tabs/use-tab-action.js +0 -21
- package/dist-package/src/Tabs/use-tab-action.js.map +0 -1
- package/src/Tab/styles.ts +0 -106
- package/src/TabScrollButton/TabScrollButton.tsx +0 -64
- package/src/TabScrollButton/index.ts +0 -6
- package/src/TabScrollButton/styles.ts +0 -37
- package/src/Tabs/styles.ts +0 -45
- package/src/Tabs/use-tab-action.ts +0 -27
@@ -6,30 +6,28 @@ exports[`Tabs renders 1`] = `
|
|
6
6
|
class="Picasso-root"
|
7
7
|
>
|
8
8
|
<div
|
9
|
-
class="
|
9
|
+
class="base-Tabs base-Tabs relative min-h flex overflow-hidden overflow-x"
|
10
10
|
>
|
11
11
|
<div
|
12
|
-
class="
|
13
|
-
style="width: 99px; height: 99px; position: absolute; top: -9999px; overflow: scroll;"
|
14
|
-
/>
|
15
|
-
<div
|
16
|
-
class="MuiTabs-scroller MuiTabs-scrollable"
|
17
|
-
style="margin-bottom: 0px;"
|
12
|
+
class="after:absolute after:content-[""] after:bottom-0 after:left-0 after:right-0 after:h-[1px] after:bg-gray after:z-0 flex-auto inline-block relative whitespace-nowrap"
|
18
13
|
>
|
19
14
|
<div
|
20
|
-
class="
|
15
|
+
class="base-TabsList base-TabsList flex"
|
21
16
|
role="tablist"
|
17
|
+
tabindex="-1"
|
22
18
|
>
|
23
19
|
<button
|
20
|
+
aria-disabled="false"
|
24
21
|
aria-selected="false"
|
25
|
-
class="
|
22
|
+
class="base-Tab opacity-70 m-0 [&:not(:last-child)]:mr-8 pt-[0.5625rem] pb-[0.4375rem] px-0 text-center bg-transparent transition-shadow z-10 rounded-none text-inheritColor shrink-0 max-w min-w sm:min-w md:min-w border-0 cursor-pointer inline-flex outline-none items-center select-none align-middle appearance-none justify-center no-underline [-webkit-tap-highlight normal-case whitespace-normal leading-4 relative"
|
26
23
|
data-testid="tab-1"
|
24
|
+
id=":r0:"
|
27
25
|
role="tab"
|
28
26
|
tabindex="0"
|
29
27
|
type="button"
|
30
28
|
>
|
31
29
|
<span
|
32
|
-
class="
|
30
|
+
class="w-full inline-flex items-center flex-col justify-center"
|
33
31
|
>
|
34
32
|
<div
|
35
33
|
class="m-0 text-sm text-inherit font-semibold"
|
@@ -39,15 +37,17 @@ exports[`Tabs renders 1`] = `
|
|
39
37
|
</span>
|
40
38
|
</button>
|
41
39
|
<button
|
40
|
+
aria-disabled="false"
|
42
41
|
aria-selected="false"
|
43
|
-
class="
|
42
|
+
class="base-Tab opacity-70 m-0 [&:not(:last-child)]:mr-8 pt-[0.5625rem] pb-[0.4375rem] px-0 text-center bg-transparent transition-shadow z-10 rounded-none text-inheritColor shrink-0 max-w min-w sm:min-w md:min-w border-0 cursor-pointer inline-flex outline-none items-center select-none align-middle appearance-none justify-center no-underline [-webkit-tap-highlight normal-case whitespace-normal leading-4 relative"
|
44
43
|
data-testid="tab-2"
|
44
|
+
id=":r1:"
|
45
45
|
role="tab"
|
46
46
|
tabindex="0"
|
47
47
|
type="button"
|
48
48
|
>
|
49
49
|
<span
|
50
|
-
class="
|
50
|
+
class="w-full inline-flex items-center flex-col justify-center"
|
51
51
|
>
|
52
52
|
<div
|
53
53
|
class="m-0 text-sm text-inherit font-semibold"
|
@@ -57,10 +57,6 @@ exports[`Tabs renders 1`] = `
|
|
57
57
|
</span>
|
58
58
|
</button>
|
59
59
|
</div>
|
60
|
-
<span
|
61
|
-
class="PrivateTabIndicator-root PrivateTabIndicator-colorSecondary MuiTabs-indicator"
|
62
|
-
style="left: 0px; width: 0px;"
|
63
|
-
/>
|
64
60
|
</div>
|
65
61
|
</div>
|
66
62
|
</div>
|
@@ -73,26 +69,28 @@ exports[`Tabs renders in full width 1`] = `
|
|
73
69
|
class="Picasso-root"
|
74
70
|
>
|
75
71
|
<div
|
76
|
-
class="
|
72
|
+
class="base-Tabs base-Tabs relative min-h flex overflow-hidden"
|
77
73
|
>
|
78
74
|
<div
|
79
|
-
class="
|
80
|
-
style="overflow: hidden;"
|
75
|
+
class="w-full overflow-hidden after:absolute after:content-[""] after:bottom-0 after:left-0 after:right-0 after:h-[1px] after:bg-gray after:z-0 flex-auto inline-block relative whitespace-nowrap"
|
81
76
|
>
|
82
77
|
<div
|
83
|
-
class="
|
78
|
+
class="base-TabsList base-TabsList flex"
|
84
79
|
role="tablist"
|
80
|
+
tabindex="-1"
|
85
81
|
>
|
86
82
|
<button
|
83
|
+
aria-disabled="false"
|
87
84
|
aria-selected="false"
|
88
|
-
class="
|
85
|
+
class="base-Tab opacity-70 m-0 [&:not(:last-child)]:mr-8 pt-[0.5625rem] pb-[0.4375rem] px-0 text-center bg-transparent transition-shadow z-10 rounded-none text-inheritColor shrink flex-grow basis-0 min-w sm:min-w md:min-w border-0 cursor-pointer inline-flex outline-none items-center select-none align-middle appearance-none justify-center no-underline [-webkit-tap-highlight normal-case whitespace-normal leading-4 relative"
|
89
86
|
data-testid="tab-1"
|
87
|
+
id=":re:"
|
90
88
|
role="tab"
|
91
89
|
tabindex="0"
|
92
90
|
type="button"
|
93
91
|
>
|
94
92
|
<span
|
95
|
-
class="
|
93
|
+
class="w-full inline-flex items-center flex-col justify-center"
|
96
94
|
>
|
97
95
|
<div
|
98
96
|
class="m-0 text-sm text-inherit font-semibold"
|
@@ -102,15 +100,17 @@ exports[`Tabs renders in full width 1`] = `
|
|
102
100
|
</span>
|
103
101
|
</button>
|
104
102
|
<button
|
103
|
+
aria-disabled="false"
|
105
104
|
aria-selected="false"
|
106
|
-
class="
|
105
|
+
class="base-Tab opacity-70 m-0 [&:not(:last-child)]:mr-8 pt-[0.5625rem] pb-[0.4375rem] px-0 text-center bg-transparent transition-shadow z-10 rounded-none text-inheritColor shrink flex-grow basis-0 min-w sm:min-w md:min-w border-0 cursor-pointer inline-flex outline-none items-center select-none align-middle appearance-none justify-center no-underline [-webkit-tap-highlight normal-case whitespace-normal leading-4 relative"
|
107
106
|
data-testid="tab-2"
|
107
|
+
id=":rf:"
|
108
108
|
role="tab"
|
109
109
|
tabindex="0"
|
110
110
|
type="button"
|
111
111
|
>
|
112
112
|
<span
|
113
|
-
class="
|
113
|
+
class="w-full inline-flex items-center flex-col justify-center"
|
114
114
|
>
|
115
115
|
<div
|
116
116
|
class="m-0 text-sm text-inherit font-semibold"
|
@@ -120,10 +120,6 @@ exports[`Tabs renders in full width 1`] = `
|
|
120
120
|
</span>
|
121
121
|
</button>
|
122
122
|
</div>
|
123
|
-
<span
|
124
|
-
class="PrivateTabIndicator-root PrivateTabIndicator-colorSecondary MuiTabs-indicator"
|
125
|
-
style="left: 0px; width: 0px;"
|
126
|
-
/>
|
127
123
|
</div>
|
128
124
|
</div>
|
129
125
|
</div>
|
@@ -136,30 +132,29 @@ exports[`Tabs renders in vertical orientation 1`] = `
|
|
136
132
|
class="Picasso-root"
|
137
133
|
>
|
138
134
|
<div
|
139
|
-
class="
|
135
|
+
class="base-Tabs base-Tabs relative min-h flex overflow-hidden w-[200px] m-0 flex-col overflow-x"
|
140
136
|
>
|
141
137
|
<div
|
142
|
-
class="
|
143
|
-
style="width: 99px; height: 99px; position: absolute; top: -9999px; overflow: scroll;"
|
144
|
-
/>
|
145
|
-
<div
|
146
|
-
class="MuiTabs-scroller MuiTabs-scrollable"
|
147
|
-
style="margin-bottom: 0px;"
|
138
|
+
class="pl-2 flex-auto inline-block relative whitespace-nowrap"
|
148
139
|
>
|
149
140
|
<div
|
150
|
-
|
141
|
+
aria-orientation="vertical"
|
142
|
+
class="base-TabsList base-TabsList flex flex-col"
|
151
143
|
role="tablist"
|
144
|
+
tabindex="-1"
|
152
145
|
>
|
153
146
|
<button
|
147
|
+
aria-disabled="false"
|
154
148
|
aria-selected="false"
|
155
|
-
class="
|
149
|
+
class="base-Tab opacity-100 first:mt-4 last:mb-4 my-1 mx-0 py-2 px-4 text-left rounded-l rounded-r transition-all w-full overflow-hidden bg-gray hover:bg-gray text-graphite hover:text-black shrink-0 max-w min-w sm:min-w md:min-w border-0 cursor-pointer inline-flex outline-none items-center select-none align-middle appearance-none justify-center no-underline [-webkit-tap-highlight normal-case whitespace-normal leading-4 relative"
|
156
150
|
data-testid="tab-1"
|
151
|
+
id=":r2:"
|
157
152
|
role="tab"
|
158
153
|
tabindex="0"
|
159
154
|
type="button"
|
160
155
|
>
|
161
156
|
<span
|
162
|
-
class="
|
157
|
+
class="w-full block"
|
163
158
|
>
|
164
159
|
<div
|
165
160
|
class="m-0 text-md text-inherit font-semibold whitespace-nowrap overflow-ellipsis overflow-hidden inline TypographyOverflow-wrapper !block !whitespace-nowrap"
|
@@ -169,15 +164,17 @@ exports[`Tabs renders in vertical orientation 1`] = `
|
|
169
164
|
</span>
|
170
165
|
</button>
|
171
166
|
<button
|
167
|
+
aria-disabled="false"
|
172
168
|
aria-selected="false"
|
173
|
-
class="
|
169
|
+
class="base-Tab opacity-100 first:mt-4 last:mb-4 my-1 mx-0 py-2 px-4 text-left rounded-l rounded-r transition-all w-full overflow-hidden bg-gray hover:bg-gray text-graphite hover:text-black shrink-0 max-w min-w sm:min-w md:min-w border-0 cursor-pointer inline-flex outline-none items-center select-none align-middle appearance-none justify-center no-underline [-webkit-tap-highlight normal-case whitespace-normal leading-4 relative"
|
174
170
|
data-testid="tab-2"
|
171
|
+
id=":r3:"
|
175
172
|
role="tab"
|
176
173
|
tabindex="0"
|
177
174
|
type="button"
|
178
175
|
>
|
179
176
|
<span
|
180
|
-
class="
|
177
|
+
class="w-full block"
|
181
178
|
>
|
182
179
|
<div
|
183
180
|
class="m-0 text-md text-inherit font-semibold whitespace-nowrap overflow-ellipsis overflow-hidden inline TypographyOverflow-wrapper !block !whitespace-nowrap"
|
@@ -187,10 +184,6 @@ exports[`Tabs renders in vertical orientation 1`] = `
|
|
187
184
|
</span>
|
188
185
|
</button>
|
189
186
|
</div>
|
190
|
-
<span
|
191
|
-
class="PrivateTabIndicator-root PrivateTabIndicator-colorSecondary MuiTabs-indicator PrivateTabIndicator-vertical"
|
192
|
-
style="top: 0px; height: 0px;"
|
193
|
-
/>
|
194
187
|
</div>
|
195
188
|
</div>
|
196
189
|
</div>
|
@@ -203,30 +196,28 @@ exports[`Tabs renders with a pre-selected option 1`] = `
|
|
203
196
|
class="Picasso-root"
|
204
197
|
>
|
205
198
|
<div
|
206
|
-
class="
|
199
|
+
class="base-Tabs base-Tabs relative min-h flex overflow-hidden overflow-x"
|
207
200
|
>
|
208
201
|
<div
|
209
|
-
class="
|
210
|
-
style="width: 99px; height: 99px; position: absolute; top: -9999px; overflow: scroll;"
|
211
|
-
/>
|
212
|
-
<div
|
213
|
-
class="MuiTabs-scroller MuiTabs-scrollable"
|
214
|
-
style="margin-bottom: 0px;"
|
202
|
+
class="after:absolute after:content-[""] after:bottom-0 after:left-0 after:right-0 after:h-[1px] after:bg-gray after:z-0 flex-auto inline-block relative whitespace-nowrap"
|
215
203
|
>
|
216
204
|
<div
|
217
|
-
class="
|
205
|
+
class="base-TabsList base-TabsList flex"
|
218
206
|
role="tablist"
|
207
|
+
tabindex="-1"
|
219
208
|
>
|
220
209
|
<button
|
210
|
+
aria-disabled="false"
|
221
211
|
aria-selected="false"
|
222
|
-
class="
|
212
|
+
class="base-Tab opacity-70 m-0 [&:not(:last-child)]:mr-8 pt-[0.5625rem] pb-[0.4375rem] px-0 text-center bg-transparent transition-shadow z-10 rounded-none text-inheritColor shrink-0 max-w min-w sm:min-w md:min-w border-0 cursor-pointer inline-flex outline-none items-center select-none align-middle appearance-none justify-center no-underline [-webkit-tap-highlight normal-case whitespace-normal leading-4 relative"
|
223
213
|
data-testid="tab-1"
|
214
|
+
id=":r4:"
|
224
215
|
role="tab"
|
225
216
|
tabindex="0"
|
226
217
|
type="button"
|
227
218
|
>
|
228
219
|
<span
|
229
|
-
class="
|
220
|
+
class="w-full inline-flex items-center flex-col justify-center"
|
230
221
|
>
|
231
222
|
<div
|
232
223
|
class="m-0 text-sm text-inherit font-semibold"
|
@@ -236,15 +227,17 @@ exports[`Tabs renders with a pre-selected option 1`] = `
|
|
236
227
|
</span>
|
237
228
|
</button>
|
238
229
|
<button
|
230
|
+
aria-disabled="false"
|
239
231
|
aria-selected="true"
|
240
|
-
class="
|
232
|
+
class="base-Tab base- opacity-100 m-0 [&:not(:last-child)]:mr-8 pt-[0.5625rem] pb-[0.4375rem] px-0 text-center bg-transparent transition-shadow z-10 rounded-none text-black shadow-blue shadow-[inset_0_-2px_0] shrink-0 max-w min-w sm:min-w md:min-w border-0 cursor-pointer inline-flex outline-none items-center select-none align-middle appearance-none justify-center no-underline [-webkit-tap-highlight normal-case whitespace-normal leading-4 relative"
|
241
233
|
data-testid="tab-2"
|
234
|
+
id=":r5:"
|
242
235
|
role="tab"
|
243
236
|
tabindex="0"
|
244
237
|
type="button"
|
245
238
|
>
|
246
239
|
<span
|
247
|
-
class="
|
240
|
+
class="w-full inline-flex items-center flex-col justify-center"
|
248
241
|
>
|
249
242
|
<div
|
250
243
|
class="m-0 text-sm text-inherit font-semibold"
|
@@ -254,10 +247,6 @@ exports[`Tabs renders with a pre-selected option 1`] = `
|
|
254
247
|
</span>
|
255
248
|
</button>
|
256
249
|
</div>
|
257
|
-
<span
|
258
|
-
class="PrivateTabIndicator-root PrivateTabIndicator-colorSecondary MuiTabs-indicator"
|
259
|
-
style="left: 0px; width: 0px;"
|
260
|
-
/>
|
261
250
|
</div>
|
262
251
|
</div>
|
263
252
|
<div
|
@@ -277,30 +266,28 @@ exports[`Tabs renders with a pre-selected option using custom value 1`] = `
|
|
277
266
|
class="Picasso-root"
|
278
267
|
>
|
279
268
|
<div
|
280
|
-
class="
|
269
|
+
class="base-Tabs base-Tabs relative min-h flex overflow-hidden overflow-x"
|
281
270
|
>
|
282
271
|
<div
|
283
|
-
class="
|
284
|
-
style="width: 99px; height: 99px; position: absolute; top: -9999px; overflow: scroll;"
|
285
|
-
/>
|
286
|
-
<div
|
287
|
-
class="MuiTabs-scroller MuiTabs-scrollable"
|
288
|
-
style="margin-bottom: 0px;"
|
272
|
+
class="after:absolute after:content-[""] after:bottom-0 after:left-0 after:right-0 after:h-[1px] after:bg-gray after:z-0 flex-auto inline-block relative whitespace-nowrap"
|
289
273
|
>
|
290
274
|
<div
|
291
|
-
class="
|
275
|
+
class="base-TabsList base-TabsList flex"
|
292
276
|
role="tablist"
|
277
|
+
tabindex="-1"
|
293
278
|
>
|
294
279
|
<button
|
280
|
+
aria-disabled="false"
|
295
281
|
aria-selected="true"
|
296
|
-
class="
|
282
|
+
class="base-Tab base- opacity-100 m-0 [&:not(:last-child)]:mr-8 pt-[0.5625rem] pb-[0.4375rem] px-0 text-center bg-transparent transition-shadow z-10 rounded-none text-black shadow-blue shadow-[inset_0_-2px_0] shrink-0 max-w min-w sm:min-w md:min-w border-0 cursor-pointer inline-flex outline-none items-center select-none align-middle appearance-none justify-center no-underline [-webkit-tap-highlight normal-case whitespace-normal leading-4 relative"
|
297
283
|
data-testid="tab-1"
|
284
|
+
id=":r6:"
|
298
285
|
role="tab"
|
299
286
|
tabindex="0"
|
300
287
|
type="button"
|
301
288
|
>
|
302
289
|
<span
|
303
|
-
class="
|
290
|
+
class="w-full inline-flex items-center flex-col justify-center"
|
304
291
|
>
|
305
292
|
<div
|
306
293
|
class="m-0 text-sm text-inherit font-semibold"
|
@@ -310,15 +297,17 @@ exports[`Tabs renders with a pre-selected option using custom value 1`] = `
|
|
310
297
|
</span>
|
311
298
|
</button>
|
312
299
|
<button
|
300
|
+
aria-disabled="false"
|
313
301
|
aria-selected="false"
|
314
|
-
class="
|
302
|
+
class="base-Tab opacity-70 m-0 [&:not(:last-child)]:mr-8 pt-[0.5625rem] pb-[0.4375rem] px-0 text-center bg-transparent transition-shadow z-10 rounded-none text-inheritColor shrink-0 max-w min-w sm:min-w md:min-w border-0 cursor-pointer inline-flex outline-none items-center select-none align-middle appearance-none justify-center no-underline [-webkit-tap-highlight normal-case whitespace-normal leading-4 relative"
|
315
303
|
data-testid="tab-2"
|
304
|
+
id=":r7:"
|
316
305
|
role="tab"
|
317
306
|
tabindex="0"
|
318
307
|
type="button"
|
319
308
|
>
|
320
309
|
<span
|
321
|
-
class="
|
310
|
+
class="w-full inline-flex items-center flex-col justify-center"
|
322
311
|
>
|
323
312
|
<div
|
324
313
|
class="m-0 text-sm text-inherit font-semibold"
|
@@ -328,10 +317,6 @@ exports[`Tabs renders with a pre-selected option using custom value 1`] = `
|
|
328
317
|
</span>
|
329
318
|
</button>
|
330
319
|
</div>
|
331
|
-
<span
|
332
|
-
class="PrivateTabIndicator-root PrivateTabIndicator-colorSecondary MuiTabs-indicator"
|
333
|
-
style="left: 0px; width: 0px;"
|
334
|
-
/>
|
335
320
|
</div>
|
336
321
|
</div>
|
337
322
|
<div
|
package/src/Tabs/index.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import type { OmitInternalProps } from '@toptal/picasso-shared'
|
2
2
|
|
3
|
-
import type { Props } from './Tabs'
|
3
|
+
import type { Props, TabsValueType } from './Tabs'
|
4
4
|
|
5
5
|
export { default as Tabs } from './Tabs'
|
6
|
-
export type TabsProps = OmitInternalProps<Props
|
6
|
+
export type TabsProps = OmitInternalProps<Props<TabsValueType>>
|
7
|
+
export type { TabsValueType } from './Tabs'
|
@@ -5,7 +5,7 @@ import { SPACING_4 } from '@toptal/picasso-utils'
|
|
5
5
|
const Example = () => {
|
6
6
|
const [value, setValue] = React.useState(0)
|
7
7
|
|
8
|
-
const handleChange = (_: React.ChangeEvent<{}
|
8
|
+
const handleChange = (_: React.ChangeEvent<{}> | null, newValue: number) => {
|
9
9
|
setValue(newValue)
|
10
10
|
}
|
11
11
|
|
@@ -8,7 +8,7 @@ const TAB_COUNT = 2
|
|
8
8
|
const Example = () => {
|
9
9
|
const [value, setValue] = React.useState(0)
|
10
10
|
|
11
|
-
const handleChange = (_: React.ChangeEvent<{}
|
11
|
+
const handleChange = (_: React.ChangeEvent<{}> | null, newValue: number) => {
|
12
12
|
setValue(newValue)
|
13
13
|
}
|
14
14
|
|
@@ -8,7 +8,7 @@ const TAB_COUNT = 10
|
|
8
8
|
const Example = () => {
|
9
9
|
const [value, setValue] = React.useState(0)
|
10
10
|
|
11
|
-
const handleChange = (_: React.ChangeEvent<{}
|
11
|
+
const handleChange = (_: React.ChangeEvent<{}> | null, newValue: number) => {
|
12
12
|
setValue(newValue)
|
13
13
|
}
|
14
14
|
|
@@ -33,7 +33,7 @@ const TabsContent = ({ children }: { children: React.ReactNode }) => {
|
|
33
33
|
const Example = () => {
|
34
34
|
const [value, setValue] = React.useState(0)
|
35
35
|
|
36
|
-
const handleChange = (_: React.ChangeEvent<{}
|
36
|
+
const handleChange = (_: React.ChangeEvent<{}> | null, newValue: number) => {
|
37
37
|
setValue(newValue)
|
38
38
|
}
|
39
39
|
|
package/src/Tabs/test.tsx
CHANGED
@@ -1,14 +1,17 @@
|
|
1
1
|
/* eslint-disable react/no-array-index-key */
|
2
2
|
import React from 'react'
|
3
3
|
import { render, fireEvent } from '@testing-library/react'
|
4
|
-
import type { OmitInternalProps } from '@toptal/picasso-shared'
|
5
4
|
import { TestingPicasso } from '@toptal/picasso-test-utils'
|
6
5
|
|
7
6
|
import type { TabProps } from '../Tab'
|
8
|
-
import type { Props } from './Tabs'
|
7
|
+
import type { Props, TabsValueType } from './Tabs'
|
9
8
|
import { TabsCompound as Tabs } from '../TabsCompound'
|
10
9
|
|
11
|
-
const renderTabContent = (
|
10
|
+
const renderTabContent = (
|
11
|
+
tab: TabProps,
|
12
|
+
index: number,
|
13
|
+
value: TabsValueType
|
14
|
+
) => {
|
12
15
|
const isTabActive = index + 1 === value || tab.value === value
|
13
16
|
const testId = `tab-${index + 1}-content`
|
14
17
|
|
@@ -25,7 +28,7 @@ const renderTabContent = (tab: TabProps, index: number, value: any) => {
|
|
25
28
|
|
26
29
|
const renderTabs = (
|
27
30
|
tabs: TabProps[],
|
28
|
-
{ value, onChange, variant }:
|
31
|
+
{ value, onChange, variant }: Omit<Props<TabsValueType>, 'children'>,
|
29
32
|
orientation: 'horizontal' | 'vertical' = 'horizontal'
|
30
33
|
) => {
|
31
34
|
return render(
|
@@ -57,7 +60,7 @@ describe('Tabs', () => {
|
|
57
60
|
const { container, queryByTestId } = renderTabs(
|
58
61
|
[{ label: 'Tab 1' }, { label: 'Tab 2' }],
|
59
62
|
{
|
60
|
-
value:
|
63
|
+
value: null,
|
61
64
|
}
|
62
65
|
)
|
63
66
|
|
@@ -70,7 +73,7 @@ describe('Tabs', () => {
|
|
70
73
|
it('renders in vertical orientation', () => {
|
71
74
|
const { container } = renderTabs(
|
72
75
|
[{ label: 'Tab 1' }, { label: 'Tab 2' }],
|
73
|
-
{ value:
|
76
|
+
{ value: null },
|
74
77
|
'vertical'
|
75
78
|
)
|
76
79
|
|
@@ -113,7 +116,7 @@ describe('Tabs', () => {
|
|
113
116
|
const { getByTestId } = renderTabs(
|
114
117
|
[{ label: 'Tab 1' }, { label: 'Tab 2' }],
|
115
118
|
{
|
116
|
-
value:
|
119
|
+
value: 0,
|
117
120
|
onChange,
|
118
121
|
}
|
119
122
|
)
|
@@ -156,7 +159,7 @@ describe('Tabs', () => {
|
|
156
159
|
|
157
160
|
it('renders in full width', () => {
|
158
161
|
const { container } = renderTabs([{ label: 'Tab 1' }, { label: 'Tab 2' }], {
|
159
|
-
value:
|
162
|
+
value: null,
|
160
163
|
variant: 'fullWidth',
|
161
164
|
})
|
162
165
|
|
package/src/index.ts
CHANGED
package/LICENSE
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
MIT License
|
2
|
-
|
3
|
-
Copyright (c) 2021-2022 Toptal, LLC
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
6
|
-
this software and associated documentation files (the “Software”), to deal in
|
7
|
-
the Software without restriction, including without limitation the rights to
|
8
|
-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
9
|
-
the Software, and to permit persons to whom the Software is furnished to do so,
|
10
|
-
subject to the following conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
13
|
-
copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
17
|
-
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
18
|
-
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
19
|
-
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
20
|
-
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -1,4 +0,0 @@
|
|
1
|
-
import type { Theme } from '@material-ui/core/styles';
|
2
|
-
declare const _default: ({ sizes, palette, shadows, transitions }: Theme) => import("@material-ui/styles").StyleRules<{}, "horizontal" | "vertical" | "selected" | "wrapper">;
|
3
|
-
export default _default;
|
4
|
-
//# sourceMappingURL=styles.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/Tab/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;mEAgDK,KAAK;AAA/D,wBAyDI"}
|
@@ -1,94 +0,0 @@
|
|
1
|
-
import { createStyles } from '@material-ui/core/styles';
|
2
|
-
import { rem } from '@toptal/picasso-shared';
|
3
|
-
import { PicassoProvider } from '@toptal/picasso-provider';
|
4
|
-
PicassoProvider.override(({ breakpoints, palette }) => ({
|
5
|
-
MuiTab: {
|
6
|
-
root: {
|
7
|
-
minHeight: 0,
|
8
|
-
minWidth: 0,
|
9
|
-
lineHeight: 1,
|
10
|
-
textTransform: 'none',
|
11
|
-
padding: `${rem('9px')} 0 ${rem('7px')}`,
|
12
|
-
overflow: 'initial',
|
13
|
-
[breakpoints.up('md')]: {
|
14
|
-
padding: undefined,
|
15
|
-
},
|
16
|
-
color: palette.grey.dark,
|
17
|
-
[breakpoints.up('md')]: {
|
18
|
-
minWidth: 'auto',
|
19
|
-
fontSize: '1rem',
|
20
|
-
},
|
21
|
-
},
|
22
|
-
labelIcon: {
|
23
|
-
minHeight: 0,
|
24
|
-
paddingRight: '1.5rem',
|
25
|
-
paddingTop: rem('9px'),
|
26
|
-
'& $wrapper > *:first-child': {
|
27
|
-
position: 'absolute',
|
28
|
-
right: 0,
|
29
|
-
marginBottom: 0,
|
30
|
-
},
|
31
|
-
},
|
32
|
-
selected: {
|
33
|
-
color: palette.common.black,
|
34
|
-
},
|
35
|
-
textColorInherit: {
|
36
|
-
'&$disabled': {
|
37
|
-
color: palette.grey.main,
|
38
|
-
},
|
39
|
-
},
|
40
|
-
disabled: {},
|
41
|
-
},
|
42
|
-
}));
|
43
|
-
export default ({ sizes, palette, shadows, transitions }) => createStyles({
|
44
|
-
horizontal: {
|
45
|
-
'&:not(:last-child)': {
|
46
|
-
marginRight: '2em',
|
47
|
-
},
|
48
|
-
},
|
49
|
-
vertical: {
|
50
|
-
width: '100%',
|
51
|
-
borderRadius: `${sizes.borderRadius.small} 0 0 ${sizes.borderRadius.small}`,
|
52
|
-
margin: '0.25rem 0',
|
53
|
-
overflow: 'hidden',
|
54
|
-
padding: '0.5rem 1rem',
|
55
|
-
transition: `all ${transitions.duration.short}ms ${transitions.easing.easeInOut}`,
|
56
|
-
textAlign: 'left',
|
57
|
-
backgroundColor: palette.grey.lighter,
|
58
|
-
opacity: 1,
|
59
|
-
color: palette.grey.dark,
|
60
|
-
'&:first-child': {
|
61
|
-
marginTop: '1rem',
|
62
|
-
},
|
63
|
-
'&:last-child': {
|
64
|
-
marginBottom: '1rem',
|
65
|
-
},
|
66
|
-
'&:hover': {
|
67
|
-
color: palette.common.black,
|
68
|
-
},
|
69
|
-
'&:hover:not($selected)': {
|
70
|
-
backgroundColor: palette.grey.lighter2,
|
71
|
-
},
|
72
|
-
'& $wrapper': {
|
73
|
-
display: 'block',
|
74
|
-
},
|
75
|
-
},
|
76
|
-
selected: {
|
77
|
-
'&$vertical': {
|
78
|
-
color: palette.common.black,
|
79
|
-
boxShadow: shadows[1],
|
80
|
-
backgroundColor: palette.grey.lightest,
|
81
|
-
'&::before': {
|
82
|
-
content: '""',
|
83
|
-
background: palette.blue.main,
|
84
|
-
position: 'absolute',
|
85
|
-
left: 0,
|
86
|
-
top: 0,
|
87
|
-
bottom: 0,
|
88
|
-
width: '3px',
|
89
|
-
},
|
90
|
-
},
|
91
|
-
},
|
92
|
-
wrapper: {},
|
93
|
-
});
|
94
|
-
//# sourceMappingURL=styles.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/Tab/styles.ts"],"names":[],"mappings":"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"}
|
@@ -1,12 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import type { BaseProps } from '@toptal/picasso-shared';
|
3
|
-
declare type DirectionType = 'left' | 'right';
|
4
|
-
export interface Props extends BaseProps {
|
5
|
-
/** The direction the button should indicate. */
|
6
|
-
direction: DirectionType;
|
7
|
-
/** If `true`, the component is disabled. */
|
8
|
-
disabled?: boolean;
|
9
|
-
}
|
10
|
-
export declare const TabScrollButton: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
|
11
|
-
export default TabScrollButton;
|
12
|
-
//# sourceMappingURL=TabScrollButton.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"TabScrollButton.d.ts","sourceRoot":"","sources":["../../../src/TabScrollButton/TabScrollButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAGzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAMvD,aAAK,aAAa,GAAG,MAAM,GAAG,OAAO,CAAA;AAErC,MAAM,WAAW,KAAM,SAAQ,SAAS;IACtC,gDAAgD;IAChD,SAAS,EAAE,aAAa,CAAA;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAMD,eAAO,MAAM,eAAe,8EAoC3B,CAAA;AAID,eAAe,eAAe,CAAA"}
|