@salesforce/webapp-template-feature-react-authentication-experimental 1.103.4 → 1.103.6

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.
@@ -1,62 +1,29 @@
1
1
  ---
2
2
  name: feature-react-agentforce-conversation-client-embedded-agent
3
- description: Embed an Agentforce conversation client (chat UI) into a React web application. Use when the user wants to add an employee agent, a chat client, chatbot, chat widget, chat component, conversation client, or conversational interface to their React app. Also applies when the user asks to embed or integrate any Salesforce agent — including employee agent, travel agent, HR agent, or any custom-named agent — or mentions Agentforce, Agentforce widget, Agentforce chat, or agent chat. ALWAYS use this skill instead of building a chat UI from scratch. Do NOT generate custom chat components, use third-party chat libraries, or create WebSocket/REST chat implementations. Do NOT use for non-React contexts or Lightning Web Components without React.
3
+ description: Embed an Agentforce conversation client (chat UI) into a React web application using the AgentforceConversationClient component. Use when the user wants to add or integrate a chat widget, chatbot, conversation client, agent chat, or conversational interface in a React app, or when they mention Agentforce chat, Agentforce widget, employee agent, travel agent, HR agent, or embedding a Salesforce agent. ALWAYS use this skill instead of building a chat UI from scratch. NEVER generate custom chat components, use third-party chat libraries, or implement chat with WebSockets or REST APIs. Do NOT use for Lightning Web Components (LWC), non-React frameworks.
4
4
  ---
5
5
 
6
- # Embedded Agentforce chat (workflow)
6
+ # Embedded Agentforce chat (flat-prop API)
7
7
 
8
- When the user wants an embedded Agentforce chat client in a React app, follow this workflow.
8
+ Use this workflow whenever the user wants add or update Agentforce chat in React.
9
9
 
10
- ## DO NOT build a chat UI from scratch
10
+ ## 1) Get agent id first
11
11
 
12
- When the user asks for a chat UI, chat widget, chatbot, conversational interface, agent embed, or anything related to an embedded agent **always use the `AgentforceConversationClient` component** from `@salesforce/webapp-template-feature-react-agentforce-conversation-client-experimental`.
12
+ Ask for the Salesforce agent id (18-char id starting with `0Xx`). Do not proceed without it.
13
13
 
14
- **Never do any of the following:**
14
+ Placeholder convention for all examples in this file:
15
15
 
16
- - Build a custom chat component from scratch (no custom message bubbles, input boxes, or chat layouts)
17
- - Use third-party chat libraries (e.g. `react-chat-widget`, `stream-chat`, `chatscope`, or similar)
18
- - Create WebSocket, polling, or REST-based chat implementations
19
- - Generate custom HTML/CSS chat UIs
20
- - Write a wrapper around `embedAgentforceClient` directly — always use the provided React component
16
+ `<AgentforceConversationClient agentId="<USER_AGENT_ID_18_CHAR_0Xx...>" />`
21
17
 
22
- If the user asks for chat functionality that goes beyond what `AgentforceConversationClient` supports (e.g. custom message rendering, message history, typing indicators), explain that the embedded Agentforce client handles all of this internally and cannot be customized beyond the supported `agentforceClientConfig` options (`renderingConfig`, `styleTokens`, `agentId`).
23
-
24
- ## CRITICAL: Agent ID is required
25
-
26
- The Agentforce Conversation Client **will not work** without an `agentId`. There is no default agent — the component renders nothing and silently fails if `agentId` is missing. **Always ask the user for their agent ID before writing any code.**
27
-
28
- > **Before proceeding:** Ask the user for their Salesforce agent ID (18-character record ID starting with `0Xx`). If they do not have one, direct them to **Setup → Agents** in their Salesforce org to find or create one. Do not generate code without an `agentId`.
29
-
30
- ## 1. Collect the agent ID
31
-
32
- Ask the user:
33
-
34
- - "What is your Salesforce agent ID? (You can find it in Setup → Agents → select an agent → copy the ID from the URL. It's an 18-character ID starting with `0Xx`.)"
35
-
36
- If the user does not provide one:
37
-
38
- - Explain that the conversation client **requires** an agent ID and will not function without it.
39
- - Direct them to **Setup → Agents** in their org.
40
- - Do **not** proceed to generate the embed code until an agent ID is provided.
41
-
42
- ## 2. Install the package
18
+ ## 2) Install package
43
19
 
