@salesforce/templates 66.3.2 → 66.4.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.
- package/README.md +10 -0
- package/lib/templates/project/reactb2e/AGENT.md +2 -0
- package/lib/templates/project/reactb2e/CHANGELOG.md +169 -0
- package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/package.json +5 -5
- package/lib/templates/project/{reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail → reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_}/DetailForm.tsx +1 -1
- package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_}/UiApiDetailForm.tsx +2 -2
- package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/search/GlobalSearchInput.tsx +1 -1
- package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/search/SearchResultCard.tsx +1 -1
- package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/api/objectDetailService.ts +3 -26
- package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/api/objectInfoGraphQLService.ts +137 -0
- package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/api/objectInfoService.ts +95 -0
- package/lib/templates/project/{reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_}/api/recordListGraphQLService.ts +1 -2
- package/lib/templates/project/{reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_}/hooks/useObjectInfoBatch.ts +1 -1
- package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/hooks/useObjectSearchData.ts +174 -0
- package/lib/templates/project/{reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_}/hooks/useRecordDetailLayout.ts +1 -20
- package/lib/templates/project/{reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_}/pages/DetailPage.tsx +1 -1
- package/lib/templates/project/{reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_}/pages/GlobalSearch.tsx +1 -1
- package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/types/filters/filters.ts +1 -0
- package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/filters/picklist.ts +6 -0
- package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/objectInfo/objectInfo.ts +49 -0
- package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/schema.d.ts +200 -0
- package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/apiUtils.ts +59 -0
- package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/graphQLObjectInfoAdapter.ts +77 -0
- package/lib/templates/project/{reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/recordUtils.ts +4 -4
- package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/index.ts +120 -0
- package/lib/templates/project/{reactb2x/force-app/main/default/webapplications/appreacttemplateb2x → reactb2e/_p_/_m_/_w_/_a_}/webapplication.json +1 -1
- package/lib/templates/project/reactb2e/_r_/features/feature-react-agentforce-conversation-client-embedded-agent-rule.md +18 -0
- package/lib/templates/project/reactb2e/_r_/skills/_k_/SKILL.md +148 -0
- package/lib/templates/project/{reactb2x/.a4drules/skills/feature-react-agentforce-conversation-client-embedded-agent → reactb2e/_r_/skills/_k_}/docs/embed-examples.md +42 -32
- package/lib/templates/project/reactb2e/_r_/skills/_k_/docs/troubleshooting.md +51 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-csp-trusted-sites/SKILL.md +90 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-csp-trusted-sites/implementation/metadata-format.md +281 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-react-add-component/SKILL.md +78 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-react-add-component/implementation/component.md +78 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-react-add-component/implementation/header-footer.md +124 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-react-add-component/implementation/page.md +92 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-react-data-visualization/SKILL.md +72 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-react-data-visualization/implementation/dashboard-layout.md +189 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-react-data-visualization/implementation/donut-chart.md +181 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-react-data-visualization/implementation/stat-card.md +150 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-react-interactive-map/SKILL.md +92 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-react-interactive-map/implementation/geocoding.md +245 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-react-interactive-map/implementation/leaflet-map.md +279 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-react-weather-widget/SKILL.md +65 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-react-weather-widget/implementation/weather-hook.md +258 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-react-weather-widget/implementation/weather-ui.md +216 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/SKILL.md +268 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/charts.csv +26 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/colors.csv +97 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/icons.csv +101 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/landing.csv +31 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/products.csv +97 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/react-performance.csv +45 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/stacks/html-tailwind.csv +56 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/stacks/react.csv +54 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/stacks/shadcn.csv +61 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/styles.csv +68 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/typography.csv +58 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/ui-reasoning.csv +101 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/ux-guidelines.csv +100 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/data/web-interface.csv +31 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/scripts/core.js +255 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/scripts/design_system.js +861 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-ui-ux/scripts/search.js +98 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-unsplash-images/SKILL.md +71 -0
- package/lib/templates/project/reactb2e/_r_/skills/webapp-unsplash-images/implementation/usage.md +159 -0
- package/lib/templates/project/reactb2e/_r_/webapp-no-node-e.md +65 -0
- package/lib/templates/project/reactb2e/{.a4drules → _r_}/webapp-react.md +9 -10
- package/lib/templates/project/reactb2e/_r_/webapp-skills-first.md +26 -0
- package/lib/templates/project/reactb2e/{.a4drules → _r_}/webapp.md +8 -0
- package/lib/templates/project/reactb2e/package.json +3 -2
- package/lib/templates/project/reactb2e/scripts/prepare-import-unique-fields.js +108 -0
- package/lib/templates/project/reactb2e/scripts/setup-cli.mjs +282 -0
- package/lib/templates/project/reactb2x/AGENT.md +2 -0
- package/lib/templates/project/reactb2x/CHANGELOG.md +169 -0
- package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/package.json +4 -4
- package/lib/templates/project/{reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail → reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_}/DetailForm.tsx +1 -1
- package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_}/UiApiDetailForm.tsx +2 -2
- package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/search/GlobalSearchInput.tsx +1 -1
- package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/search/SearchResultCard.tsx +1 -1
- package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/api/objectDetailService.ts +3 -26
- package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/api/objectInfoGraphQLService.ts +137 -0
- package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/api/objectInfoService.ts +95 -0
- package/lib/templates/project/{reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_}/api/recordListGraphQLService.ts +1 -2
- package/lib/templates/project/{reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_}/hooks/useObjectInfoBatch.ts +1 -1
- package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/hooks/useObjectSearchData.ts +174 -0
- package/lib/templates/project/{reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_}/hooks/useRecordDetailLayout.ts +1 -20
- package/lib/templates/project/{reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_}/pages/DetailPage.tsx +1 -1
- package/lib/templates/project/{reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_}/pages/GlobalSearch.tsx +1 -1
- package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/types/filters/filters.ts +1 -0
- package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/filters/picklist.ts +6 -0
- package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/objectInfo/objectInfo.ts +49 -0
- package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/types/schema.d.ts +200 -0
- package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/apiUtils.ts +59 -0
- package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_/utils/graphQLObjectInfoAdapter.ts +77 -0
- package/lib/templates/project/{reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → reactb2x/_p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/recordUtils.ts +4 -4
- package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/authentication/api/userProfileApi.ts +81 -0
- package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/layout/centered-page-layout.tsx +17 -2
- package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/pages/Profile.tsx +7 -55
- package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/index.ts +120 -0
- package/lib/templates/project/{reactb2e/force-app/main/default/webapplications/appreacttemplateb2e → reactb2x/_p_/_m_/_w_/_a_}/webapplication.json +1 -1
- package/lib/templates/project/reactb2x/_r_/features/feature-react-agentforce-conversation-client-embedded-agent-rule.md +18 -0
- package/lib/templates/project/reactb2x/_r_/skills/_k_/SKILL.md +148 -0
- package/lib/templates/project/{reactb2e/.a4drules/skills/feature-react-agentforce-conversation-client-embedded-agent → reactb2x/_r_/skills/_k_}/docs/embed-examples.md +42 -32
- package/lib/templates/project/reactb2x/_r_/skills/_k_/docs/troubleshooting.md +51 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-csp-trusted-sites/SKILL.md +90 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-csp-trusted-sites/implementation/metadata-format.md +281 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-react-add-component/SKILL.md +78 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-react-add-component/implementation/component.md +78 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-react-add-component/implementation/header-footer.md +124 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-react-add-component/implementation/page.md +92 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-react-data-visualization/SKILL.md +72 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-react-data-visualization/implementation/dashboard-layout.md +189 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-react-data-visualization/implementation/donut-chart.md +181 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-react-data-visualization/implementation/stat-card.md +150 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-react-interactive-map/SKILL.md +92 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-react-interactive-map/implementation/geocoding.md +245 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-react-interactive-map/implementation/leaflet-map.md +279 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-react-weather-widget/SKILL.md +65 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-react-weather-widget/implementation/weather-hook.md +258 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-react-weather-widget/implementation/weather-ui.md +216 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/SKILL.md +268 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/charts.csv +26 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/colors.csv +97 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/icons.csv +101 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/landing.csv +31 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/products.csv +97 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/react-performance.csv +45 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/stacks/html-tailwind.csv +56 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/stacks/react.csv +54 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/stacks/shadcn.csv +61 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/styles.csv +68 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/typography.csv +58 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/ui-reasoning.csv +101 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/ux-guidelines.csv +100 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/data/web-interface.csv +31 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/scripts/core.js +255 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/scripts/design_system.js +861 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-ui-ux/scripts/search.js +98 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-unsplash-images/SKILL.md +71 -0
- package/lib/templates/project/reactb2x/_r_/skills/webapp-unsplash-images/implementation/usage.md +159 -0
- package/lib/templates/project/reactb2x/_r_/webapp-no-node-e.md +65 -0
- package/lib/templates/project/reactb2x/{.a4drules → _r_}/webapp-react.md +9 -10
- package/lib/templates/project/reactb2x/_r_/webapp-skills-first.md +26 -0
- package/lib/templates/project/reactb2x/{.a4drules → _r_}/webapp.md +8 -0
- package/lib/templates/project/reactb2x/package.json +3 -2
- package/lib/templates/project/reactb2x/scripts/prepare-import-unique-fields.js +108 -0
- package/lib/templates/project/reactb2x/scripts/setup-cli.mjs +282 -0
- package/lib/templates/webapplication/reactbasic/package.json +8 -8
- package/lib/templates/webapplication/reactbasic/webapplication.json +1 -1
- package/lib/templates/webapplication/webappbasic/webapplication.json +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/utils/template-placeholders.d.ts +42 -0
- package/lib/utils/template-placeholders.js +103 -0
- package/lib/utils/template-placeholders.js.map +1 -0
- package/lib/utils/webappTemplateUtils.d.ts +42 -0
- package/lib/utils/webappTemplateUtils.js +84 -7
- package/lib/utils/webappTemplateUtils.js.map +1 -1
- package/package.json +6 -6
- package/lib/templates/project/reactb2e/.a4drules/features/feature-react-agentforce-conversation-client-embedded-agent-rule.md +0 -32
- package/lib/templates/project/reactb2e/.a4drules/skills/feature-react-agentforce-conversation-client-embedded-agent/SKILL.md +0 -108
- package/lib/templates/project/reactb2e/.a4drules/webapp-images.md +0 -15
- package/lib/templates/project/reactb2e/.a4drules/webapp-no-node-e.md +0 -26
- package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/api/index.ts +0 -19
- package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/api/objectInfoGraphQLService.ts +0 -194
- package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/api/objectInfoService.ts +0 -199
- package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/formatted/index.ts +0 -6
- package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/hooks/index.ts +0 -22
- package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/hooks/useObjectSearchData.ts +0 -395
- package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/types/filters/picklist.ts +0 -32
- package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/types/index.ts +0 -4
- package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/types/objectInfo/objectInfo.ts +0 -166
- package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/apiUtils.ts +0 -125
- package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/graphQLObjectInfoAdapter.ts +0 -319
- package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/utils/index.ts +0 -59
- package/lib/templates/project/reactb2e/force-app/main/default/webapplications/appreacttemplateb2e/src/index.ts +0 -6
- package/lib/templates/project/reactb2x/.a4drules/features/feature-react-agentforce-conversation-client-embedded-agent-rule.md +0 -32
- package/lib/templates/project/reactb2x/.a4drules/skills/feature-react-agentforce-conversation-client-embedded-agent/SKILL.md +0 -108
- package/lib/templates/project/reactb2x/.a4drules/webapp-images.md +0 -15
- package/lib/templates/project/reactb2x/.a4drules/webapp-no-node-e.md +0 -26
- package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/api/index.ts +0 -19
- package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/api/objectInfoGraphQLService.ts +0 -194
- package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/api/objectInfoService.ts +0 -199
- package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/formatted/index.ts +0 -6
- package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/hooks/index.ts +0 -22
- package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/hooks/useObjectSearchData.ts +0 -395
- package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/types/filters/picklist.ts +0 -32
- package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/types/index.ts +0 -4
- package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/types/objectInfo/objectInfo.ts +0 -166
- package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/apiUtils.ts +0 -125
- package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/graphQLObjectInfoAdapter.ts +0 -319
- package/lib/templates/project/reactb2x/force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/utils/index.ts +0 -59
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/.graphqlrc.yml +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/.prettierignore +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/.prettierrc +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/CHANGELOG.md +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/README.md +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/appreacttemplateb2e.webapplication-meta.xml +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/codegen.yml +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/e2e/app.spec.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/eslint.config.js +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/index.html +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/playwright.config.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/scripts/get-graphql-schema.mjs +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/scripts/rewrite-e2e-assets.mjs +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_}/DetailFields.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_}/DetailHeader.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_}/DetailLayoutSections.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_}/Section.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_}/SectionRow.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/formatted → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_}/FieldValueDisplay.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/formatted → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_}/FormattedAddress.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/formatted → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_}/FormattedEmail.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/formatted → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_}/FormattedPhone.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/formatted → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_}/FormattedText.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components/detail/formatted → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_}/FormattedUrl.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/filters/FilterField.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/filters/FilterInput.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/filters/FilterSelect.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/filters/FiltersPanel.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/forms/filters-form.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/forms/submit-button.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/search/ResultCardFields.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/search/SearchHeader.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/search/SearchPagination.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/search/SearchResultsPanel.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/shared/LoadingFallback.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src → _p_/_m_/_w_/_a_/src/_f_/_gs_}/constants.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/filters/FilterInput.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/filters/FilterSelect.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/hooks/form.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/hooks/useRecordListGraphQL.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/types/recordDetail/recordDetail.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/types/search/searchResults.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/cacheUtils.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/debounce.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/fieldUtils.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/fieldValueExtractor.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/filterUtils.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/formDataTransformUtils.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/formUtils.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/graphQLNodeFieldUtils.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/graphQLRecordAdapter.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/layoutTransformUtils.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/linkUtils.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/paginationUtils.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/sanitizationUtils.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/app.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/appLayout.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/assets/icons/book.svg +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/assets/icons/copy.svg +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/assets/icons/rocket.svg +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/assets/icons/star.svg +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/assets/images/codey-1.png +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/assets/images/codey-2.png +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/assets/images/codey-3.png +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/assets/images/vibe-codey.svg +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/AgentforceConversationClient.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/__inherit_AgentforceConversationClient.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/alerts/status-alert.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/layouts/card-layout.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/ui/alert.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/ui/button.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/ui/card.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/ui/dialog.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/ui/field.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/ui/index.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/ui/input.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/ui/label.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/ui/pagination.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/ui/select.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/ui/separator.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/ui/skeleton.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/ui/spinner.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/ui/table.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components/ui/tabs.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/components.json +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/lib/utils.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/navigationMenu.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/pages/Home.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/pages/NotFound.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/pages/TestAccPage.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/router-utils.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/routes.tsx +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/styles/global.css +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/src/types/conversation.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/tsconfig.json +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/tsconfig.node.json +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/vite-env.d.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/vite.config.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/vitest-env.d.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/vitest.config.ts +0 -0
- /package/lib/templates/project/reactb2e/{force-app/main/default/webapplications/appreacttemplateb2e → _p_/_m_/_w_/_a_}/vitest.setup.ts +0 -0
- /package/lib/templates/project/reactb2e/{.a4drules → _r_}/features/feature-graphql-graphql-data-access-rule.md +0 -0
- /package/lib/templates/project/reactb2e/{.a4drules → _r_}/features/feature-react-chart-analytics-charts-rule.md +0 -0
- /package/lib/templates/project/reactb2e/{.a4drules → _r_}/skills/feature-graphql-graphql-data-access/SKILL.md +0 -0
- /package/lib/templates/project/reactb2e/{.a4drules → _r_}/skills/feature-graphql-graphql-data-access/docs/explore-schema.md +0 -0
- /package/lib/templates/project/reactb2e/{.a4drules → _r_}/skills/feature-graphql-graphql-data-access/docs/generate-mutation-query.md +0 -0
- /package/lib/templates/project/reactb2e/{.a4drules → _r_}/skills/feature-graphql-graphql-data-access/docs/generate-read-query.md +0 -0
- /package/lib/templates/project/reactb2e/{.a4drules → _r_}/skills/feature-graphql-graphql-data-access/docs/shared-schema.graphqls +0 -0
- /package/lib/templates/project/reactb2e/{.a4drules → _r_}/skills/feature-micro-frontend-micro-frontend/SKILL.md +0 -0
- /package/lib/templates/project/reactb2e/{.a4drules → _r_}/skills/feature-react-chart-analytics-charts/SKILL.md +0 -0
- /package/lib/templates/project/reactb2e/{.a4drules → _r_}/skills/feature-react-chart-analytics-charts/docs/schema-mapping.md +0 -0
- /package/lib/templates/project/reactb2e/{.a4drules/webapp-code-quality.md → _r_/webapp-react-code-quality.md} +0 -0
- /package/lib/templates/project/reactb2e/{.a4drules/webapp-typescript.md → _r_/webapp-react-typescript.md} +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/digitalExperiences/site/appreacttemplateb2x1 → _p_/_m_/_d_/_s_/_a1_}/appreacttemplateb2x1.digitalExperience-meta.xml +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/digitalExperiences/site/appreacttemplateb2x1 → _p_/_m_/_d_/_s_/_a1_}/sfdc_cms__site/appreacttemplateb2x1/_meta.json +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/digitalExperiences/site/appreacttemplateb2x1 → _p_/_m_/_d_/_s_/_a1_}/sfdc_cms__site/appreacttemplateb2x1/content.json +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/.graphqlrc.yml +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/.prettierignore +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/.prettierrc +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/CHANGELOG.md +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/README.md +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/appreacttemplateb2x.webapplication-meta.xml +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/codegen.yml +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/e2e/app.spec.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/eslint.config.js +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/index.html +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/playwright.config.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/scripts/get-graphql-schema.mjs +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/scripts/rewrite-e2e-assets.mjs +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_}/DetailFields.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_}/DetailHeader.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_}/DetailLayoutSections.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_}/Section.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_}/SectionRow.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/formatted → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_}/FieldValueDisplay.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/formatted → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_}/FormattedAddress.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/formatted → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_}/FormattedEmail.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/formatted → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_}/FormattedPhone.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/formatted → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_}/FormattedText.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components/detail/formatted → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_/_det_/_fmt_}/FormattedUrl.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/filters/FilterField.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/filters/FilterInput.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/filters/FilterSelect.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/filters/FiltersPanel.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/forms/filters-form.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/forms/submit-button.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/search/ResultCardFields.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/search/SearchHeader.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/search/SearchPagination.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/search/SearchResultsPanel.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search/components → _p_/_m_/_w_/_a_/src/_f_/_gs_/_c_}/shared/LoadingFallback.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src → _p_/_m_/_w_/_a_/src/_f_/_gs_}/constants.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/filters/FilterInput.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/filters/FilterSelect.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/hooks/form.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/hooks/useRecordListGraphQL.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/types/recordDetail/recordDetail.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/types/search/searchResults.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/cacheUtils.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/debounce.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/fieldUtils.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/fieldValueExtractor.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/filterUtils.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/formDataTransformUtils.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/formUtils.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/graphQLNodeFieldUtils.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/graphQLRecordAdapter.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/layoutTransformUtils.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/linkUtils.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/paginationUtils.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features/global-search → _p_/_m_/_w_/_a_/src/_f_/_gs_}/utils/sanitizationUtils.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/authHelpers.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/authenticationConfig.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/context/AuthContext.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/footers/footer-link.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/forms/auth-form.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/forms/submit-button.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/hooks/form.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/hooks/useCountdownTimer.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/hooks/useRetryWithBackoff.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/layout/card-skeleton.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/layouts/AuthAppLayout.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/layouts/authenticationRouteLayout.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/layouts/privateRouteLayout.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/pages/ChangePassword.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/pages/ForgotPassword.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/pages/Login.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/pages/Register.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/pages/ResetPassword.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/sessionTimeout/SessionTimeoutValidator.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/sessionTimeout/sessionTimeService.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/sessionTimeout/sessionTimeoutConfig.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x/src/features → _p_/_m_/_w_/_a_/src/_f_}/authentication/utils/helpers.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/app.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/appLayout.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/assets/icons/book.svg +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/assets/icons/copy.svg +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/assets/icons/rocket.svg +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/assets/icons/star.svg +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/assets/images/codey-1.png +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/assets/images/codey-2.png +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/assets/images/codey-3.png +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/assets/images/vibe-codey.svg +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/alerts/status-alert.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/layouts/card-layout.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/ui/alert.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/ui/button.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/ui/card.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/ui/dialog.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/ui/field.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/ui/index.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/ui/input.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/ui/label.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/ui/pagination.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/ui/select.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/ui/separator.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/ui/skeleton.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/ui/spinner.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/ui/table.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components/ui/tabs.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/components.json +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/lib/utils.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/navigationMenu.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/pages/Home.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/pages/NotFound.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/router-utils.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/routes.tsx +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/src/styles/global.css +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/tsconfig.json +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/tsconfig.node.json +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/vite-env.d.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/vite.config.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/vitest-env.d.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/vitest.config.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default/webapplications/appreacttemplateb2x → _p_/_m_/_w_/_a_}/vitest.setup.ts +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default → _p_/_m_}/classes/WebAppAuthUtils.cls +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default → _p_/_m_}/classes/WebAppAuthUtils.cls-meta.xml +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default → _p_/_m_}/classes/WebAppChangePassword.cls +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default → _p_/_m_}/classes/WebAppChangePassword.cls-meta.xml +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default → _p_/_m_}/classes/WebAppForgotPassword.cls +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default → _p_/_m_}/classes/WebAppForgotPassword.cls-meta.xml +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default → _p_/_m_}/classes/WebAppLogin.cls +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default → _p_/_m_}/classes/WebAppLogin.cls-meta.xml +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default → _p_/_m_}/classes/WebAppRegistration.cls +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default → _p_/_m_}/classes/WebAppRegistration.cls-meta.xml +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default → _p_/_m_}/digitalExperienceConfigs/appreacttemplateb2x1.digitalExperienceConfig +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default → _p_/_m_}/networks/appreacttemplateb2x.network +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default → _p_/_m_}/package.xml +0 -0
- /package/lib/templates/project/reactb2x/{force-app/main/default → _p_/_m_}/sites/appreacttemplateb2x.site +0 -0
- /package/lib/templates/project/reactb2x/{.a4drules → _r_}/features/feature-graphql-graphql-data-access-rule.md +0 -0
- /package/lib/templates/project/reactb2x/{.a4drules → _r_}/features/feature-react-chart-analytics-charts-rule.md +0 -0
- /package/lib/templates/project/reactb2x/{.a4drules → _r_}/skills/feature-graphql-graphql-data-access/SKILL.md +0 -0
- /package/lib/templates/project/reactb2x/{.a4drules → _r_}/skills/feature-graphql-graphql-data-access/docs/explore-schema.md +0 -0
- /package/lib/templates/project/reactb2x/{.a4drules → _r_}/skills/feature-graphql-graphql-data-access/docs/generate-mutation-query.md +0 -0
- /package/lib/templates/project/reactb2x/{.a4drules → _r_}/skills/feature-graphql-graphql-data-access/docs/generate-read-query.md +0 -0
- /package/lib/templates/project/reactb2x/{.a4drules → _r_}/skills/feature-graphql-graphql-data-access/docs/shared-schema.graphqls +0 -0
- /package/lib/templates/project/reactb2x/{.a4drules → _r_}/skills/feature-micro-frontend-micro-frontend/SKILL.md +0 -0
- /package/lib/templates/project/reactb2x/{.a4drules → _r_}/skills/feature-react-chart-analytics-charts/SKILL.md +0 -0
- /package/lib/templates/project/reactb2x/{.a4drules → _r_}/skills/feature-react-chart-analytics-charts/docs/schema-mapping.md +0 -0
- /package/lib/templates/project/reactb2x/{.a4drules/webapp-code-quality.md → _r_/webapp-react-code-quality.md} +0 -0
- /package/lib/templates/project/reactb2x/{.a4drules/webapp-typescript.md → _r_/webapp-react-typescript.md} +0 -0
package/README.md
CHANGED
|
@@ -10,6 +10,16 @@ This repository provides:
|
|
|
10
10
|
|
|
11
11
|
- [@salesforce/templates](https://www.npmjs.com/package/@salesforce/templates) to support the library and [Salesforce VS Code extensions](https://github.com/forcedotcom/salesforcedx-vscode/).
|
|
12
12
|
|
|
13
|
+
### Consumer build requirements (e.g. salesforcedx-vscode)
|
|
14
|
+
|
|
15
|
+
Repos that **bundle** `@salesforce/templates` (e.g. with esbuild) and use a templates manifest must:
|
|
16
|
+
|
|
17
|
+
1. **Copy built-in templates into the bundle output** before the bundle step that runs `generateTemplatesManifest`. The published package includes templates at `lib/templates`. You can copy from that path, or use the exported path:
|
|
18
|
+
- `getBuiltinTemplatesPath` (returns the resolved path to `lib/templates` when not on the web platform; `undefined` on web).
|
|
19
|
+
2. **Wireit / task order**: Ensure the script that populates `dist/templates` (or your equivalent) runs **before** the `vscode:bundle` (or similar) task. Otherwise the bundle step will fail with `ENOENT: no such file or directory, scandir '.../dist/templates'`.
|
|
20
|
+
|
|
21
|
+
Template paths inside the package are kept short (via placeholders in `lib/templates`) so they stay within Windows path limits used by `pack:verify`.
|
|
22
|
+
|
|
13
23
|
## Getting Started
|
|
14
24
|
|
|
15
25
|
If you're interested in contributing, take a look at the [CONTRIBUTING](CONTRIBUTING.md) guide.
|
|
@@ -26,6 +26,8 @@ Used for SFDX metadata (LWC, Aura, etc.). Scripts here are for the base SFDX tem
|
|
|
26
26
|
| `npm run prettier` | Format supported metadata files |
|
|
27
27
|
| `npm run prettier:verify` | Check Prettier |
|
|
28
28
|
|
|
29
|
+
**One-command setup:** From project root run `node scripts/setup-cli.mjs --target-org <alias>` to run login (if needed), deploy, optional permset/data import, GraphQL schema/codegen, web app build, and optionally the dev server. Use `node scripts/setup-cli.mjs --help` for options (e.g. `--skip-login`, `--skip-data`, `--webapp-name`).
|
|
30
|
+
|
|
29
31
|
Root **does not** run the React app. The root `npm run build` is a no-op for the base SFDX project.
|
|
30
32
|
|
|
31
33
|
### 2. React web app (where you do most work)
|
|
@@ -3,6 +3,175 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.84.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.83.0...v1.84.0) (2026-03-09)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **template:** add setup-cli and prepare-import-unique-fields scripts ([#240](https://github.com/salesforce-experience-platform-emu/webapps/issues/240)) ([5cad14c](https://github.com/salesforce-experience-platform-emu/webapps/commit/5cad14c9be8176b2faf2429fe8e8a56383aac1ae))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [1.83.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.82.0...v1.83.0) (2026-03-09)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* dedupe with feature skills, rename to webapp-react-* where relevant @W-21338965@ ([#233](https://github.com/salesforce-experience-platform-emu/webapps/issues/233)) ([9e4e4d8](https://github.com/salesforce-experience-platform-emu/webapps/commit/9e4e4d80f4a33575412e1940a8cbfaae6c035a12))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# [1.82.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.81.0...v1.82.0) (2026-03-09)
|
|
29
|
+
|
|
30
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# [1.81.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.80.1...v1.81.0) (2026-03-09)
|
|
37
|
+
|
|
38
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## [1.80.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.80.0...v1.80.1) (2026-03-09)
|
|
45
|
+
|
|
46
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
# [1.80.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.79.2...v1.80.0) (2026-03-07)
|
|
53
|
+
|
|
54
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
## [1.79.2](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.79.1...v1.79.2) (2026-03-06)
|
|
61
|
+
|
|
62
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
## [1.79.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.79.0...v1.79.1) (2026-03-06)
|
|
69
|
+
|
|
70
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
# [1.79.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.78.0...v1.79.0) (2026-03-06)
|
|
77
|
+
|
|
78
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
# [1.78.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.77.0...v1.78.0) (2026-03-06)
|
|
85
|
+
|
|
86
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
# [1.77.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.76.1...v1.77.0) (2026-03-06)
|
|
93
|
+
|
|
94
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
## [1.76.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.76.0...v1.76.1) (2026-03-06)
|
|
101
|
+
|
|
102
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
# [1.76.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.75.1...v1.76.0) (2026-03-06)
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
### Features
|
|
112
|
+
|
|
113
|
+
* (template) add skills for base-app ([#208](https://github.com/salesforce-experience-platform-emu/webapps/issues/208)) ([dd5f7c5](https://github.com/salesforce-experience-platform-emu/webapps/commit/dd5f7c59b0d711cade589620c434836f016c5417))
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
## [1.75.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.75.0...v1.75.1) (2026-03-05)
|
|
120
|
+
|
|
121
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
# [1.75.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.74.0...v1.75.0) (2026-03-05)
|
|
128
|
+
|
|
129
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
# [1.74.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.73.1...v1.74.0) (2026-03-05)
|
|
136
|
+
|
|
137
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
## [1.73.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.73.0...v1.73.1) (2026-03-05)
|
|
144
|
+
|
|
145
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
# [1.73.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.72.0...v1.73.0) (2026-03-05)
|
|
152
|
+
|
|
153
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
# [1.72.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.71.3...v1.72.0) (2026-03-05)
|
|
160
|
+
|
|
161
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
## [1.71.3](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.71.2...v1.71.3) (2026-03-05)
|
|
168
|
+
|
|
169
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
6
175
|
## [1.71.2](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.71.1...v1.71.2) (2026-03-05)
|
|
7
176
|
|
|
8
177
|
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
"graphql:schema": "node scripts/get-graphql-schema.mjs"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@salesforce/agentforce-conversation-client": "^1.
|
|
19
|
-
"@salesforce/sdk-data": "^1.
|
|
20
|
-
"@salesforce/webapp-experimental": "^1.
|
|
18
|
+
"@salesforce/agentforce-conversation-client": "^1.84.0",
|
|
19
|
+
"@salesforce/sdk-data": "^1.84.0",
|
|
20
|
+
"@salesforce/webapp-experimental": "^1.84.0",
|
|
21
21
|
"@tailwindcss/vite": "^4.1.17",
|
|
22
22
|
"@tanstack/react-form": "^1.28.4",
|
|
23
23
|
"class-variance-authority": "^0.7.1",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"react-dom": "^19.2.0",
|
|
29
29
|
"react-router": "^7.10.1",
|
|
30
30
|
"shadcn": "^3.8.5",
|
|
31
|
-
"tailwind-merge": "^3.
|
|
31
|
+
"tailwind-merge": "^3.5.0",
|
|
32
32
|
"tailwindcss": "^4.1.17",
|
|
33
33
|
"tw-animate-css": "^1.4.0",
|
|
34
34
|
"zod": "^4.3.6"
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@graphql-eslint/eslint-plugin": "^4.1.0",
|
|
42
42
|
"@graphql-tools/utils": "^11.0.0",
|
|
43
43
|
"@playwright/test": "^1.49.0",
|
|
44
|
-
"@salesforce/vite-plugin-webapp-experimental": "^1.
|
|
44
|
+
"@salesforce/vite-plugin-webapp-experimental": "^1.84.0",
|
|
45
45
|
"@testing-library/jest-dom": "^6.6.3",
|
|
46
46
|
"@testing-library/react": "^16.1.0",
|
|
47
47
|
"@testing-library/user-event": "^14.5.2",
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
type PicklistOption,
|
|
14
14
|
type TransformedLayoutItem,
|
|
15
15
|
} from "../../utils/layoutTransformUtils";
|
|
16
|
-
import { FieldValueDisplay } from "./formatted";
|
|
16
|
+
import { FieldValueDisplay } from "./formatted/FieldValueDisplay";
|
|
17
17
|
import { Section } from "./Section";
|
|
18
18
|
import { SectionRow } from "./SectionRow";
|
|
19
19
|
|
|
@@ -75,7 +75,7 @@ export function UiApiDetailForm({
|
|
|
75
75
|
|
|
76
76
|
const objectInfo: ObjectInfo | null = useMemo(() => {
|
|
77
77
|
if (!metadata?.fields) return null;
|
|
78
|
-
const apiName =
|
|
78
|
+
const apiName = metadata.ApiName;
|
|
79
79
|
return {
|
|
80
80
|
apiName,
|
|
81
81
|
fields: Object.fromEntries(
|
|
@@ -83,7 +83,7 @@ export function UiApiDetailForm({
|
|
|
83
83
|
name,
|
|
84
84
|
{
|
|
85
85
|
compoundFieldName: f.compoundFieldName ?? undefined,
|
|
86
|
-
dataType: f.dataType,
|
|
86
|
+
dataType: f.dataType ?? "",
|
|
87
87
|
},
|
|
88
88
|
]),
|
|
89
89
|
),
|
|
@@ -11,7 +11,7 @@ import { Card, CardContent } from "../../../../components/ui/card";
|
|
|
11
11
|
import { Input } from "../../../../components/ui/input";
|
|
12
12
|
import { Button } from "../../../../components/ui/button";
|
|
13
13
|
import { Search } from "lucide-react";
|
|
14
|
-
import { OBJECT_API_NAMES } from "
|
|
14
|
+
import { OBJECT_API_NAMES } from "../../constants";
|
|
15
15
|
import { useObjectInfoBatch } from "../../hooks/useObjectInfoBatch";
|
|
16
16
|
|
|
17
17
|
const BROWSE_SEGMENT = "browse__all";
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
import type { Column, SearchResultRecordData } from "../../types/search/searchResults";
|
|
35
35
|
import { getNestedFieldValue } from "../../utils/fieldUtils";
|
|
36
36
|
import ResultCardFields from "./ResultCardFields";
|
|
37
|
-
import { OBJECT_API_NAMES } from "
|
|
37
|
+
import { OBJECT_API_NAMES } from "../../constants";
|
|
38
38
|
|
|
39
39
|
interface SearchResultCardProps {
|
|
40
40
|
record: SearchResultRecordData;
|
|
@@ -36,17 +36,9 @@ export function extractFieldsFromLayout(
|
|
|
36
36
|
return optionalFields;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
/**
|
|
40
|
-
* Fetches the Full/View layout for an object (REST). Used by detail view to render sections/rows/items.
|
|
41
|
-
*
|
|
42
|
-
* @param objectApiName - Object API name.
|
|
43
|
-
* @param recordTypeId - Record type Id (default master).
|
|
44
|
-
* @param signal - Optional abort signal.
|
|
45
|
-
*/
|
|
46
39
|
export async function getLayout(
|
|
47
40
|
objectApiName: string,
|
|
48
41
|
recordTypeId: string = DEFAULT_RECORD_TYPE_ID,
|
|
49
|
-
signal?: AbortSignal,
|
|
50
42
|
): Promise<LayoutResponse> {
|
|
51
43
|
const params = new URLSearchParams({
|
|
52
44
|
layoutType: "Full",
|
|
@@ -54,14 +46,10 @@ export async function getLayout(
|
|
|
54
46
|
recordTypeId,
|
|
55
47
|
});
|
|
56
48
|
return fetchAndValidate(
|
|
57
|
-
(
|
|
58
|
-
uiApiClient.get(`/layout/${safeEncodePath(objectApiName)}?${params.toString()}`, {
|
|
59
|
-
signal: abortSignal,
|
|
60
|
-
}),
|
|
49
|
+
() => uiApiClient.get(`/layout/${safeEncodePath(objectApiName)}?${params.toString()}`),
|
|
61
50
|
{
|
|
62
51
|
schema: LayoutResponseSchema,
|
|
63
52
|
errorContext: `layout for ${objectApiName}`,
|
|
64
|
-
signal,
|
|
65
53
|
},
|
|
66
54
|
);
|
|
67
55
|
}
|
|
@@ -86,24 +74,13 @@ function optionalFieldsToColumns(optionalFields: string[]): Column[] {
|
|
|
86
74
|
}));
|
|
87
75
|
}
|
|
88
76
|
|
|
89
|
-
/**
|
|
90
|
-
* Fetches everything needed for the detail page: layout (REST), object metadata (GraphQL), single record (GraphQL).
|
|
91
|
-
* Layout drives which fields are requested; getRecordByIdGraphQL fetches that field set by Id.
|
|
92
|
-
*
|
|
93
|
-
* @param objectApiName - Object API name.
|
|
94
|
-
* @param recordId - Record Id.
|
|
95
|
-
* @param recordTypeId - Record type (default master).
|
|
96
|
-
* @param signal - Optional abort signal.
|
|
97
|
-
* @returns { layout, record, objectMetadata } for DetailForm / UiApiDetailForm.
|
|
98
|
-
*/
|
|
99
77
|
export async function getRecordDetail(
|
|
100
78
|
objectApiName: string,
|
|
101
79
|
recordId: string,
|
|
102
80
|
recordTypeId: string = DEFAULT_RECORD_TYPE_ID,
|
|
103
|
-
signal?: AbortSignal,
|
|
104
81
|
): Promise<RecordDetailResult> {
|
|
105
|
-
const layout = await getLayout(objectApiName, recordTypeId
|
|
106
|
-
const objectMetadata = await objectInfoService.getObjectInfoBatch(objectApiName
|
|
82
|
+
const layout = await getLayout(objectApiName, recordTypeId);
|
|
83
|
+
const objectMetadata = await objectInfoService.getObjectInfoBatch(objectApiName);
|
|
107
84
|
const firstResult = objectMetadata?.results?.[0]?.result;
|
|
108
85
|
if (!firstResult) {
|
|
109
86
|
throw new Error(`Object metadata not found for ${objectApiName}`);
|
package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_gs_/api/objectInfoGraphQLService.ts
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Object metadata GraphQL service (uiapi.objectInfos).
|
|
3
|
+
*
|
|
4
|
+
* Single endpoint for object describe and picklist values. Used by objectInfoService
|
|
5
|
+
* to implement getObjectInfoBatch and getPicklistValues. Not used directly by UI.
|
|
6
|
+
*
|
|
7
|
+
* @module api/objectInfoGraphQLService
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { getDataSDK, gql } from "@salesforce/sdk-data";
|
|
11
|
+
import type {
|
|
12
|
+
GetObjectInfosQuery,
|
|
13
|
+
GetObjectInfosQueryVariables,
|
|
14
|
+
GetPicklistValuesQuery,
|
|
15
|
+
GetPicklistValuesQueryVariables,
|
|
16
|
+
ObjectInfoInput,
|
|
17
|
+
} from "../types/schema";
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Builds objectInfos query (metadata only). Uses apiNames only — do not pass objectInfoInputs.
|
|
21
|
+
*/
|
|
22
|
+
const OBJECT_INFOS_QUERY = gql`
|
|
23
|
+
query GetObjectInfos($apiNames: [String!]!) {
|
|
24
|
+
uiapi {
|
|
25
|
+
objectInfos(apiNames: $apiNames) {
|
|
26
|
+
ApiName
|
|
27
|
+
label
|
|
28
|
+
labelPlural
|
|
29
|
+
nameFields
|
|
30
|
+
defaultRecordTypeId
|
|
31
|
+
keyPrefix
|
|
32
|
+
layoutable
|
|
33
|
+
queryable
|
|
34
|
+
searchable
|
|
35
|
+
updateable
|
|
36
|
+
deletable
|
|
37
|
+
createable
|
|
38
|
+
custom
|
|
39
|
+
mruEnabled
|
|
40
|
+
feedEnabled
|
|
41
|
+
fields {
|
|
42
|
+
ApiName
|
|
43
|
+
label
|
|
44
|
+
dataType
|
|
45
|
+
relationshipName
|
|
46
|
+
reference
|
|
47
|
+
compound
|
|
48
|
+
compoundFieldName
|
|
49
|
+
compoundComponentName
|
|
50
|
+
controllingFields
|
|
51
|
+
controllerName
|
|
52
|
+
referenceToInfos {
|
|
53
|
+
ApiName
|
|
54
|
+
nameFields
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
recordTypeInfos {
|
|
58
|
+
recordTypeId
|
|
59
|
+
name
|
|
60
|
+
master
|
|
61
|
+
available
|
|
62
|
+
defaultRecordTypeMapping
|
|
63
|
+
}
|
|
64
|
+
themeInfo {
|
|
65
|
+
color
|
|
66
|
+
iconUrl
|
|
67
|
+
}
|
|
68
|
+
childRelationships {
|
|
69
|
+
relationshipName
|
|
70
|
+
fieldName
|
|
71
|
+
childObjectApiName
|
|
72
|
+
}
|
|
73
|
+
dependentFields {
|
|
74
|
+
controllingField
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
`;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Builds objectInfos query with picklist values (API v65.0+).
|
|
83
|
+
* Schema requires objectInfos to be called with either apiNames or objectInfoInputs, not both.
|
|
84
|
+
* This query uses objectInfoInputs only.
|
|
85
|
+
* Optimized to only fetch fields used by extractPicklistValuesFromGraphQLObjectInfo.
|
|
86
|
+
*/
|
|
87
|
+
const PICKLIST_VALUES_QUERY = gql`
|
|
88
|
+
query GetPicklistValues($objectInfoInputs: [ObjectInfoInput!]!) {
|
|
89
|
+
uiapi {
|
|
90
|
+
objectInfos(objectInfoInputs: $objectInfoInputs) {
|
|
91
|
+
ApiName
|
|
92
|
+
fields {
|
|
93
|
+
ApiName
|
|
94
|
+
... on PicklistField {
|
|
95
|
+
picklistValuesByRecordTypeIDs {
|
|
96
|
+
recordTypeID
|
|
97
|
+
defaultValue {
|
|
98
|
+
value
|
|
99
|
+
}
|
|
100
|
+
picklistValues {
|
|
101
|
+
label
|
|
102
|
+
value
|
|
103
|
+
validFor
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
`;
|
|
112
|
+
|
|
113
|
+
export async function queryForObjectInfos(apiNames: string[]): Promise<GetObjectInfosQuery> {
|
|
114
|
+
return runQuery<GetObjectInfosQuery, GetObjectInfosQueryVariables>(OBJECT_INFOS_QUERY, {
|
|
115
|
+
apiNames,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export async function queryForPicklistValues(
|
|
120
|
+
objectInfoInputs: ObjectInfoInput[],
|
|
121
|
+
): Promise<GetPicklistValuesQuery> {
|
|
122
|
+
return runQuery<GetPicklistValuesQuery, GetPicklistValuesQueryVariables>(PICKLIST_VALUES_QUERY, {
|
|
123
|
+
objectInfoInputs,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
async function runQuery<Q, V>(query: string, variables: V): Promise<Q> {
|
|
128
|
+
const data = await getDataSDK();
|
|
129
|
+
const response = await data.graphql?.<Q, V>(query, variables);
|
|
130
|
+
|
|
131
|
+
if (response?.errors?.length) {
|
|
132
|
+
const errorMessages = response.errors.map((e) => e.message).join("; ");
|
|
133
|
+
throw new Error(`GraphQL Error: ${errorMessages}`);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return response?.data ?? ({} as Q);
|
|
137
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { uiApiClient } from "@salesforce/webapp-experimental/api";
|
|
2
|
+
import type { Filter } from "../types/filters/filters";
|
|
3
|
+
import { FilterArraySchema } from "../types/filters/filters";
|
|
4
|
+
import type { PicklistValue } from "../types/filters/picklist";
|
|
5
|
+
import type { ObjectInfoBatchResponse } from "../types/objectInfo/objectInfo";
|
|
6
|
+
import { fetchAndValidate, safeEncodePath } from "../utils/apiUtils";
|
|
7
|
+
import { queryForObjectInfos, queryForPicklistValues } from "./objectInfoGraphQLService";
|
|
8
|
+
import {
|
|
9
|
+
graphQLObjectInfosToBatchResponse,
|
|
10
|
+
extractPicklistValuesFromGraphQLObjectInfo,
|
|
11
|
+
} from "../utils/graphQLObjectInfoAdapter";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Object info and search service.
|
|
15
|
+
*
|
|
16
|
+
* - getObjectInfoBatch / getPicklistValues: GraphQL (objectInfoGraphQLService).
|
|
17
|
+
* - getObjectListFilters: REST (search-info).
|
|
18
|
+
* Hooks use this service; components do not call it directly.
|
|
19
|
+
*
|
|
20
|
+
* @module api/objectInfoService
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/** Cache key: sorted, comma-joined object API names. */
|
|
24
|
+
function getObjectInfoBatchCacheKey(objectApiNames: string): string {
|
|
25
|
+
const names = objectApiNames
|
|
26
|
+
.split(",")
|
|
27
|
+
.map((s) => s.trim())
|
|
28
|
+
.filter(Boolean);
|
|
29
|
+
return [...names].sort().join(",");
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const objectInfoBatchCache = new Map<string, ObjectInfoBatchResponse>();
|
|
33
|
+
const objectInfoBatchInFlight = new Map<string, Promise<ObjectInfoBatchResponse>>();
|
|
34
|
+
|
|
35
|
+
export async function getObjectInfoBatch(objectApiNames: string): Promise<ObjectInfoBatchResponse> {
|
|
36
|
+
const names = objectApiNames
|
|
37
|
+
.split(",")
|
|
38
|
+
.map((s) => s.trim())
|
|
39
|
+
.filter(Boolean);
|
|
40
|
+
if (names.length === 0) {
|
|
41
|
+
return { results: [] };
|
|
42
|
+
}
|
|
43
|
+
const key = getObjectInfoBatchCacheKey(objectApiNames);
|
|
44
|
+
const cached = objectInfoBatchCache.get(key);
|
|
45
|
+
if (cached) return Promise.resolve(cached);
|
|
46
|
+
const inFlight = objectInfoBatchInFlight.get(key);
|
|
47
|
+
if (inFlight) return inFlight;
|
|
48
|
+
const promise = (async () => {
|
|
49
|
+
try {
|
|
50
|
+
const response = await queryForObjectInfos(names);
|
|
51
|
+
const nodes = response?.uiapi?.objectInfos ?? [];
|
|
52
|
+
const result = graphQLObjectInfosToBatchResponse(nodes, names);
|
|
53
|
+
objectInfoBatchCache.set(key, result);
|
|
54
|
+
return result;
|
|
55
|
+
} finally {
|
|
56
|
+
objectInfoBatchInFlight.delete(key);
|
|
57
|
+
}
|
|
58
|
+
})();
|
|
59
|
+
objectInfoBatchInFlight.set(key, promise);
|
|
60
|
+
return promise;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export async function getObjectListFilters(objectApiName: string): Promise<Filter[]> {
|
|
64
|
+
return fetchAndValidate(
|
|
65
|
+
() => uiApiClient.get(`/search-info/${safeEncodePath(objectApiName)}/filters`),
|
|
66
|
+
{
|
|
67
|
+
schema: FilterArraySchema,
|
|
68
|
+
errorContext: `filters for ${objectApiName}`,
|
|
69
|
+
extractData: (data: unknown) => {
|
|
70
|
+
if (!data) return [];
|
|
71
|
+
return Array.isArray(data) ? data : (data as { filters?: unknown }).filters || [];
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export async function getPicklistValues(
|
|
78
|
+
objectApiName: string,
|
|
79
|
+
fieldName: string,
|
|
80
|
+
recordTypeId: string = "012000000000000AAA",
|
|
81
|
+
): Promise<PicklistValue[]> {
|
|
82
|
+
const response = await queryForPicklistValues([
|
|
83
|
+
{ apiName: objectApiName, fieldNames: [fieldName] },
|
|
84
|
+
]);
|
|
85
|
+
const nodes = response?.uiapi?.objectInfos ?? [];
|
|
86
|
+
const node = nodes[0];
|
|
87
|
+
if (!node) return [];
|
|
88
|
+
return extractPicklistValuesFromGraphQLObjectInfo(node, fieldName, recordTypeId);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export const objectInfoService = {
|
|
92
|
+
getObjectInfoBatch,
|
|
93
|
+
getObjectListFilters,
|
|
94
|
+
getPicklistValues,
|
|
95
|
+
};
|
|
@@ -149,10 +149,9 @@ export function buildWhereFromCriteria(
|
|
|
149
149
|
|
|
150
150
|
for (const c of criteria) {
|
|
151
151
|
if (!c.fieldPath || !c.operator || !c.values?.length) continue;
|
|
152
|
-
const value = c.values[0];
|
|
153
152
|
const op = c.operator;
|
|
154
153
|
const parts = c.fieldPath.split(".");
|
|
155
|
-
const fieldClause = { [op]:
|
|
154
|
+
const fieldClause = op === "in" ? { in: c.values } : { [op]: c.values[0] };
|
|
156
155
|
if (parts.length === 1) {
|
|
157
156
|
conditions.push({ [parts[0]]: fieldClause });
|
|
158
157
|
} else {
|
|
@@ -44,7 +44,7 @@ export function useObjectInfoBatch(objectApiNames: string[]): UseObjectInfoBatch
|
|
|
44
44
|
.then((res) => {
|
|
45
45
|
if (isCancelled.current) return;
|
|
46
46
|
const objectInfos = names
|
|
47
|
-
.map((apiName) => res.results?.find((r) => r.result?.
|
|
47
|
+
.map((apiName) => res.results?.find((r) => r.result?.ApiName === apiName)?.result)
|
|
48
48
|
.filter((r) => r != null) as ObjectInfoResult[];
|
|
49
49
|
setState({ objectInfos, loading: false, error: null });
|
|
50
50
|
})
|