@tylertech/forge-ai-react
Advanced tools
@@ -84,2 +84,11 @@ import React from "react"; | ||
| /** Agent metadata for info dialog */ | ||
| agentInfo?: ForgeAiChatbotElement["agentInfo"]; | ||
| /** List of available agents for selector */ | ||
| agents?: ForgeAiChatbotElement["agents"]; | ||
| /** Suggestions to display in the empty state */ | ||
| suggestions?: ForgeAiChatbotElement["suggestions"]; | ||
| /** Fired when adapter connects */ | ||
@@ -132,2 +141,12 @@ onForgeAiChatbotConnected?: (event: CustomEvent<CustomEvent<void>>) => void; | ||
| ) => void; | ||
| /** Fired when user changes agent from the header */ | ||
| onForgeAiChatbotAgentChange?: ( | ||
| event: CustomEvent<CustomEvent<ForgeAiChatbotAgentChangeEventData>>, | ||
| ) => void; | ||
| /** Fired when there is a change to the thread state (messages, files, selected agent, etc). Use this to capture the latest thread state for persistence. */ | ||
| onForgeAiChatbotThreadStateChange?: ( | ||
| event: CustomEvent<CustomEvent<void>>, | ||
| ) => void; | ||
| } | ||
@@ -153,2 +172,4 @@ | ||
| * - **forge-ai-chatbot-response-feedback** - Fired when user provides feedback on a response (thumbs up/down) | ||
| * - **forge-ai-chatbot-agent-change** - Fired when user changes agent from the header | ||
| * - **forge-ai-chatbot-thread-state-change** - Fired when there is a change to the thread state (messages, files, selected agent, etc). Use this to capture the latest thread state for persistence. | ||
| * | ||
@@ -155,0 +176,0 @@ * ### **Slots:** |
| import React, { forwardRef, useRef, useEffect } from "react"; | ||
| import "@tylertech/forge-ai/ai-chatbot"; | ||
| import { useEventListener } from "./react-utils.js"; | ||
| import { useEventListener, useProperties } from "./react-utils.js"; | ||
@@ -22,2 +22,5 @@ export const ForgeAiChatbot = forwardRef((props, forwardedRef) => { | ||
| selectedAgentId, | ||
| agentInfo, | ||
| agents, | ||
| suggestions, | ||
| ...filteredProps | ||
@@ -75,3 +78,18 @@ } = props; | ||
| ); | ||
| useEventListener( | ||
| ref, | ||
| "forge-ai-chatbot-agent-change", | ||
| props.onForgeAiChatbotAgentChange, | ||
| ); | ||
| useEventListener( | ||
| ref, | ||
| "forge-ai-chatbot-thread-state-change", | ||
| props.onForgeAiChatbotThreadStateChange, | ||
| ); | ||
| /** Properties - run whenever a property has changed */ | ||
| useProperties(ref, "agentInfo", props.agentInfo); | ||
| useProperties(ref, "agents", props.agents); | ||
| useProperties(ref, "suggestions", props.suggestions); | ||
| return React.createElement( | ||
@@ -78,0 +96,0 @@ "forge-ai-chatbot", |
+8
-8
| export * from "./ForgeAiAgentInfo.js"; | ||
| export * from "./ForgeAiAgentSelector.js"; | ||
| export * from "./ForgeAiArtifact.js"; | ||
| export * from "./ForgeAiAssistantResponse.js"; | ||
| export * from "./ForgeAiButton.js"; | ||
| export * from "./ForgeAiAgentSelector.js"; | ||
| export * from "./ForgeAiAttachment.js"; | ||
| export * from "./ForgeAiButton.js"; | ||
| export * from "./ForgeAiChainOfThought.js"; | ||
@@ -34,10 +34,10 @@ export * from "./ForgeAiChatHeader.js"; | ||
| export * from "./ForgeAiReasoningHeader.js"; | ||
| export * from "./ForgeAiResponseMessage.js"; | ||
| export * from "./ForgeAiSidebar.js"; | ||
| export * from "./ForgeAiResponseMessageToolbar.js"; | ||
| export * from "./ForgeAiResponseMessage.js"; | ||
| export * from "./ForgeAiSidebarChat.js"; | ||
| export * from "./ForgeAiSidebar.js"; | ||
| export * from "./ForgeAiSpinner.js"; | ||
| export * from "./ForgeAiSlashCommandMenu.js"; | ||
| export * from "./ForgeAiSpinner.js"; | ||
| export * from "./ForgeAiSuggestions.js"; | ||
| export * from "./ForgeAiThinkingIndicator.js"; | ||
| export * from "./ForgeAiSuggestions.js"; | ||
| export * from "./ForgeAiThreads.js"; | ||
@@ -48,4 +48,4 @@ export * from "./ForgeAiToolCallIndicator.js"; | ||
| export * from "./ForgeAiVoiceInput.js"; | ||
| export * from "./ForgeAiThoughtDetail.js"; | ||
| export * from "./ForgeAiThoughtBase.js"; | ||
| export * from "./ForgeAiThoughtDetail.js"; | ||
| export * from "./ForgeAiThoughtImage.js"; | ||
@@ -57,4 +57,4 @@ export * from "./ForgeAiThoughtSearchResult.js"; | ||
| export * from "./ForgeAiOverlay.js"; | ||
| export * from "./ForgeAiToolDataTable.js"; | ||
| export * from "./ForgeAiTooltip.js"; | ||
| export * from "./ForgeAiToolDataTable.js"; | ||
| export * from "./ForgeAiPaginator.js"; |
+8
-8
| export * from "./ForgeAiAgentInfo.js"; | ||
| export * from "./ForgeAiAgentSelector.js"; | ||
| export * from "./ForgeAiArtifact.js"; | ||
| export * from "./ForgeAiAssistantResponse.js"; | ||
| export * from "./ForgeAiButton.js"; | ||
| export * from "./ForgeAiAgentSelector.js"; | ||
| export * from "./ForgeAiAttachment.js"; | ||
| export * from "./ForgeAiButton.js"; | ||
| export * from "./ForgeAiChainOfThought.js"; | ||
@@ -34,10 +34,10 @@ export * from "./ForgeAiChatHeader.js"; | ||
| export * from "./ForgeAiReasoningHeader.js"; | ||
| export * from "./ForgeAiResponseMessage.js"; | ||
| export * from "./ForgeAiSidebar.js"; | ||
| export * from "./ForgeAiResponseMessageToolbar.js"; | ||
| export * from "./ForgeAiResponseMessage.js"; | ||
| export * from "./ForgeAiSidebarChat.js"; | ||
| export * from "./ForgeAiSidebar.js"; | ||
| export * from "./ForgeAiSpinner.js"; | ||
| export * from "./ForgeAiSlashCommandMenu.js"; | ||
| export * from "./ForgeAiSpinner.js"; | ||
| export * from "./ForgeAiSuggestions.js"; | ||
| export * from "./ForgeAiThinkingIndicator.js"; | ||
| export * from "./ForgeAiSuggestions.js"; | ||
| export * from "./ForgeAiThreads.js"; | ||
@@ -48,4 +48,4 @@ export * from "./ForgeAiToolCallIndicator.js"; | ||
| export * from "./ForgeAiVoiceInput.js"; | ||
| export * from "./ForgeAiThoughtDetail.js"; | ||
| export * from "./ForgeAiThoughtBase.js"; | ||
| export * from "./ForgeAiThoughtDetail.js"; | ||
| export * from "./ForgeAiThoughtImage.js"; | ||
@@ -57,4 +57,4 @@ export * from "./ForgeAiThoughtSearchResult.js"; | ||
| export * from "./ForgeAiOverlay.js"; | ||
| export * from "./ForgeAiToolDataTable.js"; | ||
| export * from "./ForgeAiTooltip.js"; | ||
| export * from "./ForgeAiToolDataTable.js"; | ||
| export * from "./ForgeAiPaginator.js"; |
+8
-8
| { | ||
| "name": "@tylertech/forge-ai-react", | ||
| "version": "0.11.2", | ||
| "version": "0.12.0", | ||
| "description": "A React adapter for Tyler Forge™ AI Web Components.", | ||
@@ -19,11 +19,10 @@ "repository": "tyler-technologies-oss/forge-ai", | ||
| "react": ">=17.0.0", | ||
| "@tylertech/forge-ai": "^0.11.6" | ||
| "@tylertech/forge-ai": "^0.12.0" | ||
| }, | ||
| "devDependencies": { | ||
| "@repo/prettier-config": "", | ||
| "@tylertech-eslint/eslint-plugin": "3.0.0", | ||
| "@tylertech/forge": "3.13.1", | ||
| "@tylertech/forge": "3.14.1", | ||
| "@tylertech/forge-react": "^3.2.0", | ||
| "@tylertech/tyler-icons": "2.1.0", | ||
| "@types/node": "25.5.0", | ||
| "@types/node": "25.6.0", | ||
| "@types/react": "^18.3.27", | ||
@@ -46,5 +45,6 @@ "@types/react-dom": "^18.3.7", | ||
| "typescript": "~5.8.3", | ||
| "vite": "7.3.1", | ||
| "vite-tsconfig-paths": "6.0.5", | ||
| "@tylertech/forge-ai": "^0.11.6" | ||
| "vite": "7.3.2", | ||
| "vite-tsconfig-paths": "6.1.1", | ||
| "@repo/prettier-config": "0.0.0", | ||
| "@tylertech/forge-ai": "^0.12.0" | ||
| }, | ||
@@ -51,0 +51,0 @@ "scripts": { |
230550
0.66%5370
0.62%