@salesforce/templates 66.3.0 → 66.3.2

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 (329) hide show
  1. package/lib/templates/flexipage/RecordPage/_flexipage.flexipage-meta.xml +0 -24
  2. package/lib/templates/project/reactb2e/.a4drules/{graphql.md → features/feature-graphql-graphql-data-access-rule.md} +186 -125
  3. package/lib/templates/project/reactb2e/.a4drules/features/feature-react-agentforce-conversation-client-embedded-agent-rule.md +32 -0
  4. package/lib/templates/project/reactb2e/.a4drules/features/feature-react-chart-analytics-charts-rule.md +27 -0
  5. package/lib/templates/project/reactb2e/.a4drules/skills/feature-graphql-graphql-data-access/SKILL.md +155 -0
  6. package/lib/templates/project/{reactb2x/.a4drules/graphql/tools/knowledge/lds-explore-graphql-schema.md → reactb2e/.a4drules/skills/feature-graphql-graphql-data-access/docs/explore-schema.md} +58 -29
  7. package/lib/templates/project/{reactb2x/.a4drules/graphql/tools/knowledge/lds-generate-graphql-mutationquery.md → reactb2e/.a4drules/skills/feature-graphql-graphql-data-access/docs/generate-mutation-query.md} +52 -42
  8. package/lib/templates/project/{reactb2x/.a4drules/graphql/tools/knowledge/lds-generate-graphql-readquery.md → reactb2e/.a4drules/skills/feature-graphql-graphql-data-access/docs/generate-read-query.md} +32 -22
  9. package/lib/templates/project/{reactb2x/.a4drules/graphql/tools/schemas/shared.graphqls → reactb2e/.a4drules/skills/feature-graphql-graphql-data-access/docs/shared-schema.graphqls} +1 -1
  10. package/lib/templates/project/reactb2e/.a4drules/skills/feature-micro-frontend-micro-frontend/SKILL.md +137 -0
  11. package/lib/templates/project/reactb2e/.a4drules/skills/feature-react-agentforce-conversation-client-embedded-agent/SKILL.md +108 -0
  12. package/lib/templates/project/reactb2e/.a4drules/skills/feature-react-agentforce-conversation-client-embedded-agent/docs/embed-examples.md +182 -0
  13. package/lib/templates/project/reactb2e/.a4drules/skills/feature-react-chart-analytics-charts/SKILL.md +41 -0
  14. package/lib/templates/project/reactb2e/.a4drules/skills/feature-react-chart-analytics-charts/docs/schema-mapping.md +4 -0
  15. package/lib/templates/project/reactb2e/.a4drules/webapp-code-quality.md +136 -0
  16. package/lib/templates/project/reactb2e/.a4drules/{images.md → webapp-images.md} +6 -4
  17. package/lib/templates/project/reactb2e/.a4drules/webapp-no-node-e.md +3 -2
  18. package/lib/templates/project/reactb2e/.a4drules/webapp-react.md +149 -0
  19. package/lib/templates/project/reactb2e/.a4drules/{typescript.md → webapp-typescript.md} +10 -29
  20. package/lib/templates/project/reactb2e/.a4drules/webapp.md +60 -45
  21. package/lib/templates/project/reactb2e/AGENT.md +1 -1
  22. package/lib/templates/project/reactb2e/CHANGELOG.md +377 -0
  23. package/lib/templates/project/reactb2e/README.md +38 -4
  24. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/CHANGELOG.md +10 -0
  25. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/README.md +35 -0
  26. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/package.json +17 -7
  27. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/appLayout.tsx +76 -10
  28. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/__inherit_AgentforceConversationClient.tsx +3 -0
  29. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/alerts/status-alert.tsx +49 -0
  30. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/layouts/card-layout.tsx +29 -0
  31. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/ui/alert.tsx +76 -0
  32. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/ui/button.tsx +67 -0
  33. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/ui/card.tsx +103 -0
  34. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/ui/dialog.tsx +162 -0
  35. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/ui/field.tsx +237 -0
  36. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/ui/index.ts +84 -0
  37. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/ui/input.tsx +19 -0
  38. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/ui/label.tsx +22 -0
  39. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/ui/pagination.tsx +132 -0
  40. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/ui/select.tsx +193 -0
  41. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/ui/separator.tsx +26 -0
  42. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/ui/skeleton.tsx +14 -0
  43. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/ui/spinner.tsx +16 -0
  44. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/ui/table.tsx +114 -0
  45. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components/ui/tabs.tsx +88 -0
  46. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/components.json +18 -0
  47. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/constants.ts +39 -0
  48. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/api/index.ts +19 -0
  49. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/api/objectDetailService.ts +125 -0
  50. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/api/objectInfoGraphQLService.ts +194 -0
  51. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/api/objectInfoService.ts +199 -0
  52. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/api/recordListGraphQLService.ts +365 -0
  53. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/DetailFields.tsx +55 -0
  54. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/DetailForm.tsx +146 -0
  55. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/DetailHeader.tsx +34 -0
  56. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/DetailLayoutSections.tsx +80 -0
  57. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/Section.tsx +108 -0
  58. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/SectionRow.tsx +20 -0
  59. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/UiApiDetailForm.tsx +140 -0
  60. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/formatted/FieldValueDisplay.tsx +73 -0
  61. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/formatted/FormattedAddress.tsx +29 -0
  62. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/formatted/FormattedEmail.tsx +17 -0
  63. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/formatted/FormattedPhone.tsx +24 -0
  64. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/formatted/FormattedText.tsx +11 -0
  65. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/formatted/FormattedUrl.tsx +29 -0
  66. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/formatted/index.ts +6 -0
  67. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/filters/FilterField.tsx +54 -0
  68. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/filters/FilterInput.tsx +55 -0
  69. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/filters/FilterSelect.tsx +72 -0
  70. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/filters/FiltersPanel.tsx +380 -0
  71. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/forms/filters-form.tsx +114 -0
  72. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/forms/submit-button.tsx +47 -0
  73. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/search/GlobalSearchInput.tsx +114 -0
  74. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/search/ResultCardFields.tsx +71 -0
  75. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/search/SearchHeader.tsx +31 -0
  76. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/search/SearchPagination.tsx +144 -0
  77. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/search/SearchResultCard.tsx +136 -0
  78. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/search/SearchResultsPanel.tsx +197 -0
  79. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/shared/LoadingFallback.tsx +61 -0
  80. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/filters/FilterInput.tsx +55 -0
  81. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/filters/FilterSelect.tsx +72 -0
  82. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/hooks/form.tsx +209 -0
  83. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/hooks/index.ts +22 -0
  84. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/hooks/useObjectInfoBatch.ts +65 -0
  85. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/hooks/useObjectSearchData.ts +395 -0
  86. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/hooks/useRecordDetailLayout.ts +156 -0
  87. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/hooks/useRecordListGraphQL.ts +135 -0
  88. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/pages/DetailPage.tsx +109 -0
  89. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/pages/GlobalSearch.tsx +229 -0
  90. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/types/filters/filters.ts +120 -0
  91. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/types/filters/picklist.ts +32 -0
  92. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/types/index.ts +4 -0
  93. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/types/objectInfo/objectInfo.ts +166 -0
  94. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/types/recordDetail/recordDetail.ts +61 -0
  95. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/types/search/searchResults.ts +229 -0
  96. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/apiUtils.ts +125 -0
  97. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/cacheUtils.ts +76 -0
  98. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/debounce.ts +89 -0
  99. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/fieldUtils.ts +354 -0
  100. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/fieldValueExtractor.ts +67 -0
  101. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/filterUtils.ts +32 -0
  102. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/formDataTransformUtils.ts +260 -0
  103. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/formUtils.ts +142 -0
  104. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/graphQLNodeFieldUtils.ts +186 -0
  105. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/graphQLObjectInfoAdapter.ts +319 -0
  106. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/graphQLRecordAdapter.ts +90 -0
  107. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/index.ts +59 -0
  108. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/layoutTransformUtils.ts +236 -0
  109. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/linkUtils.ts +14 -0
  110. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/paginationUtils.ts +49 -0
  111. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/recordUtils.ts +159 -0
  112. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/sanitizationUtils.ts +49 -0
  113. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/lib/utils.ts +6 -0
  114. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/pages/Home.tsx +11 -10
  115. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/pages/TestAccPage.tsx +19 -0
  116. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/routes.tsx +28 -0
  117. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/styles/global.css +122 -0
  118. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/vite.config.ts +2 -1
  119. package/lib/templates/project/reactb2e/package.json +1 -1
  120. package/lib/templates/project/reactb2x/.a4drules/{graphql.md → features/feature-graphql-graphql-data-access-rule.md} +186 -125
  121. package/lib/templates/project/reactb2x/.a4drules/features/feature-react-agentforce-conversation-client-embedded-agent-rule.md +32 -0
  122. package/lib/templates/project/reactb2x/.a4drules/features/feature-react-chart-analytics-charts-rule.md +27 -0
  123. package/lib/templates/project/reactb2x/.a4drules/skills/feature-graphql-graphql-data-access/SKILL.md +155 -0
  124. package/lib/templates/project/{reactb2e/.a4drules/graphql/tools/knowledge/lds-explore-graphql-schema.md → reactb2x/.a4drules/skills/feature-graphql-graphql-data-access/docs/explore-schema.md} +58 -29
  125. package/lib/templates/project/{reactb2e/.a4drules/graphql/tools/knowledge/lds-generate-graphql-mutationquery.md → reactb2x/.a4drules/skills/feature-graphql-graphql-data-access/docs/generate-mutation-query.md} +52 -42
  126. package/lib/templates/project/{reactb2e/.a4drules/graphql/tools/knowledge/lds-generate-graphql-readquery.md → reactb2x/.a4drules/skills/feature-graphql-graphql-data-access/docs/generate-read-query.md} +32 -22
  127. package/lib/templates/project/{reactb2e/.a4drules/graphql/tools/schemas/shared.graphqls → reactb2x/.a4drules/skills/feature-graphql-graphql-data-access/docs/shared-schema.graphqls} +1 -1
  128. package/lib/templates/project/reactb2x/.a4drules/skills/feature-micro-frontend-micro-frontend/SKILL.md +137 -0
  129. package/lib/templates/project/reactb2x/.a4drules/skills/feature-react-agentforce-conversation-client-embedded-agent/SKILL.md +108 -0
  130. package/lib/templates/project/reactb2x/.a4drules/skills/feature-react-agentforce-conversation-client-embedded-agent/docs/embed-examples.md +182 -0
  131. package/lib/templates/project/reactb2x/.a4drules/skills/feature-react-chart-analytics-charts/SKILL.md +41 -0
  132. package/lib/templates/project/reactb2x/.a4drules/skills/feature-react-chart-analytics-charts/docs/schema-mapping.md +4 -0
  133. package/lib/templates/project/reactb2x/.a4drules/webapp-code-quality.md +136 -0
  134. package/lib/templates/project/reactb2x/.a4drules/{images.md → webapp-images.md} +6 -4
  135. package/lib/templates/project/reactb2x/.a4drules/webapp-no-node-e.md +3 -2
  136. package/lib/templates/project/reactb2x/.a4drules/webapp-react.md +149 -0
  137. package/lib/templates/project/reactb2x/.a4drules/{typescript.md → webapp-typescript.md} +10 -29
  138. package/lib/templates/project/reactb2x/.a4drules/webapp.md +60 -45
  139. package/lib/templates/project/reactb2x/AGENT.md +1 -1
  140. package/lib/templates/project/reactb2x/CHANGELOG.md +377 -0
  141. package/lib/templates/project/reactb2x/README.md +58 -4
  142. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/CHANGELOG.md +10 -0
  143. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/README.md +35 -0
  144. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/package.json +8 -7
  145. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/appLayout.tsx +75 -3
  146. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/alerts/status-alert.tsx +36 -32
  147. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/layouts/card-layout.tsx +29 -0
  148. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/alert.tsx +61 -54
  149. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/button.tsx +57 -57
  150. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/card.tsx +86 -75
  151. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/dialog.tsx +129 -110
  152. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/field.tsx +208 -193
  153. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/index.ts +65 -53
  154. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/input.tsx +14 -14
  155. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/label.tsx +17 -14
  156. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/pagination.tsx +108 -88
  157. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/select.tsx +156 -146
  158. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/separator.tsx +19 -19
  159. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/skeleton.tsx +10 -10
  160. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/spinner.tsx +12 -11
  161. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/table.tsx +96 -69
  162. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/ui/tabs.tsx +71 -61
  163. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components.json +1 -1
  164. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/constants.ts +39 -0
  165. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{context → features/authentication/context}/AuthContext.tsx +1 -1
  166. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{components → features/authentication}/footers/footer-link.tsx +1 -1
  167. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{components → features/authentication}/forms/auth-form.tsx +4 -4
  168. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{components → features/authentication}/forms/submit-button.tsx +4 -4
  169. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{hooks → features/authentication/hooks}/form.tsx +13 -9
  170. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{components → features/authentication}/layout/card-skeleton.tsx +2 -2
  171. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{components → features/authentication}/layout/centered-page-layout.tsx +2 -3
  172. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{layouts → features/authentication/layouts}/AuthAppLayout.tsx +2 -2
  173. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{components/auth → features/authentication/layouts}/authenticationRouteLayout.tsx +2 -2
  174. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{components/auth → features/authentication/layouts}/privateRouteLayout.tsx +2 -2
  175. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{pages → features/authentication/pages}/ChangePassword.tsx +6 -6
  176. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{pages → features/authentication/pages}/ForgotPassword.tsx +5 -5
  177. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{pages → features/authentication/pages}/Login.tsx +6 -6
  178. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{pages → features/authentication/pages}/Profile.tsx +22 -13
  179. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{pages → features/authentication/pages}/Register.tsx +6 -11
  180. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{pages → features/authentication/pages}/ResetPassword.tsx +8 -8
  181. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{components/auth → features/authentication}/sessionTimeout/SessionTimeoutValidator.tsx +6 -6
  182. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/api/index.ts +19 -0
  183. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/api/objectDetailService.ts +125 -0
  184. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/api/objectInfoGraphQLService.ts +194 -0
  185. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/api/objectInfoService.ts +199 -0
  186. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/api/recordListGraphQLService.ts +365 -0
  187. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/DetailFields.tsx +55 -0
  188. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/DetailForm.tsx +146 -0
  189. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/DetailHeader.tsx +34 -0
  190. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/DetailLayoutSections.tsx +80 -0
  191. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/Section.tsx +108 -0
  192. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/SectionRow.tsx +20 -0
  193. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/UiApiDetailForm.tsx +140 -0
  194. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/formatted/FieldValueDisplay.tsx +73 -0
  195. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/formatted/FormattedAddress.tsx +29 -0
  196. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/formatted/FormattedEmail.tsx +17 -0
  197. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/formatted/FormattedPhone.tsx +24 -0
  198. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/formatted/FormattedText.tsx +11 -0
  199. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/formatted/FormattedUrl.tsx +29 -0
  200. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/formatted/index.ts +6 -0
  201. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/filters/FilterField.tsx +54 -0
  202. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/filters/FilterInput.tsx +55 -0
  203. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/filters/FilterSelect.tsx +72 -0
  204. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/filters/FiltersPanel.tsx +380 -0
  205. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/forms/filters-form.tsx +114 -0
  206. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/forms/submit-button.tsx +47 -0
  207. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/search/GlobalSearchInput.tsx +114 -0
  208. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/search/ResultCardFields.tsx +71 -0
  209. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/search/SearchHeader.tsx +31 -0
  210. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/search/SearchPagination.tsx +144 -0
  211. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/search/SearchResultCard.tsx +136 -0
  212. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/search/SearchResultsPanel.tsx +197 -0
  213. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/shared/LoadingFallback.tsx +61 -0
  214. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/filters/FilterInput.tsx +55 -0
  215. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/filters/FilterSelect.tsx +72 -0
  216. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/hooks/form.tsx +209 -0
  217. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/hooks/index.ts +22 -0
  218. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/hooks/useObjectInfoBatch.ts +65 -0
  219. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/hooks/useObjectSearchData.ts +395 -0
  220. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/hooks/useRecordDetailLayout.ts +156 -0
  221. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/hooks/useRecordListGraphQL.ts +135 -0
  222. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/pages/DetailPage.tsx +109 -0
  223. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/pages/GlobalSearch.tsx +229 -0
  224. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/types/filters/filters.ts +120 -0
  225. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/types/filters/picklist.ts +32 -0
  226. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/types/index.ts +4 -0
  227. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/types/objectInfo/objectInfo.ts +166 -0
  228. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/types/recordDetail/recordDetail.ts +61 -0
  229. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/types/search/searchResults.ts +229 -0
  230. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/apiUtils.ts +125 -0
  231. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/cacheUtils.ts +76 -0
  232. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/debounce.ts +89 -0
  233. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/fieldUtils.ts +354 -0
  234. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/fieldValueExtractor.ts +67 -0
  235. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/filterUtils.ts +32 -0
  236. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/formDataTransformUtils.ts +260 -0
  237. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/formUtils.ts +142 -0
  238. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/graphQLNodeFieldUtils.ts +186 -0
  239. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/graphQLObjectInfoAdapter.ts +319 -0
  240. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/graphQLRecordAdapter.ts +90 -0
  241. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/index.ts +59 -0
  242. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/layoutTransformUtils.ts +236 -0
  243. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/linkUtils.ts +14 -0
  244. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/paginationUtils.ts +49 -0
  245. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/recordUtils.ts +159 -0
  246. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/sanitizationUtils.ts +49 -0
  247. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/lib/utils.ts +3 -3
  248. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/pages/Home.tsx +11 -10
  249. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/routes.tsx +33 -11
  250. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/styles/global.css +107 -107
  251. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/vite.config.ts +2 -1
  252. package/lib/templates/project/reactb2x/package.json +1 -1
  253. package/lib/templates/webapplication/reactbasic/CHANGELOG.md +10 -0
  254. package/lib/templates/webapplication/reactbasic/README.md +75 -0
  255. package/lib/templates/webapplication/reactbasic/package.json +13 -5
  256. package/lib/templates/webapplication/reactbasic/src/appLayout.tsx +75 -3
  257. package/lib/templates/webapplication/reactbasic/src/components/alerts/status-alert.tsx +49 -0
  258. package/lib/templates/webapplication/reactbasic/src/components/layouts/card-layout.tsx +29 -0
  259. package/lib/templates/webapplication/reactbasic/src/components/ui/alert.tsx +76 -0
  260. package/lib/templates/webapplication/reactbasic/src/components/ui/button.tsx +67 -0
  261. package/lib/templates/webapplication/reactbasic/src/components/ui/card.tsx +103 -0
  262. package/lib/templates/webapplication/reactbasic/src/components/ui/dialog.tsx +162 -0
  263. package/lib/templates/webapplication/reactbasic/src/components/ui/field.tsx +237 -0
  264. package/lib/templates/webapplication/reactbasic/src/components/ui/index.ts +84 -0
  265. package/lib/templates/webapplication/reactbasic/src/components/ui/input.tsx +19 -0
  266. package/lib/templates/webapplication/reactbasic/src/components/ui/label.tsx +22 -0
  267. package/lib/templates/webapplication/reactbasic/src/components/ui/pagination.tsx +132 -0
  268. package/lib/templates/webapplication/reactbasic/src/components/ui/select.tsx +193 -0
  269. package/lib/templates/webapplication/reactbasic/src/components/ui/separator.tsx +26 -0
  270. package/lib/templates/webapplication/reactbasic/src/components/ui/skeleton.tsx +14 -0
  271. package/lib/templates/webapplication/reactbasic/src/components/ui/spinner.tsx +16 -0
  272. package/lib/templates/webapplication/reactbasic/src/components/ui/table.tsx +114 -0
  273. package/lib/templates/webapplication/reactbasic/src/components/ui/tabs.tsx +88 -0
  274. package/lib/templates/webapplication/reactbasic/src/components.json +18 -0
  275. package/lib/templates/webapplication/reactbasic/src/lib/utils.ts +6 -0
  276. package/lib/templates/webapplication/reactbasic/src/styles/global.css +122 -0
  277. package/lib/templates/webapplication/reactbasic/vite.config.ts +2 -1
  278. package/lib/templates/webapplication/webappbasic/README.md +15 -0
  279. package/lib/utils/webappTemplateUtils.d.ts +10 -0
  280. package/lib/utils/webappTemplateUtils.js +55 -7
  281. package/lib/utils/webappTemplateUtils.js.map +1 -1
  282. package/package.json +5 -5
  283. package/lib/templates/project/reactb2e/.a4drules/README.md +0 -35
  284. package/lib/templates/project/reactb2e/.a4drules/a4d-webapp-generate.md +0 -27
  285. package/lib/templates/project/reactb2e/.a4drules/build-validation.md +0 -78
  286. package/lib/templates/project/reactb2e/.a4drules/code-quality.md +0 -137
  287. package/lib/templates/project/reactb2e/.a4drules/graphql/tools/knowledge/lds-guide-graphql.md +0 -205
  288. package/lib/templates/project/reactb2e/.a4drules/react.md +0 -387
  289. package/lib/templates/project/reactb2e/.a4drules/react_image_processing.md +0 -45
  290. package/lib/templates/project/reactb2e/.a4drules/ui-layout.md +0 -23
  291. package/lib/templates/project/reactb2e/.a4drules/webapp-nav-and-placeholders.md +0 -33
  292. package/lib/templates/project/reactb2e/.a4drules/webapp-ui-first.md +0 -32
  293. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/build/vite.config.d.ts +0 -2
  294. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/build/vite.config.js +0 -93
  295. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/package-lock.json +0 -14392
  296. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/api/graphql-operations-types.ts +0 -116
  297. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/api/utils/accounts.ts +0 -33
  298. package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/api/utils/query/highRevenueAccountsQuery.graphql +0 -29
  299. package/lib/templates/project/reactb2x/.a4drules/README.md +0 -35
  300. package/lib/templates/project/reactb2x/.a4drules/a4d-webapp-generate.md +0 -27
  301. package/lib/templates/project/reactb2x/.a4drules/build-validation.md +0 -78
  302. package/lib/templates/project/reactb2x/.a4drules/code-quality.md +0 -137
  303. package/lib/templates/project/reactb2x/.a4drules/graphql/tools/knowledge/lds-guide-graphql.md +0 -205
  304. package/lib/templates/project/reactb2x/.a4drules/react.md +0 -387
  305. package/lib/templates/project/reactb2x/.a4drules/react_image_processing.md +0 -45
  306. package/lib/templates/project/reactb2x/.a4drules/ui-layout.md +0 -23
  307. package/lib/templates/project/reactb2x/.a4drules/webapp-nav-and-placeholders.md +0 -33
  308. package/lib/templates/project/reactb2x/.a4drules/webapp-ui-first.md +0 -32
  309. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/build/vite.config.d.ts +0 -2
  310. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/build/vite.config.js +0 -93
  311. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/package-lock.json +0 -18408
  312. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/api/graphql-operations-types.ts +0 -116
  313. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/api/utils/accounts.ts +0 -33
  314. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/api/utils/query/highRevenueAccountsQuery.graphql +0 -29
  315. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/components/layout/card-layout.tsx +0 -23
  316. package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/lib/data-sdk.ts +0 -21
  317. package/lib/templates/webapplication/reactbasic/build/vite.config.d.ts +0 -2
  318. package/lib/templates/webapplication/reactbasic/build/vite.config.js +0 -93
  319. package/lib/templates/webapplication/reactbasic/package-lock.json +0 -14373
  320. package/lib/templates/webapplication/reactbasic/src/api/graphql-operations-types.ts +0 -116
  321. package/lib/templates/webapplication/reactbasic/src/api/utils/accounts.ts +0 -33
  322. package/lib/templates/webapplication/reactbasic/src/api/utils/query/highRevenueAccountsQuery.graphql +0 -29
  323. /package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{components/auth → features/authentication}/authHelpers.ts +0 -0
  324. /package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{components/auth → features/authentication}/authenticationConfig.ts +0 -0
  325. /package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{hooks → features/authentication/hooks}/useCountdownTimer.ts +0 -0
  326. /package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{hooks → features/authentication/hooks}/useRetryWithBackoff.ts +0 -0
  327. /package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{components/auth → features/authentication}/sessionTimeout/sessionTimeService.ts +0 -0
  328. /package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{components/auth → features/authentication}/sessionTimeout/sessionTimeoutConfig.ts +0 -0
  329. /package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/{utils → features/authentication/utils}/helpers.ts +0 -0
