@salesforce/ui-bundle-template-app-react-template-b2x 12.3.0 → 12.3.2

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/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
+ ## [12.3.2](https://github.com/salesforce-experience-platform-emu/webapps/compare/v12.3.1...v12.3.2) (2026-08-31)
7
+
8
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
9
+
10
+
11
+
12
+
13
+
14
+ ## [12.3.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v12.3.0...v12.3.1) (2026-08-31)
15
+
16
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
17
+
18
+
19
+
20
+
21
+
6
22
  ## [12.3.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v12.2.0...v12.3.0) (2026-08-29)
7
23
 
8
24
  **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
@@ -7,6 +7,7 @@
7
7
  "node": ">=22"
8
8
  },
9
9
  "scripts": {
10
+ "postinstall": "patch-package",
10
11
  "dev": "vite",
11
12
  "dev:design": "vite --mode design",
12
13
  "build": "tsc -b && vite build",
@@ -18,8 +19,8 @@
18
19
  "graphql:schema": "node scripts/get-graphql-schema.mjs"
19
20
  },
20
21
  "dependencies": {
21
- "@salesforce/platform-sdk": "^12.3.0",
22
- "@salesforce/ui-bundle": "^12.3.0",
22
+ "@salesforce/platform-sdk": "^12.3.2",
23
+ "@salesforce/ui-bundle": "^12.3.2",
23
24
  "@tailwindcss/vite": "^4.1.17",
24
25
  "class-variance-authority": "^0.7.1",
25
26
  "clsx": "^2.1.1",
@@ -46,8 +47,8 @@
46
47
  "@graphql-eslint/eslint-plugin": "^4.1.0",
47
48
  "@graphql-tools/utils": "^11.0.0",
48
49
  "@playwright/test": "^1.49.0",
49
- "@salesforce/graphiti": "^12.3.0",
50
- "@salesforce/vite-plugin-ui-bundle": "^12.3.0",
50
+ "@salesforce/graphiti": "^12.3.2",
51
+ "@salesforce/vite-plugin-ui-bundle": "^12.3.2",
51
52
  "@testing-library/jest-dom": "^6.6.3",
52
53
  "@testing-library/react": "^16.1.0",
53
54
  "@testing-library/user-event": "^14.5.2",
@@ -64,6 +65,7 @@
64
65
  "graphql": "^16.11.0",
65
66
  "graphql-codegen-typescript-operation-types": "^2.0.2",
66
67
  "jsdom": "^25.0.1",
68
+ "patch-package": "^8.0.1",
67
69
  "serve": "^14.2.5",
68
70
  "typescript": "~5.9.3",
69
71
  "typescript-eslint": "^8.46.4",
@@ -0,0 +1,45 @@
1
+ diff --git a/node_modules/aria-hidden/dist/es2015/index.js b/node_modules/aria-hidden/dist/es2015/index.js
2
+ index 00aa2ea..1d2f61e 100644
3
+ --- a/node_modules/aria-hidden/dist/es2015/index.js
4
+ +++ b/node_modules/aria-hidden/dist/es2015/index.js
5
+ @@ -131,7 +131,9 @@ export var hideOthers = function (originalTarget, parentNode, markerName) {
6
+ // we should not hide aria-live elements - https://github.com/theKashey/aria-hidden/issues/10
7
+ // and script elements, as they have no impact on accessibility.
8
+ targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live], script')));
9
+ - return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');
10
+ + return supportsInert()
11
+ + ? inertOthers(targets, activeParentNode, markerName)
12
+ + : applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');
13
+ };
14
+ /**
15
+ * Marks everything except given node(or nodes) as inert
16
+ diff --git a/node_modules/aria-hidden/dist/es2019/index.js b/node_modules/aria-hidden/dist/es2019/index.js
17
+ index 17404da..a444872 100644
18
+ --- a/node_modules/aria-hidden/dist/es2019/index.js
19
+ +++ b/node_modules/aria-hidden/dist/es2019/index.js
20
+ @@ -126,7 +126,9 @@ export const hideOthers = (originalTarget, parentNode, markerName = 'data-aria-h
21
+ // we should not hide aria-live elements - https://github.com/theKashey/aria-hidden/issues/10
22
+ // and script elements, as they have no impact on accessibility.
23
+ targets.push(...Array.from(activeParentNode.querySelectorAll('[aria-live], script')));
24
+ - return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');
25
+ + return supportsInert()
26
+ + ? inertOthers(targets, activeParentNode, markerName)
27
+ + : applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');
28
+ };
29
+ /**
30
+ * Marks everything except given node(or nodes) as inert
31
+ diff --git a/node_modules/aria-hidden/dist/es5/index.js b/node_modules/aria-hidden/dist/es5/index.js
32
+ index 1b86f56..863f83e 100644
33
+ --- a/node_modules/aria-hidden/dist/es5/index.js
34
+ +++ b/node_modules/aria-hidden/dist/es5/index.js
35
+ @@ -134,7 +134,9 @@ var hideOthers = function (originalTarget, parentNode, markerName) {
36
+ // we should not hide aria-live elements - https://github.com/theKashey/aria-hidden/issues/10
37
+ // and script elements, as they have no impact on accessibility.
38
+ targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live], script')));
39
+ - return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');
40
+ + return supportsInert()
41
+ + ? inertOthers(targets, activeParentNode, markerName)
42
+ + : applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');
43
+ };
44
+ exports.hideOthers = hideOthers;
45
+ /**
@@ -1,6 +1,6 @@
1
1
  import { Outlet, Link, useLocation } from "react-router";
2
2
  import { getAllRoutes } from "./router-utils";
3
- import { useState } from "react";
3
+ import { useId, useState } from "react";
4
4
  import { AuthMenu } from "./features/authentication/menu/AuthMenu";
5
5
  import { Button } from "./components/ui/button";
6
6
  import CustomerWebClientChat from "./components/CustomerWebClientChat";
@@ -8,6 +8,7 @@ import CustomerWebClientChat from "./components/CustomerWebClientChat";
8
8
  export default function AppLayout() {
9
9
  const [isOpen, setIsOpen] = useState(false);
10
10
  const location = useLocation();
11
+ const navId = useId();
11
12
 
12
13
  const isActive = (path: string) => location.pathname === path;
13
14
 
@@ -44,8 +45,12 @@ export default function AppLayout() {
44
45
  onClick={toggleMenu}
45
46
  aria-label="Toggle menu"
46
47
  aria-expanded={isOpen}
48
+ aria-controls={navId}
47
49
  >
48
- <div className="w-6 h-6 flex flex-col justify-center space-y-1.5">
50
+ <div
51
+ aria-hidden="true"
52
+ className="w-6 h-6 flex flex-col justify-center space-y-1.5"
53
+ >
49
54
  <span
50
55
  className={`block h-0.5 w-6 bg-current transition-all ${
51
56
  isOpen ? "rotate-45 translate-y-2" : ""
@@ -63,8 +68,8 @@ export default function AppLayout() {
63
68
  </Button>
64
69
  </div>
65
70
  </div>
66
- {isOpen && (
67
- <div className="pb-4">
71
+ <div id={navId} className="pb-4" hidden={!isOpen}>
72
+ {isOpen && (
68
73
  <div className="flex flex-col space-y-1">
69
74
  {navigationRoutes.map((item) => (
70
75
  <Button
@@ -79,8 +84,8 @@ export default function AppLayout() {
79
84
  </Button>
80
85
  ))}
81
86
  </div>
82
- </div>
83
- )}
87
+ )}
88
+ </div>
84
89
  </div>
85
90
  </nav>
86
91
  <Outlet />
@@ -253,7 +253,7 @@ function AccountDetailError({ onBack }: { onBack: () => void }) {
253
253
  return (
254
254
  <>
255
255
  <Alert variant="destructive" role="alert">
256
- <AlertCircle />
256
+ <AlertCircle aria-hidden="true" />
257
257
  <AlertTitle>
258
258
  <h2>Failed to load account</h2>
259
259
  </AlertTitle>
@@ -263,7 +263,7 @@ function AccountDetailError({ onBack }: { onBack: () => void }) {
263
263
  </Alert>
264
264
  <div className="mt-4 flex gap-3">
265
265
  <Button variant="outline" onClick={onBack}>
266
- ← Back
266
+ <span aria-hidden="true">←</span> Back
267
267
  </Button>
268
268
  <Button variant="outline" onClick={() => window.location.reload()}>
269
269
  Retry
@@ -277,13 +277,13 @@ function AccountDetailNotFound({ onBack }: { onBack: () => void }) {
277
277
  return (
278
278
  <Card>
279
279
  <CardContent className="flex flex-col items-center justify-center py-16 text-center">
280
- <FileQuestion className="size-12 text-muted-foreground mb-4" />
280
+ <FileQuestion aria-hidden="true" className="size-12 text-muted-foreground mb-4" />
281
281
  <h2 className="text-lg font-semibold mb-1">Account not found</h2>
282
282
  <p className="text-sm text-muted-foreground mb-6">
283
283
  The account you're looking for doesn't exist or may have been deleted.
284
284
  </p>
285
285
  <Button variant="outline" onClick={onBack}>
286
- ← Go back
286
+ <span aria-hidden="true">←</span> Go back
287
287
  </Button>
288
288
  </CardContent>
289
289
  </Card>
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@salesforce/ui-bundle-template-base-sfdx-project",
3
- "version": "12.3.0",
3
+ "version": "12.3.2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@salesforce/ui-bundle-template-base-sfdx-project",
9
- "version": "12.3.0",
9
+ "version": "12.3.2",
10
10
  "license": "SEE LICENSE IN LICENSE.txt",
11
11
  "dependencies": {
12
12
  "fast-xml-parser": "^5.9.3",
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/ui-bundle-template-base-sfdx-project",
3
- "version": "12.3.0",
3
+ "version": "12.3.2",
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/ui-bundle-template-app-react-template-b2x",
3
- "version": "12.3.0",
3
+ "version": "12.3.2",
4
4
  "description": "Salesforce React external app template",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "",