@duetds/components 5.4.2 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/hydrate/index.js +27 -8
  2. package/lib/cjs/duet-action-button.cjs.entry.js +1 -1
  3. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  4. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  7. package/lib/cjs/duet-button_2.cjs.entry.js +1 -1
  8. package/lib/cjs/duet-caption_4.cjs.entry.js +4 -3
  9. package/lib/cjs/duet-card.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-choice_2.cjs.entry.js +2 -2
  12. package/lib/cjs/duet-collapsible.cjs.entry.js +1 -1
  13. package/lib/cjs/duet-combobox.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  16. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-editable-table_3.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-footer.cjs.entry.js +10 -2
  21. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  22. package/lib/cjs/duet-header_2.cjs.entry.js +13 -5
  23. package/lib/cjs/duet-hero.cjs.entry.js +3 -2
  24. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-input_2.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  29. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-pagination_2.cjs.entry.js +1 -1
  32. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-scrollable_3.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  44. package/lib/cjs/duet.cjs.js +1 -1
  45. package/lib/cjs/{focus-utils-9226aef7.js → focus-utils-fed98b6a.js} +1 -1
  46. package/lib/cjs/{index-60a8ec8a.js → index-b5a163e2.js} +1 -1
  47. package/lib/cjs/loader.cjs.js +1 -1
  48. package/lib/collection/components/duet-footer/duet-footer.js +28 -2
  49. package/lib/collection/components/duet-header/duet-header.js +30 -4
  50. package/lib/collection/components/duet-heading/duet-heading.css +4 -0
  51. package/lib/collection/components/duet-heading/duet-heading.js +4 -3
  52. package/lib/collection/components/duet-hero/duet-hero.js +4 -2
  53. package/lib/custom-elements-bundle/index.js +27 -9
  54. package/lib/duet/duet.esm.js +1 -1
  55. package/lib/duet/duet.js +1 -1
  56. package/lib/duet/{p-46d9a853.entry.js → p-043ca8c2.entry.js} +1 -1
  57. package/lib/duet/{p-2ac07ac9.entry.js → p-092249a4.entry.js} +1 -1
  58. package/lib/duet/{p-64cbe9b7.system.entry.js → p-09c538d2.system.entry.js} +1 -1
  59. package/lib/duet/{p-817ef07d.system.entry.js → p-0d51a865.system.entry.js} +1 -1
  60. package/lib/duet/{p-590e8508.entry.js → p-106412f9.entry.js} +1 -1
  61. package/lib/duet/{p-675d713b.entry.js → p-106d0e6c.entry.js} +1 -1
  62. package/lib/duet/{p-fe03f359.system.js → p-109762c2.system.js} +1 -1
  63. package/lib/duet/{p-33a0c070.system.entry.js → p-17abdfb4.system.entry.js} +2 -2
  64. package/lib/duet/{p-6e3f764f.system.entry.js → p-1922b678.system.entry.js} +1 -1
  65. package/lib/duet/{p-62303524.system.entry.js → p-195a7974.system.entry.js} +1 -1
  66. package/lib/duet/{p-56a80c32.system.entry.js → p-1a14638c.system.entry.js} +1 -1
  67. package/lib/duet/{p-79948b47.system.entry.js → p-1d5bd920.system.entry.js} +1 -1
  68. package/lib/duet/{p-97631cdc.entry.js → p-1d795d20.entry.js} +1 -1
  69. package/lib/duet/{p-e5b22358.entry.js → p-21bb7a14.entry.js} +1 -1
  70. package/lib/duet/{p-6f1d6649.entry.js → p-233768f0.entry.js} +1 -1
  71. package/lib/duet/{p-b2ac632f.system.entry.js → p-23c58827.system.entry.js} +1 -1
  72. package/lib/duet/{p-c9f244f6.entry.js → p-256578d4.entry.js} +1 -1
  73. package/lib/duet/{p-bec4d094.system.entry.js → p-2a124811.system.entry.js} +1 -1
  74. package/lib/duet/{p-ffadc9ea.system.entry.js → p-2f25b72e.system.entry.js} +1 -1
  75. package/lib/duet/{p-65821960.entry.js → p-3573ed90.entry.js} +1 -1
  76. package/lib/duet/{p-63aea0dc.system.entry.js → p-3a02d67d.system.entry.js} +1 -1
  77. package/lib/duet/{p-84310e48.system.entry.js → p-3a143c07.system.entry.js} +1 -1
  78. package/lib/duet/{p-440e2c47.entry.js → p-3e354012.entry.js} +1 -1
  79. package/lib/duet/{p-97130a4c.entry.js → p-421888a7.entry.js} +1 -1
  80. package/lib/duet/{p-f661ebf9.system.entry.js → p-43db1cad.system.entry.js} +1 -1
  81. package/lib/duet/{p-98ca5a08.system.entry.js → p-4978446c.system.entry.js} +2 -2
  82. package/lib/duet/{p-f2dce86d.entry.js → p-49e26895.entry.js} +1 -1
  83. package/lib/duet/{p-8bf92f1e.system.entry.js → p-4c0fbc6b.system.entry.js} +1 -1
  84. package/lib/duet/{p-e358c599.entry.js → p-504eb2f5.entry.js} +1 -1
  85. package/lib/duet/{p-ea12c081.system.entry.js → p-50e695ce.system.entry.js} +1 -1
  86. package/lib/duet/p-53ebaffb.js +4 -0
  87. package/lib/duet/{p-ef2f6881.entry.js → p-597286df.entry.js} +1 -1
  88. package/lib/duet/{p-309e3417.system.js → p-5a8745fb.system.js} +1 -1
  89. package/lib/duet/{p-67734fad.entry.js → p-5cff11a9.entry.js} +1 -1
  90. package/lib/duet/{p-faf6cfe8.entry.js → p-5eb3e636.entry.js} +1 -1
  91. package/lib/duet/p-63d2755a.entry.js +4 -0
  92. package/lib/duet/{p-80d16341.system.entry.js → p-70fe3594.system.entry.js} +1 -1
  93. package/lib/duet/{p-838ef01e.system.entry.js → p-778cd181.system.entry.js} +1 -1
  94. package/lib/duet/{p-48a036c1.system.entry.js → p-79598c60.system.entry.js} +1 -1
  95. package/lib/duet/{p-7dfc475d.entry.js → p-7a6bb638.entry.js} +1 -1
  96. package/lib/duet/p-7b84c937.system.entry.js +4 -0
  97. package/lib/duet/{p-aefb80e3.entry.js → p-7ca14550.entry.js} +1 -1
  98. package/lib/duet/{p-9205c79a.system.entry.js → p-7da9836a.system.entry.js} +1 -1
  99. package/lib/duet/{p-7d0051ea.entry.js → p-875bd47c.entry.js} +1 -1
  100. package/lib/duet/{p-c694e7fb.system.entry.js → p-875c8319.system.entry.js} +1 -1
  101. package/lib/duet/{p-12606a4b.entry.js → p-88e55b15.entry.js} +1 -1
  102. package/lib/duet/{p-d3d6e75d.entry.js → p-8a5ff071.entry.js} +1 -1
  103. package/lib/duet/{p-2b155bd9.entry.js → p-8be00ca5.entry.js} +1 -1
  104. package/lib/duet/{p-07a2ad03.entry.js → p-8f397d81.entry.js} +1 -1
  105. package/lib/duet/{p-9df52009.system.entry.js → p-9195b70c.system.entry.js} +1 -1
  106. package/lib/duet/p-93fba18a.system.entry.js +4 -0
  107. package/lib/duet/{p-67ed94fa.system.entry.js → p-94760006.system.entry.js} +1 -1
  108. package/lib/duet/{p-70e567e9.entry.js → p-9589ebe4.entry.js} +1 -1
  109. package/lib/duet/{p-e3017ffc.entry.js → p-975e2007.entry.js} +1 -1
  110. package/lib/duet/{p-9c9fbda5.system.entry.js → p-97f307cd.system.entry.js} +1 -1
  111. package/lib/duet/{p-5f528fa2.entry.js → p-993a34d1.entry.js} +1 -1
  112. package/lib/duet/{p-526e6d8e.system.entry.js → p-9a9b4340.system.entry.js} +1 -1
  113. package/lib/duet/{p-89f50fd8.system.js → p-a20a9164.system.js} +1 -1
  114. package/lib/duet/{p-f2831cda.system.entry.js → p-a399d48f.system.entry.js} +1 -1
  115. package/lib/duet/{p-6255147e.system.entry.js → p-a5e6dfcb.system.entry.js} +1 -1
  116. package/lib/duet/{p-6c5d3def.entry.js → p-a61cf42c.entry.js} +1 -1
  117. package/lib/duet/{p-77e3591e.entry.js → p-ad876c3d.entry.js} +1 -1
  118. package/lib/duet/{p-b004cbd3.entry.js → p-ade00e73.entry.js} +1 -1
  119. package/lib/duet/{p-c383ceb4.system.entry.js → p-b13d93c1.system.entry.js} +1 -1
  120. package/lib/duet/{p-56f17656.entry.js → p-b3a0c0f1.entry.js} +1 -1
  121. package/lib/duet/{p-28f87990.entry.js → p-b98f485a.entry.js} +1 -1
  122. package/lib/duet/{p-f6f30fb7.system.entry.js → p-c570ce3f.system.entry.js} +2 -2
  123. package/lib/duet/{p-ac86999f.system.entry.js → p-c7fbbd1f.system.entry.js} +1 -1
  124. package/lib/duet/{p-fdb0277c.system.entry.js → p-c8eb26ba.system.entry.js} +1 -1
  125. package/lib/duet/p-c8fedd4c.entry.js +4 -0
  126. package/lib/duet/{p-dfd9a9ff.entry.js → p-cb471360.entry.js} +1 -1
  127. package/lib/duet/{p-46b83696.system.entry.js → p-cb9d3224.system.entry.js} +1 -1
  128. package/lib/duet/p-cbddc309.entry.js +4 -0
  129. package/lib/duet/{p-30fc343d.system.entry.js → p-cc5f2e90.system.entry.js} +1 -1
  130. package/lib/duet/{p-322676e3.system.entry.js → p-cd3a4678.system.entry.js} +1 -1
  131. package/lib/duet/{p-6e64cd02.js → p-cddb4ef2.js} +1 -1
  132. package/lib/duet/{p-5ea398eb.entry.js → p-ce47e5bc.entry.js} +1 -1
  133. package/lib/duet/{p-b70f2ae2.system.entry.js → p-cec7594d.system.entry.js} +1 -1
  134. package/lib/duet/{p-4dd79e38.system.entry.js → p-d67546f5.system.entry.js} +1 -1
  135. package/lib/duet/{p-b28e6872.system.entry.js → p-d6fe977f.system.entry.js} +1 -1
  136. package/lib/duet/{p-a03485f8.entry.js → p-d856ba7e.entry.js} +1 -1
  137. package/lib/duet/{p-a91bb73d.entry.js → p-dd922800.entry.js} +1 -1
  138. package/lib/duet/{p-bf8f3b14.entry.js → p-dfbcbdd7.entry.js} +1 -1
  139. package/lib/duet/{p-0dbd00e1.system.entry.js → p-e3ab2e26.system.entry.js} +1 -1
  140. package/lib/duet/{p-5a5117d4.entry.js → p-e8fcf8bf.entry.js} +1 -1
  141. package/lib/duet/{p-8e1cf2fb.system.entry.js → p-ee412ace.system.entry.js} +1 -1
  142. package/lib/duet/{p-6ab6ce4f.system.entry.js → p-efa828e5.system.entry.js} +1 -1
  143. package/lib/duet/{p-bc24eeda.entry.js → p-efd9868c.entry.js} +1 -1
  144. package/lib/duet/{p-451adbf4.entry.js → p-f8ae0ada.entry.js} +1 -1
  145. package/lib/esm/duet-action-button.entry.js +1 -1
  146. package/lib/esm/duet-alert.entry.js +1 -1
  147. package/lib/esm/duet-badge.entry.js +1 -1
  148. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  149. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  150. package/lib/esm/duet-button_2.entry.js +1 -1
  151. package/lib/esm/duet-caption_4.entry.js +4 -3
  152. package/lib/esm/duet-card.entry.js +1 -1
  153. package/lib/esm/duet-checkbox.entry.js +1 -1
  154. package/lib/esm/duet-choice_2.entry.js +2 -2
  155. package/lib/esm/duet-collapsible.entry.js +1 -1
  156. package/lib/esm/duet-combobox.entry.js +1 -1
  157. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  158. package/lib/esm/duet-date-picker.entry.js +2 -2
  159. package/lib/esm/duet-divider_2.entry.js +1 -1
  160. package/lib/esm/duet-editable-table_3.entry.js +1 -1
  161. package/lib/esm/duet-empty-state.entry.js +1 -1
  162. package/lib/esm/duet-fieldset.entry.js +1 -1
  163. package/lib/esm/duet-footer.entry.js +10 -2
  164. package/lib/esm/duet-grid_2.entry.js +1 -1
  165. package/lib/esm/duet-header_2.entry.js +13 -5
  166. package/lib/esm/duet-hero.entry.js +3 -2
  167. package/lib/esm/duet-icon.entry.js +1 -1
  168. package/lib/esm/duet-input_2.entry.js +1 -1
  169. package/lib/esm/duet-layout.entry.js +1 -1
  170. package/lib/esm/duet-list_2.entry.js +1 -1
  171. package/lib/esm/duet-modal.entry.js +2 -2
  172. package/lib/esm/duet-notification_2.entry.js +1 -1
  173. package/lib/esm/duet-number-input.entry.js +1 -1
  174. package/lib/esm/duet-pagination_2.entry.js +1 -1
  175. package/lib/esm/duet-progress.entry.js +1 -1
  176. package/lib/esm/duet-radio_2.entry.js +1 -1
  177. package/lib/esm/duet-range-slider.entry.js +1 -1
  178. package/lib/esm/duet-scrollable_3.entry.js +1 -1
  179. package/lib/esm/duet-select.entry.js +1 -1
  180. package/lib/esm/duet-step_2.entry.js +1 -1
  181. package/lib/esm/duet-textarea.entry.js +1 -1
  182. package/lib/esm/duet-toggle.entry.js +1 -1
  183. package/lib/esm/duet-tooltip.entry.js +1 -1
  184. package/lib/esm/duet-tray.entry.js +1 -1
  185. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  186. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  187. package/lib/esm/duet.js +1 -1
  188. package/lib/esm/{focus-utils-8dc04c1c.js → focus-utils-4accac91.js} +1 -1
  189. package/lib/esm/{index-e1964887.js → index-3846de98.js} +1 -1
  190. package/lib/esm/loader.js +1 -1
  191. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  192. package/lib/esm-es5/duet-alert.entry.js +1 -1
  193. package/lib/esm-es5/duet-badge.entry.js +1 -1
  194. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  195. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  196. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  197. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  198. package/lib/esm-es5/duet-card.entry.js +1 -1
  199. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  200. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  201. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  202. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  203. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  204. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  205. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  206. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  207. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  208. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  209. package/lib/esm-es5/duet-footer.entry.js +1 -1
  210. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  211. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  212. package/lib/esm-es5/duet-hero.entry.js +1 -1
  213. package/lib/esm-es5/duet-icon.entry.js +1 -1
  214. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  215. package/lib/esm-es5/duet-layout.entry.js +1 -1
  216. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  217. package/lib/esm-es5/duet-modal.entry.js +1 -1
  218. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  219. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  220. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  221. package/lib/esm-es5/duet-progress.entry.js +1 -1
  222. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  223. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  224. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  225. package/lib/esm-es5/duet-select.entry.js +1 -1
  226. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  227. package/lib/esm-es5/duet-textarea.entry.js +2 -2
  228. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  229. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  230. package/lib/esm-es5/duet-tray.entry.js +1 -1
  231. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  232. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  233. package/lib/esm-es5/duet.js +1 -1
  234. package/lib/esm-es5/{focus-utils-8dc04c1c.js → focus-utils-4accac91.js} +1 -1
  235. package/lib/esm-es5/{index-e1964887.js → index-3846de98.js} +1 -1
  236. package/lib/esm-es5/loader.js +1 -1
  237. package/lib/types/components/duet-footer/duet-footer.d.ts +11 -0
  238. package/lib/types/components/duet-header/duet-header.d.ts +11 -0
  239. package/lib/types/components/duet-heading/duet-heading.d.ts +2 -2
  240. package/lib/types/components/duet-hero/duet-hero.d.ts +2 -0
  241. package/lib/types/components.d.ts +10 -2
  242. package/package.json +6 -6
  243. package/lib/duet/p-21321528.system.entry.js +0 -4
  244. package/lib/duet/p-5c1646f2.entry.js +0 -4
  245. package/lib/duet/p-99bf8545.js +0 -4
  246. package/lib/duet/p-a806d616.entry.js +0 -4
  247. package/lib/duet/p-c918ce45.system.entry.js +0 -4
  248. package/lib/duet/p-f30eb0fd.entry.js +0 -4
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const actionNewWindowSmall = require('./action-new-window-small-fa51dfb9.js');
10
10
  const commonStrings = require('./common-strings-de17f887.js');
