@assistant-ui/react 0.3.2 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.js +14 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +14 -10
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -12
- package/dist/experimental.d.mts +0 -2
- package/dist/experimental.d.ts +0 -2
- package/dist/experimental.js +0 -2
- package/dist/experimental.js.map +0 -1
- package/dist/experimental.mjs +0 -1
- package/dist/experimental.mjs.map +0 -1
package/dist/index.js
CHANGED
@@ -1231,10 +1231,10 @@ var TextStreamAnimator = class {
|
|
1231
1231
|
}
|
1232
1232
|
animationFrameId = null;
|
1233
1233
|
lastUpdateTime = Date.now();
|
1234
|
-
decayFactor = 0.99;
|
1235
1234
|
targetText = "";
|
1236
1235
|
start() {
|
1237
1236
|
if (this.animationFrameId !== null) return;
|
1237
|
+
this.lastUpdateTime = Date.now();
|
1238
1238
|
this.animate();
|
1239
1239
|
}
|
1240
1240
|
stop() {
|
@@ -1246,7 +1246,7 @@ var TextStreamAnimator = class {
|
|
1246
1246
|
animate = () => {
|
1247
1247
|
const currentTime = Date.now();
|
1248
1248
|
const deltaTime = currentTime - this.lastUpdateTime;
|
1249
|
-
|
1249
|
+
let timeToConsume = deltaTime;
|
1250
1250
|
this.setText((currentText) => {
|
1251
1251
|
const targetText = this.targetText;
|
1252
1252
|
if (currentText === targetText) {
|
@@ -1254,14 +1254,18 @@ var TextStreamAnimator = class {
|
|
1254
1254
|
return currentText;
|
1255
1255
|
}
|
1256
1256
|
const remainingChars = targetText.length - currentText.length;
|
1257
|
-
const
|
1258
|
-
|
1259
|
-
|
1260
|
-
|
1261
|
-
|
1262
|
-
|
1263
|
-
const newText = targetText.slice(0, currentText.length + charsToAdd);
|
1257
|
+
const baseTimePerChar = Math.min(5, 250 / remainingChars);
|
1258
|
+
let charsToAdd = 0;
|
1259
|
+
while (timeToConsume >= baseTimePerChar && charsToAdd < remainingChars) {
|
1260
|
+
charsToAdd++;
|
1261
|
+
timeToConsume -= baseTimePerChar;
|
1262
|
+
}
|
1264
1263
|
this.animationFrameId = requestAnimationFrame(this.animate);
|
1264
|
+
if (charsToAdd === 0) {
|
1265
|
+
return currentText;
|
1266
|
+
}
|
1267
|
+
const newText = targetText.slice(0, currentText.length + charsToAdd);
|
1268
|
+
this.lastUpdateTime = currentTime - timeToConsume;
|
1265
1269
|
return newText;
|
1266
1270
|
});
|
1267
1271
|
};
|
@@ -1295,7 +1299,7 @@ var useSmooth = (text, smooth = false) => {
|
|
1295
1299
|
|
1296
1300
|
// src/primitives/contentPart/ContentPartText.tsx
|
1297
1301
|
var import_jsx_runtime14 = require("react/jsx-runtime");
|
1298
|
-
var ContentPartPrimitiveText = (0, import_react36.forwardRef)(({ smooth, ...rest }, forwardedRef) => {
|
1302
|
+
var ContentPartPrimitiveText = (0, import_react36.forwardRef)(({ smooth = true, ...rest }, forwardedRef) => {
|
1299
1303
|
const {
|
1300
1304
|
status,
|
1301
1305
|
part: { text }
|