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

50
package-lock.json generated
View File

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

View File

@ -11,8 +11,8 @@
"registry": "https://registry.npmjs.org" "registry": "https://registry.npmjs.org"
}, },
"devDependencies": { "devDependencies": {
"@salesforce/webapp-template-app-react-sample-b2e-experimental": "^1.116.6", "@salesforce/ui-bundle-template-app-react-sample-b2e": "^1.116.6",
"@salesforce/webapp-template-app-react-sample-b2x-experimental": "^1.116.6", "@salesforce/ui-bundle-template-app-react-sample-b2x": "^1.116.6",
"@types/js-yaml": "^4.0.9", "@types/js-yaml": "^4.0.9",
"js-yaml": "^4.1.1", "js-yaml": "^4.1.1",
"tsx": "^4.21.0" "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 ## 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 ### 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 ## 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 ### How it's updated

View File

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

View File

@ -1,6 +1,6 @@
#!/usr/bin/env node #!/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/. * into samples/webapp-template-app-react-sample-b2x-experimental/.
* Run from repo root after npm install. Same flow used locally and in CI. * Run from repo root after npm install. Same flow used locally and in CI.
*/ */
@ -8,7 +8,7 @@
const fs = require('fs'); const fs = require('fs');
const path = require('path'); 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 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)); 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 { copyRecursive } = require('./lib/copy-recursive');
const TEMPLATE_PACKAGES = [ const TEMPLATE_PACKAGES = [
'@salesforce/webapp-template-app-react-sample-b2e-experimental', '@salesforce/ui-bundle-template-app-react-sample-b2e',
'@salesforce/webapp-template-app-react-sample-b2x-experimental', '@salesforce/ui-bundle-template-app-react-sample-b2x',
]; ];
const PACKAGE_NAME = TEMPLATE_PACKAGES[0]; // used for syncing skills const PACKAGE_NAME = TEMPLATE_PACKAGES[0]; // used for syncing skills
const SKILLS_SRC = 'dist/.a4drules/skills'; const SKILLS_SRC = 'dist/.a4drules/skills';

View File

@ -64,7 +64,7 @@ export default function HomePage() {
### Useful Patterns — Component ### 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` - **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 - **Icons:** `lucide-react`; add `aria-hidden="true"` on decorative icons
- **Focus styles:** use `focus-visible:` variants - **Focus styles:** use `focus-visible:` variants