@salesforcedevs/dx-components 0.16.3 → 0.17.1-review-diff1

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 (611) hide show
  1. package/lwc.config.json +85 -26
  2. package/package.json +34 -19
  3. package/src/assets/icons/brand-sprite/svg/symbols.svg +23 -5
  4. package/src/assets/icons/salesforcebrand-sprite/svg/symbols.svg +909 -107
  5. package/src/assets/icons/utility-sprite/svg/symbols.svg +2 -1
  6. package/src/modules/dx/agenda/agenda.css +97 -0
  7. package/src/modules/dx/agenda/agenda.html +32 -0
  8. package/src/modules/dx/agenda/agenda.ts +26 -0
  9. package/src/modules/dx/alert/alert.css +103 -0
  10. package/src/modules/dx/alert/alert.html +37 -0
  11. package/src/modules/dx/alert/alert.ts +137 -0
  12. package/src/modules/dx/audio/audio.css +276 -0
  13. package/src/modules/dx/audio/audio.html +158 -0
  14. package/src/modules/dx/audio/audio.ts +484 -0
  15. package/src/modules/dx/banner/banner.css +3 -3
  16. package/src/modules/dx/banner/banner.ts +3 -5
  17. package/src/modules/dx/brandThemeProvider/brandThemeProvider.ts +1 -1
  18. package/src/modules/dx/breadcrumbs/breadcrumbs.css +4 -4
  19. package/src/modules/dx/breadcrumbs/breadcrumbs.html +1 -1
  20. package/src/modules/dx/breadcrumbs/breadcrumbs.ts +28 -27
  21. package/src/modules/dx/button/button.css +79 -25
  22. package/src/modules/dx/button/button.html +4 -2
  23. package/src/modules/dx/button/button.ts +41 -14
  24. package/src/modules/dx/buttonToggle/buttonToggle.css +50 -0
  25. package/src/modules/dx/buttonToggle/buttonToggle.html +17 -0
  26. package/src/modules/dx/buttonToggle/buttonToggle.ts +75 -0
  27. package/src/modules/dx/cardBlogPost/cardBlogPost.css +2 -2
  28. package/src/modules/dx/cardBlogPost/cardBlogPost.html +5 -4
  29. package/src/modules/dx/cardBlogPost/cardBlogPost.ts +27 -4
  30. package/src/modules/dx/cardCallout/cardCallout.css +5 -5
  31. package/src/modules/dx/cardCallout/cardCallout.html +1 -1
  32. package/src/modules/dx/cardCallout/cardCallout.ts +14 -10
  33. package/src/modules/dx/cardClickthrough/cardClickthrough.css +105 -0
  34. package/src/modules/dx/cardClickthrough/cardClickthrough.html +42 -0
  35. package/src/modules/dx/cardClickthrough/cardClickthrough.ts +139 -0
  36. package/src/modules/dx/cardContent/cardContent.css +21 -9
  37. package/src/modules/dx/cardContent/cardContent.html +33 -14
  38. package/src/modules/dx/cardContent/cardContent.ts +80 -15
  39. package/src/modules/dx/cardDemo/cardDemo.css +1 -1
  40. package/src/modules/dx/cardDemo/cardDemo.html +1 -1
  41. package/src/modules/dx/cardDemo/cardDemo.ts +1 -1
  42. package/src/modules/dx/cardDocs/cardDocs.css +8 -8
  43. package/src/modules/dx/cardDocs/cardDocs.html +25 -5
  44. package/src/modules/dx/cardDocs/cardDocs.ts +51 -2
  45. package/src/modules/dx/cardEvent/cardEvent.css +31 -17
  46. package/src/modules/dx/cardEvent/cardEvent.html +17 -18
  47. package/src/modules/dx/cardEvent/cardEvent.ts +11 -3
  48. package/src/modules/dx/cardExpanded/cardExpanded.css +60 -0
  49. package/src/modules/dx/cardExpanded/cardExpanded.html +35 -0
  50. package/src/modules/dx/cardExpanded/cardExpanded.ts +63 -0
  51. package/src/modules/dx/cardGrid/cardGrid.css +1 -85
  52. package/src/modules/dx/cardGrid/cardGrid.html +16 -44
  53. package/src/modules/dx/cardGrid/cardGrid.ts +32 -139
  54. package/src/modules/dx/cardGridDocs/cardGridDocs.css +73 -0
  55. package/src/modules/dx/cardGridDocs/cardGridDocs.html +67 -0
  56. package/src/modules/dx/cardGridDocs/cardGridDocs.ts +86 -0
  57. package/src/modules/dx/cardMinimal/cardMinimal.css +31 -0
  58. package/src/modules/dx/cardMinimal/cardMinimal.html +8 -0
  59. package/src/modules/dx/cardMinimal/cardMinimal.ts +3 -0
  60. package/src/modules/dx/cardNews/cardNews.css +34 -15
  61. package/src/modules/dx/cardNews/cardNews.html +8 -1
  62. package/src/modules/dx/cardNews/cardNews.ts +23 -5
  63. package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.css +3 -3
  64. package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.html +2 -1
  65. package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.ts +1 -1
  66. package/src/modules/dx/cardSmall/cardSmall.css +3 -7
  67. package/src/modules/dx/cardSmall/cardSmall.html +2 -2
  68. package/src/modules/dx/cardSmall/cardSmall.ts +2 -2
  69. package/src/modules/dx/cardStep/cardStep.css +128 -0
  70. package/src/modules/dx/cardStep/cardStep.html +31 -0
  71. package/src/modules/dx/cardStep/cardStep.ts +55 -0
  72. package/src/modules/dx/cardStep/mockProps.ts +59 -0
  73. package/src/modules/dx/cardTestimonial/cardTestimonial.css +24 -0
  74. package/src/modules/dx/cardTestimonial/cardTestimonial.html +15 -0
  75. package/src/modules/dx/cardTestimonial/cardTestimonial.ts +18 -0
  76. package/src/modules/dx/cardTitle/cardTitle.css +6 -4
  77. package/src/modules/dx/cardTitle/cardTitle.html +1 -1
  78. package/src/modules/dx/cardTitle/cardTitle.ts +4 -4
  79. package/src/modules/dx/cardTrailheadModule/cardTrailheadModule.css +2 -2
  80. package/src/modules/dx/cardTrailheadModule/cardTrailheadModule.html +2 -2
  81. package/src/modules/dx/cardTrailheadModule/cardTrailheadModule.ts +2 -1
  82. package/src/modules/dx/cardTrial/cardTrial.css +134 -0
  83. package/src/modules/dx/cardTrial/cardTrial.html +207 -0
  84. package/src/modules/dx/cardTrial/cardTrial.ts +147 -0
  85. package/src/modules/dx/cardTrialExpanded/cardTrialExpanded.css +159 -0
  86. package/src/modules/dx/cardTrialExpanded/cardTrialExpanded.html +91 -0
  87. package/src/modules/dx/cardTrialExpanded/cardTrialExpanded.ts +84 -0
  88. package/src/modules/dx/cardVideoPreview/cardVideoPreview.css +2 -2
  89. package/src/modules/dx/cardVideoPreview/cardVideoPreview.html +3 -2
  90. package/src/modules/dx/cardVideoPreview/cardVideoPreview.ts +2 -2
  91. package/src/modules/dx/checkbox/checkbox.css +9 -4
  92. package/src/modules/dx/checkbox/checkbox.ts +27 -2
  93. package/src/modules/dx/checkboxGroup/checkboxGroup.css +1 -1
  94. package/src/modules/dx/checkboxGroup/checkboxGroup.ts +1 -1
  95. package/src/modules/dx/checkboxNative/checkboxNative.css +18 -0
  96. package/src/modules/dx/checkboxNative/checkboxNative.html +14 -0
  97. package/src/modules/dx/checkboxNative/checkboxNative.ts +39 -0
  98. package/src/modules/dx/codeBlock/codeBlock.css +22 -15
  99. package/src/modules/dx/codeBlock/codeBlock.html +3 -3
  100. package/src/modules/dx/codeBlock/codeBlock.ts +149 -61
  101. package/src/modules/dx/codeBlock/customLanguages.js +48 -0
  102. package/src/modules/dx/codeBlock/darkAndLightThemes.css +177 -0
  103. package/src/modules/dx/coveoRecommendations/coveoRecommendations.css +8 -0
  104. package/src/modules/dx/coveoRecommendations/coveoRecommendations.html +27 -0
  105. package/src/modules/dx/coveoRecommendations/coveoRecommendations.ts +171 -0
  106. package/src/modules/dx/darkModeManager/darkModeManager.ts +86 -0
  107. package/src/modules/dx/dropdown/dropdown.css +3 -5
  108. package/src/modules/dx/dropdown/dropdown.html +7 -1
  109. package/src/modules/dx/dropdown/dropdown.ts +18 -9
  110. package/src/modules/dx/dropdownOption/dropdownOption.css +125 -5
  111. package/src/modules/dx/dropdownOption/dropdownOption.html +7 -2
  112. package/src/modules/dx/dropdownOption/dropdownOption.ts +27 -9
  113. package/src/modules/dx/embeddedVideo/embeddedVideo.css +35 -0
  114. package/src/modules/dx/embeddedVideo/embeddedVideo.html +56 -0
  115. package/src/modules/dx/embeddedVideo/embeddedVideo.ts +40 -0
  116. package/src/modules/dx/emptyState/emptyState.css +76 -4
  117. package/src/modules/dx/emptyState/emptyState.html +16 -4
  118. package/src/modules/dx/emptyState/emptyState.ts +57 -7
  119. package/src/modules/dx/errorFallback/errorFallback.css +27 -0
  120. package/src/modules/dx/errorFallback/errorFallback.html +11 -0
  121. package/src/modules/dx/errorFallback/errorFallback.ts +7 -0
  122. package/src/modules/dx/eyebrow/eyebrow.css +44 -0
  123. package/src/modules/dx/eyebrow/eyebrow.html +16 -0
  124. package/src/modules/dx/eyebrow/eyebrow.ts +32 -0
  125. package/src/modules/dx/faq/faq.css +58 -0
  126. package/src/modules/dx/faq/faq.html +36 -0
  127. package/src/modules/dx/faq/faq.ts +16 -0
  128. package/src/modules/dx/feature/feature.css +16 -6
  129. package/src/modules/dx/feature/feature.html +9 -7
  130. package/src/modules/dx/feature/feature.ts +17 -4
  131. package/src/modules/dx/featureFlag/featureFlag.css +3 -0
  132. package/src/modules/dx/featureFlag/featureFlag.html +3 -0
  133. package/src/modules/dx/featureFlag/featureFlag.ts +41 -0
  134. package/src/modules/dx/featuredContentHeader/featuredContentHeader.css +182 -146
  135. package/src/modules/dx/featuredContentHeader/featuredContentHeader.html +123 -87
  136. package/src/modules/dx/featuredContentHeader/featuredContentHeader.ts +179 -30
  137. package/src/modules/dx/featuredContentHeader/svgs.ts +5 -4
  138. package/src/modules/dx/featuresList/featuresList.css +5 -5
  139. package/src/modules/dx/featuresList/featuresList.html +2 -2
  140. package/src/modules/dx/featuresList/featuresList.ts +2 -3
  141. package/src/modules/dx/featuresListHeader/featuresListHeader.css +144 -0
  142. package/src/modules/dx/featuresListHeader/featuresListHeader.html +58 -0
  143. package/src/modules/dx/featuresListHeader/featuresListHeader.ts +103 -0
  144. package/src/modules/dx/filterMenu/filterMenu.css +134 -0
  145. package/src/modules/dx/filterMenu/filterMenu.html +111 -0
  146. package/src/modules/dx/filterMenu/filterMenu.ts +119 -0
  147. package/src/modules/dx/footer/footer.css +72 -41
  148. package/src/modules/dx/footer/footer.html +65 -65
  149. package/src/modules/dx/footer/footer.ts +66 -31
  150. package/src/modules/dx/footer/links.ts +142 -54
  151. package/src/modules/dx/footerOption/footerOption.css +10 -3
  152. package/src/modules/dx/footerOption/footerOption.html +1 -10
  153. package/src/modules/dx/footerOption/footerOption.ts +21 -7
  154. package/src/modules/dx/formattedDateTime/formattedDateTime.ts +22 -14
  155. package/src/modules/dx/formattedRichText/formattedRichText.css +32 -0
  156. package/src/modules/dx/formattedRichText/formattedRichText.html +3 -0
  157. package/src/modules/dx/formattedRichText/formattedRichText.ts +17 -0
  158. package/src/modules/dx/grid/grid.css +7 -2
  159. package/src/modules/dx/grid/grid.html +15 -0
  160. package/src/modules/dx/grid/grid.ts +78 -2
  161. package/src/modules/dx/groupText/groupText.css +5 -9
  162. package/src/modules/dx/groupText/groupText.html +8 -3
  163. package/src/modules/dx/groupText/groupText.ts +21 -14
  164. package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.css +3 -2
  165. package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.ts +5 -5
  166. package/src/modules/dx/headerMobileNavMenuOption/headerMobileNavMenuOption.ts +10 -2
  167. package/src/modules/dx/headerNav/headerNav.css +9 -1
  168. package/src/modules/dx/headerNav/headerNav.html +2 -0
  169. package/src/modules/dx/headerNav/headerNav.ts +10 -6
  170. package/src/modules/dx/helmet/helmet.css +3 -3
  171. package/src/modules/dx/helmet/helmet.html +2 -2
  172. package/src/modules/dx/helmet/helmet.ts +2 -2
  173. package/src/modules/dx/hr/hr.css +10 -10
  174. package/src/modules/dx/hr/hr.ts +7 -1
  175. package/src/modules/dx/icon/icon.css +2 -2
  176. package/src/modules/dx/icon/icon.html +20 -9
  177. package/src/modules/dx/icon/icon.ts +6 -1
  178. package/src/modules/dx/iconBadge/iconBadge.css +13 -1
  179. package/src/modules/dx/iconBadge/iconBadge.html +3 -3
  180. package/src/modules/dx/iconBadge/iconBadge.ts +23 -7
  181. package/src/modules/dx/imageAndLabel/imageAndLabel.css +4 -8
  182. package/src/modules/dx/imageAndLabel/imageAndLabel.html +18 -2
  183. package/src/modules/dx/input/input.css +24 -6
  184. package/src/modules/dx/input/input.html +6 -1
  185. package/src/modules/dx/input/input.ts +76 -10
  186. package/src/modules/dx/interactiveImage/interactiveImage.css +2 -2
  187. package/src/modules/dx/interactiveImage/interactiveImage.html +2 -2
  188. package/src/modules/dx/interactiveImage/interactiveImage.ts +2 -2
  189. package/src/modules/dx/logo/logo.css +2 -3
  190. package/src/modules/dx/logo/logo.html +1 -1
  191. package/src/modules/dx/logo/logo.ts +3 -2
  192. package/src/modules/dx/mainContentHeader/mainContentHeader.css +197 -0
  193. package/src/modules/dx/mainContentHeader/mainContentHeader.html +75 -0
  194. package/src/modules/dx/mainContentHeader/mainContentHeader.ts +98 -0
  195. package/src/modules/dx/metadataBadge/metadataBadge.css +41 -0
  196. package/src/modules/dx/metadataBadge/metadataBadge.html +5 -0
  197. package/src/modules/dx/metadataBadge/metadataBadge.ts +24 -0
  198. package/src/modules/dx/modal/modal.css +7 -0
  199. package/src/modules/dx/modal/modal.html +13 -0
  200. package/src/modules/dx/modal/modal.ts +98 -0
  201. package/src/modules/dx/modalDrawer/modalDrawer.css +41 -0
  202. package/src/modules/dx/modalDrawer/modalDrawer.html +11 -0
  203. package/src/modules/dx/modalDrawer/modalDrawer.ts +33 -0
  204. package/src/modules/dx/pagination/pagination.css +2 -3
  205. package/src/modules/dx/pagination/pagination.ts +45 -8
  206. package/src/modules/dx/podcastHost/podcastHost.css +11 -4
  207. package/src/modules/dx/podcastHost/podcastHost.html +8 -9
  208. package/src/modules/dx/popover/popover.css +31 -6
  209. package/src/modules/dx/popover/popover.html +1 -1
  210. package/src/modules/dx/popover/popover.ts +112 -47
  211. package/src/modules/dx/radioGroup/radioGroup.css +1 -1
  212. package/src/modules/dx/radioGroup/radioGroup.ts +1 -1
  213. package/src/modules/dx/redirectChecker/redirectChecker.html +1 -0
  214. package/src/modules/dx/redirectChecker/redirectChecker.ts +10 -0
  215. package/src/modules/dx/relativeDateTime/relativeDateTime.ts +23 -94
  216. package/src/modules/dx/scrollManager/scrollManager.html +1 -0
  217. package/src/modules/dx/scrollManager/scrollManager.ts +212 -0
  218. package/src/modules/dx/searchResults/coveo.css +2138 -3126
  219. package/src/modules/dx/searchResults/resultsTemplate.js +141 -0
  220. package/src/modules/dx/searchResults/searchResults.css +136 -19
  221. package/src/modules/dx/searchResults/searchResults.html +7 -4
  222. package/src/modules/dx/searchResults/searchResults.ts +378 -37
  223. package/src/modules/dx/section/section.css +40 -7
  224. package/src/modules/dx/section/section.html +37 -7
  225. package/src/modules/dx/section/section.ts +45 -13
  226. package/src/modules/dx/sectionBanner/sectionBanner.css +145 -0
  227. package/src/modules/dx/sectionBanner/sectionBanner.html +41 -0
  228. package/src/modules/dx/sectionBanner/sectionBanner.ts +128 -0
  229. package/src/modules/dx/sectionSignup/sectionSignup.ts +2 -2
  230. package/src/modules/dx/select/select.css +173 -10
  231. package/src/modules/dx/select/select.html +54 -53
  232. package/src/modules/dx/select/select.ts +153 -10
  233. package/src/modules/dx/sidebar/sidebar.css +44 -130
  234. package/src/modules/dx/sidebar/sidebar.html +114 -50
  235. package/src/modules/dx/sidebar/sidebar.ts +159 -116
  236. package/src/modules/dx/sidebarFooterNav/sidebarFooterNav.css +49 -0
  237. package/src/modules/dx/sidebarFooterNav/sidebarFooterNav.html +55 -0
  238. package/src/modules/dx/sidebarFooterNav/sidebarFooterNav.ts +106 -0
  239. package/src/modules/dx/sidebarOld/sidebarOld.css +33 -0
  240. package/src/modules/dx/sidebarOld/sidebarOld.html +111 -0
  241. package/src/modules/dx/sidebarOld/sidebarOld.ts +170 -0
  242. package/src/modules/dx/sidebarSearch/sidebarSearch.css +3 -0
  243. package/src/modules/dx/sidebarSearch/sidebarSearch.html +25 -0
  244. package/src/modules/dx/sidebarSearch/sidebarSearch.ts +493 -0
  245. package/src/modules/dx/sidebarSearchResult/sidebarSearchResult.css +67 -0
  246. package/src/modules/dx/sidebarSearchResult/sidebarSearchResult.html +20 -0
  247. package/src/modules/dx/sidebarSearchResult/sidebarSearchResult.ts +78 -0
  248. package/src/modules/dx/skipNavLink/skipNavLink.css +21 -0
  249. package/src/modules/dx/skipNavLink/skipNavLink.html +3 -0
  250. package/src/modules/dx/skipNavLink/skipNavLink.ts +3 -0
  251. package/src/modules/dx/socials/socials.css +4 -3
  252. package/src/modules/dx/socials/socials.ts +1 -6
  253. package/src/modules/dx/spinner/spinner.css +28 -232
  254. package/src/modules/dx/stepSequence/stepSequence.css +42 -0
  255. package/src/modules/dx/stepSequence/stepSequence.html +10 -0
  256. package/src/modules/dx/stepSequence/stepSequence.ts +334 -0
  257. package/src/modules/dx/stepSequenceStep/stepSequenceStep.html +3 -0
  258. package/src/modules/dx/stepSequenceStep/stepSequenceStep.ts +60 -0
  259. package/src/modules/dx/tab/tab.css +49 -24
  260. package/src/modules/dx/tab/tab.ts +16 -5
  261. package/src/modules/dx/tabPanel/tabPanel.css +20 -0
  262. package/src/modules/dx/tabPanel/tabPanel.html +13 -0
  263. package/src/modules/dx/tabPanel/tabPanel.ts +27 -0
  264. package/src/modules/dx/tabPanelItem/tabPanelItem.css +54 -0
  265. package/src/modules/dx/tabPanelItem/tabPanelItem.html +26 -0
  266. package/src/modules/dx/tabPanelItem/tabPanelItem.ts +45 -0
  267. package/src/modules/dx/tabPanelList/tabPanelList.css +37 -0
  268. package/src/modules/dx/tabPanelList/tabPanelList.html +56 -0
  269. package/src/modules/dx/tabPanelList/tabPanelList.ts +178 -0
  270. package/src/modules/dx/tabPanelList/uniqueId.ts +6 -0
  271. package/src/modules/dx/tabbedCodeBlock/tabbedCodeBlock.css +8 -0
  272. package/src/modules/dx/tabbedCodeBlock/tabbedCodeBlock.html +16 -0
  273. package/src/modules/dx/tabbedCodeBlock/tabbedCodeBlock.ts +44 -0
  274. package/src/modules/dx/tbidAvatarButton/tbidAvatarButton.css +33 -0
  275. package/src/modules/dx/tbidAvatarButton/tbidAvatarButton.html +53 -0
  276. package/src/modules/dx/tbidAvatarButton/tbidAvatarButton.ts +450 -0
  277. package/src/modules/dx/toast/toast.css +78 -0
  278. package/src/modules/dx/toast/toast.html +20 -0
  279. package/src/modules/dx/toast/toast.ts +41 -0
  280. package/src/modules/dx/toc/toc.css +18 -46
  281. package/src/modules/dx/toc/toc.html +5 -11
  282. package/src/modules/dx/toc/toc.ts +20 -31
  283. package/src/modules/dx/tooltip/tooltip.css +1 -0
  284. package/src/modules/dx/topics/topics.css +26 -0
  285. package/src/modules/dx/topics/topics.html +12 -0
  286. package/src/modules/dx/topics/topics.ts +25 -0
  287. package/src/modules/dx/trafficLabeler/trafficLabeler.html +1 -0
  288. package/src/modules/dx/trafficLabeler/trafficLabeler.ts +58 -0
  289. package/src/modules/dx/tree/tree.css +1 -1
  290. package/src/modules/dx/tree/tree.ts +9 -1
  291. package/src/modules/dx/tree/treeHandler.ts +5 -1
  292. package/src/modules/dx/treeItem/treeItem.css +12 -1
  293. package/src/modules/dx/treeItem/treeItem.html +10 -2
  294. package/src/modules/dx/treeItem/treeItem.ts +103 -15
  295. package/src/modules/dx/treeTile/treeTile.css +77 -64
  296. package/src/modules/dx/treeTile/treeTile.html +24 -10
  297. package/src/modules/dx/treeTile/treeTile.ts +31 -6
  298. package/src/modules/dx/typeBadge/typeBadge.css +2 -59
  299. package/src/modules/dx/typeBadge/typeBadge.html +7 -1
  300. package/src/modules/dx/typeBadge/typeBadge.ts +97 -8
  301. package/src/modules/dx/vimeoPlayer/vimeoPlayer.css +1 -0
  302. package/src/modules/dx/vimeoPlayer/vimeoPlayer.html +3 -0
  303. package/src/modules/dx/vimeoPlayer/vimeoPlayer.ts +31 -0
  304. package/src/modules/dxBaseElements/archiveCard/archiveCard.ts +31 -0
  305. package/src/modules/{utils → dxBaseElements}/headerBase/headerBase.ts +37 -13
  306. package/src/modules/dxBaseElements/lightningElementWithState/lightningElementWithState.ts +93 -0
  307. package/src/modules/dxBaseElements/matchMediaElement/matchMediaElement.ts +63 -0
  308. package/src/modules/dxBaseElements/sidebarBase/sidebarBase.ts +176 -0
  309. package/src/modules/dxConstants/brands/brands.ts +18 -0
  310. package/src/modules/dxConstants/colors/colors.ts +14 -0
  311. package/src/modules/dxConstants/contentTypes/contentTypes.ts +72 -0
  312. package/src/modules/{helpers → dxHelpers}/animations/animations.css +1 -1
  313. package/src/modules/dxHelpers/button/button.css +4 -0
  314. package/src/modules/{helpers → dxHelpers}/card/card.css +33 -32
  315. package/src/modules/{helpers → dxHelpers}/code/code.css +5 -13
  316. package/src/modules/{helpers → dxHelpers}/commonHeader/commonHeader.css +13 -11
  317. package/src/modules/dxHelpers/commonSidebar/commonSidebar.css +179 -0
  318. package/src/modules/dxHelpers/commonTreeItem/commonTreeItem.css +44 -0
  319. package/src/modules/{helpers → dxHelpers}/reset/reset.css +6 -13
  320. package/src/modules/dxHelpers/scrollbar/scrollbar.css +31 -0
  321. package/src/modules/{helpers → dxHelpers}/table/table.css +2 -6
  322. package/src/modules/{helpers → dxHelpers}/text/text.css +71 -32
  323. package/src/modules/dxHelpers/typeBadge/typeBadge.css +32 -0
  324. package/src/modules/dxUtils/analytics/analytics.ts +24 -0
  325. package/src/modules/dxUtils/async/async.ts +45 -0
  326. package/src/modules/dxUtils/browser/browser.ts +17 -0
  327. package/src/modules/dxUtils/constants/breakpoints.ts +9 -0
  328. package/src/modules/dxUtils/constants/constants.ts +1 -0
  329. package/src/modules/dxUtils/contentTypes/contentTypes.ts +30 -0
  330. package/src/modules/dxUtils/coveo/coveo.ts +70 -0
  331. package/src/modules/dxUtils/css/css.ts +58 -0
  332. package/src/modules/dxUtils/dates/dates.ts +72 -0
  333. package/src/modules/{utils → dxUtils}/highlight/highlight.ts +3 -2
  334. package/src/modules/dxUtils/language/language.ts +21 -0
  335. package/src/modules/dxUtils/list/list.ts +11 -0
  336. package/src/modules/dxUtils/lwc/lwc.ts +24 -0
  337. package/src/modules/dxUtils/normalizers/normalizers.ts +112 -0
  338. package/src/modules/{utils → dxUtils}/options/options.ts +13 -9
  339. package/src/modules/dxUtils/prismjs/prismjs.ts +4183 -0
  340. package/src/modules/dxUtils/queryCoordinator/queryCoordinator.ts +43 -0
  341. package/src/modules/dxUtils/recentSearches/recentSearches.ts +57 -0
  342. package/src/modules/dxUtils/sanitizeHtml/sanitizeHtml.ts +8 -0
  343. package/src/modules/dxUtils/urlWatcher/urlWatcher.ts +79 -0
  344. package/src/modules/dxUtils/withTypedRefs/withTypedRefs.ts +26 -0
  345. package/src/modules/{utils → dxUtils}/wordpress/wordpress.ts +14 -0
  346. package/LICENSE +0 -12
  347. package/src/assets/svg/card-news-learn-moar.svg +0 -415
  348. package/src/assets/svg/cloud-1.svg +0 -24
  349. package/src/assets/svg/cloud-2.svg +0 -18
  350. package/src/assets/svg/codey.svg +0 -93
  351. package/src/assets/svg/command.svg +0 -9
  352. package/src/assets/svg/control.svg +0 -10
  353. package/src/assets/svg/docs-empty-state-small.svg +0 -72
  354. package/src/assets/svg/docs-empty-state.svg +0 -86
  355. package/src/assets/svg/dsc-home-news-bear.svg +0 -3
  356. package/src/assets/svg/dsc-home-news-community.png +0 -0
  357. package/src/assets/svg/dsc-home-news-goatbear.svg +0 -257
  358. package/src/assets/svg/dsc-home-news-samplegallery.svg +0 -76
  359. package/src/assets/svg/empty-state-assistant.svg +0 -1
  360. package/src/assets/svg/fch-blog-cloud-1.png +0 -0
  361. package/src/assets/svg/fch-blog-cloud-2.png +0 -0
  362. package/src/assets/svg/fch-blog-planet.png +0 -0
  363. package/src/assets/svg/feature-backdrop1.svg +0 -10
  364. package/src/assets/svg/feature-backdrop2.svg +0 -10
  365. package/src/assets/svg/featured-demo-art-blank.svg +0 -76
  366. package/src/assets/svg/featured-demo-art-eBikes.svg +0 -77
  367. package/src/assets/svg/footer-graphic-large.svg +0 -207
  368. package/src/assets/svg/footer-graphic-mountains-small.svg +0 -17
  369. package/src/assets/svg/footer-graphic-mountains.svg +0 -21
  370. package/src/assets/svg/footer-graphic-trees-small.svg +0 -33
  371. package/src/assets/svg/footer-graphic-trees.svg +0 -62
  372. package/src/assets/svg/lake-mountain.svg +0 -79
  373. package/src/assets/svg/podcast-subscription-clouds-small.svg +0 -49
  374. package/src/assets/svg/podcast-subscription-clouds.svg +0 -57
  375. package/src/assets/svg/podcasts-subscription-apple.svg +0 -164
  376. package/src/assets/svg/podcasts-subscription-google.svg +0 -29
  377. package/src/assets/svg/podcasts-subscription-spotify.svg +0 -11
  378. package/src/assets/svg/salesforce-cloud.svg +0 -7
  379. package/src/assets/svg/salesforce-logo-corporate.svg +0 -21
  380. package/src/assets/svg/salesforce-logo.svg +0 -14
  381. package/src/assets/svg/trees.svg +0 -42
  382. package/src/modules/dx/banner/__tests__/banner.test.ts +0 -31
  383. package/src/modules/dx/brandThemeProvider/__tests__/brandThemeProvider.test.ts +0 -49
  384. package/src/modules/dx/brandThemeProvider/brandThemeProvider.stories.ts +0 -321
  385. package/src/modules/dx/breadcrumbs/__tests__/breadcrumbs.test.ts +0 -143
  386. package/src/modules/dx/breadcrumbs/__tests__/mockProps.ts +0 -28
  387. package/src/modules/dx/breadcrumbs/breadcrumbs.stories.ts +0 -39
  388. package/src/modules/dx/button/__tests__/button.test.ts +0 -107
  389. package/src/modules/dx/button/button.stories.ts +0 -150
  390. package/src/modules/dx/cardBlogPost/__tests__/cardBlogPost.test.ts +0 -27
  391. package/src/modules/dx/cardBlogPost/__tests__/mockProps.ts +0 -12
  392. package/src/modules/dx/cardBlogPost/cardBlogPost.stories.ts +0 -164
  393. package/src/modules/dx/cardBlogPostProvider/__tests__/cardBlogPostProvider.test.ts +0 -34
  394. package/src/modules/dx/cardBlogPostProvider/__tests__/mockWordpressPosts.ts +0 -44
  395. package/src/modules/dx/cardBlogPostProvider/cardBlogPostProvider.css +0 -3
  396. package/src/modules/dx/cardBlogPostProvider/cardBlogPostProvider.html +0 -16
  397. package/src/modules/dx/cardBlogPostProvider/cardBlogPostProvider.ts +0 -29
  398. package/src/modules/dx/cardCallout/__tests__/cardCallout.test.ts +0 -23
  399. package/src/modules/dx/cardCallout/__tests__/mockProps.ts +0 -7
  400. package/src/modules/dx/cardCallout/cardCallout.stories.ts +0 -33
  401. package/src/modules/dx/cardContent/__tests__/cardContent.test.ts +0 -112
  402. package/src/modules/dx/cardContent/__tests__/mockProps.ts +0 -13
  403. package/src/modules/dx/cardContent/cardContent.stories.ts +0 -127
  404. package/src/modules/dx/cardDemo/cardDemo.stories.ts +0 -115
  405. package/src/modules/dx/cardDocs/__tests__/cardDocs.test.ts +0 -48
  406. package/src/modules/dx/cardDocs/__tests__/mockProps.ts +0 -9
  407. package/src/modules/dx/cardDocs/cardDocs.stories.ts +0 -299
  408. package/src/modules/dx/cardEvent/__tests__/cardEvent.test.ts +0 -99
  409. package/src/modules/dx/cardEvent/__tests__/mockProps.ts +0 -10
  410. package/src/modules/dx/cardEvent/cardEvent.stories.ts +0 -152
  411. package/src/modules/dx/cardGrid/__tests__/cardMockProps.ts +0 -431
  412. package/src/modules/dx/cardGrid/__tests__/mockProps.ts +0 -15
  413. package/src/modules/dx/cardGrid/cardGrid.stories.ts +0 -111
  414. package/src/modules/dx/cardNews/__tests__/cardNews.test.ts +0 -59
  415. package/src/modules/dx/cardNews/__tests__/mockProps.ts +0 -7
  416. package/src/modules/dx/cardNews/cardNews.stories.ts +0 -115
  417. package/src/modules/dx/cardPodcastEpisode/__tests__/cardPodcastEpisode.test.ts +0 -70
  418. package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.stories.ts +0 -31
  419. package/src/modules/dx/cardPodcastEpisodeProvider/__tests__/cardPodcastEpisodeProvider.test.ts +0 -36
  420. package/src/modules/dx/cardPodcastEpisodeProvider/__tests__/mockWordpressEpisodes.ts +0 -50
  421. package/src/modules/dx/cardPodcastEpisodeProvider/cardPodcastEpisodeProvider.css +0 -3
  422. package/src/modules/dx/cardPodcastEpisodeProvider/cardPodcastEpisodeProvider.html +0 -12
  423. package/src/modules/dx/cardPodcastEpisodeProvider/cardPodcastEpisodeProvider.ts +0 -29
  424. package/src/modules/dx/cardSmall/__tests__/cardSmall.test.ts +0 -70
  425. package/src/modules/dx/cardSmall/__tests__/mockProps.ts +0 -8
  426. package/src/modules/dx/cardSmall/cardSmall.stories.ts +0 -166
  427. package/src/modules/dx/cardTitle/__tests__/cardTitle.test.ts +0 -46
  428. package/src/modules/dx/cardTrailheadModule/__tests__/cardTrailheadModule.test.ts +0 -18
  429. package/src/modules/dx/cardTrailheadModule/__tests__/mockProps.ts +0 -11
  430. package/src/modules/dx/cardTrailheadModule/cardTrailheadModule.stories.ts +0 -122
  431. package/src/modules/dx/cardVideoPreview/__tests__/cardVideoPreview.test.ts +0 -22
  432. package/src/modules/dx/cardVideoPreview/__tests__/mockProps.ts +0 -11
  433. package/src/modules/dx/cardVideoPreview/cardVideoPreview.stories.ts +0 -147
  434. package/src/modules/dx/checkbox/__tests__/checkbox.test.ts +0 -86
  435. package/src/modules/dx/checkbox/__tests__/mockProps.ts +0 -5
  436. package/src/modules/dx/checkbox/checkbox.stories.ts +0 -38
  437. package/src/modules/dx/checkboxGroup/__tests__/checkboxGroup.test.ts +0 -80
  438. package/src/modules/dx/checkboxGroup/__tests__/mockProps.ts +0 -14
  439. package/src/modules/dx/checkboxGroup/checkboxGroup.stories.ts +0 -33
  440. package/src/modules/dx/codeBlock/__tests__/codeBlock.test.ts +0 -242
  441. package/src/modules/dx/codeBlock/__tests__/mockProps.ts +0 -160
  442. package/src/modules/dx/codeBlock/codeBlock.stories.ts +0 -143
  443. package/src/modules/dx/codeBlock/darkTheme.css +0 -88
  444. package/src/modules/dx/codeBlock/lightTheme.css +0 -72
  445. package/src/modules/dx/dropdown/__tests__/dropdown.test.ts +0 -172
  446. package/src/modules/dx/dropdown/__tests__/mockNestedOptions.ts +0 -96
  447. package/src/modules/dx/dropdown/__tests__/mockOptions.ts +0 -10
  448. package/src/modules/dx/dropdown/__tests__/mockProps.ts +0 -6
  449. package/src/modules/dx/dropdown/dropdown.stories.ts +0 -89
  450. package/src/modules/dx/dropdownOption/__tests__/dropdownOption.test.ts +0 -112
  451. package/src/modules/dx/dropdownOption/__tests__/mockProps.ts +0 -20
  452. package/src/modules/dx/emptyState/__tests__/emptyState.test.ts +0 -52
  453. package/src/modules/dx/emptyState/__tests__/mockProps.ts +0 -4
  454. package/src/modules/dx/emptyState/emptyState.stories.ts +0 -45
  455. package/src/modules/dx/feature/__tests__/feature.test.ts +0 -50
  456. package/src/modules/dx/feature/__tests__/mockProps.ts +0 -8
  457. package/src/modules/dx/featureGrid/__tests__/featureGrid.test.ts +0 -21
  458. package/src/modules/dx/featureGrid/featureGrid.stories.ts +0 -120
  459. package/src/modules/dx/featuredContentHeader/__tests__/featuredContentHeader.test.ts +0 -191
  460. package/src/modules/dx/featuredContentHeader/__tests__/mockProps.ts +0 -73
  461. package/src/modules/dx/featuredContentHeader/featuredContentHeader.stories.ts +0 -153
  462. package/src/modules/dx/featuresList/__tests__/featuresList.test.ts +0 -47
  463. package/src/modules/dx/featuresList/__tests__/mockProps.ts +0 -17
  464. package/src/modules/dx/featuresList/featuresList.stories.ts +0 -30
  465. package/src/modules/dx/footer/__tests__/footer.test.ts +0 -147
  466. package/src/modules/dx/footer/__tests__/mockLocales.ts +0 -7
  467. package/src/modules/dx/footer/footer.stories.ts +0 -88
  468. package/src/modules/dx/footerOption/__tests__/footerOption.test.ts +0 -34
  469. package/src/modules/dx/footerOption/__tests__/mockProps.ts +0 -7
  470. package/src/modules/dx/formattedDateTime/__tests__/formattedDateTime.test.ts +0 -25
  471. package/src/modules/dx/formattedDateTime/__tests__/mockProps.ts +0 -13
  472. package/src/modules/dx/formattedDateTime/formattedDateTime.stories.ts +0 -103
  473. package/src/modules/dx/grid/__tests__/grid.test.ts +0 -37
  474. package/src/modules/dx/grid/grid.stories.ts +0 -134
  475. package/src/modules/dx/groupBio/__tests__/groupBio.test.ts +0 -82
  476. package/src/modules/dx/groupBio/__tests__/mockProps.ts +0 -15
  477. package/src/modules/dx/groupBio/groupBio.css +0 -49
  478. package/src/modules/dx/groupBio/groupBio.html +0 -29
  479. package/src/modules/dx/groupBio/groupBio.stories.ts +0 -66
  480. package/src/modules/dx/groupBio/groupBio.ts +0 -41
  481. package/src/modules/dx/groupText/__tests__/groupText.test.ts +0 -73
  482. package/src/modules/dx/groupText/__tests__/mockProps.ts +0 -35
  483. package/src/modules/dx/groupText/groupText.stories.ts +0 -81
  484. package/src/modules/dx/headTags/headTags.html +0 -3
  485. package/src/modules/dx/headTags/headTags.ts +0 -39
  486. package/src/modules/dx/header/__benchmarks__/header.benchmark.js +0 -45
  487. package/src/modules/dx/header/__tests__/header.test.ts +0 -242
  488. package/src/modules/dx/header/__tests__/mockNavArchitects.ts +0 -169
  489. package/src/modules/dx/header/__tests__/mockNavDevelopers.ts +0 -419
  490. package/src/modules/dx/header/__tests__/mockNavs.ts +0 -115
  491. package/src/modules/dx/header/__tests__/mockProps.ts +0 -164
  492. package/src/modules/dx/header/header.css +0 -109
  493. package/src/modules/dx/header/header.html +0 -128
  494. package/src/modules/dx/header/header.stories.ts +0 -172
  495. package/src/modules/dx/header/header.ts +0 -27
  496. package/src/modules/dx/headerMobileNavMenu/__tests__/headerMobileNavMenu.test.ts +0 -123
  497. package/src/modules/dx/headerMobileNavMenuOption/__tests__/headerMobileNavMenuOption.test.ts +0 -38
  498. package/src/modules/dx/headerNav/__tests__/headerNav.test.ts +0 -49
  499. package/src/modules/dx/headerSearch/__tests__/headerSearch.test.ts +0 -198
  500. package/src/modules/dx/headerSearch/__tests__/mockData.ts +0 -11
  501. package/src/modules/dx/headerSearch/__tests__/mockProps.ts +0 -11
  502. package/src/modules/dx/headerSearch/headerSearch.css +0 -62
  503. package/src/modules/dx/headerSearch/headerSearch.html +0 -65
  504. package/src/modules/dx/headerSearch/headerSearch.ts +0 -161
  505. package/src/modules/dx/helmet/__tests__/helmet.test.ts +0 -53
  506. package/src/modules/dx/helmet/helmet.stories.ts +0 -53
  507. package/src/modules/dx/hr/__tests__/hr.test.ts +0 -53
  508. package/src/modules/dx/hr/__tests__/mockProps.ts +0 -16
  509. package/src/modules/dx/hr/hr.stories.ts +0 -50
  510. package/src/modules/dx/icon/__tests__/icon.test.ts +0 -54
  511. package/src/modules/dx/icon/icon.stories.ts +0 -100
  512. package/src/modules/dx/iconBadge/__tests__/iconBadge.test.ts +0 -17
  513. package/src/modules/dx/iconBadge/iconBadge.stories.ts +0 -32
  514. package/src/modules/dx/imageAndLabel/__tests__/imageAndLabel.test.ts +0 -39
  515. package/src/modules/dx/imageAndLabel/__tests__/mockProps.ts +0 -6
  516. package/src/modules/dx/imageAndLabel/imageAndLabel.stories.ts +0 -48
  517. package/src/modules/dx/input/__tests__/input.test.ts +0 -368
  518. package/src/modules/dx/input/input.stories.ts +0 -102
  519. package/src/modules/dx/instrumentation/__tests__/instrumentation.test.ts +0 -86
  520. package/src/modules/dx/instrumentation/instrumentation.ts +0 -116
  521. package/src/modules/dx/interactiveImage/__tests__/interactiveImage.test.ts +0 -86
  522. package/src/modules/dx/interactiveImage/__tests__/mockProps.ts +0 -39
  523. package/src/modules/dx/interactiveImage/interactiveImage.stories.ts +0 -31
  524. package/src/modules/dx/lazy/__tests__/lazy.test.ts +0 -43
  525. package/src/modules/dx/lazy/lazy.html +0 -5
  526. package/src/modules/dx/lazy/lazy.stories.ts +0 -132
  527. package/src/modules/dx/lazy/lazy.ts +0 -170
  528. package/src/modules/dx/newsletterForm/newsletterForm.css +0 -73
  529. package/src/modules/dx/newsletterForm/newsletterForm.html +0 -73
  530. package/src/modules/dx/newsletterForm/newsletterForm.ts +0 -229
  531. package/src/modules/dx/pagination/__tests__/pagination.test.ts +0 -121
  532. package/src/modules/dx/pagination/pagination.stories.ts +0 -88
  533. package/src/modules/dx/podcastHost/__tests__/mockProps.ts +0 -8
  534. package/src/modules/dx/podcastHost/__tests__/podcastHost.test.ts +0 -21
  535. package/src/modules/dx/podcastHost/podcastHost.stories.ts +0 -17
  536. package/src/modules/dx/podcastPlayer/__tests__/podcastPlayer.test.ts +0 -20
  537. package/src/modules/dx/podcastPlayer/podcastPlayer.stories.ts +0 -13
  538. package/src/modules/dx/podcastSubscription/__tests__/podcastSubscription.test.ts +0 -16
  539. package/src/modules/dx/podcastSubscription/podcastSubscription.css +0 -92
  540. package/src/modules/dx/podcastSubscription/podcastSubscription.html +0 -24
  541. package/src/modules/dx/podcastSubscription/podcastSubscription.stories.ts +0 -23
  542. package/src/modules/dx/podcastSubscription/podcastSubscription.ts +0 -58
  543. package/src/modules/dx/popover/__tests__/mockProps.ts +0 -8
  544. package/src/modules/dx/popover/__tests__/popover.test.ts +0 -321
  545. package/src/modules/dx/popover/popover.stories.ts +0 -82
  546. package/src/modules/dx/radioGroup/__tests__/mockProps.ts +0 -12
  547. package/src/modules/dx/radioGroup/__tests__/radioGroup.test.ts +0 -42
  548. package/src/modules/dx/radioGroup/radioGroup.stories.ts +0 -25
  549. package/src/modules/dx/relativeDateTime/__tests__/mockProps.ts +0 -55
  550. package/src/modules/dx/relativeDateTime/__tests__/relativeDateTime.test.ts +0 -52
  551. package/src/modules/dx/relativeDateTime/relativeDateTime.stories.ts +0 -83
  552. package/src/modules/dx/searchResults/searchResults.stories.ts +0 -36
  553. package/src/modules/dx/section/__tests__/section.test.ts +0 -17
  554. package/src/modules/dx/section/section.stories.ts +0 -381
  555. package/src/modules/dx/sectionSignup/__tests__/sectionSignup.test.ts +0 -66
  556. package/src/modules/dx/sectionSignup/sectionSignup.stories.ts +0 -49
  557. package/src/modules/dx/select/select.stories.ts +0 -59
  558. package/src/modules/dx/sidebar/__tests__/mockProps.ts +0 -181
  559. package/src/modules/dx/sidebar/__tests__/sidebar.test.ts +0 -609
  560. package/src/modules/dx/sidebar/sidebar.stories.ts +0 -139
  561. package/src/modules/dx/socials/__tests__/socials.test.ts +0 -124
  562. package/src/modules/dx/socials/socials.stories.ts +0 -24
  563. package/src/modules/dx/spinner/__tests__/spinner.test.ts +0 -37
  564. package/src/modules/dx/spinner/spinner.stories.ts +0 -69
  565. package/src/modules/dx/tab/__tests__/tab.test.ts +0 -129
  566. package/src/modules/dx/tab/tab.stories.ts +0 -57
  567. package/src/modules/dx/toc/__tests__/mockProps.ts +0 -22
  568. package/src/modules/dx/toc/__tests__/toc.test.ts +0 -115
  569. package/src/modules/dx/toc/toc.stories.ts +0 -26
  570. package/src/modules/dx/tooltip/__tests__/tooltip.test.ts +0 -23
  571. package/src/modules/dx/tooltip/tooltip.stories.ts +0 -46
  572. package/src/modules/dx/tree/__tests__/mockProps.ts +0 -215
  573. package/src/modules/dx/tree/__tests__/tree.test.ts +0 -357
  574. package/src/modules/dx/tree/__tests__/treeHandler.test.ts +0 -194
  575. package/src/modules/dx/tree/tree.stories.ts +0 -65
  576. package/src/modules/dx/treeItem/__tests__/mockProps.ts +0 -46
  577. package/src/modules/dx/treeItem/__tests__/treeItem.test.ts +0 -400
  578. package/src/modules/dx/treeTile/__tests__/mockProps.ts +0 -16
  579. package/src/modules/dx/treeTile/__tests__/treeTile.test.ts +0 -179
  580. package/src/modules/dx/typeBadge/__tests__/typeBadge.test.ts +0 -63
  581. package/src/modules/dx/typeBadge/typeBadge.stories.ts +0 -79
  582. package/src/modules/dx/typeBadgeGroup/__tests__/mockProps.ts +0 -11
  583. package/src/modules/dx/typeBadgeGroup/__tests__/typeBadgeGroup.test.ts +0 -76
  584. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.css +0 -12
  585. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.html +0 -11
  586. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.stories.ts +0 -19
  587. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.ts +0 -18
  588. package/src/modules/helpers/button/button.css +0 -4
  589. package/src/modules/helpers/slds/slds.css +0 -191
  590. package/src/modules/tests/buttonTest/buttonTest.html +0 -3
  591. package/src/modules/tests/buttonTest/buttonTest.ts +0 -3
  592. package/src/modules/tests/codeBlockTest/codeBlockTest.js +0 -4
  593. package/src/modules/tests/featureGridTest/featureGridTest.html +0 -7
  594. package/src/modules/tests/featureGridTest/featureGridTest.ts +0 -5
  595. package/src/modules/tests/instrumentationTest/instrumentationTest.html +0 -4
  596. package/src/modules/tests/instrumentationTest/instrumentationTest.ts +0 -8
  597. package/src/modules/tests/popoverTest/popoverTest.html +0 -6
  598. package/src/modules/tests/popoverTest/popoverTest.ts +0 -5
  599. package/src/modules/utils/css/css.ts +0 -2
  600. package/src/modules/utils/jest/jest.ts +0 -23
  601. package/src/modules/utils/normalizers/normalizers.ts +0 -91
  602. package/src/modules/utils/prismjs/prismjs.ts +0 -3225
  603. package/src/modules/utils/storybook/storybook.ts +0 -33
  604. package/src/modules/utils/tests/tests.ts +0 -31
  605. package/src/modules/utils/wordpress/__tests__/wordpress.test.ts +0 -15
  606. /package/src/modules/dx/{instrumentation/instrumentation.html → darkModeManager/darkModeManager.html} +0 -0
  607. /package/src/modules/{utils → dxUtils}/devices/devices.ts +0 -0
  608. /package/src/modules/{utils → dxUtils}/prismjs/prismjs.html +0 -0
  609. /package/src/modules/{utils → dxUtils}/regexps/regexps.ts +0 -0
  610. /package/src/modules/{utils → dxUtils}/seo/seo.ts +0 -0
  611. /package/src/modules/{utils → dxUtils}/slot/slot.ts +0 -0
