@salesforce/webapp-template-app-react-b2c-sample-experimental 1.29.0

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.
Files changed (92) hide show
  1. package/LICENSE.txt +82 -0
  2. package/dist/.a4drules/build-validation.md +81 -0
  3. package/dist/.a4drules/code-quality.md +150 -0
  4. package/dist/.a4drules/graphql/tools/knowledge/lds-explore-graphql-schema.md +227 -0
  5. package/dist/.a4drules/graphql/tools/knowledge/lds-generate-graphql-mutationquery.md +212 -0
  6. package/dist/.a4drules/graphql/tools/knowledge/lds-generate-graphql-readquery.md +185 -0
  7. package/dist/.a4drules/graphql/tools/knowledge/lds-guide-graphql.md +205 -0
  8. package/dist/.a4drules/graphql/tools/schemas/shared.graphqls +1150 -0
  9. package/dist/.a4drules/graphql.md +408 -0
  10. package/dist/.a4drules/images.md +13 -0
  11. package/dist/.a4drules/react.md +361 -0
  12. package/dist/.a4drules/react_image_processing.md +45 -0
  13. package/dist/.a4drules/skills/install-feature/SKILL.md +66 -0
  14. package/dist/.a4drules/skills/install-feature/scripts/copy-feature-assets.sh +36 -0
  15. package/dist/.a4drules/typescript.md +224 -0
  16. package/dist/.forceignore +15 -0
  17. package/dist/.husky/pre-commit +4 -0
  18. package/dist/.prettierignore +11 -0
  19. package/dist/.prettierrc +17 -0
  20. package/dist/CHANGELOG.md +364 -0
  21. package/dist/README.md +18 -0
  22. package/dist/config/project-scratch-def.json +13 -0
  23. package/dist/force-app/main/default/digitalExperienceConfigs/appreactb2csample1.digitalExperienceConfig +8 -0
  24. package/dist/force-app/main/default/digitalExperiences/site/appreactb2csample1/appreactb2csample1.digitalExperience-meta.xml +11 -0
  25. package/dist/force-app/main/default/digitalExperiences/site/appreactb2csample1/sfdc_cms__site/appreactb2csample1/_meta.json +5 -0
  26. package/dist/force-app/main/default/digitalExperiences/site/appreactb2csample1/sfdc_cms__site/appreactb2csample1/content.json +10 -0
  27. package/dist/force-app/main/default/networks/appreactb2csample.network +60 -0
  28. package/dist/force-app/main/default/package.xml +20 -0
  29. package/dist/force-app/main/default/sites/appreactb2csample.site +31 -0
  30. package/dist/force-app/main/default/webapplications/appreactb2csample/.prettierignore +9 -0
  31. package/dist/force-app/main/default/webapplications/appreactb2csample/.prettierrc +11 -0
  32. package/dist/force-app/main/default/webapplications/appreactb2csample/appreactb2csample.webapplication-meta.xml +7 -0
  33. package/dist/force-app/main/default/webapplications/appreactb2csample/build/vite.config.d.ts +2 -0
  34. package/dist/force-app/main/default/webapplications/appreactb2csample/build/vite.config.js +74 -0
  35. package/dist/force-app/main/default/webapplications/appreactb2csample/e2e/app.spec.ts +24 -0
  36. package/dist/force-app/main/default/webapplications/appreactb2csample/eslint.config.js +113 -0
  37. package/dist/force-app/main/default/webapplications/appreactb2csample/index.html +13 -0
  38. package/dist/force-app/main/default/webapplications/appreactb2csample/package-lock.json +7157 -0
  39. package/dist/force-app/main/default/webapplications/appreactb2csample/package.json +45 -0
  40. package/dist/force-app/main/default/webapplications/appreactb2csample/playwright.config.ts +24 -0
  41. package/dist/force-app/main/default/webapplications/appreactb2csample/scripts/rewrite-e2e-assets.mjs +23 -0
  42. package/dist/force-app/main/default/webapplications/appreactb2csample/src/api/graphql-operations-types.ts +127 -0
  43. package/dist/force-app/main/default/webapplications/appreactb2csample/src/api/utils/query/highRevenueAccountsQuery.graphql +29 -0
  44. package/dist/force-app/main/default/webapplications/appreactb2csample/src/app.tsx +41 -0
  45. package/dist/force-app/main/default/webapplications/appreactb2csample/src/appLayout.tsx +161 -0
  46. package/dist/force-app/main/default/webapplications/appreactb2csample/src/assets/icons/book.svg +3 -0
  47. package/dist/force-app/main/default/webapplications/appreactb2csample/src/assets/icons/copy.svg +4 -0
  48. package/dist/force-app/main/default/webapplications/appreactb2csample/src/assets/icons/rocket.svg +3 -0
  49. package/dist/force-app/main/default/webapplications/appreactb2csample/src/assets/icons/star.svg +3 -0
  50. package/dist/force-app/main/default/webapplications/appreactb2csample/src/assets/images/codey-1.png +0 -0
  51. package/dist/force-app/main/default/webapplications/appreactb2csample/src/assets/images/codey-2.png +0 -0
  52. package/dist/force-app/main/default/webapplications/appreactb2csample/src/assets/images/codey-3.png +0 -0
  53. package/dist/force-app/main/default/webapplications/appreactb2csample/src/assets/images/vibe-codey.svg +194 -0
  54. package/dist/force-app/main/default/webapplications/appreactb2csample/src/components/ui/alert.tsx +65 -0
  55. package/dist/force-app/main/default/webapplications/appreactb2csample/src/components/ui/button.tsx +54 -0
  56. package/dist/force-app/main/default/webapplications/appreactb2csample/src/components/ui/card.tsx +77 -0
  57. package/dist/force-app/main/default/webapplications/appreactb2csample/src/components/ui/field.tsx +111 -0
  58. package/dist/force-app/main/default/webapplications/appreactb2csample/src/components/ui/index.ts +71 -0
  59. package/dist/force-app/main/default/webapplications/appreactb2csample/src/components/ui/input.tsx +19 -0
  60. package/dist/force-app/main/default/webapplications/appreactb2csample/src/components/ui/label.tsx +19 -0
  61. package/dist/force-app/main/default/webapplications/appreactb2csample/src/components/ui/pagination.tsx +99 -0
  62. package/dist/force-app/main/default/webapplications/appreactb2csample/src/components/ui/select.tsx +151 -0
  63. package/dist/force-app/main/default/webapplications/appreactb2csample/src/components/ui/skeleton.tsx +7 -0
  64. package/dist/force-app/main/default/webapplications/appreactb2csample/src/components/ui/spinner.tsx +26 -0
  65. package/dist/force-app/main/default/webapplications/appreactb2csample/src/components/ui/table.tsx +114 -0
  66. package/dist/force-app/main/default/webapplications/appreactb2csample/src/components/ui/tabs.tsx +115 -0
  67. package/dist/force-app/main/default/webapplications/appreactb2csample/src/lib/utils.ts +6 -0
  68. package/dist/force-app/main/default/webapplications/appreactb2csample/src/pages/About.tsx +8 -0
  69. package/dist/force-app/main/default/webapplications/appreactb2csample/src/pages/Application.tsx +101 -0
  70. package/dist/force-app/main/default/webapplications/appreactb2csample/src/pages/Dashboard.tsx +101 -0
  71. package/dist/force-app/main/default/webapplications/appreactb2csample/src/pages/HelpCenter.tsx +29 -0
  72. package/dist/force-app/main/default/webapplications/appreactb2csample/src/pages/Home.tsx +30 -0
  73. package/dist/force-app/main/default/webapplications/appreactb2csample/src/pages/Maintenance.tsx +132 -0
  74. package/dist/force-app/main/default/webapplications/appreactb2csample/src/pages/NotFound.tsx +14 -0
  75. package/dist/force-app/main/default/webapplications/appreactb2csample/src/pages/PropertyDetails.tsx +68 -0
  76. package/dist/force-app/main/default/webapplications/appreactb2csample/src/pages/PropertyListings.tsx +84 -0
  77. package/dist/force-app/main/default/webapplications/appreactb2csample/src/routes.tsx +62 -0
  78. package/dist/force-app/main/default/webapplications/appreactb2csample/src/styles/global.css +80 -0
  79. package/dist/force-app/main/default/webapplications/appreactb2csample/tsconfig.json +36 -0
  80. package/dist/force-app/main/default/webapplications/appreactb2csample/tsconfig.node.json +13 -0
  81. package/dist/force-app/main/default/webapplications/appreactb2csample/vite-env.d.ts +1 -0
  82. package/dist/force-app/main/default/webapplications/appreactb2csample/vite.config.ts +83 -0
  83. package/dist/force-app/main/default/webapplications/appreactb2csample/vitest-env.d.ts +2 -0
  84. package/dist/force-app/main/default/webapplications/appreactb2csample/vitest.config.ts +11 -0
  85. package/dist/force-app/main/default/webapplications/appreactb2csample/vitest.setup.ts +1 -0
  86. package/dist/force-app/main/default/webapplications/appreactb2csample/webapplication.json +7 -0
  87. package/dist/jest.config.js +6 -0
  88. package/dist/package.json +37 -0
  89. package/dist/scripts/apex/hello.apex +10 -0
  90. package/dist/scripts/soql/account.soql +6 -0
  91. package/dist/sfdx-project.json +12 -0
  92. package/package.json +28 -0