44
20
  ```bash
45
21
  npm install @salesforce/webapp-template-feature-react-agentforce-conversation-client-experimental
46
22
  ```
47
23
 
48
- This single install also brings in `@salesforce/agentforce-conversation-client` (the underlying SDK) automatically.
24
+ ## 3) Use component in app layout
49
25
 
50
- ## 3. Use the shared wrapper
51
-
52
- Use the `AgentforceConversationClient` React component. It resolves auth automatically:
53
-
54
- - **Dev (localhost)**: fetches `frontdoorUrl` from `/__lo/frontdoor`
55
- - **Prod (hosted in org)**: uses `salesforceOrigin` from `window.location.origin`
56
-
57
- ## 4. Embed in the layout
58
-
59
- Render `<AgentforceConversationClient />` in the app layout so the chat client loads globally. Keep it alongside the existing layout (do not replace the page shell). **Always pass `agentId`.**
26
+ Render a single instance in the shared layout (alongside `<Outlet />`).
60
27
 
61
28
  ```tsx
62
29
  import { Outlet } from "react-router";
@@ -66,101 +33,59 @@ export default function AppLayout() {
66
33
  return (
67
34
  <>
68
35
  <Outlet />
69
- <AgentforceConversationClient
70
- agentforceClientConfig={{
71
- agentId: "0Xx000000000000AAA",
72
- }}
73
- />
36
+ <AgentforceConversationClient agentId="<USER_AGENT_ID_18_CHAR_0Xx...>" />
74
37
  </>
75
38
  );
76
39
  }
77
40
  ```
78
41
 
79
- Replace `"0Xx000000000000AAA"` with the agent ID provided by the user.
80
-
81
- ## 5. Configure rendering and theming (optional)
82
-
83
- Pass additional options via the `agentforceClientConfig` prop:
84
-
85
- | Option | Purpose | Required |
86
- | ---------------------------------- | -------------------------------------------------------------------------------------------------------- | -------- |
87
- | `agentId` | The agent to load — **required, will not work without it** | **Yes** |
88
- | `renderingConfig.mode` | `"floating"` (default) or `"inline"` | No |
89
- | `renderingConfig.width` / `height` | Inline dimensions (number for px, string for CSS) | No |
90
- | `renderingConfig.headerEnabled` | Show or hide the chat header bar. Defaults to `false` (header hidden). Set to `true` to show the header. | No |
91
- | `styleTokens` | Theme colors and style overrides | No |
92
-
93
- See [embed-examples.md](docs/embed-examples.md) for complete examples of each mode.
42
+ ## 4) Flat props only
94
43
 
95
- ## 6. Validate prerequisites
44
+ This package uses a flat prop API. Use these props directly on the component:
96
45
 
97
- Before the conversation client will work, the user must verify all of the following in their Salesforce org:
46
+ - `agentId` (required in practice)
47
+ - `inline` (`true` = inline, omitted/false = floating)
48
+ - `headerEnabled` (defaults to true for floating; actual use case for inline mode)
49
+ - `width`, `height` (actual work is when inline mode is true)
50
+ - `styleTokens`
51
+ - `salesforceOrigin`, `frontdoorUrl`
98
52
 
99
- 1. **Agent is active:** The org must have the agent referenced by `agentId` in an **Active** state and deployed to the correct channel (**Setup → Agents**).
100
- 2. **Trusted domains:** The org must allow `localhost:<PORT>` in **Trusted Domains for Inline Frames** (**Setup → Session Settings → Trusted Domains for Inline Frames**). Required for local development.
101
- 3. **First-party cookies disabled:** **"Require first party use of Salesforce cookies"** must be **unchecked/disabled** in **Setup → My Domain**. If this setting is enabled, the embedded conversation client will fail to authenticate and will not load.
102
-
103
- ## Quick reference: rendering modes
104
-
105
- ### Floating (default rendering mode)
106
-
107
- A persistent chat widget overlay pinned to the bottom-right corner. Floating is the default rendering mode — but `agentId` is still required.
53
+ ## 5) Inline mode example
108
54
 