@@ -1,15 +1,16 @@
1
- import { cn } from "../../lib/utils";
2
- import { Loader2Icon } from "lucide-react";
1
+ import * as React from 'react';
2
+ import { cn } from '../../lib/utils';
3
+ import { Loader2Icon } from 'lucide-react';
3
4
 
4
- function Spinner({ className, ...props }: React.ComponentProps<"svg">) {
5
- return (
6
- <Loader2Icon
7
- role="status"
8
- aria-label="Loading"
9
- className={cn("size-4 animate-spin", className)}
10
- {...props}
11
- />
12
- );
5
+ function Spinner({ className, ...props }: React.ComponentProps<'svg'>) {
6
+ return (
7
+ <Loader2Icon
8
+ role="status"
9
+ aria-label="Loading"
10
+ className={cn('size-4 animate-spin', className)}
11
+ {...(props as any)}
12
+ />
13
+ );
13
14
  }
14
15
 
15
16
  export { Spinner };
@@ -1,87 +1,114 @@
1
- import * as React from "react";
1
+ import * as React from 'react';
2
2
 
3
- import { cn } from "../../lib/utils";
3
+ import { cn } from '../../lib/utils';
4
4
 
5
- function Table({ className, ...props }: React.ComponentProps<"table">) {
6
- return (
7
- <div data-slot="table-container" className="relative w-full overflow-x-auto">
8
- <table
9
- data-slot="table"
10
- className={cn("w-full caption-bottom text-sm", className)}
11
- {...props}
12
- />
13
- </div>
14
- );
5
+ function Table({ className, ...props }: React.ComponentProps<'table'>) {
6
+ return (
7
+ <div
8
+ data-slot="table-container"
9
+ className="relative w-full overflow-x-auto"
10
+ >
11
+ <table
12
+ data-slot="table"
13
+ className={cn('w-full caption-bottom text-sm', className)}
14
+ {...props}
15
+ />
16
+ </div>
17
+ );
15
18
  }
16
19
 
17
- function TableHeader({ className, ...props }: React.ComponentProps<"thead">) {
18
- return <thead data-slot="table-header" className={cn("[&_tr]:border-b", className)} {...props} />;
20
+ function TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {
21
+ return (
22
+ <thead
23
+ data-slot="table-header"
24
+ className={cn('[&_tr]:border-b', className)}
25
+ {...props}
26
+ />
27
+ );
19
28
  }
20
29
 
21
- function TableBody({ className, ...props }: React.ComponentProps<"tbody">) {
22
- return (
23
- <tbody
24
- data-slot="table-body"
25
- className={cn("[&_tr:last-child]:border-0", className)}
26
- {...props}
27
- />
28
- );
30
+ function TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {
31
+ return (
32
+ <tbody
33
+ data-slot="table-body"
34
+ className={cn('[&_tr:last-child]:border-0', className)}
35
+ {...props}
36
+ />
37
+ );
29
38
  }
30
39
 
31
- function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">) {
32
- return (
33
- <tfoot
34
- data-slot="table-footer"
35
- className={cn("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0", className)}
36
- {...props}
37
- />
38
- );
40
+ function TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {
41
+ return (
42
+ <tfoot
43
+ data-slot="table-footer"
44
+ className={cn(
45
+ 'bg-muted/50 border-t font-medium [&>tr]:last:border-b-0',
46
+ className
47
+ )}
48
+ {...props}
49
+ />
50
+ );
39
51
  }
40
52
 
41
- function TableRow({ className, ...props }: React.ComponentProps<"tr">) {
42
- return (
43
- <tr
44
- data-slot="table-row"
45
- className={cn(
46
- "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
47
- className,
48
- )}
49
- {...props}
50
- />
51
- );
53
+ function TableRow({ className, ...props }: React.ComponentProps<'tr'>) {
54
+ return (
55
+ <tr
56
+ data-slot="table-row"
57
+ className={cn(
58
+ 'hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors',
59
+ className
60
+ )}
61
+ {...props}
62
+ />
63
+ );
52
64
  }
53
65
 
54
- function TableHead({ className, ...props }: React.ComponentProps<"th">) {
55
- return (
56
- <th
57
- data-slot="table-head"
58
- className={cn(
59
- "text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0",
60
- className,
61
- )}
62
- {...props}
63
- />
64
- );
66
+ function TableHead({ className, ...props }: React.ComponentProps<'th'>) {
67
+ return (
68
+ <th
69
+ data-slot="table-head"
70
+ className={cn(
71
+ 'text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0',
72
+ className
73
+ )}
74
+ {...props}
75
+ />
76
+ );
65
77
  }
66
78
 
67
- function TableCell({ className, ...props }: React.ComponentProps<"td">) {
68
- return (
69
- <td
70
- data-slot="table-cell"
71
- className={cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0", className)}
72
- {...props}
73
- />
74
- );
79
+ function TableCell({ className, ...props }: React.ComponentProps<'td'>) {
80
+ return (
81
+ <td
82
+ data-slot="table-cell"
83
+ className={cn(
84
+ 'p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0',
85
+ className
86
+ )}
87
+ {...props}
88
+ />
89
+ );
75
90
  }
76
91
 
77
- function TableCaption({ className, ...props }: React.ComponentProps<"caption">) {
78
- return (
79
- <caption
80
- data-slot="table-caption"
81
- className={cn("text-muted-foreground mt-4 text-sm", className)}
82
- {...props}
83
- />
84
- );
92
+ function TableCaption({
93
+ className,
94
+ ...props
95
+ }: React.ComponentProps<'caption'>) {
96
+ return (
97
+ <caption
98
+ data-slot="table-caption"
99
+ className={cn('text-muted-foreground mt-4 text-sm', className)}
100
+ {...props}
101
+ />
102
+ );
85
103
  }
86
104
 
87
- export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };
105
+ export {
106
+ Table,
107
+ TableHeader,
108
+ TableBody,
109
+ TableFooter,
110
+ TableHead,
111
+ TableRow,
112
+ TableCell,
113
+ TableCaption,
114
+ };
@@ -1,78 +1,88 @@
1
- import * as React from "react";
2
- import { cva, type VariantProps } from "class-variance-authority";
3
- import { Tabs as TabsPrimitive } from "radix-ui";
1
+ import * as React from 'react';
2
+ import { cva, type VariantProps } from 'class-variance-authority';
3
+ import { Tabs as TabsPrimitive } from 'radix-ui';
4
4
 
5
- import { cn } from "../../lib/utils";
5
+ import { cn } from '../../lib/utils';
6
6
 
7
7
  function Tabs({
8
- className,
9
- orientation = "horizontal",
10
- ...props
8
+ className,
9
+ orientation = 'horizontal',
10
+ ...props
11
11
  }: React.ComponentProps<typeof TabsPrimitive.Root>) {
12
- return (
13
- <TabsPrimitive.Root
14
- data-slot="tabs"
15
- data-orientation={orientation}
16
- className={cn("gap-2 group/tabs flex data-horizontal:flex-col", className)}
17
- {...props}
18
- />
19
- );
12
+ return (
13
+ <TabsPrimitive.Root
14
+ data-slot="tabs"
15
+ data-orientation={orientation}
16
+ className={cn(
17
+ 'gap-2 group/tabs flex data-horizontal:flex-col',
18
+ className
19
+ )}
20
+ {...props}
21
+ />
22
+ );
20
23
  }
21
24
 
22
25
  const tabsListVariants = cva(
23
- "rounded-lg p-[3px] group-data-horizontal/tabs:h-8 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col",
24
- {
25
- variants: {
26
- variant: {
27
- default: "bg-muted",
28
- line: "gap-1 bg-transparent",
29
- },
30
- },
31
- defaultVariants: {
32
- variant: "default",
33
- },
34
- },
26
+ 'rounded-lg p-[3px] group-data-horizontal/tabs:h-8 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col',
27
+ {
28
+ variants: {
29
+ variant: {
30
+ default: 'bg-muted',
31
+ line: 'gap-1 bg-transparent',
32
+ },
33
+ },
34
+ defaultVariants: {
35
+ variant: 'default',
36
+ },
37
+ }
35
38
  );
36
39
 
37
40
  function TabsList({
38
- className,
39
- variant = "default",
40
- ...props
41
- }: React.ComponentProps<typeof TabsPrimitive.List> & VariantProps<typeof tabsListVariants>) {
42
- return (
43
- <TabsPrimitive.List
44
- data-slot="tabs-list"
45
- data-variant={variant}
46
- className={cn(tabsListVariants({ variant }), className)}
47
- {...props}
48
- />
49
- );
41
+ className,
42
+ variant = 'default',
43
+ ...props
44
+ }: React.ComponentProps<typeof TabsPrimitive.List> &
45
+ VariantProps<typeof tabsListVariants>) {
46
+ return (
47
+ <TabsPrimitive.List
48
+ data-slot="tabs-list"
49
+ data-variant={variant}
50
+ className={cn(tabsListVariants({ variant }), className)}
51
+ {...props}
52
+ />
53
+ );
50
54
  }
51
55
 
52
- function TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>) {
53
- return (
54
- <TabsPrimitive.Trigger
55
- data-slot="tabs-trigger"
56
- className={cn(
57
- "gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg:not([class*='size-'])]:size-4 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center whitespace-nowrap transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
58
- "group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent",
59
- "data-active:bg-background dark:data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 data-active:text-foreground",
60
- "after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100",
61
- className,
62
- )}
63
- {...props}
64
- />
65
- );
56
+ function TabsTrigger({
57
+ className,
58
+ ...props
59
+ }: React.ComponentProps<typeof TabsPrimitive.Trigger>) {
60
+ return (
61
+ <TabsPrimitive.Trigger
62
+ data-slot="tabs-trigger"
63
+ className={cn(
64
+ "gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg:not([class*='size-'])]:size-4 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center whitespace-nowrap transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
65
+ 'group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent',
66
+ 'data-active:bg-background dark:data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 data-active:text-foreground',
67
+ 'after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100',
68
+ className
69
+ )}
70
+ {...props}
71
+ />
72
+ );
66
73
  }
67
74
 
68
- function TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>) {
69
- return (
70
- <TabsPrimitive.Content
71
- data-slot="tabs-content"
72
- className={cn("text-sm flex-1 outline-none", className)}
73
- {...props}
74
- />
75
- );
75
+ function TabsContent({
76
+ className,
77
+ ...props
78
+ }: React.ComponentProps<typeof TabsPrimitive.Content>) {
79
+ return (
80
+ <TabsPrimitive.Content
81
+ data-slot="tabs-content"
82
+ className={cn('text-sm flex-1 outline-none', className)}
83
+ {...props}
84
+ />
85
+ );
76
86
  }
77
87
 
78
88
  export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };
@@ -3,7 +3,7 @@
3
3
  "rsc": true,
4
4
  "tailwind": {
5
5
  "config": "",
6
- "css": "styles/globals.css",
6
+ "css": "styles/global.css",
7
7
  "baseColor": "neutral",
8
8
  "cssVariables": true
9
9
  },
@@ -0,0 +1,39 @@
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,6 +1,6 @@
1
1
  import { createContext, useContext, useState, useEffect, useCallback, type ReactNode } from "react";
2
2
  import { getCurrentUser } from "@salesforce/webapp-experimental/api";
3
- import { API_ROUTES } from "../components/auth/authenticationConfig";
3
+ import { API_ROUTES } from "../authenticationConfig";
4
4
 
5
5
  interface User {
6
6
  readonly id: string;
@@ -1,5 +1,5 @@
1
1
  import { Link } from "react-router";
2
- import { cn } from "../../lib/utils";
2
+ import { cn } from "../../../lib/utils";
3
3
 
4
4
  interface FooterLinkProps extends Omit<React.ComponentProps<typeof Link>, "children"> {
5
5
  /** Link text prefix (e.g., "Don't have an account?") */
@@ -1,9 +1,9 @@
1
- import { FieldGroup } from "../ui/field";
2
- import { StatusAlert } from "../alerts/status-alert";
1
+ import { FieldGroup } from "../../../components/ui/field";
2
+ import { StatusAlert } from "../../../components/alerts/status-alert";
3
3
  import { FooterLink } from "../footers/footer-link";
4
4
  import { SubmitButton } from "./submit-button";
5
- import { CardLayout } from "../layout/card-layout";
6
- import { useFormContext } from "../../hooks/form";
5
+ import { CardLayout } from "../../../components/layouts/card-layout";
6
+ import { useFormContext } from "../hooks/form";
7
7
  import { useId } from "react";
8
8
 
9
9
  /**
@@ -1,7 +1,7 @@
1
- import { Button } from "../ui/button";
2
- import { Spinner } from "../ui/spinner";
3
- import { cn } from "../../lib/utils";
4
- import { useFormContext } from "../../hooks/form";
1
+ import { Button } from "../../../components/ui/button";
2
+ import { Spinner } from "../../../components/ui/spinner";
3
+ import { cn } from "../../../lib/utils";
4
+ import { useFormContext } from "../hooks/form";
5
5
 
6
6
  interface SubmitButtonProps extends Omit<React.ComponentProps<typeof Button>, "type"> {
7
7
  /** Button text when not submitting */
@@ -1,9 +1,14 @@
1
1
  import { useId } from "react";
2
2
  import { createFormHookContexts, createFormHook } from "@tanstack/react-form";
3
- import { Field, FieldDescription, FieldError, FieldLabel } from "../components/ui/field";
4
- import { Input } from "../components/ui/input";
5
- import { cn } from "../lib/utils";
6
- import { AUTH_PLACEHOLDERS } from "../components/auth/authenticationConfig";
3
+ import {
4
+ Field,
5
+ FieldDescription,
6
+ FieldError,
7
+ FieldLabel,
8
+ } from "../../../components/ui/field";
9
+ import { Input } from "../../../components/ui/input";
10
+ import { cn } from "../../../lib/utils";
11
+ import { AUTH_PLACEHOLDERS } from "../authenticationConfig";
7
12
 
8
13
  // Create form hook contexts
9
14
  export const { fieldContext, formContext, useFieldContext, useFormContext } =
@@ -13,11 +18,10 @@ export const { fieldContext, formContext, useFieldContext, useFormContext } =
13
18
  // Field Components
14
19
  // ============================================================================
15
20
 
16
- interface TextFieldProps
17
- extends Omit<
18
- React.ComponentProps<typeof Input>,
19
- "name" | "value" | "onBlur" | "onChange" | "aria-invalid"
20
- > {
21
+ interface TextFieldProps extends Omit<
22
+ React.ComponentProps<typeof Input>,
23
+ "name" | "value" | "onBlur" | "onChange" | "aria-invalid"
24
+ > {
21
25
  label: string;
22
26
  labelAction?: React.ReactNode;
23
27
  description?: React.ReactNode;
@@ -1,6 +1,6 @@
1
1
  import { CenteredPageLayout } from "./centered-page-layout";
2
- import { Card, CardContent, CardHeader } from "../ui/card";
3
- import { Skeleton } from "../ui/skeleton";
2
+ import { Card, CardContent, CardHeader } from "../../../components/ui/card";
3
+ import { Skeleton } from "../../../components/ui/skeleton";
4
4
 
5
5
  interface CardSkeletonProps {
6
6
  /**
@@ -1,5 +1,5 @@
1
1
  import { cva, type VariantProps } from "class-variance-authority";
2
- import { cn } from "../../lib/utils";
2
+ import { cn } from "../../../lib/utils";
3
3
 
4
4
  /**
5
5
  * Variant styles for the content container's maximum width.
@@ -22,8 +22,7 @@ const contentContainerVariants = cva("w-full", {
22
22
  * Props for the CenteredPageLayout component.
23
23
  */
24
24
  interface CenteredPageLayoutProps
25
- extends React.ComponentProps<"div">,
26
- VariantProps<typeof contentContainerVariants> {
25
+ extends React.ComponentProps<"div">, VariantProps<typeof contentContainerVariants> {
27
26
  /** The content to be displayed within the page layout */
28
27
  children: React.ReactNode;
29
28
  /**
@@ -1,6 +1,6 @@
1
- import SessionTimeoutValidator from "../components/auth/sessionTimeout/SessionTimeoutValidator";
1
+ import SessionTimeoutValidator from "../sessionTimeout/SessionTimeoutValidator";
2
2
  import { AuthProvider } from "../context/AuthContext";
3
- import AppLayout from "../appLayout";
3
+ import AppLayout from "../../../appLayout";
4
4
 
5
5
  export default function AuthAppLayout() {
6
6
  return (
@@ -1,6 +1,6 @@
1
1
  import { Navigate, Outlet, useSearchParams } from "react-router";
2
- import { useAuth } from "../../context/AuthContext";
3
- import { getStartUrl } from "./authHelpers";
2
+ import { useAuth } from "../context/AuthContext";
3
+ import { getStartUrl } from "../authHelpers";
4
4
  import { CardSkeleton } from "../layout/card-skeleton";
5
5
 
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  import { Navigate, Outlet, useLocation } from "react-router";
2
- import { useAuth } from "../../context/AuthContext";
3
- import { AUTH_REDIRECT_PARAM, ROUTES } from "./authenticationConfig";
2
+ import { useAuth } from "../context/AuthContext";
3
+ import { AUTH_REDIRECT_PARAM, ROUTES } from "../authenticationConfig";
4
4
  import { CardSkeleton } from "../layout/card-skeleton";
5
5
 
6
6
  /**
@@ -1,12 +1,12 @@
1
1
  import { useState } from "react";
2
2
  import { Link } from "react-router";
3
3
  import { z } from "zod";
4
- import { CenteredPageLayout } from "../components/layout/centered-page-layout";
5
- import { AuthForm } from "../components/forms/auth-form";
4
+ import { CenteredPageLayout } from "../layout/centered-page-layout";
5
+ import { AuthForm } from "../forms/auth-form";
6
6
  import { useAppForm } from "../hooks/form";
7
- import { getDataSDK } from "../lib/data-sdk";
8
- import { ROUTES, AUTH_PLACEHOLDERS } from "../components/auth/authenticationConfig";
9
- import { newPasswordSchema } from "../components/auth/authHelpers";
7
+ import { getDataSDK } from "@salesforce/sdk-data";
8
+ import { ROUTES, AUTH_PLACEHOLDERS } from "../authenticationConfig";
9
+ import { newPasswordSchema } from "../authHelpers";
10
10
  import { handleApiResponse, getErrorMessage } from "../utils/helpers";
11
11
 
12
12
  const changePasswordSchema = z
@@ -29,7 +29,7 @@ export default function ChangePassword() {
29
29
  // [Dev Note] Custom Apex Endpoint: /auth/change-password
30
30
  // You must ensure this Apex class exists in your org
31
31
  const sdk = await getDataSDK();
32
- const response = await sdk.fetch("/sfdcapi/services/apexrest/auth/change-password", {
32
+ const response = await sdk.fetch!("/sfdcapi/services/apexrest/auth/change-password", {
33
33
  method: "POST",
34
34
  body: JSON.stringify({
35
35
  currentPassword: formFieldValues.currentPassword,
@@ -1,10 +1,10 @@
1
1
  import { useState } from "react";
2
2
  import { z } from "zod";
3
- import { CenteredPageLayout } from "../components/layout/centered-page-layout";
4
- import { AuthForm } from "../components/forms/auth-form";
3
+ import { CenteredPageLayout } from "../layout/centered-page-layout";
4
+ import { AuthForm } from "../forms/auth-form";
5
5
  import { useAppForm } from "../hooks/form";
6
- import { getDataSDK } from "../lib/data-sdk";
7
- import { ROUTES, AUTH_PLACEHOLDERS } from "../components/auth/authenticationConfig";
6
+ import { getDataSDK } from "@salesforce/sdk-data";
7
+ import { ROUTES, AUTH_PLACEHOLDERS } from "../authenticationConfig";
8
8
  import { handleApiResponse, getErrorMessage } from "../utils/helpers";
9
9
 
10
10
  const forgotPasswordSchema = z.object({
@@ -25,7 +25,7 @@ export default function ForgotPassword() {
25
25
  // [Dev Note] Custom Apex Endpoint: /auth/forgot-password
26
26
  // You must ensure this Apex class exists in your org
27
27
  const sdk = await getDataSDK();
28
- const response = await sdk.fetch("/sfdcapi/services/apexrest/auth/forgot-password", {
28
+ const response = await sdk.fetch!("/sfdcapi/services/apexrest/auth/forgot-password", {
29
29
  method: "POST",
30
30
  body: JSON.stringify({ username: value.username.trim() }),
31
31
  headers: {
@@ -1,12 +1,12 @@
1
1
  import { useState } from "react";
2
2
  import { useNavigate, useSearchParams, Link } from "react-router";
3
3
  import { z } from "zod";
4
- import { CenteredPageLayout } from "../components/layout/centered-page-layout";
5
- import { AuthForm } from "../components/forms/auth-form";
4
+ import { CenteredPageLayout } from "../layout/centered-page-layout";
5
+ import { AuthForm } from "../forms/auth-form";
6
6
  import { useAppForm } from "../hooks/form";
7
- import { getDataSDK } from "../lib/data-sdk";
8
- import { ROUTES } from "../components/auth/authenticationConfig";
9
- import { emailSchema, getStartUrl, type AuthResponse } from "../components/auth/authHelpers";
7
+ import { getDataSDK } from "@salesforce/sdk-data";
8
+ import { ROUTES } from "../authenticationConfig";
9
+ import { emailSchema, getStartUrl, type AuthResponse } from "../authHelpers";
10
10
  import { handleApiResponse, getErrorMessage } from "../utils/helpers";
11
11
 
12
12
  const loginSchema = z.object({
@@ -31,7 +31,7 @@ export default function Login() {
31
31
  // You must ensure this Apex class exists in your org and handles the login logic
32
32
  // (e.g., creating a session or returning a token).
33
33
  const sdk = await getDataSDK();
34
- const response = await sdk.fetch("/sfdcapi/services/apexrest/auth/login", {
34
+ const response = await sdk.fetch!("/sfdcapi/services/apexrest/auth/login", {
35
35
  method: "POST",
36
36
  body: JSON.stringify({
37
37
  email: value.email.trim().toLowerCase(),