@anvia/react-ui 1.0.0-rc.6 → 1.0.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 +48 -38
- package/dist/attachment/index.d.ts +2 -2
- package/dist/attachment/index.js +4 -4
- package/dist/chat/index.d.ts +8 -8
- package/dist/chat/index.js +10 -9
- package/dist/{chat-BRVgYE68.d.ts → chat-tfA570mg.d.ts} +2 -2
- package/dist/{chunk-ZDSFYPAG.js → chunk-647LAYRV.js} +90 -65
- package/dist/chunk-647LAYRV.js.map +1 -0
- package/dist/chunk-6XOJFLX4.js +22 -0
- package/dist/chunk-6XOJFLX4.js.map +1 -0
- package/dist/{chunk-CI7E67HQ.js → chunk-CRXNFZRW.js} +119 -90
- package/dist/chunk-CRXNFZRW.js.map +1 -0
- package/dist/{chunk-WIV5S327.js → chunk-CVXLQCDI.js} +13 -21
- package/dist/chunk-CVXLQCDI.js.map +1 -0
- package/dist/{chunk-ULGJLLZE.js → chunk-F6AKBUO3.js} +12 -12
- package/dist/chunk-F6AKBUO3.js.map +1 -0
- package/dist/{chunk-CBUEQW2Y.js → chunk-HWJIMLHC.js} +83 -77
- package/dist/chunk-HWJIMLHC.js.map +1 -0
- package/dist/{chunk-LAME27US.js → chunk-MISX4WUT.js} +10 -15
- package/dist/chunk-MISX4WUT.js.map +1 -0
- package/dist/{chunk-AFIEM7PA.js → chunk-OQE6SHZE.js} +16 -30
- package/dist/chunk-OQE6SHZE.js.map +1 -0
- package/dist/{chunk-7WKUHKCF.js → chunk-S4XLE2RN.js} +6 -12
- package/dist/chunk-S4XLE2RN.js.map +1 -0
- package/dist/{chunk-OAQBMWJ5.js → chunk-SOG2GVE4.js} +45 -15
- package/dist/chunk-SOG2GVE4.js.map +1 -0
- package/dist/{chunk-W6Q5UFKR.js → chunk-UCBAG42A.js} +9 -21
- package/dist/chunk-UCBAG42A.js.map +1 -0
- package/dist/completion/index.d.ts +2 -2
- package/dist/completion/index.js +4 -4
- package/dist/{composer-BTT2vzYF.d.ts → composer-CigccTLT.d.ts} +19 -7
- package/dist/human-input/index.d.ts +6 -6
- package/dist/human-input/index.js +4 -4
- package/dist/{human-input-DOBCZgqw.d.ts → human-input-D7jgYsfM.d.ts} +1 -1
- package/dist/image/index.d.ts +2 -2
- package/dist/image/index.js +4 -4
- package/dist/index.d.ts +14 -14
- package/dist/index.js +58 -63
- package/dist/index.js.map +1 -1
- package/dist/message/index.d.ts +4 -4
- package/dist/message/index.js +7 -6
- package/dist/selection-toolbar/index.d.ts +2 -2
- package/dist/selection-toolbar/index.js +5 -4
- package/dist/shared.d.ts +4 -4
- package/dist/shared.js +1 -1
- package/dist/stream/index.d.ts +2 -0
- package/dist/stream/index.js +1 -1
- package/dist/{thread-uEm8hH0s.d.ts → thread-Bz6-1zaJ.d.ts} +1 -0
- package/dist/thread-list/index.d.ts +3 -3
- package/dist/thread-list/index.js +6 -6
- package/package.json +7 -9
- package/dist/chunk-7WKUHKCF.js.map +0 -1
- package/dist/chunk-AFIEM7PA.js.map +0 -1
- package/dist/chunk-CBUEQW2Y.js.map +0 -1
- package/dist/chunk-CI7E67HQ.js.map +0 -1
- package/dist/chunk-LAME27US.js.map +0 -1
- package/dist/chunk-OAQBMWJ5.js.map +0 -1
- package/dist/chunk-ULGJLLZE.js.map +0 -1
- package/dist/chunk-W6Q5UFKR.js.map +0 -1
- package/dist/chunk-WIV5S327.js.map +0 -1
- package/dist/chunk-ZDSFYPAG.js.map +0 -1
- package/dist/stream/styles.css +0 -17
- package/dist/styles.css +0 -130
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
MessagePrimitive,
|
|
3
|
+
isComposerEntityData,
|
|
3
4
|
shiftComposerEntityRanges
|
|
4
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-CRXNFZRW.js";
|
|
5
6
|
import {
|
|
6
|
-
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
AttachmentPrimitive
|
|
8
|
+
} from "./chunk-MISX4WUT.js";
|
|
8
9
|
import {
|
|
9
10
|
composeRefs,
|
|
10
11
|
renderPrimitive
|
|
@@ -17,7 +18,7 @@ import {
|
|
|
17
18
|
useChatContext,
|
|
18
19
|
useComposer,
|
|
19
20
|
useThread
|
|
20
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-SOG2GVE4.js";
|
|
21
22
|
|
|
22
23
|
// src/chat/composer.tsx
|
|
23
24
|
import { mergeAttributes } from "@tiptap/core";
|
|
@@ -164,6 +165,7 @@ var ComposerRoot = forwardRef(function ComposerRoot2({
|
|
|
164
165
|
if (prompt.trim().length === 0 && attachments.length === 0 && entities.length === 0 && quote === void 0 || chat.status === "submitted" || chat.status === "streaming") {
|
|
165
166
|
return;
|
|
166
167
|
}
|
|
168
|
+
assertComposerEntitiesData(entities);
|
|
167
169
|
if (submitMessage !== void 0) {
|
|
168
170
|
await submitMessage({
|
|
169
171
|
input: prompt,
|
|
@@ -272,7 +274,6 @@ var ComposerRoot = forwardRef(function ComposerRoot2({
|
|
|
272
274
|
{
|
|
273
275
|
...props,
|
|
274
276
|
onSubmit: handleSubmit,
|
|
275
|
-
"data-anvia-composer": "",
|
|
276
277
|
"data-state": chat.status
|
|
277
278
|
},
|
|
278
279
|
ref
|
|
@@ -290,9 +291,7 @@ var ComposerQuotePreview = forwardRef(
|
|
|
290
291
|
"blockquote",
|
|
291
292
|
{
|
|
292
293
|
...props,
|
|
293
|
-
children: renderedChildren
|
|
294
|
-
"data-anvia-composer-quote": "",
|
|
295
|
-
"data-message-id": quote.messageId
|
|
294
|
+
children: renderedChildren
|
|
296
295
|
},
|
|
297
296
|
ref
|
|
298
297
|
);
|
|
@@ -320,7 +319,6 @@ var ComposerClearQuote = forwardRef(
|
|
|
320
319
|
disabled,
|
|
321
320
|
onClick: handleClick,
|
|
322
321
|
type: props.type ?? "button",
|
|
323
|
-
"data-anvia-clear-quote": "",
|
|
324
322
|
"data-state": disabled ? "disabled" : "enabled"
|
|
325
323
|
},
|
|
326
324
|
ref
|
|
@@ -362,7 +360,6 @@ var ComposerInput = forwardRef(function ComposerInput2({
|
|
|
362
360
|
attributes: {
|
|
363
361
|
"aria-label": props["aria-label"] ?? "Message",
|
|
364
362
|
"aria-multiline": "true",
|
|
365
|
-
"data-anvia-composer-editor": "",
|
|
366
363
|
role: "textbox"
|
|
367
364
|
},
|
|
368
365
|
handleKeyDown: (_view, event) => submitComposerFromEditorKeyDown(event, composerRef)
|
|
@@ -446,9 +443,8 @@ var ComposerInput = forwardRef(function ComposerInput2({
|
|
|
446
443
|
...props,
|
|
447
444
|
children: /* @__PURE__ */ jsx(EditorContent, { editor }),
|
|
448
445
|
"aria-disabled": composerDisabled ? true : props["aria-disabled"],
|
|
449
|
-
"data-
|
|
446
|
+
"data-role": "editor",
|
|
450
447
|
"data-state": composerDisabled ? "disabled" : "enabled",
|
|
451
|
-
"data-auto-resize": autoResize ? "" : void 0,
|
|
452
448
|
onKeyDown: handleKeyDown,
|
|
453
449
|
style: inputStyle
|
|
454
450
|
},
|
|
@@ -515,9 +511,7 @@ var ComposerTextareaInput = forwardRef(
|
|
|
515
511
|
onChange: handleChange,
|
|
516
512
|
onKeyDown: handleKeyDown,
|
|
517
513
|
rows: autoResize ? minRows : rows,
|
|
518
|
-
value: composer.input
|
|
519
|
-
"data-anvia-composer-input": "",
|
|
520
|
-
"data-anvia-composer-textarea-input": ""
|
|
514
|
+
value: composer.input
|
|
521
515
|
},
|
|
522
516
|
composedInputRef
|
|
523
517
|
);
|
|
@@ -557,9 +551,15 @@ var ComposerEntityExtension = Mention.extend({
|
|
|
557
551
|
renderHTML: (attributes) => attributes.text === void 0 || attributes.text === null ? {} : { "data-text": String(attributes.text) }
|
|
558
552
|
},
|
|
559
553
|
data: {
|
|
560
|
-
default:
|
|
554
|
+
default: void 0,
|
|
561
555
|
parseHTML: (element) => dataFromAttribute(element.getAttribute("data-entity-data")),
|
|
562
|
-
renderHTML: (attributes) =>
|
|
556
|
+
renderHTML: (attributes) => {
|
|
557
|
+
if (attributes.data === void 0) return {};
|
|
558
|
+
if (!isComposerEntityData(attributes.data)) {
|
|
559
|
+
throw new TypeError("Composer entity data must be a JSON value.");
|
|
560
|
+
}
|
|
561
|
+
return { "data-entity-data": JSON.stringify(attributes.data) };
|
|
562
|
+
}
|
|
563
563
|
}
|
|
564
564
|
};
|
|
565
565
|
}
|
|
@@ -576,16 +576,12 @@ function composerInputExtensions({
|
|
|
576
576
|
HardBreak,
|
|
577
577
|
Placeholder.configure(placeholder === void 0 ? {} : { placeholder }),
|
|
578
578
|
ComposerEntityExtension.configure({
|
|
579
|
-
HTMLAttributes: {
|
|
580
|
-
"data-anvia-composer-entity": ""
|
|
581
|
-
},
|
|
579
|
+
HTMLAttributes: {},
|
|
582
580
|
deleteTriggerWithBackspace: true,
|
|
583
581
|
renderText: ({ node }) => composerEntityText(node.attrs),
|
|
584
582
|
renderHTML: ({ node, options }) => [
|
|
585
583
|
"span",
|
|
586
|
-
mergeAttributes(options.HTMLAttributes, {
|
|
587
|
-
"data-anvia-composer-entity": ""
|
|
588
|
-
}),
|
|
584
|
+
mergeAttributes(options.HTMLAttributes, {}),
|
|
589
585
|
composerEntityText(node.attrs)
|
|
590
586
|
],
|
|
591
587
|
suggestions: triggers.map((trigger) => composerSuggestion(trigger, composerRef))
|
|
@@ -730,6 +726,9 @@ function handleComposerTriggerKeyDown(trigger, { event }, composerRef) {
|
|
|
730
726
|
return false;
|
|
731
727
|
}
|
|
732
728
|
function triggerItemToEntityAttrs(trigger, item) {
|
|
729
|
+
if (item.data !== void 0 && !isComposerEntityData(item.data)) {
|
|
730
|
+
throw new TypeError("Composer trigger item data must be a JSON value.");
|
|
731
|
+
}
|
|
733
732
|
return {
|
|
734
733
|
id: item.id,
|
|
735
734
|
label: item.label,
|
|
@@ -830,7 +829,7 @@ function composerEntityFromAttrs(attrs, from, previousEntities, triggers) {
|
|
|
830
829
|
const previous = previousEntities.find(
|
|
831
830
|
(entity2) => entity2.id === id && entity2.triggerId === triggerId && entity2.trigger === trigger
|
|
832
831
|
);
|
|
833
|
-
const data = attrs?.data
|
|
832
|
+
const data = attrs?.data === void 0 ? previous?.data : attrs.data;
|
|
834
833
|
const entity = {
|
|
835
834
|
id,
|
|
836
835
|
triggerId,
|
|
@@ -858,12 +857,13 @@ function stringAttr(value) {
|
|
|
858
857
|
}
|
|
859
858
|
function dataFromAttribute(value) {
|
|
860
859
|
if (value === null) {
|
|
861
|
-
return
|
|
860
|
+
return void 0;
|
|
862
861
|
}
|
|
863
862
|
try {
|
|
864
|
-
|
|
863
|
+
const parsed = JSON.parse(value);
|
|
864
|
+
return isComposerEntityData(parsed) ? parsed : void 0;
|
|
865
865
|
} catch {
|
|
866
|
-
return
|
|
866
|
+
return void 0;
|
|
867
867
|
}
|
|
868
868
|
}
|
|
869
869
|
function resizeComposerInput(input, { maxRows, minRows }) {
|
|
@@ -931,7 +931,30 @@ function composerSubmitMetadata(quote, entities) {
|
|
|
931
931
|
}
|
|
932
932
|
const metadata = {};
|
|
933
933
|
if (quote !== void 0) metadata.quote = quote;
|
|
934
|
-
if (entities.length > 0)
|
|
934
|
+
if (entities.length > 0) {
|
|
935
|
+
metadata.composer = { entities: entities.map(composerEntityMetadata) };
|
|
936
|
+
}
|
|
937
|
+
return metadata;
|
|
938
|
+
}
|
|
939
|
+
function assertComposerEntitiesData(entities) {
|
|
940
|
+
for (const entity of entities) {
|
|
941
|
+
if (entity.data !== void 0 && !isComposerEntityData(entity.data)) {
|
|
942
|
+
throw new TypeError("Composer entity data must be a JSON value.");
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
function composerEntityMetadata(entity) {
|
|
947
|
+
const metadata = {
|
|
948
|
+
id: entity.id,
|
|
949
|
+
triggerId: entity.triggerId,
|
|
950
|
+
trigger: entity.trigger,
|
|
951
|
+
label: entity.label,
|
|
952
|
+
text: entity.text,
|
|
953
|
+
range: { from: entity.range.from, to: entity.range.to }
|
|
954
|
+
};
|
|
955
|
+
if (entity.data !== void 0) {
|
|
956
|
+
metadata.data = entity.data;
|
|
957
|
+
}
|
|
935
958
|
return metadata;
|
|
936
959
|
}
|
|
937
960
|
var ComposerSubmit = forwardRef(
|
|
@@ -945,7 +968,6 @@ var ComposerSubmit = forwardRef(
|
|
|
945
968
|
children: props.children ?? "Send",
|
|
946
969
|
disabled,
|
|
947
970
|
type: props.type ?? "submit",
|
|
948
|
-
"data-anvia-submit": "",
|
|
949
971
|
"data-state": disabled ? "disabled" : "enabled"
|
|
950
972
|
},
|
|
951
973
|
ref
|
|
@@ -973,7 +995,6 @@ var ComposerStop = forwardRef(function ComposerStop2({ onClick, ...props }, ref)
|
|
|
973
995
|
disabled,
|
|
974
996
|
onClick: handleClick,
|
|
975
997
|
type: props.type ?? "button",
|
|
976
|
-
"data-anvia-stop": "",
|
|
977
998
|
"data-state": disabled ? "disabled" : "enabled"
|
|
978
999
|
},
|
|
979
1000
|
ref
|
|
@@ -1001,11 +1022,7 @@ var ComposerTriggerMenu = forwardRef(
|
|
|
1001
1022
|
children: renderedChildren,
|
|
1002
1023
|
role: props.role ?? "listbox",
|
|
1003
1024
|
style: menuStyle,
|
|
1004
|
-
"data-
|
|
1005
|
-
"data-empty": empty ? "" : void 0,
|
|
1006
|
-
"data-loading": activeTrigger?.loading ? "" : void 0,
|
|
1007
|
-
"data-trigger": activeTrigger?.trigger.char,
|
|
1008
|
-
"data-trigger-id": activeTrigger?.trigger.id
|
|
1025
|
+
"data-state": activeTrigger === void 0 ? "closed" : activeTrigger.loading ? "loading" : empty ? "empty" : "open"
|
|
1009
1026
|
},
|
|
1010
1027
|
ref
|
|
1011
1028
|
);
|
|
@@ -1046,12 +1063,7 @@ var ComposerTriggerItem = forwardRef(
|
|
|
1046
1063
|
role: props.role ?? "option",
|
|
1047
1064
|
type: props.type ?? "button",
|
|
1048
1065
|
"aria-selected": selected,
|
|
1049
|
-
"data-
|
|
1050
|
-
"data-disabled": disabled ? "" : void 0,
|
|
1051
|
-
"data-item-id": item.id,
|
|
1052
|
-
"data-selected": selected ? "" : void 0,
|
|
1053
|
-
"data-trigger": activeTrigger.trigger.char,
|
|
1054
|
-
"data-trigger-id": activeTrigger.trigger.id
|
|
1066
|
+
"data-state": disabled ? "disabled" : selected ? "selected" : "idle"
|
|
1055
1067
|
},
|
|
1056
1068
|
ref
|
|
1057
1069
|
);
|
|
@@ -1077,12 +1089,12 @@ var ComposerAttachments = forwardRef(
|
|
|
1077
1089
|
composer.removeAttachment(attachment.id);
|
|
1078
1090
|
}
|
|
1079
1091
|
},
|
|
1080
|
-
children: typeof children === "function" ? children(attachment) : children ?? /* @__PURE__ */ jsx(
|
|
1092
|
+
children: typeof children === "function" ? children(attachment) : children ?? /* @__PURE__ */ jsx(AttachmentPrimitive.Root, {})
|
|
1081
1093
|
},
|
|
1082
1094
|
attachment.id
|
|
1083
1095
|
)),
|
|
1084
|
-
"data-
|
|
1085
|
-
"data-
|
|
1096
|
+
"data-role": "attachments",
|
|
1097
|
+
"data-state": empty ? "empty" : "populated"
|
|
1086
1098
|
},
|
|
1087
1099
|
ref
|
|
1088
1100
|
);
|
|
@@ -1115,7 +1127,6 @@ var ComposerAttachmentInput = forwardRef(
|
|
|
1115
1127
|
void handleChange(event);
|
|
1116
1128
|
},
|
|
1117
1129
|
type: "file",
|
|
1118
|
-
"data-anvia-attachment-input": "",
|
|
1119
1130
|
"data-state": disabled ? "disabled" : "enabled"
|
|
1120
1131
|
},
|
|
1121
1132
|
ref
|
|
@@ -1146,7 +1157,6 @@ var ComposerAddAttachment = forwardRef(
|
|
|
1146
1157
|
disabled,
|
|
1147
1158
|
onClick: handleClick,
|
|
1148
1159
|
type: props.type ?? "button",
|
|
1149
|
-
"data-anvia-add-attachment": "",
|
|
1150
1160
|
"data-state": disabled ? "disabled" : "enabled"
|
|
1151
1161
|
},
|
|
1152
1162
|
ref
|
|
@@ -1210,9 +1220,7 @@ var ComposerAttachmentDropzone = forwardRef(
|
|
|
1210
1220
|
onDragLeave: handleDragLeave,
|
|
1211
1221
|
onDragOver: handleDragOver,
|
|
1212
1222
|
onDrop: handleDrop,
|
|
1213
|
-
"data-
|
|
1214
|
-
"data-dragging": dragging ? "" : void 0,
|
|
1215
|
-
"data-state": disabled ? "disabled" : "enabled"
|
|
1223
|
+
"data-state": disabled ? "disabled" : dragging ? "dragging" : "enabled"
|
|
1216
1224
|
},
|
|
1217
1225
|
ref
|
|
1218
1226
|
);
|
|
@@ -1258,7 +1266,7 @@ function createAttachmentId() {
|
|
|
1258
1266
|
nextAttachmentId += 1;
|
|
1259
1267
|
return `attachment_${nextAttachmentId.toString(36)}`;
|
|
1260
1268
|
}
|
|
1261
|
-
var
|
|
1269
|
+
var ComposerPrimitive = {
|
|
1262
1270
|
Root: ComposerRoot,
|
|
1263
1271
|
Quote: ComposerQuotePreview,
|
|
1264
1272
|
ClearQuote: ComposerClearQuote,
|
|
@@ -1289,6 +1297,7 @@ var ThreadRoot = forwardRef2(
|
|
|
1289
1297
|
function ThreadRoot2(props, ref) {
|
|
1290
1298
|
const chat = useChatContext();
|
|
1291
1299
|
const viewportRef = useRef2(null);
|
|
1300
|
+
const messagesRef = useRef2(null);
|
|
1292
1301
|
const [atBottom, setAtBottom] = useState2(true);
|
|
1293
1302
|
const scrollToBottom = useCallback2((behavior = "smooth") => {
|
|
1294
1303
|
const viewport = viewportRef.current;
|
|
@@ -1298,14 +1307,13 @@ var ThreadRoot = forwardRef2(
|
|
|
1298
1307
|
viewport.scrollTo({ top: viewport.scrollHeight, behavior });
|
|
1299
1308
|
}, []);
|
|
1300
1309
|
const thread = useMemo2(
|
|
1301
|
-
() => ({ viewportRef, atBottom, setAtBottom, scrollToBottom }),
|
|
1310
|
+
() => ({ viewportRef, messagesRef, atBottom, setAtBottom, scrollToBottom }),
|
|
1302
1311
|
[atBottom, scrollToBottom]
|
|
1303
1312
|
);
|
|
1304
1313
|
return /* @__PURE__ */ jsx2(InternalThreadProvider, { value: thread, children: renderPrimitive(
|
|
1305
1314
|
"div",
|
|
1306
1315
|
{
|
|
1307
1316
|
...props,
|
|
1308
|
-
"data-anvia-thread": "",
|
|
1309
1317
|
"data-state": chat.status
|
|
1310
1318
|
},
|
|
1311
1319
|
ref
|
|
@@ -1333,7 +1341,7 @@ var ThreadViewport = forwardRef2(function ThreadViewport2({ autoScroll = true, o
|
|
|
1333
1341
|
if (viewport === null || !autoScroll || typeof ResizeObserver !== "function") {
|
|
1334
1342
|
return;
|
|
1335
1343
|
}
|
|
1336
|
-
const content =
|
|
1344
|
+
const content = thread.messagesRef.current;
|
|
1337
1345
|
if (content === null) {
|
|
1338
1346
|
return;
|
|
1339
1347
|
}
|
|
@@ -1360,7 +1368,6 @@ var ThreadViewport = forwardRef2(function ThreadViewport2({ autoScroll = true, o
|
|
|
1360
1368
|
{
|
|
1361
1369
|
...props,
|
|
1362
1370
|
onScroll: handleScroll,
|
|
1363
|
-
"data-anvia-thread-viewport": "",
|
|
1364
1371
|
"data-state": thread.atBottom ? "bottom" : "away"
|
|
1365
1372
|
},
|
|
1366
1373
|
composedRef
|
|
@@ -1371,8 +1378,7 @@ var ThreadViewportFooter = forwardRef2(
|
|
|
1371
1378
|
return renderPrimitive(
|
|
1372
1379
|
"div",
|
|
1373
1380
|
{
|
|
1374
|
-
...props
|
|
1375
|
-
"data-anvia-thread-viewport-footer": ""
|
|
1381
|
+
...props
|
|
1376
1382
|
},
|
|
1377
1383
|
ref
|
|
1378
1384
|
);
|
|
@@ -1387,8 +1393,7 @@ var ThreadEmpty = forwardRef2(
|
|
|
1387
1393
|
return renderPrimitive(
|
|
1388
1394
|
"div",
|
|
1389
1395
|
{
|
|
1390
|
-
...props
|
|
1391
|
-
"data-anvia-thread-empty": ""
|
|
1396
|
+
...props
|
|
1392
1397
|
},
|
|
1393
1398
|
ref
|
|
1394
1399
|
);
|
|
@@ -1402,7 +1407,6 @@ var ThreadStatus = forwardRef2(function ThreadStatus2({ children, ...props }, re
|
|
|
1402
1407
|
{
|
|
1403
1408
|
...props,
|
|
1404
1409
|
children: renderedChildren ?? chat.status,
|
|
1405
|
-
"data-anvia-thread-status": "",
|
|
1406
1410
|
"data-state": chat.status
|
|
1407
1411
|
},
|
|
1408
1412
|
ref
|
|
@@ -1418,8 +1422,7 @@ var ThreadLoading = forwardRef2(
|
|
|
1418
1422
|
"div",
|
|
1419
1423
|
{
|
|
1420
1424
|
...props,
|
|
1421
|
-
children: props.children ?? "Loading"
|
|
1422
|
-
"data-anvia-thread-loading": ""
|
|
1425
|
+
children: props.children ?? "Loading"
|
|
1423
1426
|
},
|
|
1424
1427
|
ref
|
|
1425
1428
|
);
|
|
@@ -1436,7 +1439,6 @@ var ThreadError = forwardRef2(function ThreadError2({ children, ...props }, ref)
|
|
|
1436
1439
|
{
|
|
1437
1440
|
...props,
|
|
1438
1441
|
children: renderedChildren ?? errorMessage(chat.error),
|
|
1439
|
-
"data-anvia-thread-error": "",
|
|
1440
1442
|
role: props.role ?? "alert"
|
|
1441
1443
|
},
|
|
1442
1444
|
ref
|
|
@@ -1444,6 +1446,13 @@ var ThreadError = forwardRef2(function ThreadError2({ children, ...props }, ref)
|
|
|
1444
1446
|
});
|
|
1445
1447
|
var ThreadMessages = forwardRef2(function ThreadMessages2({ children, keepMounted = true, ...props }, ref) {
|
|
1446
1448
|
const chat = useChatContext();
|
|
1449
|
+
const thread = useThread();
|
|
1450
|
+
const composedRef = useMemo2(
|
|
1451
|
+
() => composeRefs(ref, (node) => {
|
|
1452
|
+
thread.messagesRef.current = node;
|
|
1453
|
+
}),
|
|
1454
|
+
[ref, thread.messagesRef]
|
|
1455
|
+
);
|
|
1447
1456
|
const empty = chat.messages.length === 0;
|
|
1448
1457
|
if (empty && !keepMounted) {
|
|
1449
1458
|
return null;
|
|
@@ -1453,10 +1462,9 @@ var ThreadMessages = forwardRef2(function ThreadMessages2({ children, keepMounte
|
|
|
1453
1462
|
{
|
|
1454
1463
|
...props,
|
|
1455
1464
|
children: chat.messages.map((message) => /* @__PURE__ */ jsx2(InternalMessageProvider, { message, children: typeof children === "function" ? children(message) : children ?? defaultMessage() }, message.id)),
|
|
1456
|
-
"data-
|
|
1457
|
-
"data-empty": empty ? "" : void 0
|
|
1465
|
+
"data-state": empty ? "empty" : "populated"
|
|
1458
1466
|
},
|
|
1459
|
-
|
|
1467
|
+
composedRef
|
|
1460
1468
|
);
|
|
1461
1469
|
});
|
|
1462
1470
|
var ThreadSuggestions = forwardRef2(
|
|
@@ -1474,8 +1482,8 @@ var ThreadSuggestions = forwardRef2(
|
|
|
1474
1482
|
children: suggestions.map(
|
|
1475
1483
|
(suggestion) => typeof children === "function" ? /* @__PURE__ */ jsx2(Fragment2, { children: children(suggestion) }, suggestion.id) : /* @__PURE__ */ jsx2(ThreadSuggestion, { suggestion, children }, suggestion.id)
|
|
1476
1484
|
),
|
|
1477
|
-
"data-
|
|
1478
|
-
"data-
|
|
1485
|
+
"data-role": "suggestions",
|
|
1486
|
+
"data-state": empty ? "empty" : "populated"
|
|
1479
1487
|
},
|
|
1480
1488
|
ref
|
|
1481
1489
|
);
|
|
@@ -1504,7 +1512,6 @@ var ThreadSuggestion = forwardRef2(
|
|
|
1504
1512
|
disabled,
|
|
1505
1513
|
onClick: handleClick,
|
|
1506
1514
|
type: props.type ?? "button",
|
|
1507
|
-
"data-anvia-thread-suggestion": "",
|
|
1508
1515
|
"data-state": disabled ? "disabled" : "enabled"
|
|
1509
1516
|
},
|
|
1510
1517
|
ref
|
|
@@ -1533,7 +1540,6 @@ var ThreadScrollToBottom = forwardRef2(
|
|
|
1533
1540
|
disabled,
|
|
1534
1541
|
onClick: handleClick,
|
|
1535
1542
|
type: props.type ?? "button",
|
|
1536
|
-
"data-anvia-scroll-to-bottom": "",
|
|
1537
1543
|
"data-state": thread.atBottom ? "bottom" : "away"
|
|
1538
1544
|
},
|
|
1539
1545
|
ref
|
|
@@ -1541,9 +1547,9 @@ var ThreadScrollToBottom = forwardRef2(
|
|
|
1541
1547
|
}
|
|
1542
1548
|
);
|
|
1543
1549
|
function defaultMessage() {
|
|
1544
|
-
return /* @__PURE__ */ jsxs2(
|
|
1545
|
-
/* @__PURE__ */ jsx2(
|
|
1546
|
-
/* @__PURE__ */ jsx2(
|
|
1550
|
+
return /* @__PURE__ */ jsxs2(MessagePrimitive.Root, { children: [
|
|
1551
|
+
/* @__PURE__ */ jsx2(MessagePrimitive.Content, { children: /* @__PURE__ */ jsx2(MessagePrimitive.Parts, {}) }),
|
|
1552
|
+
/* @__PURE__ */ jsx2(MessagePrimitive.Actions, {})
|
|
1547
1553
|
] });
|
|
1548
1554
|
}
|
|
1549
1555
|
function errorMessage(error) {
|
|
@@ -1555,7 +1561,7 @@ function errorMessage(error) {
|
|
|
1555
1561
|
}
|
|
1556
1562
|
return "Something went wrong.";
|
|
1557
1563
|
}
|
|
1558
|
-
var
|
|
1564
|
+
var ThreadPrimitive = {
|
|
1559
1565
|
Root: ThreadRoot,
|
|
1560
1566
|
Viewport: ThreadViewport,
|
|
1561
1567
|
ViewportFooter: ThreadViewportFooter,
|
|
@@ -1570,7 +1576,7 @@ var Thread = {
|
|
|
1570
1576
|
};
|
|
1571
1577
|
|
|
1572
1578
|
export {
|
|
1573
|
-
|
|
1574
|
-
|
|
1579
|
+
ComposerPrimitive,
|
|
1580
|
+
ThreadPrimitive
|
|
1575
1581
|
};
|
|
1576
|
-
//# sourceMappingURL=chunk-
|
|
1582
|
+
//# sourceMappingURL=chunk-HWJIMLHC.js.map
|