deepsea-components 5.15.21 → 5.15.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +23 -23
  2. package/dist/components/AutoFit.cjs +7 -7
  3. package/dist/components/AutoFit.js +7 -7
  4. package/dist/components/AutoScroll.cjs +7 -7
  5. package/dist/components/AutoScroll.js +7 -7
  6. package/dist/components/AutoSizeTextarea.cjs +4 -4
  7. package/dist/components/AutoSizeTextarea.js +4 -4
  8. package/dist/components/Flow.cjs +16 -16
  9. package/dist/components/Flow.js +16 -16
  10. package/dist/components/FormLabel.cjs +1 -1
  11. package/dist/components/FormLabel.js +1 -1
  12. package/dist/components/InfiniteScroll.cjs +13 -13
  13. package/dist/components/InfiniteScroll.js +13 -13
  14. package/dist/components/LoopSwiper.cjs +33 -33
  15. package/dist/components/LoopSwiper.js +33 -33
  16. package/dist/components/Scroll.cjs +13 -13
  17. package/dist/components/Scroll.js +13 -13
  18. package/dist/components/ScrollMask.module.cjs +2 -2
  19. package/dist/components/ScrollMask.module.js +2 -2
  20. package/dist/components/Skeleton.cjs +17 -17
  21. package/dist/components/Skeleton.js +17 -17
  22. package/dist/components/TransitionNum.cjs +1 -1
  23. package/dist/components/TransitionNum.js +1 -1
  24. package/dist/components/Trapezium.cjs +4 -4
  25. package/dist/components/Trapezium.js +4 -4
  26. package/package.json +4 -3
  27. package/src/components/AutoFit.tsx +104 -104
  28. package/src/components/AutoScroll.tsx +150 -150
  29. package/src/components/AutoSizeTextarea.tsx +50 -50
  30. package/src/components/CircleText.tsx +81 -81
  31. package/src/components/CopyButton.tsx +31 -31
  32. package/src/components/Echart.tsx +69 -69
  33. package/src/components/Flow.tsx +271 -271
  34. package/src/components/FormLabel.tsx +41 -41
  35. package/src/components/HlsPlayer.tsx +34 -34
  36. package/src/components/IconFileType.tsx +162 -162
  37. package/src/components/InfiniteScroll.tsx +163 -163
  38. package/src/components/InputFile.tsx +93 -93
  39. package/src/components/InputFileButton.tsx +122 -122
  40. package/src/components/LoopSwiper.tsx +125 -125
  41. package/src/components/ReadExcel.tsx +13 -13
  42. package/src/components/ReadSheet.tsx +17 -17
  43. package/src/components/Ring.tsx +30 -30
  44. package/src/components/Scroll.tsx +97 -97
  45. package/src/components/ScrollMask.module.css +87 -87
  46. package/src/components/ScrollMask.tsx +68 -68
  47. package/src/components/SectionRing.tsx +40 -40
  48. package/src/components/Skeleton.tsx +45 -45
  49. package/src/components/Title.tsx +27 -27
  50. package/src/components/TransitionBox.tsx +44 -44
  51. package/src/components/TransitionNum.tsx +54 -54
  52. package/src/components/Trapezium.tsx +60 -60
  53. package/src/components/Unify.tsx +38 -38
  54. package/src/components/WriteExcel.tsx +13 -13
  55. package/src/components/WriteSheet.tsx +25 -25
  56. package/src/utils/getReactVersion.ts +7 -7
  57. package/src/utils/index.ts +33 -33
  58. package/tsconfig.json +16 -16
