@xiping/react-components 1.0.70 → 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 -1
- 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 -1
- 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 +26 -27
- 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/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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* components/button/Button.css */
|
|
2
|
-
.xiping-button{
|
|
2
|
+
.xiping-button{cursor:pointer;border:none;border-radius:6px;outline:none;justify-content:center;align-items:center;font-weight:500;transition:all .2s;display:inline-flex}.xiping-button:focus{outline-offset:2px;outline:2px solid #0000;box-shadow:0 0 0 3px #3b82f680}.xiping-button--small{padding:6px 12px;font-size:14px}.xiping-button--medium{padding:8px 16px;font-size:16px}.xiping-button--large{padding:12px 24px;font-size:18px}.xiping-button--primary{color:#fff;background-color:#2563eb}.xiping-button--primary:hover:not(:disabled){background-color:#1d4ed8}.xiping-button--primary:focus{box-shadow:0 0 0 3px #2563eb80}.xiping-button--secondary{color:#fff;background-color:#4b5563}.xiping-button--secondary:hover:not(:disabled){background-color:#374151}.xiping-button--secondary:focus{box-shadow:0 0 0 3px #4b556380}.xiping-button--outline{color:#374151;background-color:#0000;border:1px solid #d1d5db}.xiping-button--outline:hover:not(:disabled){background-color:#f9fafb}.xiping-button--outline:focus{box-shadow:0 0 0 3px #4b556380}.xiping-button--ghost{color:#374151;background-color:#0000}.xiping-button--ghost:hover:not(:disabled){background-color:#f3f4f6}.xiping-button--ghost:focus{box-shadow:0 0 0 3px #4b556380}.xiping-button--disabled{opacity:.5;cursor:not-allowed}.xiping-button--loading{cursor:wait}.xiping-button--full-width{width:100%}.xiping-button__icon-left{margin-right:8px}.xiping-button__icon-right{margin-left:8px}.xiping-button__spinner{width:16px;height:16px;margin-left:-4px;margin-right:8px;animation:1s linear infinite xiping-spin}.xiping-button__spinner-circle{opacity:.25}.xiping-button__spinner-path{opacity:.75}@keyframes xiping-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
/* components/comic-text/ComicText.css */
|
|
@@ -7,51 +7,51 @@
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
/* components/dock/Duck.css */
|
|
10
|
-
.xiping-dock{
|
|
10
|
+
.xiping-dock{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid;border-radius:1rem;justify-content:center;align-items:center;gap:.5rem;width:max-content;height:58px;margin-top:2rem;margin-left:auto;margin-right:auto;padding:.5rem;display:flex}@supports ((-webkit-backdrop-filter:blur(12px)) or (backdrop-filter:blur(12px))){.xiping-dock{background-color:#ffffff1a}.dark .xiping-dock{background-color:#0000001a}}.xiping-dock--top{align-items:flex-start}.xiping-dock--middle{align-items:center}.xiping-dock--bottom{align-items:flex-end}.xiping-dock-icon{aspect-ratio:1;cursor:pointer;border-radius:9999px;justify-content:center;align-items:center;display:flex}
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
/* components/flip-text/FlipText.css */
|
|
14
|
-
.xiping-flip-container{
|
|
14
|
+
.xiping-flip-container{justify-content:center;gap:.5rem;display:flex}.xiping-flip-char{transform-origin:50%;filter:drop-shadow(0 1px 1px #0000000d)}
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
/* components/gradient-text/index.css */
|
|
18
|
-
.xiping-gradient-text{
|
|
18
|
+
.xiping-gradient-text{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;border-radius:1.25rem;flex-direction:row;justify-content:center;align-items:center;max-width:fit-content;margin:0 auto;font-weight:500;transition:box-shadow .5s ease-out;display:flex;position:relative;overflow:hidden}.xiping-gradient-text__overlay{border-radius:inherit;z-index:0;pointer-events:none;background-size:300% 100%;animation:linear infinite xiping-gradient;position:absolute;inset:0}.xiping-gradient-text__overlay:before{content:"";border-radius:inherit;z-index:-1;background-color:#060010;width:calc(100% - 2px);height:calc(100% - 2px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes xiping-gradient{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.xiping-gradient-text__content{z-index:2;color:#0000;background-size:300% 100%;-webkit-background-clip:text;background-clip:text;animation:linear infinite xiping-gradient;display:inline-block;position:relative}
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
/* components/hyper-text/HyperText.css */
|
|
22
|
-
.xiping-hyper-container{
|
|
22
|
+
.xiping-hyper-container{padding-top:.5rem;padding-bottom:.5rem;font-size:2.25rem;font-weight:700;line-height:2.5rem;overflow:hidden}.xiping-hyper-char{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.xiping-hyper-space{width:.75rem}
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
/* components/image-compare/ImageCompare.css */
|
|
26
|
-
.xiping-image-compare-container{
|
|
26
|
+
.xiping-image-compare-container{-webkit-user-select:none;user-select:none;width:100%;position:relative;overflow:hidden}.xiping-image-compare-label{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10;background-color:#0009;border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;position:absolute;top:1rem}.xiping-image-compare-label-original{right:1rem}.xiping-image-compare-label-modified{left:1rem}.xiping-image-compare-overlay{height:100%;position:absolute;inset:0;overflow:hidden}.xiping-image-compare-divider{cursor:ew-resize;background-color:#ffffffe6;position:absolute;top:0;bottom:0;box-shadow:0 0 0 1px #0000004d,inset 0 0 0 1px #ffffff80,0 0 8px #0003}.xiping-image-compare-divider-button{background-color:#fffffff2;border:2px solid #0003;border-radius:50%;justify-content:center;align-items:center;width:2rem;height:2rem;transition:box-shadow .2s,transform .2s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #fffc,0 4px 12px #0000004d,0 2px 4px #0003}.xiping-image-compare-divider-button:hover{transform:translate(-50%,-50%)scale(1.05);box-shadow:0 0 0 1px #ffffffe6,0 6px 16px #0006,0 3px 6px #0000004d}.xiping-image-compare-divider-button:active{transform:translate(-50%,-50%)scale(.95)}.xiping-image-compare-divider-icon{color:#1f2937;width:1.5rem;height:1.5rem}.xiping-image-compare-divider-theme-dark{background-color:#000000e6;box-shadow:0 0 0 1px #ffffff4d,inset 0 0 0 1px #00000080,0 0 8px #fff3}.xiping-image-compare-divider-button-theme-dark{background-color:#000000f2;border:2px solid #fff3;box-shadow:0 0 0 1px #000c,0 4px 12px #ffffff4d,0 2px 4px #fff3}.xiping-image-compare-divider-button-theme-dark:hover{box-shadow:0 0 0 1px #000000e6,0 6px 16px #fff6,0 3px 6px #ffffff4d}.xiping-image-compare-divider-theme-dark .xiping-image-compare-divider-icon{color:#f3f4f6}
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
/* components/image-viewer/ImageThumbnails.css */
|
|
30
|
-
.xiping-thumbnails-wrapper{
|
|
30
|
+
.xiping-thumbnails-wrapper{z-index:10;height:6rem;padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);background-color:#00000080;flex-shrink:0}.xiping-thumbnails-wrapper--hidden{display:none}.xiping-thumbnails-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;width:100vw;height:6rem;overflow:auto hidden}.xiping-thumbnails-scroll::-webkit-scrollbar{display:none}.xiping-thumbnails-container{gap:.5rem;min-width:max-content;height:6rem;padding:.5rem;display:flex}.xiping-thumbnail-item{aspect-ratio:1;cursor:pointer;border:2px solid #0000;flex-shrink:0;height:100%;transition:all .2s}.xiping-thumbnail-item--active{border-color:#fff}.xiping-thumbnail-image{object-fit:contain;width:100%;height:100%}
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
/* components/image-viewer/ImageViewer.css */
|
|
34
|
-
.xiping-
|
|
34
|
+
.xiping-modal-root{z-index:2147483647;position:fixed;inset:0}.xiping-modal-backdrop{z-index:0;position:absolute;inset:0}.xiping-modal-content{z-index:1;flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}@keyframes xiping-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.xiping-spinner-icon{color:#fff;width:48px;height:48px;animation:1s linear infinite xiping-spin}.xiping-wrapper{width:100vw;height:100vh;padding-top:env(safe-area-inset-top,0);flex-direction:column;display:flex;position:relative}.xiping-tool-wrapper{z-index:10;gap:16px;display:flex;position:absolute;top:16px;right:16px}.xiping-close-icon,.xiping-download-icon{color:#fff;cursor:pointer}.xiping-main-content{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative}.xiping-pinch-content{width:100%;height:100%}.xiping-image{object-fit:contain;pointer-events:none;width:100vw;height:100%}.xiping-loading{background-color:#00000080;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.xiping-modal-content{overflow:hidden}.xiping-modal-overlay{background-color:#000000b3}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
/* components/message/Message.css */
|
|
38
|
-
.xiping-message{
|
|
38
|
+
.xiping-message{align-items:flex-start;max-width:80%;margin-bottom:16px;display:flex}.xiping-message.user{flex-direction:row-reverse;align-self:flex-end;margin-left:auto}.xiping-message.assistant{align-self:flex-start;margin-right:auto}.xiping-message__avatar{background-color:#e0e0e0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;margin:0 8px;display:flex;overflow:hidden}.xiping-message__content{background-color:#fff;border-radius:12px;max-width:100%;padding:12px 16px;position:relative;box-shadow:0 1px 2px #0000001a}.xiping-message:not(:has(.xiping-message__avatar)) .xiping-message__content{margin:0}.xiping-message.user .xiping-message__content{color:#fff;background-color:#007bff}.xiping-message__text{word-break:break-word;line-height:1.5}.xiping-message__timestamp{color:#888;text-align:right;margin-top:4px;font-size:.75rem}.xiping-message.user .xiping-message__timestamp{color:#fffc}.xiping-message__thinking{align-items:center;margin-top:8px;display:flex}.xiping-message__thinking-dots{align-items:center;margin-right:8px;display:flex}.xiping-message__thinking-dots span{background-color:#888;border-radius:50%;width:8px;height:8px;margin:0 2px;animation:1.4s ease-in-out infinite both xiping-thinking;display:inline-block}.xiping-message__thinking-dots span:first-child{animation-delay:-.32s}.xiping-message__thinking-dots span:nth-child(2){animation-delay:-.16s}.xiping-message__thinking-text{color:#888;font-size:.9rem}.xiping-message.user .xiping-message__thinking-text{color:#fffc}@keyframes xiping-thinking{0%,80%,to{transform:scale(.6)}40%{transform:scale(1)}}.xiping-message__loading{justify-content:center;align-items:center;padding:8px;display:flex}.xiping-message__loading-spinner{border:3px solid #007bff4d;border-top-color:#007bff;border-radius:50%;width:24px;height:24px;animation:1s ease-in-out infinite xiping-spin}@keyframes xiping-spin{to{transform:rotate(360deg)}}.xiping-message__think{background-color:#0000000d;border-radius:8px;margin-top:12px;padding:8px 12px;font-size:.9rem}.xiping-message.user .xiping-message__think{background-color:#ffffff1a}.xiping-message__think-header{align-items:center;gap:8px;margin-bottom:8px;font-weight:500;display:flex}.xiping-message__think-toggle{cursor:pointer;color:#666;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:background-color .2s;display:flex}.xiping-message__think-toggle:hover{background-color:#0000000d}.xiping-message__think-content{opacity:1;max-height:1000px;transition:all .3s ease-in-out;overflow:hidden}.xiping-message__think-content.hidden{opacity:0;max-height:0;margin:0;padding:0}.xiping-message__knowledge-sources{background-color:#00000008;border-radius:4px;margin-top:8px;padding:8px;font-size:.9em}.xiping-message__knowledge-sources-header{color:#666;margin-bottom:4px;font-weight:500}.xiping-message__knowledge-sources-list{margin:0;padding:0;list-style:none}.xiping-message__knowledge-source-item{margin-bottom:4px}.xiping-message__knowledge-source-item:last-child{margin-bottom:0}.xiping-message__knowledge-source-item a{color:#06c;text-decoration:none}.xiping-message__knowledge-source-item a:hover{text-decoration:underline}.xiping-message__knowledge-source-description{color:#666;margin-top:2px;margin-left:8px;font-size:.9em}.xiping-message__text-container{flex-direction:column;gap:4px;display:flex;position:relative}.xiping-message__copy-button{cursor:pointer;color:#666;opacity:0;background:0 0;border:none;border-radius:4px;justify-content:center;align-self:flex-end;align-items:center;padding:4px;transition:all .2s;display:flex}.xiping-message__text-container:hover .xiping-message__copy-button{opacity:1}.xiping-message__copy-button:hover{color:#333;background-color:#0000000d}.xiping-message__copy-tooltip{color:#fff;white-space:nowrap;background-color:#333;border-radius:4px;padding:4px 8px;font-size:12px;animation:2s ease-in-out xiping-fadeInOut;position:absolute;top:-24px;right:0}@keyframes xiping-fadeInOut{0%{opacity:0;transform:translateY(4px)}10%{opacity:1;transform:translateY(0)}90%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
/* components/pointer/Pointer.css */
|
|
42
|
-
.xiping-pointer{
|
|
42
|
+
.xiping-pointer{z-index:50;pointer-events:none;position:fixed;transform:translate(-50%,-50%)}.xiping-pointer-icon{stroke:#fff;color:#000;transform:rotate(-70deg)}
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
/* components/scratch-to-reveal/ScratchToReveal.css */
|
|
46
|
-
.xiping-scratch-to-reveal{
|
|
46
|
+
.xiping-scratch-to-reveal{-webkit-user-select:none;user-select:none;position:relative}.xiping-scratch-canvas{position:absolute;top:0;left:0}
|
|
47
47
|
|
|
48
48
|
|
|
49
49
|
/* components/shimmer-button/ShimmerButton.css */
|
|
50
|
-
.xiping-shimmer-button{
|
|
50
|
+
.xiping-shimmer-button{z-index:0;cursor:pointer;white-space:nowrap;color:#fff;background:var(--bg);border-radius:var(--radius);border:1px solid #ffffff1a;justify-content:center;align-items:center;padding:.75rem 1.5rem;transition:transform .3s ease-in-out;display:flex;position:relative;overflow:hidden;transform:translateZ(0)}.xiping-shimmer-button:active{transform:translateY(1px)translateZ(0)}@media (prefers-color-scheme:dark){.xiping-shimmer-button{color:#000}}.xiping-shimmer-button-spark-container{z-index:-30;filter:blur(2px);position:absolute;inset:0;overflow:visible;container-type:size}.xiping-shimmer-button-spark{aspect-ratio:1;height:100cqh;animation:xiping-shimmer-slide var(--speed) ease-in-out infinite alternate;border-radius:0;position:absolute;inset:0;-webkit-mask:none;mask:none}.xiping-shimmer-button-spark-before{background:conic-gradient(from calc(270deg - (var(--spread) * .5)), transparent 0, var(--shimmer-color) var(--spread), transparent var(--spread));width:auto;animation:xiping-spin-around calc(var(--speed) * 2) infinite linear;position:absolute;inset:-100%;transform:rotate(0)}.xiping-shimmer-button-highlight{border-radius:1rem;width:100%;height:100%;transition:all .3s ease-in-out;position:absolute;inset:0;transform:translateZ(0);box-shadow:inset 0 -8px 10px #ffffff1f}.xiping-shimmer-button:hover .xiping-shimmer-button-highlight{box-shadow:inset 0 -6px 10px #ffffff40}.xiping-shimmer-button:active .xiping-shimmer-button-highlight{box-shadow:inset 0 -10px 10px #ffffff40}.xiping-shimmer-button-backdrop{z-index:-20;background:var(--bg);border-radius:var(--radius);inset:var(--cut);position:absolute}@keyframes xiping-shimmer-slide{to{transform:translate(calc(100cqw - 100%))}}@keyframes xiping-spin-around{0%{transform:translateZ(0)rotate(0)}15%,35%{transform:translateZ(0)rotate(90deg)}65%,85%{transform:translateZ(0)rotate(270deg)}to{transform:translateZ(0)rotate(360deg)}}
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
/* components/shiny-button/ShinyButton.css */
|
|
54
|
-
.xiping-shiny-button{
|
|
54
|
+
.xiping-shiny-button{cursor:pointer;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid;border-radius:.5rem;padding:.5rem 1.5rem;font-weight:500;transition:box-shadow .3s ease-in-out;position:relative}.xiping-shiny-button:hover{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}@media (prefers-color-scheme:dark){.xiping-shiny-button{background:radial-gradient(circle at 50% 0%, var(--primary) 10%, transparent 60%)}.xiping-shiny-button:hover{box-shadow:0 0 20px var(--primary) / 10%}}.xiping-shiny-button-text{text-transform:uppercase;letter-spacing:.05em;color:#000000a6;width:100%;height:100%;font-size:.875rem;display:block;position:relative}@media (prefers-color-scheme:dark){.xiping-shiny-button-text{color:#ffffffe6;font-weight:300}}.xiping-shiny-button-border{z-index:10;border-radius:inherit;padding:1px;display:block;position:absolute;inset:0}
|
|
55
55
|
|
|
56
56
|
|
|
57
57
|
/* components/shiny-text/ShinyText.css */
|
|
@@ -59,56 +59,56 @@
|
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
/* components/sparkles-text/SparklesText.css */
|
|
62
|
-
.xiping-sparkle{pointer-events:none;
|
|
62
|
+
.xiping-sparkle{pointer-events:none;z-index:20;position:absolute}.xiping-sparkles-text{font-size:3.75rem;font-weight:700}.xiping-sparkles-text-wrapper{display:inline-block;position:relative}
|
|
63
63
|
|
|
64
64
|
|
|
65
65
|
/* components/split-text/SplitText.css */
|
|
66
|
-
.xiping-split-parent{
|
|
66
|
+
.xiping-split-parent{white-space:normal;display:inline-block;overflow:hidden}
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
/* components/subtitle-player/CurrentMode.css */
|
|
70
|
-
.xiping-subtitle-player__current-item{
|
|
70
|
+
.xiping-subtitle-player__current-item{flex-direction:column;gap:.25rem;transition:all .2s;display:flex}.xiping-subtitle-player__current-label{color:#ffffffb3;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;font-size:.75rem;font-weight:600}.xiping-subtitle-player__current-text{text-shadow:0 2px 4px #00000080;font-size:1rem;font-weight:500}.xiping-subtitle-player__current-line{margin:.25rem 0}.xiping-subtitle-player__current-line:first-child{margin-top:0}.xiping-subtitle-player__current-line:last-child{margin-bottom:0}.xiping-subtitle-player__current-hover-layer{pointer-events:none;position:absolute;inset:0}@media (width<=768px){.xiping-subtitle-player__current-text{font-size:.9rem}}
|
|
71
71
|
|
|
72
72
|
|
|
73
73
|
/* components/subtitle-player/LyricsMode.css */
|
|
74
|
-
.xiping-subtitle-player__lyrics-time{
|
|
74
|
+
.xiping-subtitle-player__lyrics-time{color:#ffffff80;-webkit-user-select:none;user-select:none;margin-bottom:.25rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.7rem;font-weight:500}.xiping-subtitle-player__lyrics-item{flex-direction:column;gap:.25rem;transition:all .2s;display:flex}.xiping-subtitle-player__lyrics-item--active{color:#fbbf24;font-weight:600;transition:all .3s;position:relative}.xiping-subtitle-player__lyrics-item--active:before{content:"";background:#fbbf24;border-radius:2px;width:4px;height:92%;position:absolute;top:50%;left:-1rem;transform:translateY(-50%)}.xiping-subtitle-player__lyrics-item--past{opacity:.5;color:#fff9}.xiping-subtitle-player__lyrics-label{color:#ffffffb3;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;font-size:.75rem;font-weight:600}.xiping-subtitle-player__lyrics-text{text-shadow:0 2px 4px #00000080;font-size:1rem;font-weight:500}.xiping-subtitle-player__lyrics-line{margin:.25rem 0}.xiping-subtitle-player__lyrics-line:first-child{margin-top:0}.xiping-subtitle-player__lyrics-line:last-child{margin-bottom:0}.xiping-subtitle-player__lyrics-hover-layer{pointer-events:none;position:absolute;inset:0}.xiping-subtitle-player--lyrics{scroll-behavior:smooth;gap:.5rem;max-height:600px;overflow-y:auto}.xiping-subtitle-player--lyrics::-webkit-scrollbar{width:8px}.xiping-subtitle-player--lyrics::-webkit-scrollbar-track{background:#ffffff1a;border-radius:4px}.xiping-subtitle-player--lyrics::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}.xiping-subtitle-player--lyrics::-webkit-scrollbar-thumb:hover{background:#ffffff80}.xiping-subtitle-player__group{border-radius:.5rem;flex-direction:column;gap:.5rem;width:100%;margin:-.5rem;padding:.5rem;transition:all .2s;display:flex}.xiping-subtitle-player__group:hover{background-color:#ffffff1a}.xiping-subtitle-player__group:hover .xiping-subtitle-player__lyrics-item{transform:translate(4px)}.xiping-subtitle-player__group:hover .xiping-subtitle-player__lyrics-item--active{background-color:#fbbf2426}.xiping-subtitle-player__lyrics-item--active .xiping-subtitle-word{color:#fbbf24;font-weight:600}@media (width<=768px){.xiping-subtitle-player__lyrics-text{font-size:.9rem}}
|
|
75
75
|
|
|
76
76
|
|
|
77
77
|
/* components/subtitle-player/SubtitlePlayer.css */
|
|
78
|
-
.xiping-subtitle-player{
|
|
78
|
+
.xiping-subtitle-player{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;box-sizing:border-box;background:#000000bf;border-radius:.5rem;flex-direction:column;gap:.75rem;max-width:100%;padding:1rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;display:flex;position:relative}.xiping-subtitle-player__hover-overlay{z-index:10;pointer-events:auto;position:absolute;transform:translate(-50%,.5rem)}.xiping-subtitle-player:has(.xiping-subtitle-player__current-item:only-child){align-items:center}.xiping-subtitle-player:has(.xiping-subtitle-player__current-item:not(:only-child)){align-items:flex-start}.xiping-subtitle-word{border-radius:2px;margin:0 .05em;padding:0 .05em;transition:all .2s;display:inline-block;position:relative}.xiping-subtitle-word:hover{background-color:#ffffff1a;transform:translateY(-1px)}.xiping-subtitle-word-before,.xiping-subtitle-word-after{display:inline}@media (width<=768px){.xiping-subtitle-player{padding:.75rem;font-size:.9rem}}
|
|
79
79
|
|
|
80
80
|
|
|
81
81
|
/* components/text-animate/TextAnimate.css */
|
|
82
|
-
.xiping-text-animate{white-space:pre-wrap}.xiping-text-animate-segment{display:inline-block
|
|
82
|
+
.xiping-text-animate{white-space:pre-wrap}.xiping-text-animate-segment{white-space:pre;display:inline-block}.xiping-text-animate-segment--line{display:block}
|
|
83
83
|
|
|
84
84
|
|
|
85
85
|
/* components/text-type/TextType.css */
|
|
86
|
-
.xiping-text-type{
|
|
86
|
+
.xiping-text-type{white-space:pre-wrap;display:inline-block}.xiping-text-type__content{display:inline-block}.xiping-text-type__cursor{opacity:1;margin-left:.25rem;display:inline-block}.xiping-text-type__cursor--hidden{display:none}
|
|
87
87
|
|
|
88
88
|
|
|
89
89
|
/* components/txt-reader/index.module.css */
|
|
90
|
-
._xiping-top-progress_rkm9f_23{position:fixed;
|
|
90
|
+
._xiping-top-progress_rkm9f_23{background-color:#f08;height:10px;position:fixed;top:0;left:0;right:0}._xiping-container_rkm9f_33{width:100%;height:100%;position:relative;overflow-y:auto}._xiping-content_rkm9f_41{white-space:pre-wrap;word-break:break-word;width:100%}._xiping-bottom-progress_rkm9f_48{color:#fff;background-color:#000000b3;border-radius:4px;padding:.25rem .5rem;font-size:.875rem;position:fixed;bottom:1.25rem;right:1.25rem}._xiping-text-content_rkm9f_63::-webkit-scrollbar{width:8px}._xiping-text-content_rkm9f_63::-webkit-scrollbar-thumb{background:#0003;box-shadow:inset 0 0 5px #0003}._xiping-text-content_rkm9f_63::-webkit-scrollbar-track{background:#00000014;border-radius:0;box-shadow:inset 0 0 5px #0003}
|
|
91
91
|
|
|
92
92
|
|
|
93
93
|
/* components/typing-animation/index.css */
|
|
94
|
-
.xiping-typing-animation{font-size:2.25rem;font-weight:700;line-height:5rem
|
|
94
|
+
.xiping-typing-animation{letter-spacing:-.02em;font-size:2.25rem;font-weight:700;line-height:5rem}
|
|
95
95
|
|
|
96
96
|
|
|
97
97
|
/* components/variable-proximity/index.css */
|
|
98
|
-
.xiping-variable-proximity{font-family:Roboto Flex,Noto Sans SC,PingFang SC,Microsoft YaHei,SimHei,sans-serif}.xiping-variable-proximity__sr-only{
|
|
98
|
+
.xiping-variable-proximity{font-family:Roboto Flex,Noto Sans SC,PingFang SC,Microsoft YaHei,SimHei,sans-serif}.xiping-variable-proximity__sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
|
|
99
99
|
|
|
100
100
|
|
|
101
101
|
/* components/video-dialog/VideoDialog.css */
|
|
102
|
-
.xiping-video-dialog{position:relative}.xiping-video-dialog-container{position:relative
|
|
102
|
+
.xiping-video-dialog{position:relative}.xiping-video-dialog-container{cursor:pointer;position:relative}.xiping-video-dialog-thumbnail{border:1px solid;border-radius:.375rem;width:100%;transition:all .2s ease-out;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.xiping-video-dialog-container:hover .xiping-video-dialog-thumbnail{filter:brightness(.8)}.xiping-video-dialog-overlay{border-radius:1rem;justify-content:center;align-items:center;transition:all .2s ease-out;display:flex;position:absolute;inset:0;transform:scale(.9)}.xiping-video-dialog-container:hover .xiping-video-dialog-overlay{transform:scale(1)}.xiping-video-dialog-play-outer{background-color:hsla(var(--primary-h), var(--primary-s), var(--primary-l), .1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:9999px;justify-content:center;align-items:center;width:7rem;height:7rem;display:flex}.xiping-video-dialog-play-inner{background:linear-gradient(to bottom, hsla(var(--primary-h), var(--primary-s), var(--primary-l), .3), hsl(var(--primary-h), var(--primary-s), var(--primary-l)));border-radius:9999px;justify-content:center;align-items:center;width:5rem;height:5rem;transition:all .2s ease-out;display:flex;position:relative;transform:scale(1);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.xiping-video-dialog-container:hover .xiping-video-dialog-play-inner{transform:scale(1.2)}.xiping-video-dialog-play-icon{fill:#fff;color:#fff;filter:drop-shadow(0 4px 3px #00000012)drop-shadow(0 2px 2px #0000000f);width:2rem;height:2rem;transition:transform .2s ease-out;transform:scale(1)}.xiping-video-dialog-container:hover .xiping-video-dialog-play-icon{transform:scale(1.05)}.xiping-video-dialog-modal{z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.xiping-video-dialog-modal-content{aspect-ratio:16/9;width:100%;max-width:56rem;margin:0 1rem;position:relative}@media (width>=768px){.xiping-video-dialog-modal-content{margin:0}}.xiping-video-dialog-close-button{color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background-color:#17171780;border-radius:9999px;padding:.5rem;font-size:1.25rem;position:absolute;top:-4rem;right:0;box-shadow:0 0 0 1px #0000001a}@media (prefers-color-scheme:dark){.xiping-video-dialog-close-button{color:#000;background-color:#f5f5f580}}.xiping-video-dialog-close-icon{width:1.25rem;height:1.25rem}.xiping-video-dialog-video-wrapper{isolation:isolate;z-index:1;border:2px solid #fff;border-radius:1rem;width:100%;height:100%;position:relative;overflow:hidden}.xiping-video-dialog-iframe{border-radius:1rem;width:100%;height:100%}:root{--primary-h:221.2;--primary-s:83.2%;--primary-l:53.3%}
|
|
103
103
|
|
|
104
104
|
|
|
105
105
|
/* components/video-subtitle-player/VideoSubtitlePlayer.css */
|
|
106
|
-
.xiping-video-subtitle-player{
|
|
106
|
+
.xiping-video-subtitle-player{background:#1a1a1a;border-radius:8px;width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;overflow:hidden}.xiping-video-subtitle-player__video-wrapper{background:#000;width:100%;height:100%;overflow:hidden}.xiping-video-subtitle-player__video-container{background:#000;width:100%;height:100%;position:relative;overflow:hidden}.xiping-video-subtitle-player__video{width:100%;height:100%;padding:0;position:absolute;top:0;left:0}.xiping-video-subtitle-player__video-container .xgplayer{width:100%!important;height:100%!important}.xiping-video-subtitle-player__video-container .xgplayer video{object-fit:fill!important}.xiping-video-subtitle-player__subtitle-container{background:#0000004d;width:100%;height:100%;padding:20px;overflow-y:auto}.xiping-video-subtitle-player__right{background:#00000080;flex-direction:column;width:100%;height:100%;display:flex}.xiping-video-subtitle-player__detail{color:#fff;flex:1;padding:24px;overflow-y:auto}.xiping-video-subtitle-player__detail-loading{color:#ffffffb3;flex-direction:column;justify-content:center;align-items:center;gap:16px;height:100%;display:flex}.xiping-video-subtitle-player__detail-loading-spinner{border:3px solid #ffffff1a;border-top-color:#fbbf24;border-radius:50%;width:40px;height:40px;animation:1s linear infinite xiping-vsp-spin}@keyframes xiping-vsp-spin{to{transform:rotate(360deg)}}.xiping-video-subtitle-player__detail-empty{color:#ffffff80;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;height:100%;display:flex}.xiping-video-subtitle-player__detail-empty-icon{opacity:.5;font-size:48px}.xiping-video-subtitle-player__detail-empty-text{font-size:14px;line-height:1.6}.xiping-video-subtitle-player__detail-content{flex-direction:column;gap:20px;display:flex}.xiping-video-subtitle-player__detail-word{color:#fbbf24;margin-bottom:8px;font-size:32px;font-weight:700;line-height:1.2}.xiping-video-subtitle-player__detail-pronunciation{color:#ffffffb3;margin-bottom:4px;font-size:18px;font-style:italic}.xiping-video-subtitle-player__detail-pos{color:#fbbf24;text-transform:uppercase;background:#fbbf2433;border-radius:4px;width:fit-content;margin-bottom:8px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-block}.xiping-video-subtitle-player__detail-label{color:#ffffff80;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:12px;font-weight:600}.xiping-video-subtitle-player__detail-text{color:#ffffffe6;font-size:16px;line-height:1.6}.xiping-video-subtitle-player__detail-translation,.xiping-video-subtitle-player__detail-definition{border-bottom:1px solid #ffffff1a;padding-bottom:16px}.xiping-video-subtitle-player__detail-definition{border-bottom:none}.xiping-video-subtitle-player__detail-examples{flex-direction:column;gap:16px;display:flex}.xiping-video-subtitle-player__detail-example{background:#ffffff0d;border-left:3px solid #fbbf24;border-radius:8px;padding:16px}.xiping-video-subtitle-player__detail-example-en{color:#fffffff2;margin-bottom:8px;font-size:15px;line-height:1.6}.xiping-video-subtitle-player__detail-example-zh{color:#ffffffb3;border-left:2px solid #fff3;padding-left:12px;font-size:14px;line-height:1.6}.xiping-video-subtitle-player__subtitle-container::-webkit-scrollbar{width:8px}.xiping-video-subtitle-player__detail::-webkit-scrollbar{width:8px}.xiping-video-subtitle-player__subtitle-container::-webkit-scrollbar-track{background:#ffffff0d;border-radius:4px}.xiping-video-subtitle-player__detail::-webkit-scrollbar-track{background:#ffffff0d;border-radius:4px}.xiping-video-subtitle-player__subtitle-container::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.xiping-video-subtitle-player__detail::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.xiping-video-subtitle-player__subtitle-container::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.xiping-video-subtitle-player__detail::-webkit-scrollbar-thumb:hover{background:#ffffff4d}
|
|
107
107
|
|
|
108
108
|
|
|
109
109
|
/* components/video-subtitle-player/VideoSubtitlePlayer.mobile.css */
|
|
110
|
-
.xiping-video-subtitle-player--mobile{
|
|
110
|
+
.xiping-video-subtitle-player--mobile{flex-direction:column;height:100%;min-height:0;display:flex}.xiping-video-subtitle-player__mobile-video{aspect-ratio:16/9;background:#000;flex:none;width:100%}.xiping-video-subtitle-player__mobile-video-wrapper{background:#000;width:100%;height:100%;overflow:hidden}.xiping-video-subtitle-player__mobile-video-container{background-color:#a62c2c;width:100%;height:100%;position:relative;overflow:hidden}.xiping-video-subtitle-player__mobile-video-container .xgplayer{width:100%!important;height:100%!important}.xiping-video-subtitle-player__mobile-video-container .xgplayer video{object-fit:fill!important}.xiping-video-subtitle-player__mobile-subtitle{-webkit-overflow-scrolling:touch;background:#0000004d;flex:1;min-height:0;padding:12px 16px;overflow-y:auto}
|
|
111
111
|
|
|
112
112
|
|
|
113
113
|
/* components/video-subtitle-player/VideoSubtitlePlayer.pc.css */
|
|
114
|
-
.xiping-video-subtitle-player--pc .xiping-video-subtitle-player__panel-group,.xiping-video-subtitle-player--pc .xiping-video-subtitle-player__panel-group-inner{width:100%;height:100%}.xiping-video-subtitle-player--pc .xiping-video-subtitle-player__right{border-left:1px solid
|
|
114
|
+
.xiping-video-subtitle-player--pc .xiping-video-subtitle-player__panel-group,.xiping-video-subtitle-player--pc .xiping-video-subtitle-player__panel-group-inner{width:100%;height:100%}.xiping-video-subtitle-player--pc .xiping-video-subtitle-player__right{border-left:1px solid #ffffff1a}.xiping-video-subtitle-player__resize-handle--horizontal{cursor:col-resize;background:#ffffff1a;flex-shrink:0;width:2px;transition:background .2s;position:relative}.xiping-video-subtitle-player__resize-handle--horizontal:hover{background:#fbbf2480}.xiping-video-subtitle-player__resize-handle--horizontal:active{background:#fbbf24cc}.xiping-video-subtitle-player__resize-handle--horizontal:before{content:"";cursor:col-resize;position:absolute;inset:0 -4px}.xiping-video-subtitle-player__resize-handle--vertical{cursor:row-resize;background:#ffffff1a;flex-shrink:0;height:2px;transition:background .2s;position:relative}.xiping-video-subtitle-player__resize-handle--vertical:hover{background:#fbbf2480}.xiping-video-subtitle-player__resize-handle--vertical:active{background:#fbbf24cc}.xiping-video-subtitle-player__resize-handle--vertical:before{content:"";cursor:row-resize;position:absolute;inset:-4px 0}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xiping/react-components",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.77",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
7
7
|
"module": "./dist/es/index.js",
|
|
@@ -38,66 +38,65 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@floating-ui/dom": "^1.7.6",
|
|
41
|
-
"@heroui/react": "^2.8.10",
|
|
42
41
|
"@radix-ui/react-scroll-area": "^1.2.10",
|
|
43
42
|
"@react-spring/web": "9.7.5",
|
|
44
|
-
"@tiptap/pm": "^3.
|
|
45
|
-
"@tiptap/react": "^3.
|
|
46
|
-
"@tiptap/starter-kit": "^3.
|
|
43
|
+
"@tiptap/pm": "^3.22.1",
|
|
44
|
+
"@tiptap/react": "^3.22.1",
|
|
45
|
+
"@tiptap/starter-kit": "^3.22.1",
|
|
47
46
|
"@use-gesture/react": "^10.3.1",
|
|
48
|
-
"@xiping/llm-utils": "1.0.
|
|
47
|
+
"@xiping/llm-utils": "1.0.71",
|
|
49
48
|
"@xiping/subtitle": "1.0.52",
|
|
50
|
-
"ahooks": "^3.9.
|
|
51
|
-
"axios": "^1.
|
|
49
|
+
"ahooks": "^3.9.7",
|
|
50
|
+
"axios": "^1.14.0",
|
|
52
51
|
"bowser": "^2.14.1",
|
|
53
52
|
"canvas-confetti": "^1.9.4",
|
|
54
53
|
"class-variance-authority": "^0.7.1",
|
|
55
54
|
"clsx": "^2.1.1",
|
|
56
55
|
"dayjs": "^1.11.20",
|
|
57
56
|
"gsap": "^3.14.2",
|
|
58
|
-
"lodash-es": "^4.
|
|
59
|
-
"lucide-react": "^
|
|
57
|
+
"lodash-es": "^4.18.1",
|
|
58
|
+
"lucide-react": "^1.7.0",
|
|
60
59
|
"motion": "^12.38.0",
|
|
61
60
|
"react": "^19.2.4",
|
|
62
61
|
"react-device-detect": "^2.2.3",
|
|
63
62
|
"react-dom": "^19.2.4",
|
|
64
63
|
"react-force-graph-3d": "^1.29.1",
|
|
65
64
|
"react-hot-toast": "^2.6.0",
|
|
66
|
-
"react-icons": "^5.
|
|
65
|
+
"react-icons": "^5.6.0",
|
|
67
66
|
"react-markdown": "^10.1.0",
|
|
68
|
-
"react-resizable-panels": "^4.
|
|
69
|
-
"react-router-dom": "^7.
|
|
70
|
-
"xgplayer": "^3.0.
|
|
67
|
+
"react-resizable-panels": "^4.9.0",
|
|
68
|
+
"react-router-dom": "^7.14.0",
|
|
69
|
+
"xgplayer": "^3.0.24",
|
|
71
70
|
"zustand": "^5.0.12"
|
|
72
71
|
},
|
|
73
72
|
"devDependencies": {
|
|
74
|
-
"@chromatic-com/storybook": "^5.
|
|
73
|
+
"@chromatic-com/storybook": "^5.1.1",
|
|
75
74
|
"@eslint/js": "^9.39.4",
|
|
76
|
-
"@faker-js/faker": "^10.
|
|
77
|
-
"@storybook/addon-docs": "^10.
|
|
78
|
-
"@storybook/addon-onboarding": "^10.
|
|
79
|
-
"@storybook/react-vite": "^10.
|
|
80
|
-
"@tailwindcss/vite": "^4.2.
|
|
75
|
+
"@faker-js/faker": "^10.4.0",
|
|
76
|
+
"@storybook/addon-docs": "^10.3.4",
|
|
77
|
+
"@storybook/addon-onboarding": "^10.3.4",
|
|
78
|
+
"@storybook/react-vite": "^10.3.4",
|
|
79
|
+
"@tailwindcss/vite": "^4.2.2",
|
|
81
80
|
"@types/canvas-confetti": "^1.9.0",
|
|
82
81
|
"@types/lodash-es": "^4.17.12",
|
|
83
82
|
"@types/node": "^22.19.15",
|
|
84
83
|
"@types/react": "^19.2.14",
|
|
85
84
|
"@types/react-dom": "^19.2.3",
|
|
86
|
-
"@vitejs/plugin-react": "^
|
|
85
|
+
"@vitejs/plugin-react": "^6.0.1",
|
|
87
86
|
"eslint": "^9.39.4",
|
|
88
87
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
89
88
|
"eslint-plugin-react-refresh": "^0.5.2",
|
|
90
|
-
"eslint-plugin-storybook": "^10.
|
|
89
|
+
"eslint-plugin-storybook": "^10.3.4",
|
|
91
90
|
"globals": "^17.4.0",
|
|
92
91
|
"rollup-preserve-directives": "^1.1.3",
|
|
93
92
|
"sharp": "^0.34.5",
|
|
94
|
-
"storybook": "^10.
|
|
93
|
+
"storybook": "^10.3.4",
|
|
95
94
|
"svgo": "^4.0.1",
|
|
96
|
-
"tailwindcss": "^4.2.
|
|
95
|
+
"tailwindcss": "^4.2.2",
|
|
97
96
|
"terser": "^5.46.1",
|
|
98
97
|
"typescript": "^5.9.3",
|
|
99
|
-
"typescript-eslint": "^8.
|
|
100
|
-
"vite": "^
|
|
98
|
+
"typescript-eslint": "^8.58.0",
|
|
99
|
+
"vite": "^8.0.3",
|
|
101
100
|
"vite-plugin-dts": "^4.5.4",
|
|
102
101
|
"vite-plugin-image-optimizer": "^2.0.3",
|
|
103
102
|
"vite-plugin-lib-inject-css": "^2.2.2",
|
|
@@ -111,5 +110,5 @@
|
|
|
111
110
|
"engines": {
|
|
112
111
|
"node": ">=22"
|
|
113
112
|
},
|
|
114
|
-
"gitHead": "
|
|
113
|
+
"gitHead": "53cce3c7a028d237fa19f768d9a392bea054d49a"
|
|
115
114
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./Button.css');const t=require("react/jsx-runtime");;/* empty css */const b=({variant:l="primary",size:r="medium",className:o,children:u,leftIcon:e,rightIcon:i,isLoading:n=!1,isDisabled:s=!1,fullWidth:c=!1,type:a="button",...p})=>{const x=["xiping-button",`xiping-button--${l}`,`xiping-button--${r}`,s&&"xiping-button--disabled",c&&"xiping-button--full-width",n&&"xiping-button--loading",o].filter(Boolean).join(" ");return t.jsxs("button",{type:a,className:x,disabled:s||n,...p,children:[n&&t.jsxs("svg",{className:"xiping-button__spinner",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[t.jsx("circle",{className:"xiping-button__spinner-circle",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),t.jsx("path",{className:"xiping-button__spinner-path",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),!n&&e&&t.jsx("span",{className:"xiping-button__icon-left",children:e}),u,!n&&i&&t.jsx("span",{className:"xiping-button__icon-right",children:i})]})};exports.Button=b;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./ComicText.css');const a=require("react/jsx-runtime"),n=require("motion/react"),s=require("clsx");;/* empty css */function c({children:t,className:o,style:i,fontSize:e=5}){if(typeof t!="string")throw new Error("children must be a string");const r="#EF4444";return a.jsx(n.motion.div,{className:s("xiping-comic-text",o),style:{fontSize:`${e}rem`,fontFamily:"'Bangers', 'Comic Sans MS', 'Impact', sans-serif",fontWeight:"900",WebkitTextStroke:`${e*.35}px #000000`,transform:"skewX(-10deg)",textTransform:"uppercase",filter:`
|
|
2
|
-
drop-shadow(5px 5px 0px #000000)
|
|
3
|
-
drop-shadow(3px 3px 0px ${r})
|
|
4
|
-
`,backgroundColor:"#FACC15",backgroundImage:`radial-gradient(circle at 1px 1px, ${r} 1px, transparent 0)`,backgroundSize:"8px 8px",backgroundClip:"text",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",...i},initial:{opacity:0,scale:.8,rotate:-2},animate:{opacity:1,scale:1,rotate:0},transition:{duration:.6,ease:[.175,.885,.32,1.275],type:"spring"},children:t})}exports.ComicText=c;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./Duck.css');const x=require("react/jsx-runtime"),n=require("motion/react"),i=require("react"),k=require("clsx");;/* empty css */const I=40,D=60,y=140,M=i.forwardRef(({className:o,children:a,iconSize:c=I,iconMagnification:u=D,iconDistance:d=y,direction:t="middle",...l},r)=>{const s=n.useMotionValue(1/0),m=()=>i.Children.map(a,e=>i.isValidElement(e)&&e.type===p?i.cloneElement(e,{...e.props,mouseX:s,size:c,magnification:u,distance:d}):e);return x.jsx(n.motion.div,{ref:r,onMouseMove:e=>s.set(e.pageX),onMouseLeave:()=>s.set(1/0),...l,className:k("xiping-dock",t==="top"&&"xiping-dock--top",t==="bottom"&&"xiping-dock--bottom",t==="middle"&&"xiping-dock--middle",o),children:m()})});M.displayName="Dock";const p=({size:o=I,magnification:a=D,distance:c=y,mouseX:u,className:d,children:t,...l})=>{const r=i.useRef(null),s=Math.max(6,o*.2),m=n.useMotionValue(1/0),e=n.useTransform(u??m,E=>{const g=r.current?.getBoundingClientRect()??{x:0,width:0};return E-g.x-g.width/2}),T=n.useTransform(e,[-c,0,c],[o,a,o]),f=n.useSpring(T,{mass:.1,stiffness:150,damping:12});return x.jsx(n.motion.div,{ref:r,style:{width:f,height:f,padding:s},className:k("xiping-dock-icon",d),...l,children:t})};p.displayName="DockIcon";exports.Dock=M;exports.DockIcon=p;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./FlipText.css');const e=require("react/jsx-runtime"),t=require("motion/react"),m=require("react"),x=require("clsx");;/* empty css */const h={hidden:{rotateX:-90,opacity:0},visible:{rotateX:0,opacity:1}};function j({children:n,duration:r=.5,delayMultiple:a=.08,className:s,as:c="span",variants:o,...l}){const d=t.motion.create(c),p=m.Children.toArray(n).join("").split("");return e.jsx("div",{className:"xiping-flip-container",children:e.jsx(t.AnimatePresence,{mode:"wait",children:p.map((u,i)=>e.jsx(d,{initial:"hidden",animate:"visible",exit:"hidden",variants:o||h,transition:{duration:r,delay:i*a},className:x("xiping-flip-char",s),...l,children:u},i))})})}exports.FlipText=j;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const e=require("react/jsx-runtime"),o=require("clsx");;/* empty css */function d({children:i,className:a="",colors:n=["#40ffaa","#4079ff","#40ffaa","#4079ff","#40ffaa"],animationSpeed:r=8,showBorder:s=!1}){const t={backgroundImage:`linear-gradient(to right, ${n.join(", ")})`,animationDuration:`${r}s`};return e.jsxs("div",{className:o("xiping-gradient-text",a),children:[s&&e.jsx("div",{className:"xiping-gradient-text__overlay",style:t}),e.jsx("div",{className:"xiping-gradient-text__content",style:t,children:i})]})}exports.GradientText=d;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./ImageCompare.css');const t=require("react/jsx-runtime"),f=require("clsx"),e=require("react");;/* empty css */const T=L=>{const{originalImage:a,modifiedImage:b,className:j,dividerWidth:c=1,originalLabel:S="Original",modifiedLabel:y="Modified",theme:x="light"}=L,[s,C]=e.useState(50),[w,N]=e.useState(16/9),p=e.useRef(null),l=e.useRef(!1),i=e.useRef(null),u=e.useRef(null),o=e.useRef(null),R=e.useCallback(n=>{if(!p.current)return;(!u.current||!l.current)&&(u.current=p.current.getBoundingClientRect());const r=u.current,m=(n-r.left)/r.width*100,g=Math.min(100,Math.max(0,m));C(g)},[]),d=e.useCallback(n=>{l.current&&(i.current!==null&&cancelAnimationFrame(i.current),i.current=requestAnimationFrame(()=>{R(n)}))},[R]),M=e.useCallback(n=>{d(n.clientX)},[d]),k=e.useCallback(n=>{n.touches.length>0&&d(n.touches[0].clientX)},[d]),E=e.useCallback(()=>{l.current=!0,u.current=null;const n=v=>M(v),r=v=>k(v),h=()=>{l.current=!1,i.current!==null&&(cancelAnimationFrame(i.current),i.current=null),o.current&&(o.current(),o.current=null)},m=()=>h(),g=()=>h();window.addEventListener("mousemove",n),window.addEventListener("touchmove",r,{passive:!1}),window.addEventListener("mouseup",m),window.addEventListener("touchend",g);const q=()=>{window.removeEventListener("mousemove",n),window.removeEventListener("touchmove",r),window.removeEventListener("mouseup",m),window.removeEventListener("touchend",g)};o.current=q},[M,k]);e.useEffect(()=>()=>{o.current&&(o.current(),o.current=null)},[]),e.useEffect(()=>{const n=new Image;n.onload=()=>{N(n.width/n.height)},n.src=a},[a]);const I=e.useMemo(()=>({backgroundRepeat:"no-repeat",backgroundPosition:"top left",backgroundImage:`url(${a})`,backgroundSize:"contain",aspectRatio:w}),[a,w]),P=e.useMemo(()=>({width:`${s}%`,backgroundImage:`url(${b})`,backgroundRepeat:"no-repeat",backgroundPosition:"top left",backgroundSize:"auto 100%"}),[s,b]),$=e.useMemo(()=>({left:`${s}%`,transform:"translateX(-50%)",width:typeof c=="number"?`${c}px`:c}),[s,c]);return t.jsxs("div",{ref:p,className:f("xiping-image-compare-container",j),style:I,children:[t.jsx("div",{className:"xiping-image-compare-label xiping-image-compare-label-original",children:S}),t.jsx("div",{className:"xiping-image-compare-overlay",style:P,children:t.jsx("div",{className:"xiping-image-compare-label xiping-image-compare-label-modified",children:y})}),t.jsx("div",{className:f("xiping-image-compare-divider",`xiping-image-compare-divider-theme-${x}`),style:$,onMouseDown:E,onTouchStart:E,children:t.jsx("div",{className:f("xiping-image-compare-divider-button",`xiping-image-compare-divider-button-theme-${x}`),children:t.jsx("svg",{className:"xiping-image-compare-divider-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:t.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 9l4-4 4 4m0 6l-4 4-4-4"})})})})]})};exports.default=T;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./ImageThumbnails.css');const a=require("react/jsx-runtime"),i=require("motion/react"),p=require("lodash-es"),f=require("react"),m=require("clsx");;/* empty css */const g="0%",x="100%",$="20%",l="80%",s="#0000",e="#000";function b(n){const t=i.useMotionValue(`linear-gradient(90deg, ${e}, ${e} ${g}, ${e} ${l}, ${s})`);return i.useMotionValueEvent(n,"change",r=>{r===0?i.animate(t,`linear-gradient(90deg, ${e}, ${e} ${g}, ${e} ${l}, ${s})`):r===1?i.animate(t,`linear-gradient(90deg, ${s}, ${e} ${$}, ${e} ${x}, ${e})`):(n.getPrevious()===0||n.getPrevious()===1)&&i.animate(t,`linear-gradient(90deg, ${s}, ${e} ${$}, ${e} ${l}, ${s})`)}),t}const v=({images:n,currentIndex:t,onImageSelect:r})=>{const c=f.useRef(null),{scrollXProgress:d}=i.useScroll({container:c}),h=b(d);return a.jsx("div",{className:m("xiping-thumbnails-wrapper",p.size(n)<=1&&"xiping-thumbnails-wrapper--hidden"),children:a.jsx(i.motion.div,{ref:c,style:{maskImage:h},className:"xiping-thumbnails-scroll",children:a.jsx("div",{className:"xiping-thumbnails-container",children:n.map((o,u)=>a.jsx("div",{className:m("xiping-thumbnail-item",u===t&&"xiping-thumbnail-item--active"),onClick:()=>r(u),children:a.jsx("img",{src:o,alt:"",className:"xiping-thumbnail-image",draggable:"false"})},o))})})})};exports.default=v;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./ImageViewer.css');const e=require("react/jsx-runtime"),f=require("@heroui/react"),T=require("../pinch-content/PinchContent.js"),O=require("./ImageThumbnails.js"),o=require("react"),m=require("clsx"),b=require("lucide-react"),v=require("motion/react");;/* empty css */const C=l=>{l.target.closest(".xiping-main-content")&&l.preventDefault()},U=l=>{const{isOpen:a,onClose:w,imgSrc:g,thumbnailImages:N,canDownload:j=!1,wrapperClassName:y,closeClassName:I,downloadClassName:E,toolWrapperClassName:L,initialIndex:k=0}=l,s=Array.isArray(g)?g:[g],R=N||s,q=Math.max(0,Math.min(k,s.length-1)),[d,p]=o.useState(q),[D,h]=o.useState(!0),u=o.useCallback(()=>{h(!0),w()},[w]),A=async()=>{const i=s[d];try{const r=await(await fetch(i)).blob(),t=window.URL.createObjectURL(r),c=document.createElement("a");c.href=t,c.download=i.split("/").pop()||"image",document.body.appendChild(c),c.click(),window.URL.revokeObjectURL(t),document.body.removeChild(c)}catch(n){console.error("Error downloading image:",n)}},M=()=>{h(!1)},S=()=>{h(!1)};o.useEffect(()=>{if(a)return document.addEventListener("touchmove",C,{passive:!1}),()=>{document.removeEventListener("touchmove",C)}},[a]);const x=o.useCallback(()=>{"vibrate"in navigator&&navigator.vibrate([50,50,50])},[]);return o.useEffect(()=>{if(!a)return;const i=n=>{const r=n.target;if(!(r.tagName==="INPUT"||r.tagName==="TEXTAREA"||r.isContentEditable))switch(n.key){case"ArrowLeft":n.preventDefault(),p(t=>t>0?t-1:(x(),t));break;case"ArrowRight":n.preventDefault(),p(t=>t<s.length-1?t+1:(x(),t));break;case"Escape":n.preventDefault(),u();break}};return document.addEventListener("keydown",i),()=>{document.removeEventListener("keydown",i)}},[a,s.length,u,x]),e.jsx(f.Modal,{isOpen:a,size:"full",onClose:u,classNames:{wrapper:m(y)},className:"xiping-modal-overlay",hideCloseButton:!0,portalContainer:document.body,children:e.jsx(f.ModalContent,{className:"xiping-modal-content",children:e.jsxs("div",{className:"xiping-wrapper",children:[e.jsxs("div",{className:m("xiping-tool-wrapper",L),children:[j&&e.jsx(b.Download,{size:24,className:m("xiping-download-icon",E),onClick:A}),e.jsx(b.X,{size:24,className:m("xiping-close-icon",I),onClick:u})]}),e.jsxs("div",{className:"xiping-main-content",children:[e.jsx(T.default,{canRotate:!1,className:"xiping-pinch-content",children:e.jsx(v.AnimatePresence,{mode:"wait",children:e.jsx(v.motion.img,{draggable:"false",src:s[d],alt:"",className:"xiping-image",onLoad:M,onError:S,initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:1.05},transition:{duration:.3,ease:"easeInOut"}},d)})}),D&&e.jsx("div",{className:"xiping-loading",children:e.jsx(f.Spinner,{color:"white",size:"lg"})})]}),e.jsx(O.default,{images:R,currentIndex:d,onImageSelect:p})]})})})};exports.default=U;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./Message.css');const e=require("react/jsx-runtime"),f=require("react"),r=require("react-markdown"),l=require("clsx");;/* empty css */const I=({id:b,content:o,sender:i,timestamp:d,isThinking:c=!1,isLoading:y=!1,className:L="",style:M={},showTimestamp:g=!0,avatarUser:x,avatarAssistant:h,thinkingText:S="思考中...",customThinkingComponent:m,customUserMessageComponent:p,customAssistantMessageComponent:_,parseContent:V=!1,parsedContent:u,thinkContent:t,knowledgeSources:a})=>{const[n,j]=f.useState(!0),[q,k]=f.useState("idle");console.log(b,"id");const v=s=>s.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),B=async()=>{try{await navigator.clipboard.writeText(o),k("copied"),setTimeout(()=>k("idle"),2e3)}catch(s){console.error("复制失败:",s)}},N=()=>m||e.jsxs("div",{className:"xiping-message__thinking",children:[e.jsxs("div",{className:"xiping-message__thinking-dots",children:[e.jsx("span",{}),e.jsx("span",{}),e.jsx("span",{})]}),e.jsx("span",{className:"xiping-message__thinking-text",children:S})]}),H=()=>e.jsx("div",{className:"xiping-message__loading",children:e.jsx("div",{className:"xiping-message__loading-spinner"})}),w=()=>!a||a.length===0?null:e.jsxs("div",{className:"xiping-message__knowledge-sources",children:[e.jsx("div",{className:"xiping-message__knowledge-sources-header",children:"知识来源:"}),e.jsx("ul",{className:"xiping-message__knowledge-sources-list",children:a.map((s,W)=>e.jsxs("li",{className:"xiping-message__knowledge-source-item",children:[s.url?e.jsx("a",{href:s.url,target:"_blank",rel:"noopener noreferrer",children:s.title}):e.jsx("span",{children:s.title}),s.description&&e.jsx("div",{className:"xiping-message__knowledge-source-description",children:s.description})]},W))})]}),C=()=>i==="user"?null:e.jsxs("button",{className:"xiping-message__copy-button",onClick:B,"aria-label":"Copy message",title:"Copy message",children:[e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[e.jsx("path",{d:"M13.3333 6H7.33333C6.59695 6 6 6.59695 6 7.33333V13.3333C6 14.0697 6.59695 14.6667 7.33333 14.6667H13.3333C14.0697 14.6667 14.6667 14.0697 14.6667 13.3333V7.33333C14.6667 6.59695 14.0697 6 13.3333 6Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M3.33333 10H2.66667C2.31305 10 1.97391 9.85953 1.72386 9.60948C1.47381 9.35943 1.33334 9.02029 1.33334 8.66667V2.66667C1.33334 2.31305 1.47381 1.97391 1.72386 1.72386C1.97391 1.47381 2.31305 1.33334 2.66667 1.33334H8.66667C9.02029 1.33334 9.35943 1.47381 9.60948 1.72386C9.85953 1.97391 10 2.31305 10 2.66667V3.33334",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),q==="copied"&&e.jsx("span",{className:"xiping-message__copy-tooltip",children:"Copied"})]});return i==="user"&&p?p:i==="assistant"&&_?_:e.jsxs("div",{className:l("xiping-message",i==="user"?"user":"assistant",L),style:M,children:[i==="user"&&x||i==="assistant"&&h?e.jsx("div",{className:"xiping-message__avatar",children:i==="user"?x:h}):null,e.jsx("div",{className:"xiping-message__content",children:y?H():V&&i==="assistant"?e.jsxs(e.Fragment,{children:[t&&e.jsxs("div",{className:"xiping-message__think",children:[e.jsxs("div",{className:"xiping-message__think-header",children:["思考过程:",e.jsx("button",{className:"xiping-message__think-toggle",onClick:()=>j(!n),"aria-label":n?"隐藏思考过程":"显示思考过程",children:e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{transform:n?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.3s ease"},children:e.jsx("path",{d:"M2 4L6 8L10 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),e.jsx("div",{className:l("xiping-message__think-content",n?"visible":"hidden"),children:e.jsx(r,{children:t})})]}),c&&N(),u&&e.jsxs("div",{className:"xiping-message__text-container",children:[e.jsx("div",{className:"xiping-message__text",children:e.jsx(r,{children:u})}),C()]}),w(),g&&e.jsx("div",{className:"xiping-message__timestamp",children:v(d)})]}):e.jsxs(e.Fragment,{children:[t&&e.jsxs("div",{className:"xiping-message__think",children:[e.jsxs("div",{className:"xiping-message__think-header",children:["思考过程:",e.jsx("button",{className:"xiping-message__think-toggle",onClick:()=>j(!n),"aria-label":n?"隐藏思考过程":"显示思考过程",children:e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{transform:n?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.3s ease"},children:e.jsx("path",{d:"M2 4L6 8L10 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),e.jsx("div",{className:l("xiping-message__think-content",n?"visible":"hidden"),children:e.jsx(r,{children:t})})]}),e.jsxs("div",{className:"xiping-message__text-container",children:[e.jsx("div",{className:"xiping-message__text",children:e.jsx(r,{children:o})}),C()]}),c&&N(),w(),g&&e.jsx("div",{className:"xiping-message__timestamp",children:v(d)})]})})]})};exports.Message=I;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./Pointer.css');const t=require("react/jsx-runtime"),n=require("motion/react"),i=require("react"),h=require("clsx");;/* empty css */function y({className:v,style:m,children:f,...p}){const s=n.useMotionValue(0),r=n.useMotionValue(0),[x,c]=i.useState(!1),o=i.useRef(null);return i.useEffect(()=>{if(typeof window<"u"&&o.current){const e=o.current.parentElement;if(e){e.style.cursor="none";const a=d=>{s.set(d.clientX),r.set(d.clientY)},l=()=>{c(!0)},u=()=>{c(!1)};return e.addEventListener("mousemove",a),e.addEventListener("mouseenter",l),e.addEventListener("mouseleave",u),()=>{e.style.cursor="",e.removeEventListener("mousemove",a),e.removeEventListener("mouseenter",l),e.removeEventListener("mouseleave",u)}}}},[s,r]),t.jsxs(t.Fragment,{children:[t.jsx("div",{ref:o}),t.jsx(n.AnimatePresence,{children:x&&t.jsx(n.motion.div,{className:h("xiping-pointer",v),style:{top:r,left:s,...m},initial:{scale:0,opacity:0},animate:{scale:1,opacity:1},exit:{scale:0,opacity:0},...p,children:f||t.jsx("svg",{stroke:"currentColor",fill:"currentColor",strokeWidth:"1",viewBox:"0 0 16 16",height:"24",width:"24",xmlns:"http://www.w3.org/2000/svg",className:"xiping-pointer-icon",children:t.jsx("path",{d:"M14.082 2.182a.5.5 0 0 1 .103.557L8.528 15.467a.5.5 0 0 1-.917-.007L5.57 10.694.803 8.652a.5.5 0 0 1-.006-.916l12.728-5.657a.5.5 0 0 1 .556.103z"})})})})]})}exports.Pointer=y;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./ScratchToReveal.css');const p=require("react/jsx-runtime"),S=require("motion/react"),a=require("react"),P=require("clsx");;/* empty css */const z=({width:m,height:h,minScratchPercentage:E=50,onComplete:v,children:M,className:L,gradientColors:i=["#A97CF8","#F38CB8","#FDCC92"]})=>{const r=a.useRef(null),[d,u]=a.useState(!1),[y,C]=a.useState(!1),g=S.useAnimation();a.useEffect(()=>{const e=r.current,t=e?.getContext("2d");if(e&&t){t.fillStyle="#ccc",t.fillRect(0,0,e.width,e.height);const c=t.createLinearGradient(0,0,e.width,e.height);c.addColorStop(0,i[0]),c.addColorStop(.5,i[1]),c.addColorStop(1,i[2]),t.fillStyle=c,t.fillRect(0,0,e.width,e.height)}},[i]),a.useEffect(()=>{const e=o=>{d&&f(o.clientX,o.clientY)},t=o=>{if(!d)return;const s=o.touches[0];f(s.clientX,s.clientY)},c=()=>{u(!1),I()},n=()=>{u(!1),I()};return document.addEventListener("mousedown",e),document.addEventListener("mousemove",e),document.addEventListener("touchstart",t),document.addEventListener("touchmove",t),document.addEventListener("mouseup",c),document.addEventListener("touchend",n),document.addEventListener("touchcancel",n),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("mousemove",e),document.removeEventListener("touchstart",t),document.removeEventListener("touchmove",t),document.removeEventListener("mouseup",c),document.removeEventListener("touchend",n),document.removeEventListener("touchcancel",n)}},[d]);const D=()=>u(!0),w=()=>u(!0),f=(e,t)=>{const c=r.current,n=c?.getContext("2d");if(c&&n){const o=c.getBoundingClientRect(),s=e-o.left+16,x=t-o.top+16;n.globalCompositeOperation="destination-out",n.beginPath(),n.arc(s,x,30,0,Math.PI*2),n.fill()}},R=async()=>{await g.start({scale:[1,1.5,1],rotate:[0,10,-10,10,-10,0],transition:{duration:.5}}),v&&v()},I=()=>{if(y)return;const e=r.current,t=e?.getContext("2d");if(e&&t){const n=t.getImageData(0,0,e.width,e.height).data,o=n.length/4;let s=0;for(let l=3;l<n.length;l+=4)n[l]===0&&s++;s/o*100>=E&&(C(!0),t.clearRect(0,0,e.width,e.height),R())}};return p.jsxs(S.motion.div,{className:P("xiping-scratch-to-reveal",L),style:{width:m,height:h,cursor:"url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIj4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE2IiByPSIxNSIgc3R5bGU9ImZpbGw6I2ZmZjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6MXB4OyIgLz4KPC9zdmc+'), auto"},animate:g,children:[p.jsx("canvas",{ref:r,width:m,height:h,className:"xiping-scratch-canvas",onMouseDown:D,onTouchStart:w}),M]})};exports.ScratchToReveal=z;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./ShimmerButton.css');const e=require("react/jsx-runtime"),l=require("react"),d=require("clsx");;/* empty css */const s=l.forwardRef(({shimmerColor:i="#ffffff",shimmerSize:r="0.05em",shimmerDuration:t="3s",borderRadius:m="100px",background:n="rgba(0, 0, 0, 1)",className:a,children:o,...u},c)=>e.jsxs("button",{style:{"--spread":"90deg","--shimmer-color":i,"--radius":m,"--speed":t,"--cut":r,"--bg":n},className:d("xiping-shimmer-button",a),ref:c,...u,children:[e.jsx("div",{className:"xiping-shimmer-button-spark-container",children:e.jsx("div",{className:"xiping-shimmer-button-spark",children:e.jsx("div",{className:"xiping-shimmer-button-spark-before"})})}),o,e.jsx("div",{className:"xiping-shimmer-button-highlight"}),e.jsx("div",{className:"xiping-shimmer-button-backdrop"})]}));s.displayName="ShimmerButton";exports.ShimmerButton=s;exports.default=s;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./ShinyButton.css');const a=require("react/jsx-runtime"),s=require("motion/react"),c=require("react"),l=require("clsx");;/* empty css */const o={initial:{"--x":"100%",scale:.8},animate:{"--x":"-100%",scale:1},whileTap:{scale:.95},transition:{repeat:1/0,repeatType:"loop",repeatDelay:1,type:"spring",stiffness:20,damping:15,mass:2,scale:{type:"spring",stiffness:200,damping:5,mass:.5}}},e=c.forwardRef(({children:r,className:n,...t},i)=>a.jsxs(s.motion.button,{ref:i,className:l("xiping-shiny-button",n),...o,...t,children:[a.jsx("span",{className:"xiping-shiny-button-text",style:{maskImage:"linear-gradient(-75deg,var(--primary) calc(var(--x) + 20%),transparent calc(var(--x) + 30%),var(--primary) calc(var(--x) + 100%))"},children:r}),a.jsx("span",{style:{mask:"linear-gradient(rgb(0,0,0), rgb(0,0,0)) content-box exclude,linear-gradient(rgb(0,0,0), rgb(0,0,0))",WebkitMask:"linear-gradient(rgb(0,0,0), rgb(0,0,0)) content-box exclude,linear-gradient(rgb(0,0,0), rgb(0,0,0))",backgroundImage:"linear-gradient(-75deg,var(--primary)/10% calc(var(--x)+20%),var(--primary)/50% calc(var(--x)+25%),var(--primary)/10% calc(var(--x)+100%))"},className:"xiping-shiny-button-border"})]}));e.displayName="ShinyButton";exports.ShinyButton=e;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./ShinyText.css');const E=require("react/jsx-runtime"),r=require("react"),d=require("motion/react");;/* empty css */const F=({text:k,disabled:R=!1,speed:$=2,className:p="",color:a="#b5b5b5",shineColor:x="#ffffff",spread:M=120,yoyo:C=!1,pauseOnHover:o=!1,direction:b="left",delay:S=0})=>{const[h,g]=r.useState(!1),e=d.useMotionValue(0),i=r.useRef(0),u=r.useRef(null),s=r.useRef(b==="left"?1:-1),t=$*1e3,y=S*1e3;d.useAnimationFrame(l=>{if(R||h){u.current=null;return}if(u.current===null){u.current=l;return}const v=l-u.current;if(u.current=l,i.current+=v,C){const c=t+y,f=c*2,n=i.current%f;if(n<t){const m=n/t*100;e.set(s.current===1?m:100-m)}else if(n<c)e.set(s.current===1?100:0);else if(n<c+t){const T=100-(n-c)/t*100;e.set(s.current===1?T:100-T)}else e.set(s.current===1?0:100)}else{const c=t+y,f=i.current%c;if(f<t){const n=f/t*100;e.set(s.current===1?n:100-n)}else e.set(s.current===1?100:0)}}),r.useEffect(()=>{s.current=b==="left"?1:-1,i.current=0,e.set(0)},[b]);const q=d.useTransform(e,l=>`${150-l*2}% center`),D=r.useCallback(()=>{o&&g(!0)},[o]),P=r.useCallback(()=>{o&&g(!1)},[o]),j={backgroundImage:`linear-gradient(${M}deg, ${a} 0%, ${a} 35%, ${x} 50%, ${a} 65%, ${a} 100%)`,backgroundSize:"200% auto",WebkitBackgroundClip:"text",backgroundClip:"text",WebkitTextFillColor:"transparent"};return E.jsx(d.motion.span,{className:`shiny-text ${p}`,style:{...j,backgroundPosition:q},onMouseEnter:D,onMouseLeave:P,children:k})};exports.default=F;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./SparklesText.css');const n=require("react/jsx-runtime"),g=require("motion/react"),d=require("react"),k=require("clsx");;/* empty css */const y=({id:i,x:e,y:o,color:a,delay:c,scale:l})=>n.jsx(g.motion.svg,{className:"xiping-sparkle",initial:{opacity:0,left:e,top:o},animate:{opacity:[0,1,0],scale:[0,l,0],rotate:[75,120,150]},transition:{duration:.8,repeat:1/0,delay:c},width:"21",height:"21",viewBox:"0 0 21 21",children:n.jsx("path",{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",fill:a})},i),j=({children:i,colors:e={first:"#9E7AFF",second:"#FE8BBB"},className:o,sparklesCount:a=10,...c})=>{const[l,p]=d.useState([]);return d.useEffect(()=>{const r=()=>{const t=`${Math.random()*100}%`,s=`${Math.random()*100}%`,m=Math.random()>.5?e.first:e.second,h=Math.random()*2,C=Math.random()*1+.3,S=Math.random()*10+5;return{id:`${t}-${s}-${Date.now()}`,x:t,y:s,color:m,delay:h,scale:C,lifespan:S}},u=()=>{const t=Array.from({length:a},r);p(t)},f=()=>{p(t=>t.map(s=>s.lifespan<=0?r():{...s,lifespan:s.lifespan-.1}))};u();const x=setInterval(f,100);return()=>clearInterval(x)},[e.first,e.second,a]),n.jsx("div",{className:k("xiping-sparkles-text",o),...c,style:{"--sparkles-first-color":`${e.first}`,"--sparkles-second-color":`${e.second}`},children:n.jsxs("span",{className:"xiping-sparkles-text-wrapper",children:[l.map(r=>n.jsx(y,{...r},r.id)),n.jsx("strong",{children:i})]})})};exports.SparklesText=j;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./SplitText.css');const j=require("react/jsx-runtime"),l=require("react"),o=require("gsap"),D=require("gsap/ScrollTrigger"),$=require("gsap/SplitText"),E=require("clsx");;/* empty css */o.gsap.registerPlugin(D.ScrollTrigger,$.SplitText);const F=({text:c,className:k="",delay:d=100,duration:m=.6,ease:x="power3.out",splitType:n="chars",from:h={opacity:0,y:40},to:a={opacity:1,y:0},threshold:w=.1,rootMargin:T="-100px",textAlign:q="center",onLetterAnimationComplete:S})=>{const u=l.useRef(null),y=l.useRef(!1),s=l.useRef(null);return l.useEffect(()=>{if(typeof window>"u"||!u.current||!c)return;const g=u.current;y.current=!1;const b=n==="lines";b&&(g.style.position="relative");let r;try{r=new $.SplitText(g,{type:n,absolute:b,linesClass:"split-line"})}catch(t){console.error("Failed to create SplitText:",t);return}let e;switch(n){case"lines":e=r.lines;break;case"words":e=r.words;break;case"chars":e=r.chars;break;default:e=r.chars}if(!e||e.length===0){console.warn("No targets found for SplitText animation"),r.revert();return}e.forEach(t=>{t.style.willChange="transform, opacity"});const C=(1-w)*100,i=/^(-?\d+(?:\.\d+)?)(px|em|rem|%)?$/.exec(T),p=i?parseFloat(i[1]):0,R=i&&i[2]||"px",v=p<0?`-=${Math.abs(p)}${R}`:`+=${p}${R}`,P=`top ${C}%${v}`,f=o.gsap.timeline({scrollTrigger:{trigger:g,start:P,toggleActions:"play none none none",once:!0,onToggle:t=>{s.current=t}},smoothChildTiming:!0,onComplete:()=>{y.current=!0,o.gsap.set(e,{...a,clearProps:"willChange",immediateRender:!0}),S?.()}});return f.set(e,{...h,immediateRender:!1,force3D:!0}),f.to(e,{...a,duration:m,ease:x,stagger:d/1e3,force3D:!0}),()=>{f.kill(),s.current&&(s.current.kill(),s.current=null),o.gsap.killTweensOf(e),r&&r.revert()}},[c,d,m,x,n,h,a,w,T,S]),j.jsx("p",{ref:u,className:E("xiping-split-parent",k),style:{textAlign:q,wordWrap:"break-word"},children:c})};exports.SplitText=F;
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./CurrentMode.css');const t=require("react/jsx-runtime"),v=require("./utils.js");;/* empty css */const g=({currentEntries:l,wordHoverFactory:c,enableWordHover:o,overlayNode:x,onSubtitleClick:r,textAlign:a="left"})=>l.some(({entry:e})=>e!==null)?t.jsxs(t.Fragment,{children:[l.map(({entry:e,label:s})=>{if(!e)return null;const p=e.text.split(`
|
|
2
|
-
`),h=o?c(e,s):void 0,m=p.reduce((n,d,i)=>{if(!e.words||e.words.length===0)return n.content.push(t.jsx("div",{className:"xiping-subtitle-player__current-line",children:d},i)),n;const u=v.renderTextWithWords(d,e.words,n.nextWordIndex,i,h);return n.content.push(t.jsx("div",{className:"xiping-subtitle-player__current-line",children:u.nodes},i)),{content:n.content,nextWordIndex:u.nextWordIndex}},{content:[],nextWordIndex:0}).content,_=r?n=>r(n,e,s):void 0;return t.jsxs("div",{className:"xiping-subtitle-player__current-item","data-label":s||void 0,onClick:_,style:r?{cursor:"pointer"}:void 0,children:[s&&t.jsx("span",{className:"xiping-subtitle-player__current-label",children:s}),t.jsx("div",{className:"xiping-subtitle-player__current-text",style:{textAlign:a},children:m})]},`${e.index}-${s||""}`)}),o&&t.jsx("div",{className:"xiping-subtitle-player__current-hover-layer",children:x})]}):null;exports.CurrentMode=g;
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./LyricsMode.css');const n=require("react/jsx-runtime"),d=require("react"),q=require("clsx"),I=require("./utils.js");;/* empty css */const R=({entry:t,label:e,endTime:y,currentTime:_,isActive:j,isFirstItem:m,timeString:v,textAlign:N,enableWordHover:p,wordHoverFactory:h,onSubtitleClick:r,itemRef:s})=>{const c=_>y,i=d.useCallback(x=>{r&&r(x,t,e)},[r,t,e]),o=d.useMemo(()=>p?h(t,e):void 0,[p,h,t,e]),l=d.useMemo(()=>t.text.split(`
|
|
2
|
-
`).reduce((u,g,a)=>{if(!t.words||t.words.length===0)return u.content.push(n.jsx("div",{className:"xiping-subtitle-player__lyrics-line",children:g},a)),u;const f=I.renderTextWithWords(g,t.words,u.nextWordIndex,a,o);return u.content.push(n.jsx("div",{className:"xiping-subtitle-player__lyrics-line",children:f.nodes},a)),{content:u.content,nextWordIndex:f.nextWordIndex}},{content:[],nextWordIndex:0}).content,[t.text,t.words,o]);return n.jsxs("div",{ref:s,className:q("xiping-subtitle-player__lyrics-item",{"xiping-subtitle-player__lyrics-item--active":j,"xiping-subtitle-player__lyrics-item--past":c}),"data-label":e||void 0,onClick:r?i:void 0,style:r?{cursor:"pointer"}:void 0,children:[m&&v&&n.jsx("span",{className:"xiping-subtitle-player__lyrics-time",children:v}),e&&n.jsx("span",{className:"xiping-subtitle-player__lyrics-label",children:e}),n.jsx("div",{className:"xiping-subtitle-player__lyrics-text",style:{textAlign:N},children:l})]})},b=({groupedEntriesByTime:t,currentTime:e,wordHoverFactory:y,enableWordHover:_,overlayNode:j,containerRef:m,onSubtitleClick:v,textAlign:N="left"})=>{const p=d.useRef(null),h=d.useRef(null),r=d.useMemo(()=>{for(let s=0;s<t.length;s++){const c=t[s];for(let i=0;i<c.length;i++){const{startTime:o,endTime:l}=c[i];if(e>=o&&e<=l)return`${s}-${i}`}}return null},[t,e]);return d.useEffect(()=>{if(r&&r!==h.current&&p.current&&m.current){const s=m.current,c=p.current,i=c.offsetTop,o=s.clientHeight,l=c.clientHeight,x=i-o/2+l/2;s.scrollTo({top:x,behavior:"smooth"}),h.current=r}},[r,m]),n.jsxs(n.Fragment,{children:[t.map((s,c)=>{const i=s[0];if(!i)return null;const o=I.secondsToTimeString(i.startTime);return n.jsx("div",{className:"xiping-subtitle-player__group",children:s.map(({entry:l,label:x,startTime:u,endTime:g},a)=>{const f=e>=u&&e<=g,M=`${c}-${a}`;return n.jsx(R,{entry:l,label:x,endTime:g,currentTime:e,isActive:f,isFirstItem:a===0,timeString:a===0?o:void 0,textAlign:N,enableWordHover:_,wordHoverFactory:y,onSubtitleClick:v,itemRef:f?p:void 0},M)})},c)}),_&&n.jsx("div",{className:"xiping-subtitle-player__lyrics-hover-layer",children:j})]})};exports.LyricsMode=b;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./SubtitlePlayer.css');const d=require("react/jsx-runtime"),o=require("react"),l=require("../../packages/subtitle/lib/src/parser.js"),O=require("../../packages/subtitle/lib/src/json-converter.js"),A=require("clsx"),W=require("./CurrentMode.js"),_=require("./LyricsMode.js"),b=require("./utils.js");;/* empty css */const z=({subtitles:g,currentTime:y,mode:T="current",textAlign:M="left",className:L="",style:N,onWordHoverChange:i,renderWordOverlay:f,onWordClick:m,onSubtitleClick:R})=>{const u=o.useMemo(()=>Array.isArray(g)?g:[g],[g]),p=o.useRef(null),[a,C]=o.useState(null),[S,v]=o.useState([]);o.useEffect(()=>{let r=!0;async function c(){try{const t=await Promise.all(u.map(async e=>{try{const n=e.language||"zh",s=e.type==="srt"?await O.srtToJson(e.content,n):await O.vttToJson(e.content,n);return{entries:JSON.parse(s),label:e.label}}catch(n){return console.error("字幕解析失败:",n),{entries:e.type==="srt"?l.parseSRT(e.content):l.parseVTT(e.content),label:e.label}}}));r&&v(t)}catch(t){if(console.error("加载字幕失败:",t),r){const e=u.map(n=>{try{return{entries:n.type==="srt"?l.parseSRT(n.content):l.parseVTT(n.content),label:n.label}}catch(s){return console.error("字幕解析失败:",s),{entries:[],label:n.label}}});v(e)}}}return c(),()=>{r=!1}},[u]);const h=o.useMemo(()=>S.length>0?S:u.map(r=>{try{return{entries:r.type==="srt"?l.parseSRT(r.content):l.parseVTT(r.content),label:r.label}}catch(c){return console.error("字幕解析失败:",c),{entries:[],label:r.label}}}),[S,u]),D=o.useMemo(()=>h.map(({entries:r,label:c})=>({entry:b.getCurrentSubtitleEntry(r,y),label:c,entries:r})),[h,y]),J=o.useMemo(()=>{const r=[];h.forEach(({entries:e,label:n})=>{e.forEach(s=>{r.push({entry:s,label:n,startTime:b.timeStringToSeconds(s.startTime),endTime:b.timeStringToSeconds(s.endTime)})})}),r.sort((e,n)=>e.startTime-n.startTime);const c=[];let t=[];for(const e of r)if(t.length===0)t.push(e);else{const n=t[t.length-1];e.startTime<=n.endTime?t.push(e):(c.push(t),t=[e])}return t.length>0&&c.push(t),c},[h]),w=o.useCallback((r,c)=>{const t=r.currentTarget.getBoundingClientRect(),e=p.current?.getBoundingClientRect(),n=e!==void 0?new DOMRect(t.left-e.left,t.top-e.top,t.width,t.height):t,s={...c,rect:n,element:r.currentTarget};C(s),i?.(s)},[i]),q=o.useCallback(()=>{C(null),i?.(null)},[i]),x=o.useCallback((r,c)=>{if(!m)return;r.stopPropagation();const t=r.currentTarget.getBoundingClientRect(),e=p.current?.getBoundingClientRect(),n=e!==void 0?new DOMRect(t.left-e.left,t.top-e.top,t.width,t.height):t,s={type:"word",...c,rect:n,element:r.currentTarget};m(s)},[m]),E=o.useCallback((r,c,t)=>{if(!R||r.target.closest(".xiping-subtitle-word"))return;const n=r.currentTarget.getBoundingClientRect(),s=p.current?.getBoundingClientRect(),P=s!==void 0?new DOMRect(n.left-s.left,n.top-s.top,n.width,n.height):n,V={type:"subtitle",entry:c,label:t,rect:P,element:r.currentTarget};R(V)},[R]),j=o.useCallback((r,c)=>(t,e,n)=>({onMouseEnter:s=>w(s,{word:t,wordIndex:e,lineIndex:n,entry:r,label:c}),onMouseLeave:q,onClick:s=>x(s,{word:t,wordIndex:e,lineIndex:n,entry:r,label:c})}),[w,q,x]),k=f&&a?d.jsx("div",{className:"xiping-subtitle-player__hover-overlay",style:{left:a.rect.x+a.rect.width/2,top:a.rect.y+a.rect.height},children:f(a)}):null,B=!!(f||i);return d.jsxs("div",{ref:p,className:A("xiping-subtitle-player",T==="lyrics"?"xiping-subtitle-player--lyrics":"xiping-subtitle-player--current",L),style:N,children:[T==="current"&&d.jsx(W.CurrentMode,{currentEntries:D,wordHoverFactory:j,enableWordHover:B,overlayNode:k,onSubtitleClick:E,textAlign:M}),T==="lyrics"&&d.jsx(_.LyricsMode,{groupedEntriesByTime:J,currentTime:y,wordHoverFactory:j,enableWordHover:B,overlayNode:k,containerRef:p,onSubtitleClick:E,textAlign:M})]})};exports.SubtitlePlayer=z;
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./TextAnimate.css');const r=require("react/jsx-runtime"),s=require("motion/react"),u=require("clsx");;/* empty css */const c={text:.06,word:.05,character:.03,line:.06},i={hidden:{opacity:1},show:{opacity:1,transition:{staggerChildren:.05}},exit:{opacity:0,transition:{staggerChildren:.05,staggerDirection:-1}}},w={hidden:{opacity:0},show:{opacity:1},exit:{opacity:0}},o={fadeIn:{container:i,item:{hidden:{opacity:0,y:20},show:t=>({opacity:1,y:0,transition:{delay:t,duration:.3}}),exit:{opacity:0,y:20,transition:{duration:.3}}}},blurIn:{container:i,item:{hidden:{opacity:0,filter:"blur(10px)"},show:t=>({opacity:1,filter:"blur(0px)",transition:{delay:t*.1,duration:.3}}),exit:{opacity:0,filter:"blur(10px)",transition:{duration:.3}}}},blurInUp:{container:i,item:{hidden:{opacity:0,filter:"blur(10px)",y:20},show:t=>({opacity:1,filter:"blur(0px)",y:0,transition:{y:{duration:.3},opacity:{duration:.4},filter:{duration:.3}}}),exit:{opacity:0,filter:"blur(10px)",y:20,transition:{y:{duration:.3},opacity:{duration:.4},filter:{duration:.3}}}}},blurInDown:{container:i,item:{hidden:{opacity:0,filter:"blur(10px)",y:-20},show:t=>({opacity:1,filter:"blur(0px)",y:0,transition:{y:{duration:.3},opacity:{duration:.4},filter:{duration:.3}}})}},slideUp:{container:i,item:{hidden:{y:20,opacity:0},show:t=>({y:0,opacity:1,transition:{delay:t,duration:.3}}),exit:{y:-20,opacity:0,transition:{duration:.3}}}},slideDown:{container:i,item:{hidden:{y:-20,opacity:0},show:{y:0,opacity:1,transition:{duration:.3}},exit:{y:20,opacity:0,transition:{duration:.3}}}},slideLeft:{container:i,item:{hidden:{x:20,opacity:0},show:{x:0,opacity:1,transition:{duration:.3}},exit:{x:-20,opacity:0,transition:{duration:.3}}}},slideRight:{container:i,item:{hidden:{x:-20,opacity:0},show:{x:0,opacity:1,transition:{duration:.3}},exit:{x:20,opacity:0,transition:{duration:.3}}}},scaleUp:{container:i,item:{hidden:{scale:.5,opacity:0},show:{scale:1,opacity:1,transition:{duration:.3,scale:{type:"spring",damping:15,stiffness:300}}},exit:{scale:.5,opacity:0,transition:{duration:.3}}}},scaleDown:{container:i,item:{hidden:{scale:1.5,opacity:0},show:t=>({scale:1,opacity:1,transition:{delay:t,duration:.3,scale:{type:"spring",damping:15,stiffness:300}}}),exit:{scale:1.5,opacity:0,transition:{duration:.3}}}}};function b({children:t,delay:I=0,duration:v=.3,variants:C,className:x,segmentClassName:h,as:m="p",startOnView:d=!0,once:j=!1,by:n="word",animation:e="fadeIn",...g}){const f=s.motion.create(m),p=e?{container:{...o[e].container,show:{...o[e].container.show,transition:{staggerChildren:c[n]}},exit:{...o[e].container.exit,transition:{staggerChildren:c[n],staggerDirection:-1}}},item:o[e].item}:{container:i,item:w};let a=[];switch(n){case"word":a=t.split(/(\s+)/);break;case"character":a=t.split("");break;case"line":a=t.split(`
|
|
2
|
-
`);break;default:a=[t];break}return r.jsx(s.AnimatePresence,{mode:"popLayout",children:r.jsx(f,{variants:p.container,initial:"hidden",whileInView:d?"show":void 0,animate:d?void 0:"show",exit:"exit",className:u("xiping-text-animate",x),...g,children:a.map((l,y)=>r.jsx(s.motion.span,{variants:p.item,custom:y*c[n],className:u("xiping-text-animate-segment",n==="line"&&"xiping-text-animate-segment--line",h),children:l},`${n}-${l}-${y}`))})})}exports.TextAnimate=b;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./TextType.css');const v=require("react/jsx-runtime"),e=require("react"),C=require("gsap"),L=require("clsx");;/* empty css */const Q=({text:o,as:H="div",typingSpeed:l=50,initialDelay:I=0,pauseDuration:m=2e3,deletingSpeed:_=30,loop:R=!0,className:O="",showCursor:T=!0,hideCursorWhileTyping:P=!1,cursorCharacter:$="|",cursorClassName:k="",cursorBlinkDuration:j=.5,textColors:h=[],variableSpeed:c,onSentenceComplete:d,startOnVisible:y=!1,reverseMode:q=!1,...w})=>{const[a,E]=e.useState(""),[i,A]=e.useState(0),[f,M]=e.useState(!1),[s,z]=e.useState(0),[N,F]=e.useState(!y),x=e.useRef(null),p=e.useRef(null),r=e.useMemo(()=>Array.isArray(o)?o:[o],[o]),G=e.useCallback(()=>{if(!c)return l;const{min:t,max:u}=c;return Math.random()*(u-t)+t},[c,l]),J=()=>{if(h.length!==0)return h[s%h.length]};e.useEffect(()=>{if(!y||!p.current)return;const t=new IntersectionObserver(u=>{u.forEach(g=>{g.isIntersecting&&F(!0)})},{threshold:.1});return t.observe(p.current),()=>t.disconnect()},[y]),e.useEffect(()=>{T&&x.current&&(C.gsap.set(x.current,{opacity:1}),C.gsap.to(x.current,{opacity:0,duration:j,repeat:-1,yoyo:!0,ease:"power2.inOut"}))},[T,j]),e.useEffect(()=>{if(!N)return;let t;const u=r[s],g=q?u.split("").reverse().join(""):u,b=()=>{if(f)if(a===""){if(M(!1),s===r.length-1&&!R)return;d&&d(r[s],s),z(n=>(n+1)%r.length),A(0),t=setTimeout(()=>{},m)}else t=setTimeout(()=>{E(n=>n.slice(0,-1))},_);else i<g.length?t=setTimeout(()=>{E(n=>n+g[i]),A(n=>n+1)},c?G():l):r.length>1&&(t=setTimeout(()=>{M(!0)},m))};return i===0&&!f&&a===""?t=setTimeout(b,I):b(),()=>clearTimeout(t)},[i,a,f,l,_,m,r,s,R,I,N,q,c,d]);const K=P&&(i<r[s].length||f);return e.createElement(H,{ref:p,className:`xiping-text-type ${O}`,...w},v.jsx("span",{className:"xiping-text-type__content",style:{color:J()||"inherit"},children:a}),T&&v.jsx("span",{ref:x,className:L("xiping-text-type__cursor",k,K&&"xiping-text-type__cursor--hidden"),children:$}))};exports.default=Q;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.module.css');const t={"xiping-top-progress":"_xiping-top-progress_rkm9f_23","xiping-container":"_xiping-container_rkm9f_33","xiping-content":"_xiping-content_rkm9f_41","xiping-bottom-progress":"_xiping-bottom-progress_rkm9f_48","xiping-text-content":"_xiping-text-content_rkm9f_63"};exports.default=t;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const d=require("react/jsx-runtime"),v=require("motion/react"),n=require("react"),b=require("clsx");;/* empty css */function x({children:r,className:l,duration:o=100,delay:s=0,as:f="div",startOnView:c=!1,...m}){const g=v.motion.create(f,{forwardMotionProps:!0}),[p,T]=n.useState(""),[u,a]=n.useState(!1),i=n.useRef(null);return n.useEffect(()=>{if(!c){const t=setTimeout(()=>{a(!0)},s);return()=>clearTimeout(t)}const e=new IntersectionObserver(([t])=>{t.isIntersecting&&(setTimeout(()=>{a(!0)},s),e.disconnect())},{threshold:.1});return i.current&&e.observe(i.current),()=>e.disconnect()},[s,c]),n.useEffect(()=>{if(!u)return;let e=0;const t=setInterval(()=>{e<r.length?(T(r.substring(0,e+1)),e++):clearInterval(t)},o);return()=>{clearInterval(t)}},[r,o,u]),d.jsx(g,{ref:i,className:b("xiping-typing-animation",l),...m,children:p})}exports.TypingAnimation=x;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const w=require("react/jsx-runtime"),f=require("react"),D=require("motion/react"),O=require("clsx");;/* empty css */const c={robotoFlex:!1,notoSansSC:!1,loading:!1};function q(n){if(typeof document>"u")return!1;try{return document.fonts.check(`1em "${n}"`)}catch{return!0}}function U(){if(c.loading||c.robotoFlex&&c.notoSansSC)return;c.loading=!0;const n=q("Roboto Flex"),r=q("Noto Sans SC");if(n&&(c.robotoFlex=!0),r&&(c.notoSansSC=!0),n&&r){c.loading=!1;return}const i=(t,s)=>{if(document.querySelector(`link[href="${t}"]`)){s?.();return}const l=document.createElement("link");l.rel="stylesheet",l.href=t,l.onload=()=>s?.(),document.head.appendChild(l)},d=[{roboto:"https://fonts.loli.net/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap",noto:"https://fonts.loli.net/css2?family=Noto+Sans+SC:wght@100..900&display=swap"},{roboto:"https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap",noto:"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@100..900&display=swap"}],m=t=>{if(t>=d.length){c.loading=!1;return}const s=d[t];let p=0;const l=()=>{p++,p===2&&(c.loading=!1)};n?l():i(s.roboto,()=>{c.robotoFlex=!0,l()}),r?l():i(s.noto,()=>{c.notoSansSC=!0,l()}),setTimeout(()=>{(!c.robotoFlex||!c.notoSansSC)&&m(t+1)},3e3)};m(0)}function G(n=!0){f.useEffect(()=>{n&&typeof document<"u"&&U()},[n])}function H(n){f.useEffect(()=>{let r;const i=()=>{n(),r=requestAnimationFrame(i)};return r=requestAnimationFrame(i),()=>cancelAnimationFrame(r)},[n])}function J(n){const r=f.useRef({x:0,y:0});return f.useEffect(()=>{const i=(t,s)=>{if(n?.current){const p=n.current.getBoundingClientRect();r.current={x:t-p.left,y:s-p.top}}else r.current={x:t,y:s}},d=t=>i(t.clientX,t.clientY),m=t=>{const s=t.touches[0];i(s.clientX,s.clientY)};return window.addEventListener("mousemove",d),window.addEventListener("touchmove",m),()=>{window.removeEventListener("mousemove",d),window.removeEventListener("touchmove",m)}},[n]),r}const E=f.forwardRef((n,r)=>{const{label:i,fromFontVariationSettings:d,toFontVariationSettings:m,containerRef:t,radius:s=50,falloff:p="linear",className:l="",onClick:P,style:b,fontFamily:y,autoLoadFonts:V=!0,...k}=n;G(V&&!y);const C=f.useRef([]),R=f.useRef([]),S=J(t),x=f.useRef({x:null,y:null}),N=f.useMemo(()=>{const e=o=>new Map(o.split(",").map(g=>g.trim()).map(g=>{const[h,F]=g.split(" ");return[h.replace(/['"]/g,""),parseFloat(F)]})),a=e(d),u=e(m);return Array.from(a.entries()).map(([o,g])=>({axis:o,fromValue:g,toValue:u.get(o)??g}))},[d,m]),j=(e,a,u,o)=>Math.sqrt((u-e)**2+(o-a)**2),A=e=>{const a=Math.min(Math.max(1-e/s,0),1);switch(p){case"exponential":return a**2;case"gaussian":return Math.exp(-((e/(s/2))**2)/2);default:return a}};H(()=>{if(!t?.current)return;const{x:e,y:a}=S.current;if(x.current.x===e&&x.current.y===a)return;x.current={x:e,y:a};const u=t.current.getBoundingClientRect();C.current.forEach((o,g)=>{if(!o)return;const h=o.getBoundingClientRect(),F=h.left+h.width/2-u.left,T=h.top+h.height/2-u.top,v=j(S.current.x,S.current.y,F,T);if(v>=s){o.style.fontVariationSettings=d;return}const X=A(v),L=N.map(({axis:Y,fromValue:M,toValue:z})=>{const _=M+(z-M)*X;return`'${Y}' ${_}`}).join(", ");R.current[g]=L,o.style.fontVariationSettings=L})});const I=/[\u4e00-\u9fa5]/.test(i)?i.split(""):i.split(" ").flatMap((e,a,u)=>{const o=e.split("");return a<u.length-1?[...o," "]:o});let $=0;const B=f.useMemo(()=>{const e={display:"inline",...b};return y&&(e.fontFamily=y),e},[y,b]);return w.jsxs("span",{ref:r,className:O("xiping-variable-proximity",l),onClick:P,style:B,...k,children:[I.map((e,a)=>{const u=$++;return w.jsx(D.motion.span,{ref:o=>{C.current[u]=o},style:{display:e===" "?"inline":"inline-block",fontVariationSettings:R.current[u]},"aria-hidden":"true",children:e},a)}),w.jsx("span",{className:"xiping-variable-proximity__sr-only",children:i})]})});E.displayName="VariableProximity";exports.VariableProximity=E;
|