@@ -1,5 +1,17 @@
1
1
  import { LightningElement, api, track } from "lwc";
2
2
  import type * as CoveoSDK from "coveo-search-ui";
3
+ import { DateTime } from "luxon";
4
+ import { track as trackGTM } from "dxUtils/analytics";
5
+ import {
6
+ CONTENT_TYPE_LABELS,
7
+ CONTENT_TYPE_ICONS
8
+ } from "dxConstants/contentTypes";
9
+ import { getContentTypeColorVariables } from "dxUtils/contentTypes";
10
+ import { pollUntil } from "dxUtils/async";
11
+ import resultsTemplate from "./resultsTemplate";
12
+
13
+ // Max height for breadcrumb without wrapping
14
+ const MAX_BREADCRUMB_HEIGHT = 16;
3
15
 
4
16
  interface CoveoSearch {
5
17
  state: typeof CoveoSDK.state;
@@ -12,13 +24,15 @@ interface CoveoSearch {
12
24
  UnderscoreTemplate: typeof CoveoSDK.UnderscoreTemplate;
13
25
  init: typeof CoveoSDK.init;
14
26
  IQuerySuccessEventArgs: CoveoSDK.IQuerySuccessEventArgs;
27
+ TemplateHelpers: any;
15
28
  }
16
29
 
17
30
  declare const Coveo: CoveoSearch;
18
31
 
19
- function getPaginationState(
20
- event: CoveoSDK.IQuerySuccessEventArgs
21
- ): { numberOfPages: number; currentPage: number } {
32
+ function getPaginationState(event: CoveoSDK.IQuerySuccessEventArgs): {
33
+ numberOfPages: number;
34
+ currentPage: number;
35
+ } {
22
36
  const pageSize = event.query.numberOfResults!;
23
37
  const totalResults = event.results.totalCount!;
24
38
  const numberOfPages = Math.ceil(totalResults / pageSize);
@@ -28,37 +42,159 @@ function getPaginationState(
28
42
  return { numberOfPages, currentPage };
29
43
  }
30
44
 
31
- const resultsTemplatesInnerHtml = `
32
- <script
33
- id="myDocumentResultTemplate"
34
- class="result-template"
35
- type="text/html"
36
- data-field-publicurl=""
37
- >
38
- <div class="dx-result">
39
- <p class="dx-result-title">
40
- <a
41
- class="CoveoResultLink"
42
- data-field="@publicurl"
43
- ></a>
44
- </p>
45
- <p class="dx-result-excerpt CoveoExcerpt"></p>
46
- </div>
47
- </script>
48
- <script
49
- id="myDefaultResultTemplate"
50
- class="result-template"
51
- type="text/html"
52
- >
53
- <div class="dx-result">
54
- <p class="dx-result-title">
55
- <a class="CoveoResultLink"></a>
56
- </p>
57
- <p class="dx-result-excerpt CoveoExcerpt"></p>
45
+ const isInternalDomain = (domain: string) =>
46
+ domain === "developer.salesforce.com" ||
47
+ domain === "developer-website-s.herokuapp.com";
48
+
49
+ const isTrailheadDomain = (domain: string) =>
50
+ domain === "trailhead.salesforce.com" ||
51
+ domain === "dev.trailhead.salesforce.com";
52
+
53
+ const buildTemplateHelperBadge = (value: keyof typeof CONTENT_TYPE_LABELS) => {
54
+ const style = getContentTypeColorVariables(value);
55
+ const label = CONTENT_TYPE_LABELS[value];
56
+ const { iconSprite, iconSymbol } = CONTENT_TYPE_ICONS[value];
57
+ return `
58
+ <div style="${style}" class="dx-badge">
59
+ <svg
60
+ aria-hidden="true"
61
+ style="display: inline; margin-bottom: 1px; fill: var(--color); height: var(--dx-g-icon-size-xs); width: var(--dx-g-icon-size-xs);"
62
+ xmlns="http://www.w3.org/2000/svg"
63
+ part="svg"
64
+ >
65
+ <use xlink:href="/assets/icons/${iconSprite}-sprite/svg/symbols.svg#${iconSymbol}"></use>
66
+ </svg>
67
+ <span>${label}</span>
58
68
  </div>
59
- </script>
60
- `;
69
+ `;
70
+ };
71
+
72
+ const processParts = (parts: string[], internalFlag = false) => {
73
+ // filter /docs/ breadcrumb item from internal domains
74
+ const filterFn = internalFlag
75
+ ? (part: string) => part !== "docs"
76
+ : (part: string) => part;
77
+
78
+ return parts.filter(filterFn).map((part) => {
79
+ // Remove special characters & .htm/.xml extension
80
+ part = part
81
+ .replace(/_/g, "")
82
+ .replace(/-/g, "")
83
+ .replace(/.html*/g, "")
84
+ .replace(/.xml/g, "")
85
+ .replace(/b2c/g, "B2C");
86
+
87
+ // Capitalize first letter of each word
88
+ part = part.replace(/\w\S*/g, (w) => {
89
+ return w.replace(/^\w/, (c) => c.toUpperCase());
90
+ });
91
+
92
+ return `<span class="breadcrumb-item">${decodeURI(part)}</span>`;
93
+ });
94
+ };
95
+
96
+ const buildTemplateHelperUriBreadcrumbs = (value: string) => {
97
+ const url = new URL(value);
98
+
99
+ // exclude youtube links from breadcrumbs
100
+ const hostnamePattern = /^((www\.)?(youtube\.com|youtu\.be))$/;
101
+
102
+ // we don't want to show atlas docs because the url structure is mad ugly
103
+ if (hostnamePattern.test(url.hostname) || url.pathname.includes("atlas.")) {
104
+ return "";
105
+ }
106
+
107
+ let parts = url.pathname.split("/").filter((part) => part !== "");
108
+
109
+ // Remove language prefix from trailhead URLs
110
+ if (isTrailheadDomain(url.hostname)) {
111
+ parts = parts
112
+ .slice(1)
113
+ .filter((part) => part !== "content" && part !== "learn");
114
+ }
115
+
116
+ const breadcrumbs = processParts(parts, isInternalDomain(url.hostname));
117
+
118
+ if (!isInternalDomain(url.hostname)) {
119
+ // Remove the first breadcrumb item if it's an internal domain (i.e drop developer.salesforce.com from developer.salesforce.com / B2C Commerce / Open Commerce API / Filtering)
120
+ breadcrumbs.unshift(
121
+ `<span class="breadcrumb-item">${url.hostname}</span>`
122
+ );
123
+
124
+ return `
125
+ <span class="breadcrumb">
126
+ ${breadcrumbs.join(" / ")}
127
+ </span>
128
+ `;
129
+ } else if (breadcrumbs.length === 1) {
130
+ // Hide breadcrumbs if there is only one breadcrumb item
131
+ return "";
132
+ }
133
+
134
+ // remove the last breadcrumb item (the search result title makes it redundant)
135
+ breadcrumbs.pop();
136
+
137
+ return `<span class="breadcrumb">/ ${breadcrumbs.join(" / ")} /</span>`;
138
+ };
139
+
140
+ const buildTemplateHelperCommunityBreadcrumbs = () => {
141
+ return `<span class="breadcrumb"><span class="breadcrumb-item">trailhead.salesforce.com</span> / <span class="breadcrumb-item">trailblazer-community</span> / <span class="breadcrumb-item">feed</span> / </span>`;
142
+ };
143
+
144
+ const buildTemplateHelperBreadcrumbs = (value: string) => {
145
+ const parts = value.split("/").filter((part) => part !== "");
146
+
147
+ // Don't show breadcrumbs if there's only one part
148
+ if (parts.length === 1) {
149
+ return "";
150
+ }
151
+
152
+ const breadcrumbs = processParts(parts);
153
+
154
+ // remove last breadcrumb item
155
+ breadcrumbs.pop();
61
156
 
157
+ return `
158
+ <span class="breadcrumb">/ ${breadcrumbs.join(" / ")} /</span>
159
+ `;
160
+ };
161
+
162
+ const buildTemplateHelperMetaBreadcrumbs = (value: string) => {
163
+ const parts = value.split("/").filter((part) => part !== "");
164
+
165
+ // Don't show breadcrumbs if there's only one part
166
+ if (parts.length === 1) {
167
+ return "";
168
+ }
169
+
170
+ const breadcrumbs = processParts(parts);
171
+
172
+ return `
173
+ <span class="breadcrumb">/ ${breadcrumbs.join(" / ")}</span>
174
+ `;
175
+ };
176
+
177
+ const buildTemplateHelperPostedDate = (value: string) => {
178
+ const time = DateTime.fromMillis(Number(value)).toLocaleString(
179
+ DateTime.DATE_MED
180
+ );
181
+
182
+ return `Posted on: ${time} - `;
183
+ };
184
+
185
+ const buildTemplateHelperReplies = (value: string) => {
186
+ const number = Number(value);
187
+
188
+ return `<strong>${value} ${number > 1 ? "Replies" : "Reply"}</strong>`;
189
+ };
190
+
191
+ const buildTemplateHelperLikes = (value: string) => {
192
+ const number = Number(value);
193
+
194
+ return `<strong>${value} ${number > 1 ? "Likes" : "Like"}</strong>`;
195
+ };
196
+
197
+ // @ts-ignore Dark Magic (TM) we are overriding the 'title' field with a custom getter. We should really stop doing this.
62
198
  export default class SearchResults extends LightningElement {
63
199
  @api coveoOrganizationId!: string;
64
200
  @api coveoPublicAccessToken!: string;
@@ -83,7 +219,7 @@ export default class SearchResults extends LightningElement {
83
219
  private totalResults: number | null = null;
84
220
 
85
221
  private get title() {
86
- return this.totalResults ? this.totalResults.toLocaleString() : "";
222
+ return this.totalResults ? this.totalResults.toLocaleString() : "0";
87
223
  }
88
224
 
89
225
  private query: string = "";
@@ -93,6 +229,10 @@ export default class SearchResults extends LightningElement {
93
229
  return this.query !== "";
94
230
  }
95
231
 
232
+ private get coveoAnalyticsEndpoint() {
233
+ return `https://${this.coveoOrganizationId}.analytics.org.coveo.com/rest/ua`;
234
+ }
235
+
96
236
  private updateSearchQuery() {
97
237
  Coveo.state(this.root!, "q", this._query);
98
238
  }
@@ -104,9 +244,12 @@ export default class SearchResults extends LightningElement {
104
244
  BreadcrumbManager.clearBreadcrumbs();
105
245
  }
106
246
 
107
- private currentPage: number = 1;
247
+ private currentPage: number = 25;
108
248
  private totalPages: number = 1;
109
249
 
250
+ private originalBreadcrumbs: string[] = [];
251
+ private initialWindowWidth = window.innerWidth;
252
+
110
253
  private goToPage(e: CustomEvent) {
111
254
  const page = e.detail;
112
255
  const Pager = Coveo.get(
@@ -127,12 +270,24 @@ export default class SearchResults extends LightningElement {
127
270
  Coveo.$$(root).on(
128
271
  Coveo.InitializationEvents.afterInitialization,
129
272
  () => {
273
+ const url = new URL(window.location.href);
274
+ const searchParams = url.searchParams;
275
+ const keywordsParam = searchParams.get("keywords");
276
+
277
+ // Accomodate for the global nav using 'keywords' param instead of 'q'
278
+ if (keywordsParam) {
279
+ this._query = searchParams.get("keywords")!;
280
+ searchParams.delete("keywords");
281
+ window.history.replaceState(null, "", url.href);
282
+ }
283
+
130
284
  if (this._query !== "") {
131
285
  Coveo.state(this.root!, "q", this.searchQuery);
132
286
  }
133
287
  if (Coveo.state(this.root!, "q") === "") {
134
288
  Coveo.state(this.root!, "sort", "date descending");
135
289
  }
290
+
136
291
  this.isInitialized = true;
137
292
  }
138
293
  );
@@ -144,30 +299,206 @@ export default class SearchResults extends LightningElement {
144
299
  this.currentPage = currentPage;
145
300
  this.totalPages = numberOfPages;
146
301
  this.totalResults = event.detail.results.totalCount;
302
+
147
303
  this.query = event.detail.query.q ?? "";
148
- this.hasFilters = event.detail.query.facets.some((f: any) => {
304
+ this.hasFilters = event.detail.query?.facets?.some((f: any) => {
149
305
  return f.currentValues.some((cv: any) => {
150
306
  return cv.state === "selected";
151
307
  });
152
308
  });
309
+
310
+ // Note that this logic means that if someone clicks a search result before
311
+ // onetrust has loaded, and thus navigates away from the page, we will lose the tracking
312
+ if (document.readyState === "complete") {
313
+ this.trackSearchResults(event, this.query, this.totalResults);
314
+ } else {
315
+ const query = this.query;
316
+ const totalResults = this.totalResults;
317
+ window.addEventListener("load", () => {
318
+ this.trackSearchResults(event, query, totalResults);
319
+ });
320
+ }
321
+ });
322
+
323
+ Coveo.$$(root).on(Coveo.QueryEvents.deferredQuerySuccess, async () => {
324
+ // wait specified time to ensure breadcrumbs are rendered before processing them
325
+ await pollUntil(
326
+ () => {
327
+ const coveoResults =
328
+ this.root!.querySelector(".CoveoResult");
329
+
330
+ return Boolean(coveoResults);
331
+ },
332
+ 20,
333
+ 1000
334
+ );
335
+
336
+ this.processBreadcrumbs(root);
337
+
338
+ window.onresize = () => this.processBreadcrumbs(root);
339
+ });
340
+ }
341
+
342
+ // check if the breadcrumb is overflowing or not based on the height of a single character in the text element
343
+ private isTextWrapping = (element: HTMLElement) => {
344
+ return element.offsetHeight > MAX_BREADCRUMB_HEIGHT;
345
+ };
346
+
347
+ private truncateBreadcrumbText = (breadcrumbItems: HTMLElement[]) => {
348
+ breadcrumbItems.forEach((breadcrumbItem: HTMLElement) => {
349
+ const breadcrumbItemText = breadcrumbItem.textContent!;
350
+ if (breadcrumbItemText.length > 30) {
351
+ breadcrumbItem.textContent = `${breadcrumbItemText.substring(
352
+ 0,
353
+ 30
354
+ )}...`;
355
+ }
356
+ });
357
+ };
358
+
359
+ private addBreadcrumbEllipsis = (
360
+ breadcrumbItems: HTMLElement[],
361
+ breadcrumb: HTMLElement
362
+ ) => {
363
+ for (let i = 1; i < breadcrumbItems.length; i++) {
364
+ if (this.isTextWrapping(breadcrumb)) {
365
+ // if the previous element is an ellipsis, make it empty (in order to avoid multiple grouped ellipsis)
366
+ if (breadcrumbItems[i - 1]?.textContent === "...") {
367
+ breadcrumbItems[i].innerHTML = "";
368
+ } else {
369
+ breadcrumbItems[i].textContent = "...";
370
+ }
371
+ } else {
372
+ break; // Exit the loop if the breadcrumb is no longer overflowing
373
+ }
374
+ }
375
+
376
+ // remove any empty breadcrumb items
377
+ breadcrumb.innerHTML = breadcrumb.innerHTML
378
+ .replace(
379
+ / ?\/ +<span class="breadcrumb-item"><\/span> +\/ ?/g,
380
+ " / "
381
+ )
382
+ // when first loading the page on mobile, the breadcrumb items are not grouped correctly
383
+ .replace(
384
+ `<span class="breadcrumb-item">...</span> / <span class="breadcrumb-item">...</span>`,
385
+ `<span class="breadcrumb-item">...</span>`
386
+ );
387
+ };
388
+
389
+ private formatBreadcrumbs = (breadcrumbs: HTMLElement[]) => {
390
+ breadcrumbs?.forEach((breadcrumb: HTMLElement) => {
391
+ // Get all breadcrumb items that are separated by '/'
392
+ const breadcrumbItems: any =
393
+ breadcrumb.querySelectorAll(".breadcrumb-item");
394
+
395
+ // Check if the breadcrumb is overflowing by comparing it's height to the height of the first breadcrumb item
396
+ if (this.isTextWrapping(breadcrumb)) {
397
+ // it is overflowing, so we need to truncate long titles to 30 characters
398
+ this.truncateBreadcrumbText(breadcrumbItems);
399
+
400
+ // Iteratively check if the breadcrumb is still overflowing and replace text with '...' starting from the second breadcrumb item
401
+ this.addBreadcrumbEllipsis(breadcrumbItems, breadcrumb);
402
+
403
+ // After processing all breadcrumb items, if it's still overflowing, hide the breadcrumb element
404
+ if (this.isTextWrapping(breadcrumb)) {
405
+ breadcrumb.style.display = "none";
406
+ }
407
+ }
153
408
  });
409
+ };
410
+
411
+ private restoreBreadcrumbs = (breadcrumbs: HTMLElement[]) => {
412
+ breadcrumbs.forEach((breadcrumb: HTMLElement, index: number) => {
413
+ // eslint-disable-next-line @lwc/lwc/no-inner-html
414
+ breadcrumb.innerHTML = this.originalBreadcrumbs[index];
415
+ });
416
+ };
417
+
418
+ private windowSizeIncreased = () =>
419
+ window.innerWidth > this.initialWindowWidth;
420
+
421
+ private processBreadcrumbs(root: HTMLElement) {
422
+ // Get all breadcrumbs from search results
423
+ const breadcrumbs = Array.from(
424
+ root.querySelectorAll(".breadcrumb")
425
+ ) as HTMLElement[];
426
+
427
+ if (this.originalBreadcrumbs.length === 0) {
428
+ this.originalBreadcrumbs = breadcrumbs.map(
429
+ (breadcrumb) => breadcrumb.innerHTML
430
+ );
431
+ }
432
+
433
+ if (this.windowSizeIncreased()) {
434
+ /*
435
+ Reset the breadcrumbs to their original state and process them again.
436
+ The additional space means we can replace ellipsis with full text.
437
+ */
438
+ this.restoreBreadcrumbs(breadcrumbs);
439
+ }
440
+
441
+ this.formatBreadcrumbs(breadcrumbs);
154
442
  }
155
443
 
156
444
  private initializeCoveo() {
157
445
  this.root = this.template.querySelector(".CoveoSearchInterface")!;
158
446
 
159
447
  const resultsList = this.template.querySelector(".CoveoResultList");
448
+
160
449
  if (resultsList) {
161
- resultsList.innerHTML = resultsTemplatesInnerHtml;
450
+ // eslint-disable-next-line @lwc/lwc/no-inner-html
451
+ resultsList.innerHTML = resultsTemplate;
162
452
  }
163
453
 
164
454
  Coveo.SearchEndpoint.configureCloudV2Endpoint(
165
455
  this.coveoOrganizationId,
166
- this.coveoPublicAccessToken
456
+ this.coveoPublicAccessToken,
457
+ `https://${this.coveoOrganizationId}.org.coveo.com/rest/search`
167
458
  );
168
459
 
169
460
  this.attachListeners(this.root);
170
461
 
462
+ Coveo.TemplateHelpers.registerTemplateHelper(
463
+ "badge",
464
+ buildTemplateHelperBadge
465
+ );
466
+
467
+ Coveo.TemplateHelpers.registerTemplateHelper(
468
+ "breadcrumbs",
469
+ buildTemplateHelperBreadcrumbs
470
+ );
471
+
472
+ Coveo.TemplateHelpers.registerTemplateHelper(
473
+ "metabreadcrumbs",
474
+ buildTemplateHelperMetaBreadcrumbs
475
+ );
476
+
477
+ Coveo.TemplateHelpers.registerTemplateHelper(
478
+ "uriBreadcrumbs",
479
+ buildTemplateHelperUriBreadcrumbs
480
+ );
481
+
482
+ Coveo.TemplateHelpers.registerTemplateHelper(
483
+ "communityBreadcrumbs",
484
+ buildTemplateHelperCommunityBreadcrumbs
485
+ );
486
+
487
+ Coveo.TemplateHelpers.registerTemplateHelper(
488
+ "postedDate",
489
+ buildTemplateHelperPostedDate
490
+ );
491
+
492
+ Coveo.TemplateHelpers.registerTemplateHelper(
493
+ "replies",
494
+ buildTemplateHelperReplies
495
+ );
496
+
497
+ Coveo.TemplateHelpers.registerTemplateHelper(
498
+ "likes",
499
+ buildTemplateHelperLikes
500
+ );
501
+
171
502
  Coveo.init(this.root);
172
503
  }
173
504
 
@@ -176,6 +507,7 @@ export default class SearchResults extends LightningElement {
176
507
  if (Object.prototype.hasOwnProperty.call(window, "Coveo")) {
177
508
  this.initializeCoveo();
178
509
  } else {
510
+ // eslint-disable-next-line @lwc/lwc/no-document-query
179
511
  const script = document.querySelector("script.coveo-script");
180
512
  script?.addEventListener("load", () => {
181
513
  this.initializeCoveo();
@@ -183,4 +515,13 @@ export default class SearchResults extends LightningElement {
183
515
  }
184
516
  }
185
517
  }
518
+
519
+ private trackSearchResults(event: Event, term: string, resultCount: any) {
520
+ trackGTM(event.target!, "custEv_search", {
521
+ search_term: term,
522
+ search_category: "",
523
+ search_type: "site search",
524
+ search_result_count: resultCount
525
+ });
526
+ }
186
527
  }
@@ -1,5 +1,5 @@
1
- @import "helpers/reset";
2
- @import "helpers/text";
1
+ @import "dxHelpers/reset";
2
+ @import "dxHelpers/text";
3
3
 
4
4
  :host {
5
5
  --dx-c-section-padding-vertical: var(--dx-g-spacing-5xl);
@@ -8,6 +8,12 @@
8
8
  --dx-c-section-padding-right: var(--dx-c-section-padding-horizontal);
9
9
  --dx-c-section-padding-top: var(--dx-c-section-padding-vertical);
10
10
  --dx-c-section-padding-bottom: var(--dx-c-section-padding-vertical);
11
+ --dx-c-section-heading-margin-bottom: var(--dx-g-spacing-2xl);
12
+ --dx-c-section-cta-color: var(--dx-g-blue-vibrant-50);
13
+ --dx-c-section-cta-inline-hover-color: var(--dx-g-blue-vibrant-30);
14
+ --dx-c-section-position: relative;
15
+ --dx-c-section-graphic-margin-top: var(--graphic-height);
16
+ --dx-c-section-graphic-margin-bottom: var(--graphic-height);
11
17
  }
12
18
 
13
19
  .section {
@@ -15,7 +21,7 @@
15
21
  --graphic-height: 5.563vw;
16
22
  --graphic-vertical-padding: 0.14vw;
17
23
 
18
- position: relative;
24
+ position: var(--dx-c-section-position);
19
25
  display: flex;
20
26
  flex-direction: column;
21
27
  background: var(--dx-c-section-background-color);
@@ -30,11 +36,11 @@
30
36
  }
31
37
 
32
38
  .section.graphic-top:not(.graphic-overlap) {
33
- margin-top: var(--graphic-height);
39
+ margin-top: var(--dx-c-section-graphic-margin-top);
34
40
  }
35
41
 
36
42
  .section.graphic-bottom:not(.graphic-overlap) {
37
- margin-bottom: var(--graphic-height);
43
+ margin-bottom: var(--dx-c-section-graphic-margin-bottom);
38
44
  }
39
45
 
40
46
  .background-graphic {
@@ -58,10 +64,18 @@
58
64
  max-width: 800px;
59
65
  }
60
66
 
67
+ .dx-text-display-custom {
68
+ color: var(--dx-c-section-heading-font-color, --dx-g-text-heading-color);
69
+ font-family: var(--dx-c-section-heading-font-family, --dx-g-font-display);
70
+ font-size: var(--dx-c-section-heading-font-size, --dx-g-text-3xl);
71
+ letter-spacing: var(--dx-c-section-heading-letter-spacing, -0.4px);
72
+ line-height: var(--dx-c-section-heading-line-height, 40px);
73
+ }
74
+
61
75
  .text {
62
76
  display: flex;
63
77
  flex-direction: column;
64
- margin-bottom: var(--dx-g-spacing-2xl);
78
+ margin-bottom: var(--dx-c-section-heading-margin-bottom);
65
79
  z-index: 100;
66
80
  }
67
81
 
@@ -69,7 +83,7 @@
69
83
  margin-bottom: var(--dx-g-spacing-md);
70
84
  }
71
85
 
72
- .text > .label {
86
+ .text > .label:not(:last-child) {
73
87
  margin-bottom: var(--dx-g-spacing-lg);
74
88
  }
75
89
 
@@ -77,6 +91,19 @@
77
91
  z-index: 50;
78
92
  }
79
93
 
94
+ .cta {
95
+ --dx-c-button-primary-color: var(--dx-c-section-cta-color);
96
+ --dx-c-button-inline-color-hover: var(
97
+ --dx-c-section-cta-inline-hover-color
98
+ );
99
+ }
100
+
101
+ .cta-inline {
102
+ display: flex;
103
+ justify-content: space-between;
104
+ max-width: unset;
105
+ }
106
+
80
107
  /* sections with a swoop and center alignment should not left align as it encroaches on the graphic */
81
108
  .section.align-center.graphic-top .text {
82
109
  text-align: center;
@@ -127,4 +154,10 @@
127
154
  letter-spacing: -0.6px;
128
155
  line-height: 40px;
129
156
  }
157
+
158
+ .heading.dx-text-display-4 {
159
+ font-size: var(--dx-g-text-xl);
160
+ letter-spacing: -0.6px;
161
+ line-height: 32px;
162
+ }
130
163
  }
@@ -2,7 +2,7 @@
2
2
  <div class={className} style={style} part="container">
3
3
  <svg
4
4
  class="background-graphic background-graphic-top"
5
- if:true={topGraphic}
5
+ lwc:if={topGraphic}
6
6
  preserveAspectRatio="none"
7
7
  width="1438px"
8
8
  height="83px"
@@ -26,12 +26,42 @@
26
26
  </g>
27
27
  </svg>
28
28
 
29
- <div part="text" class="text" if:true={hasText}>
30
- <span class="label dx-text-heading-6" if:true={label}>{label}</span>
31
- <h2 class={headingClassName} if:true={title}>{title}</h2>
32
- <span class="subtitle dx-text-body-1" if:true={subtitle}>
33
- {subtitle}
29
+ <div part="text" class="text" lwc:if={hasText}>
30
+ <span class="label dx-text-display-8" lwc:if={label}>{label}</span>
31
+ <h2 class={headingClassName} lwc:if={header}>
32
+ {header}
33
+ <template lwc:if={ctaBtnInline}>
34
+ <dx-button
35
+ class="cta"
36
+ lwc:if={ctaLabel}
37
+ href={ctaHref}
38
+ variant={ctaBtnVariant}
39
+ icon-symbol={ctaBtnSymbol}
40
+ target={ctaBtnTarget}
41
+ onclick={handleLabelClick}
42
+ >
43
+ {ctaLabel}
44
+ </dx-button>
45
+ </template>
46
+ </h2>
47
+ <span class={subtitleClassName} lwc:if={subtitle}>
48
+ <dx-formatted-rich-text
49
+ value={subtitle}
50
+ ></dx-formatted-rich-text>
34
51
  </span>
52
+ <template lwc:if={ctaNotInline}>
53
+ <dx-button
54
+ class="cta"
55
+ lwc:if={ctaLabel}
56
+ href={ctaHref}
57
+ variant={ctaBtnVariant}
58
+ icon-symbol={ctaBtnSymbol}
59
+ target={ctaBtnTarget}
60
+ onclick={handleLabelClick}
61
+ >
62
+ {ctaLabel}
63
+ </dx-button>
64
+ </template>
35
65
  </div>
36
66
  <div part="content" class="content">
37
67
  <slot></slot>
@@ -39,7 +69,7 @@
39
69
 
40
70
  <svg
41
71
  class="background-graphic background-graphic-bottom"
42
- if:true={bottomGraphic}
72
+ lwc:if={bottomGraphic}
43
73
  preserveAspectRatio="none"
44
74
  width="1438px"
45
75
  height="83px"