@xiping/react-components 1.0.70 → 1.0.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.js +1 -0
  2. package/dist/cjs/components/blur-fade/BlurFade.js +1 -1
  3. package/dist/cjs/components/blur-text/BlurText.js +1 -1
  4. package/dist/cjs/components/button/Button.css +1 -1
  5. package/dist/cjs/components/button/Button2.js +1 -0
  6. package/dist/cjs/components/comic-text/ComicText2.js +4 -0
  7. package/dist/cjs/components/confetti-button/index.js +1 -1
  8. package/dist/cjs/components/dock/Duck.css +1 -1
  9. package/dist/cjs/components/dock/Duck2.js +1 -0
  10. package/dist/cjs/components/flip-text/FlipText.css +1 -1
  11. package/dist/cjs/components/flip-text/FlipText2.js +1 -0
  12. package/dist/cjs/components/gradient-text/index.css +1 -1
  13. package/dist/cjs/components/gradient-text/index2.js +1 -0
  14. package/dist/cjs/components/hyper-text/HyperText.css +1 -1
  15. package/dist/cjs/components/hyper-text/index.js +1 -1
  16. package/dist/cjs/components/image-compare/ImageCompare.css +1 -1
  17. package/dist/cjs/components/image-compare/ImageCompare2.js +1 -0
  18. package/dist/cjs/components/image-viewer/ImageThumbnails.css +1 -1
  19. package/dist/cjs/components/image-viewer/ImageThumbnails2.js +1 -0
  20. package/dist/cjs/components/image-viewer/ImageViewer.css +1 -1
  21. package/dist/cjs/components/image-viewer/ImageViewer.d.ts +1 -1
  22. package/dist/cjs/components/image-viewer/ImageViewer2.js +1 -0
  23. package/dist/cjs/components/message/Message.css +1 -1
  24. package/dist/cjs/components/message/Message2.js +1 -0
  25. package/dist/cjs/components/pinch-content/PinchContent.js +1 -1
  26. package/dist/cjs/components/pinch-content/index.js +1 -1
  27. package/dist/cjs/components/pointer/Pointer.css +1 -1
  28. package/dist/cjs/components/pointer/Pointer2.js +1 -0
  29. package/dist/cjs/components/scratch-to-reveal/ScratchToReveal.css +1 -1
  30. package/dist/cjs/components/scratch-to-reveal/ScratchToReveal2.js +1 -0
  31. package/dist/cjs/components/shimmer-button/ShimmerButton.css +1 -1
  32. package/dist/cjs/components/shimmer-button/ShimmerButton2.js +1 -0
  33. package/dist/cjs/components/shiny-button/ShinyButton.css +1 -1
  34. package/dist/cjs/components/shiny-button/ShinyButton2.js +1 -0
  35. package/dist/cjs/components/shiny-text/ShinyText2.js +1 -0
  36. package/dist/cjs/components/sparkles-text/SparklesText.css +1 -1
  37. package/dist/cjs/components/sparkles-text/SparklesText2.js +1 -0
  38. package/dist/cjs/components/split-text/SplitText.css +1 -1
  39. package/dist/cjs/components/split-text/SplitText2.js +1 -0
  40. package/dist/cjs/components/subtitle-player/CurrentMode.css +1 -1
  41. package/dist/cjs/components/subtitle-player/CurrentMode2.js +2 -0
  42. package/dist/cjs/components/subtitle-player/LyricsMode.css +1 -1
  43. package/dist/cjs/components/subtitle-player/LyricsMode2.js +2 -0
  44. package/dist/cjs/components/subtitle-player/SubtitlePlayer.css +1 -1
  45. package/dist/cjs/components/subtitle-player/SubtitlePlayer2.js +1 -0
  46. package/dist/cjs/components/subtitle-player/utils.js +1 -1
  47. package/dist/cjs/components/text-animate/TextAnimate.css +1 -1
  48. package/dist/cjs/components/text-animate/TextAnimate2.js +2 -0
  49. package/dist/cjs/components/text-type/TextType.css +1 -1
  50. package/dist/cjs/components/text-type/TextType2.js +1 -0
  51. package/dist/cjs/components/txt-editor/TxtEditor.js +4 -4
  52. package/dist/cjs/components/txt-reader/TxtReader.js +1 -1
  53. package/dist/cjs/components/txt-reader/index.module.css +1 -1
  54. package/dist/cjs/components/txt-reader/index.module.js +1 -0
  55. package/dist/cjs/components/typing-animation/index.css +1 -1
  56. package/dist/cjs/components/typing-animation/index2.js +1 -0
  57. package/dist/cjs/components/variable-proximity/index.css +1 -1
  58. package/dist/cjs/components/variable-proximity/index2.js +1 -0
  59. package/dist/cjs/components/video-dialog/VideoDialog.css +1 -1
  60. package/dist/cjs/components/video-dialog/VideoDialog2.js +1 -0
  61. package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayer.css +1 -1
  62. package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayer.mobile.css +1 -1
  63. package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayer.pc.css +1 -1
  64. package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayer2.js +1 -0
  65. package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayerMobile.js +1 -1
  66. package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayerPC.js +1 -1
  67. package/dist/cjs/components/video-subtitle-player/layouts/VideoSubtitlePlayerLayoutMobile.js +1 -1
  68. package/dist/cjs/components/video-subtitle-player/layouts/VideoSubtitlePlayerLayoutPC.js +1 -1
  69. package/dist/cjs/components/video-subtitle-player/useVideoSubtitleStore.js +1 -1
  70. package/dist/cjs/components/video-subtitle-player/useXGPlayer.js +1 -1
  71. package/dist/cjs/hooks/useStayTimeReport.js +1 -1
  72. package/dist/cjs/index.js +1 -1
  73. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.24_core-js@3.47.0/node_modules/xgplayer/dist/index.min.css +1 -1
  74. package/dist/cjs/packages/subtitle/lib/index.js +1 -0
  75. package/dist/cjs/packages/subtitle/lib/src/json-converter.js +1 -1
  76. package/dist/cjs/packages/subtitle/lib/src/parser.js +5 -5
  77. package/dist/cjs/react-components.css +27 -27
  78. package/dist/es/components/blur-fade/BlurFade.js +37 -49
  79. package/dist/es/components/blur-text/BlurText.js +67 -76
  80. package/dist/es/components/button/Button.css +1 -1
  81. package/dist/es/components/button/Button2.js +48 -0
  82. package/dist/es/components/comic-text/ComicText2.js +55 -0
  83. package/dist/es/components/confetti-button/index.js +63 -75
  84. package/dist/es/components/dock/Duck.css +1 -1
  85. package/dist/es/components/dock/Duck2.js +60 -0
  86. package/dist/es/components/flip-text/FlipText.css +1 -1
  87. package/dist/es/components/flip-text/FlipText2.js +41 -0
  88. package/dist/es/components/gradient-text/index.css +1 -1
  89. package/dist/es/components/gradient-text/index2.js +29 -0
  90. package/dist/es/components/hyper-text/HyperText.css +1 -1
  91. package/dist/es/components/hyper-text/index.js +51 -79
  92. package/dist/es/components/image-compare/ImageCompare.css +1 -1
  93. package/dist/es/components/image-compare/ImageCompare2.js +96 -0
  94. package/dist/es/components/image-viewer/ImageThumbnails.css +1 -1
  95. package/dist/es/components/image-viewer/ImageThumbnails2.js +40 -0
  96. package/dist/es/components/image-viewer/ImageViewer.css +1 -1
  97. package/dist/es/components/image-viewer/ImageViewer.d.ts +1 -1
  98. package/dist/es/components/image-viewer/ImageViewer2.js +151 -0
  99. package/dist/es/components/message/Message.css +1 -1
  100. package/dist/es/components/message/Message2.js +189 -0
  101. package/dist/es/components/pinch-content/PinchContent.js +120 -127
  102. package/dist/es/components/pinch-content/index.js +5 -5
  103. package/dist/es/components/pointer/Pointer.css +1 -1
  104. package/dist/es/components/pointer/Pointer2.js +61 -0
  105. package/dist/es/components/react-force-graph-3d/index.js +2 -0
  106. package/dist/es/components/scratch-to-reveal/ScratchToReveal.css +1 -1
  107. package/dist/es/components/scratch-to-reveal/ScratchToReveal2.js +88 -0
  108. package/dist/es/components/shimmer-button/ShimmerButton.css +1 -1
  109. package/dist/es/components/shimmer-button/ShimmerButton2.js +33 -0
  110. package/dist/es/components/shiny-button/ShinyButton.css +1 -1
  111. package/dist/es/components/shiny-button/ShinyButton2.js +53 -0
  112. package/dist/es/components/shiny-text/ShinyText2.js +61 -0
  113. package/dist/es/components/sparkles-text/SparklesText.css +1 -1
  114. package/dist/es/components/sparkles-text/SparklesText2.js +90 -0
  115. package/dist/es/components/split-text/SplitText.css +1 -1
  116. package/dist/es/components/split-text/SplitText2.js +109 -0
  117. package/dist/es/components/subtitle-player/CurrentMode.css +1 -1
  118. package/dist/es/components/subtitle-player/CurrentMode2.js +44 -0
  119. package/dist/es/components/subtitle-player/LyricsMode.css +1 -1
  120. package/dist/es/components/subtitle-player/LyricsMode2.js +114 -0
  121. package/dist/es/components/subtitle-player/SubtitlePlayer.css +1 -1
  122. package/dist/es/components/subtitle-player/SubtitlePlayer2.js +169 -0
  123. package/dist/es/components/subtitle-player/utils.js +63 -69
  124. package/dist/es/components/text-animate/TextAnimate.css +1 -1
  125. package/dist/es/components/text-animate/TextAnimate2.js +312 -0
  126. package/dist/es/components/text-type/TextType.css +1 -1
  127. package/dist/es/components/text-type/TextType2.js +80 -0
  128. package/dist/es/components/txt-editor/TxtEditor.js +60 -95
  129. package/dist/es/components/txt-reader/TxtReader.js +45 -74
  130. package/dist/es/components/txt-reader/index.module.css +1 -1
  131. package/dist/es/components/txt-reader/index.module.js +10 -0
  132. package/dist/es/components/typing-animation/index.css +1 -1
  133. package/dist/es/components/typing-animation/index2.js +43 -0
  134. package/dist/es/components/variable-proximity/index.css +1 -1
  135. package/dist/es/components/variable-proximity/index2.js +179 -0
  136. package/dist/es/components/video-dialog/VideoDialog.css +1 -1
  137. package/dist/es/components/video-dialog/VideoDialog2.js +168 -0
  138. package/dist/es/components/video-subtitle-player/VideoSubtitlePlayer.css +1 -1
  139. package/dist/es/components/video-subtitle-player/VideoSubtitlePlayer.mobile.css +1 -1
  140. package/dist/es/components/video-subtitle-player/VideoSubtitlePlayer.pc.css +1 -1
  141. package/dist/es/components/video-subtitle-player/VideoSubtitlePlayer2.js +43 -0
  142. package/dist/es/components/video-subtitle-player/VideoSubtitlePlayerMobile.js +29 -46
  143. package/dist/es/components/video-subtitle-player/VideoSubtitlePlayerPC.js +94 -74
  144. package/dist/es/components/video-subtitle-player/layouts/VideoSubtitlePlayerLayoutMobile.js +24 -21
  145. package/dist/es/components/video-subtitle-player/layouts/VideoSubtitlePlayerLayoutPC.js +58 -50
  146. package/dist/es/components/video-subtitle-player/useVideoSubtitleStore.js +61 -56
  147. package/dist/es/components/video-subtitle-player/useXGPlayer.js +38 -35
  148. package/dist/es/hooks/useStayTimeReport.js +29 -29
  149. package/dist/es/index.js +33 -70
  150. package/dist/es/node_modules/.pnpm/xgplayer@3.0.24_core-js@3.47.0/node_modules/xgplayer/dist/index.min.css +1 -1
  151. package/dist/es/packages/subtitle/lib/index.js +2 -0
  152. package/dist/es/packages/subtitle/lib/src/json-converter.js +22 -23
  153. package/dist/es/packages/subtitle/lib/src/parser.js +41 -54
  154. package/dist/es/react-components.css +27 -27
  155. package/package.json +25 -27
  156. package/dist/cjs/components/button/Button.js +0 -1
  157. package/dist/cjs/components/comic-text/ComicText.js +0 -4
  158. package/dist/cjs/components/dock/Duck.js +0 -1
  159. package/dist/cjs/components/flip-text/FlipText.js +0 -1
  160. package/dist/cjs/components/gradient-text/index.js +0 -1
  161. package/dist/cjs/components/image-compare/ImageCompare.js +0 -1
  162. package/dist/cjs/components/image-viewer/ImageThumbnails.js +0 -1
  163. package/dist/cjs/components/image-viewer/ImageViewer.js +0 -1
  164. package/dist/cjs/components/message/Message.js +0 -1
  165. package/dist/cjs/components/pointer/Pointer.js +0 -1
  166. package/dist/cjs/components/scratch-to-reveal/ScratchToReveal.js +0 -1
  167. package/dist/cjs/components/shimmer-button/ShimmerButton.js +0 -1
  168. package/dist/cjs/components/shiny-button/ShinyButton.js +0 -1
  169. package/dist/cjs/components/shiny-text/ShinyText.js +0 -1
  170. package/dist/cjs/components/sparkles-text/SparklesText.js +0 -1
  171. package/dist/cjs/components/split-text/SplitText.js +0 -1
  172. package/dist/cjs/components/subtitle-player/CurrentMode.js +0 -2
  173. package/dist/cjs/components/subtitle-player/LyricsMode.js +0 -2
  174. package/dist/cjs/components/subtitle-player/SubtitlePlayer.js +0 -1
  175. package/dist/cjs/components/text-animate/TextAnimate.js +0 -2
  176. package/dist/cjs/components/text-type/TextType.js +0 -1
  177. package/dist/cjs/components/txt-reader/index.module.css.js +0 -1
  178. package/dist/cjs/components/typing-animation/index.js +0 -1
  179. package/dist/cjs/components/variable-proximity/index.js +0 -1
  180. package/dist/cjs/components/video-dialog/VideoDialog.js +0 -1
  181. package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayer.js +0 -1
  182. package/dist/es/components/button/Button.js +0 -72
  183. package/dist/es/components/comic-text/ComicText.js +0 -52
  184. package/dist/es/components/dock/Duck.js +0 -80
  185. package/dist/es/components/flip-text/FlipText.js +0 -38
  186. package/dist/es/components/gradient-text/index.js +0 -22
  187. package/dist/es/components/image-compare/ImageCompare.js +0 -127
  188. package/dist/es/components/image-viewer/ImageThumbnails.js +0 -73
  189. package/dist/es/components/image-viewer/ImageViewer.js +0 -141
  190. package/dist/es/components/message/Message.js +0 -220
  191. package/dist/es/components/pointer/Pointer.js +0 -75
  192. package/dist/es/components/scratch-to-reveal/ScratchToReveal.js +0 -97
  193. package/dist/es/components/shimmer-button/ShimmerButton.js +0 -42
  194. package/dist/es/components/shiny-button/ShinyButton.js +0 -61
  195. package/dist/es/components/shiny-text/ShinyText.js +0 -76
  196. package/dist/es/components/sparkles-text/SparklesText.js +0 -71
  197. package/dist/es/components/split-text/SplitText.js +0 -116
  198. package/dist/es/components/subtitle-player/CurrentMode.js +0 -78
  199. package/dist/es/components/subtitle-player/LyricsMode.js +0 -152
  200. package/dist/es/components/subtitle-player/SubtitlePlayer.js +0 -234
  201. package/dist/es/components/text-animate/TextAnimate.js +0 -310
  202. package/dist/es/components/text-type/TextType.js +0 -121
  203. package/dist/es/components/txt-reader/index.module.css.js +0 -10
  204. package/dist/es/components/typing-animation/index.js +0 -56
  205. package/dist/es/components/variable-proximity/index.js +0 -211
  206. package/dist/es/components/video-dialog/VideoDialog.js +0 -113
  207. package/dist/es/components/video-subtitle-player/VideoSubtitlePlayer.js +0 -74
