@salesforcedevs/dx-components 0.3.12 → 0.3.14-banner-alpha1

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 (495) hide show
  1. package/lwc.config.json +56 -19
  2. package/package.json +20 -12
  3. package/src/assets/icons/salesforcebrand-sprite/svg/symbols.svg +528 -79
  4. package/src/assets/svg/big-moon.svg +1 -0
  5. package/src/assets/svg/blue-circle.svg +3 -0
  6. package/src/assets/svg/docs-empty-state-small.svg +72 -0
  7. package/src/assets/svg/featured-demo-art-blank.svg +76 -0
  8. package/src/assets/svg/login-widget-bg.png +0 -0
  9. package/src/assets/svg/no-results-combined.svg +80 -0
  10. package/src/assets/svg/sidebar-item-loading.svg +3 -0
  11. package/src/assets/svg/sidebar-loading.svg +34 -0
  12. package/src/assets/svg/slack-cta-podcast-background-left.svg +28 -0
  13. package/src/assets/svg/slack-cta-podcast-background-right.svg +38 -0
  14. package/src/assets/svg/subscribe-background-left.svg +14 -0
  15. package/src/assets/svg/subscribe-background-right.svg +11 -0
  16. package/src/assets/svg/trial-left.svg +6 -0
  17. package/src/assets/svg/trial-right.svg +26 -0
  18. package/src/modules/dx/banner/banner.css +31 -457
  19. package/src/modules/dx/banner/banner.html +9 -37
  20. package/src/modules/dx/banner/banner.ts +7 -125
  21. package/src/modules/dx/breadcrumbs/breadcrumbs.css +18 -22
  22. package/src/modules/dx/breadcrumbs/breadcrumbs.html +7 -9
  23. package/src/modules/dx/breadcrumbs/breadcrumbs.ts +47 -32
  24. package/src/modules/dx/button/button.css +46 -19
  25. package/src/modules/dx/button/button.ts +6 -1
  26. package/src/modules/dx/buttonToggle/buttonToggle.css +50 -0
  27. package/src/modules/dx/buttonToggle/buttonToggle.html +17 -0
  28. package/src/modules/dx/buttonToggle/buttonToggle.ts +75 -0
  29. package/src/modules/dx/cardBlogPost/cardBlogPost.css +2 -2
  30. package/src/modules/dx/cardCallout/cardCallout.css +10 -4
  31. package/src/modules/dx/cardCallout/cardCallout.ts +13 -9
  32. package/src/modules/dx/cardContent/cardContent.css +8 -5
  33. package/src/modules/dx/cardContent/cardContent.html +4 -1
  34. package/src/modules/dx/cardContent/cardContent.ts +4 -2
  35. package/src/modules/dx/cardDemo/cardDemo.css +1 -1
  36. package/src/modules/dx/cardDocs/cardDocs.css +4 -3
  37. package/src/modules/dx/cardDocs/cardDocs.html +4 -1
  38. package/src/modules/dx/cardDocs/cardDocs.ts +1 -1
  39. package/src/modules/dx/cardEvent/cardEvent.css +21 -3
  40. package/src/modules/dx/cardEvent/cardEvent.html +18 -4
  41. package/src/modules/dx/cardEvent/cardEvent.ts +8 -0
  42. package/src/modules/dx/cardExpanded/cardExpanded.css +50 -0
  43. package/src/modules/dx/cardExpanded/cardExpanded.html +31 -0
  44. package/src/modules/dx/cardExpanded/cardExpanded.ts +44 -0
  45. package/src/modules/dx/cardGridDocs/cardGridDocs.css +74 -0
  46. package/src/modules/dx/cardGridDocs/cardGridDocs.html +67 -0
  47. package/src/modules/dx/cardGridDocs/cardGridDocs.ts +86 -0
  48. package/src/modules/dx/cardMinimal/cardMinimal.css +31 -0
  49. package/src/modules/dx/cardMinimal/cardMinimal.html +8 -0
  50. package/src/modules/dx/cardMinimal/cardMinimal.ts +3 -0
  51. package/src/modules/dx/cardNews/cardNews.css +5 -5
  52. package/src/modules/dx/cardNews/cardNews.html +2 -0
  53. package/src/modules/dx/cardNews/cardNews.ts +16 -1
  54. package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.css +3 -3
  55. package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.html +1 -1
  56. package/src/modules/dx/cardSmall/cardSmall.css +7 -3
  57. package/src/modules/dx/cardSmall/cardSmall.ts +1 -1
  58. package/src/modules/dx/cardTitle/cardTitle.css +5 -3
  59. package/src/modules/dx/cardTitle/cardTitle.html +18 -16
  60. package/src/modules/dx/cardTrailheadModule/cardTrailheadModule.css +2 -2
  61. package/src/modules/dx/cardTrial/cardTrial.css +130 -0
  62. package/src/modules/dx/cardTrial/cardTrial.html +115 -0
  63. package/src/modules/dx/cardTrial/cardTrial.ts +102 -0
  64. package/src/modules/dx/cardTrialExpanded/cardTrialExpanded.css +149 -0
  65. package/src/modules/dx/cardTrialExpanded/cardTrialExpanded.html +85 -0
  66. package/src/modules/dx/cardTrialExpanded/cardTrialExpanded.ts +67 -0
  67. package/src/modules/dx/cardVideoPreview/cardVideoPreview.css +2 -2
  68. package/src/modules/dx/cardVideoPreview/cardVideoPreview.html +2 -0
  69. package/src/modules/dx/cardVideoPreview/cardVideoPreview.ts +2 -1
  70. package/src/modules/dx/checkbox/checkbox.css +39 -9
  71. package/src/modules/dx/checkbox/checkbox.html +24 -11
  72. package/src/modules/dx/checkbox/checkbox.ts +38 -5
  73. package/src/modules/dx/checkboxGroup/checkboxGroup.css +1 -1
  74. package/src/modules/dx/checkboxGroup/checkboxGroup.ts +1 -1
  75. package/src/modules/dx/checkboxNative/checkboxNative.css +21 -0
  76. package/src/modules/dx/checkboxNative/checkboxNative.html +14 -0
  77. package/src/modules/dx/checkboxNative/checkboxNative.ts +39 -0
  78. package/src/modules/dx/codeBlock/codeBlock.css +2 -2
  79. package/src/modules/dx/codeBlock/codeBlock.html +6 -4
  80. package/src/modules/dx/codeBlock/codeBlock.ts +91 -53
  81. package/src/modules/dx/codeBlock/darkTheme.css +0 -1
  82. package/src/modules/dx/codeBlock/lightTheme.css +0 -1
  83. package/src/modules/dx/dropdown/dropdown.css +7 -2
  84. package/src/modules/dx/dropdown/dropdown.html +20 -13
  85. package/src/modules/dx/dropdown/dropdown.ts +51 -24
  86. package/src/modules/dx/dropdownOption/dropdownOption.css +121 -3
  87. package/src/modules/dx/dropdownOption/dropdownOption.html +4 -0
  88. package/src/modules/dx/dropdownOption/dropdownOption.ts +43 -10
  89. package/src/modules/dx/emptyState/emptyState.css +48 -15
  90. package/src/modules/dx/emptyState/emptyState.html +6 -4
  91. package/src/modules/dx/emptyState/emptyState.ts +11 -20
  92. package/src/modules/dx/feature/feature.css +31 -2
  93. package/src/modules/dx/feature/feature.html +19 -3
  94. package/src/modules/dx/feature/feature.ts +8 -3
  95. package/src/modules/dx/featuredContentHeader/featuredContentHeader.css +105 -41
  96. package/src/modules/dx/featuredContentHeader/featuredContentHeader.html +107 -71
  97. package/src/modules/dx/featuredContentHeader/featuredContentHeader.ts +41 -18
  98. package/src/modules/dx/featuredContentHeader/svgs.ts +10 -497
  99. package/src/modules/dx/featuresList/featuresList.css +3 -3
  100. package/src/modules/dx/featuresList/featuresList.html +15 -10
  101. package/src/modules/dx/featuresList/featuresList.ts +1 -1
  102. package/src/modules/dx/filterMenu/filterMenu.css +138 -0
  103. package/src/modules/dx/filterMenu/filterMenu.html +116 -0
  104. package/src/modules/dx/filterMenu/filterMenu.ts +119 -0
  105. package/src/modules/dx/footer/footer.css +6 -10
  106. package/src/modules/dx/footer/footer.html +38 -29
  107. package/src/modules/dx/footer/footer.ts +67 -24
  108. package/src/modules/dx/footer/links.ts +110 -42
  109. package/src/modules/dx/footerOption/footerOption.css +4 -0
  110. package/src/modules/dx/footerOption/footerOption.ts +5 -4
  111. package/src/modules/dx/formattedDateTime/formattedDateTime.ts +5 -0
  112. package/src/modules/dx/grid/grid.css +7 -10
  113. package/src/modules/dx/grid/grid.md +14 -0
  114. package/src/modules/dx/grid/grid.ts +7 -9
  115. package/src/modules/dx/groupText/groupText.css +2 -2
  116. package/src/modules/dx/groupText/groupText.html +6 -1
  117. package/src/modules/dx/groupText/groupText.ts +21 -2
  118. package/src/modules/dx/header/header.css +25 -166
  119. package/src/modules/dx/header/header.html +37 -26
  120. package/src/modules/dx/header/header.ts +10 -180
  121. package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.css +29 -12
  122. package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.ts +6 -6
  123. package/src/modules/dx/headerMobileNavMenuOption/headerMobileNavMenuOption.ts +5 -4
  124. package/src/modules/dx/headerNav/headerNav.css +1 -45
  125. package/src/modules/dx/headerNav/headerNav.html +23 -20
  126. package/src/modules/dx/headerNav/headerNav.ts +32 -9
  127. package/src/modules/dx/headerSearch/headerSearch.css +1 -37
  128. package/src/modules/dx/headerSearch/headerSearch.html +6 -25
  129. package/src/modules/dx/headerSearch/headerSearch.ts +47 -50
  130. package/src/modules/dx/helmet/helmet.css +2 -2
  131. package/src/modules/dx/hr/hr.css +11 -9
  132. package/src/modules/dx/hr/hr.html +6 -12
  133. package/src/modules/dx/hr/hr.ts +11 -12
  134. package/src/modules/dx/icon/icon.css +1 -1
  135. package/src/modules/dx/icon/icon.ts +1 -1
  136. package/src/modules/dx/iconBadge/iconBadge.css +13 -1
  137. package/src/modules/dx/iconBadge/iconBadge.html +2 -7
  138. package/src/modules/dx/iconBadge/iconBadge.ts +16 -6
  139. package/src/modules/dx/imageAndLabel/imageAndLabel.css +3 -4
  140. package/src/modules/dx/imageAndLabel/imageAndLabel.html +14 -2
  141. package/src/modules/dx/input/input.css +68 -4
  142. package/src/modules/dx/input/input.html +27 -2
  143. package/src/modules/dx/input/input.ts +108 -32
  144. package/src/modules/dx/interactiveImage/interactiveImage.css +2 -2
  145. package/src/modules/dx/logo/logo.css +32 -0
  146. package/src/modules/dx/logo/logo.html +6 -0
  147. package/src/modules/dx/logo/logo.ts +8 -0
  148. package/src/modules/dx/metadataBadge/metadataBadge.css +41 -0
  149. package/src/modules/dx/metadataBadge/metadataBadge.html +5 -0
  150. package/src/modules/dx/metadataBadge/metadataBadge.ts +24 -0
  151. package/src/modules/dx/modal/modal.css +40 -0
  152. package/src/modules/dx/modal/modal.html +10 -0
  153. package/src/modules/dx/modal/modal.ts +50 -0
  154. package/src/modules/dx/modalDrawer/modalDrawer.css +41 -0
  155. package/src/modules/dx/modalDrawer/modalDrawer.html +11 -0
  156. package/src/modules/dx/modalDrawer/modalDrawer.ts +33 -0
  157. package/src/modules/dx/pagination/pagination.css +2 -3
  158. package/src/modules/dx/pagination/pagination.ts +50 -8
  159. package/src/modules/dx/podcastHost/podcastHost.css +2 -2
  160. package/src/modules/dx/podcastHost/podcastHost.html +2 -2
  161. package/src/modules/dx/popover/popover.css +29 -4
  162. package/src/modules/dx/popover/popover.html +2 -2
  163. package/src/modules/dx/popover/popover.ts +121 -86
  164. package/src/modules/dx/radioGroup/radioGroup.css +1 -1
  165. package/src/modules/dx/radioGroup/radioGroup.ts +1 -1
  166. package/src/modules/dx/searchResults/coveo.css +314 -111
  167. package/src/modules/dx/searchResults/searchResults.css +2 -2
  168. package/src/modules/dx/searchResults/searchResults.html +10 -11
  169. package/src/modules/dx/searchResults/searchResults.ts +41 -20
  170. package/src/modules/dx/section/section.css +15 -12
  171. package/src/modules/dx/section/section.html +1 -1
  172. package/src/modules/dx/section/section.ts +11 -11
  173. package/src/modules/dx/sectionSignup/sectionSignup.html +0 -1
  174. package/src/modules/dx/select/select.css +221 -0
  175. package/src/modules/dx/select/select.html +57 -0
  176. package/src/modules/dx/select/select.ts +141 -0
  177. package/src/modules/dx/sidebar/sidebar.css +27 -144
  178. package/src/modules/dx/sidebar/sidebar.html +63 -40
  179. package/src/modules/dx/sidebar/sidebar.ts +156 -69
  180. package/src/modules/dx/sidebarOld/sidebarOld.css +16 -0
  181. package/src/modules/dx/sidebarOld/sidebarOld.html +74 -0
  182. package/src/modules/dx/sidebarOld/sidebarOld.ts +194 -0
  183. package/src/modules/dx/sidebarSearch/sidebarSearch.css +3 -0
  184. package/src/modules/dx/sidebarSearch/sidebarSearch.html +26 -0
  185. package/src/modules/dx/sidebarSearch/sidebarSearch.ts +463 -0
  186. package/src/modules/dx/sidebarSearchResult/sidebarSearchResult.css +36 -0
  187. package/src/modules/dx/sidebarSearchResult/sidebarSearchResult.html +14 -0
  188. package/src/modules/dx/sidebarSearchResult/sidebarSearchResult.ts +70 -0
  189. package/src/modules/dx/skipNavLink/skipNavLink.css +21 -0
  190. package/src/modules/dx/skipNavLink/skipNavLink.html +3 -0
  191. package/src/modules/dx/skipNavLink/skipNavLink.ts +3 -0
  192. package/src/modules/dx/socials/socials.ts +1 -1
  193. package/src/modules/dx/spinner/spinner.css +743 -0
  194. package/src/modules/dx/spinner/spinner.html +6 -0
  195. package/src/modules/dx/spinner/spinner.ts +20 -0
  196. package/src/modules/dx/tab/tab.css +88 -17
  197. package/src/modules/dx/tab/tab.html +10 -12
  198. package/src/modules/dx/tab/tab.ts +35 -28
  199. package/src/modules/dx/tabPanel/tabPanel.css +12 -1
  200. package/src/modules/dx/tabPanelItem/tabPanelItem.css +39 -0
  201. package/src/modules/dx/tabPanelItem/tabPanelItem.html +15 -0
  202. package/src/modules/dx/tabPanelItem/tabPanelItem.ts +39 -0
  203. package/src/modules/dx/tabPanelList/tabPanelList.css +35 -0
  204. package/src/modules/dx/tabPanelList/tabPanelList.html +47 -0
  205. package/src/modules/dx/{tabs/tabs.ts → tabPanelList/tabPanelList.ts} +56 -4
  206. package/src/modules/dx/{tabs → tabPanelList}/uniqueId.ts +0 -0
  207. package/src/modules/dx/tbidAvatarButton/tbidAvatarButton.css +33 -0
  208. package/src/modules/dx/tbidAvatarButton/tbidAvatarButton.html +53 -0
  209. package/src/modules/dx/tbidAvatarButton/tbidAvatarButton.ts +440 -0
  210. package/src/modules/dx/toc/toc.css +16 -3
  211. package/src/modules/dx/toc/toc.html +1 -0
  212. package/src/modules/dx/toc/toc.ts +1 -1
  213. package/src/modules/dx/tooltip/microtip.css +269 -0
  214. package/src/modules/dx/tooltip/tooltip.css +23 -10
  215. package/src/modules/dx/tooltip/tooltip.html +1 -1
  216. package/src/modules/dx/tooltip/tooltip.ts +3 -39
  217. package/src/modules/dx/topics/topics.css +26 -0
  218. package/src/modules/dx/topics/topics.html +12 -0
  219. package/src/modules/dx/topics/topics.ts +25 -0
  220. package/src/modules/dx/tree/tree.css +1 -1
  221. package/src/modules/dx/tree/tree.ts +9 -1
  222. package/src/modules/dx/tree/treeHandler.ts +1 -0
  223. package/src/modules/dx/treeItem/treeItem.css +12 -1
  224. package/src/modules/dx/treeItem/treeItem.html +10 -11
  225. package/src/modules/dx/treeItem/treeItem.ts +64 -9
  226. package/src/modules/dx/treeTile/treeTile.css +63 -54
  227. package/src/modules/dx/treeTile/treeTile.html +13 -9
  228. package/src/modules/dx/treeTile/treeTile.ts +25 -5
  229. package/src/modules/dx/typeBadge/typeBadge.css +20 -43
  230. package/src/modules/dx/typeBadge/typeBadge.html +7 -1
  231. package/src/modules/dx/typeBadge/typeBadge.ts +155 -8
  232. package/src/modules/dx/vimeoPlayer/vimeoPlayer.css +1 -0
  233. package/src/modules/dx/vimeoPlayer/vimeoPlayer.html +3 -0
  234. package/src/modules/dx/vimeoPlayer/vimeoPlayer.ts +31 -0
  235. package/src/modules/dxBaseElements/archiveCard/archiveCard.ts +31 -0
  236. package/src/modules/dxBaseElements/headerBase/headerBase.ts +215 -0
  237. package/src/modules/dxBaseElements/matchMediaElement/matchMediaElement.ts +59 -0
  238. package/src/modules/dxBaseElements/sidebarBase/sidebarBase.ts +65 -0
  239. package/src/modules/dxConstants/brands/brands.ts +14 -0
  240. package/src/modules/dxConstants/colors/colors.ts +14 -0
  241. package/src/modules/dxConstants/contentTypes/contentTypes.ts +10 -0
  242. package/src/modules/{helpers → dxHelpers}/animations/animations.css +0 -0
  243. package/src/modules/{helpers → dxHelpers}/button/button.css +0 -0
  244. package/src/modules/{helpers → dxHelpers}/card/card.css +36 -13
  245. package/src/modules/{helpers → dxHelpers}/code/code.css +0 -0
  246. package/src/modules/dxHelpers/commonHeader/commonHeader.css +131 -0
  247. package/src/modules/dxHelpers/commonSidebar/commonSidebar.css +145 -0
  248. package/src/modules/dxHelpers/commonTreeItem/commonTreeItem.css +21 -0
  249. package/src/modules/{helpers → dxHelpers}/reset/reset.css +0 -0
  250. package/src/modules/dxHelpers/scrollbar/scrollbar.css +31 -0
  251. package/src/modules/{helpers → dxHelpers}/table/table.css +24 -8
  252. package/src/modules/{helpers → dxHelpers}/text/text.css +48 -0
  253. package/src/modules/dxUtils/analytics/analytics.ts +24 -0
  254. package/src/modules/dxUtils/async/async.ts +45 -0
  255. package/src/modules/dxUtils/browser/browser.ts +17 -0
  256. package/src/modules/dxUtils/constants/breakpoints.ts +9 -0
  257. package/src/modules/dxUtils/constants/constants.ts +1 -0
  258. package/src/modules/dxUtils/coveo/coveo.ts +70 -0
  259. package/src/modules/dxUtils/css/css.ts +53 -0
  260. package/src/modules/dxUtils/dates/dates.ts +60 -0
  261. package/src/modules/{utils → dxUtils}/devices/devices.ts +0 -0
  262. package/src/modules/dxUtils/highlight/highlight.ts +32 -0
  263. package/src/modules/dxUtils/language/language.ts +21 -0
  264. package/src/modules/dxUtils/lwc/lwc.ts +9 -0
  265. package/src/modules/{utils → dxUtils}/normalizers/normalizers.ts +15 -23
  266. package/src/modules/{utils → dxUtils}/options/options.ts +13 -9
  267. package/src/modules/{utils → dxUtils}/prismjs/prismjs.html +0 -0
  268. package/src/modules/dxUtils/prismjs/prismjs.ts +3937 -0
  269. package/src/modules/dxUtils/queryCoordinator/queryCoordinator.ts +43 -0
  270. package/src/modules/dxUtils/recentSearches/recentSearches.ts +57 -0
  271. package/src/modules/dxUtils/regexps/regexps.ts +5 -0
  272. package/src/modules/dxUtils/seo/seo.ts +4 -0
  273. package/src/modules/{utils → dxUtils}/slot/slot.ts +0 -0
  274. package/src/modules/{utils → dxUtils}/wordpress/wordpress.ts +0 -0
  275. package/LICENSE +0 -12
  276. package/src/modules/dx/banner/__tests__/banner.test.ts +0 -80
  277. package/src/modules/dx/banner/banner.stories.ts +0 -121
  278. package/src/modules/dx/banner/svgs.ts +0 -1107
  279. package/src/modules/dx/brandThemeProvider/__tests__/brandThemeProvider.test.ts +0 -49
  280. package/src/modules/dx/brandThemeProvider/brandThemeProvider.stories.ts +0 -321
  281. package/src/modules/dx/breadcrumbs/__tests__/breadcrumbs.test.ts +0 -82
  282. package/src/modules/dx/breadcrumbs/__tests__/mockProps.ts +0 -28
  283. package/src/modules/dx/breadcrumbs/breadcrumbs.stories.ts +0 -13
  284. package/src/modules/dx/button/__tests__/button.test.ts +0 -107
  285. package/src/modules/dx/button/button.stories.ts +0 -150
  286. package/src/modules/dx/cardBlogPost/__tests__/cardBlogPost.test.ts +0 -27
  287. package/src/modules/dx/cardBlogPost/__tests__/mockProps.ts +0 -12
  288. package/src/modules/dx/cardBlogPost/cardBlogPost.stories.ts +0 -164
  289. package/src/modules/dx/cardBlogPostProvider/__tests__/cardBlogPostProvider.test.ts +0 -34
  290. package/src/modules/dx/cardBlogPostProvider/__tests__/mockWordpressPosts.ts +0 -44
  291. package/src/modules/dx/cardBlogPostProvider/cardBlogPostProvider.css +0 -3
  292. package/src/modules/dx/cardBlogPostProvider/cardBlogPostProvider.html +0 -16
  293. package/src/modules/dx/cardBlogPostProvider/cardBlogPostProvider.ts +0 -29
  294. package/src/modules/dx/cardCallout/__tests__/cardCallout.test.ts +0 -23
  295. package/src/modules/dx/cardCallout/__tests__/mockProps.ts +0 -7
  296. package/src/modules/dx/cardCallout/cardCallout.stories.ts +0 -33
  297. package/src/modules/dx/cardContent/__tests__/cardContent.test.ts +0 -112
  298. package/src/modules/dx/cardContent/__tests__/mockProps.ts +0 -13
  299. package/src/modules/dx/cardContent/cardContent.stories.ts +0 -109
  300. package/src/modules/dx/cardDemo/cardDemo.stories.ts +0 -115
  301. package/src/modules/dx/cardDocs/__tests__/cardDocs.test.ts +0 -48
  302. package/src/modules/dx/cardDocs/__tests__/mockProps.ts +0 -9
  303. package/src/modules/dx/cardDocs/cardDocs.stories.ts +0 -299
  304. package/src/modules/dx/cardEvent/__tests__/cardEvent.test.ts +0 -70
  305. package/src/modules/dx/cardEvent/__tests__/mockProps.ts +0 -9
  306. package/src/modules/dx/cardEvent/cardEvent.stories.ts +0 -143
  307. package/src/modules/dx/cardNews/__tests__/cardNews.test.ts +0 -59
  308. package/src/modules/dx/cardNews/__tests__/mockProps.ts +0 -7
  309. package/src/modules/dx/cardNews/cardNews.stories.ts +0 -115
  310. package/src/modules/dx/cardPodcastEpisode/__tests__/cardPodcastEpisode.test.ts +0 -70
  311. package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.stories.ts +0 -31
  312. package/src/modules/dx/cardPodcastEpisodeProvider/__tests__/cardPodcastEpisodeProvider.test.ts +0 -36
  313. package/src/modules/dx/cardPodcastEpisodeProvider/__tests__/mockWordpressEpisodes.ts +0 -50
  314. package/src/modules/dx/cardPodcastEpisodeProvider/cardPodcastEpisodeProvider.css +0 -3
  315. package/src/modules/dx/cardPodcastEpisodeProvider/cardPodcastEpisodeProvider.html +0 -12
  316. package/src/modules/dx/cardPodcastEpisodeProvider/cardPodcastEpisodeProvider.ts +0 -29
  317. package/src/modules/dx/cardSmall/__tests__/cardSmall.test.ts +0 -70
  318. package/src/modules/dx/cardSmall/__tests__/mockProps.ts +0 -8
  319. package/src/modules/dx/cardSmall/cardSmall.stories.ts +0 -166
  320. package/src/modules/dx/cardTitle/__tests__/cardTitle.test.ts +0 -46
  321. package/src/modules/dx/cardTrailheadModule/__tests__/cardTrailheadModule.test.ts +0 -18
  322. package/src/modules/dx/cardTrailheadModule/__tests__/mockProps.ts +0 -11
  323. package/src/modules/dx/cardTrailheadModule/cardTrailheadModule.stories.ts +0 -122
  324. package/src/modules/dx/cardVideoPreview/__tests__/cardVideoPreview.test.ts +0 -22
  325. package/src/modules/dx/cardVideoPreview/__tests__/mockProps.ts +0 -11
  326. package/src/modules/dx/cardVideoPreview/cardVideoPreview.stories.ts +0 -132
  327. package/src/modules/dx/checkbox/__tests__/checkbox.test.ts +0 -56
  328. package/src/modules/dx/checkbox/__tests__/mockProps.ts +0 -5
  329. package/src/modules/dx/checkbox/checkbox.stories.ts +0 -12
  330. package/src/modules/dx/checkboxGroup/__tests__/checkboxGroup.test.ts +0 -80
  331. package/src/modules/dx/checkboxGroup/__tests__/mockProps.ts +0 -14
  332. package/src/modules/dx/checkboxGroup/checkboxGroup.stories.ts +0 -33
  333. package/src/modules/dx/codeBlock/__tests__/codeBlock.test.ts +0 -96
  334. package/src/modules/dx/codeBlock/__tests__/mockProps.ts +0 -157
  335. package/src/modules/dx/codeBlock/codeBlock.stories.ts +0 -216
  336. package/src/modules/dx/dropdown/__tests__/dropdown.test.ts +0 -194
  337. package/src/modules/dx/dropdown/__tests__/mockNestedOptions.ts +0 -96
  338. package/src/modules/dx/dropdown/__tests__/mockOptions.ts +0 -10
  339. package/src/modules/dx/dropdown/__tests__/mockProps.ts +0 -6
  340. package/src/modules/dx/dropdown/dropdown.stories.ts +0 -75
  341. package/src/modules/dx/dropdownOption/__tests__/dropdownOption.test.ts +0 -82
  342. package/src/modules/dx/dropdownOption/__tests__/mockProps.ts +0 -20
  343. package/src/modules/dx/emptyState/__tests__/emptyState.test.ts +0 -33
  344. package/src/modules/dx/emptyState/__tests__/mockProps.ts +0 -6
  345. package/src/modules/dx/emptyState/emptyState.stories.ts +0 -65
  346. package/src/modules/dx/feature/__tests__/feature.test.ts +0 -30
  347. package/src/modules/dx/feature/__tests__/mockProps.ts +0 -8
  348. package/src/modules/dx/featureGrid/__tests__/featureGrid.test.ts +0 -21
  349. package/src/modules/dx/featureGrid/featureGrid.stories.ts +0 -81
  350. package/src/modules/dx/featuredContentHeader/__tests__/featuredContentHeader.test.ts +0 -113
  351. package/src/modules/dx/featuredContentHeader/__tests__/mockProps.ts +0 -43
  352. package/src/modules/dx/featuredContentHeader/featuredContentHeader.stories.ts +0 -153
  353. package/src/modules/dx/featuresList/__tests__/featuresList.test.ts +0 -47
  354. package/src/modules/dx/featuresList/__tests__/mockProps.ts +0 -17
  355. package/src/modules/dx/featuresList/featuresList.stories.ts +0 -30
  356. package/src/modules/dx/footer/__tests__/footer.test.ts +0 -136
  357. package/src/modules/dx/footer/__tests__/mockLocales.ts +0 -7
  358. package/src/modules/dx/footer/footer.stories.ts +0 -70
  359. package/src/modules/dx/footerOption/__tests__/footerOption.test.ts +0 -34
  360. package/src/modules/dx/footerOption/__tests__/mockProps.ts +0 -7
  361. package/src/modules/dx/formattedDateTime/__tests__/formattedDateTime.test.ts +0 -25
  362. package/src/modules/dx/formattedDateTime/__tests__/mockProps.ts +0 -13
  363. package/src/modules/dx/formattedDateTime/formattedDateTime.stories.ts +0 -103
  364. package/src/modules/dx/grid/__tests__/grid.test.ts +0 -45
  365. package/src/modules/dx/grid/grid.stories.ts +0 -128
  366. package/src/modules/dx/groupBio/__tests__/groupBio.test.ts +0 -82
  367. package/src/modules/dx/groupBio/__tests__/mockProps.ts +0 -15
  368. package/src/modules/dx/groupBio/groupBio.css +0 -49
  369. package/src/modules/dx/groupBio/groupBio.html +0 -29
  370. package/src/modules/dx/groupBio/groupBio.stories.ts +0 -66
  371. package/src/modules/dx/groupBio/groupBio.ts +0 -41
  372. package/src/modules/dx/groupText/__tests__/groupText.test.ts +0 -57
  373. package/src/modules/dx/groupText/__tests__/mockProps.ts +0 -35
  374. package/src/modules/dx/groupText/groupText.stories.ts +0 -81
  375. package/src/modules/dx/headTags/headTags.html +0 -1
  376. package/src/modules/dx/headTags/headTags.ts +0 -13
  377. package/src/modules/dx/header/__tests__/header.test.ts +0 -194
  378. package/src/modules/dx/header/__tests__/mockNavArchitects.ts +0 -169
  379. package/src/modules/dx/header/__tests__/mockNavDevelopers.ts +0 -419
  380. package/src/modules/dx/header/__tests__/mockNavs.ts +0 -115
  381. package/src/modules/dx/header/__tests__/mockProps.ts +0 -173
  382. package/src/modules/dx/header/header.stories.ts +0 -136
  383. package/src/modules/dx/headerMobileNavMenu/__tests__/headerMobileNavMenu.test.ts +0 -123
  384. package/src/modules/dx/headerMobileNavMenuOption/__tests__/headerMobileNavMenuOption.test.ts +0 -38
  385. package/src/modules/dx/headerNav/__tests__/headerNav.test.ts +0 -50
  386. package/src/modules/dx/headerNavOption/__tests__/headerNavOption.test.ts +0 -47
  387. package/src/modules/dx/headerNavOption/headerNavOption.css +0 -38
  388. package/src/modules/dx/headerNavOption/headerNavOption.html +0 -5
  389. package/src/modules/dx/headerNavOption/headerNavOption.ts +0 -15
  390. package/src/modules/dx/headerSearch/__tests__/headerSearch.test.ts +0 -273
  391. package/src/modules/dx/headerSearch/__tests__/mockData.ts +0 -11
  392. package/src/modules/dx/headerSearch/__tests__/mockProps.ts +0 -11
  393. package/src/modules/dx/headerSearch/scopes.ts +0 -10
  394. package/src/modules/dx/helmet/__tests__/helmet.test.ts +0 -53
  395. package/src/modules/dx/helmet/helmet.stories.ts +0 -53
  396. package/src/modules/dx/hr/__tests__/hr.test.ts +0 -77
  397. package/src/modules/dx/hr/__tests__/mockProps.ts +0 -18
  398. package/src/modules/dx/hr/hr.stories.ts +0 -55
  399. package/src/modules/dx/icon/__tests__/icon.test.ts +0 -54
  400. package/src/modules/dx/icon/icon.stories.ts +0 -98
  401. package/src/modules/dx/iconBadge/__tests__/iconBadge.test.ts +0 -17
  402. package/src/modules/dx/iconBadge/iconBadge.stories.ts +0 -32
  403. package/src/modules/dx/imageAndLabel/__tests__/imageAndLabel.test.ts +0 -39
  404. package/src/modules/dx/imageAndLabel/__tests__/mockProps.ts +0 -6
  405. package/src/modules/dx/imageAndLabel/imageAndLabel.stories.ts +0 -48
  406. package/src/modules/dx/input/__tests__/input.test.ts +0 -162
  407. package/src/modules/dx/input/input.stories.ts +0 -48
  408. package/src/modules/dx/instrumentation/__tests__/instrumentation.test.ts +0 -86
  409. package/src/modules/dx/instrumentation/instrumentation.html +0 -1
  410. package/src/modules/dx/instrumentation/instrumentation.ts +0 -116
  411. package/src/modules/dx/interactiveImage/__tests__/interactiveImage.test.ts +0 -76
  412. package/src/modules/dx/interactiveImage/__tests__/mockProps.ts +0 -42
  413. package/src/modules/dx/interactiveImage/interactiveImage.stories.ts +0 -31
  414. package/src/modules/dx/lazy/__tests__/lazy.test.ts +0 -43
  415. package/src/modules/dx/lazy/lazy.html +0 -5
  416. package/src/modules/dx/lazy/lazy.stories.ts +0 -132
  417. package/src/modules/dx/lazy/lazy.ts +0 -170
  418. package/src/modules/dx/pagination/__tests__/pagination.test.ts +0 -121
  419. package/src/modules/dx/pagination/pagination.stories.ts +0 -88
  420. package/src/modules/dx/podcastHost/__tests__/mockProps.ts +0 -8
  421. package/src/modules/dx/podcastHost/__tests__/podcastHost.test.ts +0 -21
  422. package/src/modules/dx/podcastHost/podcastHost.stories.ts +0 -17
  423. package/src/modules/dx/podcastPlayer/__tests__/podcastPlayer.test.ts +0 -20
  424. package/src/modules/dx/podcastPlayer/podcastPlayer.stories.ts +0 -13
  425. package/src/modules/dx/podcastSubscription/__tests__/podcastSubscription.test.ts +0 -16
  426. package/src/modules/dx/podcastSubscription/podcastSubscription.css +0 -92
  427. package/src/modules/dx/podcastSubscription/podcastSubscription.html +0 -24
  428. package/src/modules/dx/podcastSubscription/podcastSubscription.stories.ts +0 -23
  429. package/src/modules/dx/podcastSubscription/podcastSubscription.ts +0 -58
  430. package/src/modules/dx/popover/__tests__/popover.test.ts +0 -207
  431. package/src/modules/dx/popover/popover.stories.ts +0 -82
  432. package/src/modules/dx/radioGroup/__tests__/mockProps.ts +0 -12
  433. package/src/modules/dx/radioGroup/__tests__/radioGroup.test.ts +0 -42
  434. package/src/modules/dx/radioGroup/radioGroup.stories.ts +0 -25
  435. package/src/modules/dx/relativeDateTime/__tests__/mockProps.ts +0 -55
  436. package/src/modules/dx/relativeDateTime/__tests__/relativeDateTime.test.ts +0 -52
  437. package/src/modules/dx/relativeDateTime/relativeDateTime.stories.ts +0 -83
  438. package/src/modules/dx/searchResults/searchResults.stories.ts +0 -38
  439. package/src/modules/dx/section/__tests__/section.test.ts +0 -17
  440. package/src/modules/dx/section/section.stories.ts +0 -381
  441. package/src/modules/dx/sectionSignup/__tests__/sectionSignup.test.ts +0 -66
  442. package/src/modules/dx/sectionSignup/sectionSignup.stories.ts +0 -49
  443. package/src/modules/dx/sidebar/__tests__/mockProps.ts +0 -181
  444. package/src/modules/dx/sidebar/__tests__/sidebar.test.ts +0 -569
  445. package/src/modules/dx/sidebar/sidebar.stories.ts +0 -139
  446. package/src/modules/dx/socials/__tests__/socials.test.ts +0 -124
  447. package/src/modules/dx/socials/socials.stories.ts +0 -24
  448. package/src/modules/dx/tab/__tests__/mockProps.ts +0 -4
  449. package/src/modules/dx/tab/__tests__/tab.test.ts +0 -71
  450. package/src/modules/dx/tabPanel/__tests__/mockProps.ts +0 -4
  451. package/src/modules/dx/tabPanel/__tests__/tabPanel.test.ts +0 -46
  452. package/src/modules/dx/tabs/__tests__/mockProps.ts +0 -3
  453. package/src/modules/dx/tabs/__tests__/tabs.test.ts +0 -47
  454. package/src/modules/dx/tabs/tabs.css +0 -7
  455. package/src/modules/dx/tabs/tabs.html +0 -21
  456. package/src/modules/dx/tabs/tabs.stories.ts +0 -74
  457. package/src/modules/dx/toc/__tests__/mockProps.ts +0 -22
  458. package/src/modules/dx/toc/__tests__/toc.test.ts +0 -116
  459. package/src/modules/dx/toc/toc.stories.ts +0 -26
  460. package/src/modules/dx/tooltip/__tests__/tooltip.test.ts +0 -66
  461. package/src/modules/dx/tooltip/tippy.css +0 -1
  462. package/src/modules/dx/tooltip/tooltip.stories.ts +0 -65
  463. package/src/modules/dx/tree/__tests__/mockProps.ts +0 -215
  464. package/src/modules/dx/tree/__tests__/tree.test.ts +0 -357
  465. package/src/modules/dx/tree/__tests__/treeHandler.test.ts +0 -194
  466. package/src/modules/dx/tree/tree.stories.ts +0 -65
  467. package/src/modules/dx/treeItem/__tests__/mockProps.ts +0 -46
  468. package/src/modules/dx/treeItem/__tests__/treeItem.test.ts +0 -370
  469. package/src/modules/dx/treeTile/__tests__/mockProps.ts +0 -16
  470. package/src/modules/dx/treeTile/__tests__/treeTile.test.ts +0 -178
  471. package/src/modules/dx/typeBadge/__tests__/typeBadge.test.ts +0 -63
  472. package/src/modules/dx/typeBadge/typeBadge.stories.ts +0 -79
  473. package/src/modules/dx/typeBadgeGroup/__tests__/mockProps.ts +0 -11
  474. package/src/modules/dx/typeBadgeGroup/__tests__/typeBadgeGroup.test.ts +0 -76
  475. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.css +0 -12
  476. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.html +0 -11
  477. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.stories.ts +0 -19
  478. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.ts +0 -18
  479. package/src/modules/tests/buttonTest/buttonTest.html +0 -3
  480. package/src/modules/tests/buttonTest/buttonTest.ts +0 -3
  481. package/src/modules/tests/codeBlockTest/codeBlockTest.js +0 -4
  482. package/src/modules/tests/dropdownTest/dropdownTest.html +0 -5
  483. package/src/modules/tests/dropdownTest/dropdownTest.ts +0 -17
  484. package/src/modules/tests/featureGridTest/featureGridTest.html +0 -7
  485. package/src/modules/tests/featureGridTest/featureGridTest.ts +0 -5
  486. package/src/modules/tests/instrumentationTest/instrumentationTest.html +0 -4
  487. package/src/modules/tests/instrumentationTest/instrumentationTest.ts +0 -8
  488. package/src/modules/tests/popoverTest/popoverTest.html +0 -6
  489. package/src/modules/tests/popoverTest/popoverTest.ts +0 -5
  490. package/src/modules/utils/css/css.ts +0 -2
  491. package/src/modules/utils/jest/jest.ts +0 -13
  492. package/src/modules/utils/prismjs/prismjs.ts +0 -3225
  493. package/src/modules/utils/storybook/storybook.ts +0 -33
  494. package/src/modules/utils/tests/tests.ts +0 -14
  495. package/src/modules/utils/wordpress/__tests__/wordpress.test.ts +0 -15
