@memori.ai/memori-react 7.15.2 → 7.16.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/CHANGELOG.md +10 -0
- package/dist/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.d.ts +5 -0
- package/dist/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.js +55 -0
- package/dist/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.js.map +1 -0
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +24 -22
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
- package/dist/components/ChatTextArea/ChatTextArea.js +1 -1
- package/dist/components/ChatTextArea/ChatTextArea.js.map +1 -1
- package/dist/components/UploadButton/UploadButton.css +7 -0
- package/dist/components/UploadButton/UploadButton.js +90 -19
- package/dist/components/UploadButton/UploadButton.js.map +1 -1
- package/dist/components/ui/Alert.css +93 -0
- package/dist/components/ui/Alert.d.ts +18 -0
- package/dist/components/ui/Alert.js +42 -0
- package/dist/components/ui/Alert.js.map +1 -0
- package/dist/styles.css +1 -1
- package/esm/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.d.ts +5 -0
- package/esm/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.js +53 -0
- package/esm/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.js.map +1 -0
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +25 -24
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
- package/esm/components/ChatTextArea/ChatTextArea.js +1 -1
- package/esm/components/ChatTextArea/ChatTextArea.js.map +1 -1
- package/esm/components/UploadButton/UploadButton.css +7 -0
- package/esm/components/UploadButton/UploadButton.js +90 -19
- package/esm/components/UploadButton/UploadButton.js.map +1 -1
- package/esm/components/ui/Alert.css +93 -0
- package/esm/components/ui/Alert.d.ts +18 -0
- package/esm/components/ui/Alert.js +39 -0
- package/esm/components/ui/Alert.js.map +1 -0
- package/esm/styles.css +1 -1
- package/package.json +1 -1
- package/src/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.tsx +96 -0
- package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.tsx +42 -39
- package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +9 -0
- package/src/components/ChatInputs/__snapshots__/ChatInputs.test.tsx.snap +6 -0
- package/src/components/ChatTextArea/ChatTextArea.tsx +1 -0
- package/src/components/ChatTextArea/__snapshots__/ChatTextArea.test.tsx.snap +3 -0
- package/src/components/UploadButton/UploadButton.css +7 -0
- package/src/components/UploadButton/UploadButton.tsx +194 -52
- package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +56 -2
- package/src/components/ui/Alert.css +93 -0
- package/src/components/ui/Alert.stories.tsx +137 -0
- package/src/components/ui/Alert.test.tsx +129 -0
- package/src/components/ui/Alert.tsx +123 -0
- package/src/components/ui/__snapshots__/Alert.test.tsx.snap +56 -0
- package/src/styles.css +1 -1
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/MorhTargetController.d.ts +0 -17
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/MorhTargetController.js +0 -73
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/MorhTargetController.js.map +0 -1
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/constants.d.ts +0 -17
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/constants.js +0 -25
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/constants.js.map +0 -1
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/fullbodyAvatar.d.ts +0 -26
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/fullbodyAvatar.js +0 -166
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/fullbodyAvatar.js.map +0 -1
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/MorhTargetController.d.ts +0 -17
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/MorhTargetController.js +0 -69
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/MorhTargetController.js.map +0 -1
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/constants.d.ts +0 -17
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/constants.js +0 -22
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/constants.js.map +0 -1
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/fullbodyAvatar.d.ts +0 -26
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/fullbodyAvatar.js +0 -163
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/fullbodyAvatar.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
## [7.16.0](https://github.com/memori-ai/memori-react/compare/v7.15.2...v7.16.0) (2025-01-31)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add Alert component with multiple variants and customization options ([8ddc456](https://github.com/memori-ai/memori-react/commit/8ddc4565318b09729c0c30d7e54750bc639f56d1))
|
|
9
|
+
* add dynamic shadow rendering for avatar with emotion-based shadow properties ([78030e2](https://github.com/memori-ai/memori-react/commit/78030e2729b00c5bb09fb666e5cd746e8a2ed065))
|
|
10
|
+
* add maxLength attribute to textarea inputs in Chat and ChatTextArea components ([46c1d6e](https://github.com/memori-ai/memori-react/commit/46c1d6e60514f50178e9bf11ebda15061e5abfd3))
|
|
11
|
+
* improve file upload with robust error handling and validation ([1851d5e](https://github.com/memori-ai/memori-react/commit/1851d5ec8d96031c3c4401e1e6eb0066772d8983))
|
|
12
|
+
|
|
3
13
|
## [7.15.2](https://github.com/memori-ai/memori-react/compare/v7.15.1...v7.15.2) (2025-01-29)
|
|
4
14
|
|
|
5
15
|
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const drei_1 = require("@react-three/drei");
|
|
5
|
+
const DynamicShadow = ({ currentBaseAction, avatarPosition, }) => {
|
|
6
|
+
const getShadowProps = () => {
|
|
7
|
+
const baseProps = {
|
|
8
|
+
width: 10,
|
|
9
|
+
height: 10,
|
|
10
|
+
blur: 2.5,
|
|
11
|
+
scale: 10,
|
|
12
|
+
far: 5,
|
|
13
|
+
resolution: 1024,
|
|
14
|
+
color: '#000000',
|
|
15
|
+
};
|
|
16
|
+
if (currentBaseAction.action.startsWith('Loading')) {
|
|
17
|
+
return {
|
|
18
|
+
...baseProps,
|
|
19
|
+
opacity: 0.85,
|
|
20
|
+
blur: 3,
|
|
21
|
+
width: 12,
|
|
22
|
+
height: 12,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
else if (currentBaseAction.action.includes('Gioia') ||
|
|
26
|
+
currentBaseAction.action.includes('Joy')) {
|
|
27
|
+
return {
|
|
28
|
+
...baseProps,
|
|
29
|
+
opacity: 0.9,
|
|
30
|
+
blur: 2,
|
|
31
|
+
width: 11,
|
|
32
|
+
height: 11,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
else if (currentBaseAction.action.includes('Rabbia') ||
|
|
36
|
+
currentBaseAction.action.includes('Anger')) {
|
|
37
|
+
return {
|
|
38
|
+
...baseProps,
|
|
39
|
+
opacity: 0.95,
|
|
40
|
+
blur: 1.8,
|
|
41
|
+
width: 12,
|
|
42
|
+
height: 12,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
...baseProps,
|
|
47
|
+
opacity: 0.9,
|
|
48
|
+
blur: 2.2,
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
const shadowProps = getShadowProps();
|
|
52
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(drei_1.ContactShadows, { opacity: shadowProps.opacity, scale: shadowProps.scale, blur: shadowProps.blur, far: shadowProps.far, resolution: shadowProps.resolution, color: shadowProps.color, frames: Infinity, position: [0, avatarPosition.y, 0] }), (0, jsx_runtime_1.jsx)(drei_1.ContactShadows, { opacity: 1, width: 5, height: 5, blur: 1, far: 2, resolution: 1024, color: "#000000", position: [0, -0.98, 0] })] }));
|
|
53
|
+
};
|
|
54
|
+
exports.default = DynamicShadow;
|
|
55
|
+
//# sourceMappingURL=DynamicShadow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicShadow.js","sourceRoot":"","sources":["../../../../../../src/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.tsx"],"names":[],"mappings":";;;AAEA,4CAAsE;AAEtE,MAAM,aAAa,GAAG,CAAC,EACrB,iBAAiB,EACjB,cAAc,GAIf,EAAE,EAAE;IAEH,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,MAAM,SAAS,GAAG;YAChB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,CAAC;YACN,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,SAAS;SACjB,CAAC;QAGF,IAAI,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;YAClD,OAAO;gBACL,GAAG,SAAS;gBACZ,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;aACX,CAAC;SACH;aAAM,IACL,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC1C,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EACxC;YACA,OAAO;gBACL,GAAG,SAAS;gBACZ,OAAO,EAAE,GAAG;gBACZ,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;aACX,CAAC;SACH;aAAM,IACL,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3C,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC1C;YACA,OAAO;gBACL,GAAG,SAAS;gBACZ,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,GAAG;gBACT,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;aACX,CAAC;SACH;QAGD,OAAO;YACL,GAAG,SAAS;YACZ,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,GAAG;SACV,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,OAAO,CACL,6DAEE,uBAAC,qBAAc,IACb,OAAO,EAAE,WAAW,CAAC,OAAO,EAC5B,KAAK,EAAE,WAAW,CAAC,KAAK,EACxB,IAAI,EAAE,WAAW,CAAC,IAAI,EACtB,GAAG,EAAE,WAAW,CAAC,GAAG,EACpB,UAAU,EAAE,WAAW,CAAC,UAAU,EAClC,KAAK,EAAE,WAAW,CAAC,KAAK,EACxB,MAAM,EAAE,QAAQ,EAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAClC,EAGF,uBAAC,qBAAc,IACZ,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,CAAC,EACN,UAAU,EAAE,IAAI,EAChB,KAAK,EAAC,SAAS,EAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,GACvB,IACD,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,aAAa,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FullbodyAvatar = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
4
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
6
|
const react_1 = require("react");
|
|
6
7
|
const three_1 = require("three");
|
|
@@ -11,8 +12,8 @@ const AnimationController_1 = require("../controllers/AnimationController");
|
|
|
11
12
|
const MorphTargetController_1 = require("../controllers/MorphTargetController");
|
|
12
13
|
const AvatarPositionController_1 = require("../controllers/AvatarPositionController");
|
|
13
14
|
const constants_1 = require("../../constants");
|
|
15
|
+
const DynamicShadow_1 = tslib_1.__importDefault(require("../../Shadow/DynamicShadow"));
|
|
14
16
|
function FullbodyAvatar({ url, sex, setIsRpm, currentBaseAction, timeScale, eyeBlink, updateCurrentViseme, setMorphTargetDictionary, setMorphTargetInfluences, emotionMorphTargets, avatarHeight = 50, avatarDepth = 0, onCameraZChange, }) {
|
|
15
|
-
var _a;
|
|
16
17
|
const { scene } = (0, drei_1.useGLTF)(url);
|
|
17
18
|
const { animations: baseAnimations } = (0, drei_1.useGLTF)(url);
|
|
18
19
|
const { animations: additionalAnimations } = (0, drei_1.useGLTF)(constants_1.ANIMATION_URLS[sex]);
|
|
@@ -21,6 +22,10 @@ function FullbodyAvatar({ url, sex, setIsRpm, currentBaseAction, timeScale, eyeB
|
|
|
21
22
|
const animationControllerRef = (0, react_1.useRef)();
|
|
22
23
|
const morphTargetControllerRef = (0, react_1.useRef)();
|
|
23
24
|
const positionControllerRef = (0, react_1.useRef)();
|
|
25
|
+
const lastPositionRef = (0, react_1.useRef)(constants_1.AVATAR_POSITION.clone());
|
|
26
|
+
const positionUpdateThrottleRef = (0, react_1.useRef)(0);
|
|
27
|
+
const POSITION_UPDATE_INTERVAL = 1;
|
|
28
|
+
const POSITION_THRESHOLD = 0.000001;
|
|
24
29
|
const blinkStateRef = (0, react_1.useRef)({
|
|
25
30
|
isBlinking: false,
|
|
26
31
|
lastBlinkTime: 0,
|
|
@@ -44,6 +49,10 @@ function FullbodyAvatar({ url, sex, setIsRpm, currentBaseAction, timeScale, eyeB
|
|
|
44
49
|
setMorphTargetInfluences(initialInfluences);
|
|
45
50
|
}
|
|
46
51
|
}
|
|
52
|
+
const initialPosition = constants_1.AVATAR_POSITION.clone();
|
|
53
|
+
initialPosition.setX(Number(initialPosition.x.toFixed(6)));
|
|
54
|
+
initialPosition.setY(Number(initialPosition.y.toFixed(6)));
|
|
55
|
+
initialPosition.setZ(Number(initialPosition.z.toFixed(6)));
|
|
47
56
|
}, [actions, scene]);
|
|
48
57
|
(0, react_1.useEffect)(() => {
|
|
49
58
|
if (positionControllerRef.current) {
|
|
@@ -72,25 +81,6 @@ function FullbodyAvatar({ url, sex, setIsRpm, currentBaseAction, timeScale, eyeB
|
|
|
72
81
|
});
|
|
73
82
|
return foundMesh;
|
|
74
83
|
}, [scene]);
|
|
75
|
-
(0, react_1.useEffect)(() => {
|
|
76
|
-
if (!actions || !headMesh)
|
|
77
|
-
return;
|
|
78
|
-
const mixer = new three_1.AnimationMixer(scene);
|
|
79
|
-
animationControllerRef.current = new AnimationController_1.AnimationController(mixer, actions, { ...constants_1.DEFAULT_CONFIG });
|
|
80
|
-
morphTargetControllerRef.current = new MorphTargetController_1.MorphTargetController(headMesh);
|
|
81
|
-
if (headMesh.morphTargetDictionary && headMesh.morphTargetInfluences) {
|
|
82
|
-
setMorphTargetDictionary(headMesh.morphTargetDictionary);
|
|
83
|
-
const initialInfluences = Object.keys(headMesh.morphTargetDictionary).reduce((acc, key) => ({ ...acc, [key]: 0 }), {});
|
|
84
|
-
setMorphTargetInfluences(initialInfluences);
|
|
85
|
-
}
|
|
86
|
-
}, [
|
|
87
|
-
actions,
|
|
88
|
-
headMesh,
|
|
89
|
-
scene,
|
|
90
|
-
setMorphTargetDictionary,
|
|
91
|
-
setMorphTargetInfluences,
|
|
92
|
-
timeScale,
|
|
93
|
-
]);
|
|
94
84
|
(0, react_1.useEffect)(() => {
|
|
95
85
|
if (!animationControllerRef.current)
|
|
96
86
|
return;
|
|
@@ -123,10 +113,22 @@ function FullbodyAvatar({ url, sex, setIsRpm, currentBaseAction, timeScale, eyeB
|
|
|
123
113
|
if (scene && positionControllerRef.current) {
|
|
124
114
|
const newScale = positionControllerRef.current.updateScale(constants_1.SCALE_LERP_FACTOR);
|
|
125
115
|
scene.scale.copy(newScale);
|
|
116
|
+
if (currentTime - positionUpdateThrottleRef.current >= POSITION_UPDATE_INTERVAL) {
|
|
117
|
+
const currentPosition = positionControllerRef.current.getPosition();
|
|
118
|
+
currentPosition.setX(Number(currentPosition.x.toFixed(6)));
|
|
119
|
+
currentPosition.setY(Number(currentPosition.y.toFixed(6)));
|
|
120
|
+
currentPosition.setZ(Number(currentPosition.z.toFixed(6)));
|
|
121
|
+
const positionDelta = currentPosition.distanceTo(lastPositionRef.current);
|
|
122
|
+
lastPositionRef.current.copy(currentPosition);
|
|
123
|
+
positionUpdateThrottleRef.current = currentTime;
|
|
124
|
+
}
|
|
126
125
|
}
|
|
127
126
|
});
|
|
128
|
-
const position = (
|
|
129
|
-
|
|
127
|
+
const position = (0, react_1.useMemo)(() => {
|
|
128
|
+
var _a;
|
|
129
|
+
return ((_a = positionControllerRef.current) === null || _a === void 0 ? void 0 : _a.getPosition()) || constants_1.AVATAR_POSITION.clone();
|
|
130
|
+
}, [positionControllerRef.current]);
|
|
131
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(DynamicShadow_1.default, { currentBaseAction: currentBaseAction, avatarPosition: position }), (0, jsx_runtime_1.jsx)("group", { position: position, rotation: constants_1.AVATAR_ROTATION, children: (0, jsx_runtime_1.jsx)("primitive", { object: scene }) })] }));
|
|
130
132
|
}
|
|
131
133
|
exports.FullbodyAvatar = FullbodyAvatar;
|
|
132
134
|
//# sourceMappingURL=fullbodyAvatar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fullbodyAvatar.js","sourceRoot":"","sources":["../../../../../../../src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fullbodyAvatar.js","sourceRoot":"","sources":["../../../../../../../src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ const ChatTextArea = ({ disabled = false, value, onChange, onPressEnter, onFocus
|
|
|
20
20
|
if (e.key === 'Enter' && !e.shiftKey && onPressEnter) {
|
|
21
21
|
onPressEnter(e);
|
|
22
22
|
}
|
|
23
|
-
}, onFocus: onFocus, onBlur: onBlur }), (0, jsx_runtime_1.jsx)("div", { className: "memori-chat-textarea--expand", children: (0, jsx_runtime_1.jsx)(Button_1.default, { className: (0, classnames_1.default)('memori-chat-textarea--expand-button'), onClick: () => setExpanded(!expanded), padded: false, ghost: true, title: expanded ? t('collapse') || 'Collapse' : t('expand') || 'Expand', icon: expanded ? (0, jsx_runtime_1.jsx)(FullscreenExit_1.default, {}) : (0, jsx_runtime_1.jsx)(Expand_1.default, {}) }) })] }) }));
|
|
23
|
+
}, onFocus: onFocus, onBlur: onBlur, maxLength: 100000 }), (0, jsx_runtime_1.jsx)("div", { className: "memori-chat-textarea--expand", children: (0, jsx_runtime_1.jsx)(Button_1.default, { className: (0, classnames_1.default)('memori-chat-textarea--expand-button'), onClick: () => setExpanded(!expanded), padded: false, ghost: true, title: expanded ? t('collapse') || 'Collapse' : t('expand') || 'Expand', icon: expanded ? (0, jsx_runtime_1.jsx)(FullscreenExit_1.default, {}) : (0, jsx_runtime_1.jsx)(Expand_1.default, {}) }) })] }) }));
|
|
24
24
|
};
|
|
25
25
|
exports.default = ChatTextArea;
|
|
26
26
|
//# sourceMappingURL=ChatTextArea.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatTextArea.js","sourceRoot":"","sources":["../../../src/components/ChatTextArea/ChatTextArea.tsx"],"names":[],"mappings":";;;;AAAA,iCAAwC;AACxC,oEAA4B;AAC5B,kEAAkC;AAClC,qEAAqC;AACrC,qFAAqD;AACrD,iDAA+C;AAW/C,MAAM,YAAY,GAAoB,CAAC,EACrC,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,MAAM,GACP,EAAE,EAAE;IACH,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAC/B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEhD,OAAO,CACL,+CACc,eAAe,EAC3B,SAAS,EAAE,IAAA,oBAAE,EAAC,sBAAsB,EAAE;YACpC,gCAAgC,EAAE,QAAQ;YAC1C,gCAAgC,EAAE,QAAQ;SAC3C,CAAC,YAEF,iCAAK,SAAS,EAAC,6BAA6B,aAC1C,qCACE,SAAS,EAAC,6BAA6B,EACvC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE;wBACZ,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC3B,CAAC,EACD,gBAAgB,EAAE,CAAC,CAAC,EAAE;wBACpB,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,YAAY,EAAE;4BACpD,YAAY,CAAC,CAAC,CAAC,CAAC;yBACjB;oBACH,CAAC,EACD,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ChatTextArea.js","sourceRoot":"","sources":["../../../src/components/ChatTextArea/ChatTextArea.tsx"],"names":[],"mappings":";;;;AAAA,iCAAwC;AACxC,oEAA4B;AAC5B,kEAAkC;AAClC,qEAAqC;AACrC,qFAAqD;AACrD,iDAA+C;AAW/C,MAAM,YAAY,GAAoB,CAAC,EACrC,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,MAAM,GACP,EAAE,EAAE;IACH,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAC/B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEhD,OAAO,CACL,+CACc,eAAe,EAC3B,SAAS,EAAE,IAAA,oBAAE,EAAC,sBAAsB,EAAE;YACpC,gCAAgC,EAAE,QAAQ;YAC1C,gCAAgC,EAAE,QAAQ;SAC3C,CAAC,YAEF,iCAAK,SAAS,EAAC,6BAA6B,aAC1C,qCACE,SAAS,EAAC,6BAA6B,EACvC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE;wBACZ,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC3B,CAAC,EACD,gBAAgB,EAAE,CAAC,CAAC,EAAE;wBACpB,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,YAAY,EAAE;4BACpD,YAAY,CAAC,CAAC,CAAC,CAAC;yBACjB;oBACH,CAAC,EACD,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GACjB,EACF,gCAAK,SAAS,EAAC,8BAA8B,YAC3C,uBAAC,gBAAM,IACL,SAAS,EAAE,IAAA,oBAAE,EAAC,qCAAqC,CAAC,EACpD,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,EACrC,MAAM,EAAE,KAAK,EACb,KAAK,QACL,KAAK,EACH,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAElE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,uBAAC,wBAAc,KAAG,CAAC,CAAC,CAAC,uBAAC,gBAAM,KAAG,GAChD,GACE,IACF,GACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC"}
|
|
@@ -7,33 +7,76 @@ const classnames_1 = tslib_1.__importDefault(require("classnames"));
|
|
|
7
7
|
const convertapi_js_1 = tslib_1.__importDefault(require("convertapi-js"));
|
|
8
8
|
const Upload_1 = tslib_1.__importDefault(require("../icons/Upload"));
|
|
9
9
|
const Spin_1 = tslib_1.__importDefault(require("../ui/Spin"));
|
|
10
|
+
const Alert_1 = tslib_1.__importDefault(require("../ui/Alert"));
|
|
11
|
+
const MAX_FILE_SIZE = 10 * 1024 * 1024;
|
|
12
|
+
const MAX_TEXT_LENGTH = 100000;
|
|
13
|
+
const ALLOWED_FILE_TYPES = ['.pdf', '.doc', '.docx', '.txt'];
|
|
10
14
|
const FileUploadButton = ({ setPreviewFiles, }) => {
|
|
11
15
|
const [isLoading, setIsLoading] = (0, react_1.useState)(false);
|
|
12
|
-
const [
|
|
16
|
+
const [errors, setErrors] = (0, react_1.useState)([]);
|
|
13
17
|
const fileInputRef = (0, react_1.useRef)(null);
|
|
14
18
|
const [convertapiToken, setConvertapiToken] = (0, react_1.useState)();
|
|
19
|
+
const clearErrors = () => setErrors([]);
|
|
20
|
+
const removeError = (errorMessage) => {
|
|
21
|
+
setErrors(prev => prev.filter(e => e.message !== errorMessage));
|
|
22
|
+
};
|
|
23
|
+
const addError = (error) => {
|
|
24
|
+
setErrors(prev => [...prev, error]);
|
|
25
|
+
setTimeout(() => {
|
|
26
|
+
removeError(error.message);
|
|
27
|
+
}, 5000);
|
|
28
|
+
};
|
|
15
29
|
const fetchConvertapiToken = async () => {
|
|
16
30
|
var _a, _b;
|
|
17
31
|
try {
|
|
18
32
|
const result = await fetch('https://www.aisuru.com/api/convertapi-token');
|
|
19
33
|
const response = await result.json();
|
|
20
|
-
|
|
34
|
+
if (!((_b = (_a = response.Tokens) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.Id)) {
|
|
35
|
+
throw new Error('Invalid token response');
|
|
36
|
+
}
|
|
37
|
+
setConvertapiToken(response.Tokens[0].Id);
|
|
21
38
|
}
|
|
22
39
|
catch (error) {
|
|
23
|
-
|
|
40
|
+
addError({
|
|
41
|
+
message: 'Failed to initialize file conversion service. Please try again later.',
|
|
42
|
+
severity: 'error'
|
|
43
|
+
});
|
|
24
44
|
}
|
|
25
45
|
};
|
|
26
46
|
(0, react_1.useEffect)(() => {
|
|
27
47
|
fetchConvertapiToken();
|
|
28
48
|
}, []);
|
|
49
|
+
const validateFile = (file) => {
|
|
50
|
+
var _a;
|
|
51
|
+
const fileExt = `.${(_a = file.name.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase()}`;
|
|
52
|
+
if (!ALLOWED_FILE_TYPES.includes(fileExt)) {
|
|
53
|
+
addError({
|
|
54
|
+
message: `File type "${fileExt}" is not supported. Please use: ${ALLOWED_FILE_TYPES.join(', ')}`,
|
|
55
|
+
severity: 'error',
|
|
56
|
+
fileId: file.name
|
|
57
|
+
});
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
if (file.size > MAX_FILE_SIZE) {
|
|
61
|
+
addError({
|
|
62
|
+
message: `File "${file.name}" exceeds ${MAX_FILE_SIZE / 1024 / 1024}MB limit`,
|
|
63
|
+
severity: 'error',
|
|
64
|
+
fileId: file.name
|
|
65
|
+
});
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
return true;
|
|
69
|
+
};
|
|
29
70
|
const convertToTxt = async (file) => {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
71
|
+
var _a;
|
|
72
|
+
if (!convertapiToken) {
|
|
73
|
+
addError({
|
|
74
|
+
message: 'File conversion service not initialized',
|
|
75
|
+
severity: 'error'
|
|
76
|
+
});
|
|
77
|
+
return null;
|
|
34
78
|
}
|
|
35
|
-
|
|
36
|
-
const fileExt = file.name.split('.').pop() || file.type.split('/').pop() || 'pdf';
|
|
79
|
+
const fileExt = ((_a = file.name.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || 'pdf';
|
|
37
80
|
try {
|
|
38
81
|
const convertApi = convertapi_js_1.default.auth(convertapiToken);
|
|
39
82
|
const params = convertApi.createParams();
|
|
@@ -43,37 +86,65 @@ const FileUploadButton = ({ setPreviewFiles, }) => {
|
|
|
43
86
|
const result = await convertApi.convert(fileExt, 'txt', params);
|
|
44
87
|
const fileUrl = result.files[0].Url;
|
|
45
88
|
const response = await fetch(fileUrl);
|
|
89
|
+
if (!response.ok) {
|
|
90
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
91
|
+
}
|
|
46
92
|
const text = await response.text();
|
|
93
|
+
if (text.length > MAX_TEXT_LENGTH) {
|
|
94
|
+
addError({
|
|
95
|
+
message: `File "${file.name}" content exceeds ${MAX_TEXT_LENGTH} characters`,
|
|
96
|
+
severity: 'error',
|
|
97
|
+
fileId: file.name
|
|
98
|
+
});
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
47
101
|
return text;
|
|
48
102
|
}
|
|
49
103
|
catch (error) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
104
|
+
addError({
|
|
105
|
+
message: `Failed to convert "${file.name}": ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
106
|
+
severity: 'error',
|
|
107
|
+
fileId: file.name
|
|
108
|
+
});
|
|
109
|
+
return null;
|
|
55
110
|
}
|
|
56
111
|
};
|
|
57
112
|
const handleFileSelect = async (e) => {
|
|
58
113
|
const files = Array.from(e.target.files || []);
|
|
114
|
+
if (files.length === 0)
|
|
115
|
+
return;
|
|
116
|
+
setIsLoading(true);
|
|
117
|
+
clearErrors();
|
|
59
118
|
const newPreviewFiles = [];
|
|
60
119
|
for (const file of files) {
|
|
120
|
+
if (!validateFile(file))
|
|
121
|
+
continue;
|
|
61
122
|
const fileId = Math.random().toString(36).substr(2, 9);
|
|
62
123
|
const text = await convertToTxt(file);
|
|
63
124
|
if (text) {
|
|
64
125
|
newPreviewFiles.push({
|
|
65
126
|
name: file.name,
|
|
66
127
|
id: fileId,
|
|
67
|
-
content: text
|
|
128
|
+
content: text
|
|
68
129
|
});
|
|
69
130
|
}
|
|
70
|
-
|
|
71
|
-
|
|
131
|
+
}
|
|
132
|
+
if (newPreviewFiles.length > 0) {
|
|
133
|
+
setPreviewFiles(newPreviewFiles);
|
|
134
|
+
if (newPreviewFiles.length < files.length) {
|
|
135
|
+
addError({
|
|
136
|
+
message: 'Some files were not processed successfully',
|
|
137
|
+
severity: 'warning'
|
|
138
|
+
});
|
|
72
139
|
}
|
|
73
140
|
}
|
|
74
|
-
|
|
141
|
+
setIsLoading(false);
|
|
142
|
+
if (fileInputRef.current) {
|
|
143
|
+
fileInputRef.current.value = '';
|
|
144
|
+
}
|
|
75
145
|
};
|
|
76
|
-
|
|
146
|
+
console.log(errors);
|
|
147
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "relative file-upload-wrapper", children: [(0, jsx_runtime_1.jsx)("input", { ref: fileInputRef, type: "file", accept: ".pdf,.doc,.docx,.txt", className: "memori--upload-file-input", onChange: handleFileSelect, multiple: true }), (0, jsx_runtime_1.jsx)("button", { className: (0, classnames_1.default)('memori-button', 'memori-button--circle', 'memori-button--icon-only', 'memori-share-button--button', 'memori--conversation-button', { 'memori--error': errors.length > 0 }), onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, disabled: isLoading, title: "Upload file", children: isLoading ? ((0, jsx_runtime_1.jsx)(Spin_1.default, { spinning: true, className: "memori--upload-icon" })) : ((0, jsx_runtime_1.jsx)(Upload_1.default, { className: "memori--upload-icon" })) }), (0, jsx_runtime_1.jsx)("div", { className: "memori--error-message-container", children: errors.map((error, index) => ((0, jsx_runtime_1.jsx)(Alert_1.default, { open: true, type: error.severity, title: error.message, onClose: () => removeError(error.message), width: "300px" }, `${error.message}-${index}`))) })] }));
|
|
77
148
|
};
|
|
78
149
|
exports.default = FileUploadButton;
|
|
79
150
|
//# sourceMappingURL=UploadButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadButton.js","sourceRoot":"","sources":["../../../src/components/UploadButton/UploadButton.tsx"],"names":[],"mappings":";;;;AAAA,iCAA2D;AAC3D,oEAA4B;AAC5B,0EAAuC;AACvC,qEAAyC;AACzC,8DAA8B;
|
|
1
|
+
{"version":3,"file":"UploadButton.js","sourceRoot":"","sources":["../../../src/components/UploadButton/UploadButton.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
.memori-alert {
|
|
2
|
+
position: fixed;
|
|
3
|
+
z-index: 50;
|
|
4
|
+
top: 20px;
|
|
5
|
+
right: 20px;
|
|
6
|
+
width: var(--memori-alert--width, 400px);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.memori-alert--container {
|
|
10
|
+
display: flex;
|
|
11
|
+
align-items: flex-start;
|
|
12
|
+
padding: 16px;
|
|
13
|
+
border-radius: 8px;
|
|
14
|
+
margin-bottom: 8px;
|
|
15
|
+
background-color: white;
|
|
16
|
+
box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.memori-alert--icon {
|
|
20
|
+
flex-shrink: 0;
|
|
21
|
+
margin-right: 12px;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.memori-alert--content {
|
|
25
|
+
min-width: 0;
|
|
26
|
+
flex: 1;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.memori-alert--title {
|
|
30
|
+
margin-bottom: 4px;
|
|
31
|
+
font-size: 16px;
|
|
32
|
+
font-weight: 600;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.memori-alert--description {
|
|
36
|
+
color: rgb(107 114 128);
|
|
37
|
+
font-size: 14px;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.memori-alert--actions {
|
|
41
|
+
display: flex;
|
|
42
|
+
align-items: center;
|
|
43
|
+
margin-left: 16px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.memori-alert--action {
|
|
47
|
+
margin-right: 8px;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.memori-alert--close {
|
|
51
|
+
flex-shrink: 0;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* Alert types */
|
|
55
|
+
.memori-alert--success {
|
|
56
|
+
--alert-color: rgb(34 197 94);
|
|
57
|
+
--alert-bg: rgb(240 253 244);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.memori-alert--warning {
|
|
61
|
+
--alert-color: rgb(234 179 8);
|
|
62
|
+
--alert-bg: rgb(254 252 232);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.memori-alert--error {
|
|
66
|
+
--alert-color: rgb(239 68 68);
|
|
67
|
+
--alert-bg: rgb(254 242 242);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.memori-alert--info {
|
|
71
|
+
--alert-color: rgb(59 130 246);
|
|
72
|
+
--alert-bg: rgb(239 246 255);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.memori-alert--success .memori-alert--container {
|
|
76
|
+
border: 1px solid var(--alert-color);
|
|
77
|
+
background-color: var(--alert-bg);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.memori-alert--warning .memori-alert--container {
|
|
81
|
+
border: 1px solid var(--alert-color);
|
|
82
|
+
background-color: var(--alert-bg);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.memori-alert--error .memori-alert--container {
|
|
86
|
+
border: 1px solid var(--alert-color);
|
|
87
|
+
background-color: var(--alert-bg);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.memori-alert--info .memori-alert--container {
|
|
91
|
+
border: 1px solid var(--alert-color);
|
|
92
|
+
background-color: var(--alert-bg);
|
|
93
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React, { FC } from 'react';
|
|
2
|
+
export type AlertType = 'success' | 'warning' | 'error' | 'info';
|
|
3
|
+
export interface Props {
|
|
4
|
+
open?: boolean;
|
|
5
|
+
onClose: (value: boolean) => void;
|
|
6
|
+
className?: string;
|
|
7
|
+
title?: string | JSX.Element | React.ReactNode;
|
|
8
|
+
description?: string | JSX.Element | React.ReactNode;
|
|
9
|
+
children?: JSX.Element | React.ReactNode;
|
|
10
|
+
type?: AlertType;
|
|
11
|
+
icon?: JSX.Element | React.ReactNode;
|
|
12
|
+
closable?: boolean;
|
|
13
|
+
duration?: number | null;
|
|
14
|
+
action?: JSX.Element | React.ReactNode;
|
|
15
|
+
width?: string;
|
|
16
|
+
}
|
|
17
|
+
declare const Alert: FC<Props>;
|
|
18
|
+
export default Alert;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
const react_2 = require("@headlessui/react");
|
|
7
|
+
const classnames_1 = tslib_1.__importDefault(require("classnames"));
|
|
8
|
+
const Close_1 = tslib_1.__importDefault(require("../icons/Close"));
|
|
9
|
+
const Button_1 = tslib_1.__importDefault(require("./Button"));
|
|
10
|
+
const react_i18next_1 = require("react-i18next");
|
|
11
|
+
const Alert = ({ open = false, onClose, className, title, description, children, type = 'info', icon, closable = true, duration = null, action, width = '400px', }) => {
|
|
12
|
+
const { t } = (0, react_i18next_1.useTranslation)();
|
|
13
|
+
react_1.default.useEffect(() => {
|
|
14
|
+
if (duration && open) {
|
|
15
|
+
const timer = setTimeout(() => {
|
|
16
|
+
onClose(false);
|
|
17
|
+
}, duration);
|
|
18
|
+
return () => clearTimeout(timer);
|
|
19
|
+
}
|
|
20
|
+
}, [duration, open, onClose]);
|
|
21
|
+
const getTypeStyles = (type) => {
|
|
22
|
+
switch (type) {
|
|
23
|
+
case 'success':
|
|
24
|
+
return 'memori-alert--success';
|
|
25
|
+
case 'warning':
|
|
26
|
+
return 'memori-alert--warning';
|
|
27
|
+
case 'error':
|
|
28
|
+
return 'memori-alert--error';
|
|
29
|
+
default:
|
|
30
|
+
return 'memori-alert--info';
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
return ((0, jsx_runtime_1.jsx)(react_2.Transition, { show: open, as: react_1.default.Fragment, appear: true, children: (0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('memori-alert', getTypeStyles(type), className), children: [(0, jsx_runtime_1.jsx)("style", { dangerouslySetInnerHTML: {
|
|
34
|
+
__html: `
|
|
35
|
+
.memori-alert {
|
|
36
|
+
--memori-alert--width: ${width};
|
|
37
|
+
}
|
|
38
|
+
`,
|
|
39
|
+
} }), (0, jsx_runtime_1.jsx)(react_2.Transition.Child, { as: react_1.default.Fragment, enter: "ease-out duration-300", enterFrom: "opacity-0 translate-y-4", enterTo: "opacity-100 translate-y-0", leave: "ease-in duration-200", leaveFrom: "opacity-100 translate-y-0", leaveTo: "opacity-0 translate-y-4", children: (0, jsx_runtime_1.jsxs)("div", { className: "memori-alert--container", children: [icon && (0, jsx_runtime_1.jsx)("div", { className: "memori-alert--icon", children: icon }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-alert--content", children: [title && ((0, jsx_runtime_1.jsx)("div", { className: "memori-alert--title", children: title })), description && ((0, jsx_runtime_1.jsx)("div", { className: "memori-alert--description", children: description })), children] }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-alert--actions", children: [action && (0, jsx_runtime_1.jsx)("div", { className: "memori-alert--action", children: action }), closable && ((0, jsx_runtime_1.jsx)(Button_1.default, { ghost: true, padded: true, shape: "circle", icon: (0, jsx_runtime_1.jsx)(Close_1.default, {}), title: t('close') || 'Close', onClick: () => onClose(false), className: "memori-alert--close" }))] })] }) })] }) }));
|
|
40
|
+
};
|
|
41
|
+
exports.default = Alert;
|
|
42
|
+
//# sourceMappingURL=Alert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.js","sourceRoot":"","sources":["../../../src/components/ui/Alert.tsx"],"names":[],"mappings":";;;;AAAA,0DAAkC;AAClC,6CAA+C;AAC/C,oEAA4B;AAC5B,mEAAmC;AACnC,8DAA8B;AAC9B,iDAA+C;AAmB/C,MAAM,KAAK,GAAc,CAAC,EACxB,IAAI,GAAG,KAAK,EACZ,OAAO,EACP,SAAS,EACT,KAAK,EACL,WAAW,EACX,QAAQ,EACR,IAAI,GAAG,MAAM,EACb,IAAI,EACJ,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,IAAI,EACf,MAAM,EACN,KAAK,GAAG,OAAO,GACT,EAAE,EAAE;IACV,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAG/B,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,EAAE,QAAQ,CAAC,CAAC;YACb,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAClC;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAE9B,MAAM,aAAa,GAAG,CAAC,IAAe,EAAE,EAAE;QACxC,QAAQ,IAAI,EAAE;YACZ,KAAK,SAAS;gBACZ,OAAO,uBAAuB,CAAC;YACjC,KAAK,SAAS;gBACZ,OAAO,uBAAuB,CAAC;YACjC,KAAK,OAAO;gBACV,OAAO,qBAAqB,CAAC;YAC/B;gBACE,OAAO,oBAAoB,CAAC;SAC/B;IACH,CAAC,CAAC;IAEF,OAAO,CACL,uBAAC,kBAAU,IACT,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,eAAK,CAAC,QAAQ,EAClB,MAAM,kBAEN,iCAAK,SAAS,EAAE,IAAA,oBAAE,EAAC,cAAc,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,aAChE,kCACE,uBAAuB,EAAE;wBACvB,MAAM,EAAE;;yCAEqB,KAAK;;aAEjC;qBACF,GACD,EACF,uBAAC,kBAAU,CAAC,KAAK,IACf,EAAE,EAAE,eAAK,CAAC,QAAQ,EAClB,KAAK,EAAC,uBAAuB,EAC7B,SAAS,EAAC,yBAAyB,EACnC,OAAO,EAAC,2BAA2B,EACnC,KAAK,EAAC,sBAAsB,EAC5B,SAAS,EAAC,2BAA2B,EACrC,OAAO,EAAC,yBAAyB,YAEjC,iCAAK,SAAS,EAAC,yBAAyB,aACrC,IAAI,IAAI,gCAAK,SAAS,EAAC,oBAAoB,YAAE,IAAI,GAAO,EAEzD,iCAAK,SAAS,EAAC,uBAAuB,aACnC,KAAK,IAAI,CACR,gCAAK,SAAS,EAAC,qBAAqB,YAAE,KAAK,GAAO,CACnD,EACA,WAAW,IAAI,CACd,gCAAK,SAAS,EAAC,2BAA2B,YAAE,WAAW,GAAO,CAC/D,EACA,QAAQ,IACL,EAEN,iCAAK,SAAS,EAAC,uBAAuB,aACnC,MAAM,IAAI,gCAAK,SAAS,EAAC,sBAAsB,YAAE,MAAM,GAAO,EAC9D,QAAQ,IAAI,CACX,uBAAC,gBAAM,IACL,KAAK,QACL,MAAM,QACN,KAAK,EAAC,QAAQ,EACd,IAAI,EAAE,uBAAC,eAAK,KAAG,EACf,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,OAAO,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAC7B,SAAS,EAAC,qBAAqB,GAC/B,CACH,IACG,IACF,GACW,IACf,GACK,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,KAAK,CAAC"}
|
package/dist/styles.css
CHANGED
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
@import url('./components/VenueWidget/VenueWidget.css');
|
|
50
50
|
@import url('./components/WhyThisAnswer/WhyThisAnswer.css');
|
|
51
51
|
@import url('./components/MemoriWidget/MemoriWidget.css');
|
|
52
|
-
|
|
52
|
+
@import url('./components/ui/Alert.css');
|
|
53
53
|
@import url('https://fonts.bunny.net/css?family=lexend-deca:200,400,700');
|
|
54
54
|
|
|
55
55
|
@import url('./components/layouts/hidden-chat.css');
|