109
55
  ```tsx
110
56
  <AgentforceConversationClient
111
- agentforceClientConfig={{
112
- agentId: "0Xx000000000000AAA",
113
- }}
57
+ agentId="<USER_AGENT_ID_18_CHAR_0Xx...>"
58
+ inline
59
+ width={420}
60
+ height={600}
114
61
  />
115
62
  ```
116
63
 
117
- ### Inline
118
-
119
- The chat renders within the page layout at a specific size.
64
+ ## 6) Theming example
120
65
 
121
66
  ```tsx
122
67
  <AgentforceConversationClient
123
- agentforceClientConfig={{
124
- agentId: "0Xx000000000000AAA",
125
- renderingConfig: { mode: "inline", width: 420, height: 600 },
68
+ agentId="<USER_AGENT_ID_18_CHAR_0Xx...>"
69
+ styleTokens={{
70
+ headerBlockBackground: "#0176d3",
71
+ headerBlockTextColor: "#ffffff",
126
72
  }}
127
73
  />
128
74
  ```
129
75
 
130
- ### Inline with header
131
-
132
- By default the header is hidden. To show the chat header bar (with agent name and controls), set `headerEnabled: true`:
76
+ ## 7) Do not do this
133
77
 
134
- ```tsx
135
- <AgentforceConversationClient
136
- agentforceClientConfig={{
137
- agentId: "0Xx000000000000AAA",
138
- renderingConfig: {
139
- mode: "inline",
140
- width: 420,
141
- height: 600
142
- headerEnabled: true,
143
- },
144
- }}
145
- />
146
- ```
78
+ - Do not create custom chat UIs.
79
+ - Do not use third-party chat libraries.
80
+ - Do not call `embedAgentforceClient` directly from @salesforce/agentforce-conversation-client.
147
81
 
148
- ### Theming
82
+ ## 8) Prerequisites
149
83
 
150
- Use `styleTokens` to customize the chat appearance.
84
+ Ensure org setup is valid:
151
85
 
152
- ```tsx
153
- <AgentforceConversationClient
154
- agentforceClientConfig={{
155
- agentId: "0Xx000000000000AAA",
156
- styleTokens: {
157
- headerBlockBackground: "#0176d3",
158
- headerBlockTextColor: "#ffffff",
159
- messageBlockInboundColor: "#0176d3",
160
- },
161
- }}
162
- />
163
- ```
86
+ 1. Agent is active and deployed to the correct channel.
87
+ 2. `localhost:<PORT>` is trusted for inline frames in local dev.
88
+ 3. First-party Salesforce cookie restriction is disabled when required for embedding.
164
89
 
165
90
  ## Troubleshooting
166
91
 
@@ -1,90 +1,60 @@
1
- # Embed examples
1
+ # Embed examples (flat-prop API)
2
2
 
3
- Detailed examples for configuring the Agentforce Conversation Client. All examples use the `AgentforceConversationClient` React component; the underlying `embedAgentforceClient` API accepts the same `agentforceClientConfig` shape.
3
+ All examples use `AgentforceConversationClient` with flat props.
4
4
 
5
- > **Important:** Every example requires an `agentId`. The component will not render without one. There is no default agent. Replace `"0Xx000000000000AAA"` in every example with the user's actual agent ID.
5
+ > `agentId` is required in practice. Use this placeholder pattern in examples: `"<USER_AGENT_ID_18_CHAR_0Xx...>"`.
6
6
 
7
7
  ---
8
8
 
9
- ## Floating mode (default rendering mode)
10
-
11
- A floating chat widget appears in the bottom-right corner. It starts minimized and expands when the user clicks it. Floating is the default rendering mode — no `renderingConfig` is needed — but `agentId` is always required.
12
-
13
- ### Minimal
9
+ ## Floating mode (default)
14
10
 
