@salesforce/templates 66.5.5 → 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 (564) 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/.forceignore +3 -1
  5. package/lib/templates/project/{reactb2e → reactexternalapp}/AGENT.md +8 -2
  6. package/lib/templates/project/{reactb2e → reactexternalapp}/CHANGELOG.md +460 -0
  7. package/lib/templates/project/{reactb2x → reactexternalapp}/README.md +14 -14
  8. 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
  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}/_meta.json +1 -1
  10. 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
  11. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/README.md +2 -2
  12. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/codegen.yml +1 -0
  13. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/eslint.config.js +44 -27
  14. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/index.html +0 -1
  15. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/package.json +8 -11
  16. package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/appreacttemplateb2e.webapplication-meta.xml → reactexternalapp/_p_/_m_/_w_/_a_/reactexternalapp.webapplication-meta.xml} +1 -1
  17. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/accountSearchService.ts +46 -0
  18. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/query/distinctAccountIndustries.graphql +19 -0
  19. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/query/distinctAccountTypes.graphql +19 -0
  20. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/query/getAccountDetail.graphql +121 -0
  21. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/query/searchAccounts.graphql +51 -0
  22. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/pages/AccountObjectDetailPage.tsx +357 -0
  23. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/pages/AccountSearch.tsx +303 -0
  24. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/pages/Home.tsx +34 -0
  25. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/api/objectSearchService.ts +84 -0
  26. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/ActiveFilters.tsx +89 -0
  27. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/FilterContext.tsx +73 -0
  28. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/ObjectBreadcrumb.tsx +66 -0
  29. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/PaginationControls.tsx +109 -0
  30. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/SearchBar.tsx +41 -0
  31. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/SortControl.tsx +143 -0
  32. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/BooleanFilter.tsx +74 -0
  33. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateFilter.tsx +121 -0
  34. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateRangeFilter.tsx +69 -0
  35. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/MultiSelectFilter.tsx +98 -0
  36. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/NumericRangeFilter.tsx +85 -0
  37. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SearchFilter.tsx +37 -0
  38. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SelectFilter.tsx +93 -0
  39. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/TextFilter.tsx +74 -0
  40. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useAsyncData.ts +54 -0
  41. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useCachedAsyncData.ts +184 -0
  42. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useObjectSearchParams.ts +247 -0
  43. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/debounce.ts +22 -0
  44. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/fieldUtils.ts +29 -0
  45. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/filterUtils.ts +372 -0
  46. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/sortUtils.ts +38 -0
  47. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/api/userProfileApi.ts +13 -13
  48. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/layouts/privateRouteLayout.tsx +10 -2
  49. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/ChangePassword.tsx +2 -2
  50. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/ForgotPassword.tsx +2 -2
  51. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/Login.tsx +2 -2
  52. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/Profile.tsx +26 -4
  53. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/Register.tsx +2 -2
  54. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/ResetPassword.tsx +2 -2
  55. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/sessionTimeout/SessionTimeoutValidator.tsx +8 -16
  56. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/sessionTimeout/sessionTimeService.ts +30 -42
  57. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/api/graphql-operations-types.ts +11260 -0
  58. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/api/graphqlClient.ts +25 -0
  59. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/app.tsx +3 -1
  60. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/components/ui/badge.tsx +48 -0
  61. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/components/ui/breadcrumb.tsx +109 -0
  62. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/components/ui/calendar.tsx +232 -0
  63. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/components/ui/checkbox.tsx +32 -0
  64. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/components/ui/collapsible.tsx +33 -0
  65. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/components/ui/datePicker.tsx +127 -0
  66. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/components/ui/popover.tsx +89 -0
  67. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/components/ui/sonner.tsx +20 -0
  68. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/pages/Home.tsx +12 -0
  69. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/routes.tsx +9 -21
  70. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/tsconfig.json +7 -1
  71. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/vite.config.ts +17 -13
  72. package/lib/templates/project/{reactb2x/_p_/_m_/digitalExperienceConfigs/appreacttemplateb2x1.digitalExperienceConfig → reactexternalapp/_p_/_m_/digitalExperienceConfigs/reactexternalapp1.digitalExperienceConfig} +3 -3
  73. package/lib/templates/project/{reactb2x/_p_/_m_/networks/appreacttemplateb2x.network → reactexternalapp/_p_/_m_/networks/reactexternalapp.network} +5 -5
  74. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/package.xml +4 -4
  75. package/lib/templates/project/{reactb2x/_p_/_m_/sites/appreacttemplateb2x.site → reactexternalapp/_p_/_m_/sites/reactexternalapp.site} +2 -2
  76. package/lib/templates/project/reactexternalapp/_r_/webapp-data.md +353 -0
  77. package/lib/templates/project/reactexternalapp/_r_/webapp-ui.md +16 -0
  78. package/lib/templates/project/reactexternalapp/eslint.config.js +7 -0
  79. package/lib/templates/project/reactexternalapp/package-lock.json +9995 -0
  80. package/lib/templates/project/{reactb2x → reactexternalapp}/package.json +12 -11
  81. package/lib/templates/project/reactexternalapp/scripts/graphql-search.sh +191 -0
  82. package/lib/templates/project/{reactb2x → reactexternalapp}/scripts/setup-cli.mjs +61 -31
  83. package/lib/templates/project/reactexternalapp/scripts/sf-project-setup.mjs +66 -0
  84. package/lib/templates/project/reactinternalapp/.forceignore +15 -0
  85. package/lib/templates/project/{reactb2x → reactinternalapp}/AGENT.md +8 -2
  86. package/lib/templates/project/{reactb2x → reactinternalapp}/CHANGELOG.md +460 -0
  87. package/lib/templates/project/{reactb2e → reactinternalapp}/README.md +9 -9
  88. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/.forceignore +15 -0
  89. package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/README.md +2 -2
  90. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/codegen.yml +1 -0
  91. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/eslint.config.js +44 -27
  92. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/index.html +0 -1
  93. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/package.json +7 -11
  94. package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/appreacttemplateb2x.webapplication-meta.xml → reactinternalapp/_p_/_m_/_w_/_a_/reactinternalapp.webapplication-meta.xml} +1 -1
  95. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/accountSearchService.ts +46 -0
  96. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/query/distinctAccountIndustries.graphql +19 -0
  97. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/query/distinctAccountTypes.graphql +19 -0
  98. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/query/getAccountDetail.graphql +121 -0
  99. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/query/searchAccounts.graphql +51 -0
  100. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/pages/AccountObjectDetailPage.tsx +357 -0
  101. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/pages/AccountSearch.tsx +303 -0
  102. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/pages/Home.tsx +34 -0
  103. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/api/objectSearchService.ts +84 -0
  104. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/ActiveFilters.tsx +89 -0
  105. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/FilterContext.tsx +73 -0
  106. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/ObjectBreadcrumb.tsx +66 -0
  107. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/PaginationControls.tsx +109 -0
  108. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/SearchBar.tsx +41 -0
  109. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/SortControl.tsx +143 -0
  110. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/BooleanFilter.tsx +74 -0
  111. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateFilter.tsx +121 -0
  112. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateRangeFilter.tsx +69 -0
  113. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/MultiSelectFilter.tsx +98 -0
  114. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/NumericRangeFilter.tsx +85 -0
  115. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SearchFilter.tsx +37 -0
  116. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SelectFilter.tsx +93 -0
  117. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/TextFilter.tsx +74 -0
  118. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useAsyncData.ts +54 -0
  119. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useCachedAsyncData.ts +184 -0
  120. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useObjectSearchParams.ts +247 -0
  121. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/debounce.ts +22 -0
  122. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/fieldUtils.ts +29 -0
  123. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/filterUtils.ts +372 -0
  124. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/sortUtils.ts +38 -0
  125. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/api/graphql-operations-types.ts +11260 -0
  126. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/api/graphqlClient.ts +25 -0
  127. package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/app.tsx +4 -1
  128. package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/appLayout.tsx +1 -1
  129. package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/AgentforceConversationClient.tsx +33 -5
  130. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/components/ui/badge.tsx +48 -0
  131. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/components/ui/breadcrumb.tsx +109 -0
  132. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/components/ui/calendar.tsx +232 -0
  133. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/components/ui/checkbox.tsx +32 -0
  134. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/components/ui/collapsible.tsx +33 -0
  135. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/components/ui/datePicker.tsx +127 -0
  136. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/components/ui/popover.tsx +89 -0
  137. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/components/ui/sonner.tsx +20 -0
  138. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/index.ts +6 -0
  139. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/pages/Home.tsx +12 -0
  140. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/routes.tsx +21 -0
  141. package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/types/conversation.ts +14 -4
  142. package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/tsconfig.json +7 -1
  143. package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/vite.config.ts +17 -13
  144. package/lib/templates/project/reactinternalapp/_r_/webapp-data.md +353 -0
  145. package/lib/templates/project/reactinternalapp/_r_/webapp-ui.md +16 -0
  146. package/lib/templates/project/reactinternalapp/eslint.config.js +7 -0
  147. package/lib/templates/project/reactinternalapp/package-lock.json +9995 -0
  148. package/lib/templates/project/{reactb2e → reactinternalapp}/package.json +12 -11
  149. package/lib/templates/project/reactinternalapp/scripts/graphql-search.sh +191 -0
  150. package/lib/templates/project/{reactb2e → reactinternalapp}/scripts/setup-cli.mjs +61 -31
  151. package/lib/templates/project/reactinternalapp/scripts/sf-project-setup.mjs +66 -0
  152. package/lib/templates/webapplication/reactbasic/.forceignore +15 -0
  153. package/lib/templates/webapplication/reactbasic/codegen.yml +1 -0
  154. package/lib/templates/webapplication/reactbasic/eslint.config.js +44 -27
  155. package/lib/templates/webapplication/reactbasic/index.html +0 -1
  156. package/lib/templates/webapplication/reactbasic/package.json +6 -3
  157. package/lib/templates/webapplication/reactbasic/src/api/graphqlClient.ts +25 -0
  158. package/lib/templates/webapplication/reactbasic/src/app.tsx +4 -1
  159. package/lib/templates/webapplication/reactbasic/src/components/alerts/status-alert.tsx +1 -1
  160. package/lib/templates/webapplication/reactbasic/src/components/ui/badge.tsx +48 -0
  161. package/lib/templates/webapplication/reactbasic/src/components/ui/breadcrumb.tsx +109 -0
  162. package/lib/templates/webapplication/reactbasic/src/components/ui/calendar.tsx +232 -0
  163. package/lib/templates/webapplication/reactbasic/src/components/ui/checkbox.tsx +32 -0
  164. package/lib/templates/webapplication/reactbasic/src/components/ui/collapsible.tsx +33 -0
  165. package/lib/templates/webapplication/reactbasic/src/components/ui/datePicker.tsx +127 -0
  166. package/lib/templates/webapplication/reactbasic/src/components/ui/popover.tsx +89 -0
  167. package/lib/templates/webapplication/reactbasic/src/components/ui/sonner.tsx +20 -0
  168. package/lib/templates/webapplication/reactbasic/tsconfig.json +7 -1
  169. package/lib/templates/webapplication/reactbasic/vite.config.ts +17 -13
  170. package/lib/utils/template-placeholders.js +15 -1
  171. package/lib/utils/template-placeholders.js.map +1 -1
  172. package/lib/utils/types.d.ts +1 -1
  173. package/lib/utils/webappTemplateUtils.d.ts +8 -4
  174. package/lib/utils/webappTemplateUtils.js +20 -11
  175. package/lib/utils/webappTemplateUtils.js.map +1 -1
  176. package/package.json +5 -5
  177. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/DetailFields.tsx +0 -55
  178. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/DetailForm.tsx +0 -146
  179. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/DetailHeader.tsx +0 -34
  180. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/DetailLayoutSections.tsx +0 -80
  181. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/Section.tsx +0 -108
  182. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/SectionRow.tsx +0 -20
  183. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/UiApiDetailForm.tsx +0 -140
  184. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_/FieldValueDisplay.tsx +0 -73
  185. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_/FormattedAddress.tsx +0 -29
  186. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_/FormattedEmail.tsx +0 -17
  187. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_/FormattedPhone.tsx +0 -24
  188. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_/FormattedText.tsx +0 -11
  189. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_/FormattedUrl.tsx +0 -29
  190. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/filters/FilterField.tsx +0 -54
  191. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/filters/FilterInput.tsx +0 -55
  192. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/filters/FilterSelect.tsx +0 -72
  193. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/filters/FiltersPanel.tsx +0 -380
  194. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/forms/filters-form.tsx +0 -114
  195. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/forms/submit-button.tsx +0 -47
  196. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/search/GlobalSearchInput.tsx +0 -114
  197. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/search/ResultCardFields.tsx +0 -71
  198. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/search/SearchHeader.tsx +0 -31
  199. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/search/SearchPagination.tsx +0 -144
  200. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/search/SearchResultCard.tsx +0 -136
  201. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/search/SearchResultsPanel.tsx +0 -197
  202. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/shared/LoadingFallback.tsx +0 -61
  203. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/api/objectDetailService.ts +0 -102
  204. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/api/objectInfoGraphQLService.ts +0 -137
  205. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/api/objectInfoService.ts +0 -95
  206. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/api/recordListGraphQLService.ts +0 -364
  207. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/constants.ts +0 -39
  208. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/filters/FilterInput.tsx +0 -55
  209. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/filters/FilterSelect.tsx +0 -72
  210. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/hooks/form.tsx +0 -209
  211. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/hooks/useObjectInfoBatch.ts +0 -65
  212. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/hooks/useObjectSearchData.ts +0 -174
  213. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/hooks/useRecordDetailLayout.ts +0 -137
  214. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/hooks/useRecordListGraphQL.ts +0 -135
  215. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/pages/DetailPage.tsx +0 -109
  216. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/pages/GlobalSearch.tsx +0 -229
  217. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/filters/filters.ts +0 -121
  218. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/filters/picklist.ts +0 -6
  219. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/objectInfo/objectInfo.ts +0 -49
  220. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/recordDetail/recordDetail.ts +0 -61
  221. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/schema.d.ts +0 -200
  222. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/search/searchResults.ts +0 -229
  223. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/apiUtils.ts +0 -59
  224. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/cacheUtils.ts +0 -76
  225. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/debounce.ts +0 -89
  226. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/fieldUtils.ts +0 -354
  227. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/fieldValueExtractor.ts +0 -67
  228. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/filterUtils.ts +0 -32
  229. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/formDataTransformUtils.ts +0 -260
  230. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/formUtils.ts +0 -142
  231. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/graphQLNodeFieldUtils.ts +0 -186
  232. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/graphQLObjectInfoAdapter.ts +0 -77
  233. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/graphQLRecordAdapter.ts +0 -90
  234. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/layoutTransformUtils.ts +0 -236
  235. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/linkUtils.ts +0 -14
  236. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/paginationUtils.ts +0 -49
  237. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/recordUtils.ts +0 -159
  238. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/sanitizationUtils.ts +0 -49
  239. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/index.ts +0 -120
  240. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/pages/Home.tsx +0 -13
  241. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/pages/TestAccPage.tsx +0 -19
  242. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/routes.tsx +0 -50
  243. package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/tsconfig.tsbuildinfo +0 -1
  244. package/lib/templates/project/reactb2e/_r_/features/feature-graphql-graphql-data-access-rule.md +0 -470
  245. package/lib/templates/project/reactb2e/_r_/features/feature-react-agentforce-conversation-client-embedded-agent-rule.md +0 -18
  246. package/lib/templates/project/reactb2e/_r_/features/feature-react-chart-analytics-charts-rule.md +0 -27
  247. package/lib/templates/project/reactb2e/_r_/skills/_k_/SKILL.md +0 -148
  248. package/lib/templates/project/reactb2e/_r_/skills/_k_/docs/embed-examples.md +0 -192
  249. package/lib/templates/project/reactb2e/_r_/skills/_k_/docs/troubleshooting.md +0 -51
  250. package/lib/templates/project/reactb2e/_r_/skills/feature-graphql-graphql-data-access/SKILL.md +0 -155
  251. package/lib/templates/project/reactb2e/_r_/skills/feature-graphql-graphql-data-access/docs/explore-schema.md +0 -256
  252. package/lib/templates/project/reactb2e/_r_/skills/feature-graphql-graphql-data-access/docs/generate-mutation-query.md +0 -228
  253. package/lib/templates/project/reactb2e/_r_/skills/feature-graphql-graphql-data-access/docs/generate-read-query.md +0 -202
  254. package/lib/templates/project/reactb2e/_r_/skills/feature-graphql-graphql-data-access/docs/shared-schema.graphqls +0 -1150
  255. package/lib/templates/project/reactb2e/_r_/skills/feature-micro-frontend-micro-frontend/SKILL.md +0 -137
  256. package/lib/templates/project/reactb2e/_r_/skills/feature-react-chart-analytics-charts/SKILL.md +0 -41
  257. package/lib/templates/project/reactb2e/_r_/skills/feature-react-chart-analytics-charts/docs/schema-mapping.md +0 -4
  258. package/lib/templates/project/reactb2e/_r_/skills/feature-react-file-upload-file-upload/SKILL.md +0 -396
  259. package/lib/templates/project/reactb2e/_r_/skills/webapp-csp-trusted-sites/SKILL.md +0 -90
  260. package/lib/templates/project/reactb2e/_r_/skills/webapp-csp-trusted-sites/implementation/metadata-format.md +0 -281
  261. package/lib/templates/project/reactb2e/_r_/skills/webapp-features/SKILL.md +0 -210
  262. package/lib/templates/project/reactb2e/_r_/skills/webapp-react/SKILL.md +0 -80
  263. package/lib/templates/project/reactb2e/_r_/skills/webapp-react/implementation/component.md +0 -78
  264. package/lib/templates/project/reactb2e/_r_/skills/webapp-react/implementation/header-footer.md +0 -132
  265. package/lib/templates/project/reactb2e/_r_/skills/webapp-react/implementation/page.md +0 -93
  266. package/lib/templates/project/reactb2e/_r_/skills/webapp-react-data-visualization/SKILL.md +0 -72
  267. package/lib/templates/project/reactb2e/_r_/skills/webapp-react-data-visualization/implementation/dashboard-layout.md +0 -189
  268. package/lib/templates/project/reactb2e/_r_/skills/webapp-react-data-visualization/implementation/donut-chart.md +0 -181
  269. package/lib/templates/project/reactb2e/_r_/skills/webapp-react-data-visualization/implementation/stat-card.md +0 -150
  270. package/lib/templates/project/reactb2e/_r_/skills/webapp-react-interactive-map/SKILL.md +0 -92
  271. package/lib/templates/project/reactb2e/_r_/skills/webapp-react-interactive-map/implementation/geocoding.md +0 -245
  272. package/lib/templates/project/reactb2e/_r_/skills/webapp-react-interactive-map/implementation/leaflet-map.md +0 -279
  273. package/lib/templates/project/reactb2e/_r_/skills/webapp-react-weather-widget/SKILL.md +0 -65
  274. package/lib/templates/project/reactb2e/_r_/skills/webapp-react-weather-widget/implementation/weather-hook.md +0 -258
  275. package/lib/templates/project/reactb2e/_r_/skills/webapp-react-weather-widget/implementation/weather-ui.md +0 -216
  276. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/SKILL.md +0 -271
  277. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/charts.csv +0 -26
  278. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/colors.csv +0 -97
  279. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/icons.csv +0 -101
  280. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/landing.csv +0 -31
  281. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/products.csv +0 -97
  282. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/react-performance.csv +0 -45
  283. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/stacks/html-tailwind.csv +0 -56
  284. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/stacks/react.csv +0 -54
  285. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/stacks/shadcn.csv +0 -61
  286. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/styles.csv +0 -68
  287. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/typography.csv +0 -58
  288. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/ui-reasoning.csv +0 -101
  289. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/ux-guidelines.csv +0 -100
  290. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/web-interface.csv +0 -31
  291. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/scripts/core.js +0 -255
  292. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/scripts/design_system.js +0 -861
  293. package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/scripts/search.js +0 -98
  294. package/lib/templates/project/reactb2e/_r_/skills/webapp-unsplash-images/SKILL.md +0 -71
  295. package/lib/templates/project/reactb2e/_r_/skills/webapp-unsplash-images/implementation/usage.md +0 -159
  296. package/lib/templates/project/reactb2e/_r_/webapp-cli-commands.md +0 -88
  297. package/lib/templates/project/reactb2e/_r_/webapp-react-code-quality.md +0 -136
  298. package/lib/templates/project/reactb2e/_r_/webapp-react-typescript.md +0 -205
  299. package/lib/templates/project/reactb2e/_r_/webapp-react.md +0 -202
  300. package/lib/templates/project/reactb2e/_r_/webapp-skills-first.md +0 -26
  301. package/lib/templates/project/reactb2e/_r_/webapp-webapplication.md +0 -159
  302. package/lib/templates/project/reactb2e/_r_/webapp.md +0 -98
  303. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/DetailFields.tsx +0 -55
  304. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/DetailForm.tsx +0 -146
  305. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/DetailHeader.tsx +0 -34
  306. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/DetailLayoutSections.tsx +0 -80
  307. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/Section.tsx +0 -108
  308. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/SectionRow.tsx +0 -20
  309. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/UiApiDetailForm.tsx +0 -140
  310. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_/FieldValueDisplay.tsx +0 -73
  311. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_/FormattedAddress.tsx +0 -29
  312. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_/FormattedEmail.tsx +0 -17
  313. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_/FormattedPhone.tsx +0 -24
  314. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_/FormattedText.tsx +0 -11
  315. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_/FormattedUrl.tsx +0 -29
  316. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/filters/FilterField.tsx +0 -54
  317. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/filters/FilterInput.tsx +0 -55
  318. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/filters/FilterSelect.tsx +0 -72
  319. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/filters/FiltersPanel.tsx +0 -380
  320. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/forms/filters-form.tsx +0 -114
  321. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/forms/submit-button.tsx +0 -47
  322. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/search/GlobalSearchInput.tsx +0 -114
  323. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/search/ResultCardFields.tsx +0 -71
  324. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/search/SearchHeader.tsx +0 -31
  325. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/search/SearchPagination.tsx +0 -144
  326. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/search/SearchResultCard.tsx +0 -136
  327. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/search/SearchResultsPanel.tsx +0 -197
  328. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/shared/LoadingFallback.tsx +0 -61
  329. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/api/objectDetailService.ts +0 -102
  330. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/api/objectInfoGraphQLService.ts +0 -137
  331. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/api/objectInfoService.ts +0 -95
  332. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/api/recordListGraphQLService.ts +0 -364
  333. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/constants.ts +0 -39
  334. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/filters/FilterInput.tsx +0 -55
  335. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/filters/FilterSelect.tsx +0 -72
  336. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/hooks/form.tsx +0 -209
  337. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/hooks/useObjectInfoBatch.ts +0 -65
  338. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/hooks/useObjectSearchData.ts +0 -174
  339. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/hooks/useRecordDetailLayout.ts +0 -137
  340. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/hooks/useRecordListGraphQL.ts +0 -135
  341. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/pages/DetailPage.tsx +0 -109
  342. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/pages/GlobalSearch.tsx +0 -229
  343. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/filters/filters.ts +0 -121
  344. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/filters/picklist.ts +0 -6
  345. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/objectInfo/objectInfo.ts +0 -49
  346. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/recordDetail/recordDetail.ts +0 -61
  347. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/schema.d.ts +0 -200
  348. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/search/searchResults.ts +0 -229
  349. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/apiUtils.ts +0 -59
  350. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/cacheUtils.ts +0 -76
  351. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/debounce.ts +0 -89
  352. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/fieldUtils.ts +0 -354
  353. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/fieldValueExtractor.ts +0 -67
  354. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/filterUtils.ts +0 -32
  355. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/formDataTransformUtils.ts +0 -260
  356. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/formUtils.ts +0 -142
  357. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/graphQLNodeFieldUtils.ts +0 -186
  358. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/graphQLObjectInfoAdapter.ts +0 -77
  359. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/graphQLRecordAdapter.ts +0 -90
  360. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/layoutTransformUtils.ts +0 -236
  361. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/linkUtils.ts +0 -14
  362. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/paginationUtils.ts +0 -49
  363. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/recordUtils.ts +0 -159
  364. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/sanitizationUtils.ts +0 -49
  365. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/index.ts +0 -120
  366. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/pages/Home.tsx +0 -13
  367. package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/tsconfig.tsbuildinfo +0 -1
  368. package/lib/templates/project/reactb2x/_r_/features/feature-graphql-graphql-data-access-rule.md +0 -470
  369. package/lib/templates/project/reactb2x/_r_/features/feature-react-agentforce-conversation-client-embedded-agent-rule.md +0 -18
  370. package/lib/templates/project/reactb2x/_r_/features/feature-react-chart-analytics-charts-rule.md +0 -27
  371. package/lib/templates/project/reactb2x/_r_/skills/_k_/SKILL.md +0 -148
  372. package/lib/templates/project/reactb2x/_r_/skills/_k_/docs/embed-examples.md +0 -192
  373. package/lib/templates/project/reactb2x/_r_/skills/_k_/docs/troubleshooting.md +0 -51
  374. package/lib/templates/project/reactb2x/_r_/skills/feature-graphql-graphql-data-access/SKILL.md +0 -155
  375. package/lib/templates/project/reactb2x/_r_/skills/feature-graphql-graphql-data-access/docs/explore-schema.md +0 -256
  376. package/lib/templates/project/reactb2x/_r_/skills/feature-graphql-graphql-data-access/docs/generate-mutation-query.md +0 -228
  377. package/lib/templates/project/reactb2x/_r_/skills/feature-graphql-graphql-data-access/docs/generate-read-query.md +0 -202
  378. package/lib/templates/project/reactb2x/_r_/skills/feature-graphql-graphql-data-access/docs/shared-schema.graphqls +0 -1150
  379. package/lib/templates/project/reactb2x/_r_/skills/feature-micro-frontend-micro-frontend/SKILL.md +0 -137
  380. package/lib/templates/project/reactb2x/_r_/skills/feature-react-chart-analytics-charts/SKILL.md +0 -41
  381. package/lib/templates/project/reactb2x/_r_/skills/feature-react-chart-analytics-charts/docs/schema-mapping.md +0 -4
  382. package/lib/templates/project/reactb2x/_r_/skills/feature-react-file-upload-file-upload/SKILL.md +0 -396
  383. package/lib/templates/project/reactb2x/_r_/skills/webapp-csp-trusted-sites/SKILL.md +0 -90
  384. package/lib/templates/project/reactb2x/_r_/skills/webapp-csp-trusted-sites/implementation/metadata-format.md +0 -281
  385. package/lib/templates/project/reactb2x/_r_/skills/webapp-features/SKILL.md +0 -210
  386. package/lib/templates/project/reactb2x/_r_/skills/webapp-react/SKILL.md +0 -80
  387. package/lib/templates/project/reactb2x/_r_/skills/webapp-react/implementation/component.md +0 -78
  388. package/lib/templates/project/reactb2x/_r_/skills/webapp-react/implementation/header-footer.md +0 -132
  389. package/lib/templates/project/reactb2x/_r_/skills/webapp-react/implementation/page.md +0 -93
  390. package/lib/templates/project/reactb2x/_r_/skills/webapp-react-data-visualization/SKILL.md +0 -72
  391. package/lib/templates/project/reactb2x/_r_/skills/webapp-react-data-visualization/implementation/dashboard-layout.md +0 -189
  392. package/lib/templates/project/reactb2x/_r_/skills/webapp-react-data-visualization/implementation/donut-chart.md +0 -181
  393. package/lib/templates/project/reactb2x/_r_/skills/webapp-react-data-visualization/implementation/stat-card.md +0 -150
  394. package/lib/templates/project/reactb2x/_r_/skills/webapp-react-interactive-map/SKILL.md +0 -92
  395. package/lib/templates/project/reactb2x/_r_/skills/webapp-react-interactive-map/implementation/geocoding.md +0 -245
  396. package/lib/templates/project/reactb2x/_r_/skills/webapp-react-interactive-map/implementation/leaflet-map.md +0 -279
  397. package/lib/templates/project/reactb2x/_r_/skills/webapp-react-weather-widget/SKILL.md +0 -65
  398. package/lib/templates/project/reactb2x/_r_/skills/webapp-react-weather-widget/implementation/weather-hook.md +0 -258
  399. package/lib/templates/project/reactb2x/_r_/skills/webapp-react-weather-widget/implementation/weather-ui.md +0 -216
  400. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/SKILL.md +0 -271
  401. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/charts.csv +0 -26
  402. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/colors.csv +0 -97
  403. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/icons.csv +0 -101
  404. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/landing.csv +0 -31
  405. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/products.csv +0 -97
  406. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/react-performance.csv +0 -45
  407. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/stacks/html-tailwind.csv +0 -56
  408. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/stacks/react.csv +0 -54
  409. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/stacks/shadcn.csv +0 -61
  410. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/styles.csv +0 -68
  411. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/typography.csv +0 -58
  412. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/ui-reasoning.csv +0 -101
  413. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/ux-guidelines.csv +0 -100
  414. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/web-interface.csv +0 -31
  415. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/scripts/core.js +0 -255
  416. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/scripts/design_system.js +0 -861
  417. package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/scripts/search.js +0 -98
  418. package/lib/templates/project/reactb2x/_r_/skills/webapp-unsplash-images/SKILL.md +0 -71
  419. package/lib/templates/project/reactb2x/_r_/skills/webapp-unsplash-images/implementation/usage.md +0 -159
  420. package/lib/templates/project/reactb2x/_r_/webapp-cli-commands.md +0 -88
  421. package/lib/templates/project/reactb2x/_r_/webapp-react-code-quality.md +0 -136
  422. package/lib/templates/project/reactb2x/_r_/webapp-react-typescript.md +0 -205
  423. package/lib/templates/project/reactb2x/_r_/webapp-react.md +0 -202
  424. package/lib/templates/project/reactb2x/_r_/webapp-skills-first.md +0 -26
  425. package/lib/templates/project/reactb2x/_r_/webapp-webapplication.md +0 -159
  426. package/lib/templates/project/reactb2x/_r_/webapp.md +0 -98
  427. package/lib/templates/project/{reactb2e → reactexternalapp}/.forceignore +0 -0
  428. package/lib/templates/project/{reactb2e → reactexternalapp}/.husky/pre-commit +0 -0
  429. package/lib/templates/project/{reactb2e → reactexternalapp}/.prettierignore +0 -0
  430. package/lib/templates/project/{reactb2e → reactexternalapp}/.prettierrc +0 -0
  431. package/lib/templates/project/{reactb2x → reactexternalapp/_p_/_m_/_w_/_a_}/.forceignore +0 -0
  432. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/.graphqlrc.yml +0 -0
  433. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/.prettierignore +0 -0
  434. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/.prettierrc +0 -0
  435. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/CHANGELOG.md +0 -0
  436. package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src → reactexternalapp/_p_/_m_/_w_/_a_}/components.json +0 -0
  437. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/e2e/app.spec.ts +0 -0
  438. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/playwright.config.ts +0 -0
  439. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/scripts/get-graphql-schema.mjs +0 -0
  440. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/scripts/rewrite-e2e-assets.mjs +0 -0
  441. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/authHelpers.ts +0 -0
  442. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/authenticationConfig.ts +0 -0
  443. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/context/AuthContext.tsx +0 -0
  444. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/footers/footer-link.tsx +0 -0
  445. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/forms/auth-form.tsx +0 -0
  446. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/forms/submit-button.tsx +0 -0
  447. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/hooks/form.tsx +0 -0
  448. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/hooks/useCountdownTimer.ts +0 -0
  449. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/hooks/useRetryWithBackoff.ts +0 -0
  450. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/layout/card-skeleton.tsx +0 -0
  451. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/layout/centered-page-layout.tsx +0 -0
  452. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/layouts/AuthAppLayout.tsx +0 -0
  453. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/layouts/authenticationRouteLayout.tsx +0 -0
  454. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/sessionTimeout/sessionTimeoutConfig.ts +0 -0
  455. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/utils/helpers.ts +0 -0
  456. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/appLayout.tsx +0 -0
  457. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/book.svg +0 -0
  458. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/copy.svg +0 -0
  459. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/rocket.svg +0 -0
  460. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/star.svg +0 -0
  461. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-1.png +0 -0
  462. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-2.png +0 -0
  463. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-3.png +0 -0
  464. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/images/vibe-codey.svg +0 -0
  465. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/alerts/status-alert.tsx +1 -1
  466. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/layouts/card-layout.tsx +0 -0
  467. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/alert.tsx +0 -0
  468. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/button.tsx +0 -0
  469. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/card.tsx +0 -0
  470. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/dialog.tsx +0 -0
  471. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/field.tsx +0 -0
  472. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/index.ts +0 -0
  473. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/input.tsx +0 -0
  474. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/label.tsx +0 -0
  475. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/pagination.tsx +0 -0
  476. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/select.tsx +0 -0
  477. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/separator.tsx +0 -0
  478. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/skeleton.tsx +0 -0
  479. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/spinner.tsx +0 -0
  480. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/table.tsx +0 -0
  481. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/tabs.tsx +0 -0
  482. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/lib/utils.ts +0 -0
  483. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/navigationMenu.tsx +0 -0
  484. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/pages/NotFound.tsx +0 -0
  485. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/router-utils.tsx +0 -0
  486. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/styles/global.css +0 -0
  487. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/tsconfig.node.json +0 -0
  488. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/vite-env.d.ts +0 -0
  489. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/vitest-env.d.ts +0 -0
  490. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/vitest.config.ts +0 -0
  491. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/vitest.setup.ts +0 -0
  492. package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/webapplication.json +0 -0
  493. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppAuthUtils.cls +0 -0
  494. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppAuthUtils.cls-meta.xml +0 -0
  495. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppChangePassword.cls +0 -0
  496. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppChangePassword.cls-meta.xml +0 -0
  497. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppForgotPassword.cls +0 -0
  498. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppForgotPassword.cls-meta.xml +0 -0
  499. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppLogin.cls +0 -0
  500. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppLogin.cls-meta.xml +0 -0
  501. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppRegistration.cls +0 -0
  502. package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppRegistration.cls-meta.xml +0 -0
  503. package/lib/templates/project/{reactb2e → reactexternalapp}/config/project-scratch-def.json +0 -0
  504. package/lib/templates/project/{reactb2e → reactexternalapp}/jest.config.js +0 -0
  505. package/lib/templates/project/{reactb2e → reactexternalapp}/scripts/apex/hello.apex +0 -0
  506. package/lib/templates/project/{reactb2e → reactexternalapp}/scripts/prepare-import-unique-fields.js +0 -0
  507. package/lib/templates/project/{reactb2e → reactexternalapp}/scripts/soql/account.soql +0 -0
  508. package/lib/templates/project/{reactb2e → reactexternalapp}/sfdx-project.json +0 -0
  509. package/lib/templates/project/{reactb2x → reactinternalapp}/.husky/pre-commit +0 -0
  510. package/lib/templates/project/{reactb2x → reactinternalapp}/.prettierignore +0 -0
  511. package/lib/templates/project/{reactb2x → reactinternalapp}/.prettierrc +0 -0
  512. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/.graphqlrc.yml +0 -0
  513. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/.prettierignore +0 -0
  514. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/.prettierrc +0 -0
  515. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/CHANGELOG.md +0 -0
  516. package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src → reactinternalapp/_p_/_m_/_w_/_a_}/components.json +0 -0
  517. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/e2e/app.spec.ts +0 -0
  518. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/playwright.config.ts +0 -0
  519. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/scripts/get-graphql-schema.mjs +0 -0
  520. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/scripts/rewrite-e2e-assets.mjs +0 -0
  521. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/book.svg +0 -0
  522. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/copy.svg +0 -0
  523. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/rocket.svg +0 -0
  524. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/star.svg +0 -0
  525. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-1.png +0 -0
  526. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-2.png +0 -0
  527. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-3.png +0 -0
  528. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/images/vibe-codey.svg +0 -0
  529. package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/__inherit_AgentforceConversationClient.tsx +0 -0
  530. package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/alerts/status-alert.tsx +1 -1
  531. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/layouts/card-layout.tsx +0 -0
  532. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/alert.tsx +0 -0
  533. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/button.tsx +0 -0
  534. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/card.tsx +0 -0
  535. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/dialog.tsx +0 -0
  536. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/field.tsx +0 -0
  537. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/index.ts +0 -0
  538. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/input.tsx +0 -0
  539. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/label.tsx +0 -0
  540. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/pagination.tsx +0 -0
  541. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/select.tsx +0 -0
  542. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/separator.tsx +0 -0
  543. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/skeleton.tsx +0 -0
  544. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/spinner.tsx +0 -0
  545. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/table.tsx +0 -0
  546. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/tabs.tsx +0 -0
  547. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/lib/utils.ts +0 -0
  548. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/navigationMenu.tsx +0 -0
  549. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/pages/NotFound.tsx +0 -0
  550. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/router-utils.tsx +0 -0
  551. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/styles/global.css +0 -0
  552. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/tsconfig.node.json +0 -0
  553. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/vite-env.d.ts +0 -0
  554. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/vitest-env.d.ts +0 -0
  555. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/vitest.config.ts +0 -0
  556. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/vitest.setup.ts +0 -0
  557. /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/webapplication.json +0 -0
  558. /package/lib/templates/project/{reactb2x → reactinternalapp}/config/project-scratch-def.json +0 -0
  559. /package/lib/templates/project/{reactb2x → reactinternalapp}/jest.config.js +0 -0
  560. /package/lib/templates/project/{reactb2x → reactinternalapp}/scripts/apex/hello.apex +0 -0
  561. /package/lib/templates/project/{reactb2x → reactinternalapp}/scripts/prepare-import-unique-fields.js +0 -0
  562. /package/lib/templates/project/{reactb2x → reactinternalapp}/scripts/soql/account.soql +0 -0
  563. /package/lib/templates/project/{reactb2x → reactinternalapp}/sfdx-project.json +0 -0
  564. /package/lib/templates/webapplication/reactbasic/{src/components.json → components.json} +0 -0
