@vnejs/uis.react.smooth-text 0.1.6 → 0.1.8
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/SmoothText.d.ts +2 -18
- package/dist/SmoothText.d.ts.map +1 -1
- package/dist/SmoothText.js +1 -2
- package/dist/SmoothText.js.map +1 -1
- package/dist/SmoothText.styles.d.ts +1 -1
- package/dist/SmoothText.styles.d.ts.map +1 -1
- package/dist/SmoothText.types.d.ts +22 -0
- package/dist/SmoothText.types.d.ts.map +1 -0
- package/dist/SmoothText.types.js +2 -0
- package/dist/SmoothText.types.js.map +1 -0
- package/dist/hooks/chars.hook.d.ts +2 -1
- package/dist/hooks/chars.hook.d.ts.map +1 -1
- package/dist/hooks/chars.hook.js +1 -1
- package/dist/hooks/chars.hook.js.map +1 -1
- package/dist/hooks/chars.hook.types.d.ts +7 -0
- package/dist/hooks/chars.hook.types.d.ts.map +1 -0
- package/dist/hooks/chars.hook.types.js +2 -0
- package/dist/hooks/chars.hook.types.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/SmoothText.tsx +6 -6
- package/src/SmoothText.types.tsx +24 -0
- package/src/hooks/chars.hook.ts +4 -2
- package/src/hooks/chars.hook.types.ts +12 -0
- package/src/index.ts +2 -1
- package/tsconfig.json +0 -1
package/dist/SmoothText.d.ts
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
color?: string;
|
|
4
|
-
size?: number;
|
|
5
|
-
className?: string;
|
|
6
|
-
width?: number;
|
|
7
|
-
height?: number;
|
|
8
|
-
opacity?: any;
|
|
9
|
-
font?: string;
|
|
10
|
-
transition?: any;
|
|
11
|
-
charDelay?: number;
|
|
12
|
-
tokensVisibleForce?: any;
|
|
13
|
-
isForce?: boolean;
|
|
14
|
-
isCentered?: boolean;
|
|
15
|
-
isNotRender?: boolean;
|
|
16
|
-
isNoScrollBar?: boolean;
|
|
17
|
-
scrollBarTextSize?: any;
|
|
18
|
-
}) => import("react/jsx-runtime").JSX.Element;
|
|
1
|
+
import { type SmoothTextProps } from "./SmoothText.types.js";
|
|
2
|
+
export declare const SmoothText: ({ tokens, color, size, className, width, height, opacity, font, transition, charDelay, tokensVisibleForce, isForce, isCentered, isNotRender, isNoScrollBar, scrollBarTextSize, }: SmoothTextProps) => import("react/jsx-runtime").JSX.Element;
|
|
19
3
|
//# sourceMappingURL=SmoothText.d.ts.map
|
package/dist/SmoothText.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmoothText.d.ts","sourceRoot":"","sources":["../src/SmoothText.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SmoothText.d.ts","sourceRoot":"","sources":["../src/SmoothText.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,eAAO,MAAM,UAAU,GAAI,kLAiBxB,eAAe,4CAgEjB,CAAC"}
|
package/dist/SmoothText.js
CHANGED
|
@@ -4,7 +4,6 @@ import { getVneLength } from "@vnejs/uis.utils";
|
|
|
4
4
|
import { Char, Scrollbar } from "@vnejs/uis.react";
|
|
5
5
|
import { useSmoothTextCharsVisibleHook } from "./hooks/chars.hook";
|
|
6
6
|
import { b } from "./SmoothText.styles.js";
|
|
7
|
-
const EMPTY_ARRAY = [];
|
|
8
7
|
export const SmoothText = ({ tokens = [], color = "", size = 60, className = "", width = 0, height = 0, opacity = null, font = "", transition = null, charDelay = 20, tokensVisibleForce = null, isForce = false, isCentered = false, isNotRender = false, isNoScrollBar = false, scrollBarTextSize = null, }) => {
|
|
9
8
|
const style = useMemo(() => {
|
|
10
9
|
const result = {};
|
|
@@ -23,7 +22,7 @@ export const SmoothText = ({ tokens = [], color = "", size = 60, className = "",
|
|
|
23
22
|
return result;
|
|
24
23
|
}, [font, color, size, transition, opacity, isForce]);
|
|
25
24
|
const tokensVisible = useSmoothTextCharsVisibleHook(tokens, charDelay, tokensVisibleForce);
|
|
26
|
-
const renderChar = useCallback((tokenInfo, i) => (_jsx(Char, { token: tokenInfo.token, marks: tokenInfo.marks, isVisible: i < tokensVisible, isForce: isForce || tokensVisible === 0 }, `${tokenInfo.token}:${i}`)), [tokensVisible]);
|
|
25
|
+
const renderChar = useCallback((tokenInfo, i) => (_jsx(Char, { token: tokenInfo.token, marks: tokenInfo.marks, isVisible: i < tokensVisible, isForce: isForce || tokensVisible === 0 }, `${tokenInfo.token}:${i}`)), [tokensVisible, isForce]);
|
|
27
26
|
if (isNotRender)
|
|
28
27
|
return null;
|
|
29
28
|
if (isNoScrollBar) {
|
package/dist/SmoothText.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmoothText.js","sourceRoot":"","sources":["../src/SmoothText.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"SmoothText.js","sourceRoot":"","sources":["../src/SmoothText.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const b:
|
|
1
|
+
export declare const b: any;
|
|
2
2
|
//# sourceMappingURL=SmoothText.styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmoothText.styles.d.ts","sourceRoot":"","sources":["../src/SmoothText.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"SmoothText.styles.d.ts","sourceRoot":"","sources":["../src/SmoothText.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,CAAC,KAAmB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CssInsertValueLength, CssInsertValueNumber, CssInsertValueString } from "@vnejs/uis.utils";
|
|
2
|
+
import type { SmoothTextToken } from "./hooks/chars.hook.types.js";
|
|
3
|
+
export type { SmoothTextToken };
|
|
4
|
+
export type SmoothTextProps = {
|
|
5
|
+
tokens?: SmoothTextToken[];
|
|
6
|
+
color?: CssInsertValueString;
|
|
7
|
+
size?: CssInsertValueLength;
|
|
8
|
+
className?: string;
|
|
9
|
+
width?: CssInsertValueLength;
|
|
10
|
+
height?: CssInsertValueLength;
|
|
11
|
+
opacity?: CssInsertValueNumber;
|
|
12
|
+
font?: CssInsertValueString;
|
|
13
|
+
transition?: CssInsertValueNumber;
|
|
14
|
+
charDelay?: number;
|
|
15
|
+
tokensVisibleForce?: number | null;
|
|
16
|
+
isForce?: boolean;
|
|
17
|
+
isCentered?: boolean;
|
|
18
|
+
isNotRender?: boolean;
|
|
19
|
+
isNoScrollBar?: boolean;
|
|
20
|
+
scrollBarTextSize?: number | null;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=SmoothText.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmoothText.types.d.ts","sourceRoot":"","sources":["../src/SmoothText.types.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEzG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmoothText.types.js","sourceRoot":"","sources":["../src/SmoothText.types.tsx"],"names":[],"mappings":""}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
import { type UseSmoothTextCharsVisibleHook } from "./chars.hook.types.js";
|
|
2
|
+
export declare const useSmoothTextCharsVisibleHook: UseSmoothTextCharsVisibleHook;
|
|
2
3
|
//# sourceMappingURL=chars.hook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chars.hook.d.ts","sourceRoot":"","sources":["../../src/hooks/chars.hook.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"chars.hook.d.ts","sourceRoot":"","sources":["../../src/hooks/chars.hook.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,KAAK,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAEjG,eAAO,MAAM,6BAA6B,EAAE,6BAoB3C,CAAC"}
|
package/dist/hooks/chars.hook.js
CHANGED
|
@@ -4,7 +4,7 @@ export const useSmoothTextCharsVisibleHook = (tokens, charDelay, tokensVisibleFo
|
|
|
4
4
|
useEffect(() => {
|
|
5
5
|
if (tokensVisibleForce === null)
|
|
6
6
|
setTokensVisible(0);
|
|
7
|
-
}, [tokens, charDelay]);
|
|
7
|
+
}, [tokens, charDelay, tokensVisibleForce]);
|
|
8
8
|
useEffect(() => {
|
|
9
9
|
if (tokensVisibleForce !== null)
|
|
10
10
|
setTokensVisible(tokensVisibleForce);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chars.hook.js","sourceRoot":"","sources":["../../src/hooks/chars.hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"chars.hook.js","sourceRoot":"","sources":["../../src/hooks/chars.hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAI5C,MAAM,CAAC,MAAM,6BAA6B,GAAkC,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE;IACpH,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEtD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,kBAAkB,KAAK,IAAI;YAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,kBAAkB,KAAK,IAAI;YAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IACxE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,kBAAkB,KAAK,IAAI,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM;YAAE,OAAO;QAE1E,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAE5E,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE3D,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type SmoothTextToken = {
|
|
2
|
+
token: string;
|
|
3
|
+
marks?: string[];
|
|
4
|
+
};
|
|
5
|
+
export type UseSmoothTextCharsVisibleHookReturn = number;
|
|
6
|
+
export type UseSmoothTextCharsVisibleHook = (tokens: SmoothTextToken[], charDelay: number, tokensVisibleForce: number | null) => UseSmoothTextCharsVisibleHookReturn;
|
|
7
|
+
//# sourceMappingURL=chars.hook.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chars.hook.types.d.ts","sourceRoot":"","sources":["../../src/hooks/chars.hook.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG,MAAM,CAAC;AAEzD,MAAM,MAAM,6BAA6B,GAAG,CAC1C,MAAM,EAAE,eAAe,EAAE,EACzB,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,GAAG,IAAI,KAC9B,mCAAmC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chars.hook.types.js","sourceRoot":"","sources":["../../src/hooks/chars.hook.types.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
|
package/package.json
CHANGED
package/src/SmoothText.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useCallback,
|
|
1
|
+
import { useCallback, useMemo } from "react";
|
|
2
2
|
|
|
3
3
|
import { getVneLength } from "@vnejs/uis.utils";
|
|
4
4
|
|
|
@@ -6,9 +6,9 @@ import { Char, Scrollbar } from "@vnejs/uis.react";
|
|
|
6
6
|
|
|
7
7
|
import { useSmoothTextCharsVisibleHook } from "./hooks/chars.hook";
|
|
8
8
|
|
|
9
|
-
import {
|
|
9
|
+
import { type SmoothTextProps } from "./SmoothText.types.js";
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
import { b } from "./SmoothText.styles.js";
|
|
12
12
|
|
|
13
13
|
export const SmoothText = ({
|
|
14
14
|
tokens = [],
|
|
@@ -27,9 +27,9 @@ export const SmoothText = ({
|
|
|
27
27
|
isNotRender = false,
|
|
28
28
|
isNoScrollBar = false,
|
|
29
29
|
scrollBarTextSize = null,
|
|
30
|
-
}) => {
|
|
30
|
+
}: SmoothTextProps) => {
|
|
31
31
|
const style = useMemo(() => {
|
|
32
|
-
const result: Record<string,
|
|
32
|
+
const result: Record<string, string | number> = {};
|
|
33
33
|
|
|
34
34
|
if (font) result.fontFamily = font;
|
|
35
35
|
if (color) result.color = color;
|
|
@@ -58,7 +58,7 @@ export const SmoothText = ({
|
|
|
58
58
|
isForce={isForce || tokensVisible === 0}
|
|
59
59
|
/>
|
|
60
60
|
),
|
|
61
|
-
[tokensVisible],
|
|
61
|
+
[tokensVisible, isForce],
|
|
62
62
|
);
|
|
63
63
|
|
|
64
64
|
if (isNotRender) return null;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { CssInsertValueLength, CssInsertValueNumber, CssInsertValueString } from "@vnejs/uis.utils";
|
|
2
|
+
|
|
3
|
+
import type { SmoothTextToken } from "./hooks/chars.hook.types.js";
|
|
4
|
+
|
|
5
|
+
export type { SmoothTextToken };
|
|
6
|
+
|
|
7
|
+
export type SmoothTextProps = {
|
|
8
|
+
tokens?: SmoothTextToken[];
|
|
9
|
+
color?: CssInsertValueString;
|
|
10
|
+
size?: CssInsertValueLength;
|
|
11
|
+
className?: string;
|
|
12
|
+
width?: CssInsertValueLength;
|
|
13
|
+
height?: CssInsertValueLength;
|
|
14
|
+
opacity?: CssInsertValueNumber;
|
|
15
|
+
font?: CssInsertValueString;
|
|
16
|
+
transition?: CssInsertValueNumber;
|
|
17
|
+
charDelay?: number;
|
|
18
|
+
tokensVisibleForce?: number | null;
|
|
19
|
+
isForce?: boolean;
|
|
20
|
+
isCentered?: boolean;
|
|
21
|
+
isNotRender?: boolean;
|
|
22
|
+
isNoScrollBar?: boolean;
|
|
23
|
+
scrollBarTextSize?: number | null;
|
|
24
|
+
};
|
package/src/hooks/chars.hook.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { useEffect, useState } from "react";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
import { type SmoothTextToken, type UseSmoothTextCharsVisibleHook } from "./chars.hook.types.js";
|
|
4
|
+
|
|
5
|
+
export const useSmoothTextCharsVisibleHook: UseSmoothTextCharsVisibleHook = (tokens, charDelay, tokensVisibleForce) => {
|
|
4
6
|
const [tokensVisible, setTokensVisible] = useState(0);
|
|
5
7
|
|
|
6
8
|
useEffect(() => {
|
|
7
9
|
if (tokensVisibleForce === null) setTokensVisible(0);
|
|
8
|
-
}, [tokens, charDelay]);
|
|
10
|
+
}, [tokens, charDelay, tokensVisibleForce]);
|
|
9
11
|
|
|
10
12
|
useEffect(() => {
|
|
11
13
|
if (tokensVisibleForce !== null) setTokensVisible(tokensVisibleForce);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type SmoothTextToken = {
|
|
2
|
+
token: string;
|
|
3
|
+
marks?: string[];
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
export type UseSmoothTextCharsVisibleHookReturn = number;
|
|
7
|
+
|
|
8
|
+
export type UseSmoothTextCharsVisibleHook = (
|
|
9
|
+
tokens: SmoothTextToken[],
|
|
10
|
+
charDelay: number,
|
|
11
|
+
tokensVisibleForce: number | null,
|
|
12
|
+
) => UseSmoothTextCharsVisibleHookReturn;
|
package/src/index.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from "./SmoothText";
|
|
1
|
+
export * from "./SmoothText.types.js";
|
|
2
|
+
export * from "./SmoothText.js";
|