@tylertech/forge-ai-react 0.8.0 → 0.8.1

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.
@@ -50,8 +50,8 @@ export interface ForgeAiAssistantResponseProps extends Pick<
50
50
  event: CustomEvent<CustomEvent<{ responseId: string }>>,
51
51
  ) => void;
52
52
 
53
- /** Fired when refresh action is clicked */
54
- onForgeAiAssistantResponseRefresh?: (
53
+ /** Fired when resend action is clicked */
54
+ onForgeAiAssistantResponseResend?: (
55
55
  event: CustomEvent<CustomEvent<{ responseId: string }>>,
56
56
  ) => void;
57
57
 
@@ -73,7 +73,7 @@ export interface ForgeAiAssistantResponseProps extends Pick<
73
73
  *
74
74
  * ### **Events:**
75
75
  * - **forge-ai-assistant-response-copy** - Fired when copy action is clicked
76
- * - **forge-ai-assistant-response-refresh** - Fired when refresh action is clicked
76
+ * - **forge-ai-assistant-response-resend** - Fired when resend action is clicked
77
77
  * - **forge-ai-assistant-response-thumbs-up** - Fired when thumbs up is clicked
78
78
  * - **forge-ai-assistant-response-thumbs-down** - Fired when thumbs down is clicked
79
79
  */
@@ -14,8 +14,8 @@ export const ForgeAiAssistantResponse = forwardRef((props, forwardedRef) => {
14
14
  );
15
15
  useEventListener(
16
16
  ref,
17
- "forge-ai-assistant-response-refresh",
18
- props.onForgeAiAssistantResponseRefresh,
17
+ "forge-ai-assistant-response-resend",
18
+ props.onForgeAiAssistantResponseResend,
19
19
  );
20
20
  useEventListener(
21
21
  ref,
@@ -51,6 +51,5 @@ 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
55
54
  */
56
55
  export const ForgeAiChatInterface: React.ForwardRefExoticComponent<ForgeAiChatInterfaceProps>;
@@ -56,9 +56,9 @@ export interface ForgeAiMessageThreadProps extends Pick<
56
56
  event: CustomEvent<CustomEvent<ForgeAiMessageThreadCopyEventData>>,
57
57
  ) => void;
58
58
 
59
- /** Fired when user clicks refresh on a message */
60
- onForgeAiMessageThreadRefresh?: (
61
- event: CustomEvent<CustomEvent<ForgeAiMessageThreadRefreshEventData>>,
59
+ /** Fired when user clicks resend on a message */
60
+ onForgeAiMessageThreadResend?: (
61
+ event: CustomEvent<CustomEvent<ForgeAiMessageThreadResendEventData>>,
62
62
  ) => void;
63
63
 
64
64
  /** Fired when user gives thumbs up */
@@ -79,7 +79,7 @@ export interface ForgeAiMessageThreadProps extends Pick<
79
79
  *
80
80
  * ### **Events:**
81
81
  * - **forge-ai-message-thread-copy** - Fired when user clicks copy on a message
82
- * - **forge-ai-message-thread-refresh** - Fired when user clicks refresh on a message
82
+ * - **forge-ai-message-thread-resend** - Fired when user clicks resend on a message
83
83
  * - **forge-ai-message-thread-thumbs-up** - Fired when user gives thumbs up
84
84
  * - **forge-ai-message-thread-thumbs-down** - Fired when user gives thumbs down
85
85
  *
@@ -20,8 +20,8 @@ export const ForgeAiMessageThread = forwardRef((props, forwardedRef) => {
20
20
  );
21
21
  useEventListener(
22
22
  ref,
23
- "forge-ai-message-thread-refresh",
24
- props.onForgeAiMessageThreadRefresh,
23
+ "forge-ai-message-thread-resend",
24
+ props.onForgeAiMessageThreadResend,
25
25
  );
26
26
  useEventListener(
27
27
  ref,
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
- import { ForgeAiActionsToolbar as ForgeAiActionsToolbarElement } from "@tylertech/forge-ai/ai-actions-toolbar";
2
+ import { ForgeAiResponseMessageToolbar as ForgeAiResponseMessageToolbarElement } from "@tylertech/forge-ai/ai-response-message-toolbar";
3
3
 
4
- export type { ForgeAiActionsToolbarElement };
4
+ export type { ForgeAiResponseMessageToolbarElement };
5
5
 
6
- export interface ForgeAiActionsToolbarProps extends Pick<
6
+ export interface ForgeAiResponseMessageToolbarProps extends Pick<
7
7
  React.AllHTMLAttributes<HTMLElement>,
8
8
  | "children"
9
9
  | "dir"
@@ -22,7 +22,10 @@ export interface ForgeAiActionsToolbarProps extends Pick<
22
22
  enableReactions?: boolean;
23
23
 
24
24
  /** undefined */
25
- feedbackType?: ForgeAiActionsToolbarElement["feedbackType"];
25
+ feedbackType?: ForgeAiResponseMessageToolbarElement["feedbackType"];
26
+
27
+ /** undefined */
28
+ feedbackReason?: ForgeAiResponseMessageToolbarElement["feedbackReason"];
26
29
 
27
30
  /** 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()`. */
28
31
  className?: string;
@@ -46,13 +49,17 @@ export interface ForgeAiActionsToolbarProps extends Pick<
46
49
  tabIndex?: number;
47
50
 
48
51
  /** Fired when an action button is clicked. The detail contains the action type. */
49
- onForgeAiActionsToolbarAction?: (
50
- event: CustomEvent<CustomEvent<ForgeAiActionsToolbarActionEventData>>,
52
+ onForgeAiResponseMessageToolbarAction?: (
53
+ event: CustomEvent<
54
+ CustomEvent<ForgeAiResponseMessageToolbarActionEventData>
55
+ >,
51
56
  ) => void;
52
57
 
53
58
  /** Fired when feedback is submitted. The detail contains the action and optional feedback text. */
54
- onForgeAiActionsToolbarFeedback?: (
55
- event: CustomEvent<CustomEvent<ForgeAiActionsToolbarFeedbackEventData>>,
59
+ onForgeAiResponseMessageToolbarFeedback?: (
60
+ event: CustomEvent<
61
+ CustomEvent<ForgeAiResponseMessageToolbarFeedbackEventData>
62
+ >,
56
63
  ) => void;
57
64
  }
58
65
 
@@ -62,7 +69,7 @@ export interface ForgeAiActionsToolbarProps extends Pick<
62
69
  *
63
70
  *
64
71
  * ### **Events:**
65
- * - **forge-ai-actions-toolbar-action** - Fired when an action button is clicked. The detail contains the action type.
66
- * - **forge-ai-actions-toolbar-feedback** - Fired when feedback is submitted. The detail contains the action and optional feedback text.
72
+ * - **forge-ai-response-message-toolbar-action** - Fired when an action button is clicked. The detail contains the action type.
73
+ * - **forge-ai-response-message-toolbar-feedback** - Fired when feedback is submitted. The detail contains the action and optional feedback text.
67
74
  */
68
- export const ForgeAiActionsToolbar: React.ForwardRefExoticComponent<ForgeAiActionsToolbarProps>;
75
+ export const ForgeAiResponseMessageToolbar: React.ForwardRefExoticComponent<ForgeAiResponseMessageToolbarProps>;
@@ -0,0 +1,48 @@
1
+ import React, { forwardRef, useRef, useEffect } from "react";
2
+ import "@tylertech/forge-ai/ai-response-message-toolbar";
3
+ import { useEventListener } from "./react-utils.js";
4
+
5
+ export const ForgeAiResponseMessageToolbar = forwardRef(
6
+ (props, forwardedRef) => {
7
+ const ref = useRef(null);
8
+ const { enableReactions, feedbackType, feedbackReason, ...filteredProps } =
9
+ props;
10
+
11
+ /** Event listeners - run once */
12
+ useEventListener(
13
+ ref,
14
+ "forge-ai-response-message-toolbar-action",
15
+ props.onForgeAiResponseMessageToolbarAction,
16
+ );
17
+ useEventListener(
18
+ ref,
19
+ "forge-ai-response-message-toolbar-feedback",
20
+ props.onForgeAiResponseMessageToolbarFeedback,
21
+ );
22
+
23
+ return React.createElement(
24
+ "forge-ai-response-message-toolbar",
25
+ {
26
+ ref: (node) => {
27
+ ref.current = node;
28
+ if (typeof forwardedRef === "function") {
29
+ forwardedRef(node);
30
+ } else if (forwardedRef) {
31
+ forwardedRef.current = node;
32
+ }
33
+ },
34
+ ...filteredProps,
35
+ "feedback-type": props.feedbackType || props["feedback-type"],
36
+ "feedback-reason": props.feedbackReason || props["feedback-reason"],
37
+ class: props.className,
38
+ exportparts: props.exportparts,
39
+ for: props.htmlFor,
40
+ part: props.part,
41
+ tabindex: props.tabIndex,
42
+ "enable-reactions": props.enableReactions ? true : undefined,
43
+ style: { ...props.style },
44
+ },
45
+ props.children,
46
+ );
47
+ },
48
+ );
@@ -0,0 +1,71 @@
1
+ import React from "react";
2
+ import { ForgeAiUserMessageToolbar as ForgeAiUserMessageToolbarElement } from "@tylertech/forge-ai/ai-user-message-toolbar";
3
+
4
+ export type { ForgeAiUserMessageToolbarElement };
5
+
6
+ export interface ForgeAiUserMessageToolbarProps extends Pick<
7
+ React.AllHTMLAttributes<HTMLElement>,
8
+ | "children"
9
+ | "dir"
10
+ | "hidden"
11
+ | "id"
12
+ | "lang"
13
+ | "slot"
14
+ | "style"
15
+ | "title"
16
+ | "translate"
17
+ | "onClick"
18
+ | "onFocus"
19
+ | "onBlur"
20
+ > {
21
+ /** undefined */
22
+ streaming?: boolean;
23
+
24
+ /** 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()`. */
25
+ className?: string;
26
+
27
+ /** Contains a space-separated list of the part names of the element that should be exposed on the host element. */
28
+ exportparts?: string;
29
+
30
+ /** Used for labels to link them with their inputs (using input id). */
31
+ htmlFor?: string;
32
+
33
+ /** Used to help React identify which items have changed, are added, or are removed within a list. */
34
+ key?: number | string;
35
+
36
+ /** Contains a space-separated list of the part names of the element. Part names allows CSS to select and style specific elements in a shadow tree via the ::part pseudo-element. */
37
+ part?: string;
38
+
39
+ /** A mutable ref object whose `.current` property is initialized to the passed argument (`initialValue`). The returned object will persist for the full lifetime of the component. */
40
+ ref?: any;
41
+
42
+ /** 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. */
43
+ tabIndex?: number;
44
+
45
+ /** Fired when copy button is clicked */
46
+ onForgeAiUserMessageToolbarCopy?: (
47
+ event: CustomEvent<CustomEvent<void>>,
48
+ ) => void;
49
+
50
+ /** Fired when resend button is clicked */
51
+ onForgeAiUserMessageToolbarResend?: (
52
+ event: CustomEvent<CustomEvent<void>>,
53
+ ) => void;
54
+
55
+ /** Fired when edit button is clicked */
56
+ onForgeAiUserMessageToolbarEdit?: (
57
+ event: CustomEvent<CustomEvent<void>>,
58
+ ) => void;
59
+ }
60
+
61
+ /**
62
+ * Toolbar for user message actions including copy, resend, and edit.
63
+ * ---
64
+ *
65
+ *
66
+ * ### **Events:**
67
+ * - **forge-ai-user-message-toolbar-copy** - Fired when copy button is clicked
68
+ * - **forge-ai-user-message-toolbar-resend** - Fired when resend button is clicked
69
+ * - **forge-ai-user-message-toolbar-edit** - Fired when edit button is clicked
70
+ */
71
+ export const ForgeAiUserMessageToolbar: React.ForwardRefExoticComponent<ForgeAiUserMessageToolbarProps>;
@@ -1,25 +1,30 @@
1
1
  import React, { forwardRef, useRef, useEffect } from "react";
2
- import "@tylertech/forge-ai/ai-actions-toolbar";
2
+ import "@tylertech/forge-ai/ai-user-message-toolbar";
3
3
  import { useEventListener } from "./react-utils.js";
4
4
 
5
- export const ForgeAiActionsToolbar = forwardRef((props, forwardedRef) => {
5
+ export const ForgeAiUserMessageToolbar = forwardRef((props, forwardedRef) => {
6
6
  const ref = useRef(null);
7
- const { enableReactions, feedbackType, ...filteredProps } = props;
7
+ const { streaming, ...filteredProps } = props;
8
8
 
9
9
  /** Event listeners - run once */
10
10
  useEventListener(
11
11
  ref,
12
- "forge-ai-actions-toolbar-action",
13
- props.onForgeAiActionsToolbarAction,
12
+ "forge-ai-user-message-toolbar-copy",
13
+ props.onForgeAiUserMessageToolbarCopy,
14
14
  );
15
15
  useEventListener(
16
16
  ref,
17
- "forge-ai-actions-toolbar-feedback",
18
- props.onForgeAiActionsToolbarFeedback,
17
+ "forge-ai-user-message-toolbar-resend",
18
+ props.onForgeAiUserMessageToolbarResend,
19
+ );
20
+ useEventListener(
21
+ ref,
22
+ "forge-ai-user-message-toolbar-edit",
23
+ props.onForgeAiUserMessageToolbarEdit,
19
24
  );
20
25
 
21
26
  return React.createElement(
22
- "forge-ai-actions-toolbar",
27
+ "forge-ai-user-message-toolbar",
23
28
  {
24
29
  ref: (node) => {
25
30
  ref.current = node;
@@ -30,13 +35,12 @@ export const ForgeAiActionsToolbar = forwardRef((props, forwardedRef) => {
30
35
  }
31
36
  },
32
37
  ...filteredProps,
33
- "feedback-type": props.feedbackType || props["feedback-type"],
34
38
  class: props.className,
35
39
  exportparts: props.exportparts,
36
40
  for: props.htmlFor,
37
41
  part: props.part,
38
42
  tabindex: props.tabIndex,
39
- "enable-reactions": props.enableReactions ? true : undefined,
43
+ streaming: props.streaming ? true : undefined,
40
44
  style: { ...props.style },
41
45
  },
42
46
  props.children,
package/dist/index.d.ts CHANGED
@@ -1,15 +1,14 @@
1
- export * from "./ForgeAiActionsToolbar.js";
2
1
  export * from "./ForgeAiAgentInfo.js";
3
2
  export * from "./ForgeAiAssistantResponse.js";
4
3
  export * from "./ForgeAiArtifact.js";
5
- export * from "./ForgeAiButton.js";
6
4
  export * from "./ForgeAiAttachment.js";
7
- export * from "./ForgeAiChatHeader.js";
5
+ export * from "./ForgeAiButton.js";
8
6
  export * from "./ForgeAiChainOfThought.js";
7
+ export * from "./ForgeAiChatHeader.js";
9
8
  export * from "./ForgeAiChatInterface.js";
9
+ export * from "./ForgeAiConfirmationPrompt.js";
10
10
  export * from "./ForgeAiChatbotToolCall.js";
11
11
  export * from "./ForgeAiChatbot.js";
12
- export * from "./ForgeAiConfirmationPrompt.js";
13
12
  export * from "./ForgeAiDialog.js";
14
13
  export * from "./ForgeAiDropdownMenuItemGroup.js";
15
14
  export * from "./ForgeAiDropdownMenuItem.js";
@@ -31,14 +30,16 @@ export * from "./ForgeAiPrompt.js";
31
30
  export * from "./ForgeAiReasoning.js";
32
31
  export * from "./ForgeAiReasoningHeader.js";
33
32
  export * from "./ForgeAiResponseMessage.js";
33
+ export * from "./ForgeAiResponseMessageToolbar.js";
34
34
  export * from "./ForgeAiSidebar.js";
35
35
  export * from "./ForgeAiSidebarChat.js";
36
- export * from "./ForgeAiSpinner.js";
37
36
  export * from "./ForgeAiSlashCommandMenu.js";
38
- export * from "./ForgeAiThinkingIndicator.js";
39
- export * from "./ForgeAiThreads.js";
37
+ export * from "./ForgeAiSpinner.js";
40
38
  export * from "./ForgeAiSuggestions.js";
39
+ export * from "./ForgeAiThinkingIndicator.js";
41
40
  export * from "./ForgeAiUserMessage.js";
41
+ export * from "./ForgeAiThreads.js";
42
+ export * from "./ForgeAiUserMessageToolbar.js";
42
43
  export * from "./ForgeAiVoiceInput.js";
43
44
  export * from "./ForgeAiThoughtBase.js";
44
45
  export * from "./ForgeAiThoughtDetail.js";
@@ -47,7 +48,7 @@ export * from "./ForgeAiThoughtSearchResult.js";
47
48
  export * from "./ForgePromptButton.js";
48
49
  export * from "./ForgeAiReasoningContent.js";
49
50
  export * from "./ForgeAiOverlay.js";
50
- export * from "./ForgeAiToolDataTable.js";
51
51
  export * from "./ForgeAiPopover.js";
52
52
  export * from "./ForgeAiTooltip.js";
53
53
  export * from "./ForgeAiPaginator.js";
54
+ export * from "./ForgeAiToolDataTable.js";
package/dist/index.js CHANGED
@@ -1,15 +1,14 @@
1
- export * from "./ForgeAiActionsToolbar.js";
2
1
  export * from "./ForgeAiAgentInfo.js";
3
2
  export * from "./ForgeAiAssistantResponse.js";
4
3
  export * from "./ForgeAiArtifact.js";
5
- export * from "./ForgeAiButton.js";
6
4
  export * from "./ForgeAiAttachment.js";
7
- export * from "./ForgeAiChatHeader.js";
5
+ export * from "./ForgeAiButton.js";
8
6
  export * from "./ForgeAiChainOfThought.js";
7
+ export * from "./ForgeAiChatHeader.js";
9
8
  export * from "./ForgeAiChatInterface.js";
9
+ export * from "./ForgeAiConfirmationPrompt.js";
10
10
  export * from "./ForgeAiChatbotToolCall.js";
11
11
  export * from "./ForgeAiChatbot.js";
12
- export * from "./ForgeAiConfirmationPrompt.js";
13
12
  export * from "./ForgeAiDialog.js";
14
13
  export * from "./ForgeAiDropdownMenuItemGroup.js";
15
14
  export * from "./ForgeAiDropdownMenuItem.js";
@@ -31,14 +30,16 @@ export * from "./ForgeAiPrompt.js";
31
30
  export * from "./ForgeAiReasoning.js";
32
31
  export * from "./ForgeAiReasoningHeader.js";
33
32
  export * from "./ForgeAiResponseMessage.js";
33
+ export * from "./ForgeAiResponseMessageToolbar.js";
34
34
  export * from "./ForgeAiSidebar.js";
35
35
  export * from "./ForgeAiSidebarChat.js";
36
- export * from "./ForgeAiSpinner.js";
37
36
  export * from "./ForgeAiSlashCommandMenu.js";
38
- export * from "./ForgeAiThinkingIndicator.js";
39
- export * from "./ForgeAiThreads.js";
37
+ export * from "./ForgeAiSpinner.js";
40
38
  export * from "./ForgeAiSuggestions.js";
39
+ export * from "./ForgeAiThinkingIndicator.js";
41
40
  export * from "./ForgeAiUserMessage.js";
41
+ export * from "./ForgeAiThreads.js";
42
+ export * from "./ForgeAiUserMessageToolbar.js";
42
43
  export * from "./ForgeAiVoiceInput.js";
43
44
  export * from "./ForgeAiThoughtBase.js";
44
45
  export * from "./ForgeAiThoughtDetail.js";
@@ -47,7 +48,7 @@ export * from "./ForgeAiThoughtSearchResult.js";
47
48
  export * from "./ForgePromptButton.js";
48
49
  export * from "./ForgeAiReasoningContent.js";
49
50
  export * from "./ForgeAiOverlay.js";
50
- export * from "./ForgeAiToolDataTable.js";
51
51
  export * from "./ForgeAiPopover.js";
52
52
  export * from "./ForgeAiTooltip.js";
53
53
  export * from "./ForgeAiPaginator.js";
54
+ export * from "./ForgeAiToolDataTable.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tylertech/forge-ai-react",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
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.8.0"
19
+ "@tylertech/forge-ai": "^0.8.1"
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.8.0"
47
+ "@tylertech/forge-ai": "^0.8.1"
48
48
  },
49
49
  "scripts": {
50
50
  "predev": "pnpm run build",