@salesforce/templates 66.5.6 → 66.6.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 (352) hide show
  1. package/lib/generators/projectGenerator.d.ts +1 -1
  2. package/lib/generators/projectGenerator.js +3 -3
  3. package/lib/generators/projectGenerator.js.map +1 -1
  4. package/lib/templates/project/{reactb2e → reactexternalapp}/AGENT.md +6 -10
  5. package/lib/templates/project/{reactb2e → reactexternalapp}/CHANGELOG.md +59 -0
  6. package/lib/templates/project/{reactb2x → reactexternalapp}/README.md +14 -14
  7. package/lib/templates/project/{reactb2x/_p_/_m_/_d_/_s_/_a1_/appreacttemplateb2x1.digitalExperience-meta.xml → reactexternalapp/_p_/_m_/_d_/_s_/_a1_/reactexternalapp1.digitalExperience-meta.xml} +1 -1
  8. package/lib/templates/project/{reactb2x/_p_/_m_/_d_/_s_/_a1_/sfdc_cms__site/appreacttemplateb2x1 → reactexternalapp/_p_/_m_/_d_/_s_/_a1_/sfdc_cms__site/reactexternalapp1}/_meta.json +1 -1
  9. package/lib/templates/project/{reactb2x/_p_/_m_/_d_/_s_/_a1_/sfdc_cms__site/appreacttemplateb2x1 → reactexternalapp/_p_/_m_/_d_/_s_/_a1_/sfdc_cms__site/reactexternalapp1}/content.json +3 -3
  10. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/README.md +2 -2
  11. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/package.json +3 -3
  12. package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/appreacttemplateb2x.webapplication-meta.xml → reactexternalapp/_p_/_m_/_w_/_a_/reactexternalapp.webapplication-meta.xml} +1 -1
  13. package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/pages/AccountSearch.tsx +82 -54
  14. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/FilterContext.tsx +73 -0
  15. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/PaginationControls.tsx +109 -0
  16. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/BooleanFilter.tsx +16 -36
  17. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateFilter.tsx +121 -0
  18. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateRangeFilter.tsx +14 -23
  19. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/MultiSelectFilter.tsx +18 -26
  20. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/NumericRangeFilter.tsx +22 -39
  21. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SearchFilter.tsx +37 -0
  22. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SelectFilter.tsx +30 -34
  23. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/TextFilter.tsx +74 -0
  24. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useAsyncData.ts +1 -0
  25. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useCachedAsyncData.ts +1 -0
  26. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useObjectSearchParams.ts +22 -0
  27. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/api/graphqlClient.ts +25 -0
  28. package/lib/templates/project/{reactb2x/_p_/_m_/digitalExperienceConfigs/appreacttemplateb2x1.digitalExperienceConfig → reactexternalapp/_p_/_m_/digitalExperienceConfigs/reactexternalapp1.digitalExperienceConfig} +3 -3
  29. package/lib/templates/project/{reactb2x/_p_/_m_/networks/appreacttemplateb2x.network → reactexternalapp/_p_/_m_/networks/reactexternalapp.network} +4 -4
  30. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/package.xml +4 -4
  31. package/lib/templates/project/{reactb2x/_p_/_m_/sites/appreacttemplateb2x.site → reactexternalapp/_p_/_m_/sites/reactexternalapp.site} +2 -2
  32. package/lib/templates/project/{reactb2e → reactexternalapp}/_r_/webapp-data.md +5 -5
  33. package/lib/templates/project/{reactb2x → reactexternalapp}/_r_/webapp-ui.md +2 -2
  34. package/lib/templates/project/{reactb2e → reactexternalapp}/package-lock.json +2 -2
  35. package/lib/templates/project/{reactb2e → reactexternalapp}/package.json +1 -1
  36. package/lib/templates/project/{reactb2x/_r_/skills/using-salesforce-data → reactexternalapp/scripts}/graphql-search.sh +73 -21
  37. package/lib/templates/project/{reactb2x → reactinternalapp}/AGENT.md +6 -10
  38. package/lib/templates/project/{reactb2x → reactinternalapp}/CHANGELOG.md +59 -0
  39. package/lib/templates/project/{reactb2e → reactinternalapp}/README.md +9 -9
  40. package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/README.md +2 -2
  41. package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/package.json +3 -3
  42. package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/appreacttemplateb2e.webapplication-meta.xml → reactinternalapp/_p_/_m_/_w_/_a_/reactinternalapp.webapplication-meta.xml} +1 -1
  43. package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/pages/AccountSearch.tsx +82 -54
  44. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/FilterContext.tsx +73 -0
  45. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/PaginationControls.tsx +109 -0
  46. package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/BooleanFilter.tsx +16 -36
  47. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateFilter.tsx +121 -0
  48. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateRangeFilter.tsx +14 -23
  49. package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/MultiSelectFilter.tsx +18 -26
  50. package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/NumericRangeFilter.tsx +22 -39
  51. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SearchFilter.tsx +37 -0
  52. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SelectFilter.tsx +30 -34
  53. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/TextFilter.tsx +74 -0
  54. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useAsyncData.ts +1 -0
  55. package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useCachedAsyncData.ts +1 -0
  56. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useObjectSearchParams.ts +22 -0
  57. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/api/graphqlClient.ts +25 -0
  58. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/routes.tsx +21 -0
  59. package/lib/templates/project/{reactb2x → reactinternalapp}/_r_/webapp-data.md +5 -5
  60. package/lib/templates/project/{reactb2e → reactinternalapp}/_r_/webapp-ui.md +2 -2
  61. package/lib/templates/project/{reactb2x → reactinternalapp}/package-lock.json +2 -2
  62. package/lib/templates/project/{reactb2x → reactinternalapp}/package.json +1 -1
  63. package/lib/templates/project/{reactb2e/_r_/skills/using-salesforce-data → reactinternalapp/scripts}/graphql-search.sh +73 -21
  64. package/lib/templates/webapplication/reactbasic/package.json +3 -3
  65. package/lib/templates/webapplication/reactbasic/src/api/graphqlClient.ts +25 -0
  66. package/lib/utils/template-placeholders.js +8 -1
  67. package/lib/utils/template-placeholders.js.map +1 -1
  68. package/lib/utils/types.d.ts +1 -1
  69. package/lib/utils/webappTemplateUtils.d.ts +6 -4
  70. package/lib/utils/webappTemplateUtils.js +17 -11
  71. package/lib/utils/webappTemplateUtils.js.map +1 -1
  72. package/package.json +5 -5
  73. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/components/FilterPanel.tsx +0 -127
  74. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/components/PaginationControls.tsx +0 -151
  75. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateFilter.tsx +0 -165
  76. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SearchFilter.tsx +0 -40
  77. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/TextFilter.tsx +0 -77
  78. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/pages/TestAccPage.tsx +0 -19
  79. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/routes.tsx +0 -38
  80. package/lib/templates/project/reactb2e/_r_/skills/building-data-visualization/SKILL.md +0 -72
  81. package/lib/templates/project/reactb2e/_r_/skills/building-data-visualization/implementation/bar-line-chart.md +0 -316
  82. package/lib/templates/project/reactb2e/_r_/skills/building-data-visualization/implementation/dashboard-layout.md +0 -189
  83. package/lib/templates/project/reactb2e/_r_/skills/building-data-visualization/implementation/donut-chart.md +0 -181
  84. package/lib/templates/project/reactb2e/_r_/skills/building-data-visualization/implementation/stat-card.md +0 -150
  85. package/lib/templates/project/reactb2e/_r_/skills/building-react-components/SKILL.md +0 -96
  86. package/lib/templates/project/reactb2e/_r_/skills/building-react-components/implementation/component.md +0 -78
  87. package/lib/templates/project/reactb2e/_r_/skills/building-react-components/implementation/header-footer.md +0 -132
  88. package/lib/templates/project/reactb2e/_r_/skills/building-react-components/implementation/page.md +0 -93
  89. package/lib/templates/project/reactb2e/_r_/skills/configuring-csp-trusted-sites/SKILL.md +0 -90
  90. package/lib/templates/project/reactb2e/_r_/skills/configuring-csp-trusted-sites/implementation/metadata-format.md +0 -281
  91. package/lib/templates/project/reactb2e/_r_/skills/configuring-webapp-metadata/SKILL.md +0 -158
  92. package/lib/templates/project/reactb2e/_r_/skills/creating-webapp/SKILL.md +0 -140
  93. package/lib/templates/project/reactb2e/_r_/skills/deploying-to-salesforce/SKILL.md +0 -226
  94. package/lib/templates/project/reactb2e/_r_/skills/implementing-file-upload/SKILL.md +0 -396
  95. package/lib/templates/project/reactb2e/_r_/skills/installing-webapp-features/SKILL.md +0 -210
  96. package/lib/templates/project/reactb2e/_r_/skills/managing-agentforce-conversation-client/SKILL.md +0 -186
  97. package/lib/templates/project/reactb2e/_r_/skills/managing-agentforce-conversation-client/references/constraints.md +0 -134
  98. package/lib/templates/project/reactb2e/_r_/skills/managing-agentforce-conversation-client/references/examples.md +0 -132
  99. package/lib/templates/project/reactb2e/_r_/skills/managing-agentforce-conversation-client/references/style-tokens.md +0 -101
  100. package/lib/templates/project/reactb2e/_r_/skills/managing-agentforce-conversation-client/references/troubleshooting.md +0 -57
  101. package/lib/templates/project/reactb2e/_r_/skills/using-salesforce-data/SKILL.md +0 -363
  102. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/components/FilterPanel.tsx +0 -127
  103. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/components/PaginationControls.tsx +0 -151
  104. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateFilter.tsx +0 -165
  105. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SearchFilter.tsx +0 -40
  106. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/TextFilter.tsx +0 -77
  107. package/lib/templates/project/reactb2x/_r_/skills/building-data-visualization/SKILL.md +0 -72
  108. package/lib/templates/project/reactb2x/_r_/skills/building-data-visualization/implementation/bar-line-chart.md +0 -316
  109. package/lib/templates/project/reactb2x/_r_/skills/building-data-visualization/implementation/dashboard-layout.md +0 -189
  110. package/lib/templates/project/reactb2x/_r_/skills/building-data-visualization/implementation/donut-chart.md +0 -181
  111. package/lib/templates/project/reactb2x/_r_/skills/building-data-visualization/implementation/stat-card.md +0 -150
  112. package/lib/templates/project/reactb2x/_r_/skills/building-react-components/SKILL.md +0 -96
  113. package/lib/templates/project/reactb2x/_r_/skills/building-react-components/implementation/component.md +0 -78
  114. package/lib/templates/project/reactb2x/_r_/skills/building-react-components/implementation/header-footer.md +0 -132
  115. package/lib/templates/project/reactb2x/_r_/skills/building-react-components/implementation/page.md +0 -93
  116. package/lib/templates/project/reactb2x/_r_/skills/configuring-csp-trusted-sites/SKILL.md +0 -90
  117. package/lib/templates/project/reactb2x/_r_/skills/configuring-csp-trusted-sites/implementation/metadata-format.md +0 -281
  118. package/lib/templates/project/reactb2x/_r_/skills/configuring-webapp-metadata/SKILL.md +0 -158
  119. package/lib/templates/project/reactb2x/_r_/skills/creating-webapp/SKILL.md +0 -140
  120. package/lib/templates/project/reactb2x/_r_/skills/deploying-to-salesforce/SKILL.md +0 -226
  121. package/lib/templates/project/reactb2x/_r_/skills/implementing-file-upload/SKILL.md +0 -396
  122. package/lib/templates/project/reactb2x/_r_/skills/installing-webapp-features/SKILL.md +0 -210
  123. package/lib/templates/project/reactb2x/_r_/skills/managing-agentforce-conversation-client/SKILL.md +0 -186
  124. package/lib/templates/project/reactb2x/_r_/skills/managing-agentforce-conversation-client/references/constraints.md +0 -134
  125. package/lib/templates/project/reactb2x/_r_/skills/managing-agentforce-conversation-client/references/examples.md +0 -132
  126. package/lib/templates/project/reactb2x/_r_/skills/managing-agentforce-conversation-client/references/style-tokens.md +0 -101
  127. package/lib/templates/project/reactb2x/_r_/skills/managing-agentforce-conversation-client/references/troubleshooting.md +0 -57
  128. package/lib/templates/project/reactb2x/_r_/skills/using-salesforce-data/SKILL.md +0 -363
  129. /package/lib/templates/project/{reactb2e → reactexternalapp}/.forceignore +0 -0
  130. /package/lib/templates/project/{reactb2e → reactexternalapp}/.husky/pre-commit +0 -0
  131. /package/lib/templates/project/{reactb2e → reactexternalapp}/.prettierignore +0 -0
  132. /package/lib/templates/project/{reactb2e → reactexternalapp}/.prettierrc +0 -0
  133. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/.forceignore +0 -0
  134. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/.graphqlrc.yml +0 -0
  135. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/.prettierignore +0 -0
  136. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/.prettierrc +0 -0
  137. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/CHANGELOG.md +0 -0
  138. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/codegen.yml +0 -0
  139. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/components.json +0 -0
  140. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/e2e/app.spec.ts +0 -0
  141. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/eslint.config.js +0 -0
  142. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/index.html +0 -0
  143. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/playwright.config.ts +0 -0
  144. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/scripts/get-graphql-schema.mjs +0 -0
  145. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/scripts/rewrite-e2e-assets.mjs +0 -0
  146. /package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/accountSearchService.ts +0 -0
  147. /package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/query/distinctAccountIndustries.graphql +0 -0
  148. /package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/query/distinctAccountTypes.graphql +0 -0
  149. /package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/query/getAccountDetail.graphql +0 -0
  150. /package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/query/searchAccounts.graphql +0 -0
  151. /package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/pages/AccountObjectDetailPage.tsx +0 -0
  152. /package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/pages/Home.tsx +0 -0
  153. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/api/objectSearchService.ts +0 -0
  154. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/ActiveFilters.tsx +0 -0
  155. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/ObjectBreadcrumb.tsx +0 -0
  156. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/SearchBar.tsx +0 -0
  157. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/SortControl.tsx +0 -0
  158. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/debounce.ts +0 -0
  159. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/fieldUtils.ts +0 -0
  160. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/filterUtils.ts +0 -0
  161. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/sortUtils.ts +0 -0
  162. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/api/userProfileApi.ts +0 -0
  163. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/authHelpers.ts +0 -0
  164. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/authenticationConfig.ts +0 -0
  165. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/context/AuthContext.tsx +0 -0
  166. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/footers/footer-link.tsx +0 -0
  167. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/forms/auth-form.tsx +0 -0
  168. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/forms/submit-button.tsx +0 -0
  169. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/hooks/form.tsx +0 -0
  170. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/hooks/useCountdownTimer.ts +0 -0
  171. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/hooks/useRetryWithBackoff.ts +0 -0
  172. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/layout/card-skeleton.tsx +0 -0
  173. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/layout/centered-page-layout.tsx +0 -0
  174. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/layouts/AuthAppLayout.tsx +0 -0
  175. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/layouts/authenticationRouteLayout.tsx +0 -0
  176. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/layouts/privateRouteLayout.tsx +0 -0
  177. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/ChangePassword.tsx +0 -0
  178. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/ForgotPassword.tsx +0 -0
  179. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/Login.tsx +0 -0
  180. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/Profile.tsx +0 -0
  181. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/Register.tsx +0 -0
  182. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/ResetPassword.tsx +0 -0
  183. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/sessionTimeout/SessionTimeoutValidator.tsx +0 -0
  184. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/sessionTimeout/sessionTimeService.ts +0 -0
  185. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/sessionTimeout/sessionTimeoutConfig.ts +0 -0
  186. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/utils/helpers.ts +0 -0
  187. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/api/graphql-operations-types.ts +0 -0
  188. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/app.tsx +0 -0
  189. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/appLayout.tsx +0 -0
  190. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/book.svg +0 -0
  191. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/copy.svg +0 -0
  192. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/rocket.svg +0 -0
  193. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/star.svg +0 -0
  194. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-1.png +0 -0
  195. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-2.png +0 -0
  196. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-3.png +0 -0
  197. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/images/vibe-codey.svg +0 -0
  198. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/alerts/status-alert.tsx +0 -0
  199. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/layouts/card-layout.tsx +0 -0
  200. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/alert.tsx +0 -0
  201. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/badge.tsx +0 -0
  202. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/breadcrumb.tsx +0 -0
  203. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/button.tsx +0 -0
  204. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/calendar.tsx +0 -0
  205. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/card.tsx +0 -0
  206. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/checkbox.tsx +0 -0
  207. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/collapsible.tsx +0 -0
  208. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/datePicker.tsx +0 -0
  209. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/dialog.tsx +0 -0
  210. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/field.tsx +0 -0
  211. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/index.ts +0 -0
  212. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/input.tsx +0 -0
  213. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/label.tsx +0 -0
  214. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/pagination.tsx +0 -0
  215. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/popover.tsx +0 -0
  216. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/select.tsx +0 -0
  217. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/separator.tsx +0 -0
  218. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/skeleton.tsx +0 -0
  219. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/sonner.tsx +0 -0
  220. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/spinner.tsx +0 -0
  221. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/table.tsx +0 -0
  222. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/tabs.tsx +0 -0
  223. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/lib/utils.ts +0 -0
  224. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/navigationMenu.tsx +0 -0
  225. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/pages/Home.tsx +0 -0
  226. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/pages/NotFound.tsx +0 -0
  227. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/router-utils.tsx +0 -0
  228. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/routes.tsx +0 -0
  229. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/styles/global.css +0 -0
  230. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/tsconfig.json +0 -0
  231. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/tsconfig.node.json +0 -0
  232. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/vite-env.d.ts +0 -0
  233. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/vite.config.ts +0 -0
  234. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/vitest-env.d.ts +0 -0
  235. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/vitest.config.ts +0 -0
  236. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/vitest.setup.ts +0 -0
  237. /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/webapplication.json +0 -0
  238. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppAuthUtils.cls +0 -0
  239. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppAuthUtils.cls-meta.xml +0 -0
  240. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppChangePassword.cls +0 -0
  241. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppChangePassword.cls-meta.xml +0 -0
  242. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppForgotPassword.cls +0 -0
  243. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppForgotPassword.cls-meta.xml +0 -0
  244. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppLogin.cls +0 -0
  245. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppLogin.cls-meta.xml +0 -0
  246. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppRegistration.cls +0 -0
  247. /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppRegistration.cls-meta.xml +0 -0
  248. /package/lib/templates/project/{reactb2e → reactexternalapp}/config/project-scratch-def.json +0 -0
  249. /package/lib/templates/project/{reactb2e → reactexternalapp}/eslint.config.js +0 -0
  250. /package/lib/templates/project/{reactb2e → reactexternalapp}/jest.config.js +0 -0
  251. /package/lib/templates/project/{reactb2e → reactexternalapp}/scripts/apex/hello.apex +0 -0
  252. /package/lib/templates/project/{reactb2e → reactexternalapp}/scripts/prepare-import-unique-fields.js +0 -0
  253. /package/lib/templates/project/{reactb2e → reactexternalapp}/scripts/setup-cli.mjs +0 -0
  254. /package/lib/templates/project/{reactb2e → reactexternalapp}/scripts/sf-project-setup.mjs +0 -0
  255. /package/lib/templates/project/{reactb2e → reactexternalapp}/scripts/soql/account.soql +0 -0
  256. /package/lib/templates/project/{reactb2e → reactexternalapp}/sfdx-project.json +0 -0
  257. /package/lib/templates/project/{reactb2x → reactinternalapp}/.forceignore +0 -0
  258. /package/lib/templates/project/{reactb2x → reactinternalapp}/.husky/pre-commit +0 -0
  259. /package/lib/templates/project/{reactb2x → reactinternalapp}/.prettierignore +0 -0
  260. /package/lib/templates/project/{reactb2x → reactinternalapp}/.prettierrc +0 -0
  261. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/.forceignore +0 -0
  262. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/.graphqlrc.yml +0 -0
  263. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/.prettierignore +0 -0
  264. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/.prettierrc +0 -0
  265. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/CHANGELOG.md +0 -0
  266. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/codegen.yml +0 -0
  267. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/components.json +0 -0
  268. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/e2e/app.spec.ts +0 -0
  269. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/eslint.config.js +0 -0
  270. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/index.html +0 -0
  271. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/playwright.config.ts +0 -0
  272. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/scripts/get-graphql-schema.mjs +0 -0
  273. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/scripts/rewrite-e2e-assets.mjs +0 -0
  274. /package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/accountSearchService.ts +0 -0
  275. /package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/query/distinctAccountIndustries.graphql +0 -0
  276. /package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/query/distinctAccountTypes.graphql +0 -0
  277. /package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/query/getAccountDetail.graphql +0 -0
  278. /package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/query/searchAccounts.graphql +0 -0
  279. /package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/pages/AccountObjectDetailPage.tsx +0 -0
  280. /package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/pages/Home.tsx +0 -0
  281. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/api/objectSearchService.ts +0 -0
  282. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/ActiveFilters.tsx +0 -0
  283. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/ObjectBreadcrumb.tsx +0 -0
  284. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/SearchBar.tsx +0 -0
  285. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/SortControl.tsx +0 -0
  286. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/debounce.ts +0 -0
  287. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/fieldUtils.ts +0 -0
  288. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/filterUtils.ts +0 -0
  289. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/sortUtils.ts +0 -0
  290. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/api/graphql-operations-types.ts +0 -0
  291. /package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/app.tsx +0 -0
  292. /package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/appLayout.tsx +0 -0
  293. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/book.svg +0 -0
  294. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/copy.svg +0 -0
  295. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/rocket.svg +0 -0
  296. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/star.svg +0 -0
  297. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-1.png +0 -0
  298. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-2.png +0 -0
  299. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-3.png +0 -0
  300. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/images/vibe-codey.svg +0 -0
  301. /package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/AgentforceConversationClient.tsx +0 -0
  302. /package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/__inherit_AgentforceConversationClient.tsx +0 -0
  303. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/alerts/status-alert.tsx +0 -0
  304. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/layouts/card-layout.tsx +0 -0
  305. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/alert.tsx +0 -0
  306. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/badge.tsx +0 -0
  307. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/breadcrumb.tsx +0 -0
  308. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/button.tsx +0 -0
  309. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/calendar.tsx +0 -0
  310. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/card.tsx +0 -0
  311. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/checkbox.tsx +0 -0
  312. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/collapsible.tsx +0 -0
  313. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/datePicker.tsx +0 -0
  314. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/dialog.tsx +0 -0
  315. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/field.tsx +0 -0
  316. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/index.ts +0 -0
  317. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/input.tsx +0 -0
  318. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/label.tsx +0 -0
  319. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/pagination.tsx +0 -0
  320. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/popover.tsx +0 -0
  321. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/select.tsx +0 -0
  322. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/separator.tsx +0 -0
  323. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/skeleton.tsx +0 -0
  324. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/sonner.tsx +0 -0
  325. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/spinner.tsx +0 -0
  326. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/table.tsx +0 -0
  327. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/tabs.tsx +0 -0
  328. /package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/index.ts +0 -0
  329. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/lib/utils.ts +0 -0
  330. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/navigationMenu.tsx +0 -0
  331. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/pages/Home.tsx +0 -0
  332. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/pages/NotFound.tsx +0 -0
  333. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/router-utils.tsx +0 -0
  334. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/styles/global.css +0 -0
  335. /package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/types/conversation.ts +0 -0
  336. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/tsconfig.json +0 -0
  337. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/tsconfig.node.json +0 -0
  338. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/vite-env.d.ts +0 -0
  339. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/vite.config.ts +0 -0
  340. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/vitest-env.d.ts +0 -0
  341. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/vitest.config.ts +0 -0
  342. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/vitest.setup.ts +0 -0
  343. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/webapplication.json +0 -0
  344. /package/lib/templates/project/{reactb2x → reactinternalapp}/config/project-scratch-def.json +0 -0
  345. /package/lib/templates/project/{reactb2x → reactinternalapp}/eslint.config.js +0 -0
  346. /package/lib/templates/project/{reactb2x → reactinternalapp}/jest.config.js +0 -0
  347. /package/lib/templates/project/{reactb2x → reactinternalapp}/scripts/apex/hello.apex +0 -0
  348. /package/lib/templates/project/{reactb2x → reactinternalapp}/scripts/prepare-import-unique-fields.js +0 -0
  349. /package/lib/templates/project/{reactb2x → reactinternalapp}/scripts/setup-cli.mjs +0 -0
  350. /package/lib/templates/project/{reactb2x → reactinternalapp}/scripts/sf-project-setup.mjs +0 -0
  351. /package/lib/templates/project/{reactb2x → reactinternalapp}/scripts/soql/account.soql +0 -0
  352. /package/lib/templates/project/{reactb2x → reactinternalapp}/sfdx-project.json +0 -0
