@salesforce/ui-bundle-template-app-react-template-b2e 12.3.7 → 12.3.9
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 +16 -0
- package/dist/force-app/main/default/uiBundles/reactinternalapp/package.json +4 -4
- package/dist/force-app/main/default/uiBundles/reactinternalapp/src/appLayout.tsx +41 -7
- package/dist/force-app/main/default/uiBundles/reactinternalapp/src/pages/AccountObjectDetailPage.tsx +39 -29
- package/dist/force-app/main/default/uiBundles/reactinternalapp/src/pages/Home.tsx +7 -2
- package/dist/force-app/main/default/uiBundles/reactinternalapp/src/utils/accountFields.ts +0 -9
- package/dist/force-app/main/default/uiBundles/reactinternalapp/tsconfig.tsbuildinfo +1 -1
- package/dist/package-lock.json +2 -2
- package/dist/package.json +1 -1
- package/package.json +8 -3
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.9](https://github.com/salesforce-experience-platform-emu/webapps/compare/v12.3.8...v12.3.9) (2026-09-02)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [12.3.8](https://github.com/salesforce-experience-platform-emu/webapps/compare/v12.3.7...v12.3.8) (2026-09-01)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## [12.3.7](https://github.com/salesforce-experience-platform-emu/webapps/compare/v12.3.6...v12.3.7) (2026-09-01)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"graphql:schema": "node scripts/get-graphql-schema.mjs"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@salesforce/platform-sdk": "^12.3.
|
|
23
|
-
"@salesforce/ui-bundle": "^12.3.
|
|
22
|
+
"@salesforce/platform-sdk": "^12.3.9",
|
|
23
|
+
"@salesforce/ui-bundle": "^12.3.9",
|
|
24
24
|
"@tailwindcss/vite": "^4.1.17",
|
|
25
25
|
"class-variance-authority": "^0.7.1",
|
|
26
26
|
"clsx": "^2.1.1",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"@graphql-eslint/eslint-plugin": "^4.1.0",
|
|
47
47
|
"@graphql-tools/utils": "^11.0.0",
|
|
48
48
|
"@playwright/test": "^1.49.0",
|
|
49
|
-
"@salesforce/graphiti": "^12.3.
|
|
50
|
-
"@salesforce/vite-plugin-ui-bundle": "^12.3.
|
|
49
|
+
"@salesforce/graphiti": "^12.3.9",
|
|
50
|
+
"@salesforce/vite-plugin-ui-bundle": "^12.3.9",
|
|
51
51
|
"@testing-library/jest-dom": "^6.6.3",
|
|
52
52
|
"@testing-library/react": "^16.1.0",
|
|
53
53
|
"@testing-library/user-event": "^14.5.2",
|
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
import { AgentforceConversationClient } from "./components/AgentforceConversationClient";
|
|
2
2
|
import { Outlet, Link, useLocation } from "react-router";
|
|
3
3
|
import { getAllRoutes } from "./router-utils";
|
|
4
|
-
import { useState } from "react";
|
|
4
|
+
import { useEffect, useId, useRef, useState } from "react";
|
|
5
5
|
|
|
6
6
|
export default function AppLayout() {
|
|
7
7
|
const [isOpen, setIsOpen] = useState(false);
|
|
8
8
|
const location = useLocation();
|
|
9
|
+
const navId = useId();
|
|
10
|
+
const outletWrapperRef = useRef<HTMLDivElement>(null);
|
|
11
|
+
const previousPathname = useRef<string | null>(null);
|
|
12
|
+
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
if (previousPathname.current !== null && previousPathname.current !== location.pathname) {
|
|
15
|
+
const wrapper = outletWrapperRef.current;
|
|
16
|
+
const target = wrapper?.querySelector<HTMLElement>("h1, main, [role='main']") ?? wrapper;
|
|
17
|
+
if (target) {
|
|
18
|
+
if (!target.hasAttribute("tabindex")) target.setAttribute("tabindex", "-1");
|
|
19
|
+
target.focus();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
previousPathname.current = location.pathname;
|
|
23
|
+
}, [location.pathname]);
|
|
9
24
|
|
|
10
25
|
const isActive = (path: string) => location.pathname === path;
|
|
11
26
|
|
|
@@ -28,6 +43,20 @@ export default function AppLayout() {
|
|
|
28
43
|
|
|
29
44
|
return (
|
|
30
45
|
<>
|
|
46
|
+
<a
|
|
47
|
+
href="#main-content"
|
|
48
|
+
onClick={(e) => {
|
|
49
|
+
e.preventDefault();
|
|
50
|
+
const content = outletWrapperRef.current;
|
|
51
|
+
if (content) {
|
|
52
|
+
if (!content.hasAttribute("tabindex")) content.setAttribute("tabindex", "-1");
|
|
53
|
+
content.focus();
|
|
54
|
+
}
|
|
55
|
+
}}
|
|
56
|
+
className="sr-only focus:not-sr-only focus:absolute focus:z-50 focus:top-2 focus:left-2 focus:rounded-md focus:bg-white focus:px-4 focus:py-2 focus:text-gray-900 focus:shadow focus:ring-2 focus:ring-gray-900"
|
|
57
|
+
>
|
|
58
|
+
Skip to main content
|
|
59
|
+
</a>
|
|
31
60
|
<nav className="bg-white border-b border-gray-200">
|
|
32
61
|
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
|
33
62
|
<div className="flex justify-between items-center h-16">
|
|
@@ -38,8 +67,10 @@ export default function AppLayout() {
|
|
|
38
67
|
onClick={toggleMenu}
|
|
39
68
|
className="p-2 rounded-md text-gray-700 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"
|
|
40
69
|
aria-label="Toggle menu"
|
|
70
|
+
aria-expanded={isOpen}
|
|
71
|
+
aria-controls={navId}
|
|
41
72
|
>
|
|
42
|
-
<div className="w-6 h-6 flex flex-col justify-center space-y-1.5">
|
|
73
|
+
<div aria-hidden="true" className="w-6 h-6 flex flex-col justify-center space-y-1.5">
|
|
43
74
|
<span
|
|
44
75
|
className={`block h-0.5 w-6 bg-current transition-all ${
|
|
45
76
|
isOpen ? "rotate-45 translate-y-2" : ""
|
|
@@ -56,14 +87,15 @@ export default function AppLayout() {
|
|
|
56
87
|
</div>
|
|
57
88
|
</button>
|
|
58
89
|
</div>
|
|
59
|
-
{
|
|
60
|
-
|
|
90
|
+
<div id={navId} className="pb-4" hidden={!isOpen}>
|
|
91
|
+
{isOpen && (
|
|
61
92
|
<div className="flex flex-col space-y-2">
|
|
62
93
|
{navigationRoutes.map((item) => (
|
|
63
94
|
<Link
|
|
64
95
|
key={item.path}
|
|
65
96
|
to={item.path}
|
|
66
97
|
onClick={() => setIsOpen(false)}
|
|
98
|
+
aria-current={isActive(item.path) ? "page" : undefined}
|
|
67
99
|
className={`px-3 py-2 rounded-md text-sm font-medium transition-colors ${
|
|
68
100
|
isActive(item.path)
|
|
69
101
|
? "bg-blue-100 text-blue-700"
|
|
@@ -74,11 +106,13 @@ export default function AppLayout() {
|
|
|
74
106
|
</Link>
|
|
75
107
|
))}
|
|
76
108
|
</div>
|
|
77
|
-
|
|
78
|
-
|
|
109
|
+
)}
|
|
110
|
+
</div>
|
|
79
111
|
</div>
|
|
80
112
|
</nav>
|
|
81
|
-
<
|
|
113
|
+
<div id="main-content" ref={outletWrapperRef}>
|
|
114
|
+
<Outlet />
|
|
115
|
+
</div>
|
|
82
116
|
<AgentforceConversationClient agentId="<USER_AGENT_ID_18_CHAR_0Xx...>" />
|
|
83
117
|
</>
|
|
84
118
|
);
|
package/dist/force-app/main/default/uiBundles/reactinternalapp/src/pages/AccountObjectDetailPage.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useState } from "react";
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
2
|
import { useParams, useNavigate } from "react-router";
|
|
3
3
|
import { createDataSDK } from "@salesforce/platform-sdk";
|
|
4
4
|
import { AlertCircle, ChevronDown, ChevronRight, FileQuestion } from "lucide-react";
|
|
@@ -6,7 +6,7 @@ import GET_ACCOUNT_DETAIL from "../api/account/query/getAccountDetail.graphql?ra
|
|
|
6
6
|
import { Alert, AlertTitle, AlertDescription } from "../components/ui/alert";
|
|
7
7
|
import { Button } from "../components/ui/button";
|
|
8
8
|
import { Card, CardContent } from "../components/ui/card";
|
|
9
|
-
import { fieldValue, getAddressFieldLines
|
|
9
|
+
import { fieldValue, getAddressFieldLines } from "../utils/accountFields";
|
|
10
10
|
import {
|
|
11
11
|
Collapsible,
|
|
12
12
|
CollapsibleTrigger,
|
|
@@ -83,8 +83,20 @@ export default function AccountObjectDetail() {
|
|
|
83
83
|
error,
|
|
84
84
|
} = useAsyncData(() => fetchAccountDetail(recordId!), [recordId]);
|
|
85
85
|
|
|
86
|
+
const pageTitle = loading
|
|
87
|
+
? "Loading Account | MyApp"
|
|
88
|
+
: error
|
|
89
|
+
? "Error | MyApp"
|
|
90
|
+
: account
|
|
91
|
+
? `${fieldValue(account.Name) ?? "Account"} | MyApp`
|
|
92
|
+
: "Account Not Found | MyApp";
|
|
93
|
+
|
|
94
|
+
useEffect(() => {
|
|
95
|
+
document.title = pageTitle;
|
|
96
|
+
}, [pageTitle]);
|
|
97
|
+
|
|
86
98
|
return (
|
|
87
|
-
<
|
|
99
|
+
<main className="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
|
|
88
100
|
{/* Loading state */}
|
|
89
101
|
{loading && <AccountDetailSkeleton />}
|
|
90
102
|
|
|
@@ -95,8 +107,8 @@ export default function AccountObjectDetail() {
|
|
|
95
107
|
{!loading && !error && !account && <AccountDetailNotFound onBack={() => navigate(-1)} />}
|
|
96
108
|
|
|
97
109
|
{/* Content */}
|
|
98
|
-
{account && <AccountDetailContent account={account} />}
|
|
99
|
-
</
|
|
110
|
+
{!loading && !error && account && <AccountDetailContent account={account} />}
|
|
111
|
+
</main>
|
|
100
112
|
);
|
|
101
113
|
}
|
|
102
114
|
|
|
@@ -117,17 +129,8 @@ function AccountDetailContent({ account }: { account: AccountNode }) {
|
|
|
117
129
|
country: fieldValue(account.ShippingCountry),
|
|
118
130
|
});
|
|
119
131
|
|
|
120
|
-
const
|
|
121
|
-
const
|
|
122
|
-
fieldValue(account.CreatedDate),
|
|
123
|
-
undefined,
|
|
124
|
-
dateTimeOptions,
|
|
125
|
-
);
|
|
126
|
-
const lastModifiedDate = formatDateTimeField(
|
|
127
|
-
fieldValue(account.LastModifiedDate),
|
|
128
|
-
undefined,
|
|
129
|
-
dateTimeOptions,
|
|
130
|
-
);
|
|
132
|
+
const createdDate = fieldValue(account.CreatedDate);
|
|
133
|
+
const lastModifiedDate = fieldValue(account.LastModifiedDate);
|
|
131
134
|
|
|
132
135
|
return (
|
|
133
136
|
<>
|
|
@@ -238,10 +241,16 @@ function Section({ title, children }: { title: string; children: React.ReactNode
|
|
|
238
241
|
const [open, setOpen] = useState(true);
|
|
239
242
|
return (
|
|
240
243
|
<Collapsible open={open} onOpenChange={setOpen}>
|
|
241
|
-
<
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
244
|
+
<h2>
|
|
245
|
+
<CollapsibleTrigger className="flex items-center gap-2 cursor-pointer text-lg font-semibold py-2">
|
|
246
|
+
{open ? (
|
|
247
|
+
<ChevronDown aria-hidden="true" className="size-5" />
|
|
248
|
+
) : (
|
|
249
|
+
<ChevronRight aria-hidden="true" className="size-5" />
|
|
250
|
+
)}
|
|
251
|
+
{title}
|
|
252
|
+
</CollapsibleTrigger>
|
|
253
|
+
</h2>
|
|
245
254
|
<CollapsibleContent>
|
|
246
255
|
<div className="mt-2 space-y-4">{children}</div>
|
|
247
256
|
</CollapsibleContent>
|
|
@@ -253,9 +262,9 @@ function AccountDetailError({ onBack }: { onBack: () => void }) {
|
|
|
253
262
|
return (
|
|
254
263
|
<>
|
|
255
264
|
<Alert variant="destructive" role="alert">
|
|
256
|
-
<AlertCircle />
|
|
265
|
+
<AlertCircle aria-hidden="true" />
|
|
257
266
|
<AlertTitle>
|
|
258
|
-
<
|
|
267
|
+
<h1>Failed to load account</h1>
|
|
259
268
|
</AlertTitle>
|
|
260
269
|
<AlertDescription>
|
|
261
270
|
Something went wrong while loading this account. Please try again later.
|
|
@@ -263,7 +272,7 @@ function AccountDetailError({ onBack }: { onBack: () => void }) {
|
|
|
263
272
|
</Alert>
|
|
264
273
|
<div className="mt-4 flex gap-3">
|
|
265
274
|
<Button variant="outline" onClick={onBack}>
|
|
266
|
-
|
|
275
|
+
<span aria-hidden="true">←</span> Back
|
|
267
276
|
</Button>
|
|
268
277
|
<Button variant="outline" onClick={() => window.location.reload()}>
|
|
269
278
|
Retry
|
|
@@ -275,15 +284,15 @@ function AccountDetailError({ onBack }: { onBack: () => void }) {
|
|
|
275
284
|
|
|
276
285
|
function AccountDetailNotFound({ onBack }: { onBack: () => void }) {
|
|
277
286
|
return (
|
|
278
|
-
<Card>
|
|
287
|
+
<Card role="status">
|
|
279
288
|
<CardContent className="flex flex-col items-center justify-center py-16 text-center">
|
|
280
|
-
<FileQuestion className="size-12 text-muted-foreground mb-4" />
|
|
281
|
-
<
|
|
289
|
+
<FileQuestion aria-hidden="true" className="size-12 text-muted-foreground mb-4" />
|
|
290
|
+
<h1 className="text-lg font-semibold mb-1">Account not found</h1>
|
|
282
291
|
<p className="text-sm text-muted-foreground mb-6">
|
|
283
292
|
The account you're looking for doesn't exist or may have been deleted.
|
|
284
293
|
</p>
|
|
285
294
|
<Button variant="outline" onClick={onBack}>
|
|
286
|
-
|
|
295
|
+
<span aria-hidden="true">←</span> Go back
|
|
287
296
|
</Button>
|
|
288
297
|
</CardContent>
|
|
289
298
|
</Card>
|
|
@@ -292,7 +301,8 @@ function AccountDetailNotFound({ onBack }: { onBack: () => void }) {
|
|
|
292
301
|
|
|
293
302
|
function AccountDetailSkeleton() {
|
|
294
303
|
return (
|
|
295
|
-
|
|
304
|
+
<div role="status" aria-live="polite">
|
|
305
|
+
<span className="sr-only">Loading account…</span>
|
|
296
306
|
<Skeleton className="h-8 w-56 mb-4" />
|
|
297
307
|
|
|
298
308
|
<Card>
|
|
@@ -341,7 +351,7 @@ function AccountDetailSkeleton() {
|
|
|
341
351
|
</div>
|
|
342
352
|
</CardContent>
|
|
343
353
|
</Card>
|
|
344
|
-
|
|
354
|
+
</div>
|
|
345
355
|
);
|
|
346
356
|
}
|
|
347
357
|
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
1
2
|
import { GlobalSearchBox } from "../features/search";
|
|
2
3
|
|
|
3
4
|
export default function HomePage() {
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
document.title = "Home | MyApp";
|
|
7
|
+
}, []);
|
|
8
|
+
|
|
4
9
|
return (
|
|
5
|
-
<
|
|
10
|
+
<main className="max-w-2xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
|
|
6
11
|
<h1 className="text-2xl font-bold mb-6">Home</h1>
|
|
7
12
|
<GlobalSearchBox placeholder="Search accounts, contacts, opportunities..." />
|
|
8
|
-
</
|
|
13
|
+
</main>
|
|
9
14
|
);
|
|
10
15
|
}
|
|
@@ -23,12 +23,3 @@ export function getAddressFieldLines(address: {
|
|
|
23
23
|
if (lines.length === 0) return null;
|
|
24
24
|
return lines;
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
/** Formats an ISO datetime string with `toLocaleString`, or null if absent. */
|
|
28
|
-
export function formatDateTimeField(
|
|
29
|
-
value?: string | null,
|
|
30
|
-
...args: Parameters<Date["toLocaleString"]>
|
|
31
|
-
) {
|
|
32
|
-
if (!value) return null;
|
|
33
|
-
return new Date(value).toLocaleString(...args);
|
|
34
|
-
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["./src/app.tsx","./src/appLayout.tsx","./src/index.ts","./src/navigationMenu.tsx","./src/router-utils.tsx","./src/routes.tsx","./src/api/graphqlClient.ts","./src/components/AgentforceConversationClient.tsx","./src/components/ObjectBreadcrumb.tsx","./src/components/__inherit_AgentforceConversationClient.tsx","./src/components/alerts/status-alert.tsx","./src/components/layouts/card-layout.tsx","./src/components/ui/alert.tsx","./src/components/ui/avatar.tsx","./src/components/ui/badge.tsx","./src/components/ui/breadcrumb.tsx","./src/components/ui/button.tsx","./src/components/ui/calendar.tsx","./src/components/ui/card.tsx","./src/components/ui/checkbox.tsx","./src/components/ui/collapsible.tsx","./src/components/ui/datePicker.tsx","./src/components/ui/dialog.tsx","./src/components/ui/dropdown-menu.tsx","./src/components/ui/field.tsx","./src/components/ui/index.ts","./src/components/ui/input.tsx","./src/components/ui/label.tsx","./src/components/ui/pagination.tsx","./src/components/ui/popover.tsx","./src/components/ui/select.tsx","./src/components/ui/separator.tsx","./src/components/ui/skeleton.tsx","./src/components/ui/sonner.tsx","./src/components/ui/spinner.tsx","./src/components/ui/table.tsx","./src/components/ui/tabs.tsx","./src/features/search/constants.ts","./src/features/search/index.ts","./src/features/search/loadConfig.ts","./src/features/search/queryBuilder.ts","./src/features/search/types.ts","./src/features/search/__tests__/queryBuilder.test.ts","./src/features/search/adapters/registry.ts","./src/features/search/adapters/types.ts","./src/features/search/adapters/cms/channelResolver.ts","./src/features/search/adapters/cms/cmsQueryFragment.ts","./src/features/search/adapters/cms/contentTypeSessionCache.ts","./src/features/search/adapters/cms/contentTypeUtils.ts","./src/features/search/adapters/cms/index.ts","./src/features/search/adapters/cms/parseResponse.ts","./src/features/search/adapters/cms/searchChannel.ts","./src/features/search/adapters/cms/types.ts","./src/features/search/adapters/cms/__tests__/channelResolver.test.ts","./src/features/search/adapters/cms/__tests__/cmsQueryFragment.test.ts","./src/features/search/adapters/cms/__tests__/contentTypeSessionCache.test.ts","./src/features/search/adapters/cms/__tests__/contentTypeUtils.test.ts","./src/features/search/adapters/cms/__tests__/orgApiVersionService.test.ts","./src/features/search/adapters/cms/__tests__/parseResponse.test.ts","./src/features/search/adapters/cms/__tests__/searchChannel.test.ts","./src/features/search/adapters/cms/__tests__/searchableContentTypesService.test.ts","./src/features/search/adapters/cms/api/apiUtils.ts","./src/features/search/adapters/cms/api/orgApiVersionService.ts","./src/features/search/adapters/cms/api/searchableContentTypesService.ts","./src/features/search/adapters/cms/hooks/useSearchableContentTypes.ts","./src/features/search/adapters/sobject/index.ts","./src/features/search/adapters/sobject/parseResponse.ts","./src/features/search/adapters/sobject/queryFragment.ts","./src/features/search/api/distinctValuesService.ts","./src/features/search/api/searchService.ts","./src/features/search/api/__tests__/searchService.test.ts","./src/features/search/components/GlobalSearchBox.tsx","./src/features/search/components/MergedSearchResults.tsx","./src/features/search/components/Search.tsx","./src/features/search/components/SearchResults.tsx","./src/features/search/components/SourceSection.tsx","./src/features/search/components/__tests__/MergedSearchResults.test.tsx","./src/features/search/components/__tests__/Search.test.tsx","./src/features/search/components/__tests__/SourceSection.test.tsx","./src/features/search/components/controls/PaginationControls.tsx","./src/features/search/components/controls/ScopeSelector.tsx","./src/features/search/components/controls/SearchBar.tsx","./src/features/search/components/controls/SortControl.tsx","./src/features/search/components/filters/ActiveFilters.tsx","./src/features/search/components/filters/DefaultFilterPanel.tsx","./src/features/search/components/filters/FilterContext.tsx","./src/features/search/components/filters/inputs/BooleanFilter.tsx","./src/features/search/components/filters/inputs/DateRangeFilter.tsx","./src/features/search/components/filters/inputs/FilterFieldWrapper.tsx","./src/features/search/components/filters/inputs/MultiSelectFilter.tsx","./src/features/search/components/filters/inputs/NumericRangeFilter.tsx","./src/features/search/components/filters/inputs/SelectFilter.tsx","./src/features/search/components/filters/inputs/TextFilter.tsx","./src/features/search/components/results/CmsResultRow.tsx","./src/features/search/components/results/DefaultResultRow.tsx","./src/features/search/components/results/resolveResultRenderer.ts","./src/features/search/components/results/__tests__/CmsResultRow.test.tsx","./src/features/search/components/results/__tests__/resolveResultRenderer.test.ts","./src/features/search/hooks/useAsyncData.ts","./src/features/search/hooks/useDistinctValues.ts","./src/features/search/hooks/useSearch.ts","./src/features/search/utils/debounce.ts","./src/features/search/utils/fieldUtils.ts","./src/features/search/utils/filterUtils.ts","./src/features/search/utils/sortUtils.ts","./src/features/search/utils/__tests__/filterUtils.test.ts","./src/hooks/useAsyncData.ts","./src/lib/utils.ts","./src/pages/AccountObjectDetailPage.tsx","./src/pages/Home.tsx","./src/pages/NotFound.tsx","./src/types/conversation.ts","./src/types/globals.d.ts","./src/utils/accountFields.ts","./e2e/app.spec.ts","./vite-env.d.ts","./vitest-env.d.ts","./vitest.setup.ts","../../../../../../../../../sdk/platform-sdk/types/env.d.ts"],"version":"5.9.3"}
|
|
1
|
+
{"root":["./src/app.tsx","./src/appLayout.tsx","./src/index.ts","./src/navigationMenu.tsx","./src/router-utils.tsx","./src/routes.tsx","./src/api/graphqlClient.ts","./src/components/AgentforceConversationClient.tsx","./src/components/ObjectBreadcrumb.tsx","./src/components/__inherit_AgentforceConversationClient.tsx","./src/components/alerts/status-alert.tsx","./src/components/layouts/card-layout.tsx","./src/components/ui/alert.tsx","./src/components/ui/avatar.tsx","./src/components/ui/badge.tsx","./src/components/ui/breadcrumb.tsx","./src/components/ui/button.tsx","./src/components/ui/calendar.tsx","./src/components/ui/card.tsx","./src/components/ui/checkbox.tsx","./src/components/ui/collapsible.tsx","./src/components/ui/datePicker.tsx","./src/components/ui/dialog.tsx","./src/components/ui/dropdown-menu.tsx","./src/components/ui/field.tsx","./src/components/ui/index.ts","./src/components/ui/input.tsx","./src/components/ui/label.tsx","./src/components/ui/pagination.tsx","./src/components/ui/popover.tsx","./src/components/ui/select.tsx","./src/components/ui/separator.tsx","./src/components/ui/skeleton.tsx","./src/components/ui/sonner.tsx","./src/components/ui/spinner.tsx","./src/components/ui/table.tsx","./src/components/ui/tabs.tsx","./src/features/search/constants.ts","./src/features/search/index.ts","./src/features/search/loadConfig.ts","./src/features/search/queryBuilder.ts","./src/features/search/types.ts","./src/features/search/__tests__/queryBuilder.test.ts","./src/features/search/adapters/registry.ts","./src/features/search/adapters/types.ts","./src/features/search/adapters/cms/channelResolver.ts","./src/features/search/adapters/cms/cmsQueryFragment.ts","./src/features/search/adapters/cms/contentTypeSessionCache.ts","./src/features/search/adapters/cms/contentTypeUtils.ts","./src/features/search/adapters/cms/index.ts","./src/features/search/adapters/cms/parseResponse.ts","./src/features/search/adapters/cms/searchChannel.ts","./src/features/search/adapters/cms/types.ts","./src/features/search/adapters/cms/__tests__/channelResolver.test.ts","./src/features/search/adapters/cms/__tests__/cmsQueryFragment.test.ts","./src/features/search/adapters/cms/__tests__/contentTypeSessionCache.test.ts","./src/features/search/adapters/cms/__tests__/contentTypeUtils.test.ts","./src/features/search/adapters/cms/__tests__/orgApiVersionService.test.ts","./src/features/search/adapters/cms/__tests__/parseResponse.test.ts","./src/features/search/adapters/cms/__tests__/searchChannel.test.ts","./src/features/search/adapters/cms/__tests__/searchableContentTypesService.test.ts","./src/features/search/adapters/cms/api/apiUtils.ts","./src/features/search/adapters/cms/api/orgApiVersionService.ts","./src/features/search/adapters/cms/api/searchableContentTypesService.ts","./src/features/search/adapters/cms/hooks/useSearchableContentTypes.ts","./src/features/search/adapters/sobject/index.ts","./src/features/search/adapters/sobject/parseResponse.ts","./src/features/search/adapters/sobject/queryFragment.ts","./src/features/search/api/distinctValuesService.ts","./src/features/search/api/searchService.ts","./src/features/search/api/__tests__/searchService.test.ts","./src/features/search/components/GlobalSearchBox.tsx","./src/features/search/components/MergedSearchResults.tsx","./src/features/search/components/Search.tsx","./src/features/search/components/SearchResults.tsx","./src/features/search/components/SourceSection.tsx","./src/features/search/components/__tests__/MergedSearchResults.test.tsx","./src/features/search/components/__tests__/Search.test.tsx","./src/features/search/components/__tests__/SourceSection.test.tsx","./src/features/search/components/controls/PaginationControls.tsx","./src/features/search/components/controls/ScopeSelector.tsx","./src/features/search/components/controls/SearchBar.tsx","./src/features/search/components/controls/SortControl.tsx","./src/features/search/components/filters/ActiveFilters.tsx","./src/features/search/components/filters/DefaultFilterPanel.tsx","./src/features/search/components/filters/FilterContext.tsx","./src/features/search/components/filters/inputs/BooleanFilter.tsx","./src/features/search/components/filters/inputs/DateRangeFilter.tsx","./src/features/search/components/filters/inputs/FilterFieldWrapper.tsx","./src/features/search/components/filters/inputs/MultiSelectFilter.tsx","./src/features/search/components/filters/inputs/NumericRangeFilter.tsx","./src/features/search/components/filters/inputs/SelectFilter.tsx","./src/features/search/components/filters/inputs/TextFilter.tsx","./src/features/search/components/results/CmsResultRow.tsx","./src/features/search/components/results/DefaultResultRow.tsx","./src/features/search/components/results/resolveResultRenderer.ts","./src/features/search/components/results/__tests__/CmsResultRow.test.tsx","./src/features/search/components/results/__tests__/resolveResultRenderer.test.ts","./src/features/search/hooks/useAsyncData.ts","./src/features/search/hooks/useDistinctValues.ts","./src/features/search/hooks/useSearch.ts","./src/features/search/utils/debounce.ts","./src/features/search/utils/fieldUtils.ts","./src/features/search/utils/filterUtils.ts","./src/features/search/utils/sortUtils.ts","./src/features/search/utils/__tests__/filterUtils.test.ts","./src/hooks/useAsyncData.ts","./src/lib/utils.ts","./src/pages/AccountObjectDetailPage.tsx","./src/pages/Home.tsx","./src/pages/NotFound.tsx","./src/types/conversation.ts","./src/types/globals.d.ts","./src/utils/accountFields.ts","./src/utils/__tests__/accountFields.test.ts","./e2e/app.spec.ts","./vite-env.d.ts","./vitest-env.d.ts","./vitest.setup.ts","../../../../../../../../../sdk/platform-sdk/types/env.d.ts"],"version":"5.9.3"}
|
package/dist/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/ui-bundle-template-base-sfdx-project",
|
|
3
|
-
"version": "12.3.
|
|
3
|
+
"version": "12.3.9",
|
|
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.
|
|
9
|
+
"version": "12.3.9",
|
|
10
10
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"fast-xml-parser": "^5.9.3",
|
package/dist/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/ui-bundle-template-app-react-template-b2e",
|
|
3
|
-
"version": "12.3.
|
|
3
|
+
"version": "12.3.9",
|
|
4
4
|
"description": "Salesforce React internal app template",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"author": "",
|
|
@@ -15,13 +15,18 @@
|
|
|
15
15
|
"access": "public"
|
|
16
16
|
},
|
|
17
17
|
"scripts": {
|
|
18
|
-
"clean": "rm -rf dist"
|
|
18
|
+
"clean": "rm -rf dist",
|
|
19
|
+
"test": "vitest run",
|
|
20
|
+
"test:watch": "vitest",
|
|
21
|
+
"test:coverage": "vitest run --coverage"
|
|
19
22
|
},
|
|
20
23
|
"devDependencies": {
|
|
21
24
|
"@types/react": "^19.2.7",
|
|
22
25
|
"@types/react-dom": "^19.2.3",
|
|
26
|
+
"@vitest/coverage-v8": "^4.1.0",
|
|
23
27
|
"react-dom": "^19.2.1",
|
|
24
|
-
"react-router": "^8.0.0"
|
|
28
|
+
"react-router": "^8.0.0",
|
|
29
|
+
"vitest": "^4.1.0"
|
|
25
30
|
},
|
|
26
31
|
"nx": {
|
|
27
32
|
"targets": {
|