@xwadex/fesd-next 0.3.4-7.21 → 0.3.4-7.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/content-builders/article4/article4cora/article4cora-roots.d.ts +4 -0
- package/dist/components/content-builders/article4/article4cora/article4cora-roots.js +79 -0
- package/dist/components/content-builders/article4/article4cora/media-base/index.d.ts +2 -0
- package/dist/components/content-builders/article4/article4cora/media-base/index.js +2 -0
- package/dist/components/content-builders/article4/article4cora/media-base/media-base-root.d.ts +15 -0
- package/dist/components/content-builders/article4/article4cora/media-base/media-base-root.js +52 -0
- package/dist/components/content-builders/article4/article4cora/media-cover/index.d.ts +2 -0
- package/dist/components/content-builders/article4/article4cora/media-cover/index.js +2 -0
- package/dist/components/content-builders/article4/article4cora/media-cover/media-cover-root.d.ts +15 -0
- package/dist/components/content-builders/article4/article4cora/media-cover/media-cover-root.js +23 -0
- package/dist/components/content-builders/article4/article4cora/media-embla/index.d.ts +2 -0
- package/dist/components/content-builders/article4/article4cora/media-embla/index.js +2 -0
- package/dist/components/content-builders/article4/article4cora/media-embla/media-embla-root.d.ts +25 -0
- package/dist/components/content-builders/article4/article4cora/media-embla/media-embla-root.js +107 -0
- package/dist/components/content-builders/article4/baseBlock.d.ts +17 -0
- package/dist/components/content-builders/article4/baseBlock.js +115 -0
- package/dist/components/content-builders/article4/commonComponents.d.ts +53 -0
- package/dist/components/content-builders/article4/commonComponents.js +81 -0
- package/dist/components/content-builders/article4/config.d.ts +4 -0
- package/dist/components/content-builders/article4/config.js +6 -0
- package/dist/components/content-builders/article4/index.d.ts +12 -0
- package/dist/components/content-builders/article4/index.js +12 -0
- package/dist/components/content-builders/article4/type10Block.d.ts +14 -0
- package/dist/components/content-builders/article4/type10Block.js +24 -0
- package/dist/components/content-builders/article4/type1Block.d.ts +9 -0
- package/dist/components/content-builders/article4/type1Block.js +12 -0
- package/dist/components/content-builders/article4/type2Block.d.ts +9 -0
- package/dist/components/content-builders/article4/type2Block.js +17 -0
- package/dist/components/content-builders/article4/type3Block.d.ts +8 -0
- package/dist/components/content-builders/article4/type3Block.js +12 -0
- package/dist/components/content-builders/article4/type4Block.d.ts +27 -0
- package/dist/components/content-builders/article4/type4Block.js +53 -0
- package/dist/components/content-builders/article4/type5Block.d.ts +24 -0
- package/dist/components/content-builders/article4/type5Block.js +43 -0
- package/dist/components/content-builders/article4/type6Block.d.ts +24 -0
- package/dist/components/content-builders/article4/type6Block.js +43 -0
- package/dist/components/content-builders/article4/type7Block.d.ts +12 -0
- package/dist/components/content-builders/article4/type7Block.js +19 -0
- package/dist/components/content-builders/article4/type8Block.d.ts +11 -0
- package/dist/components/content-builders/article4/type8Block.js +14 -0
- package/dist/components/content-builders/article4/type9Block.d.ts +11 -0
- package/dist/components/content-builders/article4/type9Block.js +19 -0
- package/dist/components/content-builders/blocks/base-block.d.ts +12 -0
- package/dist/components/content-builders/blocks/base-block.js +91 -0
- package/dist/components/content-builders/blocks/headers-block.d.ts +20 -0
- package/dist/components/content-builders/blocks/headers-block.js +49 -0
- package/dist/components/content-builders/blocks/index.d.ts +4 -0
- package/dist/components/content-builders/blocks/index.js +4 -0
- package/dist/components/content-builders/blocks/media-content.d.ts +7 -0
- package/dist/components/content-builders/blocks/media-content.js +23 -0
- package/dist/components/content-builders/blocks/root-header.d.ts +11 -0
- package/dist/components/content-builders/blocks/root-header.js +14 -0
- package/dist/components/content-builders/blocks/roots.d.ts +8 -0
- package/dist/components/content-builders/blocks/roots.js +23 -0
- package/dist/components/content-builders/blocks/text-content.d.ts +20 -0
- package/dist/components/content-builders/blocks/text-content.js +190 -0
- package/dist/components/content-builders/content-builder-actionbar.d.ts +1 -0
- package/dist/components/content-builders/content-builder-actionbar.js +64 -0
- package/dist/components/content-builders/content-builder-blocks-dialogs.d.ts +4 -0
- package/dist/components/content-builders/content-builder-blocks-dialogs.js +45 -0
- package/dist/components/content-builders/content-builder-blocks.d.ts +15 -0
- package/dist/components/content-builders/content-builder-blocks.js +40 -0
- package/dist/components/content-builders/content-builder-builder.d.ts +13 -0
- package/dist/components/content-builders/content-builder-builder.js +17 -0
- package/dist/components/content-builders/content-builder-configs.d.ts +203 -0
- package/dist/components/content-builders/content-builder-configs.js +125 -0
- package/dist/components/content-builders/content-builder-context.d.ts +24 -0
- package/dist/components/content-builders/content-builder-context.js +47 -0
- package/dist/components/content-builders/content-builder-fields.d.ts +1 -0
- package/dist/components/content-builders/content-builder-fields.js +5 -0
- package/dist/components/content-builders/content-builder-functionbar.d.ts +1 -0
- package/dist/components/content-builders/content-builder-functionbar.js +37 -0
- package/dist/components/content-builders/content-builder-helpers.d.ts +9 -0
- package/dist/components/content-builders/content-builder-helpers.js +43 -0
- package/dist/components/content-builders/content-builder-hooks.d.ts +39 -0
- package/dist/components/content-builders/content-builder-hooks.js +129 -0
- package/dist/components/content-builders/content-builder-iframe.d.ts +5 -0
- package/dist/components/content-builders/content-builder-iframe.js +15 -0
- package/dist/components/content-builders/content-builder-overlay.d.ts +1 -0
- package/dist/components/content-builders/content-builder-overlay.js +22 -0
- package/dist/components/content-builders/content-builder-panels.d.ts +10 -0
- package/dist/components/content-builders/content-builder-panels.js +165 -0
- package/dist/components/content-builders/content-builder-preview.d.ts +4 -0
- package/dist/components/content-builders/content-builder-preview.js +22 -0
- package/dist/components/content-builders/content-builder-pucks-context.d.ts +13 -0
- package/dist/components/content-builders/content-builder-pucks-context.js +17 -0
- package/dist/components/content-builders/content-builder-pucks-hooks.d.ts +17 -0
- package/dist/components/content-builders/content-builder-pucks-hooks.js +119 -0
- package/dist/components/content-builders/content-builder-render.d.ts +6 -0
- package/dist/components/content-builders/content-builder-render.js +6 -0
- package/dist/components/content-builders/content-builder.d.ts +7 -0
- package/dist/components/content-builders/content-builder.js +24 -0
- package/dist/components/content-builders/fields/fields-tabs.d.ts +5 -0
- package/dist/components/content-builders/fields/fields-tabs.js +9 -0
- package/dist/components/content-builders/index.d.ts +5 -0
- package/dist/components/content-builders/index.js +5 -0
- package/dist/components/content-builders/initial-datas.d.ts +56 -0
- package/dist/components/content-builders/initial-datas.js +818 -0
- package/dist/components/emblas/embla-container.d.ts +8 -0
- package/dist/components/emblas/embla-container.js +13 -0
- package/dist/components/emblas/embla-context.d.ts +21 -0
- package/dist/components/emblas/embla-context.js +13 -0
- package/dist/components/emblas/embla.d.ts +20 -0
- package/dist/components/emblas/embla.js +125 -0
- package/dist/components/emblas/emblas-pagination.d.ts +11 -0
- package/dist/components/emblas/emblas-pagination.js +90 -0
- package/dist/components/emblas/index.d.ts +4 -0
- package/dist/components/emblas/index.js +4 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +2 -0
- package/package.json +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../../shadcns/index.js";
|
|
4
|
+
import { useCarouselContext } from "./embla-context";
|
|
5
|
+
const EmblaContainer = ({ slide: SlideComponent, className, children, style, ...props }) => {
|
|
6
|
+
const { datas, emblaApi } = useCarouselContext();
|
|
7
|
+
const cantSlide = !emblaApi?.canScrollNext() && !emblaApi?.canScrollPrev();
|
|
8
|
+
return (_jsxs("div", { "data-component": "embla-container", className: cn("flex", className, cantSlide && [
|
|
9
|
+
"transform-[unset!important]"
|
|
10
|
+
]), style: { ...style }, children: [SlideComponent && datas?.map((item, index) => (_jsx(SlideComponent, { ...item, index: index, ...props }, item?.multipurpose?.key ?? item?.id ?? index))), children] }));
|
|
11
|
+
};
|
|
12
|
+
EmblaContainer.displayName = "EmblaContainer";
|
|
13
|
+
export default EmblaContainer;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { EmblaViewportRefType } from "embla-carousel-react";
|
|
2
|
+
import type { EmblaCarouselType } from 'embla-carousel';
|
|
3
|
+
interface CarouselContextTypes {
|
|
4
|
+
datas: [];
|
|
5
|
+
emblaRef?: EmblaViewportRefType;
|
|
6
|
+
emblaApi?: EmblaCarouselType | null;
|
|
7
|
+
selectIndex: number;
|
|
8
|
+
scrollSnaps: number[];
|
|
9
|
+
nextScroll: () => void;
|
|
10
|
+
prevScroll: () => void;
|
|
11
|
+
scrollToIndex: (index: number) => void;
|
|
12
|
+
autoPlayReset: () => void;
|
|
13
|
+
autoPlayStop: () => void;
|
|
14
|
+
autoPlayPlay: () => void;
|
|
15
|
+
}
|
|
16
|
+
export declare const CarouselContextProvider: (props: {
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
value: CarouselContextTypes;
|
|
19
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare const useCarouselContext: () => CarouselContextTypes;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, use } from "react";
|
|
4
|
+
const CarouselContext = createContext(null);
|
|
5
|
+
export const CarouselContextProvider = (props) => {
|
|
6
|
+
return _jsx(CarouselContext, { ...props });
|
|
7
|
+
};
|
|
8
|
+
export const useCarouselContext = () => {
|
|
9
|
+
const context = use(CarouselContext);
|
|
10
|
+
if (!context)
|
|
11
|
+
throw new Error("useCMSData must be used inside CMSProvider");
|
|
12
|
+
return context;
|
|
13
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { EmblaOptionsType } from "embla-carousel";
|
|
3
|
+
import type { AutoplayOptionsType } from "embla-carousel-autoplay";
|
|
4
|
+
export interface PropsTypes extends EmblaOptionsType {
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
className?: string;
|
|
7
|
+
options?: EmblaOptionsType;
|
|
8
|
+
datas?: any;
|
|
9
|
+
autoplayEnabled?: boolean;
|
|
10
|
+
autoplayOptions?: AutoplayOptionsType;
|
|
11
|
+
setApi?: any;
|
|
12
|
+
setMethods?: any;
|
|
13
|
+
setRef?: any;
|
|
14
|
+
style?: any;
|
|
15
|
+
controls?: any;
|
|
16
|
+
plugins?: any;
|
|
17
|
+
onScrolled?: (index: number) => void;
|
|
18
|
+
}
|
|
19
|
+
declare const Embla: React.FC<PropsTypes>;
|
|
20
|
+
export default Embla;
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
4
|
+
import useEmblaCarousel from "embla-carousel-react";
|
|
5
|
+
import { cn } from "../../shadcns/index.js";
|
|
6
|
+
import { CarouselContextProvider } from "./embla-context";
|
|
7
|
+
import Autoplay from "embla-carousel-autoplay";
|
|
8
|
+
const Embla = ({ children, className, options, datas, autoplayEnabled = true, autoplayOptions, setApi, setMethods, setRef, style, controls, onScrolled }) => {
|
|
9
|
+
const { loop, duration = 40 } = options || {};
|
|
10
|
+
const autoplaySetting = useMemo(() => {
|
|
11
|
+
if (!autoplayEnabled)
|
|
12
|
+
return;
|
|
13
|
+
return [Autoplay({ playOnInit: true, delay: 5000, stopOnInteraction: false, ...autoplayOptions })];
|
|
14
|
+
}, [autoplayEnabled, autoplayOptions]);
|
|
15
|
+
const [emblaRef, emblaApi] = useEmblaCarousel({ ...options, loop, duration }, autoplaySetting);
|
|
16
|
+
const [selectIndex, setSelectIndex] = useState(0);
|
|
17
|
+
const [scrollSnaps, setScrollSnaps] = useState([]);
|
|
18
|
+
const nextScroll = useCallback(() => {
|
|
19
|
+
if (!emblaApi)
|
|
20
|
+
return;
|
|
21
|
+
const { canScrollNext, scrollNext } = emblaApi;
|
|
22
|
+
canScrollNext() && scrollNext() && autoPlayReset();
|
|
23
|
+
}, [emblaApi]);
|
|
24
|
+
const prevScroll = useCallback(() => {
|
|
25
|
+
if (!emblaApi)
|
|
26
|
+
return;
|
|
27
|
+
const { canScrollPrev, scrollPrev } = emblaApi;
|
|
28
|
+
canScrollPrev() && scrollPrev() && autoPlayReset();
|
|
29
|
+
}, [emblaApi]);
|
|
30
|
+
const scrollToIndex = useCallback((index) => {
|
|
31
|
+
if (!emblaApi || typeof index !== "number")
|
|
32
|
+
return;
|
|
33
|
+
emblaApi.scrollTo(index);
|
|
34
|
+
}, [emblaApi]);
|
|
35
|
+
// 自動輪播啟動
|
|
36
|
+
const autoPlayReset = useCallback(() => {
|
|
37
|
+
if (!emblaApi)
|
|
38
|
+
return;
|
|
39
|
+
// console.log("autoplay.reset");
|
|
40
|
+
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
41
|
+
autoplay && autoplay.reset();
|
|
42
|
+
}, [emblaApi]);
|
|
43
|
+
const autoPlayPlay = useCallback(() => {
|
|
44
|
+
if (!emblaApi)
|
|
45
|
+
return;
|
|
46
|
+
// console.log("autoplay.play");
|
|
47
|
+
if (!emblaApi.canScrollNext())
|
|
48
|
+
return; // 防呆
|
|
49
|
+
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
50
|
+
autoplay && autoplay.play();
|
|
51
|
+
}, [emblaApi]);
|
|
52
|
+
// 自動輪播暫停
|
|
53
|
+
const autoPlayStop = useCallback(() => {
|
|
54
|
+
if (!emblaApi)
|
|
55
|
+
return;
|
|
56
|
+
// console.log("autoplay.stop");
|
|
57
|
+
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
58
|
+
autoplay && autoplay.stop();
|
|
59
|
+
}, [emblaApi]);
|
|
60
|
+
const contextValue = useMemo(() => ({
|
|
61
|
+
datas,
|
|
62
|
+
emblaRef,
|
|
63
|
+
emblaApi,
|
|
64
|
+
selectIndex,
|
|
65
|
+
scrollSnaps,
|
|
66
|
+
nextScroll,
|
|
67
|
+
prevScroll,
|
|
68
|
+
scrollToIndex,
|
|
69
|
+
autoPlayReset,
|
|
70
|
+
autoPlayStop,
|
|
71
|
+
autoPlayPlay
|
|
72
|
+
}), [
|
|
73
|
+
datas,
|
|
74
|
+
emblaRef,
|
|
75
|
+
emblaApi,
|
|
76
|
+
selectIndex,
|
|
77
|
+
scrollSnaps,
|
|
78
|
+
nextScroll,
|
|
79
|
+
prevScroll,
|
|
80
|
+
scrollToIndex,
|
|
81
|
+
autoPlayReset,
|
|
82
|
+
autoPlayStop,
|
|
83
|
+
autoPlayPlay
|
|
84
|
+
]);
|
|
85
|
+
const onInit = useCallback((emblaApi) => {
|
|
86
|
+
const snapList = emblaApi.scrollSnapList();
|
|
87
|
+
setScrollSnaps(snapList);
|
|
88
|
+
}, []);
|
|
89
|
+
const onSelectEvent = (emblaApi) => {
|
|
90
|
+
emblaApi.on("select", () => {
|
|
91
|
+
onScrolled?.(emblaApi.selectedScrollSnap());
|
|
92
|
+
setSelectIndex(emblaApi.selectedScrollSnap());
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
useEffect(() => {
|
|
96
|
+
if (!emblaApi)
|
|
97
|
+
return;
|
|
98
|
+
setRef?.(emblaRef);
|
|
99
|
+
setApi?.(emblaApi);
|
|
100
|
+
setMethods?.({});
|
|
101
|
+
onInit(emblaApi);
|
|
102
|
+
onSelectEvent(emblaApi);
|
|
103
|
+
}, [emblaApi]);
|
|
104
|
+
return (_jsx(CarouselContextProvider, { value: contextValue, children: _jsxs("div", { "data-component": "embla-root", className: cn("relative w-full"), children: [_jsx("div", { className: cn("overflow-hidden", "w-full", className), ref: emblaRef, style: style, children: children }), Array.isArray(controls) ? controls.map((ctrl, i) => (_jsx(React.Fragment, { children: ctrl }, i))) : controls] }) })
|
|
105
|
+
// <CarouselContextProvider
|
|
106
|
+
// value={contextValue}
|
|
107
|
+
// >
|
|
108
|
+
// <div
|
|
109
|
+
// data-component="embla-root"
|
|
110
|
+
// className={cn(
|
|
111
|
+
// "overflow-hidden",
|
|
112
|
+
// "relative",
|
|
113
|
+
// "w-full",
|
|
114
|
+
// className
|
|
115
|
+
// )}
|
|
116
|
+
// ref={emblaRef}
|
|
117
|
+
// style={style}
|
|
118
|
+
// >
|
|
119
|
+
// {children}
|
|
120
|
+
// </div>
|
|
121
|
+
// </CarouselContextProvider>
|
|
122
|
+
);
|
|
123
|
+
};
|
|
124
|
+
Embla.displayName = "Embla";
|
|
125
|
+
export default Embla;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type EmblaPaginationPropsTypes = {
|
|
2
|
+
color?: "black" | "white" | string;
|
|
3
|
+
align?: "start" | "center" | "end";
|
|
4
|
+
className?: string;
|
|
5
|
+
maxDots?: number;
|
|
6
|
+
dynamic?: boolean;
|
|
7
|
+
swiperNumber?: boolean;
|
|
8
|
+
style?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const EmblaPagination: React.FC<EmblaPaginationPropsTypes>;
|
|
11
|
+
export default EmblaPagination;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../../shadcns/index.js";
|
|
4
|
+
import { useCarouselContext } from "./embla-context";
|
|
5
|
+
import { useEffect, useState } from "react";
|
|
6
|
+
export const EmblaPagination = ({ color = "black", align, className, maxDots = 5, dynamic = true, swiperNumber = true, }) => {
|
|
7
|
+
const { selectIndex, scrollToIndex, scrollSnaps, autoPlayReset, emblaApi } = useCarouselContext();
|
|
8
|
+
// 點點計算
|
|
9
|
+
const total = scrollSnaps?.length ?? 0;
|
|
10
|
+
const active = Math.max(0, Math.min(selectIndex ?? 0, Math.max(0, total - 1)));
|
|
11
|
+
// 顯示數字
|
|
12
|
+
const paginationNumber = `${Number(active + 1) < 10 ? "0" + Number(active + 1) : Number(active + 1)}`;
|
|
13
|
+
const isWhite = color === "white";
|
|
14
|
+
// 點擊事件
|
|
15
|
+
const clickEvent = (index) => {
|
|
16
|
+
scrollToIndex(index); // 移動到當澤輪播
|
|
17
|
+
autoPlayReset(); // 如果有開啟自動輪播要重置輪播時間
|
|
18
|
+
};
|
|
19
|
+
// 點點是否為當前
|
|
20
|
+
const isSelected = (index) => {
|
|
21
|
+
return index === selectIndex;
|
|
22
|
+
};
|
|
23
|
+
// -- 動態點點 Start --
|
|
24
|
+
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
25
|
+
const [slideCount, setSlideCount] = useState(0);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (!emblaApi || !dynamic)
|
|
28
|
+
return;
|
|
29
|
+
const update = () => {
|
|
30
|
+
setSelectedIndex(emblaApi.selectedScrollSnap());
|
|
31
|
+
setSlideCount(emblaApi.scrollSnapList().length);
|
|
32
|
+
};
|
|
33
|
+
emblaApi.on('select', update);
|
|
34
|
+
emblaApi.on('reInit', update); // 重新初始化時也更新
|
|
35
|
+
update();
|
|
36
|
+
return () => {
|
|
37
|
+
emblaApi.off('select', update);
|
|
38
|
+
emblaApi.off('reInit', update);
|
|
39
|
+
};
|
|
40
|
+
}, [emblaApi, dynamic]);
|
|
41
|
+
const getVisibleBullets = () => {
|
|
42
|
+
const total = slideCount ?? 0;
|
|
43
|
+
if (total === 0)
|
|
44
|
+
return [];
|
|
45
|
+
const limit = Math.max(1, Number(maxDots));
|
|
46
|
+
const windowSize = Math.min(total, limit);
|
|
47
|
+
const left = Math.floor((windowSize - 1) / 2);
|
|
48
|
+
const right = windowSize - left - 1;
|
|
49
|
+
let start = selectedIndex - left;
|
|
50
|
+
let end = selectedIndex + right;
|
|
51
|
+
if (start < 0) {
|
|
52
|
+
end = Math.min(end - start, total - 1);
|
|
53
|
+
start = 0;
|
|
54
|
+
}
|
|
55
|
+
if (end > total - 1) {
|
|
56
|
+
start = Math.max(0, start - (end - (total - 1)));
|
|
57
|
+
end = total - 1;
|
|
58
|
+
}
|
|
59
|
+
return Array.from({ length: end - start + 1 }, (_, i) => start + i);
|
|
60
|
+
};
|
|
61
|
+
const visibleRange = getVisibleBullets();
|
|
62
|
+
// -- 動態點點 End --
|
|
63
|
+
// 是否開啟動態點點決定點點跑陣列的方式
|
|
64
|
+
const dots = dynamic ? visibleRange : scrollSnaps?.map((_, i) => i) ?? [];
|
|
65
|
+
// WE - 頁碼
|
|
66
|
+
const swiperSnap = [
|
|
67
|
+
"text-[16px]",
|
|
68
|
+
"font-semibold",
|
|
69
|
+
" leading-[1.4]",
|
|
70
|
+
];
|
|
71
|
+
const paginationColorStyle = {
|
|
72
|
+
"black": "#000",
|
|
73
|
+
"white": "#fff",
|
|
74
|
+
}[color] || `${color}`;
|
|
75
|
+
const paginationColorStyle2 = {
|
|
76
|
+
"--pagination-color": paginationColorStyle,
|
|
77
|
+
};
|
|
78
|
+
return (_jsxs("div", { "data-compoents": "emblas-pagination", className: cn("flex", "items-center", "gap-7.25", align === "center" && [
|
|
79
|
+
"justify-center",
|
|
80
|
+
], className), style: paginationColorStyle2, children: [swiperNumber &&
|
|
81
|
+
_jsx("div", { className: cn(swiperSnap, "relative", "after:absolute", "after:top-1/2", "after:right-[-15px]", "after:-translate-y-1/2", "after:block",
|
|
82
|
+
// "after:bg-black",
|
|
83
|
+
"after:bg-(--pagination-color)", "after:w-0.5", "after:h-3.75", "after:opacity-20", isWhite && [
|
|
84
|
+
"after:bg-white",
|
|
85
|
+
]), children: paginationNumber }), _jsx("div", { className: cn("flex", "flex-wrap", "justify-end", "items-center", "gap-y-0", "gap-x-2.5", "**:data-[component='emblas-pagination-dots']:bg-(--pagination-color)", isWhite && [
|
|
86
|
+
"**:data-[component='emblas-pagination-dots']:bg-white",
|
|
87
|
+
]), children: dots.map((index) => (_jsx("div", { "data-component": "emblas-pagination-dots", onClick: () => clickEvent(index), className: cn("w-1.5", "h-1.5", "rounded-full", "cursor-pointer", "opacity-30", isSelected(index) && ("opacity-100")) }, index))) })] }));
|
|
88
|
+
};
|
|
89
|
+
EmblaPagination.displayName = "EmblaPagination";
|
|
90
|
+
export default EmblaPagination;
|
package/dist/components/index.js
CHANGED