chore: rename webapp-template packages to ui-bundle-template

This commit is contained in:
k-j-kim 2026-03-29 15:19:16 -07:00
parent a779945206
commit 6448a7f4ef
No known key found for this signature in database
GPG Key ID: 40FA25A7DE938B04
10 changed files with 47 additions and 47 deletions

View File

@ -1,6 +1,6 @@
# Syncs React sample packages from npm into samples/:
# - @salesforce/webapp-template-app-react-sample-b2e-experimental
# - @salesforce/webapp-template-app-react-sample-b2x-experimental
# - @salesforce/ui-bundle-template-app-react-sample-b2e
# - @salesforce/ui-bundle-template-app-react-sample-b2x
#
# Opens a single PR when either (or both) npm package versions have changed.
# Same steps as running locally: npm install && npm run sync-react-b2e-sample
@ -37,7 +37,7 @@ jobs:
- name: Get latest B2E npm version
id: npm-version-b2e
run: |
LATEST=$(npm view @salesforce/webapp-template-app-react-sample-b2e-experimental version)
LATEST=$(npm view @salesforce/ui-bundle-template-app-react-sample-b2e version)
if [ -z "$LATEST" ]; then
echo "ERROR: npm view returned empty version for B2E package" >&2
exit 1
@ -59,7 +59,7 @@ jobs:
- name: Get latest B2X npm version
id: npm-version-b2x
run: |
LATEST=$(npm view @salesforce/webapp-template-app-react-sample-b2x-experimental version)
LATEST=$(npm view @salesforce/ui-bundle-template-app-react-sample-b2x version)
if [ -z "$LATEST" ]; then
echo "ERROR: npm view returned empty version for 2x package" >&2
exit 1
@ -109,11 +109,11 @@ jobs:
- name: Install latest B2E package
if: steps.skip.outputs.skip != 'true' && steps.skip.outputs.b2e_changed == 'true'
run: npm install @salesforce/webapp-template-app-react-sample-b2e-experimental@latest
run: npm install @salesforce/ui-bundle-template-app-react-sample-b2e@latest
- name: Install latest B2X package
if: steps.skip.outputs.skip != 'true' && steps.skip.outputs.b2x_changed == 'true'
run: npm install @salesforce/webapp-template-app-react-sample-b2x-experimental@latest
run: npm install @salesforce/ui-bundle-template-app-react-sample-b2x@latest
- name: Sync B2E sample
if: steps.skip.outputs.skip != 'true'
@ -133,12 +133,12 @@ jobs:
if [ "${{ steps.skip.outputs.b2e_changed }}" = "true" ]; then
PARTS="${PARTS}b2e-${{ steps.npm-version-b2e.outputs.latest }}"
BODY="${BODY}- **B2E** \`@salesforce/webapp-template-app-react-sample-b2e-experimental\`: ${{ steps.current-version-b2e.outputs.current || 'none' }} → ${{ steps.npm-version-b2e.outputs.latest }}"$'\n'
BODY="${BODY}- **B2E** \`@salesforce/ui-bundle-template-app-react-sample-b2e\`: ${{ steps.current-version-b2e.outputs.current || 'none' }} → ${{ steps.npm-version-b2e.outputs.latest }}"$'\n'
fi
if [ "${{ steps.skip.outputs.b2x_changed }}" = "true" ]; then
if [ -n "$PARTS" ]; then PARTS="${PARTS}-"; fi
PARTS="${PARTS}b2x-${{ steps.npm-version-b2x.outputs.latest }}"
BODY="${BODY}- **B2X** \`@salesforce/webapp-template-app-react-sample-b2x-experimental\`: ${{ steps.current-version-b2x.outputs.current || 'none' }} → ${{ steps.npm-version-b2x.outputs.latest }}"$'\n'
BODY="${BODY}- **B2X** \`@salesforce/ui-bundle-template-app-react-sample-b2x\`: ${{ steps.current-version-b2x.outputs.current || 'none' }} → ${{ steps.npm-version-b2x.outputs.latest }}"$'\n'
fi
echo "branch=chore/sync-react-samples-${PARTS}" >> $GITHUB_OUTPUT

View File

