@xiping/react-components 1.0.69 → 1.0.77
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/cjs/_virtual/_rolldown/runtime.js +1 -0
- package/dist/cjs/components/blur-fade/BlurFade.js +1 -1
- package/dist/cjs/components/blur-text/BlurText.js +1 -1
- package/dist/cjs/components/button/Button.css +1 -1
- package/dist/cjs/components/button/Button2.js +1 -0
- package/dist/cjs/components/comic-text/ComicText2.js +4 -0
- package/dist/cjs/components/confetti-button/index.js +1 -1
- package/dist/cjs/components/dock/Duck.css +1 -1
- package/dist/cjs/components/dock/Duck2.js +1 -0
- package/dist/cjs/components/flip-text/FlipText.css +1 -1
- package/dist/cjs/components/flip-text/FlipText2.js +1 -0
- package/dist/cjs/components/gradient-text/index.css +1 -1
- package/dist/cjs/components/gradient-text/index2.js +1 -0
- package/dist/cjs/components/hyper-text/HyperText.css +1 -1
- package/dist/cjs/components/hyper-text/index.js +1 -1
- package/dist/cjs/components/image-compare/ImageCompare.css +1 -1
- package/dist/cjs/components/image-compare/ImageCompare2.js +1 -0
- package/dist/cjs/components/image-viewer/ImageThumbnails.css +1 -1
- package/dist/cjs/components/image-viewer/ImageThumbnails2.js +1 -0
- package/dist/cjs/components/image-viewer/ImageViewer.css +1 -1
- package/dist/cjs/components/image-viewer/ImageViewer.d.ts +1 -1
- package/dist/cjs/components/image-viewer/ImageViewer2.js +1 -0
- package/dist/cjs/components/message/Message.css +1 -1
- package/dist/cjs/components/message/Message2.js +1 -0
- package/dist/cjs/components/pinch-content/PinchContent.js +1 -1
- package/dist/cjs/components/pinch-content/index.js +1 -1
- package/dist/cjs/components/pointer/Pointer.css +1 -1
- package/dist/cjs/components/pointer/Pointer2.js +1 -0
- package/dist/cjs/components/scratch-to-reveal/ScratchToReveal.css +1 -1
- package/dist/cjs/components/scratch-to-reveal/ScratchToReveal2.js +1 -0
- package/dist/cjs/components/shimmer-button/ShimmerButton.css +1 -1
- package/dist/cjs/components/shimmer-button/ShimmerButton2.js +1 -0
- package/dist/cjs/components/shiny-button/ShinyButton.css +1 -1
- package/dist/cjs/components/shiny-button/ShinyButton2.js +1 -0
- package/dist/cjs/components/shiny-text/ShinyText2.js +1 -0
- package/dist/cjs/components/sparkles-text/SparklesText.css +1 -1
- package/dist/cjs/components/sparkles-text/SparklesText2.js +1 -0
- package/dist/cjs/components/split-text/SplitText.css +1 -1
- package/dist/cjs/components/split-text/SplitText2.js +1 -0
- package/dist/cjs/components/subtitle-player/CurrentMode.css +1 -1
- package/dist/cjs/components/subtitle-player/CurrentMode2.js +2 -0
- package/dist/cjs/components/subtitle-player/LyricsMode.css +1 -1
- package/dist/cjs/components/subtitle-player/LyricsMode2.js +2 -0
- package/dist/cjs/components/subtitle-player/SubtitlePlayer.css +1 -1
- package/dist/cjs/components/subtitle-player/SubtitlePlayer2.js +1 -0
- package/dist/cjs/components/subtitle-player/utils.js +1 -1
- package/dist/cjs/components/text-animate/TextAnimate.css +1 -1
- package/dist/cjs/components/text-animate/TextAnimate2.js +2 -0
- package/dist/cjs/components/text-type/TextType.css +1 -1
- package/dist/cjs/components/text-type/TextType2.js +1 -0
- package/dist/cjs/components/txt-editor/TxtEditor.js +4 -4
- package/dist/cjs/components/txt-reader/TxtReader.js +1 -1
- package/dist/cjs/components/txt-reader/index.module.css +1 -1
- package/dist/cjs/components/txt-reader/index.module.js +1 -0
- package/dist/cjs/components/typing-animation/index.css +1 -1
- package/dist/cjs/components/typing-animation/index2.js +1 -0
- package/dist/cjs/components/variable-proximity/index.css +1 -1
- package/dist/cjs/components/variable-proximity/index2.js +1 -0
- package/dist/cjs/components/video-dialog/VideoDialog.css +1 -1
- package/dist/cjs/components/video-dialog/VideoDialog2.js +1 -0
- package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayer.css +1 -1
- package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayer.mobile.css +1 -1
- package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayer.pc.css +1 -1
- package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayer2.js +1 -0
- package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayerMobile.js +1 -1
- package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayerPC.js +1 -1
- package/dist/cjs/components/video-subtitle-player/layouts/VideoSubtitlePlayerLayoutMobile.js +1 -1
- package/dist/cjs/components/video-subtitle-player/layouts/VideoSubtitlePlayerLayoutPC.js +1 -1
- package/dist/cjs/components/video-subtitle-player/useVideoSubtitleStore.js +1 -1
- package/dist/cjs/components/video-subtitle-player/useXGPlayer.js +1 -1
- package/dist/cjs/hooks/useStayTimeReport.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.24_core-js@3.47.0/node_modules/xgplayer/dist/index.min.css +1 -0
- package/dist/cjs/packages/subtitle/lib/index.js +1 -0
- package/dist/cjs/packages/subtitle/lib/src/json-converter.js +1 -1
- package/dist/cjs/packages/subtitle/lib/src/parser.js +5 -5
- package/dist/cjs/react-components.css +27 -27
- package/dist/es/components/blur-fade/BlurFade.js +37 -49
- package/dist/es/components/blur-text/BlurText.js +67 -76
- package/dist/es/components/button/Button.css +1 -1
- package/dist/es/components/button/Button2.js +48 -0
- package/dist/es/components/comic-text/ComicText2.js +55 -0
- package/dist/es/components/confetti-button/index.js +63 -75
- package/dist/es/components/dock/Duck.css +1 -1
- package/dist/es/components/dock/Duck2.js +60 -0
- package/dist/es/components/flip-text/FlipText.css +1 -1
- package/dist/es/components/flip-text/FlipText2.js +41 -0
- package/dist/es/components/gradient-text/index.css +1 -1
- package/dist/es/components/gradient-text/index2.js +29 -0
- package/dist/es/components/hyper-text/HyperText.css +1 -1
- package/dist/es/components/hyper-text/index.js +51 -79
- package/dist/es/components/image-compare/ImageCompare.css +1 -1
- package/dist/es/components/image-compare/ImageCompare2.js +96 -0
- package/dist/es/components/image-viewer/ImageThumbnails.css +1 -1
- package/dist/es/components/image-viewer/ImageThumbnails2.js +40 -0
- package/dist/es/components/image-viewer/ImageViewer.css +1 -1
- package/dist/es/components/image-viewer/ImageViewer.d.ts +1 -1
- package/dist/es/components/image-viewer/ImageViewer2.js +151 -0
- package/dist/es/components/message/Message.css +1 -1
- package/dist/es/components/message/Message2.js +189 -0
- package/dist/es/components/pinch-content/PinchContent.js +120 -127
- package/dist/es/components/pinch-content/index.js +5 -5
- package/dist/es/components/pointer/Pointer.css +1 -1
- package/dist/es/components/pointer/Pointer2.js +61 -0
- package/dist/es/components/react-force-graph-3d/index.js +2 -0
- package/dist/es/components/scratch-to-reveal/ScratchToReveal.css +1 -1
- package/dist/es/components/scratch-to-reveal/ScratchToReveal2.js +88 -0
- package/dist/es/components/shimmer-button/ShimmerButton.css +1 -1
- package/dist/es/components/shimmer-button/ShimmerButton2.js +33 -0
- package/dist/es/components/shiny-button/ShinyButton.css +1 -1
- package/dist/es/components/shiny-button/ShinyButton2.js +53 -0
- package/dist/es/components/shiny-text/ShinyText2.js +61 -0
- package/dist/es/components/sparkles-text/SparklesText.css +1 -1
- package/dist/es/components/sparkles-text/SparklesText2.js +90 -0
- package/dist/es/components/split-text/SplitText.css +1 -1
- package/dist/es/components/split-text/SplitText2.js +109 -0
- package/dist/es/components/subtitle-player/CurrentMode.css +1 -1
- package/dist/es/components/subtitle-player/CurrentMode2.js +44 -0
- package/dist/es/components/subtitle-player/LyricsMode.css +1 -1
- package/dist/es/components/subtitle-player/LyricsMode2.js +114 -0
- package/dist/es/components/subtitle-player/SubtitlePlayer.css +1 -1
- package/dist/es/components/subtitle-player/SubtitlePlayer2.js +169 -0
- package/dist/es/components/subtitle-player/utils.js +63 -69
- package/dist/es/components/text-animate/TextAnimate.css +1 -1
- package/dist/es/components/text-animate/TextAnimate2.js +312 -0
- package/dist/es/components/text-type/TextType.css +1 -1
- package/dist/es/components/text-type/TextType2.js +80 -0
- package/dist/es/components/txt-editor/TxtEditor.js +60 -95
- package/dist/es/components/txt-reader/TxtReader.js +45 -74
- package/dist/es/components/txt-reader/index.module.css +1 -1
- package/dist/es/components/txt-reader/index.module.js +10 -0
- package/dist/es/components/typing-animation/index.css +1 -1
- package/dist/es/components/typing-animation/index2.js +43 -0
- package/dist/es/components/variable-proximity/index.css +1 -1
- package/dist/es/components/variable-proximity/index2.js +179 -0
- package/dist/es/components/video-dialog/VideoDialog.css +1 -1
- package/dist/es/components/video-dialog/VideoDialog2.js +168 -0
- package/dist/es/components/video-subtitle-player/VideoSubtitlePlayer.css +1 -1
- package/dist/es/components/video-subtitle-player/VideoSubtitlePlayer.mobile.css +1 -1
- package/dist/es/components/video-subtitle-player/VideoSubtitlePlayer.pc.css +1 -1
- package/dist/es/components/video-subtitle-player/VideoSubtitlePlayer2.js +43 -0
- package/dist/es/components/video-subtitle-player/VideoSubtitlePlayerMobile.js +29 -46
- package/dist/es/components/video-subtitle-player/VideoSubtitlePlayerPC.js +94 -74
- package/dist/es/components/video-subtitle-player/layouts/VideoSubtitlePlayerLayoutMobile.js +24 -21
- package/dist/es/components/video-subtitle-player/layouts/VideoSubtitlePlayerLayoutPC.js +58 -50
- package/dist/es/components/video-subtitle-player/useVideoSubtitleStore.js +61 -56
- package/dist/es/components/video-subtitle-player/useXGPlayer.js +38 -35
- package/dist/es/hooks/useStayTimeReport.js +29 -29
- package/dist/es/index.js +33 -70
- package/dist/es/node_modules/.pnpm/xgplayer@3.0.24_core-js@3.47.0/node_modules/xgplayer/dist/index.min.css +1 -0
- package/dist/es/packages/subtitle/lib/index.js +2 -0
- package/dist/es/packages/subtitle/lib/src/json-converter.js +22 -23
- package/dist/es/packages/subtitle/lib/src/parser.js +41 -54
- package/dist/es/react-components.css +27 -27
- package/package.json +28 -29
- package/dist/cjs/components/button/Button.js +0 -1
- package/dist/cjs/components/comic-text/ComicText.js +0 -4
- package/dist/cjs/components/dock/Duck.js +0 -1
- package/dist/cjs/components/flip-text/FlipText.js +0 -1
- package/dist/cjs/components/gradient-text/index.js +0 -1
- package/dist/cjs/components/image-compare/ImageCompare.js +0 -1
- package/dist/cjs/components/image-viewer/ImageThumbnails.js +0 -1
- package/dist/cjs/components/image-viewer/ImageViewer.js +0 -1
- package/dist/cjs/components/message/Message.js +0 -1
- package/dist/cjs/components/pointer/Pointer.js +0 -1
- package/dist/cjs/components/scratch-to-reveal/ScratchToReveal.js +0 -1
- package/dist/cjs/components/shimmer-button/ShimmerButton.js +0 -1
- package/dist/cjs/components/shiny-button/ShinyButton.js +0 -1
- package/dist/cjs/components/shiny-text/ShinyText.js +0 -1
- package/dist/cjs/components/sparkles-text/SparklesText.js +0 -1
- package/dist/cjs/components/split-text/SplitText.js +0 -1
- package/dist/cjs/components/subtitle-player/CurrentMode.js +0 -2
- package/dist/cjs/components/subtitle-player/LyricsMode.js +0 -2
- package/dist/cjs/components/subtitle-player/SubtitlePlayer.js +0 -1
- package/dist/cjs/components/text-animate/TextAnimate.js +0 -2
- package/dist/cjs/components/text-type/TextType.js +0 -1
- package/dist/cjs/components/txt-reader/index.module.css.js +0 -1
- package/dist/cjs/components/typing-animation/index.js +0 -1
- package/dist/cjs/components/variable-proximity/index.js +0 -1
- package/dist/cjs/components/video-dialog/VideoDialog.js +0 -1
- package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayer.js +0 -1
- package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/dist/index.min.css +0 -1
- package/dist/es/components/button/Button.js +0 -72
- package/dist/es/components/comic-text/ComicText.js +0 -52
- package/dist/es/components/dock/Duck.js +0 -80
- package/dist/es/components/flip-text/FlipText.js +0 -38
- package/dist/es/components/gradient-text/index.js +0 -22
- package/dist/es/components/image-compare/ImageCompare.js +0 -127
- package/dist/es/components/image-viewer/ImageThumbnails.js +0 -73
- package/dist/es/components/image-viewer/ImageViewer.js +0 -141
- package/dist/es/components/message/Message.js +0 -220
- package/dist/es/components/pointer/Pointer.js +0 -75
- package/dist/es/components/scratch-to-reveal/ScratchToReveal.js +0 -97
- package/dist/es/components/shimmer-button/ShimmerButton.js +0 -42
- package/dist/es/components/shiny-button/ShinyButton.js +0 -61
- package/dist/es/components/shiny-text/ShinyText.js +0 -76
- package/dist/es/components/sparkles-text/SparklesText.js +0 -71
- package/dist/es/components/split-text/SplitText.js +0 -116
- package/dist/es/components/subtitle-player/CurrentMode.js +0 -78
- package/dist/es/components/subtitle-player/LyricsMode.js +0 -152
- package/dist/es/components/subtitle-player/SubtitlePlayer.js +0 -234
- package/dist/es/components/text-animate/TextAnimate.js +0 -310
- package/dist/es/components/text-type/TextType.js +0 -121
- package/dist/es/components/txt-reader/index.module.css.js +0 -10
- package/dist/es/components/typing-animation/index.js +0 -56
- package/dist/es/components/variable-proximity/index.js +0 -211
- package/dist/es/components/video-dialog/VideoDialog.js +0 -113
- package/dist/es/components/video-subtitle-player/VideoSubtitlePlayer.js +0 -74
- package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/dist/index.min.css +0 -1
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { jsx as L } from "react/jsx-runtime";
|
|
2
|
-
import { useState as W, useRef as d, useEffect as j, useCallback as y } from "react";
|
|
3
|
-
import { useMotionValue as v, useAnimationFrame as z, useTransform as A, motion as B } from "motion/react";
|
|
4
|
-
import './ShinyText.css';/* empty css */
|
|
5
|
-
const G = ({
|
|
6
|
-
text: T,
|
|
7
|
-
disabled: k = !1,
|
|
8
|
-
speed: $ = 2,
|
|
9
|
-
className: x = "",
|
|
10
|
-
color: u = "#b5b5b5",
|
|
11
|
-
shineColor: h = "#ffffff",
|
|
12
|
-
spread: C = 120,
|
|
13
|
-
yoyo: M = !1,
|
|
14
|
-
pauseOnHover: l = !1,
|
|
15
|
-
direction: f = "left",
|
|
16
|
-
delay: D = 0
|
|
17
|
-
}) => {
|
|
18
|
-
const [R, p] = W(!1), e = v(0), a = d(0), c = d(null), r = d(f === "left" ? 1 : -1), t = $ * 1e3, b = D * 1e3;
|
|
19
|
-
z((o) => {
|
|
20
|
-
if (k || R) {
|
|
21
|
-
c.current = null;
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
if (c.current === null) {
|
|
25
|
-
c.current = o;
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
const I = o - c.current;
|
|
29
|
-
if (c.current = o, a.current += I, M) {
|
|
30
|
-
const s = t + b, i = s * 2, n = a.current % i;
|
|
31
|
-
if (n < t) {
|
|
32
|
-
const m = n / t * 100;
|
|
33
|
-
e.set(r.current === 1 ? m : 100 - m);
|
|
34
|
-
} else if (n < s)
|
|
35
|
-
e.set(r.current === 1 ? 100 : 0);
|
|
36
|
-
else if (n < s + t) {
|
|
37
|
-
const g = 100 - (n - s) / t * 100;
|
|
38
|
-
e.set(r.current === 1 ? g : 100 - g);
|
|
39
|
-
} else
|
|
40
|
-
e.set(r.current === 1 ? 0 : 100);
|
|
41
|
-
} else {
|
|
42
|
-
const s = t + b, i = a.current % s;
|
|
43
|
-
if (i < t) {
|
|
44
|
-
const n = i / t * 100;
|
|
45
|
-
e.set(r.current === 1 ? n : 100 - n);
|
|
46
|
-
} else
|
|
47
|
-
e.set(r.current === 1 ? 100 : 0);
|
|
48
|
-
}
|
|
49
|
-
}), j(() => {
|
|
50
|
-
r.current = f === "left" ? 1 : -1, a.current = 0, e.set(0);
|
|
51
|
-
}, [f]);
|
|
52
|
-
const S = A(e, (o) => `${150 - o * 2}% center`), E = y(() => {
|
|
53
|
-
l && p(!0);
|
|
54
|
-
}, [l]), P = y(() => {
|
|
55
|
-
l && p(!1);
|
|
56
|
-
}, [l]), F = {
|
|
57
|
-
backgroundImage: `linear-gradient(${C}deg, ${u} 0%, ${u} 35%, ${h} 50%, ${u} 65%, ${u} 100%)`,
|
|
58
|
-
backgroundSize: "200% auto",
|
|
59
|
-
WebkitBackgroundClip: "text",
|
|
60
|
-
backgroundClip: "text",
|
|
61
|
-
WebkitTextFillColor: "transparent"
|
|
62
|
-
};
|
|
63
|
-
return /* @__PURE__ */ L(
|
|
64
|
-
B.span,
|
|
65
|
-
{
|
|
66
|
-
className: `shiny-text ${x}`,
|
|
67
|
-
style: { ...F, backgroundPosition: S },
|
|
68
|
-
onMouseEnter: E,
|
|
69
|
-
onMouseLeave: P,
|
|
70
|
-
children: T
|
|
71
|
-
}
|
|
72
|
-
);
|
|
73
|
-
};
|
|
74
|
-
export {
|
|
75
|
-
G as default
|
|
76
|
-
};
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as r, jsxs as g } from "react/jsx-runtime";
|
|
3
|
-
import { motion as k } from "motion/react";
|
|
4
|
-
import { useState as L, useEffect as S } from "react";
|
|
5
|
-
import y from "clsx";
|
|
6
|
-
import './SparklesText.css';/* empty css */
|
|
7
|
-
const M = ({ id: i, x: t, y: o, color: s, delay: l, scale: c }) => /* @__PURE__ */ r(
|
|
8
|
-
k.svg,
|
|
9
|
-
{
|
|
10
|
-
className: "xiping-sparkle",
|
|
11
|
-
initial: { opacity: 0, left: t, top: o },
|
|
12
|
-
animate: {
|
|
13
|
-
opacity: [0, 1, 0],
|
|
14
|
-
scale: [0, c, 0],
|
|
15
|
-
rotate: [75, 120, 150]
|
|
16
|
-
},
|
|
17
|
-
transition: { duration: 0.8, repeat: 1 / 0, delay: l },
|
|
18
|
-
width: "21",
|
|
19
|
-
height: "21",
|
|
20
|
-
viewBox: "0 0 21 21",
|
|
21
|
-
children: /* @__PURE__ */ r(
|
|
22
|
-
"path",
|
|
23
|
-
{
|
|
24
|
-
d: "M9.82531 0.843845C10.0553 0.215178 10.9446 0.215178 11.1746 0.843845L11.8618 2.72026C12.4006 4.19229 12.3916 6.39157 13.5 7.5C14.6084 8.60843 16.8077 8.59935 18.2797 9.13822L20.1561 9.82534C20.7858 10.0553 20.7858 10.9447 20.1561 11.1747L18.2797 11.8618C16.8077 12.4007 14.6084 12.3916 13.5 13.5C12.3916 14.6084 12.4006 16.8077 11.8618 18.2798L11.1746 20.1562C10.9446 20.7858 10.0553 20.7858 9.82531 20.1562L9.13819 18.2798C8.59932 16.8077 8.60843 14.6084 7.5 13.5C6.39157 12.3916 4.19225 12.4007 2.72023 11.8618L0.843814 11.1747C0.215148 10.9447 0.215148 10.0553 0.843814 9.82534L2.72023 9.13822C4.19225 8.59935 6.39157 8.60843 7.5 7.5C8.60843 6.39157 8.59932 4.19229 9.13819 2.72026L9.82531 0.843845Z",
|
|
25
|
-
fill: s
|
|
26
|
-
}
|
|
27
|
-
)
|
|
28
|
-
},
|
|
29
|
-
i
|
|
30
|
-
), I = ({
|
|
31
|
-
children: i,
|
|
32
|
-
colors: t = { first: "#9E7AFF", second: "#FE8BBB" },
|
|
33
|
-
className: o,
|
|
34
|
-
sparklesCount: s = 10,
|
|
35
|
-
...l
|
|
36
|
-
}) => {
|
|
37
|
-
const [c, p] = L([]);
|
|
38
|
-
return S(() => {
|
|
39
|
-
const n = () => {
|
|
40
|
-
const e = `${Math.random() * 100}%`, a = `${Math.random() * 100}%`, h = Math.random() > 0.5 ? t.first : t.second, x = Math.random() * 2, C = Math.random() * 1 + 0.3, u = Math.random() * 10 + 5;
|
|
41
|
-
return { id: `${e}-${a}-${Date.now()}`, x: e, y: a, color: h, delay: x, scale: C, lifespan: u };
|
|
42
|
-
}, d = () => {
|
|
43
|
-
const e = Array.from({ length: s }, n);
|
|
44
|
-
p(e);
|
|
45
|
-
}, m = () => {
|
|
46
|
-
p(
|
|
47
|
-
(e) => e.map((a) => a.lifespan <= 0 ? n() : { ...a, lifespan: a.lifespan - 0.1 })
|
|
48
|
-
);
|
|
49
|
-
};
|
|
50
|
-
d();
|
|
51
|
-
const f = setInterval(m, 100);
|
|
52
|
-
return () => clearInterval(f);
|
|
53
|
-
}, [t.first, t.second, s]), /* @__PURE__ */ r(
|
|
54
|
-
"div",
|
|
55
|
-
{
|
|
56
|
-
className: y("xiping-sparkles-text", o),
|
|
57
|
-
...l,
|
|
58
|
-
style: {
|
|
59
|
-
"--sparkles-first-color": `${t.first}`,
|
|
60
|
-
"--sparkles-second-color": `${t.second}`
|
|
61
|
-
},
|
|
62
|
-
children: /* @__PURE__ */ g("span", { className: "xiping-sparkles-text-wrapper", children: [
|
|
63
|
-
c.map((n) => /* @__PURE__ */ r(M, { ...n }, n.id)),
|
|
64
|
-
/* @__PURE__ */ r("strong", { children: i })
|
|
65
|
-
] })
|
|
66
|
-
}
|
|
67
|
-
);
|
|
68
|
-
};
|
|
69
|
-
export {
|
|
70
|
-
I as SparklesText
|
|
71
|
-
};
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { jsx as E } from "react/jsx-runtime";
|
|
2
|
-
import { useRef as m, useEffect as F } from "react";
|
|
3
|
-
import { gsap as i } from "gsap";
|
|
4
|
-
import { ScrollTrigger as N } from "gsap/ScrollTrigger";
|
|
5
|
-
import { SplitText as S } from "gsap/SplitText";
|
|
6
|
-
import j from "clsx";
|
|
7
|
-
import './SplitText.css';/* empty css */
|
|
8
|
-
i.registerPlugin(N, S);
|
|
9
|
-
const A = ({
|
|
10
|
-
text: l,
|
|
11
|
-
className: C = "",
|
|
12
|
-
delay: g = 100,
|
|
13
|
-
duration: d = 0.6,
|
|
14
|
-
ease: h = "power3.out",
|
|
15
|
-
splitType: n = "chars",
|
|
16
|
-
from: w = { opacity: 0, y: 40 },
|
|
17
|
-
to: c = { opacity: 1, y: 0 },
|
|
18
|
-
threshold: x = 0.1,
|
|
19
|
-
rootMargin: y = "-100px",
|
|
20
|
-
textAlign: R = "center",
|
|
21
|
-
onLetterAnimationComplete: T
|
|
22
|
-
}) => {
|
|
23
|
-
const a = m(null), $ = m(!1), o = m(null);
|
|
24
|
-
return F(() => {
|
|
25
|
-
if (typeof window > "u" || !a.current || !l) return;
|
|
26
|
-
const p = a.current;
|
|
27
|
-
$.current = !1;
|
|
28
|
-
const b = n === "lines";
|
|
29
|
-
b && (p.style.position = "relative");
|
|
30
|
-
let r;
|
|
31
|
-
try {
|
|
32
|
-
r = new S(p, {
|
|
33
|
-
type: n,
|
|
34
|
-
absolute: b,
|
|
35
|
-
linesClass: "split-line"
|
|
36
|
-
});
|
|
37
|
-
} catch (t) {
|
|
38
|
-
console.error("Failed to create SplitText:", t);
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
let e;
|
|
42
|
-
switch (n) {
|
|
43
|
-
case "lines":
|
|
44
|
-
e = r.lines;
|
|
45
|
-
break;
|
|
46
|
-
case "words":
|
|
47
|
-
e = r.words;
|
|
48
|
-
break;
|
|
49
|
-
case "chars":
|
|
50
|
-
e = r.chars;
|
|
51
|
-
break;
|
|
52
|
-
default:
|
|
53
|
-
e = r.chars;
|
|
54
|
-
}
|
|
55
|
-
if (!e || e.length === 0) {
|
|
56
|
-
console.warn("No targets found for SplitText animation"), r.revert();
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
e.forEach((t) => {
|
|
60
|
-
t.style.willChange = "transform, opacity";
|
|
61
|
-
});
|
|
62
|
-
const v = (1 - x) * 100, s = /^(-?\d+(?:\.\d+)?)(px|em|rem|%)?$/.exec(y), u = s ? parseFloat(s[1]) : 0, k = s && s[2] || "px", P = u < 0 ? `-=${Math.abs(u)}${k}` : `+=${u}${k}`, D = `top ${v}%${P}`, f = i.timeline({
|
|
63
|
-
scrollTrigger: {
|
|
64
|
-
trigger: p,
|
|
65
|
-
start: D,
|
|
66
|
-
toggleActions: "play none none none",
|
|
67
|
-
once: !0,
|
|
68
|
-
onToggle: (t) => {
|
|
69
|
-
o.current = t;
|
|
70
|
-
}
|
|
71
|
-
},
|
|
72
|
-
smoothChildTiming: !0,
|
|
73
|
-
onComplete: () => {
|
|
74
|
-
$.current = !0, i.set(e, {
|
|
75
|
-
...c,
|
|
76
|
-
clearProps: "willChange",
|
|
77
|
-
immediateRender: !0
|
|
78
|
-
}), T?.();
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
return f.set(e, { ...w, immediateRender: !1, force3D: !0 }), f.to(e, {
|
|
82
|
-
...c,
|
|
83
|
-
duration: d,
|
|
84
|
-
ease: h,
|
|
85
|
-
stagger: g / 1e3,
|
|
86
|
-
force3D: !0
|
|
87
|
-
}), () => {
|
|
88
|
-
f.kill(), o.current && (o.current.kill(), o.current = null), i.killTweensOf(e), r && r.revert();
|
|
89
|
-
};
|
|
90
|
-
}, [
|
|
91
|
-
l,
|
|
92
|
-
g,
|
|
93
|
-
d,
|
|
94
|
-
h,
|
|
95
|
-
n,
|
|
96
|
-
w,
|
|
97
|
-
c,
|
|
98
|
-
x,
|
|
99
|
-
y,
|
|
100
|
-
T
|
|
101
|
-
]), /* @__PURE__ */ E(
|
|
102
|
-
"p",
|
|
103
|
-
{
|
|
104
|
-
ref: a,
|
|
105
|
-
className: j("xiping-split-parent", C),
|
|
106
|
-
style: {
|
|
107
|
-
textAlign: R,
|
|
108
|
-
wordWrap: "break-word"
|
|
109
|
-
},
|
|
110
|
-
children: l
|
|
111
|
-
}
|
|
112
|
-
);
|
|
113
|
-
};
|
|
114
|
-
export {
|
|
115
|
-
A as SplitText
|
|
116
|
-
};
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { jsxs as u, Fragment as v, jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import { renderTextWithWords as g } from "./utils.js";
|
|
3
|
-
import './CurrentMode.css';/* empty css */
|
|
4
|
-
const C = ({
|
|
5
|
-
currentEntries: l,
|
|
6
|
-
wordHoverFactory: p,
|
|
7
|
-
enableWordHover: o,
|
|
8
|
-
overlayNode: a,
|
|
9
|
-
onSubtitleClick: i,
|
|
10
|
-
textAlign: x = "left"
|
|
11
|
-
}) => l.some(({ entry: e }) => e !== null) ? /* @__PURE__ */ u(v, { children: [
|
|
12
|
-
l.map(({ entry: e, label: n }) => {
|
|
13
|
-
if (!e)
|
|
14
|
-
return null;
|
|
15
|
-
const h = e.text.split(`
|
|
16
|
-
`), m = o ? p(e, n) : void 0, _ = h.reduce(
|
|
17
|
-
(t, d, s) => {
|
|
18
|
-
if (!e.words || e.words.length === 0)
|
|
19
|
-
return t.content.push(
|
|
20
|
-
/* @__PURE__ */ r(
|
|
21
|
-
"div",
|
|
22
|
-
{
|
|
23
|
-
className: "xiping-subtitle-player__current-line",
|
|
24
|
-
children: d
|
|
25
|
-
},
|
|
26
|
-
s
|
|
27
|
-
)
|
|
28
|
-
), t;
|
|
29
|
-
const c = g(
|
|
30
|
-
d,
|
|
31
|
-
e.words,
|
|
32
|
-
t.nextWordIndex,
|
|
33
|
-
s,
|
|
34
|
-
m
|
|
35
|
-
);
|
|
36
|
-
return t.content.push(
|
|
37
|
-
/* @__PURE__ */ r(
|
|
38
|
-
"div",
|
|
39
|
-
{
|
|
40
|
-
className: "xiping-subtitle-player__current-line",
|
|
41
|
-
children: c.nodes
|
|
42
|
-
},
|
|
43
|
-
s
|
|
44
|
-
)
|
|
45
|
-
), {
|
|
46
|
-
content: t.content,
|
|
47
|
-
nextWordIndex: c.nextWordIndex
|
|
48
|
-
};
|
|
49
|
-
},
|
|
50
|
-
{ content: [], nextWordIndex: 0 }
|
|
51
|
-
).content;
|
|
52
|
-
return /* @__PURE__ */ u(
|
|
53
|
-
"div",
|
|
54
|
-
{
|
|
55
|
-
className: "xiping-subtitle-player__current-item",
|
|
56
|
-
"data-label": n || void 0,
|
|
57
|
-
onClick: i ? (t) => i(t, e, n) : void 0,
|
|
58
|
-
style: i ? { cursor: "pointer" } : void 0,
|
|
59
|
-
children: [
|
|
60
|
-
n && /* @__PURE__ */ r("span", { className: "xiping-subtitle-player__current-label", children: n }),
|
|
61
|
-
/* @__PURE__ */ r(
|
|
62
|
-
"div",
|
|
63
|
-
{
|
|
64
|
-
className: "xiping-subtitle-player__current-text",
|
|
65
|
-
style: { textAlign: x },
|
|
66
|
-
children: _
|
|
67
|
-
}
|
|
68
|
-
)
|
|
69
|
-
]
|
|
70
|
-
},
|
|
71
|
-
`${e.index}-${n || ""}`
|
|
72
|
-
);
|
|
73
|
-
}),
|
|
74
|
-
o && /* @__PURE__ */ r("div", { className: "xiping-subtitle-player__current-hover-layer", children: a })
|
|
75
|
-
] }) : null;
|
|
76
|
-
export {
|
|
77
|
-
C as CurrentMode
|
|
78
|
-
};
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import { jsxs as $, Fragment as K, jsx as c } from "react/jsx-runtime";
|
|
2
|
-
import { useRef as W, useMemo as I, useEffect as b, useCallback as j } from "react";
|
|
3
|
-
import A from "clsx";
|
|
4
|
-
import { secondsToTimeString as H, renderTextWithWords as L } from "./utils.js";
|
|
5
|
-
import './LyricsMode.css';/* empty css */
|
|
6
|
-
const M = ({
|
|
7
|
-
entry: t,
|
|
8
|
-
label: s,
|
|
9
|
-
endTime: v,
|
|
10
|
-
currentTime: _,
|
|
11
|
-
isActive: y,
|
|
12
|
-
isFirstItem: u,
|
|
13
|
-
timeString: g,
|
|
14
|
-
textAlign: N,
|
|
15
|
-
enableWordHover: d,
|
|
16
|
-
wordHoverFactory: h,
|
|
17
|
-
onSubtitleClick: n,
|
|
18
|
-
itemRef: e
|
|
19
|
-
}) => {
|
|
20
|
-
const r = _ > v, i = j(
|
|
21
|
-
(m) => {
|
|
22
|
-
n && n(m, t, s);
|
|
23
|
-
},
|
|
24
|
-
[n, t, s]
|
|
25
|
-
), o = I(
|
|
26
|
-
() => d ? h(t, s) : void 0,
|
|
27
|
-
[d, h, t, s]
|
|
28
|
-
), l = I(() => t.text.split(`
|
|
29
|
-
`).reduce(
|
|
30
|
-
(p, x, a) => {
|
|
31
|
-
if (!t.words || t.words.length === 0)
|
|
32
|
-
return p.content.push(
|
|
33
|
-
/* @__PURE__ */ c(
|
|
34
|
-
"div",
|
|
35
|
-
{
|
|
36
|
-
className: "xiping-subtitle-player__lyrics-line",
|
|
37
|
-
children: x
|
|
38
|
-
},
|
|
39
|
-
a
|
|
40
|
-
)
|
|
41
|
-
), p;
|
|
42
|
-
const f = L(
|
|
43
|
-
x,
|
|
44
|
-
t.words,
|
|
45
|
-
p.nextWordIndex,
|
|
46
|
-
a,
|
|
47
|
-
o
|
|
48
|
-
);
|
|
49
|
-
return p.content.push(
|
|
50
|
-
/* @__PURE__ */ c(
|
|
51
|
-
"div",
|
|
52
|
-
{
|
|
53
|
-
className: "xiping-subtitle-player__lyrics-line",
|
|
54
|
-
children: f.nodes
|
|
55
|
-
},
|
|
56
|
-
a
|
|
57
|
-
)
|
|
58
|
-
), {
|
|
59
|
-
content: p.content,
|
|
60
|
-
nextWordIndex: f.nextWordIndex
|
|
61
|
-
};
|
|
62
|
-
},
|
|
63
|
-
{ content: [], nextWordIndex: 0 }
|
|
64
|
-
).content, [t.text, t.words, o]);
|
|
65
|
-
return /* @__PURE__ */ $(
|
|
66
|
-
"div",
|
|
67
|
-
{
|
|
68
|
-
ref: e,
|
|
69
|
-
className: A("xiping-subtitle-player__lyrics-item", {
|
|
70
|
-
"xiping-subtitle-player__lyrics-item--active": y,
|
|
71
|
-
"xiping-subtitle-player__lyrics-item--past": r
|
|
72
|
-
}),
|
|
73
|
-
"data-label": s || void 0,
|
|
74
|
-
onClick: n ? i : void 0,
|
|
75
|
-
style: n ? { cursor: "pointer" } : void 0,
|
|
76
|
-
children: [
|
|
77
|
-
u && g && /* @__PURE__ */ c("span", { className: "xiping-subtitle-player__lyrics-time", children: g }),
|
|
78
|
-
s && /* @__PURE__ */ c("span", { className: "xiping-subtitle-player__lyrics-label", children: s }),
|
|
79
|
-
/* @__PURE__ */ c(
|
|
80
|
-
"div",
|
|
81
|
-
{
|
|
82
|
-
className: "xiping-subtitle-player__lyrics-text",
|
|
83
|
-
style: { textAlign: N },
|
|
84
|
-
children: l
|
|
85
|
-
}
|
|
86
|
-
)
|
|
87
|
-
]
|
|
88
|
-
}
|
|
89
|
-
);
|
|
90
|
-
}, q = ({
|
|
91
|
-
groupedEntriesByTime: t,
|
|
92
|
-
currentTime: s,
|
|
93
|
-
wordHoverFactory: v,
|
|
94
|
-
enableWordHover: _,
|
|
95
|
-
overlayNode: y,
|
|
96
|
-
containerRef: u,
|
|
97
|
-
onSubtitleClick: g,
|
|
98
|
-
textAlign: N = "left"
|
|
99
|
-
}) => {
|
|
100
|
-
const d = W(null), h = W(null), n = I(() => {
|
|
101
|
-
for (let e = 0; e < t.length; e++) {
|
|
102
|
-
const r = t[e];
|
|
103
|
-
for (let i = 0; i < r.length; i++) {
|
|
104
|
-
const { startTime: o, endTime: l } = r[i];
|
|
105
|
-
if (s >= o && s <= l)
|
|
106
|
-
return `${e}-${i}`;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return null;
|
|
110
|
-
}, [t, s]);
|
|
111
|
-
return b(() => {
|
|
112
|
-
if (n && n !== h.current && d.current && u.current) {
|
|
113
|
-
const e = u.current, r = d.current, i = r.offsetTop, o = e.clientHeight, l = r.clientHeight, m = i - o / 2 + l / 2;
|
|
114
|
-
e.scrollTo({
|
|
115
|
-
top: m,
|
|
116
|
-
behavior: "smooth"
|
|
117
|
-
}), h.current = n;
|
|
118
|
-
}
|
|
119
|
-
}, [n, u]), /* @__PURE__ */ $(K, { children: [
|
|
120
|
-
t.map((e, r) => {
|
|
121
|
-
const i = e[0];
|
|
122
|
-
if (!i)
|
|
123
|
-
return null;
|
|
124
|
-
const o = H(i.startTime);
|
|
125
|
-
return /* @__PURE__ */ c("div", { className: "xiping-subtitle-player__group", children: e.map(({ entry: l, label: m, startTime: p, endTime: x }, a) => {
|
|
126
|
-
const f = s >= p && s <= x, w = `${r}-${a}`;
|
|
127
|
-
return /* @__PURE__ */ c(
|
|
128
|
-
M,
|
|
129
|
-
{
|
|
130
|
-
entry: l,
|
|
131
|
-
label: m,
|
|
132
|
-
endTime: x,
|
|
133
|
-
currentTime: s,
|
|
134
|
-
isActive: f,
|
|
135
|
-
isFirstItem: a === 0,
|
|
136
|
-
timeString: a === 0 ? o : void 0,
|
|
137
|
-
textAlign: N,
|
|
138
|
-
enableWordHover: _,
|
|
139
|
-
wordHoverFactory: v,
|
|
140
|
-
onSubtitleClick: g,
|
|
141
|
-
itemRef: f ? d : void 0
|
|
142
|
-
},
|
|
143
|
-
w
|
|
144
|
-
);
|
|
145
|
-
}) }, r);
|
|
146
|
-
}),
|
|
147
|
-
_ && /* @__PURE__ */ c("div", { className: "xiping-subtitle-player__lyrics-hover-layer", children: y })
|
|
148
|
-
] });
|
|
149
|
-
};
|
|
150
|
-
export {
|
|
151
|
-
q as LyricsMode
|
|
152
|
-
};
|