@tylertech/forge-ai-react 0.7.2 → 0.8.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/dist/ForgeAiChatInterface.d.ts +1 -0
- package/dist/ForgeAiUserMessage.d.ts +26 -0
- package/dist/ForgeAiUserMessage.js +33 -2
- package/dist/index.d.ts +9 -9
- package/dist/index.js +9 -9
- package/package.json +3 -3
|
@@ -51,5 +51,6 @@ export interface ForgeAiChatInterfaceProps extends Pick<
|
|
|
51
51
|
* - **suggestions** - Slot for AI suggestions component
|
|
52
52
|
* - **attachments** - Slot for file attachments component
|
|
53
53
|
* - **prompt** - Slot for AI prompt component
|
|
54
|
+
* - **confirmation** - Slot for confirmation prompt overlay
|
|
54
55
|
*/
|
|
55
56
|
export const ForgeAiChatInterface: React.ForwardRefExoticComponent<ForgeAiChatInterfaceProps>;
|
|
@@ -18,6 +18,12 @@ export interface ForgeAiUserMessageProps extends Pick<
|
|
|
18
18
|
| "onFocus"
|
|
19
19
|
| "onBlur"
|
|
20
20
|
> {
|
|
21
|
+
/** undefined */
|
|
22
|
+
streaming?: boolean;
|
|
23
|
+
|
|
24
|
+
/** undefined */
|
|
25
|
+
messageId?: ForgeAiUserMessageElement["messageId"];
|
|
26
|
+
|
|
21
27
|
/** A space-separated list of the classes of the element. Classes allows CSS and JavaScript to select and access specific elements via the class selectors or functions like the method `Document.getElementsByClassName()`. */
|
|
22
28
|
className?: string;
|
|
23
29
|
|
|
@@ -38,11 +44,31 @@ export interface ForgeAiUserMessageProps extends Pick<
|
|
|
38
44
|
|
|
39
45
|
/** Allows developers to make HTML elements focusable, allow or prevent them from being sequentially focusable (usually with the `Tab` key, hence the name) and determine their relative ordering for sequential focus navigation. */
|
|
40
46
|
tabIndex?: number;
|
|
47
|
+
|
|
48
|
+
/** Fired when user clicks copy button */
|
|
49
|
+
onForgeAiUserMessageCopy?: (
|
|
50
|
+
event: CustomEvent<CustomEvent<ForgeAiUserMessageCopyEventData>>,
|
|
51
|
+
) => void;
|
|
52
|
+
|
|
53
|
+
/** Fired when user clicks resend button */
|
|
54
|
+
onForgeAiUserMessageResend?: (
|
|
55
|
+
event: CustomEvent<CustomEvent<ForgeAiUserMessageResendEventData>>,
|
|
56
|
+
) => void;
|
|
57
|
+
|
|
58
|
+
/** Fired when user saves edited message */
|
|
59
|
+
onForgeAiUserMessageEdit?: (
|
|
60
|
+
event: CustomEvent<CustomEvent<ForgeAiUserMessageEditEventData>>,
|
|
61
|
+
) => void;
|
|
41
62
|
}
|
|
42
63
|
|
|
43
64
|
/**
|
|
44
65
|
*
|
|
45
66
|
* ---
|
|
46
67
|
*
|
|
68
|
+
*
|
|
69
|
+
* ### **Events:**
|
|
70
|
+
* - **forge-ai-user-message-copy** - Fired when user clicks copy button
|
|
71
|
+
* - **forge-ai-user-message-resend** - Fired when user clicks resend button
|
|
72
|
+
* - **forge-ai-user-message-edit** - Fired when user saves edited message
|
|
47
73
|
*/
|
|
48
74
|
export const ForgeAiUserMessage: React.ForwardRefExoticComponent<ForgeAiUserMessageProps>;
|
|
@@ -1,16 +1,47 @@
|
|
|
1
|
-
import React, { forwardRef } from "react";
|
|
1
|
+
import React, { forwardRef, useRef, useEffect } from "react";
|
|
2
2
|
import "@tylertech/forge-ai/ai-user-message";
|
|
3
|
+
import { useEventListener } from "./react-utils.js";
|
|
3
4
|
|
|
4
5
|
export const ForgeAiUserMessage = forwardRef((props, forwardedRef) => {
|
|
6
|
+
const ref = useRef(null);
|
|
7
|
+
const { streaming, messageId, ...filteredProps } = props;
|
|
8
|
+
|
|
9
|
+
/** Event listeners - run once */
|
|
10
|
+
useEventListener(
|
|
11
|
+
ref,
|
|
12
|
+
"forge-ai-user-message-copy",
|
|
13
|
+
props.onForgeAiUserMessageCopy,
|
|
14
|
+
);
|
|
15
|
+
useEventListener(
|
|
16
|
+
ref,
|
|
17
|
+
"forge-ai-user-message-resend",
|
|
18
|
+
props.onForgeAiUserMessageResend,
|
|
19
|
+
);
|
|
20
|
+
useEventListener(
|
|
21
|
+
ref,
|
|
22
|
+
"forge-ai-user-message-edit",
|
|
23
|
+
props.onForgeAiUserMessageEdit,
|
|
24
|
+
);
|
|
25
|
+
|
|
5
26
|
return React.createElement(
|
|
6
27
|
"forge-ai-user-message",
|
|
7
28
|
{
|
|
8
|
-
|
|
29
|
+
ref: (node) => {
|
|
30
|
+
ref.current = node;
|
|
31
|
+
if (typeof forwardedRef === "function") {
|
|
32
|
+
forwardedRef(node);
|
|
33
|
+
} else if (forwardedRef) {
|
|
34
|
+
forwardedRef.current = node;
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
...filteredProps,
|
|
38
|
+
"message-id": props.messageId || props["message-id"],
|
|
9
39
|
class: props.className,
|
|
10
40
|
exportparts: props.exportparts,
|
|
11
41
|
for: props.htmlFor,
|
|
12
42
|
part: props.part,
|
|
13
43
|
tabindex: props.tabIndex,
|
|
44
|
+
streaming: props.streaming ? true : undefined,
|
|
14
45
|
style: { ...props.style },
|
|
15
46
|
},
|
|
16
47
|
props.children,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
export * from "./ForgeAiActionsToolbar.js";
|
|
2
2
|
export * from "./ForgeAiAgentInfo.js";
|
|
3
|
-
export * from "./ForgeAiArtifact.js";
|
|
4
3
|
export * from "./ForgeAiAssistantResponse.js";
|
|
5
|
-
export * from "./
|
|
4
|
+
export * from "./ForgeAiArtifact.js";
|
|
6
5
|
export * from "./ForgeAiButton.js";
|
|
6
|
+
export * from "./ForgeAiAttachment.js";
|
|
7
7
|
export * from "./ForgeAiChatHeader.js";
|
|
8
8
|
export * from "./ForgeAiChainOfThought.js";
|
|
9
9
|
export * from "./ForgeAiChatInterface.js";
|
|
10
|
-
export * from "./ForgeAiConfirmationPrompt.js";
|
|
11
10
|
export * from "./ForgeAiChatbotToolCall.js";
|
|
12
11
|
export * from "./ForgeAiChatbot.js";
|
|
12
|
+
export * from "./ForgeAiConfirmationPrompt.js";
|
|
13
13
|
export * from "./ForgeAiDialog.js";
|
|
14
14
|
export * from "./ForgeAiDropdownMenuItemGroup.js";
|
|
15
15
|
export * from "./ForgeAiDropdownMenuItem.js";
|
|
@@ -24,22 +24,22 @@ export * from "./ForgeAiFilePicker.js";
|
|
|
24
24
|
export * from "./ForgeAiFloatingChat.js";
|
|
25
25
|
export * from "./ForgeAiGradientContainer.js";
|
|
26
26
|
export * from "./ForgeAiIcon.js";
|
|
27
|
-
export * from "./ForgeAiMessageThread.js";
|
|
28
27
|
export * from "./ForgeAiIconButton.js";
|
|
28
|
+
export * from "./ForgeAiMessageThread.js";
|
|
29
29
|
export * from "./ForgeAiModal.js";
|
|
30
30
|
export * from "./ForgeAiPrompt.js";
|
|
31
|
-
export * from "./ForgeAiReasoningHeader.js";
|
|
32
31
|
export * from "./ForgeAiReasoning.js";
|
|
32
|
+
export * from "./ForgeAiReasoningHeader.js";
|
|
33
33
|
export * from "./ForgeAiResponseMessage.js";
|
|
34
34
|
export * from "./ForgeAiSidebar.js";
|
|
35
35
|
export * from "./ForgeAiSidebarChat.js";
|
|
36
|
-
export * from "./ForgeAiSlashCommandMenu.js";
|
|
37
36
|
export * from "./ForgeAiSpinner.js";
|
|
38
|
-
export * from "./
|
|
37
|
+
export * from "./ForgeAiSlashCommandMenu.js";
|
|
39
38
|
export * from "./ForgeAiThinkingIndicator.js";
|
|
40
39
|
export * from "./ForgeAiThreads.js";
|
|
41
|
-
export * from "./
|
|
40
|
+
export * from "./ForgeAiSuggestions.js";
|
|
42
41
|
export * from "./ForgeAiUserMessage.js";
|
|
42
|
+
export * from "./ForgeAiVoiceInput.js";
|
|
43
43
|
export * from "./ForgeAiThoughtBase.js";
|
|
44
44
|
export * from "./ForgeAiThoughtDetail.js";
|
|
45
45
|
export * from "./ForgeAiThoughtImage.js";
|
|
@@ -47,7 +47,7 @@ export * from "./ForgeAiThoughtSearchResult.js";
|
|
|
47
47
|
export * from "./ForgePromptButton.js";
|
|
48
48
|
export * from "./ForgeAiReasoningContent.js";
|
|
49
49
|
export * from "./ForgeAiOverlay.js";
|
|
50
|
+
export * from "./ForgeAiToolDataTable.js";
|
|
50
51
|
export * from "./ForgeAiPopover.js";
|
|
51
52
|
export * from "./ForgeAiTooltip.js";
|
|
52
|
-
export * from "./ForgeAiToolDataTable.js";
|
|
53
53
|
export * from "./ForgeAiPaginator.js";
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
export * from "./ForgeAiActionsToolbar.js";
|
|
2
2
|
export * from "./ForgeAiAgentInfo.js";
|
|
3
|
-
export * from "./ForgeAiArtifact.js";
|
|
4
3
|
export * from "./ForgeAiAssistantResponse.js";
|
|
5
|
-
export * from "./
|
|
4
|
+
export * from "./ForgeAiArtifact.js";
|
|
6
5
|
export * from "./ForgeAiButton.js";
|
|
6
|
+
export * from "./ForgeAiAttachment.js";
|
|
7
7
|
export * from "./ForgeAiChatHeader.js";
|
|
8
8
|
export * from "./ForgeAiChainOfThought.js";
|
|
9
9
|
export * from "./ForgeAiChatInterface.js";
|
|
10
|
-
export * from "./ForgeAiConfirmationPrompt.js";
|
|
11
10
|
export * from "./ForgeAiChatbotToolCall.js";
|
|
12
11
|
export * from "./ForgeAiChatbot.js";
|
|
12
|
+
export * from "./ForgeAiConfirmationPrompt.js";
|
|
13
13
|
export * from "./ForgeAiDialog.js";
|
|
14
14
|
export * from "./ForgeAiDropdownMenuItemGroup.js";
|
|
15
15
|
export * from "./ForgeAiDropdownMenuItem.js";
|
|
@@ -24,22 +24,22 @@ export * from "./ForgeAiFilePicker.js";
|
|
|
24
24
|
export * from "./ForgeAiFloatingChat.js";
|
|
25
25
|
export * from "./ForgeAiGradientContainer.js";
|
|
26
26
|
export * from "./ForgeAiIcon.js";
|
|
27
|
-
export * from "./ForgeAiMessageThread.js";
|
|
28
27
|
export * from "./ForgeAiIconButton.js";
|
|
28
|
+
export * from "./ForgeAiMessageThread.js";
|
|
29
29
|
export * from "./ForgeAiModal.js";
|
|
30
30
|
export * from "./ForgeAiPrompt.js";
|
|
31
|
-
export * from "./ForgeAiReasoningHeader.js";
|
|
32
31
|
export * from "./ForgeAiReasoning.js";
|
|
32
|
+
export * from "./ForgeAiReasoningHeader.js";
|
|
33
33
|
export * from "./ForgeAiResponseMessage.js";
|
|
34
34
|
export * from "./ForgeAiSidebar.js";
|
|
35
35
|
export * from "./ForgeAiSidebarChat.js";
|
|
36
|
-
export * from "./ForgeAiSlashCommandMenu.js";
|
|
37
36
|
export * from "./ForgeAiSpinner.js";
|
|
38
|
-
export * from "./
|
|
37
|
+
export * from "./ForgeAiSlashCommandMenu.js";
|
|
39
38
|
export * from "./ForgeAiThinkingIndicator.js";
|
|
40
39
|
export * from "./ForgeAiThreads.js";
|
|
41
|
-
export * from "./
|
|
40
|
+
export * from "./ForgeAiSuggestions.js";
|
|
42
41
|
export * from "./ForgeAiUserMessage.js";
|
|
42
|
+
export * from "./ForgeAiVoiceInput.js";
|
|
43
43
|
export * from "./ForgeAiThoughtBase.js";
|
|
44
44
|
export * from "./ForgeAiThoughtDetail.js";
|
|
45
45
|
export * from "./ForgeAiThoughtImage.js";
|
|
@@ -47,7 +47,7 @@ export * from "./ForgeAiThoughtSearchResult.js";
|
|
|
47
47
|
export * from "./ForgePromptButton.js";
|
|
48
48
|
export * from "./ForgeAiReasoningContent.js";
|
|
49
49
|
export * from "./ForgeAiOverlay.js";
|
|
50
|
+
export * from "./ForgeAiToolDataTable.js";
|
|
50
51
|
export * from "./ForgeAiPopover.js";
|
|
51
52
|
export * from "./ForgeAiTooltip.js";
|
|
52
|
-
export * from "./ForgeAiToolDataTable.js";
|
|
53
53
|
export * from "./ForgeAiPaginator.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tylertech/forge-ai-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "A React adapter for Tyler Forge™ AI Web Components.",
|
|
5
5
|
"repository": "tyler-technologies-oss/forge-ai",
|
|
6
6
|
"author": "Tyler Technologies, Inc.",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
18
|
"react": ">=17.0.0",
|
|
19
|
-
"@tylertech/forge-ai": "^0.
|
|
19
|
+
"@tylertech/forge-ai": "^0.8.0"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@repo/prettier-config": "",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"typescript": "~5.8.3",
|
|
45
45
|
"vite": "7.3.0",
|
|
46
46
|
"vite-tsconfig-paths": "6.0.3",
|
|
47
|
-
"@tylertech/forge-ai": "^0.
|
|
47
|
+
"@tylertech/forge-ai": "^0.8.0"
|
|
48
48
|
},
|
|
49
49
|
"scripts": {
|
|
50
50
|
"predev": "pnpm run build",
|