15
11
  ```tsx
16
- <AgentforceConversationClient
17
- agentforceClientConfig={{
18
- agentId: "0Xx000000000000AAA",
19
- }}
20
- />
12
+ <AgentforceConversationClient agentId="<USER_AGENT_ID_18_CHAR_0Xx...>" />
21
13
  ```
22
14
 
23
- ### Explicit floating
15
+ ## Explicit floating
24
16
 
25
17
  ```tsx
26
- <AgentforceConversationClient
27
- agentforceClientConfig={{
28
- agentId: "0Xx000000000000AAA",
29
- renderingConfig: { mode: "floating" },
30
- }}
31
- />
32
- ```
33
-
34
- ### Floating with theming
35
-
36
- ```tsx
37
- <AgentforceConversationClient
38
- agentforceClientConfig={{
39
- agentId: "0Xx000000000000AAA",
40
- renderingConfig: { mode: "floating" },
41
- styleTokens: {
42
- headerBlockBackground: "#032D60",
43
- headerBlockTextColor: "#ffffff",
44
- },
45
- }}
46
- />
18
+ <AgentforceConversationClient agentId="<USER_AGENT_ID_18_CHAR_0Xx...>" />
47
19
  ```
48
20
 
49
21
  ---
50
22
 
51
23
  ## Inline mode
52
24
 
53
- The chat renders inside the parent container at a specific size. Use this when the chat should be part of the page layout rather than an overlay.
54
-
55
- ### Fixed pixel dimensions
25
+ ### Fixed pixels
56
26
 
57
27
  ```tsx
58
28
  <AgentforceConversationClient
59
- agentforceClientConfig={{
60
- agentId: "0Xx000000000000AAA",
61
- renderingConfig: { mode: "inline", width: 420, height: 600 },
62
- }}
29
+ agentId="<USER_AGENT_ID_18_CHAR_0Xx...>"
30
+ inline
31
+ width={420}
32
+ height={600}
63
33
  />
64
34
  ```
65
35
 
66
- ### CSS string dimensions
36
+ ### CSS string size
67
37
 
68
38
  ```tsx
69
39
  <AgentforceConversationClient
70
- agentforceClientConfig={{
71
- agentId: "0Xx000000000000AAA",
72
- renderingConfig: { mode: "inline", width: "100%", height: "80vh" },
73
- }}
40
+ agentId="<USER_AGENT_ID_18_CHAR_0Xx...>"
41
+ inline
42
+ width="100%"
43
+ height="80vh"
74
44
  />
75
45
  ```
76
46
 
77
- ### Inline filling a sidebar
47
+ ### Inline sidebar
78
48
 
79
49
  ```tsx
80
50
  <div style={{ display: "flex", height: "100vh" }}>
81
51
  <main style={{ flex: 1 }}>{/* App content */}</main>
82
52
  <aside style={{ width: 400 }}>
83
53
  <AgentforceConversationClient
84
- agentforceClientConfig={{
85
- agentId: "0Xx000000000000AAA",
86
- renderingConfig: { mode: "inline", width: "100%", height: "100%" },
87
- }}
54
+ agentId="<USER_AGENT_ID_18_CHAR_0Xx...>"
55
+ inline
56
+ width="100%"
57
+ height="100%"
88
58
  />
89
59
  </aside>
90
60
  </div>
@@ -94,58 +64,37 @@ The chat renders inside the parent container at a specific size. Use this when t
94
64
 
95
65
  ## Theming
96
66
 
97
- Use `styleTokens` to customize colors. Tokens are passed directly to the Agentforce client.
98
-
99
- ### Brand-colored header
100
-
101
67
  ```tsx
102
68
  <AgentforceConversationClient