@@ -1,127 +0,0 @@
1
- import { Card, CardContent, CardHeader, CardTitle } from "../../../components/ui/card";
2
- import { Button } from "../../../components/ui/button";
3
- import {
4
- Collapsible,
5
- CollapsibleContent,
6
- CollapsibleTrigger,
7
- } from "../../../components/ui/collapsible";
8
- import { cn } from "../../../lib/utils";
9
- import { ChevronDown } from "lucide-react";
10
- import { useState } from "react";
11
- import type { FilterFieldConfig, ActiveFilterValue } from "../utils/filterUtils";
12
- import { TextFilter } from "./filters/TextFilter";
13
- import { SelectFilter } from "./filters/SelectFilter";
14
- import { NumericRangeFilter } from "./filters/NumericRangeFilter";
15
- import { BooleanFilter } from "./filters/BooleanFilter";
16
- import { DateFilter } from "./filters/DateFilter";
17
- import { DateRangeFilter } from "./filters/DateRangeFilter";
18
- import { MultiSelectFilter } from "./filters/MultiSelectFilter";
19
- import { SearchFilter } from "./filters/SearchFilter";
20
-
21
- interface FilterPanelProps extends Omit<React.ComponentProps<"div">, "onReset"> {
22
- configs: FilterFieldConfig[];
23
- filters: ActiveFilterValue[];
24
- onFilterChange: (field: string, value: ActiveFilterValue | undefined) => void;
25
- onReset: () => void;
26
- headerProps?: React.ComponentProps<typeof CardHeader>;
27
- titleProps?: React.ComponentProps<typeof CardTitle>;
28
- contentProps?: React.ComponentProps<typeof CardContent>;
29
- resetButtonProps?: React.ComponentProps<typeof Button>;
30
- toggleButtonProps?: React.ComponentProps<typeof Button>;
31
- }
32
-
33
- function getFilterValue(
34
- filters: ActiveFilterValue[],
35
- field: string,
36
- ): ActiveFilterValue | undefined {
37
- return filters.find((f) => f.field === field);
38
- }
39
-
40
- function renderFilter(
41
- config: FilterFieldConfig,
42
- value: ActiveFilterValue | undefined,
43
- onChange: (value: ActiveFilterValue | undefined) => void,
44
- ) {
45
- switch (config.type) {
46
- case "text":
47
- return <TextFilter config={config} value={value} onChange={onChange} />;
48
- case "picklist":
49
- return <SelectFilter config={config} value={value} onChange={onChange} />;
50
- case "numeric":
51
- return <NumericRangeFilter config={config} value={value} onChange={onChange} />;
52
- case "boolean":
53
- return <BooleanFilter config={config} value={value} onChange={onChange} />;
54
- case "date":
55
- return <DateFilter config={config} value={value} onChange={onChange} />;
56
- case "daterange":
57
- return <DateRangeFilter config={config} value={value} onChange={onChange} />;
58
- case "multipicklist":
59
- return <MultiSelectFilter config={config} value={value} onChange={onChange} />;
60
- case "search":
61
- return <SearchFilter config={config} value={value} onChange={onChange} />;
62
- }
63
- }
64
-
65
- export function FilterPanel({
66
- configs,
67
- filters,
68
- onFilterChange,
69
- onReset,
70
- className,
71
- headerProps,
72
- titleProps,
73
- contentProps,
74
- resetButtonProps,
75
- toggleButtonProps,
76
- ...props
77
- }: FilterPanelProps) {
78
- const [open, setOpen] = useState(true);
79
- const hasActiveFilters = filters.length > 0;
80
-
81
- return (
82
- <Card className={cn(className)} {...props}>
83
- <Collapsible open={open} onOpenChange={setOpen}>
84
- <CardHeader
85
- {...headerProps}
86
- className={cn(
87
- "flex flex-row items-center justify-between space-y-0 pb-2",
88
- headerProps?.className,
89
- )}
90
- >
91
- <CardTitle
92
- {...titleProps}
93
- className={cn("text-base font-semibold", titleProps?.className)}
94
- >
95
- {titleProps?.children ?? <h2>Filters</h2>}
96
- </CardTitle>
97
- <div className="flex items-center gap-1">
98
- {hasActiveFilters && (
99
- <Button variant="destructive" size="sm" onClick={onReset} {...resetButtonProps}>
100
- {resetButtonProps?.children ?? "Reset"}
101
- </Button>
102
- )}
103
- <CollapsibleTrigger asChild>
104
- <Button variant="ghost" size="icon" {...toggleButtonProps}>
105
- <ChevronDown
106
- className={`h-4 w-4 transition-transform ${open ? "" : "-rotate-90"}`}
107
- />
108
- <span className="sr-only">Toggle filters</span>
109
- </Button>
110
- </CollapsibleTrigger>
111
- </div>
112
- </CardHeader>
113
- <CollapsibleContent>
114
- <CardContent {...contentProps} className={cn("space-y-4 pt-0", contentProps?.className)}>
115
- {configs.map((config) => (
116
- <div key={config.field}>
117
- {renderFilter(config, getFilterValue(filters, config.field), (value) =>
118
- onFilterChange(config.field, value),
119
- )}
120
- </div>
121
- ))}
122
- </CardContent>
123
- </CollapsibleContent>
124
- </Collapsible>
125
- </Card>
126
- );
127
- }
@@ -1,151 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import {
3
- Pagination,
4
- PaginationContent,
5
- PaginationItem,
6
- PaginationPrevious,
7
- PaginationNext,
8
- } from "../../../components/ui/pagination";
9
- import {
10
- Select,
11
- SelectContent,
12
- SelectItem,
13
- SelectTrigger,
14
- SelectValue,
15
- } from "../../../components/ui/select";
16
- import { Label } from "../../../components/ui/label";
17
- import { Button } from "../../../components/ui/button";
18
-
19
- /** Shared props: pagination state is from useObjectSearchParams (synced to URL). */
20
- interface PaginationControlsBase {
21
- pageSize: number;
22
- pageSizeOptions: readonly number[];
23
- onPageSizeChange: (newPageSize: number) => void;
24
- disabled?: boolean;
25
- }
26
-
27
- /** Default mode: Previous, Page N, Next (cursor-based, state in URL). */
28
- interface PaginationControlsDefaultProps extends PaginationControlsBase {
29
- variant?: "default";
30
- pageIndex: number;
31
- hasNextPage: boolean;
32
- hasPreviousPage: boolean;
33
- onNextPage: () => void;
34
- onPreviousPage: () => void;
35
- }
36
-
37
- /** Load More mode: optional page size + Load More button (or custom slot). */
38
- interface PaginationControlsLoadMoreProps extends PaginationControlsBase {
39
- variant: "loadMore";
40
- hasNextPage: boolean;
41
- onLoadMore: () => void;
42
- loadMoreLoading?: boolean;
43
- /** Custom content for load-more (e.g. custom button). If not set, renders default Load More button. */
44
- loadMoreSlot?: ReactNode;
45
- }
46
-
47
- export type PaginationControlsProps =
48
- | PaginationControlsDefaultProps
49
- | PaginationControlsLoadMoreProps;
50
-
51
- function isLoadMoreProps(props: PaginationControlsProps): props is PaginationControlsLoadMoreProps {
52
- return props.variant === "loadMore";
53
- }
54
-
55
- export default function PaginationControls(props: PaginationControlsProps) {
56
- const { pageSize, pageSizeOptions, onPageSizeChange, disabled = false } = props;
57
-
58
- const handlePageSizeChange = (newValue: string) => {
59
- const newSize = parseInt(newValue, 10);
60
- if (!isNaN(newSize) && newSize !== pageSize) {
61
- onPageSizeChange(newSize);
62
- }
63
- };
64
-
65
- const pageSizeBlock = (
66
- <div
67
- className="flex justify-center sm:justify-start items-center gap-2 shrink-0"
68
- role="group"
69
- aria-label="Page size selector"
70
- >
71
- <Label htmlFor="page-size-select" className="text-sm font-normal whitespace-nowrap">
72
- Results per page:
73
- </Label>
74
- <Select value={pageSize.toString()} onValueChange={handlePageSizeChange} disabled={disabled}>
75
- <SelectTrigger
76
- id="page-size-select"
77
- className="w-16"
78
- aria-label="Select number of results per page"
79
- >
80
- <SelectValue />
81
- </SelectTrigger>
82
- <SelectContent>
83
- {pageSizeOptions.map((size) => (
84
- <SelectItem key={size} value={size.toString()}>
85
- {size}
86
- </SelectItem>
87
- ))}
88
- </SelectContent>
89
- </Select>
90
- </div>
91
- );
92
-
93
- if (isLoadMoreProps(props)) {
94
- const { hasNextPage, onLoadMore, loadMoreLoading = false, loadMoreSlot } = props;
95
- return (
96
- <div className="w-full grid grid-cols-1 sm:grid-cols-2 items-center justify-center gap-4 py-2">
97
- {pageSizeBlock}
98
- <div className="flex justify-center sm:justify-end">
99
- {loadMoreSlot !== undefined ? (
100
- loadMoreSlot
101
- ) : hasNextPage ? (
102
- <Button
103
- onClick={onLoadMore}
104
- disabled={loadMoreLoading}
105
- aria-label={loadMoreLoading ? "Loading..." : "Load More"}
106
- >
107
- {loadMoreLoading ? "Loading..." : "Load More"}
108
- </Button>
109
- ) : null}
110
- </div>
111
- </div>
112
- );
113
- }
114
-
115
- const { pageIndex, hasNextPage, hasPreviousPage, onNextPage, onPreviousPage } = props;
116
- const currentPage = pageIndex + 1;
117
- const prevDisabled = disabled || !hasPreviousPage;
118
- const nextDisabled = disabled || !hasNextPage;
119
-
120
- return (
121
- <div className="w-full grid grid-cols-1 sm:grid-cols-2 items-center justify-center gap-4 py-2">
122
- {pageSizeBlock}
123
- <Pagination className="w-full mx-0 sm:justify-end">
124
- <PaginationContent>
125
- <PaginationItem>
126
- <PaginationPrevious
127
- onClick={prevDisabled ? undefined : onPreviousPage}
128
- aria-disabled={prevDisabled}
129
- className={prevDisabled ? "pointer-events-none opacity-50" : "cursor-pointer"}
130
- />
131
- </PaginationItem>
132
- <PaginationItem>
133
- <span
134
- className="min-w-16 text-center text-sm text-muted-foreground px-2"
135
- aria-current="page"
136
- >
137
- Page {currentPage}
138
- </span>
139
- </PaginationItem>
140
- <PaginationItem>
141
- <PaginationNext
142
- onClick={nextDisabled ? undefined : onNextPage}
143
- aria-disabled={nextDisabled}
144
- className={nextDisabled ? "pointer-events-none opacity-50" : "cursor-pointer"}
145
- />
146
- </PaginationItem>
147
- </PaginationContent>
148
- </Pagination>
149
- </div>
150
- );
151
- }
@@ -1,165 +0,0 @@
1
- import { useState } from "react";
2
- import { parseISO } from "date-fns";
3
- import { ChevronDown, Check } from "lucide-react";
4
- import { Label } from "../../../../components/ui/label";
5
- import { Button } from "../../../../components/ui/button";
6
- import {
7
- Popover,
8
- PopoverTrigger,
9
- PopoverContent,
10
- } from "../../../../components/ui/popover";
11
- import {
12
- DatePicker,
13
- DatePickerTrigger,
14
- DatePickerContent,
15
- DatePickerCalendar,
16
- } from "../../../../components/ui/datePicker";
17
- import { cn } from "../../../../lib/utils";
18
- import type { FilterFieldConfig, ActiveFilterValue } from "../../utils/filterUtils";
19
-
20
- type DateOperator = "gt" | "lt";
21
-
22
- const OPERATOR_OPTIONS: { value: DateOperator; label: string }[] = [
23
- { value: "gt", label: "After" },
24
- { value: "lt", label: "Before" },
25
- ];
26
-
27
- /** Maps operator to the ActiveFilterValue field used to carry the date. */
28
- function operatorToField(op: DateOperator): "min" | "max" {
29
- return op === "gt" ? "min" : "max";
30
- }
31
-
32
- interface DateFilterProps extends Omit<React.ComponentProps<"div">, "onChange"> {
33
- config: FilterFieldConfig;
34
- value: ActiveFilterValue | undefined;
35
- onChange: (value: ActiveFilterValue | undefined) => void;
36
- labelProps?: React.ComponentProps<typeof Label>;
37
- helpTextProps?: React.ComponentProps<"p">;
38
- }
39
-
40
- export function DateFilter({
41
- config,
42
- value,
43
- onChange,
44
- className,
45
- labelProps,
46
- helpTextProps,
47
- ...props
48
- }: DateFilterProps) {
49
- // Derive initial operator from the existing value (min → gt, max → lt)
50
- const initialOp: DateOperator = value?.min ? "gt" : "lt";
51
- const [operator, setOperator] = useState<DateOperator>(initialOp);
52
-
53
- const currentDate = toDate(value?.min ?? value?.max);
54
-
55
- function handleOperatorChange(op: DateOperator) {
56
- setOperator(op);
57
- if (currentDate) {
58
- emitChange(op, currentDate);
59
- }
60
- }
61
-
62
- function handleDateChange(date: Date | undefined) {
63
- if (!date) {
64
- onChange(undefined);
65
- } else {
66
- emitChange(operator, date);
67
- }
68
- }
69
-
70
- function emitChange(op: DateOperator, date: Date) {
71
- const dateStr = toDateString(date);
72
- const field = operatorToField(op);
73
- onChange({
74
- field: config.field,
75
- label: config.label,
76
- type: "date",
77
- value: op,
78
- min: field === "min" ? dateStr : undefined,
79
- max: field === "max" ? dateStr : undefined,
80
- });
81
- }
82
-
83
- const [operatorOpen, setOperatorOpen] = useState(false);
84
- const operatorLabel = OPERATOR_OPTIONS.find((o) => o.value === operator)?.label ?? "After";
85
-
86
- return (
87
- <div className={cn("space-y-1.5", className)} {...props}>
88
- <Label {...labelProps}>{labelProps?.children ?? config.label}</Label>
89
- <div className="flex min-w-0 gap-2">
90
- <Popover open={operatorOpen} onOpenChange={setOperatorOpen}>
91
- <PopoverTrigger asChild>
92
- <Button
93
- variant="outline"
94
- className="h-9 w-[7rem] shrink-0 justify-between px-2.5 font-normal"
95
- aria-label="Date operator"
96
- >
97
- <span className="truncate">{operatorLabel}</span>
98
- <ChevronDown className="ml-1 size-4 shrink-0 opacity-50" />
99
- </Button>
100
- </PopoverTrigger>
101
- <PopoverContent align="start" className="w-auto min-w-[7rem] p-1">
102
- {OPERATOR_OPTIONS.map((opt) => (
103
- <button
104
- key={opt.value}
105
- type="button"
106
- className={cn(
107
- "flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none hover:bg-accent",
108
- opt.value === operator && "font-medium",
109
- )}
110
- onClick={() => {
111
- handleOperatorChange(opt.value);
112
- setOperatorOpen(false);
113
- }}
114
- >
115
- <Check
116
- className={cn(
117
- "size-4 shrink-0",
118
- opt.value === operator ? "opacity-100" : "opacity-0",
119
- )}
120
- />
121
- {opt.label}
122
- </button>
123
- ))}
124
- </PopoverContent>
125
- </Popover>
126
- <DatePicker>
127
- <DatePickerTrigger
128
- className="min-w-0 flex-1 basis-0 !w-auto max-w-full"
129
- date={currentDate}
130
- dateFormat="MMM do, yyyy"
131
- placeholder="Pick a date"
132
- aria-label={config.label}
133
- />
134
- <DatePickerContent>
135
- <DatePickerCalendar
136
- mode="single"
137
- captionLayout="dropdown"
138
- selected={currentDate}
139
- onSelect={handleDateChange}
140
- />
141
- </DatePickerContent>
142
- </DatePicker>
143
- </div>
144
- {config.helpText && (
145
- <p
146
- {...helpTextProps}
147
- className={cn("text-xs text-muted-foreground", helpTextProps?.className)}
148
- >
149
- {helpTextProps?.children ?? config.helpText}
150
- </p>
151
- )}
152
- </div>
153
- );
154
- }
155
-
156
- export function toDate(value: string | undefined): Date | undefined {
157
- if (!value) return undefined;
158
- const parsed = parseISO(value);
159
- return isNaN(parsed.getTime()) ? undefined : parsed;
160
- }
161
-
162
- export function toDateString(date: Date | undefined): string {
163
- if (!date) return "";
164
- return date.toISOString().split("T")[0];
165
- }
@@ -1,40 +0,0 @@
1
- import { Label } from "../../../../components/ui/label";
2
- import { cn } from "../../../../lib/utils";
3
- import { SearchBar } from "../SearchBar";
4
- import type { FilterFieldConfig, ActiveFilterValue } from "../../utils/filterUtils";
5
-
6
- interface SearchFilterProps extends Omit<React.ComponentProps<"div">, "onChange"> {
7
- config: FilterFieldConfig;
8
- value: ActiveFilterValue | undefined;
9
- onChange: (value: ActiveFilterValue | undefined) => void;
10
- labelProps?: React.ComponentProps<typeof Label>;
11
- }
12
-
13
- export function SearchFilter({
14
- config,
15
- value,
16
- onChange,
17
- className,
18
- labelProps,
19
- ...props
20
- }: SearchFilterProps) {
21
- return (
22
- <div className={cn("space-y-1.5", className)} {...props}>
23
- <Label htmlFor={`filter-${config.field}`} {...labelProps}>
24
- {labelProps?.children ?? config.label}
25
- </Label>
26
- <SearchBar
27
- value={value?.value ?? ""}
28
- handleChange={(v) => {
29
- if (v) {
30
- onChange({ field: config.field, label: config.label, type: "search", value: v });
31
- } else {
32
- onChange(undefined);
33
- }
34
- }}
35
- placeholder={config.placeholder}
36
- inputProps={{ id: `filter-${config.field}` }}
37
- />
38
- </div>
39
- );
40
- }
@@ -1,77 +0,0 @@
1
- import { Input } from "../../../../components/ui/input";
2
- import { Label } from "../../../../components/ui/label";
3
- import { cn } from "../../../../lib/utils";
4
- import type { FilterFieldConfig, ActiveFilterValue } from "../../utils/filterUtils";
5
-
6
- interface TextFilterProps extends Omit<React.ComponentProps<"div">, "onChange"> {
7
- config: FilterFieldConfig;
8
- value: ActiveFilterValue | undefined;
9
- onChange: (value: ActiveFilterValue | undefined) => void;
10
- labelProps?: React.ComponentProps<typeof Label>;
11
- inputProps?: Omit<React.ComponentProps<typeof TextFilterInput>, "config" | "value" | "onChange">;
12
- helpTextProps?: React.ComponentProps<"p">;
13
- }
14
-
15
- export function TextFilter({
16
- config,
17
- value,
18
- onChange,
19
- className,
20
- labelProps,
21
- inputProps,
22
- helpTextProps,
23
- ...props
24
- }: TextFilterProps) {
25
- return (
26
- <div className={cn("space-y-1.5", className)} {...props}>
27
- <Label htmlFor={`filter-${config.field}`} {...labelProps}>
28
- {labelProps?.children ?? config.label}
29
- </Label>
30
- <TextFilterInput config={config} value={value} onChange={onChange} {...inputProps} />
31
- {config.helpText && (
32
- <p
33
- {...helpTextProps}
34
- className={cn("text-xs text-muted-foreground", helpTextProps?.className)}
35
- >
36
- {helpTextProps?.children ?? config.helpText}
37
- </p>
38
- )}
39
- </div>
40
- );
41
- }
42
-
43
- interface TextFilterInputProps extends Omit<
44
- React.ComponentProps<typeof Input>,
45
- "onChange" | "value"
46
- > {
47
- config: FilterFieldConfig;
48
- value: ActiveFilterValue | undefined;
49
- onChange: (value: ActiveFilterValue | undefined) => void;
50
- }
51
-
52
- export function TextFilterInput({
53
- config,
54
- value,
55
- onChange,
56
- className,
57
- ...props
58
- }: TextFilterInputProps) {
59
- return (
60
- <Input
61
- id={`filter-${config.field}`}
62
- type="text"
63
- placeholder={config.placeholder ?? `Filter by ${config.label.toLowerCase()}...`}
64
- value={value?.value ?? ""}
65
- onChange={(e) => {
66
- const v = e.target.value;
67
- if (v) {
68
- onChange({ field: config.field, label: config.label, type: "text", value: v });
69
- } else {
70
- onChange(undefined);
71
- }
72
- }}
73
- className={cn(className)}
74
- {...props}
75
- />
76
- );
77
- }
@@ -1,19 +0,0 @@
1
- /**
2
- * Copyright (c) 2026, Salesforce, Inc.
3
- * All rights reserved.
4
- * For full license text, see the LICENSE.txt file
5
- */
6
-
7
- import AgentforceConversationClient from "../components/AgentforceConversationClient";
8
-
9
- export default function TestAccPage() {
10
- return (
11
- <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
12
- <div className="text-center">
13
- <h1 className="text-4xl font-bold text-gray-900 mb-4">ACC</h1>
14
- <p className="text-lg text-gray-600 mb-8">Welcome to your ACC application.</p>
15
- </div>
16
- <AgentforceConversationClient agentId="0Xx000000000000AAA" />
17
- </div>
18
- );
19
- }
@@ -1,38 +0,0 @@
1
- import type { RouteObject } from 'react-router';
2
- import AppLayout from './appLayout';
3
- import Home from './features/object-search/__examples__/pages/Home';
4
- import NotFound from './pages/NotFound';
5
- import TestAccPage from "./pages/TestAccPage";
6
- import AccountSearch from "./features/object-search/__examples__/pages/AccountSearch";
7
- import AccountObjectDetail from "./features/object-search/__examples__/pages/AccountObjectDetailPage";
8
-
9
- export const routes: RouteObject[] = [
10
- {
11
- path: "/",
12
- element: <AppLayout />,
13
- children: [
14
- {
15
- index: true,
16
- element: <Home />,
17
- handle: { showInNavigation: true, label: "Home" }
18
- },
19
- {
20
- path: '*',
21
- element: <NotFound />
22
- },
23
- {
24
- path: "test-acc",
25
- element: <TestAccPage />,
26
- handle: { showInNavigation: true, label: "Test ACC" }
27
- },
28
- {
29
- path: "accounts/:recordId",
30
- element: <AccountObjectDetail />
31
- },
32
- {
33
- path: "accounts",
34
- element: <AccountSearch />
35
- }
36
- ]
37
- }
38
- ];
@@ -1,72 +0,0 @@
1
- ---
2
- name: building-data-visualization
3
- description: Adds data visualization components (charts, stat cards, KPI metrics) to React pages using Recharts. Use when the user asks to add a chart, graph, donut chart, pie chart, bar chart, stat card, KPI metric, dashboard visualization, or analytics component to the web application.
4
- ---
5
-
6
- # Data Visualization
7
-
8
- ## When to Use
9
-
10
- Use this skill when:
11
- - Adding charts (donut, pie, bar, line, area) to a dashboard or analytics page
12
- - Displaying KPI/metric stat cards with trend indicators
13
- - Building a dashboard layout with mixed chart types and summary cards
14
-
15
- ---
16
-
17
- ## Step 1 — Determine the visualization type
18
-
19
- Identify what the user needs:
20
-
21
- - **Donut / pie chart** — categorical breakdown (e.g. issue types, status distribution)
22
- - **Bar chart** — comparison across categories or time periods
23
- - **Line / area chart** — trends over time
24
- - **Stat card** — single KPI metric with optional trend indicator
25
- - **Combined dashboard** — stat cards + one or more charts
26
-
27
- If unclear, ask:
28
-
29
- > "What data should the chart display, and would a donut chart, bar chart, line chart, or stat cards work best?"
30
-
31
- ---
32
-
33
- ## Step 2 — Install dependencies
34
-
35
- All chart types in this skill use **recharts**. Install once from the web app directory:
36
-
37
- ```bash
38
- npm install recharts
39
- ```
40
-
41
- Recharts is built on D3 and provides declarative React components. No additional CSS is needed.
42
-
43
- ---
44
-
45
- ## Step 3 — Choose implementation path
46
-
47
- Read the corresponding guide:
48
-
49
- - **Bar chart** — read `implementation/bar-line-chart.md` (categorical data)
50
- - **Line / area chart** — read `implementation/bar-line-chart.md` (time-series data)
51
- - **Donut / pie chart** — read `implementation/donut-chart.md`
52
- - **Stat card with trend** — read `implementation/stat-card.md`
53
- - **Dashboard layout** — read `implementation/dashboard-layout.md`
54
-
55
- ---
56
-
57
- ## Verification
58
-
59
- Before completing:
60
-
61
- 1. Chart renders with correct data and colors.
62
- 2. Chart is responsive (resizes with container).
63
- 3. Legend labels match the data categories.
64
- 4. Stat card trends display correct positive/negative indicators.
65
- 5. Run from the web app directory:
66
-
67
- ```bash
68
- cd force-app/main/default/webapplications/<appName> && npm run lint && npm run build
69
- ```
70
-
71
- - **Lint:** MUST result in 0 errors.
72
- - **Build:** MUST succeed.