11
11
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
@@ -139,6 +139,7 @@ const DuetHero = class {
139
139
  */
140
140
  componentWillLoad() {
141
141
  themeableComponent.inheritGlobalTheme(this);
142
+ this.hasHeadingSlot = !!this.element.querySelector('[slot="heading"]');
142
143
  this.refresh();
143
144
  }
144
145
  /**
@@ -209,7 +210,7 @@ const DuetHero = class {
209
210
  href: this.processedBack.href,
210
211
  id: this.processedBack.id,
211
212
  analyticsId: this.processedBack.analyticsId,
212
- }) }, this.processedBack.label))), (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (index.h("duet-icon", { class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })), index.h("div", { class: "duet-hero-text" }, this.preHeading && (index.h("duet-paragraph", { margin: "none", class: "duet-hero-pre" }, this.preHeading)), index.h("slot", { name: "badge" }), index.h("duet-heading", { theme: this.theme, level: this.level, class: { "duet-hero-heading": true, "duet-hero-heading-has-pre": this.preHeading !== "" }, color: this.variation === "default" ? "gray-lightest" : "", visualLevel: this.variation === "gray" || this.variation === "minimal" ? "h2" : "h1" }, this.heading ? this.heading : index.h("slot", { name: "heading" })), this.description && (index.h("duet-paragraph", { theme: this.theme, color: textColor, variation: "intro" }, this.description)), (this.variation === "gray" || this.variation === "minimal") && this.processedListItems && (index.h("duet-list", { theme: this.theme, "label-width": "30", breakpoint: "large", mobile: this.leftAlign ? undefined : "center" }, this.processedListItems.map(item => (index.h("duet-list-item", null, index.h("span", { slot: "label" }, item.label), index.h("span", { slot: "value" }, item.value)))))), this.buttonLabel && (index.h("duet-button", { url: this.buttonUrl, icon: this.icon, iconRight: this.iconRight, iconSize: this.iconSize, variation: buttonVariation, theme: this.theme, identifier: this.buttonId, onClick: event => this.handleClick(event, this.buttonData), fixed: true }, this.buttonLabel)), index.h("span", { class: "duet-hero-slot-unnamed" }, index.h("slot", null))), (this.variation === "gray" || this.variation === "minimal") && this.processedActions && (index.h("div", { class: "duet-hero-links" }, this.processedActions.map(item => (index.h("a", { class: "duet-hero-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleClick(event, item) }, index.h("div", { class: "duet-hero-action-icon" }, index.h("duet-icon", { size: "small", margin: "none", name: item.icon, color: "currentColor", outline: outlineColor })), index.h("span", null, item.label), item.external && index.h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), item.external && (index.h("div", { class: "duet-hero-action-arrow" }, index.h("duet-icon", { icon: actionNewWindowSmall.actionNewWindowSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))))))), this.image && this.variation !== "image" && index.h("div", { class: "duet-hero-image", style: styles }), index.h("slot", { name: "bottom" }))));
213
+ }) }, this.processedBack.label))), (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (index.h("duet-icon", { class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })), index.h("div", { class: "duet-hero-text", part: "duet-hero-text" }, this.preHeading && (index.h("duet-paragraph", { margin: "none", class: "duet-hero-pre" }, this.preHeading)), index.h("slot", { name: "badge" }), (this.heading || this.hasHeadingSlot) && (index.h("duet-heading", { theme: this.theme, level: this.level, class: { "duet-hero-heading": true, "duet-hero-heading-has-pre": this.preHeading !== "" }, color: this.variation === "default" ? "gray-lightest" : "", visualLevel: this.variation === "gray" || this.variation === "minimal" ? "h2" : "h1" }, this.heading ? this.heading : index.h("slot", { name: "heading" }))), this.description && (index.h("duet-paragraph", { theme: this.theme, color: textColor, variation: "intro" }, this.description)), (this.variation === "gray" || this.variation === "minimal") && this.processedListItems && (index.h("duet-list", { theme: this.theme, "label-width": "30", breakpoint: "large", mobile: this.leftAlign ? undefined : "center" }, this.processedListItems.map(item => (index.h("duet-list-item", null, index.h("span", { slot: "label" }, item.label), index.h("span", { slot: "value" }, item.value)))))), this.buttonLabel && (index.h("duet-button", { url: this.buttonUrl, icon: this.icon, iconRight: this.iconRight, iconSize: this.iconSize, variation: buttonVariation, theme: this.theme, identifier: this.buttonId, onClick: event => this.handleClick(event, this.buttonData), fixed: true }, this.buttonLabel)), index.h("span", { class: "duet-hero-slot-unnamed" }, index.h("slot", null))), (this.variation === "gray" || this.variation === "minimal") && this.processedActions && (index.h("div", { class: "duet-hero-links" }, this.processedActions.map(item => (index.h("a", { class: "duet-hero-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleClick(event, item) }, index.h("div", { class: "duet-hero-action-icon" }, index.h("duet-icon", { size: "small", margin: "none", name: item.icon, color: "currentColor", outline: outlineColor })), index.h("span", null, item.label), item.external && index.h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), item.external && (index.h("div", { class: "duet-hero-action-arrow" }, index.h("duet-icon", { icon: actionNewWindowSmall.actionNewWindowSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))))))), this.image && this.variation !== "image" && index.h("div", { class: "duet-hero-image", style: styles }), index.h("slot", { name: "bottom" }))));
213
214
  }
214
215
  get element() { return index.getElement(this); }
215
216
  static get watchers() { return {
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const tokenUtils = require('./token-utils-fef5b4eb.js');
11
11
  require('./tokens.module-ef598645.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const formSearch = require('./form-search-d61b2843.js');
10
10
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
11
11
  const createId = require('./create-id-c3b984b1.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const isInternetExplorer = require('./is-internet-explorer-91361c56.js');
10
10
 
11
11
  const duetLayoutCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;flex:1 0 auto;width:100%}:host(.duet-middle){display:flex}:host(.duet-middle) .duet-layout{padding:36px 28px !important}@media (min-width: 36em){:host(.duet-middle) .duet-layout{padding:48px 36px !important}}@media (min-width: 62em){:host(.duet-middle) .duet-layout{padding:56px !important}}:host(.duet-ie){height:100%}:host(.duet-middle.duet-ie){height:auto}.duet-layout{position:relative;padding:0 16px;margin:48px auto 36px}@media (min-width: 36em){.duet-layout{margin-top:72px}}.duet-layout.duet-layout-has-top{margin-top:0}.duet-layout.duet-m-0{margin-top:0 !important;margin-bottom:0 !important}.duet-layout.duet-center{display:flex;align-items:center;justify-content:center;width:100%;max-width:888px}@media (min-width: 36em){.duet-layout.duet-center{padding:0 48px}}@media (min-width: 48em){.duet-layout.duet-center{padding:0 72px}}@media (min-width: 62em){.duet-layout.duet-center{width:100%}}@media (min-width: 36em){.duet-layout{padding:0 28px}}@media (min-width: 62em){.duet-layout{display:flex;flex-direction:row;padding:0 56px;margin-bottom:48px}}@media (min-width: 76.25em){.duet-layout{max-width:1110px;padding:0}}.duet-main,.duet-sidebar,.duet-layout-top,.duet-layout-bottom{display:block;width:100%}.duet-layout-top{position:relative;display:block;width:100%;margin:72px auto 0}.duet-layout-top.duet-m-0{margin-top:0 !important;margin-bottom:0 !important}.duet-layout-top .duet-layout-top-wrapper{padding:0 20px;margin:0 auto}@media (min-width: 36em){.duet-layout-top .duet-layout-top-wrapper{padding:0 28px}}@media (min-width: 62em){.duet-layout-top .duet-layout-top-wrapper{padding:0 56px}}@media (min-width: 76.25em){.duet-layout-top .duet-layout-top-wrapper{max-width:1110px;padding:0}}.duet-center .duet-layout-top-wrapper{max-width:888px}@media (min-width: 36em){.duet-center .duet-layout-top-wrapper{padding:0 48px}}@media (min-width: 48em){.duet-center .duet-layout-top-wrapper{padding:0 72px}}@media (min-width: 62em){.duet-main{min-width:600px;margin:0 auto}.has-sidebar .duet-main{max-width:734px;margin-right:20px}}@media (min-width: 62em){.duet-sidebar{min-width:256px;max-width:356px}}@media (min-width: 62em){.duet-sidebar-container{width:auto;max-width:356px}}@media (min-width: 62em){.duet-sidebar-container.has-tabs{margin-top:89px}}@media (min-width: 62em){.duet-sidebar-container.sticky{position:sticky}.duet-sidebar-container.sticky.with-links{top:calc(3rem + 20px)}.duet-sidebar-container.sticky.without-links{top:calc(4rem + 20px)}}";
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const watchOptions = require('./watch-options-d88afac0.js');
11
11
 
@@ -5,11 +5,11 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const bodyScrollLock_es6 = require('./bodyScrollLock.es6-6ef1142a.js');
10
10
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
11
11
  const createId = require('./create-id-c3b984b1.js');
12
- const focusUtils = require('./focus-utils-9226aef7.js');
12
+ const focusUtils = require('./focus-utils-fed98b6a.js');
13
13
  const keyboardUtils = require('./keyboard-utils-bb32119b.js');
14
14
  const languageUtils = require('./language-utils-4f62a7db.js');
15
15
  require('./string-utils-5cadd058.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const languageUtils = require('./language-utils-4f62a7db.js');
11
11
  const actionArrowDownSmall = require('./action-arrow-down-small-ef77a2d1.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const keyboardUtils = require('./keyboard-utils-bb32119b.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const jsUtils = require('./js-utils-134e0318.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const languageUtils = require('./language-utils-4f62a7db.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const watchOptions = require('./watch-options-d88afac0.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const tokens_module = require('./tokens.module-ef598645.js');
10
10
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
11
11
  const createId = require('./create-id-c3b984b1.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const languageUtils = require('./language-utils-4f62a7db.js');
11
11
  const createId = require('./create-id-c3b984b1.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const stringUtils = require('./string-utils-5cadd058.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const keyboardUtils = require('./keyboard-utils-bb32119b.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const inputUtils = require('./input-utils-b5e8f524.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const languageUtils = require('./language-utils-4f62a7db.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const tokens_module = require('./tokens.module-ef598645.js');
10
10
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
11
11
  const createId = require('./create-id-c3b984b1.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
 
10
10
  const DuetUploadAriaStatus = class {
11
11
  constructor(hostRef) {
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
 
10
10
  const duetVisuallyHiddenCss = ":host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:absolute !important;top:0;width:1px !important;height:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important;border:0 !important}";
11
11
 
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const index = require('./index-60a8ec8a.js');
6
+ const index = require('./index-b5a163e2.js');
7
7
  const appGlobals = require('./app-globals-a032b236.js');
8
8
 
9
9
  /*
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const index = require('./index-60a8ec8a.js');
6
+ const index = require('./index-b5a163e2.js');
7
7
 
8
8
  const focusElement = (element) => {
9
9
  if ("setFocus" in element) {
@@ -24,7 +24,7 @@ function _interopNamespace(e) {
24
24
  }
25
25
 
26
26
  const NAMESPACE = 'duet';
27
- const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"2.5.2"};
27
+ const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"3.0.0"};
28
28
 
29
29
  let scopeId;
30
30
  let contentRef;
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-60a8ec8a.js');
8
+ const index = require('./index-b5a163e2.js');
9
9
  const appGlobals = require('./app-globals-a032b236.js');
10
10
 
11
11
  /*
@@ -94,6 +94,13 @@ export class DuetFooter {
94
94
  this.handleClick(e);
95
95
  this.duetItemClick.emit(e);
96
96
  };
97
+ this.emitDuetEvent = (ev, data) => {
98
+ this.duetEvent.emit({
99
+ component: "duet-footer",
100
+ data,
101
+ originalEvent: ev,
102
+ });
103
+ };
97
104
  }
98
105
  /**
99
106
  * Component lifecycle events.
@@ -127,7 +134,7 @@ export class DuetFooter {
127
134
  this.variation !== "simple" && (h("duet-logo", { href: this.logoHref, onClick: this.handleLogoClick, size: "large", inverse: true, language: this.language, theme: this.theme })),
128
135
  this.processedItems &&
129
136
  this.variation !== "simple" &&
130
- this.processedItems.map(item => (h("a", { class: "duet-footer-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleItemClick(event, item) },
137
+ this.processedItems.map(item => (h("a", { class: "duet-footer-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleItemClick(event, item), onMouseEnter: event => this.emitDuetEvent(event, item), onTouchStart: event => this.emitDuetEvent(event, item) },
131
138
  h("div", { class: "duet-footer-icon" },
132
139
  h("duet-icon", { size: "medium", margin: "none", name: item.icon, color: "currentColor" })),
133
140
  h("span", null, item.label),
@@ -138,7 +145,7 @@ export class DuetFooter {
138
145
  h("slot", { name: "extra" }),
139
146
  h("p", { class: "duet-footer-menu", part: "menu" },
140
147
  h("span", { class: "duet-footer-copyright" }, `${copyrightLabel} ${new Date().getFullYear()}`),
141
- h("div", { class: "duet-footer-menu-links" }, this.processedMenu && (h(Fragment, null, this.processedMenu.map(item => (h("a", { href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleMenuClick(event, item) },
148
+ h("div", { class: "duet-footer-menu-links" }, this.processedMenu && (h(Fragment, null, this.processedMenu.map(item => (h("a", { href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleMenuClick(event, item), onMouseEnter: event => this.emitDuetEvent(event, item), onTouchStart: event => this.emitDuetEvent(event, item) },
142
149
  item.label,
143
150
  item.external && (h(Fragment, null,
144
151
  h("duet-visually-hidden", null,
@@ -458,6 +465,25 @@ export class DuetFooter {
458
465
  }
459
466
  }
460
467
  }
468
+ }, {
469
+ "method": "duetEvent",
470
+ "name": "duetEvent",
471
+ "bubbles": true,
472
+ "cancelable": true,
473
+ "composed": true,
474
+ "docs": {
475
+ "tags": [],
476
+ "text": "General event stream for the following events:\nitem: onMouseEnter, onTouchDown;\nmenuItem: onMouseEnter, onTouchDown;.\nYou can prevent\nthe default browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via\n**event.detail.data**."
477
+ },
478
+ "complexType": {
479
+ "original": "DuetFooterChangeEvent",
480
+ "resolved": "{ component: \"duet-footer\"; data: DuetFooterItem | DuetFooterIconItem; originalEvent: Event; }",
481
+ "references": {
482
+ "DuetFooterChangeEvent": {
483
+ "location": "local"
484
+ }
485
+ }
486
+ }
461
487
  }]; }
462
488
  static get elementRef() { return "element"; }
463
489
  static get watchers() { return [{
@@ -330,6 +330,13 @@ export class DuetHeader {
330
330
  }, 300);
331
331
  }
332
332
  };
333
+ this.emitDuetEvent = (ev, data) => {
334
+ this.duetEvent.emit({
335
+ component: "duet-header",
336
+ data,
337
+ originalEvent: ev,
338
+ });
339
+ };
333
340
  }
334
341
  /**
335
342
  * Component lifecycle events.
@@ -589,7 +596,7 @@ export class DuetHeader {
589
596
  !this.openMenu &&
590
597
  item.items &&
591
598
  !item.items.some(s => s.active === true)),
592
- }, href: item.href || "#", id: item.id || `header-item-${itemIndex}`, onClick: event => this.handleItemClick(event, item) },
599
+ }, href: item.href || "#", id: item.id || `header-item-${itemIndex}`, onClick: event => this.handleItemClick(event, item), onMouseEnter: event => this.emitDuetEvent(event, item), onTouchStart: event => this.emitDuetEvent(event, item) },
593
600
  item.label,
594
601
  item.badge && h("div", { class: "duet-header-badge" })),
595
602
  item.items &&
@@ -607,7 +614,7 @@ export class DuetHeader {
607
614
  secondLevelItem.items.map(thirdLevelItem => (h("a", { class: {
608
615
  "duet-header-item": true,
609
616
  active: thirdLevelItem.active === true,
610
- }, role: "menuitem", href: thirdLevelItem.href || "#", id: thirdLevelItem.id, onClick: event => this.handleItemClick(event, thirdLevelItem), onKeyDown: ev => this.handleArrowKeys(ev), target: thirdLevelItem.external ? "_blank" : "_self" },
617
+ }, role: "menuitem", href: thirdLevelItem.href || "#", id: thirdLevelItem.id, onClick: event => this.handleItemClick(event, thirdLevelItem), onKeyDown: ev => this.handleArrowKeys(ev), onMouseEnter: event => this.emitDuetEvent(event, thirdLevelItem), onTouchStart: event => this.emitDuetEvent(event, thirdLevelItem), target: thirdLevelItem.external ? "_blank" : "_self" },
611
618
  thirdLevelItem.icon && (h("div", { class: "duet-header-icon" },
612
619
  h("duet-icon", { margin: "none", size: "medium", name: thirdLevelItem.icon, color: "currentColor" }))),
613
620
  h("span", null, thirdLevelItem.label),
@@ -644,7 +651,7 @@ export class DuetHeader {
644
651
  skipToLabel(),
645
652
  h("div", { class: "logo-and-segment" },
646
653
  h("div", null, largeLogo()),
647
- this.processedItems && (h(DuetHeaderDropdown, { id: segmentId, label: activeSegment.label, active: this.isSegmentOpen, isOpen: this.isSegmentOpen, badge: false, toggleRef: el => (this.segmentItemsButtonEl = el), itemsRef: el => (this.segmentItemsEl = el), onToggle: event => this.toggleMenu(event, "segment") }, this.processedItems.map(item => (h("a", { class: { active: activeSegment === item }, role: "menuitem", href: item.href || "#", id: item.id, onClick: event => this.handleItemClick(event, item), onKeyDown: ev => this.handleArrowKeys(ev), target: item.external ? "_blank" : "_self" },
654
+ this.processedItems && (h(DuetHeaderDropdown, { id: segmentId, label: activeSegment.label, active: this.isSegmentOpen, isOpen: this.isSegmentOpen, badge: false, toggleRef: el => (this.segmentItemsButtonEl = el), itemsRef: el => (this.segmentItemsEl = el), onToggle: event => this.toggleMenu(event, "segment") }, this.processedItems.map(item => (h("a", { class: { active: activeSegment === item }, role: "menuitem", href: item.href || "#", id: item.id, onClick: event => this.handleItemClick(event, item), onKeyDown: ev => this.handleArrowKeys(ev), onMouseEnter: event => this.emitDuetEvent(event, item), onTouchStart: event => this.emitDuetEvent(event, item), target: item.external ? "_blank" : "_self" },
648
655
  item.icon && (h("div", { class: "duet-header-icon" },
649
656
  h("duet-icon", { margin: "none", size: "x-small", name: item.icon, color: "currentColor" }))),
650
657
  h("span", null, item.label),
@@ -655,7 +662,7 @@ export class DuetHeader {
655
662
  .map((secondLevelItem, secondLevelItemIndex) => {
656
663
  const id = secondLevelItem.id || `segment-item-${secondLevelItemIndex}`;
657
664
  return (h(DuetHeaderDropdown, { id: id, label: secondLevelItem.label, active: (!this.openMenu && secondLevelItem.active === true) || this.openMenu === id, isOpen: this.openMenu === id, badge: secondLevelItem.badge, toggleRef: el => (this.subMenuButtonRefs[id] = el), itemsRef: el => (this.subMenuItemRefs[id] = el), onToggle: event => this.toggleMenu(event, "sub", id) }, secondLevelItem.items &&
658
- secondLevelItem.items.map(thirdLevelItem => (h("a", { class: { active: thirdLevelItem.active }, role: "menuitem", href: thirdLevelItem.href || "#", id: thirdLevelItem.id, onClick: event => this.handleItemClick(event, thirdLevelItem), onKeyDown: ev => this.handleArrowKeys(ev), target: thirdLevelItem.external ? "_blank" : "_self" },
665
+ secondLevelItem.items.map(thirdLevelItem => (h("a", { class: { active: thirdLevelItem.active }, role: "menuitem", href: thirdLevelItem.href || "#", id: thirdLevelItem.id, onClick: event => this.handleItemClick(event, thirdLevelItem), onKeyDown: ev => this.handleArrowKeys(ev), onMouseEnter: event => this.emitDuetEvent(event, thirdLevelItem), onTouchStart: event => this.emitDuetEvent(event, thirdLevelItem), target: thirdLevelItem.external ? "_blank" : "_self" },
659
666
  thirdLevelItem.icon && (h("div", { class: "duet-header-icon" },
660
667
  h("duet-icon", { margin: "none", size: "medium", name: thirdLevelItem.icon, color: "currentColor" }))),
661
668
  h("span", null, thirdLevelItem.label),
@@ -1338,6 +1345,25 @@ export class DuetHeader {
1338
1345
  }
1339
1346
  }
1340
1347
  }
1348
+ }, {
1349
+ "method": "duetEvent",
1350
+ "name": "duetEvent",
1351
+ "bubbles": true,
1352
+ "cancelable": true,
1353
+ "composed": true,
1354
+ "docs": {
1355
+ "tags": [],
1356
+ "text": "General event stream for the following events:\nitem: onMouseEnter, onTouchDown;\nmenuItem: onMouseEnter, onTouchDown;.\nYou can prevent\nthe default browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via\n**event.detail.data**."
1357
+ },
1358
+ "complexType": {
1359
+ "original": "DuetHeaderChangeEvent",
1360
+ "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1361
+ "references": {
1362
+ "DuetHeaderChangeEvent": {
1363
+ "location": "local"
1364
+ }
1365
+ }
1366
+ }
1341
1367
  }]; }
1342
1368
  static get methods() { return {
1343
1369
  "closeMenus": {
@@ -237,6 +237,10 @@
237
237
  .duet-heading.h6.duet-heading-border {
238
238
  padding-bottom: 16px;
239
239
  }
240
+ .duet-heading.duet-normal, .duet-heading.duet-theme-turva.duet-normal {
241
+ font-style: normal !important;
242
+ font-weight: 400 !important;
243
+ }
240
244
  .duet-heading.duet-semibold, .duet-heading.duet-theme-turva.duet-semibold {
241
245
  font-style: normal !important;
242
246
  font-weight: 600 !important;
@@ -20,7 +20,7 @@ export class DuetHeading {
20
20
  */
21
21
  this.border = false;
22
22
  /**
23
- * This property allows you to set semibold font weight for all sizes
23
+ * This property allows you to set normal or semibold font weight for all sizes
24
24
  * when needed.
25
25
  */
26
26
  this.weight = "auto";
@@ -55,6 +55,7 @@ export class DuetHeading {
55
55
  "duet-heading": true,
56
56
  "duet-heading-border": this.border !== false,
57
57
  "duet-heading-border-solid": this.border === "solid",
58
+ "duet-normal": this.weight === "normal",
58
59
  "duet-semibold": this.weight === "semibold",
59
60
  "duet-heading-hyphenate": this.hyphenate,
60
61
  "duet-m-0": this.margin === "none",
@@ -163,7 +164,7 @@ export class DuetHeading {
163
164
  "mutable": false,
164
165
  "complexType": {
165
166
  "original": "DuetHeadingWeight",
166
- "resolved": "\"auto\" | \"semibold\"",
167
+ "resolved": "\"auto\" | \"normal\" | \"semibold\"",
167
168
  "references": {
168
169
  "DuetHeadingWeight": {
169
170
  "location": "local"
@@ -174,7 +175,7 @@ export class DuetHeading {
174
175
  "optional": false,
175
176
  "docs": {
176
177
  "tags": [],
177
- "text": "This property allows you to set semibold font weight for all sizes\nwhen needed."
178
+ "text": "This property allows you to set normal or semibold font weight for all sizes\nwhen needed."
178
179
  },
179
180
  "attribute": "weight",
180
181
  "reflect": false,
@@ -9,6 +9,7 @@ import { getLanguage, getLocaleString } from "../../utils/language-utils";
9
9
  import { parsePossibleJSON } from "../../utils/string-utils";
10
10
  /**
11
11
  * @part duet-hero - piercing selector for styling the hero container
12
+ * @part duet-hero-text - piercing selector for styling the hero text container
12
13
  * @slot default - This is an unamed slot for a text or extra button that is placed after any buttons (or list item)
13
14
  * @slot badge - This is a slot for a status badge that sits next to pre-heading inside the hero component.
14
15
  * @slot bottom - This is a slot for content under the main hero content.
@@ -136,6 +137,7 @@ export class DuetHero {
136
137
  */
137
138
  componentWillLoad() {
138
139
  inheritGlobalTheme(this);
140
+ this.hasHeadingSlot = !!this.element.querySelector('[slot="heading"]');
139
141
  this.refresh();
140
142
  }
141
143
  /**
@@ -214,10 +216,10 @@ export class DuetHero {
214
216
  analyticsId: this.processedBack.analyticsId,
215
217
  }) }, this.processedBack.label))),
216
218
  (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (h("duet-icon", { class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })),
217
- h("div", { class: "duet-hero-text" },
219
+ h("div", { class: "duet-hero-text", part: "duet-hero-text" },
218
220
  this.preHeading && (h("duet-paragraph", { margin: "none", class: "duet-hero-pre" }, this.preHeading)),
219
221
  h("slot", { name: "badge" }),
220
- h("duet-heading", { theme: this.theme, level: this.level, class: { "duet-hero-heading": true, "duet-hero-heading-has-pre": this.preHeading !== "" }, color: this.variation === "default" ? "gray-lightest" : "", visualLevel: this.variation === "gray" || this.variation === "minimal" ? "h2" : "h1" }, this.heading ? this.heading : h("slot", { name: "heading" })),
222
+ (this.heading || this.hasHeadingSlot) && (h("duet-heading", { theme: this.theme, level: this.level, class: { "duet-hero-heading": true, "duet-hero-heading-has-pre": this.preHeading !== "" }, color: this.variation === "default" ? "gray-lightest" : "", visualLevel: this.variation === "gray" || this.variation === "minimal" ? "h2" : "h1" }, this.heading ? this.heading : h("slot", { name: "heading" }))),
221
223
  this.description && (h("duet-paragraph", { theme: this.theme, color: textColor, variation: "intro" }, this.description)),
222
224
  (this.variation === "gray" || this.variation === "minimal") && this.processedListItems && (h("duet-list", { theme: this.theme, "label-width": "30", breakpoint: "large", mobile: this.leftAlign ? undefined : "center" }, this.processedListItems.map(item => (h("duet-list-item", null,
223
225
  h("span", { slot: "label" }, item.label),