@@ -1,5 +1,5 @@
1
1
  import { LightningElement, api } from "lwc";
2
- import { track } from "dx/instrumentation";
2
+ import { track } from "dxUtils/analytics";
3
3
 
4
4
  export default class HeaderMobileNavMenuOption extends LightningElement {
5
5
  @api href: string | null = null;
@@ -11,9 +11,10 @@ export default class HeaderMobileNavMenuOption extends LightningElement {
11
11
 
12
12
  private sendGtm(e: PointerEvent) {
13
13
  track(e.currentTarget, "custEv_topNavLinkClick", {
14
- heading_text: this.menuLabel || undefined,
15
- sub_heading_text: this.itemLabel || undefined,
16
- link_text: this.href || undefined
14
+ navHeading: this.menuLabel || undefined,
15
+ navSubHeading: this.itemLabel || undefined,
16
+ clickText: this.href || undefined,
17
+ pageLocation: window.location.pathname || undefined
17
18
  });
18
19
  }
19
20
  }
@@ -1,4 +1,4 @@
1
- @import "helpers/reset";
1
+ @import "dxHelpers/reset";
2
2
 
3
3
  a {
4
4
  text-decoration: none;
@@ -16,50 +16,6 @@ nav {
16
16
  position: relative;
17
17
  }
18
18
 
19
- .nav-list-item {
20
- position: relative;
21
- display: flex;
22
- align-items: center;
23
- height: var(--dx-g-spacing-xl);
24
- padding: 0 var(--dx-g-spacing-md);
25
- border: 0;
26
- border-radius: var(--dx-g-spacing-md);
27
- font-family: var(--dx-g-font-display);
28
- font-size: var(--dx-g-text-sm);
29
- white-space: nowrap;
30
- color: var(--dx-g-blue-vibrant-20);
31
- background: transparent;
32
- transition: var(--dx-g-transition-hue-1x);
33
- cursor: pointer;
34
- outline-offset: -1px;
35
- }
36
-
37
- .nav-list-item > span {
38
- margin-top: var(--dx-g-spacing-xs);
39
- }
40
-
41
- button.nav-list-item > dx-icon {
42
- margin-left: var(--dx-g-spacing-sm);
43
- color: var(--dx-g-blue-vibrant-20);
44
- }
45
-
46
- .nav-list-item:hover,
47
- .nav-list-item:active,
48
- button.nav-list-item[aria-expanded="true"] {
49
- background: var(--dx-g-brand-current-button-color-background-inactive);
50
- }
51
-
52
- .nav-list-item.state-active {
53
- background: var(--dx-g-brand-current-button-color-background-active);
54
- color: var(--dx-g-brand-current-color);
55
- }
56
-
57
- button.nav-list-item:hover > *:last-child,
58
- button.nav-list-item:active > *:last-child,
59
- button.nav-list-item[aria-expanded="true"] > *:last-child {
60
- transform: rotateX(180deg);
61
- }
62
-
63
19
  .nav-list-item-nav-menu {
64
20
  display: none;
65
21
  }
@@ -1,43 +1,46 @@
1
1
  <template>
2
- <nav role="navigation" aria-label="Navigation Bar">
2
+ <nav role="navigation" aria-label={ariaLabel}>
3
3
  <ul class="nav-list">
4
4
  <template for:each={navItems} for:item="navItem">
5
5
  <li key={navItem.id}>
6
- <dx-header-nav-option
7
- class-name={navItem.className}
6
+ <dx-tab
7
+ if:false={navItem.options}
8
+ is-active={navItem.isActive}
8
9
  label={navItem.label}
9
10
  href={navItem.link.href}
10
- if:false={navItem.options}
11
- ></dx-header-nav-option>
11
+ variant={variant}
12
+ ></dx-tab>
12
13
 
13
14
  <!-- DESKTOP "MORE CONTENT" NAV ITEM -->
14
15
  <dx-dropdown
15
- options={navItem.options}
16
+ analytics-event="custEv_topNavLinkClick"
16
17
  if:true={navItem.options}
17
- placement="bottom"
18
+ nav-item-label={navItem.label}
19
+ open-on-hover
18
20
  offset="medium"
21
+ options={navItem.options}
22
+ placement="bottom"
23
+ stay-open-after-change
19
24
  value={pathname}
20
25
  value-path="link.href"
21
- nav-item-label={navItem.label}
22
- stay-open-after-change
23
- open-on-hover
24
26
  >
25
- <button class="nav-list-item">
26
- <span>{navItem.label}</span>
27
- <dx-icon symbol="chevrondown"></dx-icon>
28
- </button>
27
+ <dx-tab
28
+ label={navItem.label}
29
+ variant={variant}
30
+ use-icon
31
+ ></dx-tab>
29
32
  </dx-dropdown>
30
33
 
31
34
  <!-- MOBILE "MORE CONTENT" NAV ITEM -->
32
- <button
33
- class="nav-list-item nav-list-item-nav-menu"
35
+ <dx-tab
34
36
  if:true={navItem.options}
37
+ class="nav-list-item-nav-menu"
35
38
  data-id={navItem.id}
39
+ label={navItem.label}
40
+ use-icon
41
+ variant={variant}
36
42
  onclick={requestOpenNavMenu}
37
- >
38
- <span>{navItem.label}</span>
39
- <dx-icon symbol="chevrondown"></dx-icon>
40
- </button>
43
+ ></dx-tab>
41
44
  </li>
42
45
  </template>
43
46
  </ul>
@@ -1,28 +1,51 @@
1
1
  import { LightningElement, api } from "lwc";
2
- import cx from "classnames";
3
- import { Option } from "typings/custom";
2
+ import { TabVariant, OptionWithNested } from "typings/custom";
4
3
  export default class HeaderNav extends LightningElement {
5
4
  @api pathname: string | null = null;
5
+ @api variant: TabVariant = "default";
6
+ @api ariaLabel: string = "Primary Navigation";
6
7
 
7
8
  @api
8
- set navItems(_navItems: Option[]) {
9
+ set navItems(_navItems: OptionWithNested[]) {
9
10
  this._navItems = _navItems;
10
11
  }
12
+
11
13
  get navItems() {
12
- return this._navItems.map((navItem: Option) =>
14
+ const activeItem = this._navItems
15
+ .filter((navItem: OptionWithNested) => {
16
+ if (!navItem.link || navItem.link.href === "/") {
17
+ return false;
18
+ }
19
+
20
+ const fileExtension = navItem.link.href.match(/\.[0-9a-z]+$/i);
21
+ const baseLink = fileExtension
22
+ ? navItem.link.href.substring(
23
+ 0,
24
+ navItem.link.href.lastIndexOf("/")
25
+ )
26
+ : navItem.link.href;
27
+ return this.pathname?.includes(baseLink);
28
+ })
29
+ .sort(
30
+ (a, b) =>
31
+ (b.link?.href.length || 0) - (a.link?.href.length || 0)
32
+ )[0];
33
+
34
+ const items = this._navItems.map((navItem: OptionWithNested) =>
13
35
  navItem.link
14
36
  ? {
15
37
  ...navItem,
16
- className: cx(
17
- "nav-list-item",
18
- navItem.link.href === this.pathname && "state-active"
19
- )
38
+ isActive:
39
+ navItem.link.href === this.pathname ||
40
+ navItem.id === activeItem?.id
20
41
  }
21
42
  : navItem
22
43
  );
44
+
45
+ return items;
23
46
  }
24
47
 
25
- private _navItems: Option[] = [];
48
+ private _navItems: OptionWithNested[] = [];
26
49
 
27
50
  private requestOpenNavMenu(e: PointerEvent) {
28
51
  const detail = (<HTMLButtonElement>e.currentTarget).getAttribute(
@@ -1,4 +1,4 @@
1
- @import "helpers/reset";
1
+ @import "dxHelpers/reset";
2
2
 
3
3
  /* DESKTOP */
4
4
 
@@ -13,45 +13,9 @@
13
13
  font-size: var(--dx-g-text-sm);
14
14
  font-family: var(--dx-g-font-sans);
15
15
  color: var(--dx-g-gray-50);
16
- width: var(--dx-c-header-search-width);
17
- }
18
-
19
- .search_scope-toggle {
20
- position: relative;
21
- display: flex;
22
- justify-content: space-between;
23
- align-items: center;
24
- flex-shrink: 0;
25
- height: 100%;
26
- width: var(--toggle-width);
27
-
28
- /* border */
29
- border: 1px solid var(--dx-g-gray-90);
30
- border-right-color: transparent;
31
- border-radius: var(--dx-g-spacing-xs);
32
- border-top-right-radius: 0;
33
- border-bottom-right-radius: 0;
34
- outline: none;
35
- background: white;
36
- padding: var(--dx-g-spacing-sm);
37
- transition: var(--dx-g-transition-hue-1x);
38
- }
39
-
40
- .search_scope-toggle:focus {
41
- border: 1px solid var(--dx-g-blue-vibrant-50);
42
- }
43
-
44
- .search_scope-toggle > *:last-child {
45
- margin-left: var(--dx-g-spacing-sm);
46
- }
47
-
48
- .search_scope-toggle[aria-expanded="true"] > *:last-child {
49
- transform: rotateX(180deg);
50
16
  }
51
17
 
52
18
  .desktop_search-container dx-input {
53
- --dx-c-input-border-radius: 0 var(--dx-g-spacing-xs) var(--dx-g-spacing-xs)
54
- 0;
55
19
  --dx-c-input-width: calc(
56
20
  var(--dx-c-header-search-width) - var(--toggle-width)
57
21
  );
@@ -8,8 +8,7 @@
8
8
  open={isDropdownOpen}
9
9
  options={suggestions}
10
10
  onrequestclose={onDropdownRequestClose}
11
- onrequestopen={openPopover}
12
- full-width="true"
11
+ full-width
13
12
  page-padding="0"
14
13
  >
15
14
  <dx-input
@@ -18,12 +17,12 @@
18
17
  icon-size="large"
19
18
  icon-symbol="search"
20
19
  onchange={onInputChange}
21
- onescape={onInputEscape}
20
+ onclear={onInputEscape}
22
21
  onsubmit={onInputSubmit}
22
+ onfocus={openDropdown}
23
23
  placeholder="Search"
24
24
  size="override"
25
25
  type="search"
26
- value={searchBox.value}
27
26
  ></dx-input>
28
27
  </dx-dropdown>
29
28
  <dx-button
@@ -38,42 +37,24 @@
38
37
 
39
38
  <!-- DESKTOP -->
40
39
  <template if:false={mobile}>
41
- <dx-dropdown
42
- aria-label="Record Type"
43
- class="desktop_search-dropdown"
44
- options={scopes}
45
- value={scope}
46
- onchange={onScopeChange}
47
- offset="small"
48
- small
49
- >
50
- <button class="search_scope-toggle">
51
- <span>{scopeLabel}</span>
52
- <dx-icon symbol="chevrondown"></dx-icon>
53
- </button>
54
- </dx-dropdown>
55
40
  <dx-dropdown
56
41
  options={suggestions}
57
42
  open={isDropdownOpen}
58
- placement="bottom-end"
59
43
  onrequestclose={onDropdownRequestClose}
60
- onrequestopen={openPopover}
61
44
  offset="small"
62
- width="220px"
63
- temp-id="banana"
45
+ full-width
64
46
  >
65
47
  <dx-input
66
48
  aria-label="Record Search Term"
67
49
  icon-symbol="search"
68
50
  onchange={onInputChange}
69
- onescape={onInputEscape}
70
- onfocus={onInputFocus}
51
+ onclear={onInputEscape}
71
52
  onsubmit={onInputSubmit}
53
+ onfocus={openDropdown}
72
54
  placeholder="Search"
73
55
  shortcut-key="k"
74
56
  size="small"
75
57
  type="search"
76
- value={searchBox.value}
77
58
  ></dx-input>
78
59
  </dx-dropdown>
79
60
  </template>
@@ -1,15 +1,13 @@
1
1
  import { LightningElement, api } from "lwc";
2
2
  import cx from "classnames";
3
- import { PopoverRequestCloseType, Option } from "typings/custom";
3
+ import { PopoverRequestCloseType, OptionWithLink } from "typings/custom";
4
+ import { buildSearchEngine } from "dxUtils/coveo";
4
5
  import {
5
- HeadlessEngine,
6
6
  StandaloneSearchBox as StandaloneSearchBoxType,
7
- StandaloneSearchBoxOptions,
8
7
  StandaloneSearchBoxState,
9
8
  buildStandaloneSearchBox,
10
- searchAppReducers
9
+ StandaloneSearchBoxOptions
11
10
  } from "@coveo/headless";
12
- import scopes from "./scopes";
13
11
 
14
12
  const baseSearchHref = `/search`;
15
13
 
@@ -23,8 +21,6 @@ export default class HeaderSearch extends LightningElement {
23
21
  private input: HTMLElement | null = null;
24
22
  private isDropdownOpen: boolean = false;
25
23
  private isMobileSearchOpen: boolean = false;
26
- private scope: string = "all";
27
- private scopes: Option[] = scopes;
28
24
  private searchBox: StandaloneSearchBoxType | null = null;
29
25
  private searchState: StandaloneSearchBoxState | null = null;
30
26
 
@@ -32,14 +28,14 @@ export default class HeaderSearch extends LightningElement {
32
28
  return this.mobile ? null : "desktop_search-container";
33
29
  }
34
30
 
35
- private get suggestions(): Option[] {
31
+ private get suggestions(): OptionWithLink[] {
36
32
  if (this.searchState) {
37
33
  return this.searchState.suggestions.map(
38
- ({ value }: { value: string }) => ({
39
- id: value,
40
- label: value,
34
+ ({ highlightedValue }: { highlightedValue: string }) => ({
35
+ id: highlightedValue,
36
+ label: highlightedValue,
41
37
  link: {
42
- href: this.createSearchHref(value),
38
+ href: this.createSearchHref(highlightedValue),
43
39
  target: null
44
40
  }
45
41
  })
@@ -65,11 +61,6 @@ export default class HeaderSearch extends LightningElement {
65
61
  : "Show mobile search";
66
62
  }
67
63
 
68
- private get scopeLabel() {
69
- const scope = this.scopes.find(({ id }) => id === this.scope);
70
- return scope!.label;
71
- }
72
-
73
64
  connectedCallback() {
74
65
  this.instantiateSearchbox();
75
66
  }
@@ -78,7 +69,7 @@ export default class HeaderSearch extends LightningElement {
78
69
  switch (e.detail as PopoverRequestCloseType) {
79
70
  case "interact-outside":
80
71
  case "keypress-escape":
81
- this.closePopover();
72
+ this.closeDropdown();
82
73
  break;
83
74
  default:
84
75
  break;
@@ -86,41 +77,35 @@ export default class HeaderSearch extends LightningElement {
86
77
  }
87
78
 
88
79
  private instantiateSearchbox() {
89
- const options: StandaloneSearchBoxOptions = {
90
- numberOfSuggestions: 3,
91
- redirectionUrl: "https://beta.developer.salesforce.com"
92
- };
80
+ try {
81
+ const options: StandaloneSearchBoxOptions = {
82
+ numberOfSuggestions: 3,
83
+ redirectionUrl: "https://developer.salesforce.com"
84
+ };
93
85
 
94
- const engine = new HeadlessEngine({
95
- configuration: {
86
+ const engine = buildSearchEngine({
96
87
  organizationId: this.coveoOrganizationId,
97
- accessToken: this.coveoPublicAccessToken,
98
- search: {
99
- pipeline: this.coveoSearchPipeline,
100
- searchHub: this.coveoSearchHub
88
+ publicAccessToken: this.coveoPublicAccessToken,
89
+ searchPipeline: this.coveoSearchPipeline,
90
+ searchHub: this.coveoSearchHub
91
+ });
92
+
93
+ this.searchBox = buildStandaloneSearchBox(engine, { options });
94
+
95
+ this.searchBox?.subscribe(() => {
96
+ if (this.searchBox) {
97
+ this.searchState = this.searchBox.state;
101
98
  }
102
- },
103
- reducers: searchAppReducers
104
- });
105
-
106
- this.searchBox = buildStandaloneSearchBox(engine, { options });
107
- this.searchBox.subscribe(() => {
108
- if (this.searchBox) {
109
- this.searchState = this.searchBox.state;
110
- }
111
- });
112
- this.searchBox.updateText("");
99
+ });
100
+ } catch (e) {
101
+ console.error(`Coveo searchbox failed to initialize (${e})`);
102
+ }
113
103
  }
114
104
 
115
105
  private createSearchHref = (value: string | null = "") => {
116
- return `${baseSearchHref}#q=${value}&t=${this.scope}`;
106
+ return `${baseSearchHref}#q=${value}`;
117
107
  };
118
108
 
119
- private onScopeChange(e: PointerEvent) {
120
- // @ts-ignore (ts thinks e.detail is a number)
121
- this.scope = e.detail;
122
- }
123
-
124
109
  private onInputChange(e: CustomEvent) {
125
110
  if (this.searchBox) {
126
111
  this.searchBox.updateText(e.detail);
@@ -137,26 +122,38 @@ export default class HeaderSearch extends LightningElement {
137
122
  const input = this.template.querySelector("dx-input");
138
123
  if (this.isMobileSearchOpen && input) {
139
124
  input.focus();
140
- this.openPopover();
125
+ this.openDropdown();
141
126
  } else {
142
- this.closePopover();
127
+ this.closeDropdown();
143
128
  }
144
129
  if (!this.isMobileSearchOpen && this.searchBox) {
145
130
  this.searchBox.updateText("");
146
131
  }
147
132
  }
148
133
 
149
- private openPopover() {
134
+ private openDropdown() {
150
135
  this.isDropdownOpen = true;
151
136
  this.isMobileSearchOpen = true;
137
+ this.reportState<boolean>(true);
152
138
  }
153
139
 
154
- private closePopover() {
140
+ private closeDropdown() {
155
141
  this.isDropdownOpen = false;
156
142
  this.isMobileSearchOpen = false;
143
+ this.reportState<boolean>(false);
157
144
  }
158
145
 
159
146
  private onInputEscape() {
160
- this.closePopover();
147
+ this.closeDropdown();
148
+ }
149
+
150
+ private reportState<T>(state: T) {
151
+ this.dispatchEvent(
152
+ new CustomEvent("statechange", {
153
+ detail: state,
154
+ bubbles: true,
155
+ composed: true
156
+ })
157
+ );
161
158
  }
162
159
  }
@@ -1,5 +1,5 @@
1
- @import "helpers/reset";
2
- @import "helpers/text";
1
+ @import "dxHelpers/reset";
2
+ @import "dxHelpers/text";
3
3
 
4
4
  span {
5
5
  font-family: var(--dx-g-font-sans);
@@ -1,24 +1,27 @@
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-hr-padding-horizontal: var(--dx-g-page-padding-horizontal);
6
6
  }
7
7
 
8
- p {
8
+ p,
9
+ h2 {
9
10
  display: flex;
10
11
  flex-direction: row;
11
12
  padding: 0 var(--dx-c-hr-padding-horizontal);
12
13
  font-family: var(--dx-g-font-display);
13
14
  font-size: var(--dx-g-text-sm);
14
15
  color: var(--dx-g-blue-vibrant-20);
16
+ text-transform: capitalize;
15
17
  letter-spacing: 0;
16
18
  line-height: 18px;
17
19
  }
18
20
 
19
21
  p::before,
20
- p::after {
21
- transform: translateY(-2px); /* offset for display font ghost padding */
22
+ h2::before,
23
+ p::after,
24
+ h2::after {
22
25
  content: "";
23
26
  flex: 1 1;
24
27
  border-bottom: 2px solid var(--dx-g-gray-95);
@@ -27,18 +30,18 @@ p::after {
27
30
  margin-left: 0;
28
31
  }
29
32
 
30
- p.heading::before {
33
+ h2::before {
31
34
  margin-right: var(--dx-g-spacing-md);
32
35
  }
33
36
 
34
- p.heading::after {
37
+ h2::after {
35
38
  margin-left: var(--dx-g-spacing-md);
36
39
  }
37
40
 
38
41
  dx-button {
39
42
  display: flex;
40
43
  width: 100%;
41
- text-transform: uppercase;
44
+ text-transform: capitalize;
42
45
  padding: 0 var(--dx-c-hr-padding-horizontal);
43
46
  }
44
47
 
@@ -46,7 +49,6 @@ dx-button::before {
46
49
  content: "";
47
50
  border-bottom: 2px solid var(--dx-g-gray-95);
48
51
  flex: 1 1;
49
- transform: translateY(-2px); /* offset for display font ghost padding */
50
52
  margin: auto;
51
53
  margin-right: var(--dx-g-spacing-md);
52
54
  }
@@ -1,28 +1,22 @@
1
1
  <template>
2
- <p
3
- if:false={isButtonVariant}
4
- part="hr"
5
- style={style}
6
- class={className}
7
- role={ariaRole}
8
- aria-level={_ariaLevel}
9
- >
10
- {text}
11
- </p>
2
+ <p if:true={isSeparator} part="hr" role="separator" style={style}></p>
3
+ <h2 if:true={isHeading} part="hr" style={style}>{text}</h2>
12
4
  <dx-button
13
5
  if:true={isLink}
14
6
  href={href}
15
7
  icon-symbol="forward"
8
+ style={style}
16
9
  target={target}
17
- variant="inline-inherit"
10
+ variant="inline"
18
11
  >
19
12
  {text}
20
13
  </dx-button>
21
14
  <dx-button
22
15
  if:true={isLoadMore}
23
16
  icon-symbol="arrowdown"
24
- variant="inline-inherit"
25
17
  onclick={handleClick}
18
+ style={style}
19
+ variant="inline"
26
20
  >
27
21
  {text}
28
22
  </dx-button>
@@ -4,22 +4,13 @@ import { HrVariant } from "typings/custom";
4
4
 
5
5
  export default class Hr extends LightningElement {
6
6
  @api text: string | null = null;
7
- @api ariaLevel: string | null = null;
8
- @api href: string | null;
7
+ @api href?: string | null;
9
8
  @api target: string | null = "_top";
10
9
  @api spacing: string | null = "2xl";
11
- @api variant: HrVariant | null;
12
-
13
- private get _ariaLevel() {
14
- return this.variant ? this.ariaLevel || "3" : null;
15
- }
10
+ @api variant: HrVariant | null = null;
16
11
 
17
12
  private get ariaRole() {
18
- return this.variant === "heading" ? "heading" : "separator";
19
- }
20
-
21
- private get className() {
22
- return this.variant ? this.variant : "";
13
+ return this.isHeading ? "heading" : "separator";
23
14
  }
24
15
 
25
16
  private get style() {
@@ -40,6 +31,14 @@ export default class Hr extends LightningElement {
40
31
  return this.variant === "load-more";
41
32
  }
42
33
 
34
+ private get isHeading() {
35
+ return !this.isButtonVariant && this.text;
36
+ }
37
+
38
+ private get isSeparator() {
39
+ return !this.isButtonVariant && !this.text;
40
+ }
41
+
43
42
  handleClick() {
44
43
  this.dispatchEvent(new CustomEvent("loadmore"));
45
44
  }
@@ -1,4 +1,4 @@
1
- @import "helpers/reset";
1
+ @import "dxHelpers/reset";
2
2
 
3
3
  :host {
4
4
  display: block;
@@ -1,6 +1,6 @@
1
1
  import { LightningElement, api } from "lwc";
2
2
  import { IconSprite, IconSize, IconSymbol } from "typings/custom";
3
- import { toDxColor } from "utils/css";
3
+ import { toDxColor } from "dxUtils/css";
4
4
 
5
5
  const fetches = new Map<string, Promise<any>>();
6
6