@ -1,6 +1,6 @@
{
"@salesforce/webapp-template-app-react-sample-b2e-experimental": "1.107.0",
"@salesforce/webapp-template-app-react-sample-b2x-experimental": "1.107.0",
"@salesforce/ui-bundle-template-app-react-sample-b2e": "1.107.0",
"@salesforce/ui-bundle-template-app-react-sample-b2x": "1.107.0",
"@salesforce/webapp-template-base-sfdx-project-experimental": "1.107.0",
"@salesforce/webapp-template-feature-react-file-upload-experimental": "1.107.0",
"@salesforce/webapp-template-feature-react-chart-experimental": "1.107.0",

View File

@ -30,7 +30,7 @@ Browse the repository and copy/paste any rule or skill directly into Agentforce
## Samples
The `samples/` folder contains synced sample apps. For example, `samples/webapp-template-app-react-sample-b2e-experimental/` is kept in sync with the npm package `@salesforce/webapp-template-app-react-sample-b2e-experimental` (nightly and on manual trigger via GitHub Actions). To run the same sync locally from the repo root:
The `samples/` folder contains synced sample apps. For example, `samples/webapp-template-app-react-sample-b2e-experimental/` is kept in sync with the npm package `@salesforce/ui-bundle-template-app-react-sample-b2e` (nightly and on manual trigger via GitHub Actions). To run the same sync locally from the repo root:
```bash
npm install

50
package-lock.json generated
View File

@ -1,16 +1,16 @@
{
"name": "@salesforce/afv-skills",
"version": "1.5.0",
"version": "1.5.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@salesforce/afv-skills",
"version": "1.5.0",
"version": "1.5.1",
"license": "CC-BY-NC-4.0",
"devDependencies": {
"@salesforce/webapp-template-app-react-sample-b2e-experimental": "^1.116.6",
"@salesforce/webapp-template-app-react-sample-b2x-experimental": "^1.116.6",
"@salesforce/ui-bundle-template-app-react-sample-b2e": "^1.116.6",
"@salesforce/ui-bundle-template-app-react-sample-b2x": "^1.116.6",
"@types/js-yaml": "^4.0.9",
"js-yaml": "^4.1.1",
"tsx": "^4.21.0"
@ -688,22 +688,22 @@
}
},
"node_modules/@salesforce/sdk-core": {
"version": "1.116.6",
"resolved": "https://registry.npmjs.org/@salesforce/sdk-core/-/sdk-core-1.116.6.tgz",
"integrity": "sha512-5IWfcnQRuaOxtWBbGiW00rk6f4ImNrDDnVhqZOphJhRePOvSLqWLirfIIhRK4j00Tr8w0tgn5H+hIAWCRZvIHw==",
"version": "1.117.3",
"resolved": "https://registry.npmjs.org/@salesforce/sdk-core/-/sdk-core-1.117.3.tgz",
"integrity": "sha512-vz029He3j5BNaTWOAtK9Yxb3xj5CwKIZjxUG61T2cf/hCGxidrEftrDl2I0SNJaX4+t4M5QT+0ba6MOI4w8QDw==",
"dev": true,
"license": "SEE LICENSE IN LICENSE.txt"
},
"node_modules/@salesforce/sdk-data": {
"version": "1.116.6",
"resolved": "https://registry.npmjs.org/@salesforce/sdk-data/-/sdk-data-1.116.6.tgz",
"integrity": "sha512-yjc1CQvBYAXWrouMmD3buu35u4DwgUGTaDZKU4//F5vIJJitsmPGrJCLDd0HdBzyu/J+77RuVGZBgsal7+zyZQ==",
"version": "1.117.3",
"resolved": "https://registry.npmjs.org/@salesforce/sdk-data/-/sdk-data-1.117.3.tgz",
"integrity": "sha512-Tx/dy4Sb0toM036nutxr3j0TNKECpJZIi+FHrvO/apGd5fmyvNk9jlaAaC+IDw53vgiWrly+zwuH8EpxA9ssLw==",
"dev": true,
"license": "SEE LICENSE IN LICENSE.txt",
"dependencies": {
"@conduit-client/service-fetch-network": "3.17.0",
"@conduit-client/utils": "3.17.0",
"@salesforce/sdk-core": "^1.116.6"
"@salesforce/sdk-core": "^1.117.3"
}
},
"node_modules/@salesforce/ts-types": {
@ -716,15 +716,15 @@
"node": ">=18.0.0"
}
},
"node_modules/@salesforce/webapp-experimental": {
"version": "1.116.6",
"resolved": "https://registry.npmjs.org/@salesforce/webapp-experimental/-/webapp-experimental-1.116.6.tgz",
"integrity": "sha512-bbWVK70rv5Y+e26NLyTB2McTZ3MCQFe+NEYZDW/T4FCaAZ3Y57u1HYzgr8p4iWKlu7DU4V1sNTUGjt01mrN0Dg==",
"node_modules/@salesforce/ui-bundle": {
"version": "1.117.3",
"resolved": "https://registry.npmjs.org/@salesforce/ui-bundle/-/ui-bundle-1.117.3.tgz",
"integrity": "sha512-Vr52rmDV4vYDNpsGHzsZju8KnrQz/isWBZdi8WYEXqbjM8cUaw1qIb+TycbmJ1lFM/lQYsv+zUSy8z70maDCIQ==",
"dev": true,
"license": "SEE LICENSE IN LICENSE.txt",
"dependencies": {
"@salesforce/core": "^8.23.4",
"@salesforce/sdk-data": "^1.116.6",
"@salesforce/sdk-data": "^1.117.3",
"axios": "^1.7.7",
"micromatch": "^4.0.8",
"path-to-regexp": "^8.3.0"
@ -733,21 +733,21 @@
"node": ">=20.0.0"
}
},
"node_modules/@salesforce/webapp-template-app-react-sample-b2e-experimental": {
"version": "1.116.6",
"resolved": "https://registry.npmjs.org/@salesforce/webapp-template-app-react-sample-b2e-experimental/-/webapp-template-app-react-sample-b2e-experimental-1.116.6.tgz",
"integrity": "sha512-RctkFfBfK+7HLAnP2ERmXG3Nn8apFF4ywh5LlSyOJVUjbQI48kd7PeiCX5v5G4C5Kvqp7wyhhucY0Mk4k8PLEQ==",
"node_modules/@salesforce/ui-bundle-template-app-react-sample-b2e": {
"version": "1.117.3",
"resolved": "https://registry.npmjs.org/@salesforce/ui-bundle-template-app-react-sample-b2e/-/ui-bundle-template-app-react-sample-b2e-1.117.3.tgz",
"integrity": "sha512-NeemgqcomGeeWPmqooIC8kADhAONS9B7izyO3svjBCrGMQeutrBfwwl+LdA31w4KvbWayCPEyHNDItvfy8SNWg==",
"dev": true,
"license": "SEE LICENSE IN LICENSE.txt",
"dependencies": {
"@salesforce/webapp-experimental": "^1.116.6",
"@salesforce/ui-bundle": "^1.117.2",
"sonner": "^1.7.0"
}
},
"node_modules/@salesforce/webapp-template-app-react-sample-b2x-experimental": {
"version": "1.116.6",
"resolved": "https://registry.npmjs.org/@salesforce/webapp-template-app-react-sample-b2x-experimental/-/webapp-template-app-react-sample-b2x-experimental-1.116.6.tgz",
"integrity": "sha512-Ql5l+WRvAIQ0iNTutj3k0GDjHRI7wwAbXjzBRKeCR3Tp0pHEXeoKuqj1AACxCv1APAvTOne4cvzb11eJblDOLA==",
"node_modules/@salesforce/ui-bundle-template-app-react-sample-b2x": {
"version": "1.117.3",
"resolved": "https://registry.npmjs.org/@salesforce/ui-bundle-template-app-react-sample-b2x/-/ui-bundle-template-app-react-sample-b2x-1.117.3.tgz",
"integrity": "sha512-3a0OXuV24vBkZB1xmPijbp60hFZ5WLJMUSvK6DuelAOCoYLe63mkIG17hMegrDeSVIEx6pIIHzEG4TD4DOct5g==",
"dev": true,
"license": "SEE LICENSE IN LICENSE.txt"
},

View File

@ -11,8 +11,8 @@
"registry": "https://registry.npmjs.org"
},
"devDependencies": {
"@salesforce/webapp-template-app-react-sample-b2e-experimental": "^1.116.6",
"@salesforce/webapp-template-app-react-sample-b2x-experimental": "^1.116.6",
"@salesforce/ui-bundle-template-app-react-sample-b2e": "^1.116.6",
"@salesforce/ui-bundle-template-app-react-sample-b2x": "^1.116.6",
"@types/js-yaml": "^4.0.9",
"js-yaml": "^4.1.1",
"tsx": "^4.21.0"

View File

@ -4,7 +4,7 @@ Sample apps and templates synced into this repo for reference and reuse.
## webapp-template-app-react-sample-b2e-experimental
Source is synced from the npm package [@salesforce/webapp-template-app-react-sample-b2e-experimental](https://www.npmjs.com/package/@salesforce/webapp-template-app-react-sample-b2e-experimental). Only the package's source (no `node_modules`) is copied into `samples/webapp-template-app-react-sample-b2e-experimental/`.
Source is synced from the npm package [@salesforce/ui-bundle-template-app-react-sample-b2e](https://www.npmjs.com/package/@salesforce/ui-bundle-template-app-react-sample-b2e). Only the package's source (no `node_modules`) is copied into `samples/webapp-template-app-react-sample-b2e-experimental/`.
### How it's updated
@ -24,7 +24,7 @@ The file `samples/webapp-template-app-react-sample-b2e-experimental/.version` st
## webapp-template-app-react-sample-b2x-experimental
Source is synced from the npm package [@salesforce/webapp-template-app-react-sample-b2x-experimental](https://www.npmjs.com/package/@salesforce/webapp-template-app-react-sample-b2x-experimental). Only the package's source (no `node_modules`) is copied into `samples/webapp-template-app-react-sample-b2x-experimental/`.
Source is synced from the npm package [@salesforce/ui-bundle-template-app-react-sample-b2x](https://www.npmjs.com/package/@salesforce/ui-bundle-template-app-react-sample-b2x). Only the package's source (no `node_modules`) is copied into `samples/webapp-template-app-react-sample-b2x-experimental/`.
### How it's updated

View File

@ -1,6 +1,6 @@
#!/usr/bin/env node
/**
* Syncs source from @salesforce/webapp-template-app-react-sample-b2e-experimental
* Syncs source from @salesforce/ui-bundle-template-app-react-sample-b2e
* into samples/webapp-template-app-react-sample-b2e-experimental/.
* Run from repo root after npm install. Same flow used locally and in CI.
*/
@ -8,7 +8,7 @@
const fs = require('fs');
const path = require('path');
const PACKAGE_NAME = '@salesforce/webapp-template-app-react-sample-b2e-experimental';
const PACKAGE_NAME = '@salesforce/ui-bundle-template-app-react-sample-b2e';
const SAMPLE_DIR = path.join(process.cwd(), 'samples', 'webapp-template-app-react-sample-b2e-experimental');
const pkgRoot = path.join(process.cwd(), 'node_modules', PACKAGE_NAME.replace('/', path.sep));

View File

@ -1,6 +1,6 @@
#!/usr/bin/env node
/**
* Syncs source from @salesforce/webapp-template-app-react-sample-b2x-experimental
* Syncs source from @salesforce/ui-bundle-template-app-react-sample-b2x
* into samples/webapp-template-app-react-sample-b2x-experimental/.
* Run from repo root after npm install. Same flow used locally and in CI.
*/
@ -8,7 +8,7 @@
const fs = require('fs');
const path = require('path');
const PACKAGE_NAME = '@salesforce/webapp-template-app-react-sample-b2x-experimental';
const PACKAGE_NAME = '@salesforce/ui-bundle-template-app-react-sample-b2x';
const SAMPLE_DIR = path.join(process.cwd(), 'samples', 'webapp-template-app-react-sample-b2x-experimental');
const pkgRoot = path.join(process.cwd(), 'node_modules', PACKAGE_NAME.replace('/', path.sep));

View File

@ -11,8 +11,8 @@ const { execSync } = require('child_process');
const { copyRecursive } = require('./lib/copy-recursive');
const TEMPLATE_PACKAGES = [
'@salesforce/webapp-template-app-react-sample-b2e-experimental',
'@salesforce/webapp-template-app-react-sample-b2x-experimental',
'@salesforce/ui-bundle-template-app-react-sample-b2e',
'@salesforce/ui-bundle-template-app-react-sample-b2x',
];
const PACKAGE_NAME = TEMPLATE_PACKAGES[0]; // used for syncing skills
const SKILLS_SRC = 'dist/.a4drules/skills';

View File

@ -64,7 +64,7 @@ export default function HomePage() {
### Useful Patterns — Component
- **Programmatic navigation:** use `useNavigate` from `react-router`; call `navigate(path)` — consistent with GlobalSearchInput, SearchResultCard, MaintenanceTable, and other components in the web application.
- **Programmatic navigation:** use `useNavigate` from `react-router`; call `navigate(path)` — consistent with GlobalSearchInput, SearchResultCard, MaintenanceTable, and other components in the ui bundle app.
- **Page container:** `max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12`
- **Icons:** `lucide-react`; add `aria-hidden="true"` on decorative icons
- **Focus styles:** use `focus-visible:` variants