@expokit/cli 0.4.3 → 0.5.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/README.md +30 -3
- package/bin/expo-kit.js +749 -288
- package/bin/lib.mjs +313 -4
- package/package.json +1 -1
- package/registry/_docs/action-sheet.json +1 -1
- package/registry/_docs/alert.json +6 -0
- package/registry/_docs/bottom-sheet.json +6 -0
- package/registry/_docs/bullet.json +6 -0
- package/registry/_docs/dialog.json +1 -1
- package/registry/_docs/drawer.json +3 -3
- package/registry/_docs/flip-calendar.json +106 -0
- package/registry/_docs/glass-search-bar.json +1 -1
- package/registry/_docs/grain.json +6 -1
- package/registry/_docs/isometric-bar.json +6 -0
- package/registry/_docs/liquidglass-tab.json +1 -1
- package/registry/_docs/password-input.json +1 -1
- package/registry/_docs/paywall.json +144 -0
- package/registry/_docs/pixel-bar.json +6 -0
- package/registry/_docs/polar-area.json +6 -0
- package/registry/_docs/qr-code-button.json +9 -3
- package/registry/_docs/ruler-time-picker.json +147 -0
- package/registry/_docs/scratch-card.json +7 -1
- package/registry/_docs/search-bar.json +1 -1
- package/registry/_docs/select.json +2 -2
- package/registry/_docs/slide-to-confirm.json +2 -2
- package/registry/_docs/spinner.json +1 -1
- package/registry/_docs/stateful-button.json +2 -2
- package/registry/_docs/swipe-deck.json +1 -1
- package/registry/_docs/time-picker.json +2 -2
- package/registry/_docs/timeline-chart.json +6 -0
- package/registry/_docs/toast.json +15 -3
- package/registry/_docs/treemap.json +6 -0
- package/registry/_docs/waterfall.json +6 -0
- package/registry/accordion/files/src/components/ui/accordion.tsx +6 -4
- package/registry/accordion/files/src/lib/kit.tsx +462 -12
- package/registry/accordion.json +1 -0
- package/registry/action-sheet/files/src/components/ui/action-sheet.tsx +50 -58
- package/registry/action-sheet/files/src/lib/kit.tsx +462 -12
- package/registry/action-sheet.json +1 -0
- package/registry/alert/files/src/components/ui/alert.tsx +20 -13
- package/registry/alert/files/src/lib/kit.tsx +462 -12
- package/registry/alert.json +3 -4
- package/registry/assistant-app.json +1 -0
- package/registry/avatar/files/src/components/ui/avatar.tsx +89 -74
- package/registry/avatar/files/src/lib/kit.tsx +462 -12
- package/registry/avatar.json +1 -0
- package/registry/badge/files/src/components/ui/badge.tsx +36 -36
- package/registry/badge/files/src/lib/kit.tsx +462 -12
- package/registry/badge.json +1 -0
- package/registry/bottom-nav/files/src/components/ui/bottom-nav.tsx +39 -44
- package/registry/bottom-nav/files/src/lib/kit.tsx +462 -12
- package/registry/bottom-nav.json +5 -0
- package/registry/bottom-sheet/files/src/components/ui/bottom-sheet.tsx +357 -300
- package/registry/bottom-sheet/files/src/lib/kit.tsx +462 -12
- package/registry/bottom-sheet.json +5 -1
- package/registry/bullet.json +1 -0
- package/registry/button/files/src/components/ui/button.tsx +23 -34
- package/registry/button/files/src/lib/kit.tsx +462 -12
- package/registry/button-3d/files/src/components/ui/button-3d.tsx +6 -9
- package/registry/button-3d/files/src/lib/kit.tsx +462 -12
- package/registry/button-3d.json +1 -0
- package/registry/button.json +1 -0
- package/registry/calendar/files/src/components/ui/calendar.tsx +77 -79
- package/registry/calendar/files/src/lib/kit.tsx +462 -12
- package/registry/calendar.json +1 -0
- package/registry/card/files/src/components/ui/card.tsx +7 -6
- package/registry/card/files/src/lib/kit.tsx +462 -12
- package/registry/card-stack.json +1 -0
- package/registry/card.json +1 -0
- package/registry/carousel.json +1 -0
- package/registry/chat.json +7 -0
- package/registry/checkbox/files/src/components/ui/checkbox.tsx +4 -4
- package/registry/checkbox/files/src/lib/kit.tsx +462 -12
- package/registry/checkbox.json +1 -0
- package/registry/checkout.json +1 -0
- package/registry/chip-group/files/src/components/ui/chip-group.tsx +24 -24
- package/registry/chip-group/files/src/lib/kit.tsx +462 -12
- package/registry/chip-group.json +1 -0
- package/registry/confetti/files/src/components/ui/confetti.tsx +15 -14
- package/registry/confetti.json +3 -6
- package/registry/coupon/files/src/components/ui/coupon.tsx +47 -52
- package/registry/coupon/files/src/components/ui/flip-card.tsx +9 -14
- package/registry/coupon/files/src/components/ui/tilt-card.tsx +80 -101
- package/registry/coupon/files/src/lib/kit.tsx +462 -12
- package/registry/coupon/files/src/lib/ticket-shape.tsx +54 -44
- package/registry/coupon.json +1 -0
- package/registry/cube-pager.json +1 -0
- package/registry/dashboard.json +1 -0
- package/registry/date-picker/files/src/components/ui/calendar.tsx +77 -79
- package/registry/date-picker/files/src/components/ui/date-picker.tsx +64 -71
- package/registry/date-picker/files/src/lib/kit.tsx +462 -12
- package/registry/date-picker.json +1 -0
- package/registry/dialog/files/src/components/ui/dialog.tsx +66 -68
- package/registry/dialog/files/src/lib/kit.tsx +462 -12
- package/registry/dialog.json +1 -0
- package/registry/donut-shop.json +1 -0
- package/registry/drawer/files/src/components/ui/drawer.tsx +76 -88
- package/registry/drawer/files/src/lib/kit.tsx +462 -12
- package/registry/drawer.json +1 -0
- package/registry/fab.json +1 -0
- package/registry/fintech-app.json +1 -0
- package/registry/flip-calendar/files/src/components/ui/flip-calendar.tsx +632 -0
- package/registry/flip-calendar/files/src/lib/kit.tsx +672 -0
- package/registry/flip-calendar.json +24 -0
- package/registry/flip-card/files/src/components/ui/flip-card.tsx +9 -14
- package/registry/flip-card/files/src/lib/kit.tsx +462 -12
- package/registry/flip-card.json +1 -0
- package/registry/floating-input/files/src/components/ui/floating-input.tsx +33 -33
- package/registry/floating-input/files/src/lib/kit.tsx +462 -12
- package/registry/floating-input.json +1 -0
- package/registry/food-app.json +1 -0
- package/registry/gift-card.json +1 -0
- package/registry/glass-button.json +5 -0
- package/registry/glass-nav-bar.json +1 -0
- package/registry/glass-search-bar.json +1 -0
- package/registry/glass-segmented.json +1 -0
- package/registry/glass-sheet.json +1 -0
- package/registry/glass-tab-bar.json +5 -0
- package/registry/glass.json +1 -0
- package/registry/grain/files/src/components/ui/grain.tsx +16 -14
- package/registry/grain.json +8 -6
- package/registry/inbox.json +1 -0
- package/registry/isometric-bar.json +1 -0
- package/registry/kit/files/src/lib/kit.tsx +462 -12
- package/registry/kit.json +1 -0
- package/registry/liquidglass-tab/files/src/app/_layout.tsx +0 -1
- package/registry/liquidglass-tab/files/src/components/GlassTabBar.tsx +29 -16
- package/registry/liquidglass-tab/files/src/components/TabScreen.tsx +33 -19
- package/registry/liquidglass-tab/files/src/lib/tab-icons.ts +1 -1
- package/registry/liquidglass-tab.json +1 -0
- package/registry/list-item/files/src/components/ui/list-item.tsx +43 -43
- package/registry/list-item/files/src/lib/kit.tsx +462 -12
- package/registry/list-item.json +1 -0
- package/registry/loyalty-card.json +1 -0
- package/registry/morphing-button-group.json +1 -0
- package/registry/number-ticker.json +1 -0
- package/registry/offers.json +1 -0
- package/registry/onboarding.json +1 -0
- package/registry/orb-reveal.json +1 -0
- package/registry/otp-input/files/src/components/ui/otp-input.tsx +49 -30
- package/registry/otp-input/files/src/lib/kit.tsx +462 -12
- package/registry/otp-input.json +1 -0
- package/registry/parallax-layers.json +1 -0
- package/registry/parallax-scroll.json +1 -0
- package/registry/password-input/files/src/components/ui/floating-input.tsx +33 -33
- package/registry/password-input/files/src/components/ui/password-input.tsx +29 -25
- package/registry/password-input/files/src/lib/kit.tsx +462 -12
- package/registry/password-input.json +1 -0
- package/registry/payment-card/files/src/components/ui/flip-card.tsx +9 -14
- package/registry/payment-card/files/src/components/ui/payment-card.tsx +26 -20
- package/registry/payment-card/files/src/components/ui/tilt-card.tsx +80 -101
- package/registry/payment-card/files/src/lib/kit.tsx +462 -12
- package/registry/payment-card.json +1 -0
- package/registry/paywall.json +23 -0
- package/registry/pixel-bar.json +1 -0
- package/registry/polar-area.json +1 -0
- package/registry/profile.json +1 -0
- package/registry/progress/files/src/components/ui/progress.tsx +31 -29
- package/registry/progress/files/src/lib/kit.tsx +462 -12
- package/registry/progress-steps/files/src/components/ui/progress-steps.tsx +21 -21
- package/registry/progress-steps/files/src/lib/kit.tsx +462 -12
- package/registry/progress-steps.json +1 -0
- package/registry/progress.json +1 -0
- package/registry/qr-code-button.json +1 -0
- package/registry/radio-group/files/src/components/ui/radio-group.tsx +19 -19
- package/registry/radio-group/files/src/lib/kit.tsx +462 -12
- package/registry/radio-group.json +1 -0
- package/registry/rating.json +1 -0
- package/registry/ring-carousel.json +1 -0
- package/registry/ruler-time-picker/files/src/components/ui/ruler-time-picker.tsx +832 -0
- package/registry/ruler-time-picker/files/src/lib/kit.tsx +672 -0
- package/registry/ruler-time-picker.json +26 -0
- package/registry/scratch-card.json +1 -0
- package/registry/search-bar/files/src/components/ui/search-bar.tsx +28 -28
- package/registry/search-bar/files/src/lib/kit.tsx +462 -12
- package/registry/search-bar.json +1 -0
- package/registry/search-results.json +4 -0
- package/registry/segmented-control/files/src/components/ui/segmented-control.tsx +11 -17
- package/registry/segmented-control/files/src/lib/kit.tsx +462 -12
- package/registry/segmented-control.json +1 -0
- package/registry/select/files/src/components/ui/select.tsx +107 -104
- package/registry/select/files/src/lib/kit.tsx +462 -12
- package/registry/select.json +6 -0
- package/registry/settings.json +1 -0
- package/registry/sign-in.json +1 -0
- package/registry/skeleton/files/src/components/ui/skeleton.tsx +149 -80
- package/registry/skeleton/files/src/lib/kit.tsx +462 -12
- package/registry/skeleton.json +1 -0
- package/registry/slide-to-confirm.json +1 -0
- package/registry/slider/files/src/components/ui/slider.tsx +106 -108
- package/registry/slider/files/src/lib/kit.tsx +462 -12
- package/registry/slider.json +5 -0
- package/registry/spin-wheel.json +1 -0
- package/registry/spinner/files/src/components/ui/spinner.tsx +39 -29
- package/registry/spinner/files/src/lib/kit.tsx +462 -12
- package/registry/spinner.json +6 -0
- package/registry/stateful-button/files/src/components/ui/stateful-button.tsx +39 -32
- package/registry/stateful-button/files/src/lib/kit.tsx +462 -12
- package/registry/stateful-button.json +5 -0
- package/registry/stepper/files/src/components/ui/stepper.tsx +40 -38
- package/registry/stepper/files/src/lib/kit.tsx +462 -12
- package/registry/stepper.json +1 -0
- package/registry/swipe-deck.json +1 -0
- package/registry/swipeable-row.json +4 -0
- package/registry/switch/files/src/components/ui/switch.tsx +41 -47
- package/registry/switch/files/src/lib/kit.tsx +462 -12
- package/registry/switch.json +1 -0
- package/registry/tabs/files/src/components/ui/tabs.tsx +61 -64
- package/registry/tabs/files/src/lib/kit.tsx +462 -12
- package/registry/tabs.json +1 -0
- package/registry/text-animation/files/src/components/ui/text-animation.tsx +55 -42
- package/registry/text-animation/files/src/lib/kit.tsx +462 -12
- package/registry/text-animation.json +7 -0
- package/registry/textarea/files/src/components/ui/textarea.tsx +10 -10
- package/registry/textarea/files/src/lib/kit.tsx +462 -12
- package/registry/textarea.json +1 -0
- package/registry/ticket-card.json +1 -0
- package/registry/ticket-shape/files/src/lib/kit.tsx +462 -12
- package/registry/ticket-shape/files/src/lib/ticket-shape.tsx +54 -44
- package/registry/ticket-shape.json +1 -0
- package/registry/tilt-card/files/src/components/ui/tilt-card.tsx +80 -101
- package/registry/tilt-card/files/src/lib/kit.tsx +462 -12
- package/registry/tilt-card.json +1 -0
- package/registry/time-picker/files/src/components/ui/time-picker.tsx +136 -131
- package/registry/time-picker/files/src/lib/kit.tsx +462 -12
- package/registry/time-picker.json +1 -0
- package/registry/timeline/files/src/components/ui/avatar.tsx +89 -74
- package/registry/timeline/files/src/components/ui/timeline.tsx +49 -57
- package/registry/timeline/files/src/lib/kit.tsx +462 -12
- package/registry/timeline-chart.json +1 -0
- package/registry/timeline.json +1 -0
- package/registry/toast/files/src/components/ui/toast.tsx +543 -465
- package/registry/toast/files/src/lib/kit.tsx +462 -12
- package/registry/toast.json +7 -5
- package/registry/treemap.json +1 -0
- package/registry/waterfall.json +1 -0
- package/registry/wheel-list.json +1 -0
- package/schema/components.schema.json +1 -0
- package/registry/alert/files/src/components/ui/button.tsx +0 -303
- package/registry/confetti/files/src/lib/kit.tsx +0 -222
- package/registry/grain/files/src/lib/kit.tsx +0 -222
- package/registry/toast/files/src/components/ui/button.tsx +0 -303
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import * as Haptics from 'expo-haptics';
|
|
2
|
-
import React, { useEffect,
|
|
2
|
+
import React, { useEffect, useLayoutEffect, useRef, useState, type ComponentRef } from 'react';
|
|
3
3
|
import {
|
|
4
4
|
AccessibilityInfo,
|
|
5
5
|
Animated,
|
|
6
|
-
PanResponder,
|
|
7
6
|
Pressable,
|
|
8
7
|
ScrollView,
|
|
9
8
|
StyleSheet,
|
|
@@ -13,7 +12,7 @@ import {
|
|
|
13
12
|
type ViewStyle,
|
|
14
13
|
} from 'react-native';
|
|
15
14
|
|
|
16
|
-
import { alpha, motion, readableOn, useKit } from '@/lib/kit';
|
|
15
|
+
import { alpha, motion, readableOn, useKit, usePanResponder } from '@/lib/kit';
|
|
17
16
|
|
|
18
17
|
/**
|
|
19
18
|
* Tabs are underline tabs with content panes. `pill` and `soft` are @deprecated and render as
|
|
@@ -112,12 +111,12 @@ export function Tabs({
|
|
|
112
111
|
|
|
113
112
|
// ---- animated values ----
|
|
114
113
|
// Underline edges + pane height: JS driver (left / width / height).
|
|
115
|
-
const lx =
|
|
116
|
-
const rx =
|
|
117
|
-
const hv =
|
|
114
|
+
const [lx] = useState(() => new Animated.Value(0));
|
|
115
|
+
const [rx] = useState(() => new Animated.Value(0));
|
|
116
|
+
const [hv] = useState(() => new Animated.Value(0));
|
|
118
117
|
// Pager offset + fade: native driver, on the pager row.
|
|
119
|
-
const pan =
|
|
120
|
-
const fade =
|
|
118
|
+
const [pan] = useState(() => new Animated.Value(0));
|
|
119
|
+
const [fade] = useState(() => new Animated.Value(1));
|
|
121
120
|
const [lineShown, setLineShown] = useState(false);
|
|
122
121
|
const [heightShown, setHeightShown] = useState(false);
|
|
123
122
|
const linePlaced = useRef(false);
|
|
@@ -204,61 +203,58 @@ export function Tabs({
|
|
|
204
203
|
|
|
205
204
|
// ---- swipe between panes ----
|
|
206
205
|
const live = useRef({ index, items, paneW, swipe: false, select, edgesOf });
|
|
207
|
-
|
|
206
|
+
useLayoutEffect(() => {
|
|
207
|
+
live.current = { index, items, paneW, swipe: swipeable && hasContent && paneW > 0, select, edgesOf };
|
|
208
|
+
});
|
|
208
209
|
const drag = useRef({ base: 0, off: 0 });
|
|
209
210
|
const neighbour = (i: number, dir: 1 | -1) => {
|
|
210
211
|
const t = live.current.items[i + dir];
|
|
211
212
|
return t && !t.disabled ? i + dir : -1;
|
|
212
213
|
};
|
|
213
214
|
|
|
214
|
-
const responder =
|
|
215
|
-
() =>
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
onPanResponderTerminate: () => finish(0),
|
|
258
|
-
}),
|
|
259
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
260
|
-
[]
|
|
261
|
-
);
|
|
215
|
+
const responder = usePanResponder({
|
|
216
|
+
onMoveShouldSetPanResponder: (_, g) => live.current.swipe && Math.abs(g.dx) > 10 && Math.abs(g.dx) > Math.abs(g.dy) * 1.4,
|
|
217
|
+
onPanResponderTerminationRequest: () => false,
|
|
218
|
+
onPanResponderGrant: () => {
|
|
219
|
+
const { index: i, paneW: W } = live.current;
|
|
220
|
+
lx.stopAnimation();
|
|
221
|
+
rx.stopAnimation();
|
|
222
|
+
hv.stopAnimation();
|
|
223
|
+
// Grabbed mid-flight: continue from where the pane is; at rest it sits exactly on its slot.
|
|
224
|
+
drag.current.base = 0;
|
|
225
|
+
if (paging.current) pan.stopAnimation((v) => (drag.current.base = Math.max(-W, Math.min(W, v + i * W))));
|
|
226
|
+
paging.current = false;
|
|
227
|
+
drag.current.off = drag.current.base;
|
|
228
|
+
},
|
|
229
|
+
onPanResponderMove: (_, g) => {
|
|
230
|
+
const { index: i, paneW: W, edgesOf: edges } = live.current;
|
|
231
|
+
let off = drag.current.base + g.dx;
|
|
232
|
+
const prev = neighbour(i, -1);
|
|
233
|
+
const next = neighbour(i, 1);
|
|
234
|
+
if (off > 0 && prev < 0) off = rubber(off, W);
|
|
235
|
+
if (off < 0 && next < 0) off = -rubber(-off, W);
|
|
236
|
+
off = Math.max(-W, Math.min(W, off));
|
|
237
|
+
drag.current.off = off;
|
|
238
|
+
pan.setValue(-i * W + off);
|
|
239
|
+
|
|
240
|
+
// Underline + height follow the finger toward the neighbour.
|
|
241
|
+
const j = off < 0 ? next : prev;
|
|
242
|
+
const a = edges(i);
|
|
243
|
+
const b = j >= 0 ? edges(j) : null;
|
|
244
|
+
if (!a || !b) return;
|
|
245
|
+
const p = Math.min(1, Math.abs(off) / W);
|
|
246
|
+
const lead = 1 - (1 - p) * (1 - p); // ease-out: the leading edge runs ahead
|
|
247
|
+
const trail = p * p; // ease-in: the trailing edge hangs back
|
|
248
|
+
const toRight = j > i;
|
|
249
|
+
lx.setValue(a[0] + (b[0] - a[0]) * (toRight ? trail : lead));
|
|
250
|
+
rx.setValue(a[1] + (b[1] - a[1]) * (toRight ? lead : trail));
|
|
251
|
+
const ha = heights.current[i];
|
|
252
|
+
const hb = heights.current[j];
|
|
253
|
+
if (ha && hb) hv.setValue(ha + (hb - ha) * p);
|
|
254
|
+
},
|
|
255
|
+
onPanResponderRelease: (_, g) => finish(g.vx),
|
|
256
|
+
onPanResponderTerminate: () => finish(0),
|
|
257
|
+
});
|
|
262
258
|
|
|
263
259
|
const finish = (vx: number) => {
|
|
264
260
|
const { index: i, paneW: W, items: list, select: pick } = live.current;
|
|
@@ -268,7 +264,8 @@ export function Tabs({
|
|
|
268
264
|
else if (off > 0 && (off > W * 0.22 || vx > 0.35)) target = neighbour(i, -1);
|
|
269
265
|
if (target < 0) target = i;
|
|
270
266
|
release.current = { v: vx, dragged: true };
|
|
271
|
-
|
|
267
|
+
const next = list[target];
|
|
268
|
+
if (target !== i && next) pick(next);
|
|
272
269
|
setSettle((n) => n + 1);
|
|
273
270
|
};
|
|
274
271
|
|
|
@@ -358,7 +355,7 @@ export function Tabs({
|
|
|
358
355
|
const current = items[index];
|
|
359
356
|
panes = (
|
|
360
357
|
<Animated.View
|
|
361
|
-
{...responder
|
|
358
|
+
{...responder}
|
|
362
359
|
onLayout={(e) => {
|
|
363
360
|
const w = e.nativeEvent.layout.width;
|
|
364
361
|
if (Math.abs(w - paneW) > 0.5) setPaneW(w);
|
|
@@ -430,8 +427,8 @@ interface TabProps {
|
|
|
430
427
|
function Tab({ item, active, mode, height, fontSize, tint, reduce, onPress, onLayout, onLabelLayout }: TabProps) {
|
|
431
428
|
const { colors, font } = useKit();
|
|
432
429
|
const ff = font.family ? { fontFamily: font.family } : null;
|
|
433
|
-
const a =
|
|
434
|
-
const press =
|
|
430
|
+
const [a] = useState(() => new Animated.Value(active ? 1 : 0)); // label colour (JS)
|
|
431
|
+
const [press] = useState(() => new Animated.Value(1)); // squish (native)
|
|
435
432
|
|
|
436
433
|
useEffect(() => {
|
|
437
434
|
Animated.timing(a, { toValue: active ? 1 : 0, duration: reduce ? 0 : 180, useNativeDriver: false }).start();
|
|
@@ -479,7 +476,7 @@ function Tab({ item, active, mode, height, fontSize, tint, reduce, onPress, onLa
|
|
|
479
476
|
function TabBadge({ value, active, tint, reduce }: { value: number | string; active: boolean; tint: string; reduce: boolean }) {
|
|
480
477
|
const { colors, radius, dark, font } = useKit();
|
|
481
478
|
const ff = font.family ? { fontFamily: font.family } : null;
|
|
482
|
-
const s =
|
|
479
|
+
const [s] = useState(() => new Animated.Value(1));
|
|
483
480
|
const first = useRef(true);
|
|
484
481
|
useEffect(() => {
|
|
485
482
|
if (first.current || reduce) {
|
|
@@ -534,10 +531,10 @@ const styles = StyleSheet.create({
|
|
|
534
531
|
fill: { flex: 1 },
|
|
535
532
|
tab: { flexDirection: 'row', alignItems: 'center', justifyContent: 'center', gap: 6 },
|
|
536
533
|
labelRow: { flexDirection: 'row', alignItems: 'center', gap: 6 },
|
|
537
|
-
label: { fontWeight: '400', letterSpacing: -0.1 },
|
|
534
|
+
label: { fontWeight: '400', letterSpacing: -0.1, includeFontPadding: false, textAlignVertical: 'center' },
|
|
538
535
|
underline: { position: 'absolute', bottom: 0, height: UNDERLINE },
|
|
539
536
|
badge: { minWidth: 18, minHeight: 18, paddingHorizontal: 5, alignItems: 'center', justifyContent: 'center' },
|
|
540
|
-
badgeText: { fontSize: 11, fontWeight: '400', fontVariant: ['tabular-nums'] },
|
|
537
|
+
badgeText: { fontSize: 11, fontWeight: '400', fontVariant: ['tabular-nums'], includeFontPadding: false, textAlignVertical: 'center' },
|
|
541
538
|
viewport: { overflow: 'hidden' },
|
|
542
539
|
pager: { flexDirection: 'row', alignItems: 'flex-start' },
|
|
543
540
|
pane: { paddingTop: 16 },
|