@unif/react-native-chat 2.1.2 → 2.2.0
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/README.md +6 -6
- package/lib/module/components/Attachments/AttachmentItem.js +3 -5
- package/lib/module/components/Attachments/AttachmentItem.js.map +1 -1
- package/lib/module/components/ProcessingProgress/ProcessingProgress.js +46 -0
- package/lib/module/components/ProcessingProgress/ProcessingProgress.js.map +1 -0
- package/lib/module/components/ProcessingProgress/ProcessingProgressPrefix.js +53 -0
- package/lib/module/components/ProcessingProgress/ProcessingProgressPrefix.js.map +1 -0
- package/lib/module/components/ProcessingProgress/constants.js +7 -0
- package/lib/module/components/ProcessingProgress/constants.js.map +1 -0
- package/lib/module/components/ProcessingProgress/index.js +4 -0
- package/lib/module/components/ProcessingProgress/index.js.map +1 -0
- package/lib/module/components/ProcessingProgress/styles.js +17 -0
- package/lib/module/components/ProcessingProgress/styles.js.map +1 -0
- package/lib/module/components/ProcessingProgress/types.js +2 -0
- package/lib/module/components/ProcessingProgress/types.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/components/Attachments/AttachmentItem.d.ts.map +1 -1
- package/lib/typescript/src/components/Attachments/types.d.ts +1 -1
- package/lib/typescript/src/components/Attachments/types.d.ts.map +1 -1
- package/lib/typescript/src/components/ProcessingProgress/ProcessingProgress.d.ts +3 -0
- package/lib/typescript/src/components/ProcessingProgress/ProcessingProgress.d.ts.map +1 -0
- package/lib/typescript/src/components/ProcessingProgress/ProcessingProgressPrefix.d.ts +3 -0
- package/lib/typescript/src/components/ProcessingProgress/ProcessingProgressPrefix.d.ts.map +1 -0
- package/lib/typescript/src/components/ProcessingProgress/constants.d.ts +5 -0
- package/lib/typescript/src/components/ProcessingProgress/constants.d.ts.map +1 -0
- package/lib/typescript/src/components/ProcessingProgress/index.d.ts +3 -0
- package/lib/typescript/src/components/ProcessingProgress/index.d.ts.map +1 -0
- package/lib/typescript/src/components/ProcessingProgress/styles.d.ts +14 -0
- package/lib/typescript/src/components/ProcessingProgress/styles.d.ts.map +1 -0
- package/lib/typescript/src/components/ProcessingProgress/types.d.ts +9 -0
- package/lib/typescript/src/components/ProcessingProgress/types.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +2 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/components/Attachments/AttachmentItem.tsx +2 -7
- package/src/components/Attachments/types.ts +1 -1
- package/src/components/ProcessingProgress/ProcessingProgress.tsx +49 -0
- package/src/components/ProcessingProgress/ProcessingProgressPrefix.tsx +68 -0
- package/src/components/ProcessingProgress/constants.ts +4 -0
- package/src/components/ProcessingProgress/index.ts +2 -0
- package/src/components/ProcessingProgress/styles.ts +17 -0
- package/src/components/ProcessingProgress/types.ts +9 -0
- package/src/index.tsx +2 -0
package/README.md
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
|
|
7
7
|
## 提供什么
|
|
8
8
|
|
|
9
|
-
| 用途 | 组件
|
|
10
|
-
| -------------- |
|
|
11
|
-
| 聊天布局与消息 | Chat、MessageList、Message
|
|
12
|
-
| 输入与附件 | Composer、Attachments、Suggestions
|
|
13
|
-
| 交互与反馈 | Confirmation、Process、Feedback
|
|
14
|
-
| 来源与引用 | Sources、Citation
|
|
9
|
+
| 用途 | 组件 |
|
|
10
|
+
| -------------- | --------------------------------------------------- |
|
|
11
|
+
| 聊天布局与消息 | Chat、MessageList、Message |
|
|
12
|
+
| 输入与附件 | Composer、Attachments、Suggestions |
|
|
13
|
+
| 交互与反馈 | Confirmation、Process、ProcessingProgress、Feedback |
|
|
14
|
+
| 来源与引用 | Sources、Citation |
|
|
15
15
|
|
|
16
16
|
组件负责展示和事件;应用负责会话、草稿、文件上传、Agent 请求和业务处理。Markdown 使用 `react-native-marked`。
|
|
17
17
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { Text, View } from 'react-native';
|
|
4
|
-
import {
|
|
4
|
+
import { Button, CircularProgress, Icon, IconButton, radius, Spinner, useThemedStyles } from '@unif/react-native-design';
|
|
5
5
|
import { ATTACHMENT_ICONS, STATUS_LABELS } from "./constants.js";
|
|
6
6
|
import { createStyles } from "./styles.js";
|
|
7
7
|
import { Thumbnail } from '@unif/react-native-design';
|
|
@@ -63,9 +63,7 @@ export function AttachmentItem({
|
|
|
63
63
|
style: [styles.item, row ? styles.row : {
|
|
64
64
|
width
|
|
65
65
|
}],
|
|
66
|
-
children: [
|
|
67
|
-
children: media
|
|
68
|
-
}) : media, /*#__PURE__*/_jsxs(View, {
|
|
66
|
+
children: [media, /*#__PURE__*/_jsxs(View, {
|
|
69
67
|
style: [styles.content, row && styles.rowContent],
|
|
70
68
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
71
69
|
style: styles.name,
|
|
@@ -77,7 +75,7 @@ export function AttachmentItem({
|
|
|
77
75
|
style: [styles.meta, status === 'failed' && styles.failed],
|
|
78
76
|
accessibilityLiveRegion: "polite",
|
|
79
77
|
children: statusText
|
|
80
|
-
}) : null, busy && loadingVisual
|
|
78
|
+
}) : null, busy && loadingVisual === 'caption' && showProgressLabel && progress !== undefined ? /*#__PURE__*/_jsx(Text, {
|
|
81
79
|
style: styles.meta,
|
|
82
80
|
children: `${Math.round(progress * 100)}%`
|
|
83
81
|
}) : null, /*#__PURE__*/_jsxs(View, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Text","View","
|
|
1
|
+
{"version":3,"names":["Text","View","Button","CircularProgress","Icon","IconButton","radius","Spinner","useThemedStyles","ATTACHMENT_ICONS","STATUS_LABELS","createStyles","Thumbnail","jsx","_jsx","jsxs","_jsxs","AttachmentItem","item","width","imageSize","row","showProgressLabel","onPreview","onRemove","styles","name","status","loadingVisual","busy","progress","Number","isFinite","undefined","statusText","icon","kind","size","media","style","minWidth","minHeight","children","pointerEvents","imageLayer","thumbnail","source","height","borderRadius","sm","fallback","placeholder","value","showLabel","accessibilityLabel","content","rowContent","meta","failed","accessibilityLiveRegion","Math","round","actions","previewable","onPress","removable","disabled","removeDisabled","map","action","label","leftIcon","variant","loading","accessibilityHint","id"],"sourceRoot":"../../../../src","sources":["components/Attachments/AttachmentItem.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Text, View } from 'react-native';
|
|
4
|
+
import { usePrefersReducedMotion, useThemedStyles } from '@unif/react-native-design';
|
|
5
|
+
import { PROCESSING_PROGRESS_SEPARATOR } from "./constants.js";
|
|
6
|
+
import { ProcessingProgressPrefix } from "./ProcessingProgressPrefix.js";
|
|
7
|
+
import { createStyles } from "./styles.js";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
export function ProcessingProgress({
|
|
10
|
+
progress
|
|
11
|
+
}) {
|
|
12
|
+
const styles = useThemedStyles(createStyles);
|
|
13
|
+
const reducedMotion = usePrefersReducedMotion();
|
|
14
|
+
const separatorIndex = progress.indexOf(PROCESSING_PROGRESS_SEPARATOR);
|
|
15
|
+
const prefix = separatorIndex === -1 ? progress : progress.slice(0, separatorIndex);
|
|
16
|
+
const suffix = separatorIndex === -1 ? '' : progress.slice(separatorIndex);
|
|
17
|
+
return /*#__PURE__*/_jsx(View, {
|
|
18
|
+
style: styles.root,
|
|
19
|
+
accessible: true,
|
|
20
|
+
accessibilityRole: "text",
|
|
21
|
+
accessibilityLabel: progress,
|
|
22
|
+
accessibilityState: {
|
|
23
|
+
busy: true
|
|
24
|
+
},
|
|
25
|
+
"aria-busy": true,
|
|
26
|
+
accessibilityLiveRegion: "polite",
|
|
27
|
+
children: /*#__PURE__*/_jsxs(Text, {
|
|
28
|
+
testID: "processing-progress-line",
|
|
29
|
+
style: styles.text,
|
|
30
|
+
numberOfLines: 1,
|
|
31
|
+
ellipsizeMode: "tail",
|
|
32
|
+
accessible: false,
|
|
33
|
+
"aria-hidden": true,
|
|
34
|
+
children: [/*#__PURE__*/_jsx(ProcessingProgressPrefix
|
|
35
|
+
// Each prefix/motion generation owns its value, including late frames.
|
|
36
|
+
, {
|
|
37
|
+
text: prefix,
|
|
38
|
+
reducedMotion: reducedMotion
|
|
39
|
+
}, `${reducedMotion}:${prefix}`), suffix ? /*#__PURE__*/_jsx(Text, {
|
|
40
|
+
testID: "processing-progress-suffix",
|
|
41
|
+
children: suffix
|
|
42
|
+
}) : null]
|
|
43
|
+
})
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=ProcessingProgress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Text","View","usePrefersReducedMotion","useThemedStyles","PROCESSING_PROGRESS_SEPARATOR","ProcessingProgressPrefix","createStyles","jsx","_jsx","jsxs","_jsxs","ProcessingProgress","progress","styles","reducedMotion","separatorIndex","indexOf","prefix","slice","suffix","style","root","accessible","accessibilityRole","accessibilityLabel","accessibilityState","busy","accessibilityLiveRegion","children","testID","text","numberOfLines","ellipsizeMode"],"sourceRoot":"../../../../src","sources":["components/ProcessingProgress/ProcessingProgress.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACzC,SACEC,uBAAuB,EACvBC,eAAe,QACV,2BAA2B;AAClC,SAASC,6BAA6B,QAAQ,gBAAa;AAC3D,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,YAAY,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGxC,OAAO,SAASC,kBAAkBA,CAAC;EAAEC;AAAkC,CAAC,EAAE;EACxE,MAAMC,MAAM,GAAGV,eAAe,CAACG,YAAY,CAAC;EAC5C,MAAMQ,aAAa,GAAGZ,uBAAuB,CAAC,CAAC;EAC/C,MAAMa,cAAc,GAAGH,QAAQ,CAACI,OAAO,CAACZ,6BAA6B,CAAC;EACtE,MAAMa,MAAM,GACVF,cAAc,KAAK,CAAC,CAAC,GAAGH,QAAQ,GAAGA,QAAQ,CAACM,KAAK,CAAC,CAAC,EAAEH,cAAc,CAAC;EACtE,MAAMI,MAAM,GAAGJ,cAAc,KAAK,CAAC,CAAC,GAAG,EAAE,GAAGH,QAAQ,CAACM,KAAK,CAACH,cAAc,CAAC;EAE1E,oBACEP,IAAA,CAACP,IAAI;IACHmB,KAAK,EAAEP,MAAM,CAACQ,IAAK;IACnBC,UAAU;IACVC,iBAAiB,EAAC,MAAM;IACxBC,kBAAkB,EAAEZ,QAAS;IAC7Ba,kBAAkB,EAAE;MAAEC,IAAI,EAAE;IAAK,CAAE;IACnC,iBAAS;IACTC,uBAAuB,EAAC,QAAQ;IAAAC,QAAA,eAEhClB,KAAA,CAACV,IAAI;MACH6B,MAAM,EAAC,0BAA0B;MACjCT,KAAK,EAAEP,MAAM,CAACiB,IAAK;MACnBC,aAAa,EAAE,CAAE;MACjBC,aAAa,EAAC,MAAM;MACpBV,UAAU,EAAE,KAAM;MAClB,mBAAW;MAAAM,QAAA,gBAEXpB,IAAA,CAACH;MACC;MAAA;QAEAyB,IAAI,EAAEb,MAAO;QACbH,aAAa,EAAEA;MAAc,GAFxB,GAAGA,aAAa,IAAIG,MAAM,EAGhC,CAAC,EACDE,MAAM,gBACLX,IAAA,CAACR,IAAI;QAAC6B,MAAM,EAAC,4BAA4B;QAAAD,QAAA,EAAET;MAAM,CAAO,CAAC,GACvD,IAAI;IAAA,CACJ;EAAC,CACH,CAAC;AAEX","ignoreList":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useEffect, useRef } from 'react';
|
|
4
|
+
import { Animated, Easing, Platform, Text } from 'react-native';
|
|
5
|
+
import { useTheme } from '@unif/react-native-design';
|
|
6
|
+
import { PROCESSING_PROGRESS_SHINE_DURATION_MS, PROCESSING_PROGRESS_SHINE_PEAK, PROCESSING_PROGRESS_SHINE_RADIUS } from "./constants.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
export const ProcessingProgressPrefix = /*#__PURE__*/memo(function Prefix({
|
|
9
|
+
text,
|
|
10
|
+
reducedMotion
|
|
11
|
+
}) {
|
|
12
|
+
const {
|
|
13
|
+
colors,
|
|
14
|
+
scheme
|
|
15
|
+
} = useTheme();
|
|
16
|
+
const animation = useRef(new Animated.Value(-PROCESSING_PROGRESS_SHINE_RADIUS)).current;
|
|
17
|
+
const characters = Array.from(text);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
if (reducedMotion || !characters.length) return undefined;
|
|
20
|
+
const loop = Animated.loop(Animated.timing(animation, {
|
|
21
|
+
toValue: characters.length + PROCESSING_PROGRESS_SHINE_RADIUS,
|
|
22
|
+
duration: PROCESSING_PROGRESS_SHINE_DURATION_MS,
|
|
23
|
+
easing: Easing.linear,
|
|
24
|
+
useNativeDriver: Platform.OS !== 'web',
|
|
25
|
+
isInteraction: false
|
|
26
|
+
}));
|
|
27
|
+
loop.start();
|
|
28
|
+
return () => loop.stop();
|
|
29
|
+
}, [animation, characters.length, reducedMotion]);
|
|
30
|
+
const baseColor = scheme === 'dark' ? colors.foregroundMuted : colors.foreground;
|
|
31
|
+
if (reducedMotion) return /*#__PURE__*/_jsx(Text, {
|
|
32
|
+
style: {
|
|
33
|
+
color: baseColor
|
|
34
|
+
},
|
|
35
|
+
children: text
|
|
36
|
+
});
|
|
37
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
38
|
+
children: characters.map((character, index) => /*#__PURE__*/_jsx(Animated.Text, {
|
|
39
|
+
style: {
|
|
40
|
+
color: animation.interpolate({
|
|
41
|
+
inputRange: [index - PROCESSING_PROGRESS_SHINE_RADIUS, index, index + PROCESSING_PROGRESS_SHINE_RADIUS],
|
|
42
|
+
outputRange: [0, PROCESSING_PROGRESS_SHINE_PEAK, 0],
|
|
43
|
+
extrapolate: 'clamp'
|
|
44
|
+
}).interpolate({
|
|
45
|
+
inputRange: [0, 1],
|
|
46
|
+
outputRange: [baseColor, colors.onPrimary]
|
|
47
|
+
})
|
|
48
|
+
},
|
|
49
|
+
children: character
|
|
50
|
+
}, `${index}:${character}`))
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=ProcessingProgressPrefix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useEffect","useRef","Animated","Easing","Platform","Text","useTheme","PROCESSING_PROGRESS_SHINE_DURATION_MS","PROCESSING_PROGRESS_SHINE_PEAK","PROCESSING_PROGRESS_SHINE_RADIUS","jsx","_jsx","ProcessingProgressPrefix","Prefix","text","reducedMotion","colors","scheme","animation","Value","current","characters","Array","from","length","undefined","loop","timing","toValue","duration","easing","linear","useNativeDriver","OS","isInteraction","start","stop","baseColor","foregroundMuted","foreground","style","color","children","map","character","index","interpolate","inputRange","outputRange","extrapolate","onPrimary"],"sourceRoot":"../../../../src","sources":["components/ProcessingProgress/ProcessingProgressPrefix.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAC/C,SAASC,QAAQ,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,IAAI,QAAQ,cAAc;AAC/D,SAASC,QAAQ,QAAQ,2BAA2B;AACpD,SACEC,qCAAqC,EACrCC,8BAA8B,EAC9BC,gCAAgC,QAC3B,gBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGrB,OAAO,MAAMC,wBAAwB,gBAAGb,IAAI,CAAC,SAASc,MAAMA,CAAC;EAC3DC,IAAI;EACJC;AAC6B,CAAC,EAAE;EAChC,MAAM;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGX,QAAQ,CAAC,CAAC;EACrC,MAAMY,SAAS,GAAGjB,MAAM,CACtB,IAAIC,QAAQ,CAACiB,KAAK,CAAC,CAACV,gCAAgC,CACtD,CAAC,CAACW,OAAO;EACT,MAAMC,UAAU,GAAGC,KAAK,CAACC,IAAI,CAACT,IAAI,CAAC;EAEnCd,SAAS,CAAC,MAAM;IACd,IAAIe,aAAa,IAAI,CAACM,UAAU,CAACG,MAAM,EAAE,OAAOC,SAAS;IACzD,MAAMC,IAAI,GAAGxB,QAAQ,CAACwB,IAAI,CACxBxB,QAAQ,CAACyB,MAAM,CAACT,SAAS,EAAE;MACzBU,OAAO,EAAEP,UAAU,CAACG,MAAM,GAAGf,gCAAgC;MAC7DoB,QAAQ,EAAEtB,qCAAqC;MAC/CuB,MAAM,EAAE3B,MAAM,CAAC4B,MAAM;MACrBC,eAAe,EAAE5B,QAAQ,CAAC6B,EAAE,KAAK,KAAK;MACtCC,aAAa,EAAE;IACjB,CAAC,CACH,CAAC;IACDR,IAAI,CAACS,KAAK,CAAC,CAAC;IACZ,OAAO,MAAMT,IAAI,CAACU,IAAI,CAAC,CAAC;EAC1B,CAAC,EAAE,CAAClB,SAAS,EAAEG,UAAU,CAACG,MAAM,EAAET,aAAa,CAAC,CAAC;EAEjD,MAAMsB,SAAS,GACbpB,MAAM,KAAK,MAAM,GAAGD,MAAM,CAACsB,eAAe,GAAGtB,MAAM,CAACuB,UAAU;EAEhE,IAAIxB,aAAa,EAAE,oBAAOJ,IAAA,CAACN,IAAI;IAACmC,KAAK,EAAE;MAAEC,KAAK,EAAEJ;IAAU,CAAE;IAAAK,QAAA,EAAE5B;EAAI,CAAO,CAAC;EAE1E,oBACEH,IAAA,CAACN,IAAI;IAAAqC,QAAA,EACFrB,UAAU,CAACsB,GAAG,CAAC,CAACC,SAAS,EAAEC,KAAK,kBAC/BlC,IAAA,CAACT,QAAQ,CAACG,IAAI;MAEZmC,KAAK,EAAE;QACLC,KAAK,EAAEvB,SAAS,CACb4B,WAAW,CAAC;UACXC,UAAU,EAAE,CACVF,KAAK,GAAGpC,gCAAgC,EACxCoC,KAAK,EACLA,KAAK,GAAGpC,gCAAgC,CACzC;UACDuC,WAAW,EAAE,CAAC,CAAC,EAAExC,8BAA8B,EAAE,CAAC,CAAC;UACnDyC,WAAW,EAAE;QACf,CAAC,CAAC,CACDH,WAAW,CAAC;UACXC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;UAClBC,WAAW,EAAE,CAACX,SAAS,EAAErB,MAAM,CAACkC,SAAS;QAC3C,CAAC;MACL,CAAE;MAAAR,QAAA,EAEDE;IAAS,GAlBL,GAAGC,KAAK,IAAID,SAAS,EAmBb,CAChB;EAAC,CACE,CAAC;AAEX,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const PROCESSING_PROGRESS_SEPARATOR = '·';
|
|
4
|
+
export const PROCESSING_PROGRESS_SHINE_DURATION_MS = 1800;
|
|
5
|
+
export const PROCESSING_PROGRESS_SHINE_RADIUS = 2;
|
|
6
|
+
export const PROCESSING_PROGRESS_SHINE_PEAK = 0.85;
|
|
7
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PROCESSING_PROGRESS_SEPARATOR","PROCESSING_PROGRESS_SHINE_DURATION_MS","PROCESSING_PROGRESS_SHINE_RADIUS","PROCESSING_PROGRESS_SHINE_PEAK"],"sourceRoot":"../../../../src","sources":["components/ProcessingProgress/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,6BAA6B,GAAG,GAAG;AAChD,OAAO,MAAMC,qCAAqC,GAAG,IAAI;AACzD,OAAO,MAAMC,gCAAgC,GAAG,CAAC;AACjD,OAAO,MAAMC,8BAA8B,GAAG,IAAI","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ProcessingProgress"],"sourceRoot":"../../../../src","sources":["components/ProcessingProgress/index.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,yBAAsB","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StyleSheet } from 'react-native';
|
|
4
|
+
import { r, space, type } from '@unif/react-native-design';
|
|
5
|
+
export const createStyles = colors => StyleSheet.create({
|
|
6
|
+
root: {
|
|
7
|
+
minWidth: 0,
|
|
8
|
+
paddingHorizontal: space[4],
|
|
9
|
+
paddingVertical: space[3]
|
|
10
|
+
},
|
|
11
|
+
text: {
|
|
12
|
+
color: colors.foregroundMuted,
|
|
13
|
+
fontSize: type.xs,
|
|
14
|
+
lineHeight: r(20)
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StyleSheet","r","space","type","createStyles","colors","create","root","minWidth","paddingHorizontal","paddingVertical","text","color","foregroundMuted","fontSize","xs","lineHeight"],"sourceRoot":"../../../../src","sources":["components/ProcessingProgress/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,CAAC,EAAEC,KAAK,EAAEC,IAAI,QAAQ,2BAA2B;AAG1D,OAAO,MAAMC,YAAY,GAAIC,MAAmB,IAC9CL,UAAU,CAACM,MAAM,CAAC;EAChBC,IAAI,EAAE;IACJC,QAAQ,EAAE,CAAC;IACXC,iBAAiB,EAAEP,KAAK,CAAC,CAAC,CAAC;IAC3BQ,eAAe,EAAER,KAAK,CAAC,CAAC;EAC1B,CAAC;EACDS,IAAI,EAAE;IACJC,KAAK,EAAEP,MAAM,CAACQ,eAAe;IAC7BC,QAAQ,EAAEX,IAAI,CAACY,EAAE;IACjBC,UAAU,EAAEf,CAAC,CAAC,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/ProcessingProgress/types.ts"],"mappings":"","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -8,6 +8,7 @@ export { Chat } from "./components/Chat/index.js";
|
|
|
8
8
|
export { Suggestions } from "./components/Suggestions/index.js";
|
|
9
9
|
export { Confirmation } from "./components/Confirmation/index.js";
|
|
10
10
|
export { Process } from "./components/Process/index.js";
|
|
11
|
+
export { ProcessingProgress } from "./components/ProcessingProgress/index.js";
|
|
11
12
|
export { Feedback } from "./components/Feedback/index.js";
|
|
12
13
|
export { Sources } from "./components/Sources/index.js";
|
|
13
14
|
export { Citation } from "./components/Citation/index.js";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Composer","Attachments","Message","MessageList","Chat","Suggestions","Confirmation","Process","Feedback","Sources","Citation"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AACA,SAASA,QAAQ,QAAQ,gCAAuB;AAWhD,SAASC,WAAW,QAAQ,mCAA0B;AAMtD,SAASC,OAAO,QAAQ,+BAAsB;AAU9C,SAASC,WAAW,QAAQ,mCAA0B;AAMtD,SAASC,IAAI,QAAQ,4BAAmB;AAExC,SAASC,WAAW,QAAQ,mCAA0B;AAKtD,SAASC,YAAY,QAAQ,oCAA2B;AAKxD,SAASC,OAAO,QAAQ,+BAAsB;AAS9C,SAASC,QAAQ,QAAQ,gCAAuB;AAEhD,SAASC,OAAO,QAAQ,+BAAsB;AAE9C,SAASC,QAAQ,QAAQ,gCAAuB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Composer","Attachments","Message","MessageList","Chat","Suggestions","Confirmation","Process","ProcessingProgress","Feedback","Sources","Citation"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AACA,SAASA,QAAQ,QAAQ,gCAAuB;AAWhD,SAASC,WAAW,QAAQ,mCAA0B;AAMtD,SAASC,OAAO,QAAQ,+BAAsB;AAU9C,SAASC,WAAW,QAAQ,mCAA0B;AAMtD,SAASC,IAAI,QAAQ,4BAAmB;AAExC,SAASC,WAAW,QAAQ,mCAA0B;AAKtD,SAASC,YAAY,QAAQ,oCAA2B;AAKxD,SAASC,OAAO,QAAQ,+BAAsB;AAS9C,SAASC,kBAAkB,QAAQ,0CAAiC;AAEpE,SAASC,QAAQ,QAAQ,gCAAuB;AAEhD,SAASC,OAAO,QAAQ,+BAAsB;AAE9C,SAASC,QAAQ,QAAQ,gCAAuB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentItem.d.ts","sourceRoot":"","sources":["../../../../../src/components/Attachments/AttachmentItem.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AttachmentItem.d.ts","sourceRoot":"","sources":["../../../../../src/components/Attachments/AttachmentItem.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAS,CAAC;AAEnD,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,KAAK,EACL,SAAS,EACT,GAAG,EACH,iBAAyB,EACzB,SAAS,EACT,QAAQ,GACT,EAAE,mBAAmB,+BA8GrB"}
|
|
@@ -10,7 +10,7 @@ export interface ChatAttachmentItem {
|
|
|
10
10
|
status?: ChatAttachmentStatus;
|
|
11
11
|
statusText?: string;
|
|
12
12
|
progress?: number;
|
|
13
|
-
loadingVisual?: 'center' | '
|
|
13
|
+
loadingVisual?: 'center' | 'caption';
|
|
14
14
|
previewable?: boolean;
|
|
15
15
|
removable?: boolean;
|
|
16
16
|
removeDisabled?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/Attachments/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAe,CAAC;AAEhD,MAAM,MAAM,oBAAoB,GAC9B,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC3D,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAC5C,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/Attachments/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAe,CAAC;AAEhD,MAAM,MAAM,oBAAoB,GAC9B,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC3D,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAC5C,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CACjC;AACD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;IAChD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAC/C,gBAAgB,EAChB,mBAAmB,GAAG,WAAW,GAAG,UAAU,CAC/C;IACC,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,OAAO,CAAC;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessingProgress.d.ts","sourceRoot":"","sources":["../../../../../src/components/ProcessingProgress/ProcessingProgress.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAS,CAAC;AAEvD,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE,uBAAuB,+BAsCvE"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ProcessingProgressPrefixProps } from './types.js';
|
|
2
|
+
export declare const ProcessingProgressPrefix: import("react").MemoExoticComponent<({ text, reducedMotion, }: ProcessingProgressPrefixProps) => import("react").JSX.Element>;
|
|
3
|
+
//# sourceMappingURL=ProcessingProgressPrefix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessingProgressPrefix.d.ts","sourceRoot":"","sources":["../../../../../src/components/ProcessingProgress/ProcessingProgressPrefix.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,YAAS,CAAC;AAE7D,eAAO,MAAM,wBAAwB,iEAGlC,6BAA6B,iCAsD9B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const PROCESSING_PROGRESS_SEPARATOR = "\u00B7";
|
|
2
|
+
export declare const PROCESSING_PROGRESS_SHINE_DURATION_MS = 1800;
|
|
3
|
+
export declare const PROCESSING_PROGRESS_SHINE_RADIUS = 2;
|
|
4
|
+
export declare const PROCESSING_PROGRESS_SHINE_PEAK = 0.85;
|
|
5
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/components/ProcessingProgress/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,WAAM,CAAC;AACjD,eAAO,MAAM,qCAAqC,OAAO,CAAC;AAC1D,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAClD,eAAO,MAAM,8BAA8B,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ProcessingProgress/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAsB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAS,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ColorTokens } from '@unif/react-native-design';
|
|
2
|
+
export declare const createStyles: (colors: ColorTokens) => Readonly<{
|
|
3
|
+
root: {
|
|
4
|
+
minWidth: number;
|
|
5
|
+
paddingHorizontal: number;
|
|
6
|
+
paddingVertical: number;
|
|
7
|
+
};
|
|
8
|
+
text: {
|
|
9
|
+
color: string;
|
|
10
|
+
fontSize: number;
|
|
11
|
+
lineHeight: number;
|
|
12
|
+
};
|
|
13
|
+
}>;
|
|
14
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/ProcessingProgress/styles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,eAAO,MAAM,YAAY,GAAI,QAAQ,WAAW;;;;;;;;;;;EAY5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/ProcessingProgress/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,OAAO,CAAC;CACxB"}
|
|
@@ -15,6 +15,8 @@ export { Confirmation } from './components/Confirmation/index.js';
|
|
|
15
15
|
export type { ConfirmationProps, ConfirmationStatus, } from './components/Confirmation/index.js';
|
|
16
16
|
export { Process } from './components/Process/index.js';
|
|
17
17
|
export type { ProcessBaseProps, ProcessControlledExpansion, ProcessLocalExpansion, ProcessProps, ProcessStep, ProcessStepStatus, } from './components/Process/index.js';
|
|
18
|
+
export { ProcessingProgress } from './components/ProcessingProgress/index.js';
|
|
19
|
+
export type { ProcessingProgressProps } from './components/ProcessingProgress/index.js';
|
|
18
20
|
export { Feedback } from './components/Feedback/index.js';
|
|
19
21
|
export type { FeedbackProps, FeedbackTone } from './components/Feedback/index.js';
|
|
20
22
|
export { Sources } from './components/Sources/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAW,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAuB,CAAC;AACjD,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gCAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,mCAA0B,CAAC;AACvD,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,mCAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,+BAAsB,CAAC;AAC/C,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,+BAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,mCAA0B,CAAC;AACvD,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,mCAA0B,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,4BAAmB,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,4BAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAA0B,CAAC;AACvD,YAAY,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,mCAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,oCAA2B,CAAC;AACzD,YAAY,EACV,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,oCAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,+BAAsB,CAAC;AAC/C,YAAY,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,MAAM,+BAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gCAAuB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAAsB,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,+BAAsB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAW,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAuB,CAAC;AACjD,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gCAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,mCAA0B,CAAC;AACvD,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,mCAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,+BAAsB,CAAC;AAC/C,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,+BAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,mCAA0B,CAAC;AACvD,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,mCAA0B,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,4BAAmB,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,4BAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAA0B,CAAC;AACvD,YAAY,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,mCAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,oCAA2B,CAAC;AACzD,YAAY,EACV,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,oCAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,+BAAsB,CAAC;AAC/C,YAAY,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,MAAM,+BAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAAiC,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,0CAAiC,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gCAAuB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAAsB,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,+BAAsB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAuB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unif/react-native-chat",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Unif React Native 聊天组件:消息、输入、附件和交互展示",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"@sbaiahmed1/react-native-blur": "6.0.1",
|
|
69
69
|
"@testing-library/react-native": "13.3.3",
|
|
70
70
|
"@types/react": "^19.2.0",
|
|
71
|
-
"@unif/react-native-design": "0.
|
|
71
|
+
"@unif/react-native-design": "0.34.0",
|
|
72
72
|
"commitlint": "^21.2.1",
|
|
73
73
|
"del-cli": "^7.0.0",
|
|
74
74
|
"eslint": "^9.39.5",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"typescript": "^6.0.3"
|
|
97
97
|
},
|
|
98
98
|
"peerDependencies": {
|
|
99
|
-
"@unif/react-native-design": "^0.
|
|
99
|
+
"@unif/react-native-design": "^0.34.0",
|
|
100
100
|
"react": ">=19.2.3 <20.0.0",
|
|
101
101
|
"react-native": ">=0.86.0",
|
|
102
102
|
"react-native-svg": ">=15"
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Text, View } from 'react-native';
|
|
2
2
|
import {
|
|
3
|
-
BorderBeam,
|
|
4
3
|
Button,
|
|
5
4
|
CircularProgress,
|
|
6
5
|
Icon,
|
|
@@ -81,11 +80,7 @@ export function AttachmentItem({
|
|
|
81
80
|
|
|
82
81
|
return (
|
|
83
82
|
<View style={[styles.item, row ? styles.row : { width }]}>
|
|
84
|
-
{
|
|
85
|
-
<BorderBeam>{media}</BorderBeam>
|
|
86
|
-
) : (
|
|
87
|
-
media
|
|
88
|
-
)}
|
|
83
|
+
{media}
|
|
89
84
|
<View style={[styles.content, row && styles.rowContent]}>
|
|
90
85
|
<Text style={styles.name}>{name}</Text>
|
|
91
86
|
{item.meta ? <Text style={styles.meta}>{item.meta}</Text> : null}
|
|
@@ -98,7 +93,7 @@ export function AttachmentItem({
|
|
|
98
93
|
</Text>
|
|
99
94
|
) : null}
|
|
100
95
|
{busy &&
|
|
101
|
-
loadingVisual
|
|
96
|
+
loadingVisual === 'caption' &&
|
|
102
97
|
showProgressLabel &&
|
|
103
98
|
progress !== undefined ? (
|
|
104
99
|
<Text style={styles.meta}>{`${Math.round(progress * 100)}%`}</Text>
|
|
@@ -12,7 +12,7 @@ export interface ChatAttachmentItem {
|
|
|
12
12
|
status?: ChatAttachmentStatus;
|
|
13
13
|
statusText?: string;
|
|
14
14
|
progress?: number;
|
|
15
|
-
loadingVisual?: 'center' | '
|
|
15
|
+
loadingVisual?: 'center' | 'caption';
|
|
16
16
|
previewable?: boolean;
|
|
17
17
|
removable?: boolean;
|
|
18
18
|
removeDisabled?: boolean;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Text, View } from 'react-native';
|
|
2
|
+
import {
|
|
3
|
+
usePrefersReducedMotion,
|
|
4
|
+
useThemedStyles,
|
|
5
|
+
} from '@unif/react-native-design';
|
|
6
|
+
import { PROCESSING_PROGRESS_SEPARATOR } from './constants';
|
|
7
|
+
import { ProcessingProgressPrefix } from './ProcessingProgressPrefix';
|
|
8
|
+
import { createStyles } from './styles';
|
|
9
|
+
import type { ProcessingProgressProps } from './types';
|
|
10
|
+
|
|
11
|
+
export function ProcessingProgress({ progress }: ProcessingProgressProps) {
|
|
12
|
+
const styles = useThemedStyles(createStyles);
|
|
13
|
+
const reducedMotion = usePrefersReducedMotion();
|
|
14
|
+
const separatorIndex = progress.indexOf(PROCESSING_PROGRESS_SEPARATOR);
|
|
15
|
+
const prefix =
|
|
16
|
+
separatorIndex === -1 ? progress : progress.slice(0, separatorIndex);
|
|
17
|
+
const suffix = separatorIndex === -1 ? '' : progress.slice(separatorIndex);
|
|
18
|
+
|
|
19
|
+
return (
|
|
20
|
+
<View
|
|
21
|
+
style={styles.root}
|
|
22
|
+
accessible
|
|
23
|
+
accessibilityRole="text"
|
|
24
|
+
accessibilityLabel={progress}
|
|
25
|
+
accessibilityState={{ busy: true }}
|
|
26
|
+
aria-busy
|
|
27
|
+
accessibilityLiveRegion="polite"
|
|
28
|
+
>
|
|
29
|
+
<Text
|
|
30
|
+
testID="processing-progress-line"
|
|
31
|
+
style={styles.text}
|
|
32
|
+
numberOfLines={1}
|
|
33
|
+
ellipsizeMode="tail"
|
|
34
|
+
accessible={false}
|
|
35
|
+
aria-hidden
|
|
36
|
+
>
|
|
37
|
+
<ProcessingProgressPrefix
|
|
38
|
+
// Each prefix/motion generation owns its value, including late frames.
|
|
39
|
+
key={`${reducedMotion}:${prefix}`}
|
|
40
|
+
text={prefix}
|
|
41
|
+
reducedMotion={reducedMotion}
|
|
42
|
+
/>
|
|
43
|
+
{suffix ? (
|
|
44
|
+
<Text testID="processing-progress-suffix">{suffix}</Text>
|
|
45
|
+
) : null}
|
|
46
|
+
</Text>
|
|
47
|
+
</View>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { memo, useEffect, useRef } from 'react';
|
|
2
|
+
import { Animated, Easing, Platform, Text } from 'react-native';
|
|
3
|
+
import { useTheme } from '@unif/react-native-design';
|
|
4
|
+
import {
|
|
5
|
+
PROCESSING_PROGRESS_SHINE_DURATION_MS,
|
|
6
|
+
PROCESSING_PROGRESS_SHINE_PEAK,
|
|
7
|
+
PROCESSING_PROGRESS_SHINE_RADIUS,
|
|
8
|
+
} from './constants';
|
|
9
|
+
import type { ProcessingProgressPrefixProps } from './types';
|
|
10
|
+
|
|
11
|
+
export const ProcessingProgressPrefix = memo(function Prefix({
|
|
12
|
+
text,
|
|
13
|
+
reducedMotion,
|
|
14
|
+
}: ProcessingProgressPrefixProps) {
|
|
15
|
+
const { colors, scheme } = useTheme();
|
|
16
|
+
const animation = useRef(
|
|
17
|
+
new Animated.Value(-PROCESSING_PROGRESS_SHINE_RADIUS)
|
|
18
|
+
).current;
|
|
19
|
+
const characters = Array.from(text);
|
|
20
|
+
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (reducedMotion || !characters.length) return undefined;
|
|
23
|
+
const loop = Animated.loop(
|
|
24
|
+
Animated.timing(animation, {
|
|
25
|
+
toValue: characters.length + PROCESSING_PROGRESS_SHINE_RADIUS,
|
|
26
|
+
duration: PROCESSING_PROGRESS_SHINE_DURATION_MS,
|
|
27
|
+
easing: Easing.linear,
|
|
28
|
+
useNativeDriver: Platform.OS !== 'web',
|
|
29
|
+
isInteraction: false,
|
|
30
|
+
})
|
|
31
|
+
);
|
|
32
|
+
loop.start();
|
|
33
|
+
return () => loop.stop();
|
|
34
|
+
}, [animation, characters.length, reducedMotion]);
|
|
35
|
+
|
|
36
|
+
const baseColor =
|
|
37
|
+
scheme === 'dark' ? colors.foregroundMuted : colors.foreground;
|
|
38
|
+
|
|
39
|
+
if (reducedMotion) return <Text style={{ color: baseColor }}>{text}</Text>;
|
|
40
|
+
|
|
41
|
+
return (
|
|
42
|
+
<Text>
|
|
43
|
+
{characters.map((character, index) => (
|
|
44
|
+
<Animated.Text
|
|
45
|
+
key={`${index}:${character}`}
|
|
46
|
+
style={{
|
|
47
|
+
color: animation
|
|
48
|
+
.interpolate({
|
|
49
|
+
inputRange: [
|
|
50
|
+
index - PROCESSING_PROGRESS_SHINE_RADIUS,
|
|
51
|
+
index,
|
|
52
|
+
index + PROCESSING_PROGRESS_SHINE_RADIUS,
|
|
53
|
+
],
|
|
54
|
+
outputRange: [0, PROCESSING_PROGRESS_SHINE_PEAK, 0],
|
|
55
|
+
extrapolate: 'clamp',
|
|
56
|
+
})
|
|
57
|
+
.interpolate({
|
|
58
|
+
inputRange: [0, 1],
|
|
59
|
+
outputRange: [baseColor, colors.onPrimary],
|
|
60
|
+
}),
|
|
61
|
+
}}
|
|
62
|
+
>
|
|
63
|
+
{character}
|
|
64
|
+
</Animated.Text>
|
|
65
|
+
))}
|
|
66
|
+
</Text>
|
|
67
|
+
);
|
|
68
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { StyleSheet } from 'react-native';
|
|
2
|
+
import { r, space, type } from '@unif/react-native-design';
|
|
3
|
+
import type { ColorTokens } from '@unif/react-native-design';
|
|
4
|
+
|
|
5
|
+
export const createStyles = (colors: ColorTokens) =>
|
|
6
|
+
StyleSheet.create({
|
|
7
|
+
root: {
|
|
8
|
+
minWidth: 0,
|
|
9
|
+
paddingHorizontal: space[4],
|
|
10
|
+
paddingVertical: space[3],
|
|
11
|
+
},
|
|
12
|
+
text: {
|
|
13
|
+
color: colors.foregroundMuted,
|
|
14
|
+
fontSize: type.xs,
|
|
15
|
+
lineHeight: r(20),
|
|
16
|
+
},
|
|
17
|
+
});
|
package/src/index.tsx
CHANGED
|
@@ -53,6 +53,8 @@ export type {
|
|
|
53
53
|
ProcessStep,
|
|
54
54
|
ProcessStepStatus,
|
|
55
55
|
} from './components/Process';
|
|
56
|
+
export { ProcessingProgress } from './components/ProcessingProgress';
|
|
57
|
+
export type { ProcessingProgressProps } from './components/ProcessingProgress';
|
|
56
58
|
export { Feedback } from './components/Feedback';
|
|
57
59
|
export type { FeedbackProps, FeedbackTone } from './components/Feedback';
|
|
58
60
|
export { Sources } from './components/Sources';
|