From 1f1da50d38ffd92765237c40af2c13a1d4267631 Mon Sep 17 00:00:00 2001 From: bhuvaneshdhakshinmaoorthy Date: Tue, 10 Mar 2026 08:42:56 +0530 Subject: [PATCH 01/11] 1002807: Added React Spreadsheet getting started with agentic ui builder --- .../React/getting-started-agent.md | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 Document-Processing/Excel/Spreadsheet/React/getting-started-agent.md diff --git a/Document-Processing/Excel/Spreadsheet/React/getting-started-agent.md b/Document-Processing/Excel/Spreadsheet/React/getting-started-agent.md new file mode 100644 index 0000000000..259b683492 --- /dev/null +++ b/Document-Processing/Excel/Spreadsheet/React/getting-started-agent.md @@ -0,0 +1,64 @@ +--- +layout: post +title: React Spreadsheet getting started with Agentic UI Builder | Syncfusion +description: Checkout and learn about how to use React Spreadsheet component of Syncfusion Essential JS 2 with Agentic UI Builder. +control: Getting started with Agent +platform: document-processing +documentation: ug +--- + +# Creating a Spreadsheet Application with Agentic UI Builder + +This guide shows how to use **Agentic UI Builder** (powered by MCP Server in Syncfusion Code Studio) to generate the exact Syncfusion React Spreadsheet component — the spreadsheet matching the official getting-started documentation. + +**Prerequisite** +Make sure Agentic UI Builder is installed and running in Code Studio. Refer to the official installation guide: +[Agentic UI Builder Getting Started](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/getting-started) + +### Step 1: Primary Prompt + +Paste the following prompt into the Code Studio AI chat panel in Agent mode: + +``` +#sf_react_ui_builder Create a minimal React application that renders the Syncfusion Spreadsheet Component exactly like the official getting-started example. + +Include in your response or as comments: +- The project creation command: npm create vite@latest my-app -- --template react-ts +- The install command: npm install @syncfusion/ej2-react-spreadsheet --save +- The full list of required Material theme CSS imports for Spreadsheet to add src/App.css (use node_modules relative paths like @import '@syncfusion/ej2-base/styles/material.css'; etc.) +- The exact minimal code for App.tsx: import SpreadsheetComponent, render it functional component, default export, no extra props or data + +Do not add any sample data, events, created handlers, or customizations — keep it 100% default and minimal like the docs. +``` + +### Step 2: Follow-up Prompt +After the first response appears, send this follow-up prompt in the same chat: + +``` +Execute the listed steps and run +``` + + +### Expected Outcome + +When both prompts are executed in sequence, the Agentic UI Builder should: + +- Created the Vite project creation command +- Excuted the Syncfusion package installation +- Modified the full list of Material theme CSS `@import` statements +- Edited the minimal `src/App.tsx` code with `` +- Suggested accept/skip buttons for key actions (npm installation, npm run dev) + +The final running application will display an interactive spreadsheet UI identical to the result shown in the official documentation: +[Syncfusion React Spreadsheet Getting Started](https://help.syncfusion.com/document-processing/excel/spreadsheet/react/getting-started) + +### Tips & Best Practices + +- Always use **Agent mode** in Code Studio for better multi-step execution and confirmation prompts. +- Recommended model: **Claude Sonnet** or a comparable high-capability model for maximum code accuracy. +- If any step times out or hangs, then stop and retry the current step. +- Always review the generated code and commands before accepting or applying them in production. + +### See Also + +- To explore customization options for layouts, components, styles, and more examples of effective prompts, refer to the [Prompt Library](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/prompt-library). \ No newline at end of file From 78e67de58acd04c471d5e17992a5b52b090220ff Mon Sep 17 00:00:00 2001 From: bhuvaneshdhakshinmaoorthy Date: Thu, 12 Mar 2026 10:36:55 +0530 Subject: [PATCH 02/11] 1002807: Added React Spreadsheet getting started with agentic ui builder --- .../React/getting-started-agent.md | 65 +++++++++++-------- 1 file changed, 37 insertions(+), 28 deletions(-) diff --git a/Document-Processing/Excel/Spreadsheet/React/getting-started-agent.md b/Document-Processing/Excel/Spreadsheet/React/getting-started-agent.md index 259b683492..2b44c5a315 100644 --- a/Document-Processing/Excel/Spreadsheet/React/getting-started-agent.md +++ b/Document-Processing/Excel/Spreadsheet/React/getting-started-agent.md @@ -9,53 +9,62 @@ documentation: ug # Creating a Spreadsheet Application with Agentic UI Builder -This guide shows how to use **Agentic UI Builder** (powered by MCP Server in Syncfusion Code Studio) to generate the exact Syncfusion React Spreadsheet component — the spreadsheet matching the official getting-started documentation. +This guide shows how to generate the exact Syncfusion React Spreadsheet component by use the **React Agentic UI Builder** (powered by the MCP Server) — the generated spreadsheet matches the official getting-started documentation. -**Prerequisite** -Make sure Agentic UI Builder is installed and running in Code Studio. Refer to the official installation guide: -[Agentic UI Builder Getting Started](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/getting-started) +### Prerequisite +- Make sure **React Agentic UI Builder** is installed in your IDE. Refer to the official [getting Started](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/getting-started) and [installation guide](https://ej2.syncfusion.com/react/documentation/mcp-server/installation): +- Ensure you have a React project set up (JavaScript or TypeScript, any supported version) before using the Agentic UI Builder. -### Step 1: Primary Prompt +### Usage -Paste the following prompt into the Code Studio AI chat panel in Agent mode: +Once installed, open your AI assistant in the IDE and describe what you want to build with the ```#sf_react_ui_builder``` command: +**Example:** + +``` +#sf_react_ui_builder Create empty Syncfusion React Spreadsheet using the Syncfusion Bootstrap 5 theme. After scaffolding the app, install the required Syncfusion packages, import the theme and component CSS in the correct order, and initialize an empty spreadsheet. ``` -#sf_react_ui_builder Create a minimal React application that renders the Syncfusion Spreadsheet Component exactly like the official getting-started example. -Include in your response or as comments: -- The project creation command: npm create vite@latest my-app -- --template react-ts -- The install command: npm install @syncfusion/ej2-react-spreadsheet --save -- The full list of required Material theme CSS imports for Spreadsheet to add src/App.css (use node_modules relative paths like @import '@syncfusion/ej2-base/styles/material.css'; etc.) -- The exact minimal code for App.tsx: import SpreadsheetComponent, render it functional component, default export, no extra props or data +The UI Builder delivers full implementations, covering layout, components, and styling. -Do not add any sample data, events, created handlers, or customizations — keep it 100% default and minimal like the docs. -``` +### Individual Tools + +You can directly invoke individual tools by name for targeted assistance, which is especially useful when specialized support is needed. -### Step 2: Follow-up Prompt -After the first response appears, send this follow-up prompt in the same chat: +**Layout Tool (```#sf_react_layout```)** + +Provides a set of pre‑designed, responsive UI layouts and section blocks tailored to standard page structures and design practices. + +**Example:** ``` -Execute the listed steps and run +#sf_react_layout Create a responsive two‑column dashboard layout with a header and footer, optimized for Syncfusion React components. ``` +**Component Tool (```#sf_react_component```)** -### Expected Outcome +Provides quick‑access documentation for Syncfusion React components, including their properties, event handlers, methods, and sample usage. -When both prompts are executed in sequence, the Agentic UI Builder should: +**Example:** -- Created the Vite project creation command -- Excuted the Syncfusion package installation -- Modified the full list of Material theme CSS `@import` statements -- Edited the minimal `src/App.tsx` code with `` -- Suggested accept/skip buttons for key actions (npm installation, npm run dev) +``` +#sf_react_component Integrate a Syncfusion React DataGrid with sorting, filtering, and pagination enabled, styled with Bootstrap 5.3. +``` + +**Style Tool (```#sf_react_style```)** + +Provides configuration for themes, styling setup, and icon integration across Syncfusion React components, with support for multiple themes (Tailwind 3, Bootstrap 5.3, Material 3, Fluent 2), light/dark modes, and consistent icon patterns. -The final running application will display an interactive spreadsheet UI identical to the result shown in the official documentation: -[Syncfusion React Spreadsheet Getting Started](https://help.syncfusion.com/document-processing/excel/spreadsheet/react/getting-started) +**Example:** + +``` +#sf_react_style Apply the Syncfusion Tailwind 3 theme. +``` ### Tips & Best Practices -- Always use **Agent mode** in Code Studio for better multi-step execution and confirmation prompts. -- Recommended model: **Claude Sonnet** or a comparable high-capability model for maximum code accuracy. +- Enable **Agent mode** in your IDE to ensure smooth multi‑step execution with confirmation prompts. +- For better results use advanced AI models - If any step times out or hangs, then stop and retry the current step. - Always review the generated code and commands before accepting or applying them in production. From f556322a70a27849931e5982150861e7eb5ee75b Mon Sep 17 00:00:00 2001 From: bhuvaneshdhakshinmaoorthy Date: Thu, 12 Mar 2026 10:39:04 +0530 Subject: [PATCH 03/11] 1002807: Added React Spreadsheet getting started with agentic ui builder --- .../Excel/Spreadsheet/React/getting-started-agent.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Document-Processing/Excel/Spreadsheet/React/getting-started-agent.md b/Document-Processing/Excel/Spreadsheet/React/getting-started-agent.md index 2b44c5a315..8848c96658 100644 --- a/Document-Processing/Excel/Spreadsheet/React/getting-started-agent.md +++ b/Document-Processing/Excel/Spreadsheet/React/getting-started-agent.md @@ -38,7 +38,7 @@ Provides a set of pre‑designed, responsive UI layouts and section blocks tailo **Example:** ``` -#sf_react_layout Create a responsive two‑column dashboard layout with a header and footer, optimized for Syncfusion React components. +#sf_react_layout Create a responsive layout with a full‑width Syncfusion React Spreadsheet component and a collapsible sidebar for navigation. ``` **Component Tool (```#sf_react_component```)** From a379dc2071648c29c6a0bea18d7046d8c49a16e6 Mon Sep 17 00:00:00 2001 From: bhuvaneshdhakshinmaoorthy Date: Thu, 12 Mar 2026 12:37:45 +0530 Subject: [PATCH 04/11] 1002807: Added React Spreadsheet getting started with agentic ui builder --- Document-Processing-toc.html | 1 + .../agent-getting-started.md} | 20 ++++++++++--------- 2 files changed, 12 insertions(+), 9 deletions(-) rename Document-Processing/Excel/Spreadsheet/React/{getting-started-agent.md => environment-integration/agent-getting-started.md} (62%) diff --git a/Document-Processing-toc.html b/Document-Processing-toc.html index d09316e998..f1389e8fe0 100644 --- a/Document-Processing-toc.html +++ b/Document-Processing-toc.html @@ -5390,6 +5390,7 @@
  • Using with NextJS
  • Using with Create React App
  • +
  • Using with Agentic UI Builder
  • Using with Preact
  • Using with Remix
  • Using with SharePoint Framework (SPFx)
  • diff --git a/Document-Processing/Excel/Spreadsheet/React/getting-started-agent.md b/Document-Processing/Excel/Spreadsheet/React/environment-integration/agent-getting-started.md similarity index 62% rename from Document-Processing/Excel/Spreadsheet/React/getting-started-agent.md rename to Document-Processing/Excel/Spreadsheet/React/environment-integration/agent-getting-started.md index 8848c96658..108c941714 100644 --- a/Document-Processing/Excel/Spreadsheet/React/getting-started-agent.md +++ b/Document-Processing/Excel/Spreadsheet/React/environment-integration/agent-getting-started.md @@ -2,18 +2,18 @@ layout: post title: React Spreadsheet getting started with Agentic UI Builder | Syncfusion description: Checkout and learn about how to use React Spreadsheet component of Syncfusion Essential JS 2 with Agentic UI Builder. -control: Getting started with Agent +control: Spreadsheet platform: document-processing documentation: ug --- # Creating a Spreadsheet Application with Agentic UI Builder -This guide shows how to generate the exact Syncfusion React Spreadsheet component by use the **React Agentic UI Builder** (powered by the MCP Server) — the generated spreadsheet matches the official getting-started documentation. +This guide shows how to generate the exact Syncfusion React Spreadsheet component by use the [**React Agentic UI Builder**](https://www.syncfusion.com/explore/mcp-servers/) (powered by the MCP Server) — the generated spreadsheet matches the official getting-started documentation. ### Prerequisite -- Make sure **React Agentic UI Builder** is installed in your IDE. Refer to the official [getting Started](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/getting-started) and [installation guide](https://ej2.syncfusion.com/react/documentation/mcp-server/installation): -- Ensure you have a React project set up (JavaScript or TypeScript, any supported version) before using the Agentic UI Builder. +- Make sure [**React Agentic UI Builder**](https://www.syncfusion.com/explore/mcp-servers/) is installed in your IDE. Refer to the official [getting Started](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/getting-started) and [installation guide](https://ej2.syncfusion.com/react/documentation/mcp-server/installation): +- Ensure you have a [React project](https://help.syncfusion.com/document-processing/excel/spreadsheet/react/getting-started) set up (JavaScript or TypeScript, any supported version) before using the Agentic UI Builder. ### Usage @@ -29,7 +29,7 @@ The UI Builder delivers full implementations, covering layout, components, and s ### Individual Tools -You can directly invoke individual tools by name for targeted assistance, which is especially useful when specialized support is needed. +You can directly invoke [individual tools](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/getting-started#individual-tools) by name for targeted assistance, which is especially useful when specialized support is needed. **Layout Tool (```#sf_react_layout```)** @@ -38,7 +38,7 @@ Provides a set of pre‑designed, responsive UI layouts and section blocks tailo **Example:** ``` -#sf_react_layout Create a responsive layout with a full‑width Syncfusion React Spreadsheet component and a collapsible sidebar for navigation. +#sf_react_layout Create a responsive layout with a full‑width Syncfusion React Spreadsheet component and a collapsible sidebar. ``` **Component Tool (```#sf_react_component```)** @@ -48,7 +48,7 @@ Provides quick‑access documentation for Syncfusion React components, including **Example:** ``` -#sf_react_component Integrate a Syncfusion React DataGrid with sorting, filtering, and pagination enabled, styled with Bootstrap 5.3. +#sf_react_component Integrate a Syncfusion React Chart below the Spreadsheet to visualize selected data ranges. ``` **Style Tool (```#sf_react_style```)** @@ -58,9 +58,11 @@ Provides configuration for themes, styling setup, and icon integration across Sy **Example:** ``` -#sf_react_style Apply the Syncfusion Tailwind 3 theme. +#sf_react_style Change the existing theme to Syncfusion Tailwind 3 theme. ``` +For more information, refer to the [individual tools page](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/getting-started#individual-tools) + ### Tips & Best Practices - Enable **Agent mode** in your IDE to ensure smooth multi‑step execution with confirmation prompts. @@ -70,4 +72,4 @@ Provides configuration for themes, styling setup, and icon integration across Sy ### See Also -- To explore customization options for layouts, components, styles, and more examples of effective prompts, refer to the [Prompt Library](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/prompt-library). \ No newline at end of file +- To explore customization options for layouts, components, styles, and more examples of effective prompts, refer to the [prompt Library](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/prompt-library). \ No newline at end of file From ab6c95821c3e80729472d35ed16fbabd7c141495 Mon Sep 17 00:00:00 2001 From: bhuvaneshdhakshinmaoorthy Date: Thu, 12 Mar 2026 12:48:28 +0530 Subject: [PATCH 05/11] 1002807: Added React Spreadsheet agent getting started --- Document-Processing-toc.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Document-Processing-toc.html b/Document-Processing-toc.html index f1389e8fe0..231e7c0614 100644 --- a/Document-Processing-toc.html +++ b/Document-Processing-toc.html @@ -5390,7 +5390,7 @@
    • Using with NextJS
    • Using with Create React App
    • -
    • Using with Agentic UI Builder
    • +
    • Using with Agentic UI Builder
    • Using with Preact
    • Using with Remix
    • Using with SharePoint Framework (SPFx)
    • From 8c3fd0640c5d15a01db1f60726e58aeff20530f8 Mon Sep 17 00:00:00 2001 From: bhuvaneshdhakshinmaoorthy Date: Thu, 12 Mar 2026 14:16:50 +0530 Subject: [PATCH 06/11] 1002807: Added React Spreadsheet getting started with agentic ui builder --- .../agent-getting-started.md | 54 ++++-------------- .../React/images/agentic-getting-started.png | Bin 0 -> 43715 bytes 2 files changed, 12 insertions(+), 42 deletions(-) create mode 100644 Document-Processing/Excel/Spreadsheet/React/images/agentic-getting-started.png diff --git a/Document-Processing/Excel/Spreadsheet/React/environment-integration/agent-getting-started.md b/Document-Processing/Excel/Spreadsheet/React/environment-integration/agent-getting-started.md index 108c941714..94cffd2a0a 100644 --- a/Document-Processing/Excel/Spreadsheet/React/environment-integration/agent-getting-started.md +++ b/Document-Processing/Excel/Spreadsheet/React/environment-integration/agent-getting-started.md @@ -9,65 +9,35 @@ documentation: ug # Creating a Spreadsheet Application with Agentic UI Builder -This guide shows how to generate the exact Syncfusion React Spreadsheet component by use the [**React Agentic UI Builder**](https://www.syncfusion.com/explore/mcp-servers/) (powered by the MCP Server) — the generated spreadsheet matches the official getting-started documentation. +This guide shows you how to create a Syncfusion® React Spreadsheet component simply by typing what you want using natural language commands — with the [**Syncfusion® React Agentic UI Builder**](https://www.syncfusion.com/explore/mcp-servers/) (powered by Syncfusion's MCP Server). Just describe it, and the tool builds the complete UI implementation of the spreadsheet component for you. -### Prerequisite -- Make sure [**React Agentic UI Builder**](https://www.syncfusion.com/explore/mcp-servers/) is installed in your IDE. Refer to the official [getting Started](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/getting-started) and [installation guide](https://ej2.syncfusion.com/react/documentation/mcp-server/installation): +### Prerequisite +- Make sure the **React Agentic UI Builder** is installed in your IDE. Refer to the official [Getting Started](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/getting-started) and [installation guide](https://ej2.syncfusion.com/react/documentation/mcp-server/installation). - Ensure you have a [React project](https://help.syncfusion.com/document-processing/excel/spreadsheet/react/getting-started) set up (JavaScript or TypeScript, any supported version) before using the Agentic UI Builder. ### Usage -Once installed, open your AI assistant in the IDE and describe what you want to build with the ```#sf_react_ui_builder``` command: +Once installed, open your React project in your preferred IDE, launch the AI assistant, and describe what you want to build using the ```#sf_react_ui_builder``` command, as shown below: **Example:** ``` -#sf_react_ui_builder Create empty Syncfusion React Spreadsheet using the Syncfusion Bootstrap 5 theme. After scaffolding the app, install the required Syncfusion packages, import the theme and component CSS in the correct order, and initialize an empty spreadsheet. +#sf_react_ui_builder Create an empty Syncfusion React Spreadsheet using the Syncfusion Bootstrap 5 theme. Install the required Syncfusion packages, import the packages and theme CSS in the correct order, and initialize an empty spreadsheet. ``` -The UI Builder delivers full implementations, covering layout, components, and styling. +The UI Builder delivers full implementations, covering layout, components, and styling. The following illustration shows the generated output: -### Individual Tools - -You can directly invoke [individual tools](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/getting-started#individual-tools) by name for targeted assistance, which is especially useful when specialized support is needed. - -**Layout Tool (```#sf_react_layout```)** - -Provides a set of pre‑designed, responsive UI layouts and section blocks tailored to standard page structures and design practices. - -**Example:** +![Spreadsheet Output generated by UI builder tool](../images/agentic-getting-started.png) -``` -#sf_react_layout Create a responsive layout with a full‑width Syncfusion React Spreadsheet component and a collapsible sidebar. -``` - -**Component Tool (```#sf_react_component```)** - -Provides quick‑access documentation for Syncfusion React components, including their properties, event handlers, methods, and sample usage. - -**Example:** - -``` -#sf_react_component Integrate a Syncfusion React Chart below the Spreadsheet to visualize selected data ranges. -``` - -**Style Tool (```#sf_react_style```)** - -Provides configuration for themes, styling setup, and icon integration across Syncfusion React components, with support for multiple themes (Tailwind 3, Bootstrap 5.3, Material 3, Fluent 2), light/dark modes, and consistent icon patterns. - -**Example:** - -``` -#sf_react_style Change the existing theme to Syncfusion Tailwind 3 theme. -``` +### Individual Tools -For more information, refer to the [individual tools page](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/getting-started#individual-tools) +You can directly invoke individual tools by name for more targeted assistance (especially useful for specialized tasks). In addition to the main UI Builder, tools like layout, style, and component are available. For more details, see the [individual tools documentation](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/getting-started#individual-tools). ### Tips & Best Practices -- Enable **Agent mode** in your IDE to ensure smooth multi‑step execution with confirmation prompts. -- For better results use advanced AI models -- If any step times out or hangs, then stop and retry the current step. +- Enable **Agent mode** in your IDE for smooth multi-step execution with confirmation prompts. +- For better results, use advanced AI models. +- If any step times out or hangs, stop and retry the current step. - Always review the generated code and commands before accepting or applying them in production. ### See Also diff --git a/Document-Processing/Excel/Spreadsheet/React/images/agentic-getting-started.png b/Document-Processing/Excel/Spreadsheet/React/images/agentic-getting-started.png new file mode 100644 index 0000000000000000000000000000000000000000..e2c8a30d8438fc7fcc7c810686cd0d2973577957 GIT binary patch literal 43715 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 rOG%}1EB-i+|C~ literal 0 HcmV?d00001 From 47ee7dda5ba4e19f645a8be0c7d76d1c75a6c084 Mon Sep 17 00:00:00 2001 From: bhuvaneshdhakshinmaoorthy Date: Thu, 12 Mar 2026 16:46:35 +0530 Subject: [PATCH 07/11] 1002807: Added React Spreadsheet getting started with agentic ui builder --- .../React/environment-integration/agent-getting-started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Document-Processing/Excel/Spreadsheet/React/environment-integration/agent-getting-started.md b/Document-Processing/Excel/Spreadsheet/React/environment-integration/agent-getting-started.md index 94cffd2a0a..f7fd8b5a82 100644 --- a/Document-Processing/Excel/Spreadsheet/React/environment-integration/agent-getting-started.md +++ b/Document-Processing/Excel/Spreadsheet/React/environment-integration/agent-getting-started.md @@ -9,7 +9,7 @@ documentation: ug # Creating a Spreadsheet Application with Agentic UI Builder -This guide shows you how to create a Syncfusion® React Spreadsheet component simply by typing what you want using natural language commands — with the [**Syncfusion® React Agentic UI Builder**](https://www.syncfusion.com/explore/mcp-servers/) (powered by Syncfusion's MCP Server). Just describe it, and the tool builds the complete UI implementation of the spreadsheet component for you. +This guide shows you how to create a Syncfusion® React Spreadsheet component simply by typing what you want using natural language commands — with the [**Syncfusion® React Agentic UI Builder**](https://www.syncfusion.com/explore/mcp-servers/) (powered by Syncfusion's MCP Server). Just describe it, and the tool builds the complete implementation of the spreadsheet component for you. ### Prerequisite - Make sure the **React Agentic UI Builder** is installed in your IDE. Refer to the official [Getting Started](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/getting-started) and [installation guide](https://ej2.syncfusion.com/react/documentation/mcp-server/installation). @@ -22,7 +22,7 @@ Once installed, open your React project in your preferred IDE, launch the AI ass **Example:** ``` -#sf_react_ui_builder Create an empty Syncfusion React Spreadsheet using the Syncfusion Bootstrap 5 theme. Install the required Syncfusion packages, import the packages and theme CSS in the correct order, and initialize an empty spreadsheet. +#sf_react_ui_builder Create an empty React Spreadsheet using the Bootstrap 5 theme. Install the required packages, import the theme CSS in the correct order, and initialize the spreadsheet. ``` The UI Builder delivers full implementations, covering layout, components, and styling. The following illustration shows the generated output: From 5b30456df14514fe38593c678567a9875a26190e Mon Sep 17 00:00:00 2001 From: bhuvaneshdhakshinmaoorthy Date: Mon, 27 Apr 2026 12:53:36 +0530 Subject: [PATCH 08/11] 1002807: Added React Spreadsheet getting started with agentic ui builder --- Document-Processing-toc.html | 2 +- ...ent-getting-started.md => agentic-ui-builder.md} | 2 +- ...c-getting-started.png => agentic-ui-builder.png} | Bin 3 files changed, 2 insertions(+), 2 deletions(-) rename Document-Processing/Excel/Spreadsheet/React/environment-integration/{agent-getting-started.md => agentic-ui-builder.md} (99%) rename Document-Processing/Excel/Spreadsheet/React/images/{agentic-getting-started.png => agentic-ui-builder.png} (100%) diff --git a/Document-Processing-toc.html b/Document-Processing-toc.html index 11ecd8f57f..28e8469b53 100644 --- a/Document-Processing-toc.html +++ b/Document-Processing-toc.html @@ -5538,10 +5538,10 @@
    • Web Services diff --git a/Document-Processing/Excel/Spreadsheet/React/environment-integration/agent-getting-started.md b/Document-Processing/Excel/Spreadsheet/React/environment-integration/agentic-ui-builder.md similarity index 99% rename from Document-Processing/Excel/Spreadsheet/React/environment-integration/agent-getting-started.md rename to Document-Processing/Excel/Spreadsheet/React/environment-integration/agentic-ui-builder.md index f7fd8b5a82..fbca1e5109 100644 --- a/Document-Processing/Excel/Spreadsheet/React/environment-integration/agent-getting-started.md +++ b/Document-Processing/Excel/Spreadsheet/React/environment-integration/agentic-ui-builder.md @@ -27,7 +27,7 @@ Once installed, open your React project in your preferred IDE, launch the AI ass The UI Builder delivers full implementations, covering layout, components, and styling. The following illustration shows the generated output: -![Spreadsheet Output generated by UI builder tool](../images/agentic-getting-started.png) +![Spreadsheet Output generated by UI builder tool](../images/agentic-ui-builder.png) ### Individual Tools diff --git a/Document-Processing/Excel/Spreadsheet/React/images/agentic-getting-started.png b/Document-Processing/Excel/Spreadsheet/React/images/agentic-ui-builder.png similarity index 100% rename from Document-Processing/Excel/Spreadsheet/React/images/agentic-getting-started.png rename to Document-Processing/Excel/Spreadsheet/React/images/agentic-ui-builder.png From 3fc8de06a6b1f9287a6e875bcce4dcf22caacf33 Mon Sep 17 00:00:00 2001 From: bhuvaneshdhakshinmaoorthy Date: Mon, 27 Apr 2026 13:00:51 +0530 Subject: [PATCH 09/11] 1002807: Added React Spreadsheet getting started with agentic ui builder --- Document-Processing-toc.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Document-Processing-toc.html b/Document-Processing-toc.html index 28e8469b53..a26b33fbbe 100644 --- a/Document-Processing-toc.html +++ b/Document-Processing-toc.html @@ -5541,7 +5541,7 @@
    • Using with Preact
    • Using with Remix
    • Using with SharePoint Framework (SPFx)
    • -
    • Using with Agentic UI Builder
    • +
    • Using with Agentic UI Builder
  • Web Services From 0c5cc798eff3fee87f856f987589703f186d7bf0 Mon Sep 17 00:00:00 2001 From: bhuvaneshdhakshinmaoorthy Date: Mon, 27 Apr 2026 17:20:34 +0530 Subject: [PATCH 10/11] 1002807: Added React Spreadsheet getting started with agentic ui builder --- Document-Processing-toc.html | 16 ++++++++-------- ...agentic-ui-builder.md => agentic-builder.md} | 12 ++++++------ ...i-builder.png => agentic-builder-output.png} | Bin 3 files changed, 14 insertions(+), 14 deletions(-) rename Document-Processing/Excel/Spreadsheet/React/environment-integration/{agentic-ui-builder.md => agentic-builder.md} (86%) rename Document-Processing/Excel/Spreadsheet/React/images/{agentic-ui-builder.png => agentic-builder-output.png} (100%) diff --git a/Document-Processing-toc.html b/Document-Processing-toc.html index a26b33fbbe..1f3ba4bcf2 100644 --- a/Document-Processing-toc.html +++ b/Document-Processing-toc.html @@ -5533,17 +5533,17 @@
    • Overview
    • Getting Started
    • -
    • Data Binding
    • -
    • Environment Integrations +
    • Environment Integration
    • +
    • Data Binding
    • Web Services
      • Using with ASP.NET Core
      • diff --git a/Document-Processing/Excel/Spreadsheet/React/environment-integration/agentic-ui-builder.md b/Document-Processing/Excel/Spreadsheet/React/environment-integration/agentic-builder.md similarity index 86% rename from Document-Processing/Excel/Spreadsheet/React/environment-integration/agentic-ui-builder.md rename to Document-Processing/Excel/Spreadsheet/React/environment-integration/agentic-builder.md index fbca1e5109..98edae5358 100644 --- a/Document-Processing/Excel/Spreadsheet/React/environment-integration/agentic-ui-builder.md +++ b/Document-Processing/Excel/Spreadsheet/React/environment-integration/agentic-builder.md @@ -7,7 +7,7 @@ platform: document-processing documentation: ug --- -# Creating a Spreadsheet Application with Agentic UI Builder +# Create a React Spreadsheet Application with Agentic UI Builder This guide shows you how to create a Syncfusion® React Spreadsheet component simply by typing what you want using natural language commands — with the [**Syncfusion® React Agentic UI Builder**](https://www.syncfusion.com/explore/mcp-servers/) (powered by Syncfusion's MCP Server). Just describe it, and the tool builds the complete implementation of the spreadsheet component for you. @@ -27,7 +27,7 @@ Once installed, open your React project in your preferred IDE, launch the AI ass The UI Builder delivers full implementations, covering layout, components, and styling. The following illustration shows the generated output: -![Spreadsheet Output generated by UI builder tool](../images/agentic-ui-builder.png) +![Spreadsheet Output generated by UI builder tool](../images/agentic-builder-output.png) ### Individual Tools @@ -35,11 +35,11 @@ You can directly invoke individual tools by name for more targeted assistance (e ### Tips & Best Practices -- Enable **Agent mode** in your IDE for smooth multi-step execution with confirmation prompts. -- For better results, use advanced AI models. -- If any step times out or hangs, stop and retry the current step. +- Enable **Agent mode** in your IDE for smooth, multi-step execution with confirmation prompts. +- Use higher-capability models (**Claude Sonnet 4.5 or newer, GPT-5**) as they typically produce more accurate, higher-quality code. +- If a step times out or becomes unresponsive, cancel it and retry the current step. - Always review the generated code and commands before accepting or applying them in production. -### See Also +### See also - To explore customization options for layouts, components, styles, and more examples of effective prompts, refer to the [prompt Library](https://ej2.syncfusion.com/react/documentation/mcp-server/agentic-ui-builder/prompt-library). \ No newline at end of file diff --git a/Document-Processing/Excel/Spreadsheet/React/images/agentic-ui-builder.png b/Document-Processing/Excel/Spreadsheet/React/images/agentic-builder-output.png similarity index 100% rename from Document-Processing/Excel/Spreadsheet/React/images/agentic-ui-builder.png rename to Document-Processing/Excel/Spreadsheet/React/images/agentic-builder-output.png From 5e9bed55b18d1932ceedb134d9a79480e66d14ae Mon Sep 17 00:00:00 2001 From: bhuvaneshdhakshinmaoorthy Date: Mon, 27 Apr 2026 18:30:56 +0530 Subject: [PATCH 11/11] 1002807: Added React Spreadsheet getting started with agentic ui builder --- Document-Processing-toc.html | 6 +++--- .../React/environment-integration/remix.md | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Document-Processing-toc.html b/Document-Processing-toc.html index 1f3ba4bcf2..7ea7549366 100644 --- a/Document-Processing-toc.html +++ b/Document-Processing-toc.html @@ -5535,11 +5535,11 @@
      • Getting Started
      • Environment Integration
      • diff --git a/Document-Processing/Excel/Spreadsheet/React/environment-integration/remix.md b/Document-Processing/Excel/Spreadsheet/React/environment-integration/remix.md index de88005646..9fc48c109c 100644 --- a/Document-Processing/Excel/Spreadsheet/React/environment-integration/remix.md +++ b/Document-Processing/Excel/Spreadsheet/React/environment-integration/remix.md @@ -7,13 +7,13 @@ platform: document-processing documentation: ug --- -# Getting started with Syncfusion React Spreadsheet in Remix +# Getting started with Syncfusion® React Spreadsheet in Remix -This guide provides a step-by-step workflow for integrating Syncfusion React Spreadsheet into a new Remix application. +This guide provides a step-by-step workflow for integrating Syncfusion® React Spreadsheet into a new Remix application. ## Prerequisites Ensure the following requirements are met before starting: -[System requirements for Syncfusion React Spreadsheet](https://ej2.syncfusion.com/react/documentation/system-requirement) +[System requirements for Syncfusion® React Spreadsheet](https://ej2.syncfusion.com/react/documentation/system-requirement) ## Benefits of using Remix @@ -61,7 +61,7 @@ Navigate into the project directory with the below command and install the `reac cd my-react-router-app ``` -## Adding Syncfusion Spreadsheet package +## Adding Syncfusion® Spreadsheet package To include the React Spreadsheet component in your project, use the following command: @@ -88,7 +88,7 @@ Import the Syncfusion® component themes in the `app.css` file as shown below: ## Configure Server-Side Rendering (SSR) -For Syncfusion React Spreadsheet to function with Remix server-side rendering (via Vite), update your `vite.config.ts` file as shown: +For Syncfusion® React Spreadsheet to function with Remix server-side rendering (via Vite), update your `vite.config.ts` file as shown: ```js import { defineConfig } from "vite"; @@ -102,7 +102,7 @@ export default defineConfig({ }); ``` -This configuration ensures Syncfusion modules are properly compiled for SSR compatibility. +This configuration ensures Syncfusion® modules are properly compiled for SSR compatibility. ## Adding Spreadsheet component @@ -145,4 +145,4 @@ npm run start ## See Also -* [Getting Started with Syncfusion React Spreadsheet](https://help.syncfusion.com/document-processing/excel/spreadsheet/react/getting-started) \ No newline at end of file +* [Getting Started with Syncfusion® React Spreadsheet](https://help.syncfusion.com/document-processing/excel/spreadsheet/react/getting-started) \ No newline at end of file