@@ -1 +0,0 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./VideoDialog.css');const i=require("react/jsx-runtime"),p=require("react"),e=require("motion/react"),t=require("lucide-react"),m=require("clsx");;/* empty css */const x={"from-bottom":{initial:{y:"100%",opacity:0},animate:{y:0,opacity:1},exit:{y:"100%",opacity:0}},"from-center":{initial:{scale:.5,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.5,opacity:0}},"from-top":{initial:{y:"-100%",opacity:0},animate:{y:0,opacity:1},exit:{y:"-100%",opacity:0}},"from-left":{initial:{x:"-100%",opacity:0},animate:{x:0,opacity:1},exit:{x:"-100%",opacity:0}},"from-right":{initial:{x:"100%",opacity:0},animate:{x:0,opacity:1},exit:{x:"100%",opacity:0}},fade:{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0}},"top-in-bottom-out":{initial:{y:"-100%",opacity:0},animate:{y:0,opacity:1},exit:{y:"100%",opacity:0}},"left-in-right-out":{initial:{x:"-100%",opacity:0},animate:{x:0,opacity:1},exit:{x:"100%",opacity:0}}};function y({animationStyle:o="from-center",videoSrc:n,thumbnailSrc:c,thumbnailAlt:l="Video thumbnail",className:s}){const[r,a]=p.useState(!1),d=x[o];return i.jsxs("div",{className:m("xiping-video-dialog",s),children:[i.jsxs("div",{className:"xiping-video-dialog-container",onClick:()=>a(!0),children:[i.jsx("img",{src:c,alt:l,width:1920,height:1080,className:"xiping-video-dialog-thumbnail"}),i.jsx("div",{className:"xiping-video-dialog-overlay",children:i.jsx("div",{className:"xiping-video-dialog-play-outer",children:i.jsx("div",{className:"xiping-video-dialog-play-inner",children:i.jsx(t.Play,{className:"xiping-video-dialog-play-icon"})})})})]}),i.jsx(e.AnimatePresence,{children:r&&i.jsx(e.motion.div,{initial:{opacity:0},animate:{opacity:1},onClick:()=>a(!1),exit:{opacity:0},className:"xiping-video-dialog-modal",children:i.jsxs(e.motion.div,{...d,transition:{type:"spring",damping:30,stiffness:300},className:"xiping-video-dialog-modal-content",children:[i.jsx(e.motion.button,{className:"xiping-video-dialog-close-button",children:i.jsx(t.XIcon,{className:"xiping-video-dialog-close-icon"})}),i.jsx("div",{className:"xiping-video-dialog-video-wrapper",children:i.jsx("iframe",{src:n,className:"xiping-video-dialog-iframe",allowFullScreen:!0,allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"})})]})})})]})}exports.VideoDialog=y;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./VideoSubtitlePlayer.css');const b=require("react/jsx-runtime"),o=require("react"),y=require("react-device-detect"),M=require("./useVideoSubtitleStore.js"),W=require("./useXGPlayer.js"),j=require("./VideoSubtitlePlayerPC.js"),k=require("./VideoSubtitlePlayerMobile.js");;/* empty css */const m=({videoUrl:S,subtitles:r,poster:P,className:s="",style:a,onFetchDetail:e,forceLayout:n})=>{const l=o.useRef(null),C=n!==void 0?n==="mobile":y.isMobile||y.isTablet,{currentTime:u,setCurrentTime:f,setIsPlaying:q,setSubtitles:c,currentDetail:V,isLoadingDetail:v,fetchDetail:t}=M.useVideoSubtitleStore();o.useEffect(()=>{c(r)},[r,c]),W.useXGPlayer(l,S,P,{setCurrentTime:f,setIsPlaying:q},u);const d=o.useCallback(async i=>{e?await e(i):await t(i)},[e,t]),g=o.useCallback(async i=>{e?await e(i):await t(i)},[e,t]);return C?b.jsx(k.VideoSubtitlePlayerMobile,{playerRef:l,subtitles:r,currentTime:u,onWordHoverChange:d,onWordClick:g,className:s,style:a}):b.jsx(j.VideoSubtitlePlayerPC,{playerRef:l,subtitles:r,currentTime:u,currentDetail:V,isLoadingDetail:v,onWordHoverChange:d,className:s,style:a})};exports.VideoSubtitlePlayer=m;
@@ -1,72 +0,0 @@
1
- import { jsxs as o, jsx as n } from "react/jsx-runtime";
2
- import './Button.css';/* empty css */
3
- const h = ({
4
- variant: s = "primary",
5
- size: r = "medium",
6
- className: p,
7
- children: c,
8
- leftIcon: i,
9
- rightIcon: e,
10
- isLoading: t = !1,
11
- isDisabled: l = !1,
12
- fullWidth: a = !1,
13
- type: u = "button",
14
- ...x
15
- }) => {
16
- const b = [
17
- "xiping-button",
18
- `xiping-button--${s}`,
19
- `xiping-button--${r}`,
20
- l && "xiping-button--disabled",
21
- a && "xiping-button--full-width",
22
- t && "xiping-button--loading",
23
- p
24
- ].filter(Boolean).join(" ");
25
- return /* @__PURE__ */ o(
26
- "button",
27
- {
28
- type: u,
29
- className: b,
30
- disabled: l || t,
31
- ...x,
32
- children: [
33
- t && /* @__PURE__ */ o(
34
- "svg",
35
- {
36
- className: "xiping-button__spinner",
37
- xmlns: "http://www.w3.org/2000/svg",
38
- fill: "none",
39
- viewBox: "0 0 24 24",
40
- children: [
41
- /* @__PURE__ */ n(
42
- "circle",
43
- {
44
- className: "xiping-button__spinner-circle",
45
- cx: "12",
46
- cy: "12",
47
- r: "10",
48
- stroke: "currentColor",
49
- strokeWidth: "4"
50
- }
51
- ),
52
- /* @__PURE__ */ n(
53
- "path",
54
- {
55
- className: "xiping-button__spinner-path",
56
- fill: "currentColor",
57
- 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"
58
- }
59
- )
60
- ]
61
- }
62
- ),
63
- !t && i && /* @__PURE__ */ n("span", { className: "xiping-button__icon-left", children: i }),
64
- c,
65
- !t && e && /* @__PURE__ */ n("span", { className: "xiping-button__icon-right", children: e })
66
- ]
67
- }
68
- );
69
- };
70
- export {
71
- h as Button
72
- };
@@ -1,52 +0,0 @@
1
- "use client";
2
- import { jsx as i } from "react/jsx-runtime";
3
- import { motion as n } from "motion/react";
4
- import p from "clsx";
5
- import './ComicText.css';/* empty css */
6
- function d({
7
- children: t,
8
- className: e,
9
- style: a,
10
- fontSize: r = 5
11
- }) {
12
- if (typeof t != "string")
13
- throw new Error("children must be a string");
14
- const o = "#EF4444";
15
- return /* @__PURE__ */ i(
16
- n.div,
17
- {
18
- className: p("xiping-comic-text", e),
19
- style: {
20
- fontSize: `${r}rem`,
21
- fontFamily: "'Bangers', 'Comic Sans MS', 'Impact', sans-serif",
22
- fontWeight: "900",
23
- WebkitTextStroke: `${r * 0.35}px #000000`,
24
- // Thick black outline
25
- transform: "skewX(-10deg)",
26
- textTransform: "uppercase",
27
- filter: `
28
- drop-shadow(5px 5px 0px #000000)
29
- drop-shadow(3px 3px 0px ${o})
30
- `,
31
- backgroundColor: "#FACC15",
32
- backgroundImage: `radial-gradient(circle at 1px 1px, ${o} 1px, transparent 0)`,
33
- backgroundSize: "8px 8px",
34
- backgroundClip: "text",
35
- WebkitBackgroundClip: "text",
36
- WebkitTextFillColor: "transparent",
37
- ...a
38
- },
39
- initial: { opacity: 0, scale: 0.8, rotate: -2 },
40
- animate: { opacity: 1, scale: 1, rotate: 0 },
41
- transition: {
42
- duration: 0.6,
43
- ease: [0.175, 0.885, 0.32, 1.275],
44
- type: "spring"
45
- },
46
- children: t
47
- }
48
- );
49
- }
50
- export {
51
- d as ComicText
52
- };
@@ -1,80 +0,0 @@
1
- "use client";
2
- import { jsx as g } from "react/jsx-runtime";
3
- import { useMotionValue as x, motion as I, useTransform as f, useSpring as A } from "motion/react";
4
- import r, { useRef as C } from "react";
5
- import k from "clsx";
6
- import './Duck.css';/* empty css */
7
- const D = 40, y = 60, E = 140, h = r.forwardRef(
8
- ({
9
- className: o,
10
- children: c,
11
- iconSize: s = D,
12
- iconMagnification: m = y,
13
- iconDistance: a = E,
14
- direction: t = "middle",
15
- ...d
16
- }, i) => {
17
- const e = x(1 / 0), p = () => r.Children.map(c, (n) => r.isValidElement(n) && n.type === M ? r.cloneElement(n, {
18
- ...n.props,
19
- mouseX: e,
20
- size: s,
21
- magnification: m,
22
- distance: a
23
- }) : n);
24
- return /* @__PURE__ */ g(
25
- I.div,
26
- {
27
- ref: i,
28
- onMouseMove: (n) => e.set(n.pageX),
29
- onMouseLeave: () => e.set(1 / 0),
30
- ...d,
31
- className: k(
32
- "xiping-dock",
33
- t === "top" && "xiping-dock--top",
34
- t === "bottom" && "xiping-dock--bottom",
35
- t === "middle" && "xiping-dock--middle",
36
- o
37
- ),
38
- children: p()
39
- }
40
- );
41
- }
42
- );
43
- h.displayName = "Dock";
44
- const M = ({
45
- size: o = D,
46
- magnification: c = y,
47
- distance: s = E,
48
- mouseX: m,
49
- className: a,
50
- children: t,
51
- ...d
52
- }) => {
53
- const i = C(null), e = Math.max(6, o * 0.2), p = x(1 / 0), n = f(m ?? p, (T) => {
54
- const l = i.current?.getBoundingClientRect() ?? { x: 0, width: 0 };
55
- return T - l.x - l.width / 2;
56
- }), N = f(
57
- n,
58
- [-s, 0, s],
59
- [o, c, o]
60
- ), u = A(N, {
61
- mass: 0.1,
62
- stiffness: 150,
63
- damping: 12
64
- });
65
- return /* @__PURE__ */ g(
66
- I.div,
67
- {
68
- ref: i,
69
- style: { width: u, height: u, padding: e },
70
- className: k("xiping-dock-icon", a),
71
- ...d,
72
- children: t
73
- }
74
- );
75
- };
76
- M.displayName = "DockIcon";
77
- export {
78
- h as Dock,
79
- M as DockIcon
80
- };
@@ -1,38 +0,0 @@
1
- "use client";
2
- import { jsx as i } from "react/jsx-runtime";
3
- import { motion as d, AnimatePresence as h } from "motion/react";
4
- import f from "react";
5
- import x from "clsx";
6
- import './FlipText.css';/* empty css */
7
- const u = {
8
- hidden: { rotateX: -90, opacity: 0 },
9
- visible: { rotateX: 0, opacity: 1 }
10
- };
11
- function A({
12
- children: e,
13
- duration: n = 0.5,
14
- delayMultiple: a = 0.08,
15
- className: o,
16
- as: r = "span",
17
- variants: c,
18
- ...s
19
- }) {
20
- const l = d.create(r), m = f.Children.toArray(e).join("").split("");
21
- return /* @__PURE__ */ i("div", { className: "xiping-flip-container", children: /* @__PURE__ */ i(h, { mode: "wait", children: m.map((p, t) => /* @__PURE__ */ i(
22
- l,
23
- {
24
- initial: "hidden",
25
- animate: "visible",
26
- exit: "hidden",
27
- variants: c || u,
28
- transition: { duration: n, delay: t * a },
29
- className: x("xiping-flip-char", o),
30
- ...s,
31
- children: p
32
- },
33
- t
34
- )) }) });
35
- }
36
- export {
37
- A as FlipText
38
- };
@@ -1,22 +0,0 @@
1
- import { jsxs as s, jsx as a } from "react/jsx-runtime";
2
- import f from "clsx";
3
- import './index.css';/* empty css */
4
- function x({
5
- children: i,
6
- className: e = "",
7
- colors: n = ["#40ffaa", "#4079ff", "#40ffaa", "#4079ff", "#40ffaa"],
8
- animationSpeed: r = 8,
9
- showBorder: o = !1
10
- }) {
11
- const t = {
12
- backgroundImage: `linear-gradient(to right, ${n.join(", ")})`,
13
- animationDuration: `${r}s`
14
- };
15
- return /* @__PURE__ */ s("div", { className: f("xiping-gradient-text", e), children: [
16
- o && /* @__PURE__ */ a("div", { className: "xiping-gradient-text__overlay", style: t }),
17
- /* @__PURE__ */ a("div", { className: "xiping-gradient-text__content", style: t, children: i })
18
- ] });
19
- }
20
- export {
21
- x as GradientText
22
- };
@@ -1,127 +0,0 @@
1
- import { jsxs as X, jsx as t } from "react/jsx-runtime";
2
- import w from "clsx";
3
- import { useState as N, useRef as r, useCallback as a, useEffect as S, useMemo as b } from "react";
4
- import './ImageCompare.css';/* empty css */
5
- const O = (I) => {
6
- const {
7
- originalImage: c,
8
- modifiedImage: x,
9
- className: $,
10
- dividerWidth: l = 1,
11
- originalLabel: P = "Original",
12
- modifiedLabel: A = "Modified",
13
- theme: M = "light"
14
- } = I, [s, C] = N(50), [k, D] = N(16 / 9), h = r(null), d = r(!1), o = r(null), u = r(null), n = r(null), R = a((e) => {
15
- if (!h.current) return;
16
- (!u.current || !d.current) && (u.current = h.current.getBoundingClientRect());
17
- const i = u.current, g = (e - i.left) / i.width * 100, p = Math.min(100, Math.max(0, g));
18
- C(p);
19
- }, []), m = a((e) => {
20
- d.current && (o.current !== null && cancelAnimationFrame(o.current), o.current = requestAnimationFrame(() => {
21
- R(e);
22
- }));
23
- }, [R]), L = a((e) => {
24
- m(e.clientX);
25
- }, [m]), E = a((e) => {
26
- e.touches.length > 0 && m(e.touches[0].clientX);
27
- }, [m]), y = a(() => {
28
- d.current = !0, u.current = null;
29
- const e = (f) => L(f), i = (f) => E(f), v = () => {
30
- d.current = !1, o.current !== null && (cancelAnimationFrame(o.current), o.current = null), n.current && (n.current(), n.current = null);
31
- }, g = () => v(), p = () => v();
32
- window.addEventListener("mousemove", e), window.addEventListener("touchmove", i, { passive: !1 }), window.addEventListener("mouseup", g), window.addEventListener("touchend", p);
33
- const F = () => {
34
- window.removeEventListener("mousemove", e), window.removeEventListener("touchmove", i), window.removeEventListener("mouseup", g), window.removeEventListener("touchend", p);
35
- };
36
- n.current = F;
37
- }, [L, E]);
38
- S(() => () => {
39
- n.current && (n.current(), n.current = null);
40
- }, []), S(() => {
41
- const e = new Image();
42
- e.onload = () => {
43
- D(e.width / e.height);
44
- }, e.src = c;
45
- }, [c]);
46
- const G = b(
47
- () => ({
48
- backgroundRepeat: "no-repeat",
49
- backgroundPosition: "top left",
50
- backgroundImage: `url(${c})`,
51
- backgroundSize: "contain",
52
- aspectRatio: k
53
- }),
54
- [c, k]
55
- ), T = b(
56
- () => ({
57
- width: `${s}%`,
58
- backgroundImage: `url(${x})`,
59
- backgroundRepeat: "no-repeat",
60
- backgroundPosition: "top left",
61
- backgroundSize: "auto 100%"
62
- }),
63
- [s, x]
64
- ), j = b(
65
- () => ({
66
- left: `${s}%`,
67
- transform: "translateX(-50%)",
68
- width: typeof l == "number" ? `${l}px` : l
69
- }),
70
- [s, l]
71
- );
72
- return /* @__PURE__ */ X(
73
- "div",
74
- {
75
- ref: h,
76
- className: w("xiping-image-compare-container", $),
77
- style: G,
78
- children: [
79
- /* @__PURE__ */ t("div", { className: "xiping-image-compare-label xiping-image-compare-label-original", children: P }),
80
- /* @__PURE__ */ t(
81
- "div",
82
- {
83
- className: "xiping-image-compare-overlay",
84
- style: T,
85
- children: /* @__PURE__ */ t("div", { className: "xiping-image-compare-label xiping-image-compare-label-modified", children: A })
86
- }
87
- ),
88
- /* @__PURE__ */ t(
89
- "div",
90
- {
91
- className: w(
92
- "xiping-image-compare-divider",
93
- `xiping-image-compare-divider-theme-${M}`
94
- ),
95
- style: j,
96
- onMouseDown: y,
97
- onTouchStart: y,
98
- children: /* @__PURE__ */ t("div", { className: w(
99
- "xiping-image-compare-divider-button",
100
- `xiping-image-compare-divider-button-theme-${M}`
101
- ), children: /* @__PURE__ */ t(
102
- "svg",
103
- {
104
- className: "xiping-image-compare-divider-icon",
105
- fill: "none",
106
- stroke: "currentColor",
107
- viewBox: "0 0 24 24",
108
- children: /* @__PURE__ */ t(
109
- "path",
110
- {
111
- strokeLinecap: "round",
112
- strokeLinejoin: "round",
113
- strokeWidth: 2,
114
- d: "M8 9l4-4 4 4m0 6l-4 4-4-4"
115
- }
116
- )
117
- }
118
- ) })
119
- }
120
- )
121
- ]
122
- }
123
- );
124
- };
125
- export {
126
- O as default
127
- };
@@ -1,73 +0,0 @@
1
- import { jsx as t } from "react/jsx-runtime";
2
- import { useScroll as f, motion as h, useMotionValue as b, useMotionValueEvent as x, animate as r } from "motion/react";
3
- import { size as v } from "lodash-es";
4
- import { useRef as I } from "react";
5
- import g from "clsx";
6
- import './ImageThumbnails.css';/* empty css */
7
- const $ = "0%", N = "100%", u = "20%", l = "80%", a = "#0000", e = "#000";
8
- function k(i) {
9
- const n = b(
10
- `linear-gradient(90deg, ${e}, ${e} ${$}, ${e} ${l}, ${a})`
11
- );
12
- return x(i, "change", (s) => {
13
- s === 0 ? r(
14
- n,
15
- `linear-gradient(90deg, ${e}, ${e} ${$}, ${e} ${l}, ${a})`
16
- ) : s === 1 ? r(
17
- n,
18
- `linear-gradient(90deg, ${a}, ${e} ${u}, ${e} ${N}, ${e})`
19
- ) : (i.getPrevious() === 0 || i.getPrevious() === 1) && r(
20
- n,
21
- `linear-gradient(90deg, ${a}, ${e} ${u}, ${e} ${l}, ${a})`
22
- );
23
- }), n;
24
- }
25
- const q = ({
26
- images: i,
27
- currentIndex: n,
28
- onImageSelect: s
29
- }) => {
30
- const o = I(null), { scrollXProgress: p } = f({ container: o }), d = k(p);
31
- return /* @__PURE__ */ t(
32
- "div",
33
- {
34
- className: g(
35
- "xiping-thumbnails-wrapper",
36
- v(i) <= 1 && "xiping-thumbnails-wrapper--hidden"
37
- ),
38
- children: /* @__PURE__ */ t(
39
- h.div,
40
- {
41
- ref: o,
42
- style: {
43
- maskImage: d
44
- },
45
- className: "xiping-thumbnails-scroll",
46
- children: /* @__PURE__ */ t("div", { className: "xiping-thumbnails-container", children: i.map((m, c) => /* @__PURE__ */ t(
47
- "div",
48
- {
49
- className: g(
50
- "xiping-thumbnail-item",
51
- c === n && "xiping-thumbnail-item--active"
52
- ),
53
- onClick: () => s(c),
54
- children: /* @__PURE__ */ t(
55
- "img",
56
- {
57
- src: m,
58
- alt: "",
59
- className: "xiping-thumbnail-image",
60
- draggable: "false"
61
- }
62
- )
63
- },
64
- m
65
- )) })
66
- }
67
- )
68
- }
69
- );
70
- };
71
- export {
72
- q as default
73
- };
@@ -1,141 +0,0 @@
1
- "use client";
2
- import { jsx as n, jsxs as f } from "react/jsx-runtime";
3
- import { Modal as z, ModalContent as O, Spinner as S } from "@heroui/react";
4
- import P from "../pinch-content/PinchContent.js";
5
- import V from "./ImageThumbnails.js";
6
- import { useState as v, useCallback as b, useEffect as x } from "react";
7
- import d from "clsx";
8
- import { Download as X, X as B } from "lucide-react";
9
- import { AnimatePresence as K, motion as W } from "motion/react";
10
- import './ImageViewer.css';/* empty css */
11
- const C = (l) => {
12
- l.target.closest(".xiping-main-content") && l.preventDefault();
13
- }, $ = (l) => {
14
- const {
15
- isOpen: a,
16
- onClose: w,
17
- imgSrc: g,
18
- thumbnailImages: N,
19
- canDownload: y = !1,
20
- wrapperClassName: I,
21
- closeClassName: E,
22
- downloadClassName: L,
23
- toolWrapperClassName: k,
24
- initialIndex: D = 0
25
- } = l, o = Array.isArray(g) ? g : [g], A = N || o, R = Math.max(
26
- 0,
27
- Math.min(D, o.length - 1)
28
- ), [c, p] = v(R), [M, u] = v(!0), m = b(() => {
29
- u(!0), w();
30
- }, [w]), T = async () => {
31
- const i = o[c];
32
- try {
33
- const r = await (await fetch(i)).blob(), e = window.URL.createObjectURL(r), s = document.createElement("a");
34
- s.href = e, s.download = i.split("/").pop() || "image", document.body.appendChild(s), s.click(), window.URL.revokeObjectURL(e), document.body.removeChild(s);
35
- } catch (t) {
36
- console.error("Error downloading image:", t);
37
- }
38
- }, U = () => {
39
- u(!1);
40
- }, j = () => {
41
- u(!1);
42
- };
43
- x(() => {
44
- if (a)
45
- return document.addEventListener("touchmove", C, {
46
- passive: !1
47
- }), () => {
48
- document.removeEventListener("touchmove", C);
49
- };
50
- }, [a]);
51
- const h = b(() => {
52
- "vibrate" in navigator && navigator.vibrate([50, 50, 50]);
53
- }, []);
54
- return x(() => {
55
- if (!a) return;
56
- const i = (t) => {
57
- const r = t.target;
58
- if (!(r.tagName === "INPUT" || r.tagName === "TEXTAREA" || r.isContentEditable))
59
- switch (t.key) {
60
- case "ArrowLeft":
61
- t.preventDefault(), p((e) => e > 0 ? e - 1 : (h(), e));
62
- break;
63
- case "ArrowRight":
64
- t.preventDefault(), p((e) => e < o.length - 1 ? e + 1 : (h(), e));
65
- break;
66
- case "Escape":
67
- t.preventDefault(), m();
68
- break;
69
- }
70
- };
71
- return document.addEventListener("keydown", i), () => {
72
- document.removeEventListener("keydown", i);
73
- };
74
- }, [a, o.length, m, h]), /* @__PURE__ */ n(
75
- z,
76
- {
77
- isOpen: a,
78
- size: "full",
79
- onClose: m,
80
- classNames: {
81
- wrapper: d(I)
82
- },
83
- className: "xiping-modal-overlay",
84
- hideCloseButton: !0,
85
- portalContainer: document.body,
86
- children: /* @__PURE__ */ n(O, { className: "xiping-modal-content", children: /* @__PURE__ */ f("div", { className: "xiping-wrapper", children: [
87
- /* @__PURE__ */ f("div", { className: d("xiping-tool-wrapper", k), children: [
88
- y && /* @__PURE__ */ n(
89
- X,
90
- {
91
- size: 24,
92
- className: d("xiping-download-icon", L),
93
- onClick: T
94
- }
95
- ),
96
- /* @__PURE__ */ n(
97
- B,
98
- {
99
- size: 24,
100
- className: d("xiping-close-icon", E),
101
- onClick: m
102
- }
103
- )
104
- ] }),
105
- /* @__PURE__ */ f("div", { className: "xiping-main-content", children: [
106
- /* @__PURE__ */ n(P, { canRotate: !1, className: "xiping-pinch-content", children: /* @__PURE__ */ n(K, { mode: "wait", children: /* @__PURE__ */ n(
107
- W.img,
108
- {
109
- draggable: "false",
110
- src: o[c],
111
- alt: "",
112
- className: "xiping-image",
113
- onLoad: U,
114
- onError: j,
115
- initial: { opacity: 0, scale: 0.95 },
116
- animate: { opacity: 1, scale: 1 },
117
- exit: { opacity: 0, scale: 1.05 },
118
- transition: {
119
- duration: 0.3,
120
- ease: "easeInOut"
121
- }
122
- },
123
- c
124
- ) }) }),
125
- M && /* @__PURE__ */ n("div", { className: "xiping-loading", children: /* @__PURE__ */ n(S, { color: "white", size: "lg" }) })
126
- ] }),
127
- /* @__PURE__ */ n(
128
- V,
129
- {
130
- images: A,
131
- currentIndex: c,
132
- onImageSelect: p
133
- }
134
- )
135
- ] }) })
136
- }
137
- );
138
- };
139
- export {
140
- $ as default
141
- };