@cdx-ui/components 0.0.1-beta.120 → 0.0.1-beta.122

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 (43) hide show
  1. package/lib/commonjs/components/ScrollShadow/index.js +82 -0
  2. package/lib/commonjs/components/ScrollShadow/index.js.map +1 -0
  3. package/lib/commonjs/components/ScrollShadow/styles.js +54 -0
  4. package/lib/commonjs/components/ScrollShadow/styles.js.map +1 -0
  5. package/lib/commonjs/components/ScrollShadow/useScrollShadow.js +83 -0
  6. package/lib/commonjs/components/ScrollShadow/useScrollShadow.js.map +1 -0
  7. package/lib/commonjs/components/Tabs/index.js +525 -0
  8. package/lib/commonjs/components/Tabs/index.js.map +1 -0
  9. package/lib/commonjs/components/Tabs/styles.js +333 -0
  10. package/lib/commonjs/components/Tabs/styles.js.map +1 -0
  11. package/lib/commonjs/components/index.js +24 -0
  12. package/lib/commonjs/components/index.js.map +1 -1
  13. package/lib/module/components/ScrollShadow/index.js +78 -0
  14. package/lib/module/components/ScrollShadow/index.js.map +1 -0
  15. package/lib/module/components/ScrollShadow/styles.js +50 -0
  16. package/lib/module/components/ScrollShadow/styles.js.map +1 -0
  17. package/lib/module/components/ScrollShadow/useScrollShadow.js +79 -0
  18. package/lib/module/components/ScrollShadow/useScrollShadow.js.map +1 -0
  19. package/lib/module/components/Tabs/index.js +520 -0
  20. package/lib/module/components/Tabs/index.js.map +1 -0
  21. package/lib/module/components/Tabs/styles.js +330 -0
  22. package/lib/module/components/Tabs/styles.js.map +1 -0
  23. package/lib/module/components/index.js +2 -0
  24. package/lib/module/components/index.js.map +1 -1
  25. package/lib/typescript/components/ScrollShadow/index.d.ts +29 -0
  26. package/lib/typescript/components/ScrollShadow/index.d.ts.map +1 -0
  27. package/lib/typescript/components/ScrollShadow/styles.d.ts +12 -0
  28. package/lib/typescript/components/ScrollShadow/styles.d.ts.map +1 -0
  29. package/lib/typescript/components/ScrollShadow/useScrollShadow.d.ts +17 -0
  30. package/lib/typescript/components/ScrollShadow/useScrollShadow.d.ts.map +1 -0
  31. package/lib/typescript/components/Tabs/index.d.ts +48 -0
  32. package/lib/typescript/components/Tabs/index.d.ts.map +1 -0
  33. package/lib/typescript/components/Tabs/styles.d.ts +107 -0
  34. package/lib/typescript/components/Tabs/styles.d.ts.map +1 -0
  35. package/lib/typescript/components/index.d.ts +2 -0
  36. package/lib/typescript/components/index.d.ts.map +1 -1
  37. package/package.json +4 -4
  38. package/src/components/ScrollShadow/index.tsx +119 -0
  39. package/src/components/ScrollShadow/styles.ts +57 -0
  40. package/src/components/ScrollShadow/useScrollShadow.ts +110 -0
  41. package/src/components/Tabs/index.tsx +694 -0
  42. package/src/components/Tabs/styles.ts +340 -0
  43. package/src/components/index.ts +2 -0