@@ -1,364 +0,0 @@
1
- /**
2
- * Record GraphQL Service
3
- *
4
- * Single service for querying Salesforce object records via GraphQL UI API (uiapi.query).
5
- * Handles both list (paginated, filter, sort, search) and single-record-by-id using one query shape.
6
- *
7
- * @module api/recordListGraphQLService
8
- */
9
-
10
- import { getDataSDK } from "@salesforce/sdk-data";
11
- import type { Column } from "../types/search/searchResults";
12
- import type { FilterCriteria } from "../types/filters/filters";
13
-
14
- const DEFAULT_PAGE_SIZE = 50;
15
-
16
- /** Tree of selection: leaf is "value", branch is nested fields. Keys starting with __on_ are inline fragments (e.g. __on_User). */
17
- interface SelectionTree {
18
- [key: string]: "value" | SelectionTree;
19
- }
20
-
21
- /**
22
- * Polymorphic relationship fields and the concrete GraphQL types they can resolve to.
23
- * Only relationship names listed here use inline fragments; others use direct selection
24
- * (e.g. Parent -> Parent { Name { value } } because "Parent" is not a schema type).
25
- * We use a single fragment per field to avoid schema validation errors (e.g. User and Group
26
- * cannot both be spread in the same selection in some contexts).
27
- */
28
- const POLYMORPHIC_RELATIONSHIP_TYPES: Record<string, string[]> = {
29
- Owner: ["User"],
30
- CreatedBy: ["User"],
31
- LastModifiedBy: ["User"],
32
- };
33
-
34
- /**
35
- * Builds a selection tree from columns (fieldApiName). Simple fields (e.g. Name, OwnerId) become
36
- * top-level leaves. Relationship fields that are in POLYMORPHIC_RELATIONSHIP_TYPES use a single
37
- * inline fragment on the first concrete type (e.g. ... on User). All other relationship fields
38
- * (e.g. Parent, Account) use direct selection (e.g. Parent { Name { value } }) because the
39
- * relationship name is not necessarily a GraphQL type name (e.g. Parent resolves to Account).
40
- */
41
- function buildSelectionTree(columns: Column[]): SelectionTree {
42
- const allFieldNames = new Set(columns.map((c) => (c.fieldApiName ?? "").trim()).filter(Boolean));
43
- const tree: SelectionTree = { Id: "value" };
44
- for (const col of columns) {
45
- const name = (col.fieldApiName ?? "").trim();
46
- if (!name) continue;
47
- const parts = name.split(".");
48
- if (parts.length === 1) {
49
- const fieldName = parts[0];
50
- const hasCorrespondingId = allFieldNames.has(`${fieldName}Id`);
51
- if (hasCorrespondingId) {
52
- const knownTypes = POLYMORPHIC_RELATIONSHIP_TYPES[fieldName];
53
- if (knownTypes?.length) {
54
- // Use a single inline fragment to avoid "User can never be Group" validation errors
55
- const typeName = knownTypes[0];
56
- tree[fieldName] = { [`__on_${typeName}`]: { Name: "value" } };
57
- } else {
58
- // Relationship name (e.g. Parent) is not a GraphQL type; use direct selection
59
- tree[fieldName] = { Name: "value" };
60
- }
61
- } else {
62
- tree[fieldName] = "value";
63
- }
64
- } else {
65
- let current = tree;
66
- for (let i = 0; i < parts.length; i++) {
67
- const part = parts[i];
68
- const isLeaf = i === parts.length - 1;
69
- if (isLeaf) {
70
- current[part] = "value";
71
- } else {
72
- const existing = current[part];
73
- if (existing === "value") continue;
74
- if (!existing) {
75
- current[part] = {};
76
- }
77
- current = current[part] as SelectionTree;
78
- }
79
- }
80
- }
81
- }
82
- return tree;
83
- }
84
-
85
- /**
86
- * Serializes a selection tree to GraphQL selection set string.
87
- * Keys starting with __on_ are emitted as inline fragments (... on TypeName { ... }).
88
- * Id is scalar (no subselection); other leaves use { value }.
89
- */
90
- function serializeSelectionTree(tree: SelectionTree, indent: string): string {
91
- const fragmentKeys = Object.keys(tree).filter((k) => k.startsWith("__on_"));
92
- const normalKeys = Object.keys(tree).filter((k) => !k.startsWith("__on_"));
93
- normalKeys.sort((a, b) => {
94
- if (a === "Id") return -1;
95
- if (b === "Id") return 1;
96
- return a.localeCompare(b);
97
- });
98
- fragmentKeys.sort();
99
- const lines: string[] = [];
100
- const childIndent = `${indent} `;
101
- for (const key of normalKeys) {
102
- const val = tree[key];
103
- if (val === "value") {
104
- if (key === "Id") {
105
- lines.push(`${indent}Id`);
106
- } else {
107
- lines.push(`${indent}${key} { value }`);
108
- }
109
- } else {
110
- lines.push(`${indent}${key} {`);
111
- lines.push(serializeSelectionTree(val, childIndent));
112
- lines.push(`${indent}}`);
113
- }
114
- }
115
- for (const key of fragmentKeys) {
116
- const typeName = key.slice(5);
117
- const val = tree[key];
118
- if (val && typeof val === "object") {
119
- lines.push(`${indent}... on ${typeName} {`);
120
- lines.push(serializeSelectionTree(val, childIndent));
121
- lines.push(`${indent}}`);
122
- }
123
- }
124
- return lines.join("\n");
125
- }
126
-
127
- function buildNodeSelection(columns: Column[]): string {
128
- const tree = buildSelectionTree(columns);
129
- return serializeSelectionTree(tree, " ");
130
- }
131
-
132
- /**
133
- * Builds GraphQL where clause from filter criteria and optional search text.
134
- * Search text is applied as Name like %query%. Multiple conditions are combined with and.
135
- *
136
- * @param criteria - Field filters (fieldPath, operator, values).
137
- * @param searchQuery - Optional; adds Name like %searchQuery% when provided.
138
- */
139
- export function buildWhereFromCriteria(
140
- criteria: FilterCriteria[],
141
- searchQuery?: string,
142
- ): Record<string, unknown> | null {
143
- const conditions: Record<string, unknown>[] = [];
144
-
145
- if (searchQuery && searchQuery.trim()) {
146
- const term = `%${searchQuery.trim()}%`;
147
- conditions.push({ Name: { like: term } });
148
- }
149
-
150
- for (const c of criteria) {
151
- if (!c.fieldPath || !c.operator || !c.values?.length) continue;
152
- const op = c.operator;
153
- const parts = c.fieldPath.split(".");
154
- const fieldClause = op === "in" ? { in: c.values } : { [op]: c.values[0] };
155
- if (parts.length === 1) {
156
- conditions.push({ [parts[0]]: fieldClause });
157
- } else {
158
- let nested: Record<string, unknown> = { [parts[parts.length - 1]]: fieldClause };
159
- for (let i = parts.length - 2; i >= 0; i--) {
160
- nested = { [parts[i]]: nested };
161
- }
162
- conditions.push(nested);
163
- }
164
- }
165
-
166
- if (conditions.length === 0) return null;
167
- if (conditions.length === 1) return conditions[0] as Record<string, unknown>;
168
- return { and: conditions };
169
- }
170
-
171
- /**
172
- * Parses sortBy string (e.g. "Name", "Name ASC", "AnnualRevenue DESC") into GraphQL orderBy shape.
173
- * Default direction is ASC.
174
- */
175
- export function buildOrderByFromSort(
176
- sortBy: string,
177
- ): Record<string, { order: "ASC" | "DESC" }> | null {
178
- const trimmed = (sortBy ?? "").trim();
179
- if (!trimmed || trimmed.toLowerCase() === "relevance") return null;
180
- const parts = trimmed.split(/\s+/);
181
- const field = parts[0];
182
- const dir = parts[1]?.toUpperCase() === "DESC" ? "DESC" : "ASC";
183
- return { [field]: { order: dir } };
184
- }
185
-
186
- /** Variables for the GetRecords GraphQL operation. */
187
- export interface RecordListGraphQLVariables {
188
- first?: number;
189
- after?: string | null;
190
- where?: Record<string, unknown> | null;
191
- orderBy?: Record<string, unknown> | null;
192
- }
193
-
194
- export interface RecordListGraphQLOptions {
195
- objectApiName: string;
196
- columns: Column[];
197
- /** When set, fetches a single record by Id (first=1, where Id eq); used for detail view. */
198
- recordId?: string | null;
199
- first?: number;
200
- after?: string | null;
201
- filters?: FilterCriteria[];
202
- orderBy?: Record<string, unknown> | null;
203
- searchQuery?: string;
204
- }
205
-
206
- /**
207
- * Builds the GraphQL query string for uiapi.query.{objectApiName}.
208
- * Used for both list (pagination, where, orderBy) and single record (where Id eq, first 1).
209
- *
210
- * @param objectApiName - API name of the object (e.g. Account, Contact).
211
- * @param columns - Field selection (becomes node selection via buildNodeSelection).
212
- * @param options - Optional where and orderBy; when recordId is used, where is set to Id eq.
213
- */
214
- export function buildGetRecordsQuery(
215
- objectApiName: string,
216
- columns: Column[],
217
- options?: { where?: Record<string, unknown> | null; orderBy?: Record<string, unknown> | null },
218
- ): string {
219
- const nodeSelection = buildNodeSelection(columns);
220
- const hasWhere = options?.where != null && Object.keys(options.where).length > 0;
221
- const hasOrderBy = options?.orderBy != null && Object.keys(options.orderBy).length > 0;
222
-
223
- const filterType = `${objectApiName}_Filter`;
224
- const orderByType = `${objectApiName}_OrderBy`;
225
-
226
- const varDecls = [
227
- "$first: Int",
228
- "$after: String",
229
- ...(hasWhere ? [`$where: ${filterType}`] : []),
230
- ...(hasOrderBy ? [`$orderBy: ${orderByType}`] : []),
231
- ];
232
- const opArgs = [
233
- "first: $first",
234
- "after: $after",
235
- ...(hasWhere ? ["where: $where"] : []),
236
- ...(hasOrderBy ? ["orderBy: $orderBy"] : []),
237
- ];
238
-
239
- return `query GetRecords(${varDecls.join(", ")}) {
240
- uiapi {
241
- query {
242
- ${objectApiName}(${opArgs.join(", ")}) {
243
- edges {
244
- node {
245
- ${nodeSelection}
246
- }
247
- }
248
- pageInfo {
249
- hasNextPage
250
- hasPreviousPage
251
- endCursor
252
- startCursor
253
- },
254
- totalCount,
255
- pageResultCount
256
- }
257
- }
258
- }
259
- }`;
260
- }
261
-
262
- export interface RecordListGraphQLResult {
263
- uiapi?: {
264
- query?: {
265
- [key: string]: {
266
- edges?: Array<{ node?: Record<string, unknown> }>;
267
- pageInfo?: {
268
- hasNextPage?: boolean;
269
- hasPreviousPage?: boolean;
270
- endCursor?: string | null;
271
- startCursor?: string | null;
272
- };
273
- };
274
- };
275
- };
276
- }
277
-
278
- /** GraphQL node shape for a single record (Id + field selections with value/nested). */
279
- export type GraphQLRecordNode = Record<string, unknown>;
280
-
281
- /**
282
- * Fetches records for the given object via GraphQL (single query for both list and single record).
283
- *
284
- * - List: pass first, after, filters, orderBy, searchQuery.
285
- * - Single record: pass recordId; first is set to 1 and where includes Id eq.
286
- *
287
- * @param options.objectApiName - API name of the object (e.g. Account, Contact).
288
- * @param options.columns - Field selection (from filters-derived columns or layout-derived optionalFields).
289
- * @param options.recordId - If set, fetches one record by Id (first=1, where Id eq).
290
- * @param options.first - Page size (default 50; ignored when recordId is set).
291
- * @param options.after - Cursor for next page.
292
- * @param options.filters - Filter criteria (mapped to where).
293
- * @param options.orderBy - GraphQL orderBy; use buildOrderByFromSort(sortBy) when needed.
294
- * @param options.searchQuery - Text search (Name like %query% in where).
295
- * @returns Connection result (edges, pageInfo); for recordId callers use edges[0].node.
296
- */
297
- export async function getRecordsGraphQL(
298
- options: RecordListGraphQLOptions,
299
- ): Promise<RecordListGraphQLResult> {
300
- const {
301
- objectApiName,
302
- columns,
303
- recordId,
304
- first = DEFAULT_PAGE_SIZE,
305
- after = null,
306
- filters = [],
307
- orderBy = null,
308
- searchQuery,
309
- } = options;
310
-
311
- const listWhere = buildWhereFromCriteria(filters, searchQuery);
312
- const where =
313
- recordId != null && recordId !== ""
314
- ? listWhere != null && Object.keys(listWhere).length > 0
315
- ? { and: [{ Id: { eq: recordId } }, listWhere] }
316
- : { Id: { eq: recordId } }
317
- : listWhere;
318
- const effectiveFirst = recordId != null && recordId !== "" ? 1 : first;
319
- const hasWhere = where != null && Object.keys(where).length > 0;
320
- const hasOrderBy = orderBy != null && Object.keys(orderBy).length > 0;
321
-
322
- const query = buildGetRecordsQuery(objectApiName, columns, { where, orderBy });
323
- const variables: Record<string, unknown> = {
324
- first: effectiveFirst,
325
- after: after ?? null,
326
- ...(hasWhere && where ? { where } : {}),
327
- ...(hasOrderBy && orderBy ? { orderBy } : {}),
328
- };
329
-
330
- const data = await getDataSDK();
331
- const response = await data.graphql?.<RecordListGraphQLResult>(query, variables);
332
-
333
- if (response?.errors?.length) {
334
- const errorMessages = response.errors.map((e) => e.message).join("; ");
335
- throw new Error(`GraphQL Error: ${errorMessages}`);
336
- }
337
-
338
- return response?.data ?? ({} as RecordListGraphQLResult);
339
- }
340
-
341
- /**
342
- * Fetches a single record by Id. Uses the same GraphQL query as list (getRecordsGraphQL with recordId + first 1).
343
- *
344
- * @param objectApiName - API name of the object.
345
- * @param recordId - Record Id.
346
- * @param columns - Field selection (e.g. layout-derived optionalFields as Column[]).
347
- * @returns The record node or null if not found.
348
- */
349
- export async function getRecordByIdGraphQL(
350
- objectApiName: string,
351
- recordId: string,
352
- columns: Column[],
353
- ): Promise<GraphQLRecordNode | null> {
354
- const result = await getRecordsGraphQL({
355
- objectApiName,
356
- columns,
357
- recordId,
358
- first: 1,
359
- });
360
- const edges =
361
- result?.uiapi?.query?.[objectApiName]?.edges ??
362
- ([] as Array<{ node?: Record<string, unknown> }>);
363
- return (edges[0]?.node ?? null) as GraphQLRecordNode | null;
364
- }
@@ -1,39 +0,0 @@
1
- /**
2
- * Application-wide Constants
3
- *
4
- * Defines constants used throughout the global search feature.
5
- */
6
-
7
- /**
8
- * Object API names to search across in the global search feature.
9
- * Currently supports single object search.
10
- *
11
- * @remarks
12
- * - Array of Salesforce object API names
13
- * - First element is used as the primary search object
14
- * - Can be extended to support multiple objects in the future
15
- *
16
- * @example
17
- * ```tsx
18
- * const objectApiName = OBJECT_API_NAMES[0]; // 'Account'
19
- * ```
20
- */
21
- export const OBJECT_API_NAMES = ["Account"] as const;
22
-
23
- /** Fallback title when record display name cannot be resolved (e.g. before load or no name field). */
24
- export const DEFAULT_DETAIL_PAGE_TITLE = "Untitled";
25
-
26
- /**
27
- * Default page size for search results pagination.
28
- * This should match one of the values in PAGE_SIZE_OPTIONS from paginationUtils.
29
- *
30
- * @remarks
31
- * - Default value is 20 (second option in PAGE_SIZE_OPTIONS)
32
- * - Can be changed by user via pagination controls
33
- *
34
- * @example
35
- * ```tsx
36
- * const [pageSize, setPageSize] = useState(DEFAULT_PAGE_SIZE);
37
- * ```
38
- */
39
- export const DEFAULT_PAGE_SIZE = 20;
@@ -1,55 +0,0 @@
1
- /**
2
- * FilterInput Component
3
- *
4
- * Renders a text input field for filter values.
5
- * Used for filters that don't have a picklist (affordance !== 'select').
6
- *
7
- * @param filter - Filter definition containing field path, label, and attributes
8
- * @param value - Current filter input value
9
- * @param onChange - Callback when input value changes
10
- *
11
- * @remarks
12
- * - Displays filter label or field path as the label
13
- * - Shows placeholder text from filter attributes or generates default
14
- * - Displays help message if available
15
- *
16
- * @example
17
- * ```tsx
18
- * <FilterInput
19
- * filter={textFilter}
20
- * value={filterValue}
21
- * onChange={(value) => setFilterValue(value)}
22
- * />
23
- * ```
24
- */
25
- import { Input } from "../../../components/ui/input";
26
- import { Field, FieldLabel, FieldDescription } from "../../../components/ui/field";
27
- import type { Filter } from "../types/filters/filters";
28
-
29
- interface FilterInputProps {
30
- filter: Filter;
31
- value: string;
32
- onChange: (value: string) => void;
33
- }
34
-
35
- export default function FilterInput({ filter, value, onChange }: FilterInputProps) {
36
- return (
37
- <Field>
38
- <FieldLabel htmlFor={filter.targetFieldPath}>
39
- {filter.label || filter.targetFieldPath}
40
- </FieldLabel>
41
- <Input
42
- id={filter.targetFieldPath}
43
- type="text"
44
- value={value}
45
- onChange={(e: React.ChangeEvent<HTMLInputElement>) => onChange(e.target.value)}
46
- placeholder={
47
- filter.attributes?.placeholder ||
48
- `Enter ${(filter.label || filter.targetFieldPath).toLowerCase()}`
49
- }
50
- aria-label={filter.label || filter.targetFieldPath}
51
- />
52
- {filter.helpMessage && <FieldDescription>{filter.helpMessage}</FieldDescription>}
53
- </Field>
54
- );
55
- }
@@ -1,72 +0,0 @@
1
- /**
2
- * FilterSelect Component
3
- *
4
- * Renders a dropdown select field for filter values with picklist options.
5
- * Used for filters with affordance === 'select'.
6
- *
7
- * @param filter - Filter definition containing field path, label, and attributes
8
- * @param value - Currently selected filter value
9
- * @param options - Array of picklist values to display as options
10
- * @param onChange - Callback when selection changes
11
- *
12
- * @remarks
13
- * - Filters out invalid options (null/undefined values)
14
- * - Displays option label if available, otherwise uses value
15
- * - Shows placeholder from filter attributes or default "Select..."
16
- *
17
- * @example
18
- * ```tsx
19
- * <FilterSelect
20
- * filter={selectFilter}
21
- * value={selectedValue}
22
- * options={picklistOptions}
23
- * onChange={(value) => setSelectedValue(value)}
24
- * />
25
- * ```
26
- */
27
- import {
28
- Select,
29
- SelectContent,
30
- SelectItem,
31
- SelectTrigger,
32
- SelectValue,
33
- } from "../../../components/ui/select";
34
- import { Field, FieldLabel, FieldDescription } from "../../../components/ui/field";
35
- import type { Filter } from "../types/filters/filters";
36
- import type { PicklistValue } from "../types/filters/picklist";
37
-
38
- interface FilterSelectProps {
39
- filter: Filter;
40
- value: string;
41
- options: PicklistValue[];
42
- onChange: (value: string) => void;
43
- }
44
-
45
- export default function FilterSelect({ filter, value, options, onChange }: FilterSelectProps) {
46
- return (
47
- <Field>
48
- <FieldLabel htmlFor={filter.targetFieldPath}>
49
- {filter.label || filter.targetFieldPath}
50
- </FieldLabel>
51
- <Select value={value} onValueChange={onChange}>
52
- <SelectTrigger
53
- id={filter.targetFieldPath}
54
- aria-label={filter.label || filter.targetFieldPath}
55
- >
56
- <SelectValue placeholder={filter.attributes?.placeholder || "Select..."} />
57
- </SelectTrigger>
58
- <SelectContent>
59
- {options.map((option) => {
60
- if (!option || !option.value) return null;
61
- return (
62
- <SelectItem key={option.value} value={option.value}>
63
- {option.label || option.value}
64
- </SelectItem>
65
- );
66
- })}
67
- </SelectContent>
68
- </Select>
69
- {filter.helpMessage && <FieldDescription>{filter.helpMessage}</FieldDescription>}
70
- </Field>
71
- );
72
- }