@@ -0,0 +1,80 @@
1
+ @import 'tailwindcss';
2
+
3
+ @layer base {
4
+ html,
5
+ body,
6
+ #root {
7
+ @apply min-h-screen;
8
+ }
9
+
10
+ body {
11
+ @apply antialiased bg-white;
12
+ }
13
+ }
14
+
15
+ @layer base {
16
+ :root {
17
+ color-scheme: light;
18
+ --background: oklch(0.985 0.002 247.858);
19
+ --foreground: oklch(0.145 0 0);
20
+ --card: oklch(1 0 0);
21
+ --card-foreground: oklch(0.145 0 0);
22
+ --popover: oklch(1 0 0);
23
+ --popover-foreground: oklch(0.145 0 0);
24
+ --primary: oklch(0.488 0.09 195.75);
25
+ --primary-foreground: oklch(0.985 0 0);
26
+ --secondary: oklch(0.97 0.01 195);
27
+ --secondary-foreground: oklch(0.205 0 0);
28
+ --muted: oklch(0.97 0.005 195);
29
+ --muted-foreground: oklch(0.556 0 0);
30
+ --accent: oklch(0.97 0.01 195);
31
+ --accent-foreground: oklch(0.205 0 0);
32
+ --destructive: oklch(0.577 0.245 27.325);
33
+ --destructive-foreground: oklch(0.985 0 0);
34
+ --border: oklch(0.922 0 0);
35
+ --input: oklch(0.922 0 0);
36
+ --ring: oklch(0.488 0.09 195.75);
37
+ --radius: 0.625rem;
38
+ --spacing: 0.25rem;
39
+ }
40
+ @media (prefers-reduced-motion: reduce) {
41
+ * {
42
+ animation-duration: 0.01ms !important;
43
+ animation-iteration-count: 1 !important;
44
+ transition-duration: 0.01ms !important;
45
+ scroll-behavior: auto !important;
46
+ }
47
+ }
48
+ * {
49
+ @apply border-[var(--border)];
50
+ }
51
+ body {
52
+ @apply bg-[var(--background)] text-[var(--foreground)] antialiased;
53
+ }
54
+ }
55
+
56
+ @theme inline {
57
+ --color-background: var(--background);
58
+ --color-foreground: var(--foreground);
59
+ --color-card: var(--card);
60
+ --color-card-foreground: var(--card-foreground);
61
+ --color-popover: var(--popover);
62
+ --color-popover-foreground: var(--popover-foreground);
63
+ --color-primary: var(--primary);
64
+ --color-primary-foreground: var(--primary-foreground);
65
+ --color-secondary: var(--secondary);
66
+ --color-secondary-foreground: var(--secondary-foreground);
67
+ --color-muted: var(--muted);
68
+ --color-muted-foreground: var(--muted-foreground);
69
+ --color-accent: var(--accent);
70
+ --color-accent-foreground: var(--accent-foreground);
71
+ --color-destructive: var(--destructive);
72
+ --color-border: var(--border);
73
+ --color-input: var(--input);
74
+ --color-ring: var(--ring);
75
+ --radius-sm: calc(var(--radius) - 4px);
76
+ --radius-md: calc(var(--radius) - 2px);
77
+ --radius-lg: var(--radius);
78
+ --radius-xl: calc(var(--radius) + 4px);
79
+ --spacing: var(--spacing);
80
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "useDefineForClassFields": true,
5
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
6
+ "module": "ESNext",
7
+ "skipLibCheck": true,
8
+
9
+ /* Bundler mode */
10
+ "moduleResolution": "bundler",
11
+ "allowImportingTsExtensions": true,
12
+ "resolveJsonModule": true,
13
+ "isolatedModules": true,
14
+ "noEmit": true,
15
+ "jsx": "react-jsx",
16
+
17
+ /* Linting */
18
+ "strict": true,
19
+ "noUnusedLocals": true,
20
+ "noUnusedParameters": true,
21
+ "noFallthroughCasesInSwitch": true,
22
+
23
+ /* Path mapping */
24
+ "baseUrl": ".",
25
+ "paths": {
26
+ "@/*": ["./src/*"],
27
+ "@api/*": ["./src/api/*"],
28
+ "@components/*": ["./src/components/*"],
29
+ "@utils/*": ["./src/utils/*"],
30
+ "@styles/*": ["./src/styles/*"],
31
+ "@assets/*": ["./src/assets/*"]
32
+ }
33
+ },
34
+ "include": ["src", "vite-env.d.ts", "vitest-env.d.ts"],
35
+ "references": [{ "path": "./tsconfig.node.json" }]
36
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
5
+ "skipLibCheck": true,
6
+ "module": "ESNext",
7
+ "moduleResolution": "bundler",
8
+ "allowSyntheticDefaultImports": true,
9
+ "strict": true,
10
+ "outDir": "./build"
11
+ },
12
+ "include": ["vite.config.ts"]
13
+ }
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
@@ -0,0 +1,83 @@
1
+ import { defineConfig } from 'vite';
2
+ import react from '@vitejs/plugin-react';
3
+ import path from 'path';
4
+ import { resolve } from 'path';
5
+ import tailwindcss from '@tailwindcss/vite';
6
+ import salesforce from '@salesforce/vite-plugin-webapp-experimental';
7
+
8
+ export default defineConfig(({ mode }) => {
9
+ return {
10
+ plugins: [tailwindcss(), react(), salesforce()],
11
+
12
+ // Build configuration for MPA
13
+ build: {
14
+ outDir: resolve(__dirname, 'dist'),
15
+ assetsDir: 'assets',
16
+ sourcemap: false,
17
+ },
18
+
19
+ // Resolve aliases (shared between build and test)
20
+ resolve: {
21
+ dedupe: ['react', 'react-dom'],
22
+ alias: {
23
+ '@': path.resolve(__dirname, './src'),
24
+ '@api': path.resolve(__dirname, './src/api'),
25
+ '@components': path.resolve(__dirname, './src/components'),
26
+ '@utils': path.resolve(__dirname, './src/utils'),
27
+ '@styles': path.resolve(__dirname, './src/styles'),
28
+ '@assets': path.resolve(__dirname, './src/assets'),
29
+ },
30
+ },
31
+
32
+ // Vitest configuration
33
+ test: {
34
+ // Override root for tests (build uses src/pages as root)
35
+ root: resolve(__dirname),
36
+
37
+ // Use jsdom environment for React component testing
38
+ environment: 'jsdom',
39
+
40
+ // Setup files to run before each test
41
+ setupFiles: ['./src/test/setup.ts'],
42
+
43
+ // Global test patterns
44
+ include: [
45
+ 'src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}',
46
+ 'src/**/__tests__/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}',
47
+ ],
48
+
49
+ // Coverage configuration
50
+ coverage: {
51
+ provider: 'v8',
52
+ reporter: ['text', 'html', 'clover', 'json'],
53
+ exclude: [
54
+ 'node_modules/',
55
+ 'src/test/',
56
+ 'src/**/*.d.ts',
57
+ 'src/main.tsx',
58
+ 'src/vite-env.d.ts',
59
+ 'src/components/**/index.ts',
60
+ '**/*.config.ts',
61
+ 'build/',
62
+ 'dist/',
63
+ 'coverage/',
64
+ 'eslint.config.js',
65
+ ],
66
+ thresholds: {
67
+ global: {
68
+ branches: 85,
69
+ functions: 85,
70
+ lines: 85,
71
+ statements: 85,
72
+ },
73
+ },
74
+ },
75
+
76
+ // Test timeout
77
+ testTimeout: 10000,
78
+
79
+ // Globals for easier testing
80
+ globals: true,
81
+ },
82
+ };
83
+ });
@@ -0,0 +1,2 @@
1
+ /// <reference types="vitest" />
2
+ /// <reference types="@testing-library/jest-dom" />
@@ -0,0 +1,11 @@
1
+ import { defineConfig } from 'vitest/config';
2
+ import react from '@vitejs/plugin-react';
3
+
4
+ export default defineConfig({
5
+ plugins: [react()],
6
+ test: {
7
+ globals: true,
8
+ environment: 'jsdom',
9
+ setupFiles: './vitest.setup.ts',
10
+ },
11
+ });
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom/vitest';
@@ -0,0 +1,7 @@
1
+ {
2
+ "outputDir": "dist",
3
+ "routing": {
4
+ "trailingSlash": "never",
5
+ "fallback": "/index.html"
6
+ }
7
+ }
@@ -0,0 +1,6 @@
1
+ const { jestConfig } = require('@salesforce/sfdx-lwc-jest/config');
2
+
3
+ module.exports = {
4
+ ...jestConfig,
5
+ modulePathIgnorePatterns: ['<rootDir>/.localdevserver']
6
+ };
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@salesforce/webapp-template-base-sfdx-project-experimental",
3
+ "version": "1.29.0",
4
+ "description": "Base SFDX project template",
5
+ "private": true,
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "scripts": {
10
+ "build": "echo 'No build required for base-sfdx-project'",
11
+ "clean": "echo 'No clean required for base-sfdx-project'",
12
+ "lint": "eslint **/{aura,lwc}/**/*.js",
13
+ "test": "npm run test:unit",
14
+ "test:unit": "sfdx-lwc-jest -- --passWithNoTests",
15
+ "test:unit:watch": "sfdx-lwc-jest --watch",
16
+ "test:unit:debug": "sfdx-lwc-jest --debug",
17
+ "test:unit:coverage": "sfdx-lwc-jest --coverage",
18
+ "prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"",
19
+ "prettier:verify": "prettier --check \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"",
20
+ "precommit": "lint-staged"
21
+ },
22
+ "devDependencies": {
23
+ "@lwc/eslint-plugin-lwc": "^2.0.0",
24
+ "@prettier/plugin-xml": "^3.2.2",
25
+ "@salesforce/eslint-config-lwc": "^3.2.3",
26
+ "@salesforce/eslint-plugin-aura": "^2.0.0",
27
+ "@salesforce/eslint-plugin-lightning": "^1.0.0",
28
+ "@salesforce/sfdx-lwc-jest": "^7.0.1",
29
+ "eslint": "8.57.1",
30
+ "eslint-plugin-import": "^2.25.4",
31
+ "eslint-plugin-jest": "^28.8.1",
32
+ "husky": "^9.1.5",
33
+ "lint-staged": "^15.1.0",
34
+ "prettier": "^3.1.0",
35
+ "prettier-plugin-apex": "^2.0.1"
36
+ }
37
+ }
@@ -0,0 +1,10 @@
1
+ // Use .apex files to store anonymous Apex.
2
+ // You can execute anonymous Apex in VS Code by selecting the
3
+ // apex text and running the command:
4
+ // SFDX: Execute Anonymous Apex with Currently Selected Text
5
+ // You can also execute the entire file by running the command:
6
+ // SFDX: Execute Anonymous Apex with Editor Contents
7
+
8
+ string tempvar = 'Enter_your_name_here';
9
+ System.debug('Hello World!');
10
+ System.debug('My name is ' + tempvar);
@@ -0,0 +1,6 @@
1
+ // Use .soql files to store SOQL queries.
2
+ // You can execute queries in VS Code by selecting the
3
+ // query text and running the command:
4
+ // SFDX: Execute SOQL Query with Currently Selected Text
5
+
6
+ SELECT Id, Name FROM Account
@@ -0,0 +1,12 @@
1
+ {
2
+ "packageDirectories": [
3
+ {
4
+ "path": "force-app",
5
+ "default": true
6
+ }
7
+ ],
8
+ "name": "MyProject",
9
+ "namespace": "",
10
+ "sfdcLoginUrl": "https://login.salesforce.com",
11
+ "sourceApiVersion": "66.0"
12
+ }
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@salesforce/webapp-template-app-react-b2c-sample-experimental",
3
+ "version": "1.29.0",
4
+ "description": "B2C sample app template with app shell",
5
+ "license": "SEE LICENSE IN LICENSE.txt",
6
+ "author": "",
7
+ "type": "module",
8
+ "main": "index.js",
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "publishConfig": {
13
+ "access": "public"
14
+ },
15
+ "scripts": {
16
+ "build": "npx tsx ../../cli/src/index.ts apply-patches packages/template/app/appreactb2csample packages/template/base-app/base-react-app packages/template/app/appreactb2csample/dist --reset --skip-dependency-changes",
17
+ "clean": "rm -rf dist",
18
+ "dev": "cd dist/force-app/main/default/webapplications/appreactb2csample && npm install && npm run dev",
19
+ "watch": "npx tsx ../../cli/src/index.ts watch-patches packages/template/app/appreactb2csample packages/template/base-app/base-react-app packages/template/app/appreactb2csample/dist"
20
+ },
21
+ "devDependencies": {
22
+ "@types/react": "^19.2.7",
23
+ "@types/react-dom": "^19.2.3",
24
+ "react-dom": "^19.2.1",
25
+ "react-router": "^7.10.1"
26
+ },
27
+ "gitHead": "d03f7dfa5aaf0cbd7090c85413476f0ead4466d0"
28
+ }