@@ -0,0 +1,525 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Tabs = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
10
+ var _icons = require("@cdx-ui/icons");
11
+ var _primitives = require("@cdx-ui/primitives");
12
+ var _utils = require("@cdx-ui/utils");
13
+ var _Icon = require("../Icon");
14
+ var _ScrollShadow = require("../ScrollShadow");
15
+ var _styles = require("./styles");
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
18
+ /** Minimum horizontal scroll offset so `layout` is fully inside the viewport. */
19
+ function scrollXToRevealTab(layout, viewportWidth, currentScrollX) {
20
+ const tabStart = layout.x;
21
+ const tabEnd = layout.x + layout.width;
22
+ const viewEnd = currentScrollX + viewportWidth;
23
+ if (tabStart < currentScrollX) {
24
+ return tabStart;
25
+ }
26
+ if (tabEnd > viewEnd) {
27
+ return tabEnd - viewportWidth;
28
+ }
29
+ return currentScrollX;
30
+ }
31
+ function clampScrollX(scrollX, viewportWidth, contentWidth) {
32
+ const maxScrollX = Math.max(0, contentWidth - viewportWidth);
33
+ return Math.min(Math.max(0, scrollX), maxScrollX);
34
+ }
35
+ const [TabsIndicatorProvider, useTabsIndicatorContext] = (0, _utils.createContext)('TabsIndicatorContext');
36
+ const [TabsVariantProvider, useTabsVariantContext] = (0, _utils.createContext)('TabsVariantContext');
37
+
38
+ // =============================================================================
39
+ // STYLED ROOT
40
+ // =============================================================================
41
+
42
+ const TabsRoot = /*#__PURE__*/(0, _react.forwardRef)(({
43
+ className,
44
+ style,
45
+ children,
46
+ variant = 'solid',
47
+ orientation = 'horizontal',
48
+ ...props
49
+ }, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(TabsVariantProvider, {
50
+ value: {
51
+ variant
52
+ },
53
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.TabsRoot, {
54
+ ref: ref,
55
+ orientation: orientation,
56
+ className: (0, _utils.cn)((0, _styles.tabsRootVariants)({
57
+ orientation
58
+ }), className),
59
+ style: style,
60
+ ...props,
61
+ ...(0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
62
+ slot: 'tabs'
63
+ })),
64
+ children: children
65
+ })
66
+ }));
67
+ TabsRoot.displayName = 'Tabs';
68
+
69
+ // =============================================================================
70
+ // STYLED LIST — hosts the animated selection indicator
71
+ // =============================================================================
72
+
73
+ const TabsList = /*#__PURE__*/(0, _react.forwardRef)(({
74
+ asChild,
75
+ className,
76
+ style,
77
+ children,
78
+ scrollable = true,
79
+ showsHorizontalScrollIndicator = false,
80
+ ...props
81
+ }, ref) => {
82
+ const {
83
+ value,
84
+ orientation,
85
+ getTabs
86
+ } = (0, _primitives.useTabsContext)();
87
+ const {
88
+ variant
89
+ } = useTabsVariantContext();
90
+ const isHorizontalScroll = orientation === 'horizontal' && scrollable;
91
+ const isWebHorizontalScroll = isHorizontalScroll && _reactNative.Platform.OS === 'web';
92
+ const shouldAutoScrollActiveTab = isHorizontalScroll && _reactNative.Platform.OS !== 'web';
93
+ const layoutsRef = (0, _react.useRef)(new Map());
94
+ const hasMeasuredRef = (0, _react.useRef)(false);
95
+ const scrollRef = (0, _react.useRef)(null);
96
+ const scrollViewWidthRef = (0, _react.useRef)(0);
97
+ const scrollContentWidthRef = (0, _react.useRef)(0);
98
+ const scrollXRef = (0, _react.useRef)(0);
99
+ const [scrollCapability, setScrollCapability] = (0, _react.useState)({
100
+ canScrollBefore: false,
101
+ canScrollAfter: false
102
+ });
103
+ const translateX = (0, _reactNativeReanimated.useSharedValue)(0);
104
+ const translateY = (0, _reactNativeReanimated.useSharedValue)(0);
105
+ // Both variants animate measured width/height. Measured size + translate is reliable
106
+ // and keeps `rounded-full` looking like a capsule for the solid variant.
107
+ const width = (0, _reactNativeReanimated.useSharedValue)(0);
108
+ const height = (0, _reactNativeReanimated.useSharedValue)(0);
109
+ const scrollActiveTabIntoView = (0, _react.useCallback)((layout, activeTabValue = value) => {
110
+ if (!shouldAutoScrollActiveTab || !layout || !scrollRef.current || activeTabValue === undefined) {
111
+ return;
112
+ }
113
+ const viewportWidth = scrollViewWidthRef.current;
114
+ if (viewportWidth <= 0) {
115
+ return;
116
+ }
117
+ let nextScrollX = scrollXToRevealTab(layout, viewportWidth, scrollXRef.current);
118
+ const tabOrder = getTabs().map(([tabValue]) => tabValue);
119
+ const activeIndex = tabOrder.indexOf(activeTabValue);
120
+
121
+ // Active tab fully visible at the right edge — peek the next sibling in.
122
+ if (activeIndex >= 0 && activeIndex < tabOrder.length - 1) {
123
+ const nextLayout = layoutsRef.current.get(tabOrder[activeIndex + 1]);
124
+ if (nextLayout) {
125
+ const viewEnd = nextScrollX + viewportWidth;
126
+ const nextTabEnd = nextLayout.x + nextLayout.width;
127
+ if (nextTabEnd > viewEnd) {
128
+ nextScrollX = Math.max(nextScrollX, nextTabEnd - viewportWidth);
129
+ }
130
+ }
131
+ }
132
+
133
+ // Active tab fully visible at the left edge — peek the previous sibling in.
134
+ if (activeIndex > 0) {
135
+ const prevLayout = layoutsRef.current.get(tabOrder[activeIndex - 1]);
136
+ if (prevLayout && prevLayout.x < nextScrollX) {
137
+ nextScrollX = Math.min(nextScrollX, prevLayout.x);
138
+ }
139
+ }
140
+ nextScrollX = clampScrollX(nextScrollX, viewportWidth, scrollContentWidthRef.current);
141
+ scrollXRef.current = nextScrollX;
142
+ scrollRef.current.scrollTo({
143
+ x: nextScrollX,
144
+ animated: true
145
+ });
146
+ }, [getTabs, shouldAutoScrollActiveTab, value]);
147
+ const retryScrollActiveTabIntoView = (0, _react.useCallback)(() => {
148
+ if (value === undefined) {
149
+ return;
150
+ }
151
+ if (scrollViewWidthRef.current <= 0 || scrollContentWidthRef.current <= 0) {
152
+ return;
153
+ }
154
+ scrollActiveTabIntoView(layoutsRef.current.get(value), value);
155
+ }, [value, scrollActiveTabIntoView]);
156
+ const scrollTabsByPage = (0, _react.useCallback)(direction => {
157
+ if (!scrollRef.current) {
158
+ return;
159
+ }
160
+ const viewportWidth = scrollViewWidthRef.current;
161
+ if (viewportWidth <= 0) {
162
+ return;
163
+ }
164
+ const nextScrollX = clampScrollX(scrollXRef.current + direction * viewportWidth * 0.8, viewportWidth, scrollContentWidthRef.current);
165
+ scrollXRef.current = nextScrollX;
166
+ scrollRef.current.scrollTo({
167
+ x: nextScrollX,
168
+ animated: true
169
+ });
170
+ }, []);
171
+ const applyLayout = (0, _react.useCallback)(layout => {
172
+ if (!layout) {
173
+ return;
174
+ }
175
+ let nextX = layout.x;
176
+ let nextY = layout.y;
177
+ let nextW = layout.width;
178
+ let nextH = layout.height;
179
+ if (variant === 'outline') {
180
+ if (orientation === 'vertical') {
181
+ // X offset comes from `style.left = TRACK` (indicator to the right of the rail).
182
+ nextX = 0;
183
+ nextW = _styles.OUTLINE_INDICATOR_THICKNESS;
184
+ } else {
185
+ // Y offset comes from `style.bottom = TRACK` (indicator above the rail).
186
+ nextY = 0;
187
+ nextH = _styles.OUTLINE_INDICATOR_THICKNESS;
188
+ }
189
+ }
190
+ if (hasMeasuredRef.current) {
191
+ // Explicit duration — kept in sync with `TABS_INDICATOR_TRANSITION_MS`, the web focus
192
+ // ring's `transition` duration, so the ring doesn't visually outrun the sliding indicator.
193
+ const config = {
194
+ duration: _styles.TABS_INDICATOR_TRANSITION_MS
195
+ };
196
+ translateX.set((0, _reactNativeReanimated.withTiming)(nextX, config));
197
+ translateY.set((0, _reactNativeReanimated.withTiming)(nextY, config));
198
+ width.set((0, _reactNativeReanimated.withTiming)(nextW, config));
199
+ height.set((0, _reactNativeReanimated.withTiming)(nextH, config));
200
+ } else {
201
+ translateX.set(nextX);
202
+ translateY.set(nextY);
203
+ width.set(nextW);
204
+ height.set(nextH);
205
+ hasMeasuredRef.current = true;
206
+ }
207
+ }, [translateX, translateY, width, height, variant, orientation]);
208
+ const reportLayout = (0, _react.useCallback)((tabValue, layout) => {
209
+ layoutsRef.current.set(tabValue, layout);
210
+ if (tabValue === value) {
211
+ applyLayout(layout);
212
+ scrollActiveTabIntoView(layout, tabValue);
213
+ }
214
+ }, [value, applyLayout, scrollActiveTabIntoView]);
215
+ const clearLayout = (0, _react.useCallback)(tabValue => {
216
+ layoutsRef.current.delete(tabValue);
217
+ }, []);
218
+
219
+ // `useLayoutEffect` (not `useEffect`) — the web focus ring's CSS transition starts
220
+ // synchronously as part of the same commit that flips `data-focus-visible` on the newly
221
+ // selected tab. A deferred `useEffect` would schedule the indicator's `withTiming` glide a
222
+ // frame later than that, so the ring's own transition would finish first even though both
223
+ // share `TABS_INDICATOR_TRANSITION_MS` — running this synchronously keeps both starting in
224
+ // the same frame.
225
+ (0, _react.useLayoutEffect)(() => {
226
+ if (value !== undefined) {
227
+ const layout = layoutsRef.current.get(value);
228
+ applyLayout(layout);
229
+ scrollActiveTabIntoView(layout, value);
230
+ }
231
+ }, [value, applyLayout, scrollActiveTabIntoView]);
232
+ const indicatorAnimatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
233
+ width: width.get(),
234
+ height: height.get(),
235
+ transform: [{
236
+ translateX: translateX.get()
237
+ }, {
238
+ translateY: translateY.get()
239
+ }]
240
+ }));
241
+ const isSolidHorizontalScroll = isHorizontalScroll && variant === 'solid';
242
+ const trackClassName = (0, _utils.cn)((0, _styles.tabsListTrackVariants)({
243
+ orientation,
244
+ variant,
245
+ scrollable: isHorizontalScroll
246
+ }));
247
+ const trackStyle = variant === 'solid' && !isSolidHorizontalScroll ? orientation === 'vertical' ? _styles.tabsStyles.solidTrackVertical : _styles.tabsStyles.solidTrack : null;
248
+ const handleScrollViewLayout = (0, _react.useCallback)(event => {
249
+ scrollViewWidthRef.current = event.nativeEvent.layout.width;
250
+ retryScrollActiveTabIntoView();
251
+ }, [retryScrollActiveTabIntoView]);
252
+ const handleScrollViewContentSizeChange = (0, _react.useCallback)(contentWidth => {
253
+ scrollContentWidthRef.current = contentWidth;
254
+ retryScrollActiveTabIntoView();
255
+ }, [retryScrollActiveTabIntoView]);
256
+ const handleScrollViewScroll = (0, _react.useCallback)(event => {
257
+ scrollXRef.current = event.nativeEvent.contentOffset.x;
258
+ }, []);
259
+ const listTrack = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
260
+ className: trackClassName,
261
+ style: trackStyle,
262
+ children: [variant === 'outline' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
263
+ pointerEvents: "none",
264
+ className: (0, _utils.cn)((0, _styles.tabsOutlineTrackVariants)({
265
+ orientation
266
+ }))
267
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
268
+ pointerEvents: "none",
269
+ className: (0, _utils.cn)((0, _styles.tabsIndicatorVariants)({
270
+ orientation,
271
+ variant
272
+ })),
273
+ style: [variant === 'outline' ? [_styles.tabsStyles.outlineIndicator, orientation === 'vertical' ? _styles.tabsStyles.outlineIndicatorVertical : _styles.tabsStyles.outlineIndicatorHorizontal] : _styles.tabsStyles.solidIndicator, indicatorAnimatedStyle]
274
+ }), children]
275
+ });
276
+ const horizontalScrollView = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
277
+ ref: scrollRef,
278
+ horizontal: true,
279
+ showsHorizontalScrollIndicator: showsHorizontalScrollIndicator,
280
+ keyboardShouldPersistTaps: "handled",
281
+ className: (0, _utils.cn)((0, _styles.tabsListScrollViewVariants)()),
282
+ style: isHorizontalScroll ? _styles.tabsStyles.horizontalScrollViewBleed : null,
283
+ contentContainerStyle: isHorizontalScroll ? _styles.tabsStyles.horizontalScrollContent : undefined,
284
+ onLayout: handleScrollViewLayout,
285
+ onContentSizeChange: handleScrollViewContentSizeChange,
286
+ onScroll: handleScrollViewScroll,
287
+ scrollEventThrottle: 16,
288
+ children: listTrack
289
+ });
290
+ const wrapSolidScrollShell = scrollArea => isSolidHorizontalScroll ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
291
+ className: (0, _utils.cn)((0, _styles.tabsListSolidShellVariants)()),
292
+ style: _styles.tabsStyles.solidShell,
293
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
294
+ pointerEvents: "none",
295
+ className: (0, _utils.cn)((0, _styles.tabsListSolidShellBgVariants)()),
296
+ style: _styles.tabsStyles.solidTrack
297
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
298
+ className: "relative z-10 min-w-0",
299
+ children: scrollArea
300
+ })]
301
+ }) : scrollArea;
302
+ const renderSolidScrollChevron = (position, direction) => {
303
+ const canScroll = position === 'start' ? scrollCapability.canScrollBefore : scrollCapability.canScrollAfter;
304
+ if (!canScroll) {
305
+ return null;
306
+ }
307
+ const IconComponent = position === 'start' ? _icons.ChevronLeft : _icons.ChevronRight;
308
+ const label = position === 'start' ? 'Scroll tabs left' : 'Scroll tabs right';
309
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
310
+ pointerEvents: "box-none",
311
+ className: (0, _utils.cn)((0, _styles.tabsListSolidScrollButtonSlotVariants)({
312
+ position
313
+ })),
314
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
315
+ accessibilityLabel: label,
316
+ accessibilityRole: "button",
317
+ className: (0, _utils.cn)((0, _styles.tabsListSolidScrollButtonVariants)()),
318
+ tabIndex: -1,
319
+ onPress: () => scrollTabsByPage(direction),
320
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
321
+ as: IconComponent,
322
+ className: "size-5 text-content-secondary"
323
+ })
324
+ })
325
+ });
326
+ };
327
+ const solidWebHorizontalScroll = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
328
+ className: "relative min-w-0 w-full",
329
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ScrollShadow.ScrollShadow, {
330
+ hideScrollBar: true,
331
+ orientation: "horizontal",
332
+ size: _styles.TABS_SOLID_SCROLL_FADE_SIZE,
333
+ fadeFromClassName: "from-surface-secondary",
334
+ onCapabilityChange: setScrollCapability,
335
+ children: horizontalScrollView
336
+ }), renderSolidScrollChevron('start', -1), renderSolidScrollChevron('end', 1)]
337
+ });
338
+ const outlineWebHorizontalScroll = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
339
+ className: "w-full min-w-0 flex-row items-stretch",
340
+ children: [scrollCapability.canScrollBefore ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
341
+ accessibilityLabel: "Scroll tabs left",
342
+ accessibilityRole: "button",
343
+ className: (0, _utils.cn)((0, _styles.tabsListScrollButtonVariants)()),
344
+ tabIndex: -1,
345
+ onPress: () => scrollTabsByPage(-1),
346
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
347
+ as: _icons.ChevronLeft,
348
+ className: "size-4 text-content-secondary"
349
+ })
350
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
351
+ className: "min-w-0 flex-1",
352
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScrollShadow.ScrollShadow, {
353
+ hideScrollBar: true,
354
+ orientation: "horizontal",
355
+ size: _styles.TABS_SCROLL_FADE_SIZE,
356
+ fadeFromClassName: "from-background/85",
357
+ onCapabilityChange: setScrollCapability,
358
+ children: horizontalScrollView
359
+ })
360
+ }), scrollCapability.canScrollAfter ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
361
+ accessibilityLabel: "Scroll tabs right",
362
+ accessibilityRole: "button",
363
+ className: (0, _utils.cn)((0, _styles.tabsListScrollButtonVariants)()),
364
+ tabIndex: -1,
365
+ onPress: () => scrollTabsByPage(1),
366
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
367
+ as: _icons.ChevronRight,
368
+ className: "size-4 text-content-secondary"
369
+ })
370
+ }) : null]
371
+ });
372
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(TabsIndicatorProvider, {
373
+ value: {
374
+ reportLayout,
375
+ clearLayout,
376
+ variant
377
+ },
378
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.TabsList, {
379
+ ref: ref,
380
+ asChild: asChild,
381
+ className: (0, _utils.cn)((0, _styles.tabsListVariants)(), className),
382
+ style: style,
383
+ ...props,
384
+ ...(0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
385
+ slot: 'tabs-list'
386
+ })),
387
+ children: isWebHorizontalScroll ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
388
+ className: (0, _utils.cn)((0, _styles.tabsListScrollContainerVariants)()),
389
+ children: wrapSolidScrollShell(isSolidHorizontalScroll ? solidWebHorizontalScroll : outlineWebHorizontalScroll)
390
+ }) : isHorizontalScroll ? wrapSolidScrollShell(horizontalScrollView) : listTrack
391
+ })
392
+ });
393
+ });
394
+ TabsList.displayName = 'Tabs.List';
395
+
396
+ // =============================================================================
397
+ // STYLED TAB
398
+ // =============================================================================
399
+
400
+ const TabsTab = /*#__PURE__*/(0, _react.forwardRef)(({
401
+ asChild,
402
+ className,
403
+ style,
404
+ children,
405
+ value: tabValue,
406
+ onLayout,
407
+ ...props
408
+ }, ref) => {
409
+ const {
410
+ reportLayout,
411
+ clearLayout,
412
+ variant
413
+ } = useTabsIndicatorContext();
414
+ const {
415
+ orientation
416
+ } = (0, _primitives.useTabsContext)();
417
+ (0, _react.useEffect)(() => {
418
+ return () => clearLayout(tabValue);
419
+ }, [tabValue, clearLayout]);
420
+ const handleLayout = (0, _react.useCallback)(e => {
421
+ onLayout?.(e);
422
+ const {
423
+ x,
424
+ y,
425
+ width,
426
+ height
427
+ } = e.nativeEvent.layout;
428
+ reportLayout(tabValue, {
429
+ x,
430
+ y,
431
+ width,
432
+ height
433
+ });
434
+ }, [onLayout, reportLayout, tabValue]);
435
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.Tab, {
436
+ ref: ref,
437
+ asChild: asChild,
438
+ value: tabValue,
439
+ className: (0, _utils.cn)((0, _styles.tabsTabVariants)({
440
+ orientation,
441
+ variant
442
+ }), className),
443
+ style: variant === 'solid' ? state => _reactNative.StyleSheet.flatten([_styles.tabsStyles.solidTabPressable, typeof style === 'function' ? style(state) : style]) : style,
444
+ onLayout: handleLayout,
445
+ ...props,
446
+ ...(0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
447
+ slot: 'tabs-tab'
448
+ })),
449
+ children: children
450
+ });
451
+ });
452
+ TabsTab.displayName = 'Tabs.Tab';
453
+
454
+ // =============================================================================
455
+ // STYLED TAB LABEL (styled-only, reads tab context for selected state)
456
+ // =============================================================================
457
+
458
+ const TabsTabLabel = /*#__PURE__*/(0, _react.forwardRef)(({
459
+ asChild,
460
+ className,
461
+ style,
462
+ children,
463
+ ...props
464
+ }, ref) => {
465
+ const {
466
+ selected
467
+ } = (0, _primitives.useTabContext)();
468
+ const Comp = asChild ? _primitives.Slot : _reactNative.Text;
469
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Comp, {
470
+ ref: ref,
471
+ className: (0, _utils.cn)((0, _styles.tabsTabLabelVariants)({
472
+ state: selected ? 'active' : 'inactive'
473
+ }), className),
474
+ style: style,
475
+ ...props,
476
+ ...(0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
477
+ slot: 'tabs-tab-label',
478
+ state: selected ? 'active' : 'inactive'
479
+ })),
480
+ children: children
481
+ });
482
+ });
483
+ TabsTabLabel.displayName = 'Tabs.TabLabel';
484
+
485
+ // =============================================================================
486
+ // STYLED PANEL
487
+ // =============================================================================
488
+
489
+ const TabsPanel = /*#__PURE__*/(0, _react.forwardRef)(({
490
+ asChild,
491
+ className,
492
+ style,
493
+ children,
494
+ ...props
495
+ }, ref) => {
496
+ const {
497
+ orientation
498
+ } = (0, _primitives.useTabsContext)();
499
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.TabPanel, {
500
+ ref: ref,
501
+ asChild: asChild,
502
+ className: (0, _utils.cn)((0, _styles.tabsPanelVariants)({
503
+ orientation
504
+ }), className),
505
+ style: style,
506
+ ...props,
507
+ ...(0, _primitives.mergeDataAttributes)(props, (0, _primitives.dataAttributes)({
508
+ slot: 'tabs-panel'
509
+ })),
510
+ children: children
511
+ });
512
+ });
513
+ TabsPanel.displayName = 'Tabs.Panel';
514
+
515
+ // =============================================================================
516
+ // COMPOUND COMPONENT
517
+ // =============================================================================
518
+
519
+ const Tabs = exports.Tabs = Object.assign(TabsRoot, {
520
+ List: TabsList,
521
+ Tab: TabsTab,
522
+ TabLabel: TabsTabLabel,
523
+ Panel: TabsPanel
524
+ });
525
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_interopRequireWildcard","_icons","_primitives","_utils","_Icon","_ScrollShadow","_styles","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","scrollXToRevealTab","layout","viewportWidth","currentScrollX","tabStart","x","tabEnd","width","viewEnd","clampScrollX","scrollX","contentWidth","maxScrollX","Math","max","min","TabsIndicatorProvider","useTabsIndicatorContext","createContext","TabsVariantProvider","useTabsVariantContext","TabsRoot","forwardRef","className","style","children","variant","orientation","props","ref","jsx","value","cn","tabsRootVariants","mergeDataAttributes","dataAttributes","slot","displayName","TabsList","asChild","scrollable","showsHorizontalScrollIndicator","getTabs","useTabsContext","isHorizontalScroll","isWebHorizontalScroll","Platform","OS","shouldAutoScrollActiveTab","layoutsRef","useRef","Map","hasMeasuredRef","scrollRef","scrollViewWidthRef","scrollContentWidthRef","scrollXRef","scrollCapability","setScrollCapability","useState","canScrollBefore","canScrollAfter","translateX","useSharedValue","translateY","height","scrollActiveTabIntoView","useCallback","activeTabValue","current","undefined","nextScrollX","tabOrder","map","tabValue","activeIndex","indexOf","length","nextLayout","nextTabEnd","prevLayout","scrollTo","animated","retryScrollActiveTabIntoView","scrollTabsByPage","direction","applyLayout","nextX","nextY","y","nextW","nextH","OUTLINE_INDICATOR_THICKNESS","config","duration","TABS_INDICATOR_TRANSITION_MS","withTiming","reportLayout","clearLayout","delete","useLayoutEffect","indicatorAnimatedStyle","useAnimatedStyle","transform","isSolidHorizontalScroll","trackClassName","tabsListTrackVariants","trackStyle","tabsStyles","solidTrackVertical","solidTrack","handleScrollViewLayout","event","nativeEvent","handleScrollViewContentSizeChange","handleScrollViewScroll","contentOffset","listTrack","jsxs","View","pointerEvents","tabsOutlineTrackVariants","tabsIndicatorVariants","outlineIndicator","outlineIndicatorVertical","outlineIndicatorHorizontal","solidIndicator","horizontalScrollView","ScrollView","horizontal","keyboardShouldPersistTaps","tabsListScrollViewVariants","horizontalScrollViewBleed","contentContainerStyle","horizontalScrollContent","onLayout","onContentSizeChange","onScroll","scrollEventThrottle","wrapSolidScrollShell","scrollArea","tabsListSolidShellVariants","solidShell","tabsListSolidShellBgVariants","renderSolidScrollChevron","position","canScroll","IconComponent","ChevronLeft","ChevronRight","label","tabsListSolidScrollButtonSlotVariants","Pressable","accessibilityLabel","accessibilityRole","tabsListSolidScrollButtonVariants","tabIndex","onPress","Icon","as","solidWebHorizontalScroll","ScrollShadow","hideScrollBar","size","TABS_SOLID_SCROLL_FADE_SIZE","fadeFromClassName","onCapabilityChange","outlineWebHorizontalScroll","tabsListScrollButtonVariants","TABS_SCROLL_FADE_SIZE","tabsListVariants","tabsListScrollContainerVariants","TabsTab","useEffect","handleLayout","Tab","tabsTabVariants","state","StyleSheet","flatten","solidTabPressable","TabsTabLabel","selected","useTabContext","Comp","Slot","Text","tabsTabLabelVariants","TabsPanel","TabPanel","tabsPanelVariants","Tabs","exports","assign","List","TabLabel","Panel"],"sourceRoot":"../../../../src","sources":["components/Tabs/index.tsx"],"mappings":"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","ignoreList":[]}