@salesforce/templates 66.1.1 → 66.2.1

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 (238) hide show
  1. package/lib/generators/projectGenerator.d.ts +6 -0
  2. package/lib/generators/projectGenerator.js +42 -3
  3. package/lib/generators/projectGenerator.js.map +1 -1
  4. package/lib/templates/project/reactb2e/.a4drules/README.md +35 -0
  5. package/lib/templates/project/reactb2e/.a4drules/a4d-webapp-generate.md +27 -0
  6. package/lib/templates/project/reactb2e/.a4drules/build-validation.md +78 -0
  7. package/lib/templates/project/reactb2e/.a4drules/code-quality.md +137 -0
  8. package/lib/templates/project/reactb2e/.a4drules/graphql/tools/knowledge/lds-explore-graphql-schema.md +227 -0
  9. package/lib/templates/project/reactb2e/.a4drules/graphql/tools/knowledge/lds-generate-graphql-mutationquery.md +212 -0
  10. package/lib/templates/project/reactb2e/.a4drules/graphql/tools/knowledge/lds-generate-graphql-readquery.md +185 -0
  11. package/lib/templates/project/reactb2e/.a4drules/graphql/tools/knowledge/lds-guide-graphql.md +205 -0
  12. package/lib/templates/project/reactb2e/.a4drules/graphql/tools/schemas/shared.graphqls +1150 -0
  13. package/lib/templates/project/reactb2e/.a4drules/graphql.md +409 -0
  14. package/lib/templates/project/reactb2e/.a4drules/images.md +13 -0
  15. package/lib/templates/project/reactb2e/.a4drules/react.md +387 -0
  16. package/lib/templates/project/reactb2e/.a4drules/react_image_processing.md +45 -0
  17. package/lib/templates/project/reactb2e/.a4drules/typescript.md +224 -0
  18. package/lib/templates/project/reactb2e/.a4drules/ui-layout.md +23 -0
  19. package/lib/templates/project/reactb2e/.a4drules/webapp-nav-and-placeholders.md +33 -0
  20. package/lib/templates/project/reactb2e/.a4drules/webapp-no-node-e.md +25 -0
  21. package/lib/templates/project/reactb2e/.a4drules/webapp-ui-first.md +32 -0
  22. package/lib/templates/project/reactb2e/.a4drules/webapp.md +75 -0
  23. package/lib/templates/project/reactb2e/.forceignore +15 -0
  24. package/lib/templates/project/reactb2e/.husky/pre-commit +4 -0
  25. package/lib/templates/project/reactb2e/.prettierignore +11 -0
  26. package/lib/templates/project/reactb2e/.prettierrc +17 -0
  27. package/lib/templates/project/reactb2e/AGENT.md +75 -0
  28. package/lib/templates/project/reactb2e/CHANGELOG.md +696 -0
  29. package/lib/templates/project/reactb2e/README.md +18 -0
  30. package/lib/templates/project/reactb2e/config/project-scratch-def.json +13 -0
  31. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/.graphqlrc.yml +2 -0
  32. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/.prettierignore +9 -0
  33. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/.prettierrc +11 -0
  34. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/appreacttemplateb2e.webapplication-meta.xml +7 -0
  35. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/build/vite.config.d.ts +2 -0
  36. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/build/vite.config.js +93 -0
  37. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/codegen.yml +94 -0
  38. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/e2e/app.spec.ts +17 -0
  39. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/eslint.config.js +141 -0
  40. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/index.html +13 -0
  41. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/package-lock.json +14392 -0
  42. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/package.json +58 -0
  43. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/playwright.config.ts +24 -0
  44. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/scripts/get-graphql-schema.mjs +68 -0
  45. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/scripts/rewrite-e2e-assets.mjs +23 -0
  46. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/api/graphql-operations-types.ts +116 -0
  47. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/api/utils/accounts.ts +33 -0
  48. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/api/utils/query/highRevenueAccountsQuery.graphql +29 -0
  49. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/app.tsx +22 -0
  50. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/appLayout.tsx +19 -0
  51. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/assets/icons/book.svg +3 -0
  52. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/assets/icons/copy.svg +4 -0
  53. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/assets/icons/rocket.svg +3 -0
  54. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/assets/icons/star.svg +3 -0
  55. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/assets/images/codey-1.png +0 -0
  56. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/assets/images/codey-2.png +0 -0
  57. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/assets/images/codey-3.png +0 -0
  58. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/assets/images/vibe-codey.svg +194 -0
  59. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/AgentforceConversationClient.tsx +127 -0
  60. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/index.ts +6 -0
  61. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/navigationMenu.tsx +80 -0
  62. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/pages/Home.tsx +12 -0
  63. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/pages/NotFound.tsx +18 -0
  64. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/router-utils.tsx +35 -0
  65. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/routes.tsx +22 -0
  66. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/styles/global.css +13 -0
  67. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/types/conversation.ts +21 -0
  68. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/tsconfig.json +36 -0
  69. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/tsconfig.node.json +13 -0
  70. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/vite-env.d.ts +1 -0
  71. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/vite.config.ts +102 -0
  72. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/vitest-env.d.ts +2 -0
  73. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/vitest.config.ts +11 -0
  74. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/vitest.setup.ts +1 -0
  75. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/webapplication.json +7 -0
  76. package/lib/templates/project/reactb2e/jest.config.js +6 -0
  77. package/lib/templates/project/reactb2e/package.json +38 -0
  78. package/lib/templates/project/reactb2e/scripts/apex/hello.apex +10 -0
  79. package/lib/templates/project/reactb2e/scripts/soql/account.soql +6 -0
  80. package/lib/templates/project/reactb2e/sfdx-project.json +12 -0
  81. package/lib/templates/project/reactb2x/.a4drules/README.md +35 -0
  82. package/lib/templates/project/reactb2x/.a4drules/a4d-webapp-generate.md +27 -0
  83. package/lib/templates/project/reactb2x/.a4drules/build-validation.md +78 -0
  84. package/lib/templates/project/reactb2x/.a4drules/code-quality.md +137 -0
  85. package/lib/templates/project/reactb2x/.a4drules/graphql/tools/knowledge/lds-explore-graphql-schema.md +227 -0
  86. package/lib/templates/project/reactb2x/.a4drules/graphql/tools/knowledge/lds-generate-graphql-mutationquery.md +212 -0
  87. package/lib/templates/project/reactb2x/.a4drules/graphql/tools/knowledge/lds-generate-graphql-readquery.md +185 -0
  88. package/lib/templates/project/reactb2x/.a4drules/graphql/tools/knowledge/lds-guide-graphql.md +205 -0
  89. package/lib/templates/project/reactb2x/.a4drules/graphql/tools/schemas/shared.graphqls +1150 -0
  90. package/lib/templates/project/reactb2x/.a4drules/graphql.md +409 -0
  91. package/lib/templates/project/reactb2x/.a4drules/images.md +13 -0
  92. package/lib/templates/project/reactb2x/.a4drules/react.md +387 -0
  93. package/lib/templates/project/reactb2x/.a4drules/react_image_processing.md +45 -0
  94. package/lib/templates/project/reactb2x/.a4drules/typescript.md +224 -0
  95. package/lib/templates/project/reactb2x/.a4drules/ui-layout.md +23 -0
  96. package/lib/templates/project/reactb2x/.a4drules/webapp-nav-and-placeholders.md +33 -0
  97. package/lib/templates/project/reactb2x/.a4drules/webapp-no-node-e.md +25 -0
  98. package/lib/templates/project/reactb2x/.a4drules/webapp-ui-first.md +32 -0
  99. package/lib/templates/project/reactb2x/.a4drules/webapp.md +75 -0
  100. package/lib/templates/project/reactb2x/.forceignore +15 -0
  101. package/lib/templates/project/reactb2x/.husky/pre-commit +4 -0
  102. package/lib/templates/project/reactb2x/.prettierignore +11 -0
  103. package/lib/templates/project/reactb2x/.prettierrc +17 -0
  104. package/lib/templates/project/reactb2x/AGENT.md +75 -0
  105. package/lib/templates/project/reactb2x/CHANGELOG.md +696 -0
  106. package/lib/templates/project/reactb2x/README.md +18 -0
  107. package/lib/templates/project/reactb2x/config/project-scratch-def.json +13 -0
  108. package/lib/templates/project/reactb2x/force-app/main/default/classes/WebAppAuthUtils.cls +68 -0
  109. package/lib/templates/project/reactb2x/force-app/main/default/classes/WebAppAuthUtils.cls-meta.xml +5 -0
  110. package/lib/templates/project/reactb2x/force-app/main/default/classes/WebAppChangePassword.cls +77 -0
  111. package/lib/templates/project/reactb2x/force-app/main/default/classes/WebAppChangePassword.cls-meta.xml +5 -0
  112. package/lib/templates/project/reactb2x/force-app/main/default/classes/WebAppForgotPassword.cls +71 -0
  113. package/lib/templates/project/reactb2x/force-app/main/default/classes/WebAppForgotPassword.cls-meta.xml +5 -0
  114. package/lib/templates/project/reactb2x/force-app/main/default/classes/WebAppLogin.cls +105 -0
  115. package/lib/templates/project/reactb2x/force-app/main/default/classes/WebAppLogin.cls-meta.xml +5 -0
  116. package/lib/templates/project/reactb2x/force-app/main/default/classes/WebAppRegistration.cls +162 -0
  117. package/lib/templates/project/reactb2x/force-app/main/default/classes/WebAppRegistration.cls-meta.xml +5 -0
  118. package/lib/templates/project/reactb2x/force-app/main/default/digitalExperienceConfigs/appreacttemplateb2x1.digitalExperienceConfig +8 -0
  119. package/lib/templates/project/reactb2x/force-app/main/default/digitalExperiences/site/appreacttemplateb2x1/appreacttemplateb2x1.digitalExperience-meta.xml +11 -0
  120. package/lib/templates/project/reactb2x/force-app/main/default/digitalExperiences/site/appreacttemplateb2x1/sfdc_cms__site/appreacttemplateb2x1/_meta.json +5 -0
  121. package/lib/templates/project/reactb2x/force-app/main/default/digitalExperiences/site/appreacttemplateb2x1/sfdc_cms__site/appreacttemplateb2x1/content.json +10 -0
  122. package/lib/templates/project/reactb2x/force-app/main/default/networks/appreacttemplateb2x.network +60 -0
  123. package/lib/templates/project/reactb2x/force-app/main/default/package.xml +20 -0
  124. package/lib/templates/project/reactb2x/force-app/main/default/sites/appreacttemplateb2x.site +31 -0
  125. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/.graphqlrc.yml +2 -0
  126. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/.prettierignore +9 -0
  127. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/.prettierrc +11 -0
  128. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/appreacttemplateb2x.webapplication-meta.xml +7 -0
  129. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/build/vite.config.d.ts +2 -0
  130. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/build/vite.config.js +93 -0
  131. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/codegen.yml +94 -0
  132. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/e2e/app.spec.ts +17 -0
  133. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/eslint.config.js +141 -0
  134. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/index.html +13 -0
  135. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/package-lock.json +18408 -0
  136. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/package.json +66 -0
  137. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/playwright.config.ts +24 -0
  138. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/scripts/get-graphql-schema.mjs +68 -0
  139. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/scripts/rewrite-e2e-assets.mjs +23 -0
  140. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/api/graphql-operations-types.ts +116 -0
  141. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/api/utils/accounts.ts +33 -0
  142. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/api/utils/query/highRevenueAccountsQuery.graphql +29 -0
  143. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/app.tsx +13 -0
  144. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/appLayout.tsx +11 -0
  145. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/assets/icons/book.svg +3 -0
  146. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/assets/icons/copy.svg +4 -0
  147. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/assets/icons/rocket.svg +3 -0
  148. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/assets/icons/star.svg +3 -0
  149. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/assets/images/codey-1.png +0 -0
  150. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/assets/images/codey-2.png +0 -0
  151. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/assets/images/codey-3.png +0 -0
  152. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/assets/images/vibe-codey.svg +194 -0
  153. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/alerts/status-alert.tsx +45 -0
  154. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/auth/authHelpers.ts +73 -0
  155. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/auth/authenticationConfig.ts +61 -0
  156. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/auth/authenticationRouteLayout.tsx +21 -0
  157. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/auth/privateRouteLayout.tsx +36 -0
  158. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/auth/sessionTimeout/SessionTimeoutValidator.tsx +616 -0
  159. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/auth/sessionTimeout/sessionTimeService.ts +161 -0
  160. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/auth/sessionTimeout/sessionTimeoutConfig.ts +77 -0
  161. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/footers/footer-link.tsx +36 -0
  162. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/forms/auth-form.tsx +81 -0
  163. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/forms/submit-button.tsx +49 -0
  164. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/layout/card-layout.tsx +23 -0
  165. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/layout/card-skeleton.tsx +38 -0
  166. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/layout/centered-page-layout.tsx +73 -0
  167. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/alert.tsx +69 -0
  168. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/button.tsx +67 -0
  169. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/card.tsx +92 -0
  170. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/dialog.tsx +143 -0
  171. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/field.tsx +222 -0
  172. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/index.ts +72 -0
  173. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/input.tsx +19 -0
  174. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/label.tsx +19 -0
  175. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/pagination.tsx +112 -0
  176. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/select.tsx +183 -0
  177. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/separator.tsx +26 -0
  178. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/skeleton.tsx +14 -0
  179. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/spinner.tsx +15 -0
  180. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/table.tsx +87 -0
  181. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/tabs.tsx +78 -0
  182. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components.json +18 -0
  183. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/context/AuthContext.tsx +95 -0
  184. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/hooks/form.tsx +116 -0
  185. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/hooks/useCountdownTimer.ts +266 -0
  186. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/hooks/useRetryWithBackoff.ts +109 -0
  187. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/layouts/AuthAppLayout.tsx +12 -0
  188. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/lib/data-sdk.ts +21 -0
  189. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/lib/utils.ts +6 -0
  190. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/navigationMenu.tsx +80 -0
  191. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/pages/ChangePassword.tsx +107 -0
  192. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/pages/ForgotPassword.tsx +73 -0
  193. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/pages/Home.tsx +12 -0
  194. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/pages/Login.tsx +97 -0
  195. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/pages/NotFound.tsx +18 -0
  196. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/pages/Profile.tsx +178 -0
  197. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/pages/Register.tsx +138 -0
  198. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/pages/ResetPassword.tsx +107 -0
  199. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/router-utils.tsx +35 -0
  200. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/routes.tsx +71 -0
  201. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/styles/global.css +135 -0
  202. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/utils/helpers.ts +121 -0
  203. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/tsconfig.json +36 -0
  204. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/tsconfig.node.json +13 -0
  205. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/vite-env.d.ts +1 -0
  206. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/vite.config.ts +102 -0
  207. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/vitest-env.d.ts +2 -0
  208. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/vitest.config.ts +11 -0
  209. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/vitest.setup.ts +1 -0
  210. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/webapplication.json +7 -0
  211. package/lib/templates/project/reactb2x/jest.config.js +6 -0
  212. package/lib/templates/project/reactb2x/package.json +38 -0
  213. package/lib/templates/project/reactb2x/scripts/apex/hello.apex +10 -0
  214. package/lib/templates/project/reactb2x/scripts/soql/account.soql +6 -0
  215. package/lib/templates/project/reactb2x/sfdx-project.json +12 -0
  216. package/lib/templates/webapplication/reactbasic/.graphqlrc.yml +2 -0
  217. package/lib/templates/webapplication/reactbasic/build/vite.config.js +20 -1
  218. package/lib/templates/webapplication/reactbasic/codegen.yml +94 -0
  219. package/lib/templates/webapplication/reactbasic/e2e/app.spec.ts +0 -7
  220. package/lib/templates/webapplication/reactbasic/eslint.config.js +28 -0
  221. package/lib/templates/webapplication/reactbasic/package-lock.json +10090 -2874
  222. package/lib/templates/webapplication/reactbasic/package.json +16 -4
  223. package/lib/templates/webapplication/reactbasic/scripts/get-graphql-schema.mjs +68 -0
  224. package/lib/templates/webapplication/reactbasic/src/api/graphql-operations-types.ts +23 -34
  225. package/lib/templates/webapplication/reactbasic/src/api/utils/accounts.ts +33 -0
  226. package/lib/templates/webapplication/reactbasic/src/app.tsx +10 -1
  227. package/lib/templates/webapplication/reactbasic/src/appLayout.tsx +2 -0
  228. package/lib/templates/webapplication/reactbasic/src/navigationMenu.tsx +80 -0
  229. package/lib/templates/webapplication/reactbasic/src/router-utils.tsx +35 -0
  230. package/lib/templates/webapplication/reactbasic/src/routes.tsx +1 -7
  231. package/lib/templates/webapplication/reactbasic/vite.config.ts +20 -1
  232. package/lib/tsconfig.tsbuildinfo +1 -1
  233. package/lib/utils/types.d.ts +1 -1
  234. package/lib/utils/webappTemplateUtils.d.ts +54 -0
  235. package/lib/utils/webappTemplateUtils.js +219 -0
  236. package/lib/utils/webappTemplateUtils.js.map +1 -0
  237. package/package.json +7 -5
  238. package/lib/templates/webapplication/reactbasic/src/pages/About.tsx +0 -12
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "base-react-app",
3
+ "private": true,
4
+ "version": "1.0.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "start": "vite",
8
+ "build": "tsc -b && vite build",
9
+ "build:e2e": "npm run build && node scripts/rewrite-e2e-assets.mjs",
10
+ "lint": "eslint .",
11
+ "preview": "vite preview",
12
+ "test": "vitest",
13
+ "graphql:codegen": "graphql-codegen",
14
+ "graphql:schema": "node scripts/get-graphql-schema.mjs"
15
+ },
16
+ "dependencies": {
17
+ "@salesforce/sdk-data": "^1.11.2",
18
+ "@salesforce/webapp-experimental": "*",
19
+ "@tailwindcss/vite": "^4.1.17",
20
+ "@tanstack/react-form": "^1.28.3",
21
+ "class-variance-authority": "^0.7.1",
22
+ "clsx": "^2.1.1",
23
+ "lucide-react": "^0.562.0",
24
+ "radix-ui": "^1.4.3",
25
+ "react": "^19.2.0",
26
+ "react-dom": "^19.2.0",
27
+ "react-router": "^7.10.1",
28
+ "shadcn": "^3.8.5",
29
+ "tailwind-merge": "^3.5.0",
30
+ "tailwindcss": "^4.1.17",
31
+ "tw-animate-css": "^1.4.0",
32
+ "zod": "^4.3.6"
33
+ },
34
+ "devDependencies": {
35
+ "@eslint/js": "^9.39.1",
36
+ "@graphql-codegen/cli": "^6.1.0",
37
+ "@graphql-codegen/typescript": "^5.0.6",
38
+ "@graphql-codegen/typescript-operations": "^5.0.6",
39
+ "@graphql-eslint/eslint-plugin": "^4.1.0",
40
+ "@graphql-tools/utils": "^11.0.0",
41
+ "@playwright/test": "^1.49.0",
42
+ "@salesforce/vite-plugin-webapp-experimental": "*",
43
+ "@testing-library/jest-dom": "^6.6.3",
44
+ "@testing-library/react": "^16.1.0",
45
+ "@testing-library/user-event": "^14.5.2",
46
+ "@types/node": "^24.10.1",
47
+ "@types/react": "^19.2.5",
48
+ "@types/react-dom": "^19.2.3",
49
+ "@vitejs/plugin-react": "^5.1.1",
50
+ "@vitest/ui": "^4.0.17",
51
+ "eslint": "^9.39.1",
52
+ "eslint-plugin-react": "^7.37.2",
53
+ "eslint-plugin-react-hooks": "^7.0.1",
54
+ "eslint-plugin-react-refresh": "^0.4.24",
55
+ "globals": "^16.5.0",
56
+ "graphql": "^16.11.0",
57
+ "graphql-codegen-typescript-operation-types": "^2.0.2",
58
+ "jsdom": "^25.0.1",
59
+ "serve": "^14.2.5",
60
+ "typescript": "~5.9.3",
61
+ "typescript-eslint": "^8.46.4",
62
+ "vite": "^7.2.4",
63
+ "vite-plugin-graphql-codegen": "^3.6.3",
64
+ "vitest": "^4.0.17"
65
+ }
66
+ }
@@ -0,0 +1,24 @@
1
+ import { defineConfig, devices } from '@playwright/test';
2
+
3
+ const E2E_PORT = 5175;
4
+
5
+ export default defineConfig({
6
+ testDir: './e2e',
7
+ fullyParallel: true,
8
+ forbidOnly: !!process.env.CI,
9
+ retries: process.env.CI ? 2 : 0,
10
+ workers: process.env.CI ? 1 : undefined,
11
+ reporter: 'html',
12
+ use: {
13
+ baseURL: `http://localhost:${E2E_PORT}`,
14
+ trace: 'on-first-retry',
15
+ },
16
+ projects: [{ name: 'chromium', use: { ...devices['Desktop Chrome'] } }],
17
+ webServer: {
18
+ // Serve built dist/ with static server so e2e works in CI without SF org (vite preview runs plugin and can fail)
19
+ command: `npx serve dist -l ${E2E_PORT}`,
20
+ url: `http://localhost:${E2E_PORT}`,
21
+ reuseExistingServer: !process.env.CI,
22
+ timeout: process.env.CI ? 120_000 : 60_000,
23
+ },
24
+ });
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Downloads the full GraphQL schema from a connected Salesforce org via introspection.
3
+ *
4
+ * Usage:
5
+ * npm run graphql:schema
6
+ * node scripts/get-graphql-schema.mjs [output-path]
7
+ *
8
+ * The default output path matches the schema location expected by codegen.yml
9
+ * and .graphqlrc.yml so that codegen and IDE tooling resolve it automatically.
10
+ */
11
+ import { writeFileSync } from 'node:fs';
12
+ import { resolve } from 'node:path';
13
+ import { getOrgInfo } from '@salesforce/webapp-experimental/app';
14
+ import { buildClientSchema, getIntrospectionQuery, printSchema } from 'graphql';
15
+ import { pruneSchema } from '@graphql-tools/utils';
16
+
17
+ const DEFAULT_SCHEMA_PATH = '../../../../../schema.graphql';
18
+
19
+ async function executeSalesforceGraphQLQuery(query, variables, operationName) {
20
+ const {
21
+ rawInstanceUrl: instanceUrl,
22
+ apiVersion,
23
+ accessToken,
24
+ } = await getOrgInfo();
25
+
26
+ const targetUrl = `${instanceUrl}/services/data/v${apiVersion}/graphql`;
27
+
28
+ console.log(`Executing introspection query against ${targetUrl}`);
29
+ const response = await fetch(targetUrl, {
30
+ method: 'POST',
31
+ headers: {
32
+ Authorization: `Bearer ${accessToken}`,
33
+ 'Content-Type': 'application/json',
34
+ 'X-Chatter-Entity-Encoding': 'false',
35
+ },
36
+ body: JSON.stringify({ query, variables, operationName }),
37
+ });
38
+
39
+ if (!response.ok) {
40
+ const errorText = await response.text();
41
+ throw new Error(
42
+ `Salesforce GraphQL request failed: ${response.status} ${response.statusText} - ${errorText}`
43
+ );
44
+ }
45
+
46
+ return response.json();
47
+ }
48
+
49
+ try {
50
+ const outputPath = resolve(process.argv[2] || DEFAULT_SCHEMA_PATH);
51
+
52
+ const introspectionResult = await executeSalesforceGraphQLQuery(
53
+ getIntrospectionQuery(),
54
+ {},
55
+ 'IntrospectionQuery'
56
+ );
57
+
58
+ const schema = buildClientSchema(introspectionResult.data);
59
+ const prunedSchema = pruneSchema(schema);
60
+ const sdl = printSchema(prunedSchema);
61
+
62
+ writeFileSync(outputPath, sdl);
63
+
64
+ console.log(`Schema saved to ${outputPath}`);
65
+ } catch (error) {
66
+ console.error('Error:', error.message);
67
+ process.exit(1);
68
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Prepares dist/ for e2e: root-relative asset paths + SPA fallback for serve.
3
+ */
4
+ import { readFileSync, writeFileSync } from 'node:fs';
5
+ import { join, dirname } from 'node:path';
6
+ import { fileURLToPath } from 'node:url';
7
+
8
+ const __dirname = dirname(fileURLToPath(import.meta.url));
9
+ const distDir = join(__dirname, '..', 'dist');
10
+
11
+ // Rewrite index.html so asset paths are root-relative (/assets/...)
12
+ const indexPath = join(distDir, 'index.html');
13
+ let html = readFileSync(indexPath, 'utf8');
14
+ html = html.replace(/(src|href)="[^"]*\/assets\//g, '$1="/assets/');
15
+ writeFileSync(indexPath, html);
16
+
17
+ // SPA fallback so /about, /non-existent-route etc. serve index.html
18
+ writeFileSync(
19
+ join(distDir, 'serve.json'),
20
+ JSON.stringify({
21
+ rewrites: [{ source: '**', destination: '/index.html' }],
22
+ })
23
+ );
@@ -0,0 +1,116 @@
1
+ export type Maybe<T> = T | null;
2
+ export type InputMaybe<T> = Maybe<T>;
3
+ export type Exact<T extends { [key: string]: unknown }> = {
4
+ [K in keyof T]: T[K];
5
+ };
6
+ export type MakeOptional<T, K extends keyof T> = Omit<T, K> & {
7
+ [SubKey in K]?: Maybe<T[SubKey]>;
8
+ };
9
+ export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {
10
+ [SubKey in K]: Maybe<T[SubKey]>;
11
+ };
12
+ export type MakeEmpty<
13
+ T extends { [key: string]: unknown },
14
+ K extends keyof T,
15
+ > = { [_ in K]?: never };
16
+ export type Incremental<T> =
17
+ | T
18
+ | {
19
+ [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never;
20
+ };
21
+ /** All built-in and custom scalars, mapped to their actual values */
22
+ export type Scalars = {
23
+ ID: { input: string; output: string };
24
+ String: { input: string; output: string };
25
+ Boolean: { input: boolean; output: boolean };
26
+ Int: { input: number; output: number };
27
+ Float: { input: number; output: number };
28
+ Base64: { input: string; output: string };
29
+ Currency: { input: number | string; output: number };
30
+ Date: { input: string; output: string };
31
+ DateTime: { input: string; output: string };
32
+ Double: { input: number | string; output: number };
33
+ Email: { input: string; output: string };
34
+ EncryptedString: { input: string; output: string };
35
+ /** Can be set to an ID or a Reference to the result of another mutation operation. */
36
+ IdOrRef: { input: string; output: string };
37
+ Latitude: { input: number | string; output: number };
38
+ /** A 64-bit signed integer */
39
+ Long: { input: number; output: number };
40
+ LongTextArea: { input: string; output: string };
41
+ Longitude: { input: number | string; output: number };
42
+ MultiPicklist: { input: string; output: string };
43
+ Percent: { input: number | string; output: number };
44
+ PhoneNumber: { input: string; output: string };
45
+ Picklist: { input: string; output: string };
46
+ RichTextArea: { input: string; output: string };
47
+ TextArea: { input: string; output: string };
48
+ Time: { input: string; output: string };
49
+ Url: { input: string; output: string };
50
+ };
51
+
52
+ export enum DataType {
53
+ Address = 'ADDRESS',
54
+ Anytype = 'ANYTYPE',
55
+ Base64 = 'BASE64',
56
+ Boolean = 'BOOLEAN',
57
+ Combobox = 'COMBOBOX',
58
+ Complexvalue = 'COMPLEXVALUE',
59
+ Currency = 'CURRENCY',
60
+ Date = 'DATE',
61
+ Datetime = 'DATETIME',
62
+ Double = 'DOUBLE',
63
+ Email = 'EMAIL',
64
+ Encryptedstring = 'ENCRYPTEDSTRING',
65
+ Int = 'INT',
66
+ Json = 'JSON',
67
+ Junctionidlist = 'JUNCTIONIDLIST',
68
+ Location = 'LOCATION',
69
+ Long = 'LONG',
70
+ Multipicklist = 'MULTIPICKLIST',
71
+ Percent = 'PERCENT',
72
+ Phone = 'PHONE',
73
+ Picklist = 'PICKLIST',
74
+ Reference = 'REFERENCE',
75
+ String = 'STRING',
76
+ Textarea = 'TEXTAREA',
77
+ Time = 'TIME',
78
+ Url = 'URL',
79
+ }
80
+
81
+ export enum FieldExtraTypeInfo {
82
+ ExternalLookup = 'EXTERNAL_LOOKUP',
83
+ ImageUrl = 'IMAGE_URL',
84
+ IndirectLookup = 'INDIRECT_LOOKUP',
85
+ Personname = 'PERSONNAME',
86
+ Plaintextarea = 'PLAINTEXTAREA',
87
+ Richtextarea = 'RICHTEXTAREA',
88
+ SwitchablePersonname = 'SWITCHABLE_PERSONNAME',
89
+ }
90
+
91
+ export enum ResultOrder {
92
+ Asc = 'ASC',
93
+ Desc = 'DESC',
94
+ }
95
+
96
+ export type GetHighRevenueAccountsQueryVariables = Exact<{
97
+ minRevenue?: InputMaybe<Scalars['Currency']['input']>;
98
+ }>;
99
+
100
+ export type GetHighRevenueAccountsQuery = {
101
+ uiapi: {
102
+ query: {
103
+ Account?: {
104
+ edges?: Array<{
105
+ node?: {
106
+ Id: string;
107
+ Name?: { value?: string | null } | null;
108
+ AnnualRevenue?: { value?: number | null } | null;
109
+ Industry?: { value?: string | null } | null;
110
+ Website?: { value?: string | null } | null;
111
+ } | null;
112
+ } | null> | null;
113
+ } | null;
114
+ };
115
+ };
116
+ };
@@ -0,0 +1,33 @@
1
+ import { executeGraphQL } from '@salesforce/webapp-experimental/api';
2
+ import HIGH_REVENUE_ACCOUNTS_QUERY from './query/highRevenueAccountsQuery.graphql?raw';
3
+ import type {
4
+ GetHighRevenueAccountsQuery,
5
+ GetHighRevenueAccountsQueryVariables,
6
+ } from '../graphql-operations-types';
7
+
8
+ type AccountNode = NonNullable<
9
+ NonNullable<
10
+ NonNullable<
11
+ NonNullable<
12
+ GetHighRevenueAccountsQuery['uiapi']['query']['Account']
13
+ >['edges']
14
+ >[number]
15
+ >['node']
16
+ >;
17
+
18
+ /**
19
+ * Fetch accounts with annual revenue greater than the specified amount
20
+ *
21
+ * @param minRevenue - Minimum annual revenue threshold (default: 100000)
22
+ * @returns Array of accounts matching the criteria
23
+ */
24
+ export async function getHighRevenueAccounts(
25
+ variables: GetHighRevenueAccountsQueryVariables
26
+ ): Promise<(AccountNode | null | undefined)[]> {
27
+ const response = await executeGraphQL<GetHighRevenueAccountsQuery>(
28
+ HIGH_REVENUE_ACCOUNTS_QUERY,
29
+ variables
30
+ );
31
+
32
+ return response.uiapi?.query?.Account?.edges?.map(edge => edge?.node) || [];
33
+ }
@@ -0,0 +1,29 @@
1
+ query GetHighRevenueAccounts($minRevenue: Currency) {
2
+ uiapi {
3
+ query {
4
+ Account(
5
+ where: { AnnualRevenue: { gt: $minRevenue } }
6
+ orderBy: { AnnualRevenue: { order: DESC } }
7
+ first: 50
8
+ ) {
9
+ edges {
10
+ node {
11
+ Id
12
+ Name {
13
+ value
14
+ }
15
+ AnnualRevenue {
16
+ value
17
+ }
18
+ Industry {
19
+ value
20
+ }
21
+ Website {
22
+ value
23
+ }
24
+ }
25
+ }
26
+ }
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,13 @@
1
+ import { createBrowserRouter, RouterProvider } from "react-router";
2
+ import { routes } from "./routes";
3
+ import { StrictMode } from "react";
4
+ import { createRoot } from "react-dom/client";
5
+ import "./styles/global.css";
6
+
7
+ const router = createBrowserRouter(routes);
8
+
9
+ createRoot(document.getElementById("root")!).render(
10
+ <StrictMode>
11
+ <RouterProvider router={router} />
12
+ </StrictMode>,
13
+ );
@@ -0,0 +1,11 @@
1
+ import { Outlet } from 'react-router';
2
+ import NavigationMenu from './navigationMenu';
3
+
4
+ export default function AppLayout() {
5
+ return (
6
+ <>
7
+ <NavigationMenu />
8
+ <Outlet />
9
+ </>
10
+ );
11
+ }
@@ -0,0 +1,3 @@
1
+ <svg width="14" height="12" viewBox="0 0 14 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M13.4935 0.000188828L13.9735 0.533522V10.5069L13.4935 11.0402H8.21348L7.36015 11.8935H6.61348L5.76015 11.0402H0.48015L0.000149727 10.5069V0.533522L0.48015 0.000188828H5.97348L6.34682 0.160189L6.98682 0.800188L7.62682 0.160189L8.00015 0.000188828H13.4935ZM6.50682 10.3469V1.76019L5.76015 1.01352H1.01348V10.0269H5.97348L6.29348 10.1869L6.50682 10.3469ZM13.0135 10.0269V1.01352H8.21348L7.52015 1.70685V10.2935L7.62682 10.1869L8.00015 10.0269H13.0135ZM5.01348 3.04019V4.00019H1.97348V3.04019H5.01348ZM5.01348 7.04019V8.00019H1.97348V7.04019H5.01348ZM1.97348 5.01352V6.02686H5.01348V5.01352H1.97348ZM12.0001 3.04019V4.00019H9.01348V3.04019H12.0001ZM9.01348 5.01352V6.02686H12.0001V5.01352H9.01348ZM9.01348 7.04019V8.00019H12.0001V7.04019H9.01348Z" fill="#0250D9"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M5 5L6.25 3.75H13.0175L17.5 8.2325V17.5L16.25 18.75H6.25L5 17.5V5ZM16.25 8.75L12.5 5H6.25V17.5H16.25V8.75Z" fill="#2E2E2E"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M3.75 1.25L2.5 2.5V15L3.75 16.25V2.5H11.7675L10.5175 1.25H3.75Z" fill="#2E2E2E"/>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M13.4935 0.000149727L13.9735 0.480149C13.9735 2.15126 13.5646 3.80459 12.7468 5.44015C12.0713 6.7557 11.1468 8.05348 9.97348 9.33348V13.4935L9.49348 13.9735H6.50682L6.13348 13.8668L0.16015 7.84015L0.000149727 7.46682V4.48015L0.48015 4.00015H4.64015C5.92015 2.82682 7.21793 1.90237 8.53348 1.22682C10.169 0.409039 11.8224 0.000149727 13.4935 0.000149727ZM1.01348 4.96015V7.30682L1.38682 7.68015C2.06237 6.72015 2.80904 5.81348 3.62682 4.96015H1.01348ZM6.66682 12.9601H8.96015V10.3468C8.14237 11.1646 7.25348 11.9113 6.29348 12.5868L6.66682 12.9601ZM5.54682 11.8401C6.40015 11.2713 7.23571 10.6135 8.05348 9.86682C9.33348 8.62237 10.3824 7.36015 11.2002 6.08015C12.2668 4.37348 12.8535 2.68459 12.9601 1.01348C11.289 1.12015 9.60015 1.70682 7.89348 2.77348C6.61348 3.59126 5.35126 4.64015 4.10682 5.92015C3.36015 6.73793 2.70237 7.57348 2.13348 8.42682L5.54682 11.8401ZM2.98682 13.9735H0.000149727V10.9868H1.01348V12.9601H2.98682V13.9735ZM9.76015 6.29348C9.51126 6.64904 9.17348 6.88015 8.74682 6.98682C8.35571 7.05793 7.98237 6.98682 7.62682 6.77348C7.30682 6.52459 7.09348 6.20459 6.98682 5.81348C6.91571 5.38682 6.98682 5.01348 7.20015 4.69348C7.44904 4.33793 7.76904 4.12459 8.16015 4.05348C8.58682 3.94682 8.96015 4.01793 9.28015 4.26682C9.63571 4.48015 9.84904 4.80015 9.92015 5.22682C10.0268 5.61793 9.97348 5.97348 9.76015 6.29348Z" fill="#066AFE"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="14" height="13" viewBox="0 0 14 13" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M5.70684 0.533125C5.8135 0.319791 5.9735 0.177569 6.18684 0.106458C6.40017 0.0353467 6.6135 0.0353467 6.82684 0.106458C7.04017 0.177569 7.20017 0.319791 7.30684 0.533125L8.8535 3.62646L12.2135 4.10646C12.4624 4.14201 12.6579 4.26646 12.8002 4.47979C12.9424 4.65757 13.0135 4.8709 13.0135 5.11979C13.0135 5.33312 12.9246 5.5109 12.7468 5.65312L10.2935 8.05312L10.8802 11.4665C10.9157 11.6798 10.8624 11.8931 10.7202 12.1065C10.5779 12.2842 10.4002 12.4087 10.1868 12.4798C9.9735 12.5509 9.76017 12.5331 9.54684 12.4265L6.50684 10.8265L3.46684 12.4265C3.2535 12.5331 3.04017 12.5509 2.82684 12.4798C2.6135 12.4087 2.43572 12.2842 2.2935 12.1065C2.15128 11.8931 2.09795 11.6798 2.1335 11.4665L2.72017 8.05312L0.266836 5.65312C0.0890582 5.5109 0.000169277 5.33312 0.000169277 5.11979C0.000169277 4.8709 0.0712804 4.65757 0.213503 4.47979C0.355725 4.26646 0.55128 4.14201 0.800169 4.10646L4.16017 3.62646L5.70684 0.533125ZM6.50684 1.17312L5.06684 4.10646C4.92461 4.3909 4.6935 4.56868 4.3735 4.63979L1.12017 5.06646L3.46684 7.35979C3.71572 7.60868 3.80461 7.87535 3.7335 8.15979L3.20017 11.4131L6.08017 9.86646C6.36461 9.72424 6.64906 9.72424 6.9335 9.86646L9.8135 11.4131L9.28017 8.15979C9.24461 7.87535 9.3335 7.60868 9.54684 7.35979L11.8935 5.06646L8.64017 4.63979C8.32017 4.56868 8.08906 4.3909 7.94684 4.10646L6.50684 1.17312Z" fill="#066AFE"/>
3
+ </svg>