103
- agentforceClientConfig={{
104
- agentId: "0Xx000000000000AAA",
105
- styleTokens: {
106
- headerBlockBackground: "#0176d3",
107
- headerBlockTextColor: "#ffffff",
108
- },
69
+ agentId="<USER_AGENT_ID_18_CHAR_0Xx...>"
70
+ styleTokens={{
71
+ headerBlockBackground: "#0176d3",
72
+ headerBlockTextColor: "#ffffff",
73
+ messageBlockInboundColor: "#0176d3",
109
74
  }}
110
75
  />
111
76
  ```
112
77
 
113
- ### Full theme example
114
-
115
- ```tsx
116
- <AgentforceConversationClient
117
- agentforceClientConfig={{
118
- agentId: "0Xx000000000000AAA",
119
- styleTokens: {
120
- headerBlockBackground: "#0176d3",
121
- headerBlockTextColor: "#ffffff",
122
- messageBlockInboundColor: "#0176d3",
123
- },
124
- }}
125
- />
126
- ```
78
+ ---
127
79
 
128
- ### Dark theme example
80
+ ## Inline with header enabled
129
81
 
130
82
  ```tsx
131
83
  <AgentforceConversationClient
132
- agentforceClientConfig={{
133
- agentId: "0Xx000000000000AAA",
134
- styleTokens: {
135
- headerBlockBackground: "#1a1a2e",
136
- headerBlockTextColor: "#e0e0e0",
137
- messageBlockInboundColor: "#16213e",
138
- },
139
- }}
84
+ agentId="<USER_AGENT_ID_18_CHAR_0Xx...>"
85
+ inline
86
+ width={420}
87
+ height={600}
88
+ headerEnabled
140
89
  />
141
90
  ```
142
91
 
92
+ `headerEnabled` defaults to `true` for floating mode, and you can use it in inline mode to add/remove the header.
93
+
143
94
  ---
144
95
 
145
96
  ## Full layout example
146
97
 
147
- Shows the recommended pattern: agent ID passed directly, single render in the app layout.
148
-
149
98
  ```tsx
150
99
  import { Outlet } from "react-router";
151
100
  import { AgentforceConversationClient } from "@salesforce/webapp-template-feature-react-agentforce-conversation-client-experimental";
@@ -155,38 +104,13 @@ export default function AppLayout() {
155
104
  <>
156
105
  <Outlet />
157
106
  <AgentforceConversationClient
158
- agentforceClientConfig={{
159
- agentId: "0Xx000000000000AAA",
160
- styleTokens: {
161
- headerBlockBackground: "#0176d3",
162
- headerBlockTextColor: "#ffffff",
163
- },
107
+ agentId="<USER_AGENT_ID_18_CHAR_0Xx...>"
108
+ styleTokens={{
109
+ headerBlockBackground: "#0176d3",
110
+ headerBlockTextColor: "#ffffff",
164
111
  }}
165
112
  />
166
113
  </>
167
114
  );
168
115
  }
169
116
  ```
170
-
171
- ---
172
-
173
- ## Using the low-level `embedAgentforceClient` API
174
-
175
- The React component wraps `embedAgentforceClient`. If you need the raw API (e.g. in a non-React context), the config shape is the same — `agentId` is still required:
176
-
177
- ```ts
178
- import { embedAgentforceClient } from "@salesforce/agentforce-conversation-client";
179
-
180
- const { loApp, chatClientComponent } = embedAgentforceClient({
181
- container: "#agentforce-container",
182
- salesforceOrigin: "https://myorg.my.salesforce.com",
183
- agentforceClientConfig: {
184
- agentId: "0Xx000000000000AAA",
185
- renderingConfig: { mode: "floating" },
186
- styleTokens: {
187
- headerBlockBackground: "#0176d3",
188
- headerBlockTextColor: "#ffffff",
189
- },
190
- },
191
- });
192
- ```
@@ -4,48 +4,57 @@ Common issues when using the Agentforce Conversation Client.
4
4
 
5
5
  ---
6
6
 
7
- ### Chat widget does not appear
7
+ ### Component throws "requires agentId"
8
8
 
9
- **Cause:** Missing or invalid `agentId`. The component will not render anything without a valid agent ID.
9
+ **Cause:** `agentId` was not passed.
10
10
 
11
- **Solution:**
11
+ **Solution:** Pass `agentId` directly as a flat prop:
12
+
13
+ ```tsx
14
+ <AgentforceConversationClient agentId="0Xx000000000000AAA" />
15
+ ```
12
16
 
13
- 1. Verify `agentId` is passed in `agentforceClientConfig` — it is required
14
- 2. Confirm the ID is correct (18-character Salesforce record ID, starts with `0Xx`)
15
- 3. Check that the agent exists and is **Active** in **Setup → Agents**
17
+ ---
16
18
 
17
- ### Chat loads but shows "agent not available"
19
+ ### Chat widget does not appear
18
20
 
19
- **Cause:** The agent exists but is not deployed or is inactive.
21
+ **Cause:** Invalid `agentId` or inactive agent.
20
22
 
21
23
  **Solution:**
22
24
 
23
- 1. In **Setup Agents**, ensure the agent status is **Active**
24
- 2. Verify the agent is deployed to the correct channel
25
+ 1. Confirm the id is correct (18-char Salesforce id, starts with `0Xx`).
26
+ 2. Ensure the agent is Active in **Setup Agents**.
27
+ 3. Verify the agent is deployed to the target channel.
28
+
29
+ ---
25
30
 
26
31
  ### Authentication error on localhost
27
32
 
28
- **Cause:** `localhost:<PORT>` is not in the org's trusted domains for inline frames.
33
+ **Cause:** `localhost:<PORT>` is not trusted for inline frames.
29
34
 
30
35
  **Solution:**
31
36
 
32
- 1. Go to **Setup → Session Settings → Trusted Domains for Inline Frames**
33
- 2. Add `localhost:<PORT>` (e.g. `localhost:3000`)
34
- 3. Restart the dev server
37
+ 1. Go to **Setup → Session Settings → Trusted Domains for Inline Frames**.
38
+ 2. Add `localhost:<PORT>` (example: `localhost:3000`).
39
+ 3. Restart the dev server.
40
+
41
+ ---
35
42
 
36
- ### Chat fails to authenticate / blank iframe
43
+ ### Blank iframe / auth session issues
37
44
 
38
- **Cause:** "Require first party use of Salesforce cookies" is enabled in the org's session settings. This blocks the embedded client from establishing a session.
45
+ **Cause:** First-party Salesforce cookie restriction is enabled.
39
46
 
40
47
  **Solution:**
41
48
 
42
- 1. Go to **Setup → Session Settings**
43
- 2. Find **"Require first party use of Salesforce cookies"**
44
- 3. **Uncheck / disable** this setting
45
- 4. Save and reload the app
49
+ 1. Go to **Setup → Session Settings**.
50
+ 2. Find **Require first party use of Salesforce cookies**.
51
+ 3. Disable it.
52
+ 4. Save and reload.
53
+
54
+ ---
46
55
 
47
56
  ### Multiple chat widgets appear
48
57
 
49
- **Cause:** `AgentforceConversationClient` is rendered in multiple places.
58
+ **Cause:** Component rendered more than once.
50
59
 
51
- **Solution:** Render it once in the app layout, not on individual pages. The component uses a singleton pattern — only one instance should exist per window.
60
+ **Solution:** Render one instance in app layout only.
package/dist/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.103.6](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.103.5...v1.103.6) (2026-03-17)
7
+
8
+ **Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
9
+
10
+
11
+
12
+
13
+
14
+ ## [1.103.5](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.103.4...v1.103.5) (2026-03-17)
15
+
16
+ **Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
17
+
18
+
19
+
20
+
21
+
6
22
  ## [1.103.4](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.103.3...v1.103.4) (2026-03-17)
7
23
 
8
24
  **Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/webapp-template-base-sfdx-project-experimental",
3
- "version": "1.103.4",
3
+ "version": "1.103.6",
4
4
  "description": "Base SFDX project template",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "publishConfig": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/webapp-template-feature-react-authentication-experimental",
3
- "version": "1.103.4",
3
+ "version": "1.103.6",
4
4
  "description": "Authentication feature for web applications",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "",
@@ -16,7 +16,7 @@
16
16
  "clean": "rm -rf dist"
17
17
  },
18
18
  "devDependencies": {
19
- "@salesforce/webapp-experimental": "^1.103.4",
19
+ "@salesforce/webapp-experimental": "^1.103.6",
20
20
  "@tanstack/react-form": "^1.27.7",
21
21
  "@types/react": "^19.2.7",
22
22
  "@types/react-dom": "^19.2.3",