@cdx-ui/components 0.0.1-beta.137 → 0.0.1-beta.139
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/lib/commonjs/components/Carousel/context.js +13 -0
- package/lib/commonjs/components/Carousel/context.js.map +1 -0
- package/lib/commonjs/components/Carousel/index.js +12 -7
- package/lib/commonjs/components/Carousel/index.js.map +1 -1
- package/lib/commonjs/components/Carousel/navButton.js +119 -0
- package/lib/commonjs/components/Carousel/navButton.js.map +1 -0
- package/lib/commonjs/components/Carousel/styles.js +24 -1
- package/lib/commonjs/components/Carousel/styles.js.map +1 -1
- package/lib/commonjs/components/Carousel/useCarouselActiveIndex.js +52 -0
- package/lib/commonjs/components/Carousel/useCarouselActiveIndex.js.map +1 -0
- package/lib/commonjs/components/Icon/index.js +1 -1
- package/lib/commonjs/components/Icon/index.js.map +1 -1
- package/lib/commonjs/components/IconButton/index.js +4 -2
- package/lib/commonjs/components/IconButton/index.js.map +1 -1
- package/lib/module/components/Carousel/context.js +7 -0
- package/lib/module/components/Carousel/context.js.map +1 -0
- package/lib/module/components/Carousel/index.js +11 -6
- package/lib/module/components/Carousel/index.js.map +1 -1
- package/lib/module/components/Carousel/navButton.js +114 -0
- package/lib/module/components/Carousel/navButton.js.map +1 -0
- package/lib/module/components/Carousel/styles.js +23 -0
- package/lib/module/components/Carousel/styles.js.map +1 -1
- package/lib/module/components/Carousel/useCarouselActiveIndex.js +48 -0
- package/lib/module/components/Carousel/useCarouselActiveIndex.js.map +1 -0
- package/lib/module/components/Icon/index.js +1 -1
- package/lib/module/components/Icon/index.js.map +1 -1
- package/lib/module/components/IconButton/index.js +4 -2
- package/lib/module/components/IconButton/index.js.map +1 -1
- package/lib/typescript/components/Carousel/context.d.ts +15 -0
- package/lib/typescript/components/Carousel/context.d.ts.map +1 -0
- package/lib/typescript/components/Carousel/index.d.ts +5 -2
- package/lib/typescript/components/Carousel/index.d.ts.map +1 -1
- package/lib/typescript/components/Carousel/navButton.d.ts +40 -0
- package/lib/typescript/components/Carousel/navButton.d.ts.map +1 -0
- package/lib/typescript/components/Carousel/styles.d.ts +8 -0
- package/lib/typescript/components/Carousel/styles.d.ts.map +1 -1
- package/lib/typescript/components/Carousel/useCarouselActiveIndex.d.ts +12 -0
- package/lib/typescript/components/Carousel/useCarouselActiveIndex.d.ts.map +1 -0
- package/lib/typescript/components/Icon/index.d.ts +3 -10
- package/lib/typescript/components/Icon/index.d.ts.map +1 -1
- package/lib/typescript/components/IconButton/index.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/components/Carousel/context.ts +15 -0
- package/src/components/Carousel/index.tsx +18 -13
- package/src/components/Carousel/navButton.tsx +160 -0
- package/src/components/Carousel/styles.ts +27 -0
- package/src/components/Carousel/useCarouselActiveIndex.ts +54 -0
- package/src/components/Icon/index.tsx +3 -10
- package/src/components/IconButton/index.tsx +5 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useCarouselProgressContext = exports.CarouselProgressProvider = void 0;
|
|
7
|
+
var _utils = require("@cdx-ui/utils");
|
|
8
|
+
const [CarouselProgressProvider, useCarouselProgressContext] = (0, _utils.createContext)('CarouselProgress', {
|
|
9
|
+
strict: false
|
|
10
|
+
});
|
|
11
|
+
exports.useCarouselProgressContext = useCarouselProgressContext;
|
|
12
|
+
exports.CarouselProgressProvider = CarouselProgressProvider;
|
|
13
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_utils","require","CarouselProgressProvider","useCarouselProgressContext","createContext","strict","exports"],"sourceRoot":"../../../../src","sources":["components/Carousel/context.ts"],"mappings":";;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AAUO,MAAM,CAACC,wBAAwB,EAAEC,0BAA0B,CAAC,GACjE,IAAAC,oBAAa,EAAuB,kBAAkB,EAAE;EAAEC,MAAM,EAAE;AAAM,CAAC,CAAC;AAACC,OAAA,CAAAH,0BAAA,GAAAA,0BAAA;AAAAG,OAAA,CAAAJ,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|
|
@@ -10,6 +10,8 @@ var _reactNativeReanimated = require("react-native-reanimated");
|
|
|
10
10
|
var _reactNativeReanimatedCarousel = _interopRequireWildcard(require("react-native-reanimated-carousel"));
|
|
11
11
|
var _uniwind = require("uniwind");
|
|
12
12
|
var _utils = require("@cdx-ui/utils");
|
|
13
|
+
var _context = require("./context");
|
|
14
|
+
var _navButton = require("./navButton");
|
|
13
15
|
var _paginationNavigation = require("./paginationNavigation");
|
|
14
16
|
var _styles = require("./styles");
|
|
15
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -23,9 +25,6 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
|
|
|
23
25
|
|
|
24
26
|
/** Mirrors the adopted library's private `DotStyle` shape (not exported) without importing it. */
|
|
25
27
|
|
|
26
|
-
const [CarouselProgressProvider, useCarouselProgressContext] = (0, _utils.createContext)('CarouselProgress', {
|
|
27
|
-
strict: false
|
|
28
|
-
});
|
|
29
28
|
function isSharedValueProgress(value) {
|
|
30
29
|
return typeof value === 'object' && value !== null && 'value' in value;
|
|
31
30
|
}
|
|
@@ -41,6 +40,8 @@ function CarouselInner({
|
|
|
41
40
|
const internalRef = (0, _react.useRef)(null);
|
|
42
41
|
const internalProgress = (0, _reactNativeReanimated.useSharedValue)(defaultIndex);
|
|
43
42
|
const resolvedClassNameStyle = (0, _uniwind.useResolveClassNames)((0, _utils.cn)(className));
|
|
43
|
+
const vertical = rest.vertical ?? false;
|
|
44
|
+
const itemCount = rest.data.length;
|
|
44
45
|
const handleProgressChange = (0, _react.useCallback)((offsetProgress, absoluteProgress) => {
|
|
45
46
|
internalProgress.value = absoluteProgress;
|
|
46
47
|
if (typeof onProgressChange === 'function') {
|
|
@@ -51,9 +52,11 @@ function CarouselInner({
|
|
|
51
52
|
const contextValue = {
|
|
52
53
|
progress: consumerProgress ?? internalProgress,
|
|
53
54
|
carouselRef: internalRef,
|
|
54
|
-
loop
|
|
55
|
+
loop,
|
|
56
|
+
itemCount,
|
|
57
|
+
vertical
|
|
55
58
|
};
|
|
56
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(CarouselProgressProvider, {
|
|
59
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_context.CarouselProgressProvider, {
|
|
57
60
|
value: contextValue,
|
|
58
61
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimatedCarousel.default, {
|
|
59
62
|
ref: (0, _utils.mergeRefs)(ref, internalRef),
|
|
@@ -82,7 +85,7 @@ function CarouselPaginationComponent({
|
|
|
82
85
|
// `strict: false` with no `defaultValue` means this returns `undefined` outside a
|
|
83
86
|
// `<Carousel>` provider at runtime; cast to communicate that to TypeScript, since
|
|
84
87
|
// `createContext`'s helper type always reports `T` (see `@cdx-ui/utils`).
|
|
85
|
-
const context = useCarouselProgressContext();
|
|
88
|
+
const context = (0, _context.useCarouselProgressContext)();
|
|
86
89
|
const progress = progressProp ?? context?.progress;
|
|
87
90
|
const carouselRef = carouselRefProp ?? context?.carouselRef;
|
|
88
91
|
const loop = loopProp ?? context?.loop ?? true;
|
|
@@ -131,7 +134,9 @@ function CarouselPaginationComponent({
|
|
|
131
134
|
CarouselPaginationComponent.displayName = 'Carousel.Pagination';
|
|
132
135
|
const CarouselPagination = CarouselPaginationComponent;
|
|
133
136
|
const Carousel = exports.Carousel = Object.assign(CarouselRoot, {
|
|
134
|
-
Pagination: CarouselPagination
|
|
137
|
+
Pagination: CarouselPagination,
|
|
138
|
+
PrevButton: _navButton.CarouselPrevButton,
|
|
139
|
+
NextButton: _navButton.CarouselNextButton
|
|
135
140
|
});
|
|
136
141
|
|
|
137
142
|
// =============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNativeReanimated","_reactNativeReanimatedCarousel","_interopRequireWildcard","_uniwind","_utils","_paginationNavigation","_styles","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","_reactNativeReanimatedCarousel","_interopRequireWildcard","_uniwind","_utils","_context","_navButton","_paginationNavigation","_styles","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isSharedValueProgress","value","CarouselInner","className","style","onProgressChange","children","loop","defaultIndex","rest","ref","internalRef","useRef","internalProgress","useSharedValue","resolvedClassNameStyle","useResolveClassNames","cn","vertical","itemCount","data","length","handleProgressChange","useCallback","offsetProgress","absoluteProgress","consumerProgress","undefined","contextValue","progress","carouselRef","jsxs","CarouselProgressProvider","jsx","mergeRefs","CarouselRoot","forwardRef","CarouselPaginationComponent","progressProp","carouselRefProp","loopProp","onPress","context","useCarouselProgressContext","Error","handlePress","index","carousel","current","scrollAction","resolveCarouselPaginationScrollAction","getCurrentIndex","scrollTo","containerStyle","carouselPaginationContainerClassName","dotStyle","carouselPaginationDotVariants","active","activeDotStyle","Pagination","Custom","width","height","displayName","CarouselPagination","Carousel","exports","assign","PrevButton","CarouselPrevButton","NextButton","CarouselNextButton","useCarousel","options","next","opts","prev"],"sourceRoot":"../../../../src","sources":["components/Carousel/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CarouselNextButton = CarouselNextButton;
|
|
7
|
+
exports.CarouselPrevButton = CarouselPrevButton;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _icons = require("@cdx-ui/icons");
|
|
10
|
+
var _primitives = require("@cdx-ui/primitives");
|
|
11
|
+
var _utils = require("@cdx-ui/utils");
|
|
12
|
+
var _IconButton = require("../IconButton");
|
|
13
|
+
var _context = require("./context");
|
|
14
|
+
var _styles = require("./styles");
|
|
15
|
+
var _useCarouselActiveIndex = require("./useCarouselActiveIndex");
|
|
16
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
+
function resolveDefaultIcon(vertical, direction) {
|
|
18
|
+
if (vertical) {
|
|
19
|
+
return direction === 'prev' ? _icons.KeyboardArrowUp : _icons.KeyboardArrowDown;
|
|
20
|
+
}
|
|
21
|
+
return direction === 'prev' ? _icons.ChevronLeft : _icons.ChevronRight;
|
|
22
|
+
}
|
|
23
|
+
function resolveDefaultAccessibilityLabel(vertical, direction) {
|
|
24
|
+
if (vertical) {
|
|
25
|
+
return direction === 'prev' ? 'Previous item' : 'Next item';
|
|
26
|
+
}
|
|
27
|
+
return direction === 'prev' ? 'Previous slide' : 'Next slide';
|
|
28
|
+
}
|
|
29
|
+
function CarouselNavButton({
|
|
30
|
+
direction,
|
|
31
|
+
progress: progressProp,
|
|
32
|
+
carouselRef: carouselRefProp,
|
|
33
|
+
itemCount: itemCountProp,
|
|
34
|
+
loop: loopProp,
|
|
35
|
+
vertical: verticalProp,
|
|
36
|
+
onPress,
|
|
37
|
+
disabled: disabledProp,
|
|
38
|
+
as,
|
|
39
|
+
accessibilityLabel,
|
|
40
|
+
color = 'neutral',
|
|
41
|
+
size = 'default',
|
|
42
|
+
className,
|
|
43
|
+
iconClassName,
|
|
44
|
+
...iconButtonProps
|
|
45
|
+
}) {
|
|
46
|
+
const context = (0, _context.useCarouselProgressContext)();
|
|
47
|
+
const progress = progressProp ?? context?.progress;
|
|
48
|
+
const carouselRef = carouselRefProp ?? context?.carouselRef;
|
|
49
|
+
const itemCount = itemCountProp ?? context?.itemCount;
|
|
50
|
+
const loop = loopProp ?? context?.loop ?? true;
|
|
51
|
+
const vertical = verticalProp ?? context?.vertical ?? false;
|
|
52
|
+
if (!progress) {
|
|
53
|
+
throw new Error(`Carousel.${direction === 'prev' ? 'PrevButton' : 'NextButton'} must be rendered inside <Carousel> or receive an explicit \`progress\` prop.`);
|
|
54
|
+
}
|
|
55
|
+
if (!onPress && !carouselRef) {
|
|
56
|
+
throw new Error(`Carousel.${direction === 'prev' ? 'PrevButton' : 'NextButton'} must be rendered inside <Carousel> or receive an explicit \`carouselRef\` prop (or a custom \`onPress\`).`);
|
|
57
|
+
}
|
|
58
|
+
if (itemCount == null) {
|
|
59
|
+
throw new Error(`Carousel.${direction === 'prev' ? 'PrevButton' : 'NextButton'} must be rendered inside <Carousel> or receive an explicit \`itemCount\` prop.`);
|
|
60
|
+
}
|
|
61
|
+
const activeIndex = (0, _useCarouselActiveIndex.useCarouselActiveIndex)(progress);
|
|
62
|
+
const atStart = activeIndex <= 0;
|
|
63
|
+
const atEnd = activeIndex >= itemCount - 1;
|
|
64
|
+
const autoDisabled = !loop && (direction === 'prev' ? atStart : atEnd);
|
|
65
|
+
const disabled = disabledProp ?? autoDisabled;
|
|
66
|
+
const handlePress = (0, _react.useCallback)(() => {
|
|
67
|
+
if (onPress) {
|
|
68
|
+
onPress();
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (direction === 'prev') {
|
|
72
|
+
carouselRef?.current?.prev({
|
|
73
|
+
animated: true
|
|
74
|
+
});
|
|
75
|
+
} else {
|
|
76
|
+
carouselRef?.current?.next({
|
|
77
|
+
animated: true
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}, [onPress, carouselRef, direction]);
|
|
81
|
+
const dataSlot = direction === 'prev' ? 'carousel-prev-button' : 'carousel-next-button';
|
|
82
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.IconButton, {
|
|
83
|
+
as: as ?? resolveDefaultIcon(vertical, direction),
|
|
84
|
+
variant: "ghost",
|
|
85
|
+
color: color,
|
|
86
|
+
size: size,
|
|
87
|
+
isDisabled: disabled,
|
|
88
|
+
onPress: handlePress,
|
|
89
|
+
accessibilityLabel: accessibilityLabel ?? resolveDefaultAccessibilityLabel(vertical, direction),
|
|
90
|
+
accessibilityState: {
|
|
91
|
+
disabled
|
|
92
|
+
},
|
|
93
|
+
className: (0, _utils.cn)((0, _styles.carouselNavButtonRootVariants)({
|
|
94
|
+
disabled
|
|
95
|
+
}), className),
|
|
96
|
+
iconClassName: (0, _utils.cn)((0, _styles.carouselNavButtonIconVariants)({
|
|
97
|
+
disabled
|
|
98
|
+
}), iconClassName),
|
|
99
|
+
...iconButtonProps,
|
|
100
|
+
...(0, _primitives.mergeDataAttributes)(iconButtonProps, (0, _primitives.dataAttributes)({
|
|
101
|
+
slot: dataSlot
|
|
102
|
+
}))
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
function CarouselPrevButton(props) {
|
|
106
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(CarouselNavButton, {
|
|
107
|
+
direction: "prev",
|
|
108
|
+
...props
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
CarouselPrevButton.displayName = 'Carousel.PrevButton';
|
|
112
|
+
function CarouselNextButton(props) {
|
|
113
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(CarouselNavButton, {
|
|
114
|
+
direction: "next",
|
|
115
|
+
...props
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
CarouselNextButton.displayName = 'Carousel.NextButton';
|
|
119
|
+
//# sourceMappingURL=navButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_icons","_primitives","_utils","_IconButton","_context","_styles","_useCarouselActiveIndex","_jsxRuntime","resolveDefaultIcon","vertical","direction","KeyboardArrowUp","KeyboardArrowDown","ChevronLeft","ChevronRight","resolveDefaultAccessibilityLabel","CarouselNavButton","progress","progressProp","carouselRef","carouselRefProp","itemCount","itemCountProp","loop","loopProp","verticalProp","onPress","disabled","disabledProp","as","accessibilityLabel","color","size","className","iconClassName","iconButtonProps","context","useCarouselProgressContext","Error","activeIndex","useCarouselActiveIndex","atStart","atEnd","autoDisabled","handlePress","useCallback","current","prev","animated","next","dataSlot","jsx","IconButton","variant","isDisabled","accessibilityState","cn","carouselNavButtonRootVariants","carouselNavButtonIconVariants","mergeDataAttributes","dataAttributes","slot","CarouselPrevButton","props","displayName","CarouselNextButton"],"sourceRoot":"../../../../src","sources":["components/Carousel/navButton.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.carouselPaginationDotVariants = exports.carouselPaginationContainerClassName = void 0;
|
|
6
|
+
exports.carouselPaginationDotVariants = exports.carouselPaginationContainerClassName = exports.carouselNavButtonRootVariants = exports.carouselNavButtonIconVariants = void 0;
|
|
7
7
|
var _classVarianceAuthority = require("class-variance-authority");
|
|
8
8
|
/** Small default gap between dots — the library ships no default spacing between pagination items. */
|
|
9
9
|
const carouselPaginationContainerClassName = exports.carouselPaginationContainerClassName = 'gap-2 py-1';
|
|
@@ -18,4 +18,27 @@ const carouselPaginationDotVariants = exports.carouselPaginationDotVariants = (0
|
|
|
18
18
|
active: false
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
|
+
/** Overrides IconButton's default disabled opacity so tertiary icon color reads clearly at bounds. */
|
|
22
|
+
const carouselNavButtonRootVariants = exports.carouselNavButtonRootVariants = (0, _classVarianceAuthority.cva)([], {
|
|
23
|
+
variants: {
|
|
24
|
+
disabled: {
|
|
25
|
+
true: 'data-[disabled=true]:opacity-100',
|
|
26
|
+
false: ''
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
defaultVariants: {
|
|
30
|
+
disabled: false
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
const carouselNavButtonIconVariants = exports.carouselNavButtonIconVariants = (0, _classVarianceAuthority.cva)([], {
|
|
34
|
+
variants: {
|
|
35
|
+
disabled: {
|
|
36
|
+
true: 'text-content-tertiary',
|
|
37
|
+
false: ''
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
defaultVariants: {
|
|
41
|
+
disabled: false
|
|
42
|
+
}
|
|
43
|
+
});
|
|
21
44
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classVarianceAuthority","require","carouselPaginationContainerClassName","exports","carouselPaginationDotVariants","cva","variants","active","true","false","defaultVariants"],"sourceRoot":"../../../../src","sources":["components/Carousel/styles.ts"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AAEA;AACO,MAAMC,oCAAoC,GAAAC,OAAA,CAAAD,oCAAA,GAAG,YAAY;AAEzD,MAAME,6BAA6B,GAAAD,OAAA,CAAAC,6BAAA,GAAG,IAAAC,2BAAG,EAAC,cAAc,EAAE;EAC/DC,QAAQ,EAAE;IACRC,MAAM,EAAE;MACNC,IAAI,EAAE,2BAA2B;MACjCC,KAAK,EAAE;IACT;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_classVarianceAuthority","require","carouselPaginationContainerClassName","exports","carouselPaginationDotVariants","cva","variants","active","true","false","defaultVariants","carouselNavButtonRootVariants","disabled","carouselNavButtonIconVariants"],"sourceRoot":"../../../../src","sources":["components/Carousel/styles.ts"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AAEA;AACO,MAAMC,oCAAoC,GAAAC,OAAA,CAAAD,oCAAA,GAAG,YAAY;AAEzD,MAAME,6BAA6B,GAAAD,OAAA,CAAAC,6BAAA,GAAG,IAAAC,2BAAG,EAAC,cAAc,EAAE;EAC/DC,QAAQ,EAAE;IACRC,MAAM,EAAE;MACNC,IAAI,EAAE,2BAA2B;MACjCC,KAAK,EAAE;IACT;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAIF;AACO,MAAMI,6BAA6B,GAAAR,OAAA,CAAAQ,6BAAA,GAAG,IAAAN,2BAAG,EAAC,EAAE,EAAE;EACnDC,QAAQ,EAAE;IACRM,QAAQ,EAAE;MACRJ,IAAI,EAAE,kCAAkC;MACxCC,KAAK,EAAE;IACT;EACF,CAAC;EACDC,eAAe,EAAE;IACfE,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAEK,MAAMC,6BAA6B,GAAAV,OAAA,CAAAU,6BAAA,GAAG,IAAAR,2BAAG,EAAC,EAAE,EAAE;EACnDC,QAAQ,EAAE;IACRM,QAAQ,EAAE;MACRJ,IAAI,EAAE,uBAAuB;MAC7BC,KAAK,EAAE;IACT;EACF,CAAC;EACDC,eAAe,EAAE;IACfE,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useCarouselActiveIndex = useCarouselActiveIndex;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
9
|
+
var _reactNativeWorklets = require("react-native-worklets");
|
|
10
|
+
let nextListenerId = 1;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Syncs `Math.round(progress)` into React state for bounds-aware disabled state.
|
|
14
|
+
* Do not call `getCurrentIndex()` during render — the adopted library warns against it.
|
|
15
|
+
*
|
|
16
|
+
* Uses both:
|
|
17
|
+
* - `useAnimatedReaction` + `scheduleOnRN` (native / Babel-transformed web worklets)
|
|
18
|
+
* - SharedValue `addListener` (JS-thread fallback for web hosts that serve bob-built
|
|
19
|
+
* `lib/` without the Reanimated Babel plugin — e.g. the docs Vite SPA)
|
|
20
|
+
*/
|
|
21
|
+
function useCarouselActiveIndex(progress) {
|
|
22
|
+
const [activeIndex, setActiveIndex] = (0, _react.useState)(() => Math.round(progress.get()));
|
|
23
|
+
const setActiveIndexRef = (0, _react.useRef)(setActiveIndex);
|
|
24
|
+
setActiveIndexRef.current = setActiveIndex;
|
|
25
|
+
(0, _reactNativeReanimated.useAnimatedReaction)(() => Math.round(progress.get()), (current, previous) => {
|
|
26
|
+
if (current !== previous) {
|
|
27
|
+
(0, _reactNativeWorklets.scheduleOnRN)(setActiveIndexRef.current, current);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
(0, _react.useEffect)(() => {
|
|
31
|
+
const listenerId = nextListenerId++;
|
|
32
|
+
const onChange = value => {
|
|
33
|
+
const next = Math.round(value);
|
|
34
|
+
setActiveIndexRef.current(prev => prev === next ? prev : next);
|
|
35
|
+
};
|
|
36
|
+
try {
|
|
37
|
+
progress.addListener(listenerId, onChange);
|
|
38
|
+
} catch {
|
|
39
|
+
// Native JS runtime rejects addListener — the worklet path above handles it.
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
return () => {
|
|
43
|
+
try {
|
|
44
|
+
progress.removeListener(listenerId);
|
|
45
|
+
} catch {
|
|
46
|
+
// ignore
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}, [progress]);
|
|
50
|
+
return activeIndex;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=useCarouselActiveIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","_reactNativeWorklets","nextListenerId","useCarouselActiveIndex","progress","activeIndex","setActiveIndex","useState","Math","round","get","setActiveIndexRef","useRef","current","useAnimatedReaction","previous","scheduleOnRN","useEffect","listenerId","onChange","value","next","prev","addListener","removeListener"],"sourceRoot":"../../../../src","sources":["components/Carousel/useCarouselActiveIndex.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AAEA,IAAIG,cAAc,GAAG,CAAC;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,sBAAsBA,CAACC,QAA6B,EAAU;EAC5E,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAMC,IAAI,CAACC,KAAK,CAACL,QAAQ,CAACM,GAAG,CAAC,CAAC,CAAC,CAAC;EAChF,MAAMC,iBAAiB,GAAG,IAAAC,aAAM,EAACN,cAAc,CAAC;EAChDK,iBAAiB,CAACE,OAAO,GAAGP,cAAc;EAE1C,IAAAQ,0CAAmB,EACjB,MAAMN,IAAI,CAACC,KAAK,CAACL,QAAQ,CAACM,GAAG,CAAC,CAAC,CAAC,EAChC,CAACG,OAAO,EAAEE,QAAQ,KAAK;IACrB,IAAIF,OAAO,KAAKE,QAAQ,EAAE;MACxB,IAAAC,iCAAY,EAACL,iBAAiB,CAACE,OAAO,EAAEA,OAAO,CAAC;IAClD;EACF,CACF,CAAC;EAED,IAAAI,gBAAS,EAAC,MAAM;IACd,MAAMC,UAAU,GAAGhB,cAAc,EAAE;IACnC,MAAMiB,QAAQ,GAAIC,KAAa,IAAK;MAClC,MAAMC,IAAI,GAAGb,IAAI,CAACC,KAAK,CAACW,KAAK,CAAC;MAC9BT,iBAAiB,CAACE,OAAO,CAAES,IAAI,IAAMA,IAAI,KAAKD,IAAI,GAAGC,IAAI,GAAGD,IAAK,CAAC;IACpE,CAAC;IAED,IAAI;MACFjB,QAAQ,CAACmB,WAAW,CAACL,UAAU,EAAEC,QAAQ,CAAC;IAC5C,CAAC,CAAC,MAAM;MACN;MACA;IACF;IAEA,OAAO,MAAM;MACX,IAAI;QACFf,QAAQ,CAACoB,cAAc,CAACN,UAAU,CAAC;MACrC,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ,CAAC;EACH,CAAC,EAAE,CAACd,QAAQ,CAAC,CAAC;EAEd,OAAOC,WAAW;AACpB","ignoreList":[]}
|
|
@@ -49,7 +49,7 @@ const StyledIcon = (0, _uniwind.withUniwind)((0, _uniwind.withUniwind)(IconImpl)
|
|
|
49
49
|
* <Icon as={ArrowRight} className="text-red-500 size-4" />
|
|
50
50
|
* ```
|
|
51
51
|
*
|
|
52
|
-
* @param {ForgeIcon
|
|
52
|
+
* @param {ForgeIcon} as - The Forge icon component to render.
|
|
53
53
|
* @param {string} className - Utility classes to style the icon using Uniwind.
|
|
54
54
|
* @param {number} size - Icon size (overrides the size class).
|
|
55
55
|
* @param {...ForgeIconProps} ...props - Additional icon props passed to the "as" icon.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_uniwind","require","_utils","_jsxRuntime","IconImpl","as","IconComponent","props","jsx","StyledIcon","withUniwind","size","fromClassName","styleProperty","color","Icon","className","cn"],"sourceRoot":"../../../../src","sources":["components/Icon/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAAmC,IAAAE,WAAA,GAAAF,OAAA;
|
|
1
|
+
{"version":3,"names":["_uniwind","require","_utils","_jsxRuntime","IconImpl","as","IconComponent","props","jsx","StyledIcon","withUniwind","size","fromClassName","styleProperty","color","Icon","className","cn"],"sourceRoot":"../../../../src","sources":["components/Icon/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAAmC,IAAAE,WAAA,GAAAF,OAAA;AAQnC,SAASG,QAAQA,CAAC;EAAEC,EAAE,EAAEC,aAAa;EAAE,GAAGC;AAAiB,CAAC,EAAE;EAC5D,oBAAO,IAAAJ,WAAA,CAAAK,GAAA,EAACF,aAAa;IAAA,GAAKC;EAAK,CAAG,CAAC;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,UAAU,GAAG,IAAAC,oBAAW,EAAC,IAAAA,oBAAW,EAACN,QAAQ,CAAC,EAAE;EACpDO,IAAI,EAAE;IACJC,aAAa,EAAE,WAAW;IAC1BC,aAAa,EAAE;EACjB,CAAC;EACDC,KAAK,EAAE;IACLF,aAAa,EAAE,WAAW;IAC1BC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,IAAIA,CAAC;EAAEV,EAAE,EAAEC,aAAa;EAAEU,SAAS;EAAE,GAAGT;AAAiB,CAAC,EAAE;EAC1E,oBACE,IAAAJ,WAAA,CAAAK,GAAA,EAACC,UAAU;IACTJ,EAAE,EAAEC,aAAc;IAClBU,SAAS,EAAE,IAAAC,SAAE,EAAC,6BAA6B,EAAED,SAAS,CAAE;IAAA,GACpDT;EAAK,CACV,CAAC;AAEN","ignoreList":[]}
|
|
@@ -48,9 +48,11 @@ const IconButtonRoot = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
48
48
|
className: rootClassName,
|
|
49
49
|
style: style,
|
|
50
50
|
...props,
|
|
51
|
-
...(0, _primitives.mergeDataAttributes)(
|
|
51
|
+
...(0, _primitives.mergeDataAttributes)((0, _primitives.dataAttributes)({
|
|
52
52
|
slot: 'icon-button'
|
|
53
|
-
})
|
|
53
|
+
}),
|
|
54
|
+
// Consumer/parent compound slots (e.g. carousel-prev-button) win over the default.
|
|
55
|
+
props),
|
|
54
56
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
|
|
55
57
|
as: IconComponent,
|
|
56
58
|
className: glyphClassName
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_primitives","_utils","_Icon","_styles","_jsxRuntime","hasWarnedIconButtonTintVariant","IconButtonRoot","forwardRef","variant","variantProp","color","size","className","style","as","IconComponent","iconClassName","accessibilityRole","props","ref","useEffect","__DEV__","console","warn","rootClassName","cn","iconButtonRootVariants","glyphClassName","iconButtonGlyphVariants","iconButtonIconColorVariants","jsx","ButtonRoot","mergeDataAttributes","dataAttributes","slot","children","Icon","displayName","IconButton","exports"],"sourceRoot":"../../../../src","sources":["components/IconButton/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAOA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAKkB,IAAAK,WAAA,GAAAL,OAAA;AAIlB;;AAGA,IAAIM,8BAA8B,GAAG,KAAK;AAmB1C,MAAMC,cAAc,gBAAG,IAAAC,iBAAU,EAC/B,CACE;EACEC,OAAO,EAAEC,WAAW,GAAG,OAAO;EAC9BC,KAAK,GAAG,SAAS;EACjBC,IAAI,GAAG,SAAS;EAChBC,SAAS;EACTC,KAAK;EACLC,EAAE,EAAEC,aAAa;EACjBC,aAAa;EACbC,iBAAiB,GAAG,QAAQ;EAC5B,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIC,OAAO,IAAIZ,WAAW,KAAK,MAAM,IAAI,CAACJ,8BAA8B,EAAE;MACxEA,8BAA8B,GAAG,IAAI;MACrCiB,OAAO,CAACC,IAAI,CACV,oHACF,CAAC;IACH;EACF,CAAC,EAAE,CAACd,WAAW,CAAC,CAAC;EAEjB,MAAMD,OAAO,GAAGC,WAAW,KAAK,MAAM,GAAG,QAAQ,GAAGA,WAAW;EAE/D,MAAMe,aAAa,GAAG,IAAAC,SAAE,EAAC,IAAAC,8BAAsB,EAAC;IAAElB,OAAO;IAAEE,KAAK;IAAEC;EAAK,CAAC,CAAC,EAAEC,SAAS,CAAC;EAErF,MAAMe,cAAc,GAAG,IAAAF,SAAE,EACvB,IAAAG,+BAAuB,EAAC;IAAEjB;EAAK,CAAC,CAAC,EACjC,IAAAkB,mCAA2B,EAAC;IAAErB,OAAO;IAAEE;EAAM,CAAC,CAAC,EAC/CM,aACF,CAAC;EAED,oBACE,IAAAZ,WAAA,CAAA0B,GAAA,EAAC9B,WAAA,CAAA+B,UAAU;IACTZ,GAAG,EAAEA,GAAI;IACTF,iBAAiB,EAAEA,iBAAkB;IACrCL,SAAS,EAAEY,aAAc;IACzBX,KAAK,EAAEA,KAAM;IAAA,GACTK,KAAK;IAAA,GACL,IAAAc,+BAAmB,
|
|
1
|
+
{"version":3,"names":["_react","require","_primitives","_utils","_Icon","_styles","_jsxRuntime","hasWarnedIconButtonTintVariant","IconButtonRoot","forwardRef","variant","variantProp","color","size","className","style","as","IconComponent","iconClassName","accessibilityRole","props","ref","useEffect","__DEV__","console","warn","rootClassName","cn","iconButtonRootVariants","glyphClassName","iconButtonGlyphVariants","iconButtonIconColorVariants","jsx","ButtonRoot","mergeDataAttributes","dataAttributes","slot","children","Icon","displayName","IconButton","exports"],"sourceRoot":"../../../../src","sources":["components/IconButton/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAOA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAKkB,IAAAK,WAAA,GAAAL,OAAA;AAIlB;;AAGA,IAAIM,8BAA8B,GAAG,KAAK;AAmB1C,MAAMC,cAAc,gBAAG,IAAAC,iBAAU,EAC/B,CACE;EACEC,OAAO,EAAEC,WAAW,GAAG,OAAO;EAC9BC,KAAK,GAAG,SAAS;EACjBC,IAAI,GAAG,SAAS;EAChBC,SAAS;EACTC,KAAK;EACLC,EAAE,EAAEC,aAAa;EACjBC,aAAa;EACbC,iBAAiB,GAAG,QAAQ;EAC5B,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIC,OAAO,IAAIZ,WAAW,KAAK,MAAM,IAAI,CAACJ,8BAA8B,EAAE;MACxEA,8BAA8B,GAAG,IAAI;MACrCiB,OAAO,CAACC,IAAI,CACV,oHACF,CAAC;IACH;EACF,CAAC,EAAE,CAACd,WAAW,CAAC,CAAC;EAEjB,MAAMD,OAAO,GAAGC,WAAW,KAAK,MAAM,GAAG,QAAQ,GAAGA,WAAW;EAE/D,MAAMe,aAAa,GAAG,IAAAC,SAAE,EAAC,IAAAC,8BAAsB,EAAC;IAAElB,OAAO;IAAEE,KAAK;IAAEC;EAAK,CAAC,CAAC,EAAEC,SAAS,CAAC;EAErF,MAAMe,cAAc,GAAG,IAAAF,SAAE,EACvB,IAAAG,+BAAuB,EAAC;IAAEjB;EAAK,CAAC,CAAC,EACjC,IAAAkB,mCAA2B,EAAC;IAAErB,OAAO;IAAEE;EAAM,CAAC,CAAC,EAC/CM,aACF,CAAC;EAED,oBACE,IAAAZ,WAAA,CAAA0B,GAAA,EAAC9B,WAAA,CAAA+B,UAAU;IACTZ,GAAG,EAAEA,GAAI;IACTF,iBAAiB,EAAEA,iBAAkB;IACrCL,SAAS,EAAEY,aAAc;IACzBX,KAAK,EAAEA,KAAM;IAAA,GACTK,KAAK;IAAA,GACL,IAAAc,+BAAmB,EACrB,IAAAC,0BAAc,EAAC;MAAEC,IAAI,EAAE;IAAc,CAAC,CAAC;IACvC;IACAhB,KACF,CAAC;IAAAiB,QAAA,eAED,IAAA/B,WAAA,CAAA0B,GAAA,EAAC5B,KAAA,CAAAkC,IAAI;MAACtB,EAAE,EAAEC,aAAc;MAACH,SAAS,EAAEe;IAAe,CAAE;EAAC,CAC5C,CAAC;AAEjB,CACF,CAAC;AAEDrB,cAAc,CAAC+B,WAAW,GAAG,YAAY;AAElC,MAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAGhC,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","CarouselProgressProvider","useCarouselProgressContext","strict"],"sourceRoot":"../../../../src","sources":["components/Carousel/context.ts"],"mappings":";;AAGA,SAASA,aAAa,QAAQ,eAAe;AAU7C,OAAO,MAAM,CAACC,wBAAwB,EAAEC,0BAA0B,CAAC,GACjEF,aAAa,CAAuB,kBAAkB,EAAE;EAAEG,MAAM,EAAE;AAAM,CAAC,CAAC","ignoreList":[]}
|
|
@@ -4,7 +4,9 @@ import { forwardRef, useCallback, useRef } from 'react';
|
|
|
4
4
|
import { useSharedValue } from 'react-native-reanimated';
|
|
5
5
|
import RNCarousel, { Pagination as RNCarouselPagination } from 'react-native-reanimated-carousel';
|
|
6
6
|
import { useResolveClassNames } from 'uniwind';
|
|
7
|
-
import { cn,
|
|
7
|
+
import { cn, mergeRefs } from '@cdx-ui/utils';
|
|
8
|
+
import { CarouselProgressProvider, useCarouselProgressContext } from './context';
|
|
9
|
+
import { CarouselNextButton, CarouselPrevButton } from './navButton';
|
|
8
10
|
import { resolveCarouselPaginationScrollAction } from './paginationNavigation';
|
|
9
11
|
import { carouselPaginationContainerClassName, carouselPaginationDotVariants } from './styles';
|
|
10
12
|
|
|
@@ -17,9 +19,6 @@ import { carouselPaginationContainerClassName, carouselPaginationDotVariants } f
|
|
|
17
19
|
|
|
18
20
|
/** Mirrors the adopted library's private `DotStyle` shape (not exported) without importing it. */
|
|
19
21
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
|
-
const [CarouselProgressProvider, useCarouselProgressContext] = createContext('CarouselProgress', {
|
|
21
|
-
strict: false
|
|
22
|
-
});
|
|
23
22
|
function isSharedValueProgress(value) {
|
|
24
23
|
return typeof value === 'object' && value !== null && 'value' in value;
|
|
25
24
|
}
|
|
@@ -35,6 +34,8 @@ function CarouselInner({
|
|
|
35
34
|
const internalRef = useRef(null);
|
|
36
35
|
const internalProgress = useSharedValue(defaultIndex);
|
|
37
36
|
const resolvedClassNameStyle = useResolveClassNames(cn(className));
|
|
37
|
+
const vertical = rest.vertical ?? false;
|
|
38
|
+
const itemCount = rest.data.length;
|
|
38
39
|
const handleProgressChange = useCallback((offsetProgress, absoluteProgress) => {
|
|
39
40
|
internalProgress.value = absoluteProgress;
|
|
40
41
|
if (typeof onProgressChange === 'function') {
|
|
@@ -45,7 +46,9 @@ function CarouselInner({
|
|
|
45
46
|
const contextValue = {
|
|
46
47
|
progress: consumerProgress ?? internalProgress,
|
|
47
48
|
carouselRef: internalRef,
|
|
48
|
-
loop
|
|
49
|
+
loop,
|
|
50
|
+
itemCount,
|
|
51
|
+
vertical
|
|
49
52
|
};
|
|
50
53
|
return /*#__PURE__*/_jsxs(CarouselProgressProvider, {
|
|
51
54
|
value: contextValue,
|
|
@@ -125,7 +128,9 @@ function CarouselPaginationComponent({
|
|
|
125
128
|
CarouselPaginationComponent.displayName = 'Carousel.Pagination';
|
|
126
129
|
const CarouselPagination = CarouselPaginationComponent;
|
|
127
130
|
export const Carousel = Object.assign(CarouselRoot, {
|
|
128
|
-
Pagination: CarouselPagination
|
|
131
|
+
Pagination: CarouselPagination,
|
|
132
|
+
PrevButton: CarouselPrevButton,
|
|
133
|
+
NextButton: CarouselNextButton
|
|
129
134
|
});
|
|
130
135
|
|
|
131
136
|
// =============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useCallback","useRef","useSharedValue","RNCarousel","Pagination","RNCarouselPagination","useResolveClassNames","cn","
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","useRef","useSharedValue","RNCarousel","Pagination","RNCarouselPagination","useResolveClassNames","cn","mergeRefs","CarouselProgressProvider","useCarouselProgressContext","CarouselNextButton","CarouselPrevButton","resolveCarouselPaginationScrollAction","carouselPaginationContainerClassName","carouselPaginationDotVariants","jsx","_jsx","jsxs","_jsxs","isSharedValueProgress","value","CarouselInner","className","style","onProgressChange","children","loop","defaultIndex","rest","ref","internalRef","internalProgress","resolvedClassNameStyle","vertical","itemCount","data","length","handleProgressChange","offsetProgress","absoluteProgress","consumerProgress","undefined","contextValue","progress","carouselRef","CarouselRoot","CarouselPaginationComponent","progressProp","carouselRefProp","loopProp","onPress","context","Error","handlePress","index","carousel","current","scrollAction","getCurrentIndex","scrollTo","containerStyle","dotStyle","active","activeDotStyle","Custom","width","height","displayName","CarouselPagination","Carousel","Object","assign","PrevButton","NextButton","useCarousel","options","next","opts","prev"],"sourceRoot":"../../../../src","sources":["components/Carousel/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback } from 'react';
|
|
4
|
+
import { ChevronLeft, ChevronRight, KeyboardArrowDown, KeyboardArrowUp } from '@cdx-ui/icons';
|
|
5
|
+
import { dataAttributes, mergeDataAttributes } from '@cdx-ui/primitives';
|
|
6
|
+
import { cn } from '@cdx-ui/utils';
|
|
7
|
+
import { IconButton } from '../IconButton';
|
|
8
|
+
import { useCarouselProgressContext } from './context';
|
|
9
|
+
import { carouselNavButtonIconVariants, carouselNavButtonRootVariants } from './styles';
|
|
10
|
+
import { useCarouselActiveIndex } from './useCarouselActiveIndex';
|
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
function resolveDefaultIcon(vertical, direction) {
|
|
13
|
+
if (vertical) {
|
|
14
|
+
return direction === 'prev' ? KeyboardArrowUp : KeyboardArrowDown;
|
|
15
|
+
}
|
|
16
|
+
return direction === 'prev' ? ChevronLeft : ChevronRight;
|
|
17
|
+
}
|
|
18
|
+
function resolveDefaultAccessibilityLabel(vertical, direction) {
|
|
19
|
+
if (vertical) {
|
|
20
|
+
return direction === 'prev' ? 'Previous item' : 'Next item';
|
|
21
|
+
}
|
|
22
|
+
return direction === 'prev' ? 'Previous slide' : 'Next slide';
|
|
23
|
+
}
|
|
24
|
+
function CarouselNavButton({
|
|
25
|
+
direction,
|
|
26
|
+
progress: progressProp,
|
|
27
|
+
carouselRef: carouselRefProp,
|
|
28
|
+
itemCount: itemCountProp,
|
|
29
|
+
loop: loopProp,
|
|
30
|
+
vertical: verticalProp,
|
|
31
|
+
onPress,
|
|
32
|
+
disabled: disabledProp,
|
|
33
|
+
as,
|
|
34
|
+
accessibilityLabel,
|
|
35
|
+
color = 'neutral',
|
|
36
|
+
size = 'default',
|
|
37
|
+
className,
|
|
38
|
+
iconClassName,
|
|
39
|
+
...iconButtonProps
|
|
40
|
+
}) {
|
|
41
|
+
const context = useCarouselProgressContext();
|
|
42
|
+
const progress = progressProp ?? context?.progress;
|
|
43
|
+
const carouselRef = carouselRefProp ?? context?.carouselRef;
|
|
44
|
+
const itemCount = itemCountProp ?? context?.itemCount;
|
|
45
|
+
const loop = loopProp ?? context?.loop ?? true;
|
|
46
|
+
const vertical = verticalProp ?? context?.vertical ?? false;
|
|
47
|
+
if (!progress) {
|
|
48
|
+
throw new Error(`Carousel.${direction === 'prev' ? 'PrevButton' : 'NextButton'} must be rendered inside <Carousel> or receive an explicit \`progress\` prop.`);
|
|
49
|
+
}
|
|
50
|
+
if (!onPress && !carouselRef) {
|
|
51
|
+
throw new Error(`Carousel.${direction === 'prev' ? 'PrevButton' : 'NextButton'} must be rendered inside <Carousel> or receive an explicit \`carouselRef\` prop (or a custom \`onPress\`).`);
|
|
52
|
+
}
|
|
53
|
+
if (itemCount == null) {
|
|
54
|
+
throw new Error(`Carousel.${direction === 'prev' ? 'PrevButton' : 'NextButton'} must be rendered inside <Carousel> or receive an explicit \`itemCount\` prop.`);
|
|
55
|
+
}
|
|
56
|
+
const activeIndex = useCarouselActiveIndex(progress);
|
|
57
|
+
const atStart = activeIndex <= 0;
|
|
58
|
+
const atEnd = activeIndex >= itemCount - 1;
|
|
59
|
+
const autoDisabled = !loop && (direction === 'prev' ? atStart : atEnd);
|
|
60
|
+
const disabled = disabledProp ?? autoDisabled;
|
|
61
|
+
const handlePress = useCallback(() => {
|
|
62
|
+
if (onPress) {
|
|
63
|
+
onPress();
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (direction === 'prev') {
|
|
67
|
+
carouselRef?.current?.prev({
|
|
68
|
+
animated: true
|
|
69
|
+
});
|
|
70
|
+
} else {
|
|
71
|
+
carouselRef?.current?.next({
|
|
72
|
+
animated: true
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}, [onPress, carouselRef, direction]);
|
|
76
|
+
const dataSlot = direction === 'prev' ? 'carousel-prev-button' : 'carousel-next-button';
|
|
77
|
+
return /*#__PURE__*/_jsx(IconButton, {
|
|
78
|
+
as: as ?? resolveDefaultIcon(vertical, direction),
|
|
79
|
+
variant: "ghost",
|
|
80
|
+
color: color,
|
|
81
|
+
size: size,
|
|
82
|
+
isDisabled: disabled,
|
|
83
|
+
onPress: handlePress,
|
|
84
|
+
accessibilityLabel: accessibilityLabel ?? resolveDefaultAccessibilityLabel(vertical, direction),
|
|
85
|
+
accessibilityState: {
|
|
86
|
+
disabled
|
|
87
|
+
},
|
|
88
|
+
className: cn(carouselNavButtonRootVariants({
|
|
89
|
+
disabled
|
|
90
|
+
}), className),
|
|
91
|
+
iconClassName: cn(carouselNavButtonIconVariants({
|
|
92
|
+
disabled
|
|
93
|
+
}), iconClassName),
|
|
94
|
+
...iconButtonProps,
|
|
95
|
+
...mergeDataAttributes(iconButtonProps, dataAttributes({
|
|
96
|
+
slot: dataSlot
|
|
97
|
+
}))
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
export function CarouselPrevButton(props) {
|
|
101
|
+
return /*#__PURE__*/_jsx(CarouselNavButton, {
|
|
102
|
+
direction: "prev",
|
|
103
|
+
...props
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
CarouselPrevButton.displayName = 'Carousel.PrevButton';
|
|
107
|
+
export function CarouselNextButton(props) {
|
|
108
|
+
return /*#__PURE__*/_jsx(CarouselNavButton, {
|
|
109
|
+
direction: "next",
|
|
110
|
+
...props
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
CarouselNextButton.displayName = 'Carousel.NextButton';
|
|
114
|
+
//# sourceMappingURL=navButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","ChevronLeft","ChevronRight","KeyboardArrowDown","KeyboardArrowUp","dataAttributes","mergeDataAttributes","cn","IconButton","useCarouselProgressContext","carouselNavButtonIconVariants","carouselNavButtonRootVariants","useCarouselActiveIndex","jsx","_jsx","resolveDefaultIcon","vertical","direction","resolveDefaultAccessibilityLabel","CarouselNavButton","progress","progressProp","carouselRef","carouselRefProp","itemCount","itemCountProp","loop","loopProp","verticalProp","onPress","disabled","disabledProp","as","accessibilityLabel","color","size","className","iconClassName","iconButtonProps","context","Error","activeIndex","atStart","atEnd","autoDisabled","handlePress","current","prev","animated","next","dataSlot","variant","isDisabled","accessibilityState","slot","CarouselPrevButton","props","displayName","CarouselNextButton"],"sourceRoot":"../../../../src","sources":["components/Carousel/navButton.tsx"],"mappings":"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","ignoreList":[]}
|