@assistant-ui/react 0.4.0 → 0.4.2
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/index.js +41 -30
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +41 -30
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -907,21 +907,30 @@ var ActionBarPrimitiveRoot = (0, import_react25.forwardRef)(({ hideWhenRunning,
|
|
907
907
|
ActionBarPrimitiveRoot.displayName = "ActionBarPrimitive.Root";
|
908
908
|
|
909
909
|
// src/utils/createActionButton.tsx
|
910
|
-
var import_primitive = require("@radix-ui/primitive");
|
911
|
-
var import_react_primitive2 = require("@radix-ui/react-primitive");
|
912
910
|
var import_react26 = require("react");
|
911
|
+
var import_react_primitive2 = require("@radix-ui/react-primitive");
|
912
|
+
var import_primitive = require("@radix-ui/primitive");
|
913
913
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
914
|
-
var createActionButton = (displayName, useActionButton) => {
|
914
|
+
var createActionButton = (displayName, useActionButton, forwardProps = []) => {
|
915
915
|
const ActionButton = (0, import_react26.forwardRef)((props, forwardedRef) => {
|
916
|
-
const
|
916
|
+
const forwardedProps = {};
|
917
|
+
const primitiveProps = {};
|
918
|
+
Object.keys(props).forEach((key) => {
|
919
|
+
if (forwardProps.includes(key)) {
|
920
|
+
forwardedProps[key] = props[key];
|
921
|
+
} else {
|
922
|
+
primitiveProps[key] = props[key];
|
923
|
+
}
|
924
|
+
});
|
925
|
+
const callback = useActionButton(forwardedProps);
|
917
926
|
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
918
927
|
import_react_primitive2.Primitive.button,
|
919
928
|
{
|
920
929
|
type: "button",
|
921
930
|
disabled: !callback,
|
922
|
-
...
|
931
|
+
...primitiveProps,
|
923
932
|
ref: forwardedRef,
|
924
|
-
onClick: (0, import_primitive.composeEventHandlers)(
|
933
|
+
onClick: (0, import_primitive.composeEventHandlers)(primitiveProps.onClick, () => {
|
925
934
|
callback?.();
|
926
935
|
})
|
927
936
|
}
|
@@ -934,7 +943,8 @@ var createActionButton = (displayName, useActionButton) => {
|
|
934
943
|
// src/primitives/actionBar/ActionBarCopy.tsx
|
935
944
|
var ActionBarPrimitiveCopy = createActionButton(
|
936
945
|
"ActionBarPrimitive.Copy",
|
937
|
-
useActionBarCopy
|
946
|
+
useActionBarCopy,
|
947
|
+
["copiedDuration"]
|
938
948
|
);
|
939
949
|
|
940
950
|
// src/primitives/actionBar/ActionBarReload.tsx
|
@@ -1244,7 +1254,8 @@ var import_react36 = require("react");
|
|
1244
1254
|
// src/utils/hooks/useSmooth.tsx
|
1245
1255
|
var import_react35 = require("react");
|
1246
1256
|
var TextStreamAnimator = class {
|
1247
|
-
constructor(setText) {
|
1257
|
+
constructor(currentText, setText) {
|
1258
|
+
this.currentText = currentText;
|
1248
1259
|
this.setText = setText;
|
1249
1260
|
}
|
1250
1261
|
animationFrameId = null;
|
@@ -1265,33 +1276,31 @@ var TextStreamAnimator = class {
|
|
1265
1276
|
const currentTime = Date.now();
|
1266
1277
|
const deltaTime = currentTime - this.lastUpdateTime;
|
1267
1278
|
let timeToConsume = deltaTime;
|
1268
|
-
this.
|
1269
|
-
|
1270
|
-
|
1271
|
-
|
1272
|
-
|
1273
|
-
|
1274
|
-
|
1275
|
-
|
1276
|
-
let charsToAdd = 0;
|
1277
|
-
while (timeToConsume >= baseTimePerChar && charsToAdd < remainingChars) {
|
1278
|
-
charsToAdd++;
|
1279
|
-
timeToConsume -= baseTimePerChar;
|
1280
|
-
}
|
1279
|
+
const remainingChars = this.targetText.length - this.currentText.length;
|
1280
|
+
const baseTimePerChar = Math.min(5, 250 / remainingChars);
|
1281
|
+
let charsToAdd = 0;
|
1282
|
+
while (timeToConsume >= baseTimePerChar && charsToAdd < remainingChars) {
|
1283
|
+
charsToAdd++;
|
1284
|
+
timeToConsume -= baseTimePerChar;
|
1285
|
+
}
|
1286
|
+
if (charsToAdd !== remainingChars) {
|
1281
1287
|
this.animationFrameId = requestAnimationFrame(this.animate);
|
1282
|
-
|
1283
|
-
|
1284
|
-
|
1285
|
-
|
1286
|
-
|
1287
|
-
|
1288
|
-
|
1288
|
+
} else {
|
1289
|
+
this.animationFrameId = null;
|
1290
|
+
}
|
1291
|
+
if (charsToAdd === 0) return;
|
1292
|
+
this.currentText = this.targetText.slice(
|
1293
|
+
0,
|
1294
|
+
this.currentText.length + charsToAdd
|
1295
|
+
);
|
1296
|
+
this.lastUpdateTime = currentTime - timeToConsume;
|
1297
|
+
this.setText(this.currentText);
|
1289
1298
|
};
|
1290
1299
|
};
|
1291
1300
|
var useSmooth = (text, smooth = false) => {
|
1292
1301
|
const [displayedText, setDisplayedText] = (0, import_react35.useState)(text);
|
1293
1302
|
const [animatorRef] = (0, import_react35.useState)(
|
1294
|
-
new TextStreamAnimator(setDisplayedText)
|
1303
|
+
new TextStreamAnimator(text, setDisplayedText)
|
1295
1304
|
);
|
1296
1305
|
(0, import_react35.useEffect)(() => {
|
1297
1306
|
if (!smooth) {
|
@@ -1300,6 +1309,7 @@ var useSmooth = (text, smooth = false) => {
|
|
1300
1309
|
}
|
1301
1310
|
if (!text.startsWith(animatorRef.targetText)) {
|
1302
1311
|
setDisplayedText(text);
|
1312
|
+
animatorRef.currentText = text;
|
1303
1313
|
animatorRef.targetText = text;
|
1304
1314
|
animatorRef.stop();
|
1305
1315
|
return;
|
@@ -1951,7 +1961,8 @@ var ThreadPrimitiveScrollToBottom = createActionButton(
|
|
1951
1961
|
// src/primitives/thread/ThreadSuggestion.tsx
|
1952
1962
|
var ThreadPrimitiveSuggestion = createActionButton(
|
1953
1963
|
"ThreadPrimitive.Suggestion",
|
1954
|
-
useThreadSuggestion
|
1964
|
+
useThreadSuggestion,
|
1965
|
+
["prompt", "autoSend", "method"]
|
1955
1966
|
);
|
1956
1967
|
|
1957
1968
|
// src/runtimes/local/useLocalRuntime.tsx
|