@@ -1,34 +1,34 @@
1
- "use client"
2
-
3
- import Hls from "hls.js"
4
- import { MediaHTMLAttributes, forwardRef, useEffect, useImperativeHandle, useRef } from "react"
5
-
6
- export interface HlsPlayerProps extends Omit<MediaHTMLAttributes<HTMLVideoElement>, "src"> {
7
- src: string
8
- }
9
-
10
- export const HlsPlayer = forwardRef<HTMLVideoElement, HlsPlayerProps>((props, ref) => {
11
- const { src, ...rest } = props
12
- const video = useRef<HTMLVideoElement>(null)
13
-
14
- useImperativeHandle(ref, () => video.current!, [])
15
-
16
- useEffect(() => {
17
- const { current: player } = video
18
- if (!player || !src) return
19
- if (player.canPlayType("application/vnd.apple.mpegurl")) {
20
- player.src = src
21
- return
22
- }
23
- if (Hls.isSupported()) {
24
- const hls = new Hls()
25
- hls.loadSource(src)
26
- hls.attachMedia(player)
27
- return () => {
28
- hls.destroy()
29
- }
30
- }
31
- }, [src])
32
-
33
- return <video ref={video} {...rest} />
34
- })
1
+ "use client"
2
+
3
+ import Hls from "hls.js"
4
+ import { MediaHTMLAttributes, forwardRef, useEffect, useImperativeHandle, useRef } from "react"
5
+
6
+ export interface HlsPlayerProps extends Omit<MediaHTMLAttributes<HTMLVideoElement>, "src"> {
7
+ src: string
8
+ }
9
+
10
+ export const HlsPlayer = forwardRef<HTMLVideoElement, HlsPlayerProps>((props, ref) => {
11
+ const { src, ...rest } = props
12
+ const video = useRef<HTMLVideoElement>(null)
13
+
14
+ useImperativeHandle(ref, () => video.current!, [])
15
+
16
+ useEffect(() => {
17
+ const { current: player } = video
18
+ if (!player || !src) return
19
+ if (player.canPlayType("application/vnd.apple.mpegurl")) {
20
+ player.src = src
21
+ return
22
+ }
23
+ if (Hls.isSupported()) {
24
+ const hls = new Hls()
25
+ hls.loadSource(src)
26
+ hls.attachMedia(player)
27
+ return () => {
28
+ hls.destroy()
29
+ }
30
+ }
31
+ }, [src])
32
+
33
+ return <video ref={video} {...rest} />
34
+ })
@@ -1,162 +1,162 @@
1
- import { ComponentProps, FC } from "react"
2
-
3
- const GOLD = (Math.sqrt(5) - 1) / 2
4
- const GOLD_T = Math.sqrt(1 - GOLD * GOLD)
5
- const HANDLE_LENGTH = (1 - GOLD) * GOLD_T
6
-
7
- const FileTypeSize = 512
8
-
9
- export const IconFileTypeBase: FC<ComponentProps<"svg">> = props => (
10
- <svg viewBox={`${-(FileTypeSize / 2)} ${-(FileTypeSize / 2)} ${FileTypeSize} ${FileTypeSize}`} {...props} />
11
- )
12
-
13
- export interface IconFileTypePagePropsBase {
14
- /**
15
- * 书页颜色,默认为 #f31260
16
- */
17
- pageColor?: string
18
- /**
19
- * 书页宽度,默认为 512 * 0.75
20
- */
21
- pageWidth?: number
22
- /**
23
- * 书页贝塞尔曲线尺寸,尺寸越大,圆角越大,默认为 512 * 0.75 * 0.618
24
- */
25
- pageBessel?: number
26
- }
27
-
28
- export interface IconFileTypePageProps extends IconFileTypePagePropsBase, ComponentProps<"path"> {}
29
-
30
- export const IconFileTypePage: FC<IconFileTypePageProps> = ({
31
- pageColor = "#f31260",
32
- pageWidth = FileTypeSize * 0.75,
33
- pageBessel = FileTypeSize * 0.75 * GOLD,
34
- ...rest
35
- }) => {
36
- const radius = pageBessel * (1 - GOLD)
37
- const offset = pageBessel * HANDLE_LENGTH
38
-
39
- return (
40
- <path
41
- d={`M ${-(pageWidth / 2 - radius)} ${-(FileTypeSize / 2)}
42
- L ${pageWidth * GOLD - pageWidth / 2} ${-(FileTypeSize / 2)}
43
- L ${pageWidth / 2} ${-(FileTypeSize / 2 - pageWidth * (1 - GOLD))}
44
- L ${pageWidth / 2} ${FileTypeSize / 2 - radius}
45
- C ${pageWidth / 2} ${FileTypeSize / 2 - radius + offset} ${pageWidth / 2 - radius + offset} ${FileTypeSize / 2} ${pageWidth / 2 - radius} ${FileTypeSize / 2}
46
- L ${-(pageWidth / 2 - radius)} ${FileTypeSize / 2}
47
- C ${-(pageWidth / 2 - radius) - offset} ${FileTypeSize / 2} ${-(pageWidth / 2)} ${FileTypeSize / 2 - radius + offset} ${-(pageWidth / 2)} ${FileTypeSize / 2 - radius}
48
- L ${-(pageWidth / 2)} ${-(FileTypeSize / 2 - radius)}
49
- C ${-(pageWidth / 2)} ${-(FileTypeSize / 2 - radius) - offset} ${-(pageWidth / 2 - radius) - offset} ${-(FileTypeSize / 2)} ${-(pageWidth / 2 - radius)} ${-(FileTypeSize / 2)}
50
- Z
51
- `}
52
- fill={pageColor}
53
- {...rest}
54
- />
55
- )
56
- }
57
-
58
- export interface IconFileTypeDogEarPropsBase extends Required<Pick<IconFileTypePagePropsBase, "pageWidth">> {
59
- /**
60
- * 折角颜色,默认为 rgba(0, 0, 0, 0.25)
61
- */
62
- dogEarColor?: string
63
- /**
64
- * 折角大小,默认为 页面宽度 * (1 - 0.618)
65
- */
66
- dogEarSize?: number
67
- }
68
-
69
- export interface IconFileTypeDogEarProps extends IconFileTypeDogEarPropsBase, ComponentProps<"path"> {}
70
-
71
- export const IconFileTypeDogEar: FC<IconFileTypeDogEarProps> = ({
72
- pageWidth,
73
- dogEarColor = "rgba(0, 0, 0, 0.25)",
74
- dogEarSize = pageWidth * (1 - GOLD),
75
- ...rest
76
- }) => (
77
- <path
78
- d={`M ${pageWidth / 2 - dogEarSize} ${-(FileTypeSize / 2)}
79
- L ${pageWidth / 2} ${-(FileTypeSize / 2 - dogEarSize)}
80
- L ${pageWidth / 2 - dogEarSize} ${-(FileTypeSize / 2 - dogEarSize)}`}
81
- fill={dogEarColor}
82
- {...rest}
83
- />
84
- )
85
-
86
- export interface IconFileTypeTextPropsBase {
87
- /**
88
- * 文字颜色,默认为 白色
89
- */
90
- textColor?: string
91
- /**
92
- * 文字大小,默认为 512 * 0.25
93
- */
94
- textFontSize?: number
95
- /**
96
- * 文字字重,默认为 bold
97
- */
98
- textFontWeight?: string
99
- /**
100
- * 文字字体
101
- */
102
- textFontFamily?: string
103
- /**
104
- * 文字 x 轴远点,默认为 0
105
- */
106
- textX?: number
107
- /**
108
- * 文字 y 轴远点,默认为 512 * 0.25
109
- */
110
- textY?: number
111
- }
112
-
113
- export interface IconFileTypeTextProps extends IconFileTypeTextPropsBase, ComponentProps<"text"> {}
114
-
115
- export const IconFileTypeText: FC<IconFileTypeTextProps> = ({
116
- textColor = "#ffffff",
117
- textFontSize = FileTypeSize * 0.25,
118
- textFontWeight = "bold",
119
- textFontFamily,
120
- textX = 0,
121
- textY = FileTypeSize * 0.25,
122
- ...rest
123
- }) => (
124
- <text textAnchor="middle" fill={textColor} x={textX} y={textY} fontSize={textFontSize} fontWeight={textFontWeight} fontFamily={textFontFamily} {...rest} />
125
- )
126
-
127
- export interface IconFileTypeProps
128
- extends IconFileTypePagePropsBase,
129
- Omit<IconFileTypeDogEarPropsBase, "pageWidth">,
130
- IconFileTypeTextPropsBase,
131
- ComponentProps<"svg"> {}
132
-
133
- export const IconFileType: FC<IconFileTypeProps> = ({
134
- pageColor,
135
- pageWidth = FileTypeSize * 0.75,
136
- pageBessel,
137
- dogEarColor,
138
- dogEarSize,
139
- textColor,
140
- textFontSize,
141
- textFontWeight,
142
- textFontFamily,
143
- textX,
144
- textY,
145
- children,
146
- ...rest
147
- }) => (
148
- <IconFileTypeBase {...rest}>
149
- <IconFileTypePage pageColor={pageColor} pageWidth={pageWidth} pageBessel={pageBessel} />
150
- <IconFileTypeDogEar pageWidth={pageWidth} dogEarColor={dogEarColor} dogEarSize={dogEarSize} />
151
- <IconFileTypeText
152
- textColor={textColor}
153
- textFontSize={textFontSize}
154
- textFontWeight={textFontWeight}
155
- textFontFamily={textFontFamily}
156
- textX={textX}
157
- textY={textY}
158
- >
159
- {children}
160
- </IconFileTypeText>
161
- </IconFileTypeBase>
162
- )
1
+ import { ComponentProps, FC } from "react"
2
+
3
+ const GOLD = (Math.sqrt(5) - 1) / 2
4
+ const GOLD_T = Math.sqrt(1 - GOLD * GOLD)
5
+ const HANDLE_LENGTH = (1 - GOLD) * GOLD_T
6
+
7
+ const FileTypeSize = 512
8
+
9
+ export const IconFileTypeBase: FC<ComponentProps<"svg">> = props => (
10
+ <svg viewBox={`${-(FileTypeSize / 2)} ${-(FileTypeSize / 2)} ${FileTypeSize} ${FileTypeSize}`} {...props} />
11
+ )
12
+
13
+ export interface IconFileTypePagePropsBase {
14
+ /**
15
+ * 书页颜色,默认为 #f31260
16
+ */
17
+ pageColor?: string
18
+ /**
19
+ * 书页宽度,默认为 512 * 0.75
20
+ */
21
+ pageWidth?: number
22
+ /**
23
+ * 书页贝塞尔曲线尺寸,尺寸越大,圆角越大,默认为 512 * 0.75 * 0.618
24
+ */
25
+ pageBessel?: number
26
+ }
27
+
28
+ export interface IconFileTypePageProps extends IconFileTypePagePropsBase, ComponentProps<"path"> {}
29
+
30
+ export const IconFileTypePage: FC<IconFileTypePageProps> = ({
31
+ pageColor = "#f31260",
32
+ pageWidth = FileTypeSize * 0.75,
33
+ pageBessel = FileTypeSize * 0.75 * GOLD,
34
+ ...rest
35
+ }) => {
36
+ const radius = pageBessel * (1 - GOLD)
37
+ const offset = pageBessel * HANDLE_LENGTH
38
+
39
+ return (
40
+ <path
41
+ d={`M ${-(pageWidth / 2 - radius)} ${-(FileTypeSize / 2)}
42
+ L ${pageWidth * GOLD - pageWidth / 2} ${-(FileTypeSize / 2)}
43
+ L ${pageWidth / 2} ${-(FileTypeSize / 2 - pageWidth * (1 - GOLD))}
44
+ L ${pageWidth / 2} ${FileTypeSize / 2 - radius}
45
+ C ${pageWidth / 2} ${FileTypeSize / 2 - radius + offset} ${pageWidth / 2 - radius + offset} ${FileTypeSize / 2} ${pageWidth / 2 - radius} ${FileTypeSize / 2}
46
+ L ${-(pageWidth / 2 - radius)} ${FileTypeSize / 2}
47
+ C ${-(pageWidth / 2 - radius) - offset} ${FileTypeSize / 2} ${-(pageWidth / 2)} ${FileTypeSize / 2 - radius + offset} ${-(pageWidth / 2)} ${FileTypeSize / 2 - radius}
48
+ L ${-(pageWidth / 2)} ${-(FileTypeSize / 2 - radius)}
49
+ C ${-(pageWidth / 2)} ${-(FileTypeSize / 2 - radius) - offset} ${-(pageWidth / 2 - radius) - offset} ${-(FileTypeSize / 2)} ${-(pageWidth / 2 - radius)} ${-(FileTypeSize / 2)}
50
+ Z
51
+ `}
52
+ fill={pageColor}
53
+ {...rest}
54
+ />
55
+ )
56
+ }
57
+
58
+ export interface IconFileTypeDogEarPropsBase extends Required<Pick<IconFileTypePagePropsBase, "pageWidth">> {
59
+ /**
60
+ * 折角颜色,默认为 rgba(0, 0, 0, 0.25)
61
+ */
62
+ dogEarColor?: string
63
+ /**
64
+ * 折角大小,默认为 页面宽度 * (1 - 0.618)
65
+ */
66
+ dogEarSize?: number
67
+ }
68
+
69
+ export interface IconFileTypeDogEarProps extends IconFileTypeDogEarPropsBase, ComponentProps<"path"> {}
70
+
71
+ export const IconFileTypeDogEar: FC<IconFileTypeDogEarProps> = ({
72
+ pageWidth,
73
+ dogEarColor = "rgba(0, 0, 0, 0.25)",
74
+ dogEarSize = pageWidth * (1 - GOLD),
75
+ ...rest
76
+ }) => (
77
+ <path
78
+ d={`M ${pageWidth / 2 - dogEarSize} ${-(FileTypeSize / 2)}
79
+ L ${pageWidth / 2} ${-(FileTypeSize / 2 - dogEarSize)}
80
+ L ${pageWidth / 2 - dogEarSize} ${-(FileTypeSize / 2 - dogEarSize)}`}
81
+ fill={dogEarColor}
82
+ {...rest}
83
+ />
84
+ )
85
+
86
+ export interface IconFileTypeTextPropsBase {
87
+ /**
88
+ * 文字颜色,默认为 白色
89
+ */
90
+ textColor?: string
91
+ /**
92
+ * 文字大小,默认为 512 * 0.25
93
+ */
94
+ textFontSize?: number
95
+ /**
96
+ * 文字字重,默认为 bold
97
+ */
98
+ textFontWeight?: string
99
+ /**
100
+ * 文字字体
101
+ */
102
+ textFontFamily?: string
103
+ /**
104
+ * 文字 x 轴远点,默认为 0
105
+ */
106
+ textX?: number
107
+ /**
108
+ * 文字 y 轴远点,默认为 512 * 0.25
109
+ */
110
+ textY?: number
111
+ }
112
+
113
+ export interface IconFileTypeTextProps extends IconFileTypeTextPropsBase, ComponentProps<"text"> {}
114
+
115
+ export const IconFileTypeText: FC<IconFileTypeTextProps> = ({
116
+ textColor = "#ffffff",
117
+ textFontSize = FileTypeSize * 0.25,
118
+ textFontWeight = "bold",
119
+ textFontFamily,
120
+ textX = 0,
121
+ textY = FileTypeSize * 0.25,
122
+ ...rest
123
+ }) => (
124
+ <text textAnchor="middle" fill={textColor} x={textX} y={textY} fontSize={textFontSize} fontWeight={textFontWeight} fontFamily={textFontFamily} {...rest} />
125
+ )
126
+
127
+ export interface IconFileTypeProps
128
+ extends IconFileTypePagePropsBase,
129
+ Omit<IconFileTypeDogEarPropsBase, "pageWidth">,
130
+ IconFileTypeTextPropsBase,
131
+ ComponentProps<"svg"> {}
132
+
133
+ export const IconFileType: FC<IconFileTypeProps> = ({
134
+ pageColor,
135
+ pageWidth = FileTypeSize * 0.75,
136
+ pageBessel,
137
+ dogEarColor,
138
+ dogEarSize,
139
+ textColor,
140
+ textFontSize,
141
+ textFontWeight,
142
+ textFontFamily,
143
+ textX,
144
+ textY,
145
+ children,
146
+ ...rest
147
+ }) => (
148
+ <IconFileTypeBase {...rest}>
149
+ <IconFileTypePage pageColor={pageColor} pageWidth={pageWidth} pageBessel={pageBessel} />
150
+ <IconFileTypeDogEar pageWidth={pageWidth} dogEarColor={dogEarColor} dogEarSize={dogEarSize} />
151
+ <IconFileTypeText
152
+ textColor={textColor}
153
+ textFontSize={textFontSize}
154
+ textFontWeight={textFontWeight}
155
+ textFontFamily={textFontFamily}
156
+ textX={textX}
157
+ textY={textY}
158
+ >
159
+ {children}
160
+ </IconFileTypeText>
161
+ </IconFileTypeBase>
162
+ )