@duetds/components 8.0.6 → 8.1.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 (1195) hide show
  1. package/hydrate/index.d.ts +2 -2
  2. package/hydrate/index.js +19099 -17881
  3. package/lib/cjs/app-globals-cd75f624.js +54 -0
  4. package/lib/cjs/{common-strings-86913e94.js → common-strings-22c70ef0.js} +6 -6
  5. package/lib/cjs/create-id-1f8c438f.js +13 -0
  6. package/lib/cjs/duet-action-button.cjs.entry.js +133 -133
  7. package/lib/cjs/duet-alert.cjs.entry.js +106 -106
  8. package/lib/cjs/duet-badge.cjs.entry.js +29 -29
  9. package/lib/cjs/duet-banner.cjs.entry.js +52 -52
  10. package/lib/cjs/duet-breadcrumb.cjs.entry.js +41 -41
  11. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +51 -51
  12. package/lib/cjs/duet-button_2.cjs.entry.js +229 -229
  13. package/lib/cjs/duet-callout.cjs.entry.js +28 -28
  14. package/lib/cjs/duet-caption_4.cjs.entry.js +187 -187
  15. package/lib/cjs/duet-card.cjs.entry.js +93 -93
  16. package/lib/cjs/duet-checkbox.cjs.entry.js +85 -85
  17. package/lib/cjs/duet-checkmark.cjs.entry.js +23 -23
  18. package/lib/cjs/duet-chip.cjs.entry.js +182 -182
  19. package/lib/cjs/duet-choice_2.cjs.entry.js +392 -392
  20. package/lib/cjs/duet-collapsible.cjs.entry.js +98 -98
  21. package/lib/cjs/duet-combobox.cjs.entry.js +362 -362
  22. package/lib/cjs/duet-contact-card.cjs.entry.js +49 -49
  23. package/lib/cjs/duet-cookie-consent.cjs.entry.js +35 -35
  24. package/lib/cjs/duet-date-picker.cjs.entry.js +610 -610
  25. package/lib/cjs/duet-divider_2.cjs.entry.js +53 -53
  26. package/lib/cjs/duet-editable-table_3.cjs.entry.js +1247 -1247
  27. package/lib/cjs/duet-empty-state.cjs.entry.js +26 -26
  28. package/lib/cjs/duet-fieldset.cjs.entry.js +50 -50
  29. package/lib/cjs/duet-file-chooser.cjs.entry.js +44 -44
  30. package/lib/cjs/duet-footer.cjs.entry.js +118 -118
  31. package/lib/cjs/duet-grid_2.cjs.entry.js +185 -185
  32. package/lib/cjs/duet-header_2.cjs.entry.js +610 -610
  33. package/lib/cjs/duet-hero.cjs.entry.js +172 -172
  34. package/lib/cjs/duet-icon.cjs.entry.js +141 -141
  35. package/lib/cjs/duet-input_2.cjs.entry.js +346 -346
  36. package/lib/cjs/duet-layout.cjs.entry.js +51 -51
  37. package/lib/cjs/duet-list_2.cjs.entry.js +99 -99
  38. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +70 -70
  39. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +44 -44
  40. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +93 -93
  41. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +58 -58
  42. package/lib/cjs/duet-menu-bar.cjs.entry.js +116 -116
  43. package/lib/cjs/duet-modal.cjs.entry.js +188 -188
  44. package/lib/cjs/duet-multiselect.cjs.entry.js +206 -206
  45. package/lib/cjs/duet-nav.cjs.entry.js +20 -20
  46. package/lib/cjs/duet-notification_2.cjs.entry.js +140 -140
  47. package/lib/cjs/duet-number-input.cjs.entry.js +337 -337
  48. package/lib/cjs/duet-page-heading.cjs.entry.js +26 -26
  49. package/lib/cjs/duet-pagination_2.cjs.entry.js +511 -511
  50. package/lib/cjs/duet-popup-menu-item.cjs.entry.js +62 -62
  51. package/lib/cjs/duet-popup-menu.cjs.entry.js +147 -147
  52. package/lib/cjs/duet-progress.cjs.entry.js +54 -54
  53. package/lib/cjs/duet-promo-card.cjs.entry.js +40 -40
  54. package/lib/cjs/duet-radio_2.cjs.entry.js +197 -197
  55. package/lib/cjs/duet-range-slider.cjs.entry.js +105 -105
  56. package/lib/cjs/duet-scrollable_3.cjs.entry.js +384 -386
  57. package/lib/cjs/duet-section-layout.cjs.entry.js +21 -21
  58. package/lib/cjs/duet-select.cjs.entry.js +156 -156
  59. package/lib/cjs/duet-shaped-image.cjs.entry.js +28 -28
  60. package/lib/cjs/duet-show-more.cjs.entry.js +98 -98
  61. package/lib/cjs/duet-slideout-lang.cjs.entry.js +36 -36
  62. package/lib/cjs/duet-slideout-link.cjs.entry.js +33 -33
  63. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +50 -50
  64. package/lib/cjs/duet-slideout-panel.cjs.entry.js +120 -120
  65. package/lib/cjs/duet-slideout.cjs.entry.js +194 -194
  66. package/lib/cjs/duet-step_2.cjs.entry.js +182 -184
  67. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +36 -36
  68. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +103 -103
  69. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +59 -59
  70. package/lib/cjs/duet-submenu-bar.cjs.entry.js +110 -110
  71. package/lib/cjs/duet-textarea.cjs.entry.js +160 -160
  72. package/lib/cjs/duet-toggle.cjs.entry.js +72 -72
  73. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +35 -35
  74. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +59 -59
  75. package/lib/cjs/duet-toolbar-link.cjs.entry.js +31 -31
  76. package/lib/cjs/duet-toolbar.cjs.entry.js +34 -34
  77. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +98 -80
  78. package/lib/cjs/duet-tooltip.cjs.entry.js +185 -187
  79. package/lib/cjs/duet-tray.cjs.entry.js +82 -82
  80. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +65 -65
  81. package/lib/cjs/duet-upload-item.cjs.entry.js +81 -81
  82. package/lib/cjs/duet-visually-hidden.cjs.entry.js +12 -12
  83. package/lib/cjs/duet.cjs.js +4 -4
  84. package/lib/cjs/errorcodes.utils-a86b1f94.js +39 -0
  85. package/lib/cjs/focus-utils-9b549956.js +21 -0
  86. package/lib/cjs/{index-2cce7b13.js → index-ce232ed8.js} +106 -45
  87. package/lib/cjs/input-utils-1096a2c5.js +56 -0
  88. package/lib/cjs/{is-internet-explorer-76c3b538.js → is-internet-explorer-e7f58ebc.js} +2 -2
  89. package/lib/cjs/{js-utils-b20cfc79.js → js-utils-92e24ba1.js} +27 -27
  90. package/lib/cjs/{language-utils-dc19e8b6.js → language-utils-e8a527e5.js} +74 -74
  91. package/lib/cjs/loader.cjs.js +3 -3
  92. package/lib/cjs/{slot-query-b7555763.js → slot-query-3259af5b.js} +1 -1
  93. package/lib/cjs/string-utils-053749ff.js +59 -0
  94. package/lib/cjs/teleport-e9d05bca.js +99 -0
  95. package/lib/cjs/themeable-component-83a2a0d4.js +15 -0
  96. package/lib/cjs/token-utils-84b3bca6.js +124 -0
  97. package/lib/cjs/watch-options-30a12622.js +61 -0
  98. package/lib/collection/collection-manifest.json +2 -2
  99. package/lib/collection/common/slot-query.js +3 -3
  100. package/lib/collection/common/themeable-component.js +6 -6
  101. package/lib/collection/common-strings.js +6 -6
  102. package/lib/collection/components/duet-action-button/duet-action-button.a11y.e2e.js +5 -5
  103. package/lib/collection/components/duet-action-button/duet-action-button.js +570 -569
  104. package/lib/collection/components/duet-alert/duet-alert.a11y.e2e.js +10 -10
  105. package/lib/collection/components/duet-alert/duet-alert.e2e.js +47 -47
  106. package/lib/collection/components/duet-alert/duet-alert.js +442 -441
  107. package/lib/collection/components/duet-badge/duet-badge.a11y.e2e.js +10 -10
  108. package/lib/collection/components/duet-badge/duet-badge.e2e.js +21 -21
  109. package/lib/collection/components/duet-badge/duet-badge.js +134 -134
  110. package/lib/collection/components/duet-banner/duet-banner.a11y.e2e.js +5 -5
  111. package/lib/collection/components/duet-banner/duet-banner.e2e.js +16 -16
  112. package/lib/collection/components/duet-banner/duet-banner.js +309 -309
  113. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +139 -139
  114. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.a11y.e2e.js +5 -5
  115. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.e2e.js +6 -6
  116. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +112 -112
  117. package/lib/collection/components/duet-button/duet-button.a11y.e2e.js +30 -30
  118. package/lib/collection/components/duet-button/duet-button.e2e.js +187 -187
  119. package/lib/collection/components/duet-button/duet-button.js +1068 -1067
  120. package/lib/collection/components/duet-callout/duet-callout.a11y.e2e.js +5 -5
  121. package/lib/collection/components/duet-callout/duet-callout.e2e.js +15 -15
  122. package/lib/collection/components/duet-callout/duet-callout.js +88 -88
  123. package/lib/collection/components/duet-caption/duet-caption.a11y.e2e.js +5 -5
  124. package/lib/collection/components/duet-caption/duet-caption.e2e.js +20 -20
  125. package/lib/collection/components/duet-caption/duet-caption.js +131 -131
  126. package/lib/collection/components/duet-card/duet-card.a11y.e2e.js +10 -10
  127. package/lib/collection/components/duet-card/duet-card.e2e.js +85 -85
  128. package/lib/collection/components/duet-card/duet-card.js +492 -491
  129. package/lib/collection/components/duet-checkbox/duet-checkbox.a11y.e2e.js +10 -10
  130. package/lib/collection/components/duet-checkbox/duet-checkbox.e2e.js +103 -103
  131. package/lib/collection/components/duet-checkbox/duet-checkbox.js +553 -549
  132. package/lib/collection/components/duet-chip/duet-chip.a11y.e2e.js +10 -10
  133. package/lib/collection/components/duet-chip/duet-chip.e2e.js +40 -40
  134. package/lib/collection/components/duet-chip/duet-chip.js +487 -486
  135. package/lib/collection/components/duet-choice/duet-checkmark.js +136 -136
  136. package/lib/collection/components/duet-choice/duet-choice.a11y.e2e.js +25 -25
  137. package/lib/collection/components/duet-choice/duet-choice.e2e.js +171 -171
  138. package/lib/collection/components/duet-choice/duet-choice.js +1092 -1088
  139. package/lib/collection/components/duet-choice-group/duet-choice-group.a11y.e2e.js +5 -5
  140. package/lib/collection/components/duet-choice-group/duet-choice-group.e2e.js +63 -63
  141. package/lib/collection/components/duet-choice-group/duet-choice-group.js +456 -453
  142. package/lib/collection/components/duet-collapsible/duet-collapsible.a11y.e2e.js +10 -10
  143. package/lib/collection/components/duet-collapsible/duet-collapsible.e2e.js +87 -87
  144. package/lib/collection/components/duet-collapsible/duet-collapsible.js +363 -362
  145. package/lib/collection/components/duet-combobox/duet-combobox-select-single.js +2 -2
  146. package/lib/collection/components/duet-combobox/duet-combobox-select.js +8 -8
  147. package/lib/collection/components/duet-combobox/duet-combobox.a11y.e2e.js +5 -5
  148. package/lib/collection/components/duet-combobox/duet-combobox.e2e.js +115 -115
  149. package/lib/collection/components/duet-combobox/duet-combobox.js +670 -669
  150. package/lib/collection/components/duet-contact-card/duet-contact-card.a11y.e2e.js +5 -5
  151. package/lib/collection/components/duet-contact-card/duet-contact-card.js +255 -255
  152. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.a11y.e2e.js +5 -5
  153. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.e2e.js +16 -16
  154. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.js +127 -127
  155. package/lib/collection/components/duet-date-picker/date-i18n.js +97 -97
  156. package/lib/collection/components/duet-date-picker/date-picker-day.js +9 -9
  157. package/lib/collection/components/duet-date-picker/date-picker-input.js +5 -5
  158. package/lib/collection/components/duet-date-picker/date-picker-month.js +16 -16
  159. package/lib/collection/components/duet-date-picker/date-utils.js +95 -95
  160. package/lib/collection/components/duet-date-picker/date-utils.spec.js +323 -323
  161. package/lib/collection/components/duet-date-picker/duet-date-picker.a11y.e2e.js +5 -5
  162. package/lib/collection/components/duet-date-picker/duet-date-picker.e2e.js +618 -618
  163. package/lib/collection/components/duet-date-picker/duet-date-picker.js +1049 -1044
  164. package/lib/collection/components/duet-date-picker/utils.js +29 -29
  165. package/lib/collection/components/duet-divider/duet-divider.a11y.e2e.js +5 -5
  166. package/lib/collection/components/duet-divider/duet-divider.e2e.js +24 -24
  167. package/lib/collection/components/duet-divider/duet-divider.js +112 -112
  168. package/lib/collection/components/duet-editable-table/duet-editable-table-tabledata.js +7 -7
  169. package/lib/collection/components/duet-editable-table/duet-editable-table.a11y.e2e.js +5 -5
  170. package/lib/collection/components/duet-editable-table/duet-editable-table.e2e.js +19 -19
  171. package/lib/collection/components/duet-editable-table/duet-editable-table.js +501 -498
  172. package/lib/collection/components/duet-empty-state/duet-empty-state.a11y.e2e.js +5 -5
  173. package/lib/collection/components/duet-empty-state/duet-empty-state.e2e.js +10 -10
  174. package/lib/collection/components/duet-empty-state/duet-empty-state.js +110 -110
  175. package/lib/collection/components/duet-fieldset/duet-fieldset.a11y.e2e.js +5 -5
  176. package/lib/collection/components/duet-fieldset/duet-fieldset.e2e.js +5 -5
  177. package/lib/collection/components/duet-fieldset/duet-fieldset.js +245 -245
  178. package/lib/collection/components/duet-file-chooser/duet-file-chooser.js +179 -179
  179. package/lib/collection/components/duet-footer/duet-footer.a11y.e2e.js +5 -5
  180. package/lib/collection/components/duet-footer/duet-footer.e2e.js +163 -163
  181. package/lib/collection/components/duet-footer/duet-footer.js +485 -485
  182. package/lib/collection/components/duet-grid/duet-grid.a11y.e2e.js +5 -5
  183. package/lib/collection/components/duet-grid/duet-grid.e2e.js +36 -36
  184. package/lib/collection/components/duet-grid/duet-grid.js +345 -342
  185. package/lib/collection/components/duet-grid-item/duet-grid-item.js +233 -230
  186. package/lib/collection/components/duet-header/duet-header-dropdown.js +12 -12
  187. package/lib/collection/components/duet-header/duet-header-icon.js +2 -2
  188. package/lib/collection/components/duet-header/duet-header.a11y.e2e.js +5 -5
  189. package/lib/collection/components/duet-header/duet-header.e2e.js +430 -430
  190. package/lib/collection/components/duet-header/duet-header.js +1297 -1295
  191. package/lib/collection/components/duet-heading/duet-heading.a11y.e2e.js +5 -5
  192. package/lib/collection/components/duet-heading/duet-heading.e2e.js +21 -21
  193. package/lib/collection/components/duet-heading/duet-heading.js +230 -230
  194. package/lib/collection/components/duet-hero/duet-hero.a11y.e2e.js +15 -15
  195. package/lib/collection/components/duet-hero/duet-hero.e2e.js +166 -166
  196. package/lib/collection/components/duet-hero/duet-hero.js +814 -814
  197. package/lib/collection/components/duet-icon/duet-icon.a11y.e2e.js +5 -5
  198. package/lib/collection/components/duet-icon/duet-icon.e2e.js +26 -26
  199. package/lib/collection/components/duet-icon/duet-icon.js +392 -392
  200. package/lib/collection/components/duet-icon/icon-utils.js +59 -59
  201. package/lib/collection/components/duet-icon/icon-utils.spec.js +76 -76
  202. package/lib/collection/components/duet-input/duet-input.a11y.e2e.js +20 -20
  203. package/lib/collection/components/duet-input/duet-input.e2e.js +195 -195
  204. package/lib/collection/components/duet-input/duet-input.js +1249 -1245
  205. package/lib/collection/components/duet-label/duet-label.a11y.e2e.js +5 -5
  206. package/lib/collection/components/duet-label/duet-label.e2e.js +26 -26
  207. package/lib/collection/components/duet-label/duet-label.js +134 -131
  208. package/lib/collection/components/duet-layout/duet-layout.a11y.e2e.js +5 -5
  209. package/lib/collection/components/duet-layout/duet-layout.e2e.js +26 -26
  210. package/lib/collection/components/duet-layout/duet-layout.js +207 -207
  211. package/lib/collection/components/duet-link/duet-link.a11y.e2e.js +15 -15
  212. package/lib/collection/components/duet-link/duet-link.e2e.js +47 -47
  213. package/lib/collection/components/duet-link/duet-link.js +436 -435
  214. package/lib/collection/components/duet-list/duet-list.a11y.e2e.js +11 -11
  215. package/lib/collection/components/duet-list/duet-list.e2e.js +50 -50
  216. package/lib/collection/components/duet-list/duet-list.js +292 -292
  217. package/lib/collection/components/duet-list-item/duet-list-item.js +81 -81
  218. package/lib/collection/components/duet-logo/duet-logo.a11y.e2e.js +5 -5
  219. package/lib/collection/components/duet-logo/duet-logo.e2e.js +36 -36
  220. package/lib/collection/components/duet-logo/duet-logo.js +293 -292
  221. package/lib/collection/components/duet-menu-bar/duet-menu-bar.a11y.e2e.js +5 -5
  222. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +261 -261
  223. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +347 -346
  224. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +224 -223
  225. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +133 -133
  226. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +170 -170
  227. package/lib/collection/components/duet-modal/duet-modal.a11y.e2e.js +10 -10
  228. package/lib/collection/components/duet-modal/duet-modal.e2e.js +78 -78
  229. package/lib/collection/components/duet-modal/duet-modal.js +687 -687
  230. package/lib/collection/components/duet-multiselect/duet-multiselect.a11y.e2e.js +5 -5
  231. package/lib/collection/components/duet-multiselect/duet-multiselect.e2e.js +87 -87
  232. package/lib/collection/components/duet-multiselect/duet-multiselect.js +654 -653
  233. package/lib/collection/components/duet-nav/duet-nav.js +56 -56
  234. package/lib/collection/components/duet-notification/duet-notification.a11y.e2e.js +5 -5
  235. package/lib/collection/components/duet-notification/duet-notification.e2e.js +6 -6
  236. package/lib/collection/components/duet-notification/duet-notification.js +257 -259
  237. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.a11y.e2e.js +10 -10
  238. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.e2e.js +141 -141
  239. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +379 -383
  240. package/lib/collection/components/duet-number-input/duet-number-input-negative.e2e.js +26 -26
  241. package/lib/collection/components/duet-number-input/duet-number-input.a11y.e2e.js +5 -5
  242. package/lib/collection/components/duet-number-input/duet-number-input.e2e.js +232 -232
  243. package/lib/collection/components/duet-number-input/duet-number-input.js +1117 -1113
  244. package/lib/collection/components/duet-page-heading/duet-page-heading.a11y.e2e.js +5 -5
  245. package/lib/collection/components/duet-page-heading/duet-page-heading.js +104 -104
  246. package/lib/collection/components/duet-pagination/duet-pagination-utils.js +4 -4
  247. package/lib/collection/components/duet-pagination/duet-pagination.a11y.e2e.js +10 -10
  248. package/lib/collection/components/duet-pagination/duet-pagination.e2e.js +79 -79
  249. package/lib/collection/components/duet-pagination/duet-pagination.js +677 -677
  250. package/lib/collection/components/duet-paragraph/duet-paragraph.a11y.e2e.js +5 -5
  251. package/lib/collection/components/duet-paragraph/duet-paragraph.e2e.js +21 -21
  252. package/lib/collection/components/duet-paragraph/duet-paragraph.js +190 -190
  253. package/lib/collection/components/duet-popup-menu/duet-popup-menu.a11y.e2e.js +5 -5
  254. package/lib/collection/components/duet-popup-menu/duet-popup-menu.js +407 -407
  255. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +344 -343
  256. package/lib/collection/components/duet-progress/duet-progress.a11y.e2e.js +7 -7
  257. package/lib/collection/components/duet-progress/duet-progress.e2e.js +6 -6
  258. package/lib/collection/components/duet-progress/duet-progress.js +276 -273
  259. package/lib/collection/components/duet-promo-card/duet-promo-card.a11y.e2e.js +5 -5
  260. package/lib/collection/components/duet-promo-card/duet-promo-card.e2e.js +16 -16
  261. package/lib/collection/components/duet-promo-card/duet-promo-card.js +206 -206
  262. package/lib/collection/components/duet-radio/duet-radio.a11y.e2e.js +5 -5
  263. package/lib/collection/components/duet-radio/duet-radio.e2e.js +126 -126
  264. package/lib/collection/components/duet-radio/duet-radio.js +609 -605
  265. package/lib/collection/components/duet-radio-group/duet-radio-group.a11y.e2e.js +10 -10
  266. package/lib/collection/components/duet-radio-group/duet-radio-group.e2e.js +39 -39
  267. package/lib/collection/components/duet-radio-group/duet-radio-group.js +423 -420
  268. package/lib/collection/components/duet-range-slider/duet-range-slider.a11y.e2e.js +5 -5
  269. package/lib/collection/components/duet-range-slider/duet-range-slider.e2e.js +51 -51
  270. package/lib/collection/components/duet-range-slider/duet-range-slider.js +561 -557
  271. package/lib/collection/components/duet-range-stepper/duet-range-stepper.a11y.e2e.js +5 -5
  272. package/lib/collection/components/duet-range-stepper/duet-range-stepper.e2e.js +46 -46
  273. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +341 -341
  274. package/lib/collection/components/duet-range-stepper/duet-range-stepper.spec.js +17 -17
  275. package/lib/collection/components/duet-scrollable/duet-scrollable.a11y.e2e.js +5 -5
  276. package/lib/collection/components/duet-scrollable/duet-scrollable.e2e.js +6 -6
  277. package/lib/collection/components/duet-scrollable/duet-scrollable.js +294 -294
  278. package/lib/collection/components/duet-section-layout/duet-section-layout.a11y.e2e.js +5 -5
  279. package/lib/collection/components/duet-section-layout/duet-section-layout.e2e.js +16 -16
  280. package/lib/collection/components/duet-section-layout/duet-section-layout.js +75 -75
  281. package/lib/collection/components/duet-select/duet-select.a11y.e2e.js +10 -10
  282. package/lib/collection/components/duet-select/duet-select.e2e.js +201 -201
  283. package/lib/collection/components/duet-select/duet-select.js +722 -718
  284. package/lib/collection/components/duet-shaped-image/duet-shaped-image.a11y.e2e.js +5 -5
  285. package/lib/collection/components/duet-shaped-image/duet-shaped-image.js +143 -143
  286. package/lib/collection/components/duet-show-more/duet-show-more.a11y.e2e.js +5 -5
  287. package/lib/collection/components/duet-show-more/duet-show-more.js +436 -436
  288. package/lib/collection/components/duet-slideout/duet-slideout.a11y.e2e.js +5 -5
  289. package/lib/collection/components/duet-slideout/duet-slideout.js +408 -407
  290. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +75 -75
  291. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +215 -215
  292. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +282 -281
  293. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +177 -176
  294. package/lib/collection/components/duet-spacer/duet-spacer.a11y.e2e.js +5 -5
  295. package/lib/collection/components/duet-spacer/duet-spacer.e2e.js +21 -21
  296. package/lib/collection/components/duet-spacer/duet-spacer.js +110 -110
  297. package/lib/collection/components/duet-spinner/duet-spinner.a11y.e2e.js +5 -5
  298. package/lib/collection/components/duet-spinner/duet-spinner.e2e.js +23 -23
  299. package/lib/collection/components/duet-spinner/duet-spinner.js +131 -131
  300. package/lib/collection/components/duet-step/duet-step.e2e.js +83 -83
  301. package/lib/collection/components/duet-step/duet-step.js +292 -290
  302. package/lib/collection/components/duet-stepper/duet-stepper.a11y.e2e.js +8 -8
  303. package/lib/collection/components/duet-stepper/duet-stepper.e2e.js +49 -49
  304. package/lib/collection/components/duet-stepper/duet-stepper.js +243 -243
  305. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.a11y.e2e.js +5 -5
  306. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +218 -217
  307. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +235 -234
  308. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +162 -162
  309. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +154 -154
  310. package/lib/collection/components/duet-tab/duet-tab.e2e.js +10 -10
  311. package/lib/collection/components/duet-tab/duet-tab.js +162 -161
  312. package/lib/collection/components/duet-tab-group/duet-tab-group.a11y.e2e.js +5 -5
  313. package/lib/collection/components/duet-tab-group/duet-tab-group.e2e.js +60 -60
  314. package/lib/collection/components/duet-tab-group/duet-tab-group.js +633 -632
  315. package/lib/collection/components/duet-table/duet-table.a11y.e2e.js +5 -5
  316. package/lib/collection/components/duet-table/duet-table.e2e.js +25 -25
  317. package/lib/collection/components/duet-table/duet-table.js +284 -281
  318. package/lib/collection/components/duet-textarea/duet-textarea.a11y.e2e.js +10 -10
  319. package/lib/collection/components/duet-textarea/duet-textarea.e2e.js +193 -193
  320. package/lib/collection/components/duet-textarea/duet-textarea.js +849 -845
  321. package/lib/collection/components/duet-toggle/duet-toggle.a11y.e2e.js +5 -5
  322. package/lib/collection/components/duet-toggle/duet-toggle.e2e.js +66 -66
  323. package/lib/collection/components/duet-toggle/duet-toggle.js +468 -464
  324. package/lib/collection/components/duet-toolbar/duet-toolbar.a11y.e2e.js +5 -5
  325. package/lib/collection/components/duet-toolbar/duet-toolbar.js +105 -105
  326. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +221 -220
  327. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +160 -160
  328. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +156 -156
  329. package/lib/collection/components/duet-tooltip/duet-tooltip-button.js +194 -164
  330. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +280 -251
  331. package/lib/collection/components/duet-tooltip/duet-tooltip.a11y.e2e.js +14 -14
  332. package/lib/collection/components/duet-tooltip/duet-tooltip.e2e.js +76 -76
  333. package/lib/collection/components/duet-tooltip/duet-tooltip.js +533 -529
  334. package/lib/collection/components/duet-tray/duet-tray.a11y.e2e.js +5 -5
  335. package/lib/collection/components/duet-tray/duet-tray.e2e.js +67 -67
  336. package/lib/collection/components/duet-tray/duet-tray.js +315 -315
  337. package/lib/collection/components/duet-upload/duet-upload.e2e.js +40 -40
  338. package/lib/collection/components/duet-upload/duet-upload.js +2282 -2276
  339. package/lib/collection/components/duet-upload/errorcodes.utils.js +22 -22
  340. package/lib/collection/components/duet-upload/mock.helpers.js +85 -85
  341. package/lib/collection/components/duet-upload/upload-editable-item-error.js +4 -4
  342. package/lib/collection/components/duet-upload/upload-editable-item-success.js +15 -15
  343. package/lib/collection/components/duet-upload/upload-item-category.js +2 -2
  344. package/lib/collection/components/duet-upload/upload-item-header.js +4 -4
  345. package/lib/collection/components/duet-upload/upload-validators.js +96 -96
  346. package/lib/collection/components/duet-upload/upload-validators.spec.js +35 -35
  347. package/lib/collection/components/duet-upload/upload.helpers.js +8 -8
  348. package/lib/collection/components/duet-upload/xhr.helpers.js +26 -26
  349. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +194 -194
  350. package/lib/collection/components/duet-upload-item/duet-upload-item.js +306 -306
  351. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.a11y.e2e.js +5 -5
  352. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.e2e.js +6 -6
  353. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +20 -20
  354. package/lib/collection/global/duet-global.js +22 -22
  355. package/lib/collection/global/log-wrapper.js +29 -29
  356. package/lib/collection/utils/axe-core-utils.js +24 -24
  357. package/lib/collection/utils/create-id.js +2 -2
  358. package/lib/collection/utils/create-id.spec.js +6 -6
  359. package/lib/collection/utils/fixture-utils.js +25 -25
  360. package/lib/collection/utils/focus-utils.js +7 -7
  361. package/lib/collection/utils/group-by.js +9 -9
  362. package/lib/collection/utils/input-utils.js +25 -25
  363. package/lib/collection/utils/is-internet-explorer.js +2 -2
  364. package/lib/collection/utils/js-utils.js +38 -38
  365. package/lib/collection/utils/js-utils.spec.js +14 -14
  366. package/lib/collection/utils/language-utils.js +73 -73
  367. package/lib/collection/utils/language-utils.spec.js +151 -151
  368. package/lib/collection/utils/math.utils.js +59 -59
  369. package/lib/collection/utils/math.utils.spec.js +130 -130
  370. package/lib/collection/utils/picture-utils.js +2 -2
  371. package/lib/collection/utils/string-utils.js +31 -31
  372. package/lib/collection/utils/string-utils.spec.js +32 -32
  373. package/lib/collection/utils/teleport.js +77 -77
  374. package/lib/collection/utils/template-utils.js +18 -18
  375. package/lib/collection/utils/template-utils.spec.js +33 -33
  376. package/lib/collection/utils/test-utils.js +31 -31
  377. package/lib/collection/utils/token-utils.js +96 -96
  378. package/lib/collection/utils/token-utils.spec.js +170 -170
  379. package/lib/collection/utils/watch-options.js +44 -44
  380. package/lib/dist-custom-elements/duet-action-button.d.ts +2 -2
  381. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  382. package/lib/dist-custom-elements/duet-alert.d.ts +2 -2
  383. package/lib/dist-custom-elements/duet-alert.js +1 -1
  384. package/lib/dist-custom-elements/duet-badge.d.ts +2 -2
  385. package/lib/dist-custom-elements/duet-badge.js +1 -1
  386. package/lib/dist-custom-elements/duet-banner.d.ts +2 -2
  387. package/lib/dist-custom-elements/duet-banner.js +96 -96
  388. package/lib/dist-custom-elements/duet-breadcrumb.d.ts +2 -2
  389. package/lib/dist-custom-elements/duet-breadcrumb.js +66 -66
  390. package/lib/dist-custom-elements/duet-breadcrumbs.d.ts +2 -2
  391. package/lib/dist-custom-elements/duet-breadcrumbs.js +68 -68
  392. package/lib/dist-custom-elements/duet-button.d.ts +2 -2
  393. package/lib/dist-custom-elements/duet-button.js +1 -1
  394. package/lib/dist-custom-elements/duet-callout.d.ts +2 -2
  395. package/lib/dist-custom-elements/duet-callout.js +57 -57
  396. package/lib/dist-custom-elements/duet-caption.d.ts +2 -2
  397. package/lib/dist-custom-elements/duet-caption.js +1 -1
  398. package/lib/dist-custom-elements/duet-card.d.ts +2 -2
  399. package/lib/dist-custom-elements/duet-card.js +137 -137
  400. package/lib/dist-custom-elements/duet-checkbox.d.ts +2 -2
  401. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  402. package/lib/dist-custom-elements/duet-checkmark.d.ts +2 -2
  403. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  404. package/lib/dist-custom-elements/duet-chip.d.ts +2 -2
  405. package/lib/dist-custom-elements/duet-chip.js +219 -219
  406. package/lib/dist-custom-elements/duet-choice-group.d.ts +2 -2
  407. package/lib/dist-custom-elements/duet-choice-group.js +189 -189
  408. package/lib/dist-custom-elements/duet-choice.d.ts +2 -2
  409. package/lib/dist-custom-elements/duet-choice.js +357 -357
  410. package/lib/dist-custom-elements/duet-collapsible.d.ts +2 -2
  411. package/lib/dist-custom-elements/duet-collapsible.js +130 -130
  412. package/lib/dist-custom-elements/duet-combobox.d.ts +2 -2
  413. package/lib/dist-custom-elements/duet-combobox.js +405 -405
  414. package/lib/dist-custom-elements/duet-contact-card.d.ts +2 -2
  415. package/lib/dist-custom-elements/duet-contact-card.js +116 -116
  416. package/lib/dist-custom-elements/duet-cookie-consent.d.ts +2 -2
  417. package/lib/dist-custom-elements/duet-cookie-consent.js +82 -82
  418. package/lib/dist-custom-elements/duet-date-picker.d.ts +2 -2
  419. package/lib/dist-custom-elements/duet-date-picker.js +728 -728
  420. package/lib/dist-custom-elements/duet-divider.d.ts +2 -2
  421. package/lib/dist-custom-elements/duet-divider.js +1 -1
  422. package/lib/dist-custom-elements/duet-editable-table.d.ts +2 -2
  423. package/lib/dist-custom-elements/duet-editable-table.js +230 -230
  424. package/lib/dist-custom-elements/duet-empty-state.d.ts +2 -2
  425. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  426. package/lib/dist-custom-elements/duet-fieldset.d.ts +2 -2
  427. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  428. package/lib/dist-custom-elements/duet-file-chooser.d.ts +2 -2
  429. package/lib/dist-custom-elements/duet-file-chooser.js +70 -70
  430. package/lib/dist-custom-elements/duet-footer.d.ts +2 -2
  431. package/lib/dist-custom-elements/duet-footer.js +167 -167
  432. package/lib/dist-custom-elements/duet-grid-item.d.ts +2 -2
  433. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  434. package/lib/dist-custom-elements/duet-grid.d.ts +2 -2
  435. package/lib/dist-custom-elements/duet-grid.js +1 -1
  436. package/lib/dist-custom-elements/duet-header.d.ts +2 -2
  437. package/lib/dist-custom-elements/duet-header.js +637 -637
  438. package/lib/dist-custom-elements/duet-heading.d.ts +2 -2
  439. package/lib/dist-custom-elements/duet-heading.js +1 -1
  440. package/lib/dist-custom-elements/duet-hero.d.ts +2 -2
  441. package/lib/dist-custom-elements/duet-hero.js +270 -270
  442. package/lib/dist-custom-elements/duet-icon.d.ts +2 -2
  443. package/lib/dist-custom-elements/duet-icon.js +1 -1
  444. package/lib/dist-custom-elements/duet-input.d.ts +2 -2
  445. package/lib/dist-custom-elements/duet-input.js +1 -1
  446. package/lib/dist-custom-elements/duet-label.d.ts +2 -2
  447. package/lib/dist-custom-elements/duet-label.js +1 -1
  448. package/lib/dist-custom-elements/duet-layout.d.ts +2 -2
  449. package/lib/dist-custom-elements/duet-layout.js +73 -73
  450. package/lib/dist-custom-elements/duet-link.d.ts +2 -2
  451. package/lib/dist-custom-elements/duet-link.js +1 -1
  452. package/lib/dist-custom-elements/duet-list-item.d.ts +2 -2
  453. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  454. package/lib/dist-custom-elements/duet-list.d.ts +2 -2
  455. package/lib/dist-custom-elements/duet-list.js +1 -1
  456. package/lib/dist-custom-elements/duet-logo.d.ts +2 -2
  457. package/lib/dist-custom-elements/duet-logo.js +1 -1
  458. package/lib/dist-custom-elements/duet-menu-bar-button.d.ts +2 -2
  459. package/lib/dist-custom-elements/duet-menu-bar-button.js +106 -106
  460. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.d.ts +2 -2
  461. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +69 -69
  462. package/lib/dist-custom-elements/duet-menu-bar-dropdown.d.ts +2 -2
  463. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +120 -120
  464. package/lib/dist-custom-elements/duet-menu-bar-link.d.ts +2 -2
  465. package/lib/dist-custom-elements/duet-menu-bar-link.js +85 -85
  466. package/lib/dist-custom-elements/duet-menu-bar.d.ts +2 -2
  467. package/lib/dist-custom-elements/duet-menu-bar.js +145 -145
  468. package/lib/dist-custom-elements/duet-modal.d.ts +2 -2
  469. package/lib/dist-custom-elements/duet-modal.js +262 -262
  470. package/lib/dist-custom-elements/duet-multiselect.d.ts +2 -2
  471. package/lib/dist-custom-elements/duet-multiselect.js +299 -299
  472. package/lib/dist-custom-elements/duet-nav.d.ts +2 -2
  473. package/lib/dist-custom-elements/duet-nav.js +36 -36
  474. package/lib/dist-custom-elements/duet-notification-drawer.d.ts +2 -2
  475. package/lib/dist-custom-elements/duet-notification-drawer.js +142 -142
  476. package/lib/dist-custom-elements/duet-notification.d.ts +2 -2
  477. package/lib/dist-custom-elements/duet-notification.js +76 -76
  478. package/lib/dist-custom-elements/duet-number-input.d.ts +2 -2
  479. package/lib/dist-custom-elements/duet-number-input.js +448 -448
  480. package/lib/dist-custom-elements/duet-page-heading.d.ts +2 -2
  481. package/lib/dist-custom-elements/duet-page-heading.js +50 -50
  482. package/lib/dist-custom-elements/duet-pagination.d.ts +2 -2
  483. package/lib/dist-custom-elements/duet-pagination.js +449 -449
  484. package/lib/dist-custom-elements/duet-paragraph.d.ts +2 -2
  485. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  486. package/lib/dist-custom-elements/duet-popup-menu-item.d.ts +2 -2
  487. package/lib/dist-custom-elements/duet-popup-menu-item.js +95 -95
  488. package/lib/dist-custom-elements/duet-popup-menu.d.ts +2 -2
  489. package/lib/dist-custom-elements/duet-popup-menu.js +176 -176
  490. package/lib/dist-custom-elements/duet-progress.d.ts +2 -2
  491. package/lib/dist-custom-elements/duet-progress.js +1 -1
  492. package/lib/dist-custom-elements/duet-promo-card.d.ts +2 -2
  493. package/lib/dist-custom-elements/duet-promo-card.js +74 -74
  494. package/lib/dist-custom-elements/duet-radio-group.d.ts +2 -2
  495. package/lib/dist-custom-elements/duet-radio-group.js +183 -183
  496. package/lib/dist-custom-elements/duet-radio.d.ts +2 -2
  497. package/lib/dist-custom-elements/duet-radio.js +130 -130
  498. package/lib/dist-custom-elements/duet-range-slider.d.ts +2 -2
  499. package/lib/dist-custom-elements/duet-range-slider.js +146 -146
  500. package/lib/dist-custom-elements/duet-range-stepper.d.ts +2 -2
  501. package/lib/dist-custom-elements/duet-range-stepper.js +206 -206
  502. package/lib/dist-custom-elements/duet-scrollable.d.ts +2 -2
  503. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  504. package/lib/dist-custom-elements/duet-section-layout.d.ts +2 -2
  505. package/lib/dist-custom-elements/duet-section-layout.js +38 -38
  506. package/lib/dist-custom-elements/duet-select.d.ts +2 -2
  507. package/lib/dist-custom-elements/duet-select.js +1 -1
  508. package/lib/dist-custom-elements/duet-shaped-image.d.ts +2 -2
  509. package/lib/dist-custom-elements/duet-shaped-image.js +48 -48
  510. package/lib/dist-custom-elements/duet-show-more.d.ts +2 -2
  511. package/lib/dist-custom-elements/duet-show-more.js +151 -151
  512. package/lib/dist-custom-elements/duet-slideout-lang.d.ts +2 -2
  513. package/lib/dist-custom-elements/duet-slideout-lang.js +58 -58
  514. package/lib/dist-custom-elements/duet-slideout-link.d.ts +2 -2
  515. package/lib/dist-custom-elements/duet-slideout-link.js +63 -63
  516. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.d.ts +2 -2
  517. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +76 -76
  518. package/lib/dist-custom-elements/duet-slideout-panel.d.ts +2 -2
  519. package/lib/dist-custom-elements/duet-slideout-panel.js +149 -149
  520. package/lib/dist-custom-elements/duet-slideout.d.ts +2 -2
  521. package/lib/dist-custom-elements/duet-slideout.js +225 -225
  522. package/lib/dist-custom-elements/duet-spacer.d.ts +2 -2
  523. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  524. package/lib/dist-custom-elements/duet-spinner.d.ts +2 -2
  525. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  526. package/lib/dist-custom-elements/duet-step.d.ts +2 -2
  527. package/lib/dist-custom-elements/duet-step.js +116 -118
  528. package/lib/dist-custom-elements/duet-stepper.d.ts +2 -2
  529. package/lib/dist-custom-elements/duet-stepper.js +129 -129
  530. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.d.ts +2 -2
  531. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +63 -63
  532. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.d.ts +2 -2
  533. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +131 -131
  534. package/lib/dist-custom-elements/duet-submenu-bar-link.d.ts +2 -2
  535. package/lib/dist-custom-elements/duet-submenu-bar-link.js +85 -85
  536. package/lib/dist-custom-elements/duet-submenu-bar.d.ts +2 -2
  537. package/lib/dist-custom-elements/duet-submenu-bar.js +139 -139
  538. package/lib/dist-custom-elements/duet-tab-group.d.ts +2 -2
  539. package/lib/dist-custom-elements/duet-tab-group.js +309 -309
  540. package/lib/dist-custom-elements/duet-tab.d.ts +2 -2
  541. package/lib/dist-custom-elements/duet-tab.js +50 -52
  542. package/lib/dist-custom-elements/duet-table.d.ts +2 -2
  543. package/lib/dist-custom-elements/duet-table.js +1 -1
  544. package/lib/dist-custom-elements/duet-textarea.d.ts +2 -2
  545. package/lib/dist-custom-elements/duet-textarea.js +262 -262
  546. package/lib/dist-custom-elements/duet-toggle.d.ts +2 -2
  547. package/lib/dist-custom-elements/duet-toggle.js +113 -113
  548. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.d.ts +2 -2
  549. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +62 -62
  550. package/lib/dist-custom-elements/duet-toolbar-dropdown.d.ts +2 -2
  551. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +87 -87
  552. package/lib/dist-custom-elements/duet-toolbar-link.d.ts +2 -2
  553. package/lib/dist-custom-elements/duet-toolbar-link.js +58 -58
  554. package/lib/dist-custom-elements/duet-toolbar.d.ts +2 -2
  555. package/lib/dist-custom-elements/duet-toolbar.js +52 -52
  556. package/lib/dist-custom-elements/duet-tooltip-button.d.ts +2 -2
  557. package/lib/dist-custom-elements/duet-tooltip-button.js +1 -1
  558. package/lib/dist-custom-elements/duet-tooltip-popup.d.ts +2 -2
  559. package/lib/dist-custom-elements/duet-tooltip-popup.js +1 -1
  560. package/lib/dist-custom-elements/duet-tooltip.d.ts +2 -2
  561. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  562. package/lib/dist-custom-elements/duet-tray.d.ts +2 -2
  563. package/lib/dist-custom-elements/duet-tray.js +119 -119
  564. package/lib/dist-custom-elements/duet-upload-aria-status.d.ts +2 -2
  565. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  566. package/lib/dist-custom-elements/duet-upload-item.d.ts +2 -2
  567. package/lib/dist-custom-elements/duet-upload-item.js +1 -1
  568. package/lib/dist-custom-elements/duet-upload.d.ts +2 -2
  569. package/lib/dist-custom-elements/duet-upload.js +1163 -1163
  570. package/lib/dist-custom-elements/duet-visually-hidden.d.ts +2 -2
  571. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  572. package/lib/dist-custom-elements/index.js +36 -36
  573. package/lib/dist-custom-elements/p-02eb68f2.js +123 -0
  574. package/lib/dist-custom-elements/p-0825cbc5.js +82 -0
  575. package/lib/dist-custom-elements/p-0a7c0d3d.js +205 -0
  576. package/lib/dist-custom-elements/p-0e052642.js +55 -0
  577. package/lib/{esm/slot-query-7877f18f.js → dist-custom-elements/p-11230037.js} +1 -1
  578. package/lib/dist-custom-elements/{p-52014bb2.js → p-1cd7077a.js} +37 -37
  579. package/lib/dist-custom-elements/p-247a9d01.js +174 -0
  580. package/lib/dist-custom-elements/p-257f2e82.js +147 -0
  581. package/lib/dist-custom-elements/p-2605a78e.js +62 -0
  582. package/lib/dist-custom-elements/{p-4883df66.js → p-2e36d5bf.js} +74 -74
  583. package/lib/dist-custom-elements/p-38b35e69.js +265 -0
  584. package/lib/dist-custom-elements/{p-d49389d2.js → p-39827833.js} +171 -171
  585. package/lib/dist-custom-elements/p-3a17ba0c.js +226 -0
  586. package/lib/dist-custom-elements/p-402e81c0.js +206 -0
  587. package/lib/dist-custom-elements/p-43b89e38.js +9 -0
  588. package/lib/dist-custom-elements/{p-274d11e3.js → p-4ab776f4.js} +6 -6
  589. package/lib/dist-custom-elements/p-4f43c247.js +126 -0
  590. package/lib/dist-custom-elements/p-57a1cba9.js +117 -0
  591. package/lib/dist-custom-elements/p-598731b0.js +110 -0
  592. package/lib/dist-custom-elements/p-5e59e970.js +11 -0
  593. package/lib/dist-custom-elements/{p-2b1a35cd.js → p-5fe36e8b.js} +278 -278
  594. package/lib/dist-custom-elements/{p-7247d0b2.js → p-6f7dcc4d.js} +65 -43
  595. package/lib/dist-custom-elements/{p-9dd26401.js → p-6fbb1970.js} +128 -128
  596. package/lib/dist-custom-elements/{p-21b815ae.js → p-70a66e96.js} +42 -42
  597. package/lib/dist-custom-elements/{p-180c0d2d.js → p-76b345c8.js} +174 -174
  598. package/lib/dist-custom-elements/p-7d8a2628.js +57 -0
  599. package/lib/dist-custom-elements/p-86649f25.js +465 -0
  600. package/lib/dist-custom-elements/p-872a2adb.js +93 -0
  601. package/lib/dist-custom-elements/p-98746766.js +60 -0
  602. package/lib/dist-custom-elements/p-9b5f8ba4.js +98 -0
  603. package/lib/{esm/js-utils-a35dcc8c.js → dist-custom-elements/p-9e371678.js} +27 -27
  604. package/lib/dist-custom-elements/{p-6c2e13f0.js → p-a45d0398.js} +56 -56
  605. package/lib/dist-custom-elements/p-a58bd561.js +13 -0
  606. package/lib/dist-custom-elements/{p-d0987122.js → p-a6e6f578.js} +48 -48
  607. package/lib/dist-custom-elements/p-b2e550a3.js +97 -0
  608. package/lib/dist-custom-elements/{p-c0af301d.js → p-ba0f907f.js} +64 -64
  609. package/lib/dist-custom-elements/{p-ba870310.js → p-ba9ad148.js} +47 -47
  610. package/lib/dist-custom-elements/p-bc3fa417.js +76 -0
  611. package/lib/dist-custom-elements/{p-e4355989.js → p-ce1cc5ab.js} +98 -88
  612. package/lib/dist-custom-elements/p-d5f3b174.js +38 -0
  613. package/lib/dist-custom-elements/{p-bcfb9e03.js → p-d5fc2405.js} +50 -50
  614. package/lib/dist-custom-elements/p-df7874f9.js +53 -0
  615. package/lib/dist-custom-elements/{p-3ccd454b.js → p-dfd29738.js} +43 -43
  616. package/lib/dist-custom-elements/p-eef66341.js +18 -0
  617. package/lib/dist-custom-elements/p-f91cddd9.js +269 -0
  618. package/lib/dist-custom-elements/p-ff387a2f.js +59 -0
  619. package/lib/dist-custom-elements/p-ffc7f083.js +137 -0
  620. package/lib/duet/duet.esm.js +1 -1
  621. package/lib/duet/duet.js +15 -15
  622. package/lib/duet/p-07af14f1.js +4 -0
  623. package/lib/duet/{p-dc63462c.entry.js → p-0a7c3ecf.entry.js} +1 -1
  624. package/lib/duet/{p-57afa4b8.system.entry.js → p-0aa1b1cd.system.entry.js} +2 -2
  625. package/lib/duet/{p-76b68b44.entry.js → p-105a1448.entry.js} +1 -1
  626. package/lib/duet/{p-4aa91f55.entry.js → p-132ea5e6.entry.js} +1 -1
  627. package/lib/duet/{p-33765ffd.entry.js → p-13876bc6.entry.js} +1 -1
  628. package/lib/duet/{p-ff7a57a9.entry.js → p-13f7d993.entry.js} +1 -1
  629. package/lib/duet/{p-1dadf501.entry.js → p-16db7b1e.entry.js} +1 -1
  630. package/lib/duet/{p-3fd4c411.entry.js → p-191959c7.entry.js} +1 -1
  631. package/lib/duet/p-1b11541f.entry.js +4 -0
  632. package/lib/duet/{p-faa6ea94.system.entry.js → p-1e587bcc.system.entry.js} +1 -1
  633. package/lib/duet/{p-e95d09bb.system.entry.js → p-1ea5e7e8.system.entry.js} +1 -1
  634. package/lib/duet/{p-566668e1.entry.js → p-1fbbf69f.entry.js} +1 -1
  635. package/lib/duet/{p-ded28a6e.system.entry.js → p-200089a6.system.entry.js} +1 -1
  636. package/lib/duet/{p-8972381a.system.js → p-224f6c46.system.js} +1 -1
  637. package/lib/duet/{p-604175d2.entry.js → p-226489c4.entry.js} +1 -1
  638. package/lib/duet/p-2349e838.entry.js +4 -0
  639. package/lib/duet/{p-05e3a2cc.entry.js → p-246db04a.entry.js} +1 -1
  640. package/lib/duet/p-24f7d6bf.entry.js +4 -0
  641. package/lib/duet/p-258b8732.entry.js +4 -0
  642. package/lib/duet/{p-6da7b933.entry.js → p-25bde810.entry.js} +1 -1
  643. package/lib/duet/{p-177c55aa.entry.js → p-26c85bab.entry.js} +1 -1
  644. package/lib/duet/{p-2b70d58a.system.entry.js → p-26f7d1b9.system.entry.js} +1 -1
  645. package/lib/duet/{p-8aa7771f.entry.js → p-2b9499f1.entry.js} +1 -1
  646. package/lib/duet/{p-afd00506.entry.js → p-2c730d40.entry.js} +1 -1
  647. package/lib/duet/{p-4883df66.js → p-2e36d5bf.js} +1 -1
  648. package/lib/duet/{p-d9353709.entry.js → p-2f0a23ae.entry.js} +1 -1
  649. package/lib/duet/{p-89b82e5a.entry.js → p-338ba4d2.entry.js} +1 -1
  650. package/lib/duet/{p-445523a8.entry.js → p-33d6e5ef.entry.js} +1 -1
  651. package/lib/duet/{p-089043d5.entry.js → p-342527a4.entry.js} +1 -1
  652. package/lib/duet/{p-fd1fb3f9.system.entry.js → p-3aa3fb24.system.entry.js} +1 -1
  653. package/lib/duet/{p-789365cb.system.entry.js → p-3cafacc3.system.entry.js} +1 -1
  654. package/lib/duet/{p-c36a1bb7.entry.js → p-3e1248d8.entry.js} +1 -1
  655. package/lib/duet/{p-8ba72fa0.system.entry.js → p-40ee5f5e.system.entry.js} +1 -1
  656. package/lib/duet/p-4212bab8.js +5 -0
  657. package/lib/duet/{p-80013513.system.entry.js → p-42b49430.system.entry.js} +1 -1
  658. package/lib/duet/{p-c3289020.system.entry.js → p-42b9c6f9.system.entry.js} +1 -1
  659. package/lib/duet/{p-6ae7579a.system.entry.js → p-464adc60.system.entry.js} +1 -1
  660. package/lib/duet/{p-18e2e6c8.system.entry.js → p-48d6a81d.system.entry.js} +1 -1
  661. package/lib/duet/p-4911c778.system.entry.js +4 -0
  662. package/lib/duet/{p-d02e3fe0.system.entry.js → p-4b272eca.system.entry.js} +1 -1
  663. package/lib/duet/p-4c650a9e.entry.js +4 -0
  664. package/lib/duet/{p-ac367891.entry.js → p-502f43bb.entry.js} +1 -1
  665. package/lib/duet/{p-7e1f37e2.entry.js → p-513dfe01.entry.js} +1 -1
  666. package/lib/duet/{p-b8db6e02.system.entry.js → p-51bdb5fd.system.entry.js} +1 -1
  667. package/lib/duet/{p-3b0969dc.entry.js → p-51d53e57.entry.js} +1 -1
  668. package/lib/duet/{p-59b9c68b.entry.js → p-542d792f.entry.js} +1 -1
  669. package/lib/duet/{p-07401f31.entry.js → p-55f98dc4.entry.js} +1 -1
  670. package/lib/duet/{p-77b43a95.entry.js → p-57a63204.entry.js} +1 -1
  671. package/lib/duet/{p-1e9f1c45.entry.js → p-580a7bae.entry.js} +1 -1
  672. package/lib/duet/{p-aa6d7d97.entry.js → p-5b86c564.entry.js} +1 -1
  673. package/lib/duet/{p-038ac494.system.entry.js → p-5c94249e.system.entry.js} +1 -1
  674. package/lib/duet/{p-4630d3cb.entry.js → p-5dccd17b.entry.js} +1 -1
  675. package/lib/duet/{p-0fd024c9.system.js → p-5ed00370.system.js} +1 -1
  676. package/lib/duet/{p-e1e89fd5.entry.js → p-5f43dbcf.entry.js} +1 -1
  677. package/lib/duet/{p-0d0101d9.system.entry.js → p-60cee508.system.entry.js} +1 -1
  678. package/lib/duet/{p-501f62eb.system.entry.js → p-61fe1543.system.entry.js} +1 -1
  679. package/lib/duet/{p-a7e7c277.system.entry.js → p-625f750f.system.entry.js} +1 -1
  680. package/lib/duet/{p-6f3f2e66.entry.js → p-6576401a.entry.js} +1 -1
  681. package/lib/duet/{p-3b147393.entry.js → p-65e434a5.entry.js} +1 -1
  682. package/lib/duet/{p-113d90cb.system.entry.js → p-69fba9fe.system.entry.js} +1 -1
  683. package/lib/duet/{p-9a613a25.system.entry.js → p-6a972453.system.entry.js} +1 -1
  684. package/lib/duet/{p-0f1ec9c0.entry.js → p-6b2876f1.entry.js} +1 -1
  685. package/lib/duet/{p-08f2114a.entry.js → p-6cae9d4b.entry.js} +1 -1
  686. package/lib/duet/{p-e90b5865.system.entry.js → p-6e6ececd.system.entry.js} +1 -1
  687. package/lib/duet/{p-35990684.entry.js → p-6f891451.entry.js} +1 -1
  688. package/lib/duet/{p-ed961bc6.system.entry.js → p-71ef1651.system.entry.js} +1 -1
  689. package/lib/duet/{p-5eb2a31f.system.entry.js → p-73f176dc.system.entry.js} +1 -1
  690. package/lib/duet/{p-56bdad28.system.entry.js → p-75243a15.system.entry.js} +1 -1
  691. package/lib/duet/{p-c801ebee.entry.js → p-785ff4f2.entry.js} +1 -1
  692. package/lib/duet/{p-3639371a.system.entry.js → p-793d7e04.system.entry.js} +1 -1
  693. package/lib/duet/{p-a91c8a42.system.entry.js → p-7a085479.system.entry.js} +1 -1
  694. package/lib/duet/{p-54fbdedf.entry.js → p-7a832531.entry.js} +1 -1
  695. package/lib/duet/p-7a91a53e.system.entry.js +4 -0
  696. package/lib/duet/{p-2c78c637.system.entry.js → p-7b5cd54a.system.entry.js} +1 -1
  697. package/lib/duet/{p-9cba7f04.system.entry.js → p-7b847e11.system.entry.js} +1 -1
  698. package/lib/duet/{p-b0ab2ead.system.entry.js → p-7bbc5a65.system.entry.js} +1 -1
  699. package/lib/duet/{p-9f835123.system.entry.js → p-7e833901.system.entry.js} +1 -1
  700. package/lib/duet/{p-4f770f51.system.entry.js → p-81230084.system.entry.js} +1 -1
  701. package/lib/duet/{p-f75a1805.system.entry.js → p-8920edb7.system.entry.js} +1 -1
  702. package/lib/duet/{p-0606cea3.entry.js → p-8a16fb3c.entry.js} +1 -1
  703. package/lib/duet/{p-0c702d36.entry.js → p-8bc5df74.entry.js} +1 -1
  704. package/lib/duet/{p-c79a0641.entry.js → p-8cf2feaa.entry.js} +1 -1
  705. package/lib/duet/{p-fcbb30e1.entry.js → p-8d69624a.entry.js} +1 -1
  706. package/lib/duet/{p-39078c27.system.entry.js → p-8d8bdf90.system.entry.js} +2 -2
  707. package/lib/duet/{p-301ddafe.entry.js → p-8e414050.entry.js} +1 -1
  708. package/lib/duet/{p-0e89cbae.system.entry.js → p-8eb82556.system.entry.js} +1 -1
  709. package/lib/duet/{p-e6168195.entry.js → p-903efe1d.entry.js} +1 -1
  710. package/lib/duet/{p-79faf440.system.entry.js → p-9192de69.system.entry.js} +1 -1
  711. package/lib/duet/{p-e9be64de.system.entry.js → p-9308c47c.system.entry.js} +1 -1
  712. package/lib/duet/{p-61d39730.entry.js → p-97488cc9.entry.js} +1 -1
  713. package/lib/duet/{p-a0ecfa13.system.entry.js → p-97d72f16.system.entry.js} +1 -1
  714. package/lib/duet/{p-a8878fd3.entry.js → p-9aa0ebba.entry.js} +1 -1
  715. package/lib/duet/{p-30bd8807.entry.js → p-9de9d3eb.entry.js} +1 -1
  716. package/lib/duet/{p-8bf363f4.system.entry.js → p-9ec69dbc.system.entry.js} +1 -1
  717. package/lib/duet/{p-ccef6554.system.entry.js → p-9f39d6de.system.entry.js} +1 -1
  718. package/lib/duet/{p-c08928e1.system.entry.js → p-9fb3e7b4.system.entry.js} +1 -1
  719. package/lib/duet/{p-9e2a2cf7.entry.js → p-a4dd147b.entry.js} +1 -1
  720. package/lib/duet/{p-fab7c1ed.entry.js → p-a5504252.entry.js} +1 -1
  721. package/lib/duet/{p-50ec2074.entry.js → p-a59b5059.entry.js} +1 -1
  722. package/lib/duet/{p-716329a7.system.entry.js → p-aa6ad573.system.entry.js} +1 -1
  723. package/lib/duet/{p-8855bd51.entry.js → p-ab2da6f9.entry.js} +1 -1
  724. package/lib/duet/{p-032a613f.system.entry.js → p-ad0179fa.system.entry.js} +1 -1
  725. package/lib/duet/{p-ed011021.system.entry.js → p-ad3021d3.system.entry.js} +1 -1
  726. package/lib/duet/{p-1a877bd1.system.entry.js → p-ad5e3c9c.system.entry.js} +1 -1
  727. package/lib/duet/{p-bfeeee67.system.entry.js → p-b022a3d5.system.entry.js} +2 -2
  728. package/lib/duet/{p-50f4319b.system.entry.js → p-b036d4f0.system.entry.js} +1 -1
  729. package/lib/duet/{p-98d01f1c.system.entry.js → p-b27b1902.system.entry.js} +1 -1
  730. package/lib/duet/{p-1b3fde48.entry.js → p-b54be005.entry.js} +1 -1
  731. package/lib/duet/{p-37af6296.system.entry.js → p-b5831260.system.entry.js} +1 -1
  732. package/lib/duet/p-b5ffa156.entry.js +4 -0
  733. package/lib/duet/{p-b46fa994.system.entry.js → p-b62108c8.system.entry.js} +2 -2
  734. package/lib/duet/{p-6205bcb4.entry.js → p-b62ed1f0.entry.js} +1 -1
  735. package/lib/duet/{p-bdc59646.entry.js → p-b6af2626.entry.js} +1 -1
  736. package/lib/duet/{p-0558a17e.system.entry.js → p-b868bb09.system.entry.js} +1 -1
  737. package/lib/duet/{p-ff09528c.system.entry.js → p-b8b0249f.system.entry.js} +1 -1
  738. package/lib/duet/{p-def3df7d.entry.js → p-bc16a555.entry.js} +1 -1
  739. package/lib/duet/p-bcd1e9d8.system.entry.js +4 -0
  740. package/lib/duet/{p-ee796d5e.system.entry.js → p-bd97fff1.system.entry.js} +1 -1
  741. package/lib/duet/{p-e1d3c21e.entry.js → p-bf0e9413.entry.js} +1 -1
  742. package/lib/duet/{p-e3ffb537.system.entry.js → p-bf3bf531.system.entry.js} +1 -1
  743. package/lib/duet/{p-58a08a7b.system.entry.js → p-c0152624.system.entry.js} +1 -1
  744. package/lib/duet/{p-6da4db52.system.entry.js → p-c0c9acd9.system.entry.js} +1 -1
  745. package/lib/duet/{p-7a46b4ef.system.entry.js → p-c565698d.system.entry.js} +1 -1
  746. package/lib/duet/p-cb69ce4a.entry.js +4 -0
  747. package/lib/duet/{p-64b323bf.entry.js → p-cd8177fe.entry.js} +1 -1
  748. package/lib/duet/{p-68f3526e.entry.js → p-cfb85117.entry.js} +1 -1
  749. package/lib/duet/{p-c5725fee.system.entry.js → p-d13cb6f4.system.entry.js} +1 -1
  750. package/lib/duet/{p-efa6152d.entry.js → p-d2681203.entry.js} +1 -1
  751. package/lib/duet/{p-bf3331ed.entry.js → p-d3069a7b.entry.js} +1 -1
  752. package/lib/duet/{p-c23bf76f.system.entry.js → p-d32e9ae1.system.entry.js} +1 -1
  753. package/lib/duet/{p-13915ce0.entry.js → p-d41e819d.entry.js} +1 -1
  754. package/lib/duet/{p-463ddc2c.system.entry.js → p-d5d57b8f.system.entry.js} +1 -1
  755. package/lib/duet/{p-95df823b.entry.js → p-d73f7574.entry.js} +1 -1
  756. package/lib/duet/{p-ed8f7cac.entry.js → p-d8104d1b.entry.js} +1 -1
  757. package/lib/duet/{p-d5a9cfac.entry.js → p-d8ee9cc9.entry.js} +1 -1
  758. package/lib/duet/{p-7671b7b7.system.js → p-da20db91.system.js} +1 -1
  759. package/lib/duet/{p-5311f96e.system.entry.js → p-db14fdfd.system.entry.js} +1 -1
  760. package/lib/duet/{p-c4e79927.entry.js → p-dce5a6f9.entry.js} +1 -1
  761. package/lib/duet/p-dcfe6e27.system.entry.js +4 -0
  762. package/lib/duet/{p-8eff5e91.system.entry.js → p-e1f6b6f3.system.entry.js} +2 -2
  763. package/lib/duet/p-e3574b05.entry.js +4 -0
  764. package/lib/duet/{p-051488a0.system.entry.js → p-e3a8dcb3.system.entry.js} +1 -1
  765. package/lib/duet/{p-d02b92fa.entry.js → p-e3c5663f.entry.js} +1 -1
  766. package/lib/duet/{p-e4aa049f.system.entry.js → p-e6bd0e51.system.entry.js} +1 -1
  767. package/lib/duet/p-e79bf1c2.entry.js +4 -0
  768. package/lib/duet/{p-995e1b11.system.entry.js → p-e96a5f8b.system.entry.js} +1 -1
  769. package/lib/duet/{p-cef36d14.system.entry.js → p-ebe22b98.system.entry.js} +1 -1
  770. package/lib/duet/{p-5c0de81a.system.entry.js → p-ec98691e.system.entry.js} +1 -1
  771. package/lib/duet/p-f009e108.entry.js +4 -0
  772. package/lib/duet/{p-5ae9b74f.entry.js → p-f0dc0a5b.entry.js} +1 -1
  773. package/lib/duet/{p-da9fe13c.system.entry.js → p-f1d894da.system.entry.js} +1 -1
  774. package/lib/duet/{p-96f66e14.system.entry.js → p-f25e57fe.system.entry.js} +1 -1
  775. package/lib/duet/{p-efdbddb5.system.js → p-f3bf4d40.system.js} +1 -1
  776. package/lib/duet/{p-80d1a5d3.entry.js → p-f4493cb6.entry.js} +1 -1
  777. package/lib/duet/p-f7b58d72.system.js +5 -0
  778. package/lib/duet/{p-e7a22d84.system.entry.js → p-f8c64564.system.entry.js} +1 -1
  779. package/lib/duet/p-fabb616b.js +4 -0
  780. package/lib/duet/{p-5c5012f6.system.entry.js → p-fb30fcb0.system.entry.js} +1 -1
  781. package/lib/duet/{p-d4d7d607.system.entry.js → p-fb8a5b68.system.entry.js} +1 -1
  782. package/lib/duet/{p-34b5285b.system.entry.js → p-fc0fe631.system.entry.js} +2 -2
  783. package/lib/duet/{p-e491c098.system.entry.js → p-fc4f175f.system.entry.js} +1 -1
  784. package/lib/duet/{p-7de467b8.entry.js → p-ff815e47.entry.js} +1 -1
  785. package/lib/esm/app-globals-41b37f11.js +52 -0
  786. package/lib/esm/{common-strings-c0ac5a0b.js → common-strings-59db6973.js} +6 -6
  787. package/lib/esm/create-id-149a1b6d.js +11 -0
  788. package/lib/esm/duet-action-button.entry.js +133 -133
  789. package/lib/esm/duet-alert.entry.js +106 -106
  790. package/lib/esm/duet-badge.entry.js +29 -29
  791. package/lib/esm/duet-banner.entry.js +52 -52
  792. package/lib/esm/duet-breadcrumb.entry.js +41 -41
  793. package/lib/esm/duet-breadcrumbs.entry.js +51 -51
  794. package/lib/esm/duet-button_2.entry.js +229 -229
  795. package/lib/esm/duet-callout.entry.js +28 -28
  796. package/lib/esm/duet-caption_4.entry.js +187 -187
  797. package/lib/esm/duet-card.entry.js +93 -93
  798. package/lib/esm/duet-checkbox.entry.js +85 -85
  799. package/lib/esm/duet-checkmark.entry.js +23 -23
  800. package/lib/esm/duet-chip.entry.js +182 -182
  801. package/lib/esm/duet-choice_2.entry.js +392 -392
  802. package/lib/esm/duet-collapsible.entry.js +98 -98
  803. package/lib/esm/duet-combobox.entry.js +362 -362
  804. package/lib/esm/duet-contact-card.entry.js +49 -49
  805. package/lib/esm/duet-cookie-consent.entry.js +35 -35
  806. package/lib/esm/duet-date-picker.entry.js +610 -610
  807. package/lib/esm/duet-divider_2.entry.js +53 -53
  808. package/lib/esm/duet-editable-table_3.entry.js +1247 -1247
  809. package/lib/esm/duet-empty-state.entry.js +26 -26
  810. package/lib/esm/duet-fieldset.entry.js +50 -50
  811. package/lib/esm/duet-file-chooser.entry.js +44 -44
  812. package/lib/esm/duet-footer.entry.js +118 -118
  813. package/lib/esm/duet-grid_2.entry.js +185 -185
  814. package/lib/esm/duet-header_2.entry.js +610 -610
  815. package/lib/esm/duet-hero.entry.js +172 -172
  816. package/lib/esm/duet-icon.entry.js +141 -141
  817. package/lib/esm/duet-input_2.entry.js +346 -346
  818. package/lib/esm/duet-layout.entry.js +51 -51
  819. package/lib/esm/duet-list_2.entry.js +99 -99
  820. package/lib/esm/duet-menu-bar-button.entry.js +70 -70
  821. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +44 -44
  822. package/lib/esm/duet-menu-bar-dropdown.entry.js +93 -93
  823. package/lib/esm/duet-menu-bar-link.entry.js +58 -58
  824. package/lib/esm/duet-menu-bar.entry.js +116 -116
  825. package/lib/esm/duet-modal.entry.js +188 -188
  826. package/lib/esm/duet-multiselect.entry.js +206 -206
  827. package/lib/esm/duet-nav.entry.js +20 -20
  828. package/lib/esm/duet-notification_2.entry.js +140 -140
  829. package/lib/esm/duet-number-input.entry.js +337 -337
  830. package/lib/esm/duet-page-heading.entry.js +26 -26
  831. package/lib/esm/duet-pagination_2.entry.js +511 -511
  832. package/lib/esm/duet-popup-menu-item.entry.js +62 -62
  833. package/lib/esm/duet-popup-menu.entry.js +147 -147
  834. package/lib/esm/duet-progress.entry.js +54 -54
  835. package/lib/esm/duet-promo-card.entry.js +40 -40
  836. package/lib/esm/duet-radio_2.entry.js +197 -197
  837. package/lib/esm/duet-range-slider.entry.js +105 -105
  838. package/lib/esm/duet-scrollable_3.entry.js +384 -386
  839. package/lib/esm/duet-section-layout.entry.js +21 -21
  840. package/lib/esm/duet-select.entry.js +156 -156
  841. package/lib/esm/duet-shaped-image.entry.js +28 -28
  842. package/lib/esm/duet-show-more.entry.js +98 -98
  843. package/lib/esm/duet-slideout-lang.entry.js +36 -36
  844. package/lib/esm/duet-slideout-link.entry.js +33 -33
  845. package/lib/esm/duet-slideout-panel-dropdown.entry.js +50 -50
  846. package/lib/esm/duet-slideout-panel.entry.js +120 -120
  847. package/lib/esm/duet-slideout.entry.js +194 -194
  848. package/lib/esm/duet-step_2.entry.js +182 -184
  849. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +36 -36
  850. package/lib/esm/duet-submenu-bar-dropdown.entry.js +103 -103
  851. package/lib/esm/duet-submenu-bar-link.entry.js +59 -59
  852. package/lib/esm/duet-submenu-bar.entry.js +110 -110
  853. package/lib/esm/duet-textarea.entry.js +160 -160
  854. package/lib/esm/duet-toggle.entry.js +72 -72
  855. package/lib/esm/duet-toolbar-dropdown-link.entry.js +35 -35
  856. package/lib/esm/duet-toolbar-dropdown.entry.js +59 -59
  857. package/lib/esm/duet-toolbar-link.entry.js +31 -31
  858. package/lib/esm/duet-toolbar.entry.js +34 -34
  859. package/lib/esm/duet-tooltip-button_2.entry.js +98 -80
  860. package/lib/esm/duet-tooltip.entry.js +185 -187
  861. package/lib/esm/duet-tray.entry.js +82 -82
  862. package/lib/esm/duet-upload-aria-status.entry.js +65 -65
  863. package/lib/esm/duet-upload-item.entry.js +81 -81
  864. package/lib/esm/duet-visually-hidden.entry.js +12 -12
  865. package/lib/esm/duet.js +5 -5
  866. package/lib/esm/errorcodes.utils-e681347c.js +36 -0
  867. package/lib/esm/focus-utils-d54af982.js +18 -0
  868. package/lib/esm/{index-b3bf9761.js → index-d4489a2e.js} +106 -45
  869. package/lib/esm/input-utils-85681162.js +53 -0
  870. package/lib/esm/is-internet-explorer-2c48f686.js +9 -0
  871. package/lib/{dist-custom-elements/p-3d8d557b.js → esm/js-utils-9b9e0039.js} +27 -27
  872. package/lib/esm/{language-utils-9ff76444.js → language-utils-00ca4c55.js} +74 -74
  873. package/lib/esm/loader.js +4 -4
  874. package/lib/{dist-custom-elements/p-f8c76b25.js → esm/slot-query-022710bb.js} +1 -1
  875. package/lib/esm/string-utils-ca039233.js +55 -0
  876. package/lib/esm/teleport-4462e8c1.js +97 -0
  877. package/lib/esm/themeable-component-724c0f7e.js +13 -0
  878. package/lib/esm/token-utils-b4bd3ec7.js +117 -0
  879. package/lib/esm/watch-options-e96ecd92.js +57 -0
  880. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  881. package/lib/esm-es5/duet-alert.entry.js +1 -1
  882. package/lib/esm-es5/duet-badge.entry.js +1 -1
  883. package/lib/esm-es5/duet-banner.entry.js +1 -1
  884. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  885. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  886. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  887. package/lib/esm-es5/duet-callout.entry.js +1 -1
  888. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  889. package/lib/esm-es5/duet-card.entry.js +1 -1
  890. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  891. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  892. package/lib/esm-es5/duet-chip.entry.js +1 -1
  893. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  894. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  895. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  896. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  897. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  898. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  899. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  900. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  901. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  902. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  903. package/lib/esm-es5/duet-file-chooser.entry.js +1 -1
  904. package/lib/esm-es5/duet-footer.entry.js +1 -1
  905. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  906. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  907. package/lib/esm-es5/duet-hero.entry.js +1 -1
  908. package/lib/esm-es5/duet-icon.entry.js +1 -1
  909. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  910. package/lib/esm-es5/duet-layout.entry.js +1 -1
  911. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  912. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  913. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  914. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  915. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  916. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  917. package/lib/esm-es5/duet-modal.entry.js +1 -1
  918. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  919. package/lib/esm-es5/duet-nav.entry.js +1 -1
  920. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  921. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  922. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  923. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  924. package/lib/esm-es5/duet-popup-menu-item.entry.js +1 -1
  925. package/lib/esm-es5/duet-popup-menu.entry.js +1 -1
  926. package/lib/esm-es5/duet-progress.entry.js +1 -1
  927. package/lib/esm-es5/duet-promo-card.entry.js +1 -1
  928. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  929. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  930. package/lib/esm-es5/duet-scrollable_3.entry.js +2 -2
  931. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  932. package/lib/esm-es5/duet-select.entry.js +1 -1
  933. package/lib/esm-es5/duet-shaped-image.entry.js +1 -1
  934. package/lib/esm-es5/duet-show-more.entry.js +1 -1
  935. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  936. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  937. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  938. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  939. package/lib/esm-es5/duet-slideout.entry.js +2 -2
  940. package/lib/esm-es5/duet-step_2.entry.js +2 -2
  941. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  942. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  943. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  944. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  945. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  946. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  947. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  948. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  949. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  950. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  951. package/lib/esm-es5/duet-tooltip-button_2.entry.js +2 -2
  952. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  953. package/lib/esm-es5/duet-tray.entry.js +1 -1
  954. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  955. package/lib/esm-es5/duet-upload-item.entry.js +1 -1
  956. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  957. package/lib/esm-es5/duet.js +1 -1
  958. package/lib/esm-es5/{errorcodes.utils-424b1197.js → errorcodes.utils-e681347c.js} +1 -1
  959. package/lib/esm-es5/focus-utils-d54af982.js +4 -0
  960. package/lib/esm-es5/index-d4489a2e.js +5 -0
  961. package/lib/esm-es5/{language-utils-9ff76444.js → language-utils-00ca4c55.js} +1 -1
  962. package/lib/esm-es5/loader.js +1 -1
  963. package/lib/types/common/a11y-component.d.ts +7 -7
  964. package/lib/types/common/form-components.d.ts +15 -15
  965. package/lib/types/common/themeable-component.d.ts +4 -4
  966. package/lib/types/components/duet-action-button/duet-action-button.d.ts +126 -126
  967. package/lib/types/components/duet-alert/duet-alert.d.ts +100 -100
  968. package/lib/types/components/duet-badge/duet-badge.d.ts +27 -27
  969. package/lib/types/components/duet-banner/duet-banner.d.ts +58 -58
  970. package/lib/types/components/duet-breadcrumbs/duet-breadcrumb.d.ts +32 -32
  971. package/lib/types/components/duet-breadcrumbs/duet-breadcrumbs.d.ts +23 -23
  972. package/lib/types/components/duet-button/duet-button.d.ts +219 -219
  973. package/lib/types/components/duet-callout/duet-callout.d.ts +19 -19
  974. package/lib/types/components/duet-caption/duet-caption.d.ts +26 -26
  975. package/lib/types/components/duet-card/duet-card.d.ts +119 -119
  976. package/lib/types/components/duet-checkbox/duet-checkbox.d.ts +132 -132
  977. package/lib/types/components/duet-chip/duet-chip.d.ts +109 -109
  978. package/lib/types/components/duet-choice/duet-checkmark.d.ts +27 -27
  979. package/lib/types/components/duet-choice/duet-choice.d.ts +259 -259
  980. package/lib/types/components/duet-choice-group/duet-choice-group.d.ts +103 -103
  981. package/lib/types/components/duet-collapsible/duet-collapsible.d.ts +88 -88
  982. package/lib/types/components/duet-combobox/duet-combobox-select-single.d.ts +3 -3
  983. package/lib/types/components/duet-combobox/duet-combobox-select.d.ts +8 -8
  984. package/lib/types/components/duet-combobox/duet-combobox.d.ts +135 -135
  985. package/lib/types/components/duet-contact-card/duet-contact-card.d.ts +60 -60
  986. package/lib/types/components/duet-cookie-consent/duet-cookie-consent.d.ts +29 -29
  987. package/lib/types/components/duet-date-picker/date-i18n.d.ts +13 -13
  988. package/lib/types/components/duet-date-picker/date-picker-day.d.ts +9 -9
  989. package/lib/types/components/duet-date-picker/date-picker-input.d.ts +28 -28
  990. package/lib/types/components/duet-date-picker/date-picker-month.d.ts +12 -12
  991. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +220 -220
  992. package/lib/types/components/duet-divider/duet-divider.d.ts +26 -26
  993. package/lib/types/components/duet-editable-table/duet-editable-table-tabledata.d.ts +3 -3
  994. package/lib/types/components/duet-editable-table/duet-editable-table.d.ts +133 -133
  995. package/lib/types/components/duet-empty-state/duet-empty-state.d.ts +22 -22
  996. package/lib/types/components/duet-fieldset/duet-fieldset.d.ts +60 -60
  997. package/lib/types/components/duet-file-chooser/duet-file-chooser.d.ts +35 -35
  998. package/lib/types/components/duet-footer/duet-footer.d.ts +143 -143
  999. package/lib/types/components/duet-grid/duet-grid.d.ts +73 -73
  1000. package/lib/types/components/duet-grid-item/duet-grid-item.d.ts +49 -49
  1001. package/lib/types/components/duet-header/duet-header-dropdown.d.ts +11 -11
  1002. package/lib/types/components/duet-header/duet-header-icon.d.ts +3 -3
  1003. package/lib/types/components/duet-header/duet-header.d.ts +347 -347
  1004. package/lib/types/components/duet-heading/duet-heading.d.ts +49 -49
  1005. package/lib/types/components/duet-hero/duet-hero.d.ts +198 -198
  1006. package/lib/types/components/duet-icon/duet-icon.d.ts +79 -79
  1007. package/lib/types/components/duet-input/duet-input.d.ts +279 -279
  1008. package/lib/types/components/duet-label/duet-label.d.ts +26 -26
  1009. package/lib/types/components/duet-layout/duet-layout.d.ts +48 -48
  1010. package/lib/types/components/duet-link/duet-link.d.ts +94 -94
  1011. package/lib/types/components/duet-list/duet-list.d.ts +60 -60
  1012. package/lib/types/components/duet-list-item/duet-list-item.d.ts +17 -17
  1013. package/lib/types/components/duet-logo/duet-logo.d.ts +59 -59
  1014. package/lib/types/components/duet-menu-bar/duet-menu-bar.d.ts +68 -68
  1015. package/lib/types/components/duet-menu-bar-button/duet-menu-bar-button.d.ts +84 -84
  1016. package/lib/types/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.d.ts +49 -49
  1017. package/lib/types/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.d.ts +36 -36
  1018. package/lib/types/components/duet-menu-bar-link/duet-menu-bar-link.d.ts +44 -44
  1019. package/lib/types/components/duet-modal/duet-modal.d.ts +155 -155
  1020. package/lib/types/components/duet-multiselect/duet-multiselect.d.ts +153 -153
  1021. package/lib/types/components/duet-nav/duet-nav.d.ts +20 -20
  1022. package/lib/types/components/duet-notification/duet-notification.d.ts +55 -55
  1023. package/lib/types/components/duet-notification-drawer/duet-notification-drawer.d.ts +83 -83
  1024. package/lib/types/components/duet-number-input/duet-number-input.d.ts +230 -230
  1025. package/lib/types/components/duet-page-heading/duet-page-heading.d.ts +25 -25
  1026. package/lib/types/components/duet-pagination/duet-pagination.d.ts +129 -129
  1027. package/lib/types/components/duet-paragraph/duet-paragraph.d.ts +38 -38
  1028. package/lib/types/components/duet-popup-menu/duet-popup-menu.d.ts +80 -80
  1029. package/lib/types/components/duet-popup-menu-item/duet-popup-menu-item.d.ts +73 -73
  1030. package/lib/types/components/duet-progress/duet-progress.d.ts +71 -71
  1031. package/lib/types/components/duet-promo-card/duet-promo-card.d.ts +42 -42
  1032. package/lib/types/components/duet-radio/duet-radio.d.ts +145 -145
  1033. package/lib/types/components/duet-radio-group/duet-radio-group.d.ts +93 -93
  1034. package/lib/types/components/duet-range-slider/duet-range-slider.d.ts +130 -130
  1035. package/lib/types/components/duet-range-stepper/duet-range-stepper.d.ts +68 -68
  1036. package/lib/types/components/duet-scrollable/duet-scrollable.d.ts +61 -61
  1037. package/lib/types/components/duet-section-layout/duet-section-layout.d.ts +17 -17
  1038. package/lib/types/components/duet-select/duet-select.d.ts +179 -179
  1039. package/lib/types/components/duet-shaped-image/duet-shaped-image.d.ts +30 -30
  1040. package/lib/types/components/duet-show-more/duet-show-more.d.ts +83 -83
  1041. package/lib/types/components/duet-slideout/duet-slideout.d.ts +86 -86
  1042. package/lib/types/components/duet-slideout-lang/duet-slideout-lang.d.ts +24 -24
  1043. package/lib/types/components/duet-slideout-link/duet-slideout-link.d.ts +55 -55
  1044. package/lib/types/components/duet-slideout-panel/duet-slideout-panel.d.ts +55 -55
  1045. package/lib/types/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.d.ts +39 -39
  1046. package/lib/types/components/duet-spacer/duet-spacer.d.ts +18 -18
  1047. package/lib/types/components/duet-spinner/duet-spinner.d.ts +30 -30
  1048. package/lib/types/components/duet-step/duet-step.d.ts +66 -66
  1049. package/lib/types/components/duet-stepper/duet-stepper.d.ts +47 -47
  1050. package/lib/types/components/duet-submenu-bar/duet-submenu-bar.d.ts +50 -50
  1051. package/lib/types/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.d.ts +47 -47
  1052. package/lib/types/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.d.ts +43 -43
  1053. package/lib/types/components/duet-submenu-bar-link/duet-submenu-bar-link.d.ts +39 -39
  1054. package/lib/types/components/duet-tab/duet-tab.d.ts +37 -37
  1055. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +132 -132
  1056. package/lib/types/components/duet-table/duet-table.d.ts +66 -66
  1057. package/lib/types/components/duet-textarea/duet-textarea.d.ts +200 -200
  1058. package/lib/types/components/duet-toggle/duet-toggle.d.ts +113 -113
  1059. package/lib/types/components/duet-toolbar/duet-toolbar.d.ts +30 -30
  1060. package/lib/types/components/duet-toolbar-dropdown/duet-toolbar-dropdown.d.ts +50 -50
  1061. package/lib/types/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.d.ts +43 -43
  1062. package/lib/types/components/duet-toolbar-link/duet-toolbar-link.d.ts +42 -42
  1063. package/lib/types/components/duet-tooltip/duet-tooltip-button.d.ts +22 -19
  1064. package/lib/types/components/duet-tooltip/duet-tooltip-popup.d.ts +34 -31
  1065. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +122 -122
  1066. package/lib/types/components/duet-tray/duet-tray.d.ts +84 -84
  1067. package/lib/types/components/duet-upload/duet-upload.d.ts +484 -484
  1068. package/lib/types/components/duet-upload/errorcodes.utils.d.ts +3 -3
  1069. package/lib/types/components/duet-upload/upload-editable-item-error.d.ts +2 -2
  1070. package/lib/types/components/duet-upload/upload-editable-item-inprogres.d.ts +2 -2
  1071. package/lib/types/components/duet-upload/upload-editable-item-pending.d.ts +1 -1
  1072. package/lib/types/components/duet-upload/upload-editable-item-success.d.ts +2 -2
  1073. package/lib/types/components/duet-upload/upload-item-header.d.ts +2 -2
  1074. package/lib/types/components/duet-upload/upload-validators.d.ts +4 -4
  1075. package/lib/types/components/duet-upload/xhr.helpers.d.ts +10 -10
  1076. package/lib/types/components/duet-upload-aria-status/duet-upload-aria-status.d.ts +40 -40
  1077. package/lib/types/components/duet-upload-item/duet-upload-item.d.ts +54 -54
  1078. package/lib/types/components/duet-visually-hidden/duet-visually-hidden.d.ts +6 -6
  1079. package/lib/types/stencil-public-runtime.d.ts +8 -0
  1080. package/lib/types/utils/axe-core-utils.d.ts +3 -3
  1081. package/lib/types/utils/fixture-utils.d.ts +2 -2
  1082. package/lib/types/utils/focus-utils.d.ts +2 -2
  1083. package/lib/types/utils/language-utils.d.ts +10 -10
  1084. package/lib/types/utils/picture-utils.d.ts +10 -10
  1085. package/lib/types/utils/teleport.d.ts +20 -20
  1086. package/lib/types/utils/template-utils.d.ts +1 -1
  1087. package/lib/types/utils/test-utils.d.ts +2 -2
  1088. package/lib/types/utils/token-utils.d.ts +9 -9
  1089. package/package.json +6 -6
  1090. package/lib/cjs/app-globals-4ab83f59.js +0 -54
  1091. package/lib/cjs/create-id-167cd350.js +0 -13
  1092. package/lib/cjs/errorcodes.utils-8e928de5.js +0 -39
  1093. package/lib/cjs/focus-utils-aea9f4e1.js +0 -21
  1094. package/lib/cjs/input-utils-b4615782.js +0 -56
  1095. package/lib/cjs/string-utils-51a2f59f.js +0 -59
  1096. package/lib/cjs/teleport-af825e04.js +0 -99
  1097. package/lib/cjs/themeable-component-0be6d1f4.js +0 -15
  1098. package/lib/cjs/token-utils-dbfeff2e.js +0 -124
  1099. package/lib/cjs/watch-options-1773d69f.js +0 -61
  1100. package/lib/dist-custom-elements/p-03ac3eb3.js +0 -137
  1101. package/lib/dist-custom-elements/p-1a395a8d.js +0 -55
  1102. package/lib/dist-custom-elements/p-1ce55654.js +0 -265
  1103. package/lib/dist-custom-elements/p-1f56e02f.js +0 -174
  1104. package/lib/dist-custom-elements/p-24853ebf.js +0 -97
  1105. package/lib/dist-custom-elements/p-268171f7.js +0 -9
  1106. package/lib/dist-custom-elements/p-3049dfd5.js +0 -147
  1107. package/lib/dist-custom-elements/p-45f71a69.js +0 -11
  1108. package/lib/dist-custom-elements/p-4687ca41.js +0 -465
  1109. package/lib/dist-custom-elements/p-5d8d9a52.js +0 -98
  1110. package/lib/dist-custom-elements/p-62e68de8.js +0 -38
  1111. package/lib/dist-custom-elements/p-64cd1abb.js +0 -93
  1112. package/lib/dist-custom-elements/p-665418f0.js +0 -205
  1113. package/lib/dist-custom-elements/p-759c725f.js +0 -226
  1114. package/lib/dist-custom-elements/p-77f2dbee.js +0 -53
  1115. package/lib/dist-custom-elements/p-80ec4336.js +0 -123
  1116. package/lib/dist-custom-elements/p-8be301dd.js +0 -62
  1117. package/lib/dist-custom-elements/p-9541f0b6.js +0 -59
  1118. package/lib/dist-custom-elements/p-a1371eee.js +0 -57
  1119. package/lib/dist-custom-elements/p-a3923b18.js +0 -126
  1120. package/lib/dist-custom-elements/p-c5032d3a.js +0 -18
  1121. package/lib/dist-custom-elements/p-d48735b6.js +0 -13
  1122. package/lib/dist-custom-elements/p-e19d1e27.js +0 -117
  1123. package/lib/dist-custom-elements/p-e6b07569.js +0 -271
  1124. package/lib/dist-custom-elements/p-e77f7fff.js +0 -60
  1125. package/lib/dist-custom-elements/p-f27e355b.js +0 -76
  1126. package/lib/dist-custom-elements/p-f46be918.js +0 -110
  1127. package/lib/dist-custom-elements/p-fd4877d1.js +0 -72
  1128. package/lib/dist-custom-elements/p-fe8a2205.js +0 -206
  1129. package/lib/duet/p-08764d71.entry.js +0 -4
  1130. package/lib/duet/p-0a664ebb.entry.js +0 -4
  1131. package/lib/duet/p-11571ab9.entry.js +0 -4
  1132. package/lib/duet/p-4669b0af.js +0 -4
  1133. package/lib/duet/p-486eec2d.entry.js +0 -4
  1134. package/lib/duet/p-4dc0fff9.entry.js +0 -4
  1135. package/lib/duet/p-52806dad.system.entry.js +0 -4
  1136. package/lib/duet/p-6c4c0279.js +0 -5
  1137. package/lib/duet/p-7bca584a.entry.js +0 -4
  1138. package/lib/duet/p-7c36b779.entry.js +0 -4
  1139. package/lib/duet/p-821c350f.system.entry.js +0 -4
  1140. package/lib/duet/p-a0660ffa.system.js +0 -5
  1141. package/lib/duet/p-ac9f6601.entry.js +0 -4
  1142. package/lib/duet/p-b3ae5641.system.entry.js +0 -4
  1143. package/lib/duet/p-c1bc9249.entry.js +0 -4
  1144. package/lib/duet/p-d098d59c.system.entry.js +0 -4
  1145. package/lib/duet/p-f58eb425.js +0 -4
  1146. package/lib/duet/p-fab6160a.entry.js +0 -4
  1147. package/lib/esm/app-globals-de2a5510.js +0 -52
  1148. package/lib/esm/create-id-2b0cd46d.js +0 -11
  1149. package/lib/esm/errorcodes.utils-424b1197.js +0 -36
  1150. package/lib/esm/focus-utils-74961919.js +0 -18
  1151. package/lib/esm/input-utils-a0225b92.js +0 -53
  1152. package/lib/esm/is-internet-explorer-032d4dae.js +0 -9
  1153. package/lib/esm/string-utils-59ad4cb2.js +0 -55
  1154. package/lib/esm/teleport-15747328.js +0 -97
  1155. package/lib/esm/themeable-component-fdce4fd7.js +0 -13
  1156. package/lib/esm/token-utils-46c8fe31.js +0 -117
  1157. package/lib/esm/watch-options-f189118b.js +0 -57
  1158. package/lib/esm-es5/focus-utils-74961919.js +0 -4
  1159. package/lib/esm-es5/index-b3bf9761.js +0 -5
  1160. /package/lib/duet/{p-b1db3006.js → p-0782a6e5.js} +0 -0
  1161. /package/lib/duet/{p-1a395a8d.js → p-0e052642.js} +0 -0
  1162. /package/lib/duet/{p-f8c76b25.js → p-11230037.js} +0 -0
  1163. /package/lib/duet/{p-0b31864f.js → p-38320af8.js} +0 -0
  1164. /package/lib/duet/{p-c30a5f7c.system.js → p-41982d26.system.js} +0 -0
  1165. /package/lib/duet/{p-268171f7.js → p-43b89e38.js} +0 -0
  1166. /package/lib/duet/{p-274d11e3.js → p-4ab776f4.js} +0 -0
  1167. /package/lib/duet/{p-77b6e4ba.system.js → p-50f4bca2.system.js} +0 -0
  1168. /package/lib/duet/{p-45f71a69.js → p-5e59e970.js} +0 -0
  1169. /package/lib/duet/{p-75daef16.system.js → p-634e8787.system.js} +0 -0
  1170. /package/lib/duet/{p-719b38fe.system.js → p-67c653f9.system.js} +0 -0
  1171. /package/lib/duet/{p-b99c00fa.system.js → p-6ef75455.system.js} +0 -0
  1172. /package/lib/duet/{p-a1371eee.js → p-7d8a2628.js} +0 -0
  1173. /package/lib/duet/{p-21f3a17a.system.js → p-81a6df68.system.js} +0 -0
  1174. /package/lib/duet/{p-ecf1f6cd.system.js → p-9e36548d.system.js} +0 -0
  1175. /package/lib/duet/{p-3d8d557b.js → p-9e371678.js} +0 -0
  1176. /package/lib/duet/{p-d48735b6.js → p-a58bd561.js} +0 -0
  1177. /package/lib/duet/{p-8e1da663.system.js → p-afad5fd3.system.js} +0 -0
  1178. /package/lib/duet/{p-24853ebf.js → p-b2e550a3.js} +0 -0
  1179. /package/lib/duet/{p-7c29d36a.system.js → p-b864159a.system.js} +0 -0
  1180. /package/lib/duet/{p-88a50491.system.js → p-d1cedaa1.system.js} +0 -0
  1181. /package/lib/duet/{p-77f2dbee.js → p-df7874f9.js} +0 -0
  1182. /package/lib/duet/{p-87dd7bf3.system.js → p-e12066c8.system.js} +0 -0
  1183. /package/lib/duet/{p-1a91e22a.system.js → p-e6b5a1c7.system.js} +0 -0
  1184. /package/lib/esm-es5/{app-globals-de2a5510.js → app-globals-41b37f11.js} +0 -0
  1185. /package/lib/esm-es5/{common-strings-c0ac5a0b.js → common-strings-59db6973.js} +0 -0
  1186. /package/lib/esm-es5/{create-id-2b0cd46d.js → create-id-149a1b6d.js} +0 -0
  1187. /package/lib/esm-es5/{input-utils-a0225b92.js → input-utils-85681162.js} +0 -0
  1188. /package/lib/esm-es5/{is-internet-explorer-032d4dae.js → is-internet-explorer-2c48f686.js} +0 -0
  1189. /package/lib/esm-es5/{js-utils-a35dcc8c.js → js-utils-9b9e0039.js} +0 -0
  1190. /package/lib/esm-es5/{slot-query-7877f18f.js → slot-query-022710bb.js} +0 -0
  1191. /package/lib/esm-es5/{string-utils-59ad4cb2.js → string-utils-ca039233.js} +0 -0
  1192. /package/lib/esm-es5/{teleport-15747328.js → teleport-4462e8c1.js} +0 -0
  1193. /package/lib/esm-es5/{themeable-component-fdce4fd7.js → themeable-component-724c0f7e.js} +0 -0
  1194. /package/lib/esm-es5/{token-utils-46c8fe31.js → token-utils-b4bd3ec7.js} +0 -0
  1195. /package/lib/esm-es5/{watch-options-f189118b.js → watch-options-e96ecd92.js} +0 -0
@@ -19,9 +19,9 @@ import { DuetHeaderDropdown } from "./duet-header-dropdown";
19
19
  import { DuetHeaderHamburger } from "./duet-header-hamburger";
20
20
  import { DuetHeaderIcon } from "./duet-header-icon";
21
21
  const createEvent = (ev, data) => ({
22
- component: "duet-header",
23
- data,
24
- originalEvent: ev,
22
+ component: "duet-header",
23
+ data,
24
+ originalEvent: ev,
25
25
  });
26
26
  /**
27
27
  * @slot utility - A slot for utilities, such as a notification drawer or shopping basket.
@@ -29,1327 +29,1329 @@ const createEvent = (ev, data) => ({
29
29
  * @part header - piercing selector for styling the header element.
30
30
  */
31
31
  export class DuetHeader {
32
- constructor() {
33
- var _a;
34
- /**
35
- * Own Properties
36
- */
37
- this.subMenuItemRefs = {};
38
- this.subMenuButtonRefs = {};
39
- this.hasLanguageChanged = false;
40
- this.mql = [window.matchMedia(media_query_large.replace(/'/g, ""))];
41
- this.boundMqlFunctions = [];
42
- this.handleClick = (event, moveFocusToButton = false) => {
43
- if (event.data.analyticsId) {
44
- this.duetAnalytics.emit({
45
- component: "duet-header",
46
- analyticsId: event.data.analyticsId,
47
- });
48
- }
49
- this.duetChange.emit(event);
50
- this.closeMenus(moveFocusToButton);
51
- this.closeMobileNavigation(moveFocusToButton);
52
- };
53
- this.handleSessionClick = (ev) => {
54
- const e = createEvent(ev, this.processedSession);
55
- this.handleClick(e);
56
- this.duetSessionClick.emit(e);
57
- };
58
- this.handleSessionItemClick = (ev, item) => {
59
- const e = createEvent(ev, item);
60
- this.handleClick(e);
61
- this.duetSessionClick.emit(e);
62
- };
63
- this.handleSearchClick = (ev) => {
64
- const e = createEvent(ev, this.processedSearch);
65
- this.handleClick(e);
66
- this.duetSearchClick.emit(e);
67
- };
68
- this.handleUserClick = (ev) => {
69
- const e = createEvent(ev, this.processedUser);
70
- this.handleClick(e);
71
- this.duetUserClick.emit(e);
72
- };
73
- this.handleBackClick = (ev) => {
74
- const e = createEvent(ev, this.processedBack);
75
- this.handleClick(e);
76
- this.duetBackClick.emit(e);
77
- };
78
- this.handleSkipClick = (ev) => {
79
- const { skipLabel } = this.accessibleI18nLabels;
80
- const e = createEvent(ev, { href: this.skipToId, label: skipLabel });
81
- this.handleClick(e);
82
- this.duetSkipClick.emit(e);
83
- };
84
- this.handleLogoClick = (ev) => {
85
- const e = createEvent(ev, { href: this.logoHref, label: "logo" });
86
- this.handleClick(e);
87
- this.duetLogoClick.emit(e);
88
- };
89
- this.handleArrowKeys = ev => {
90
- let button;
91
- if (isArrowLeftKey(ev) || isArrowUpKey(ev)) {
92
- button = ev.target.previousElementSibling;
93
- }
94
- else if (isArrowRightKey(ev) || isArrowDownKey(ev)) {
95
- button = ev.target.nextElementSibling;
96
- }
97
- if (button) {
98
- ev.preventDefault();
99
- button.focus();
100
- }
101
- };
102
- this.toggleMenu = (ev, type, id, active) => {
103
- let el;
104
- ev.preventDefault();
105
- ev.stopPropagation();
106
- if (active === true && !this.openMenu) {
107
- const closedActives = this.closedActives ? [...this.closedActives] : [];
108
- const index = closedActives.findIndex(i => i === id);
109
- if (index > -1) {
110
- closedActives.splice(index, 1);
111
- this.closedActives = [...closedActives];
112
- }
113
- else {
114
- this.closedActives = [...closedActives, id];
115
- }
116
- }
117
- else {
118
- this.openMenu = this.openMenu === id ? null : id;
119
- }
120
- // For language menu
121
- if (type === "language") {
122
- this.isContactOpen = false;
123
- this.isLanguageOpen = !this.isLanguageOpen;
124
- this.isSegmentOpen = false;
125
- this.isSessionOpen = false;
126
- el = this.languageItemsEl;
127
- }
128
- // For session menu
129
- if (type === "session") {
130
- this.isContactOpen = false;
131
- this.isLanguageOpen = false;
132
- this.isSegmentOpen = false;
133
- this.isSessionOpen = !this.isSessionOpen;
134
- el = this.sessionItemsEl;
135
- }
136
- // For contact menu
137
- else if (type === "contact") {
138
- this.isLanguageOpen = false;
139
- this.isContactOpen = !this.isContactOpen;
140
- this.isSegmentOpen = false;
141
- this.isSessionOpen = false;
142
- el = this.contactItemsEl;
143
- }
144
- // For mobile menu
145
- else if (type === "mobile") {
32
+ constructor() {
33
+ var _a;
34
+ /**
35
+ * Own Properties
36
+ */
37
+ this.subMenuItemRefs = {};
38
+ this.subMenuButtonRefs = {};
39
+ this.hasLanguageChanged = false;
40
+ this.mql = [window.matchMedia(media_query_large.replace(/'/g, ""))];
41
+ this.boundMqlFunctions = [];
42
+ this.handleClick = (event, moveFocusToButton = false) => {
43
+ if (event.data.analyticsId) {
44
+ this.duetAnalytics.emit({
45
+ component: "duet-header",
46
+ analyticsId: event.data.analyticsId,
47
+ });
48
+ }
49
+ this.duetChange.emit(event);
50
+ this.closeMenus(moveFocusToButton);
51
+ this.closeMobileNavigation(moveFocusToButton);
52
+ };
53
+ this.handleSessionClick = (ev) => {
54
+ const e = createEvent(ev, this.processedSession);
55
+ this.handleClick(e);
56
+ this.duetSessionClick.emit(e);
57
+ };
58
+ this.handleSessionItemClick = (ev, item) => {
59
+ const e = createEvent(ev, item);
60
+ this.handleClick(e);
61
+ this.duetSessionClick.emit(e);
62
+ };
63
+ this.handleSearchClick = (ev) => {
64
+ const e = createEvent(ev, this.processedSearch);
65
+ this.handleClick(e);
66
+ this.duetSearchClick.emit(e);
67
+ };
68
+ this.handleUserClick = (ev) => {
69
+ const e = createEvent(ev, this.processedUser);
70
+ this.handleClick(e);
71
+ this.duetUserClick.emit(e);
72
+ };
73
+ this.handleBackClick = (ev) => {
74
+ const e = createEvent(ev, this.processedBack);
75
+ this.handleClick(e);
76
+ this.duetBackClick.emit(e);
77
+ };
78
+ this.handleSkipClick = (ev) => {
79
+ const { skipLabel } = this.accessibleI18nLabels;
80
+ const e = createEvent(ev, { href: this.skipToId, label: skipLabel });
81
+ this.handleClick(e);
82
+ this.duetSkipClick.emit(e);
83
+ };
84
+ this.handleLogoClick = (ev) => {
85
+ const e = createEvent(ev, { href: this.logoHref, label: "logo" });
86
+ this.handleClick(e);
87
+ this.duetLogoClick.emit(e);
88
+ };
89
+ this.handleArrowKeys = ev => {
90
+ let button;
91
+ if (isArrowLeftKey(ev) || isArrowUpKey(ev)) {
92
+ button = ev.target.previousElementSibling;
93
+ }
94
+ else if (isArrowRightKey(ev) || isArrowDownKey(ev)) {
95
+ button = ev.target.nextElementSibling;
96
+ }
97
+ if (button) {
98
+ ev.preventDefault();
99
+ button.focus();
100
+ }
101
+ };
102
+ this.toggleMenu = (ev, type, id, active) => {
103
+ let el;
104
+ ev.preventDefault();
105
+ ev.stopPropagation();
106
+ if (active === true && !this.openMenu) {
107
+ const closedActives = this.closedActives ? [...this.closedActives] : [];
108
+ const index = closedActives.findIndex(i => i === id);
109
+ if (index > -1) {
110
+ closedActives.splice(index, 1);
111
+ this.closedActives = [...closedActives];
112
+ }
113
+ else {
114
+ this.closedActives = [...closedActives, id];
115
+ }
116
+ }
117
+ else {
118
+ this.openMenu = this.openMenu === id ? null : id;
119
+ }
120
+ // For language menu
121
+ if (type === "language") {
122
+ this.isContactOpen = false;
123
+ this.isLanguageOpen = !this.isLanguageOpen;
124
+ this.isSegmentOpen = false;
125
+ this.isSessionOpen = false;
126
+ el = this.languageItemsEl;
127
+ }
128
+ // For session menu
129
+ if (type === "session") {
130
+ this.isContactOpen = false;
131
+ this.isLanguageOpen = false;
132
+ this.isSegmentOpen = false;
133
+ this.isSessionOpen = !this.isSessionOpen;
134
+ el = this.sessionItemsEl;
135
+ }
136
+ // For contact menu
137
+ else if (type === "contact") {
138
+ this.isLanguageOpen = false;
139
+ this.isContactOpen = !this.isContactOpen;
140
+ this.isSegmentOpen = false;
141
+ this.isSessionOpen = false;
142
+ el = this.contactItemsEl;
143
+ }
144
+ // For mobile menu
145
+ else if (type === "mobile") {
146
+ this.isContactOpen = false;
147
+ this.isLanguageOpen = false;
148
+ this.isSegmentOpen = false;
149
+ this.isSessionOpen = false;
150
+ el = this.navigationEl;
151
+ const toggle = !this.isSlideOutOpen;
152
+ this.isSlideOutOpen = toggle;
153
+ this.duetMobileNavToggle.emit({ originalEvent: ev, open: toggle });
154
+ if (this.isSlideOutOpen) {
155
+ disableBodyScroll(this.navigationEl, { reserveScrollBarGap: true });
156
+ }
157
+ else {
158
+ enableBodyScroll(this.navigationEl);
159
+ }
160
+ }
161
+ else if (type === "sub") {
162
+ this.isContactOpen = false;
163
+ this.isLanguageOpen = false;
164
+ this.isSegmentOpen = false;
165
+ this.isSessionOpen = false;
166
+ el = this.subMenuItemRefs[id];
167
+ }
168
+ else if (type === "segment") {
169
+ this.isContactOpen = false;
170
+ this.isLanguageOpen = false;
171
+ this.isSessionOpen = false;
172
+ this.isSegmentOpen = !this.isSegmentOpen;
173
+ el = this.segmentItemsEl;
174
+ }
175
+ if (this.isSlideOutOpen ||
176
+ this.isLanguageOpen ||
177
+ this.isContactOpen ||
178
+ this.isSegmentOpen ||
179
+ this.isSessionOpen ||
180
+ this.openMenu) {
181
+ const drawer = this.element.querySelector("duet-notification-drawer");
182
+ if (drawer) {
183
+ drawer.close(false);
184
+ }
185
+ // Focus in the new menu when opened to make them more accessible
186
+ setTimeout(() => {
187
+ el.querySelector("a").focus();
188
+ }, 300);
189
+ }
190
+ };
191
+ this.emitDuetEvent = (ev, data) => {
192
+ this.duetEvent.emit({
193
+ component: "duet-header",
194
+ data,
195
+ originalEvent: ev,
196
+ });
197
+ };
146
198
  this.isContactOpen = false;
147
199
  this.isLanguageOpen = false;
148
- this.isSegmentOpen = false;
149
200
  this.isSessionOpen = false;
150
- el = this.navigationEl;
151
- const toggle = !this.isSlideOutOpen;
152
- this.isSlideOutOpen = toggle;
153
- this.duetMobileNavToggle.emit({ originalEvent: ev, open: toggle });
154
- if (this.isSlideOutOpen) {
155
- disableBodyScroll(this.navigationEl, { reserveScrollBarGap: true });
156
- }
157
- else {
158
- enableBodyScroll(this.navigationEl);
159
- }
160
- }
161
- else if (type === "sub") {
162
- this.isContactOpen = false;
163
- this.isLanguageOpen = false;
201
+ this.isSlideOutOpen = false;
164
202
  this.isSegmentOpen = false;
165
- this.isSessionOpen = false;
166
- el = this.subMenuItemRefs[id];
167
- }
168
- else if (type === "segment") {
169
- this.isContactOpen = false;
170
- this.isLanguageOpen = false;
171
- this.isSessionOpen = false;
172
- this.isSegmentOpen = !this.isSegmentOpen;
173
- el = this.segmentItemsEl;
174
- }
175
- if (this.isSlideOutOpen ||
176
- this.isLanguageOpen ||
177
- this.isContactOpen ||
178
- this.isSegmentOpen ||
179
- this.isSessionOpen ||
180
- this.openMenu) {
181
- const drawer = this.element.querySelector("duet-notification-drawer");
182
- if (drawer) {
183
- drawer.close(false);
184
- }
185
- // Focus in the new menu when opened to make them more accessible
186
- setTimeout(() => {
187
- el.querySelector("a").focus();
188
- }, 300);
189
- }
190
- };
191
- this.emitDuetEvent = (ev, data) => {
192
- this.duetEvent.emit({
193
- component: "duet-header",
194
- data,
195
- originalEvent: ev,
196
- });
197
- };
198
- this.isContactOpen = false;
199
- this.isLanguageOpen = false;
200
- this.isSessionOpen = false;
201
- this.isSlideOutOpen = false;
202
- this.isSegmentOpen = false;
203
- this.openMenu = null;
204
- this.closedActives = null;
205
- this.processedItems = null;
206
- this.processedLanguageItems = null;
207
- this.processedContactItems = null;
208
- this.processedSession = null;
209
- this.processedSearch = null;
210
- this.processedUser = null;
211
- this.processedBack = null;
212
- this.renderDesktopNav = Build.isServer ? true : (_a = this.mql[0]) === null || _a === void 0 ? void 0 : _a.matches;
213
- this.theme = "";
214
- this.language = getLanguage();
215
- this.accessibleI18nLabelsDefaults = {
216
- fi: {
217
- skipLabel: "Siirry pääsisältöön",
218
- changeLanguage: "Vaihda kieltä",
219
- activeLanguage: "Suomi valittuna",
220
- },
221
- sv: {
222
- skipLabel: "Gå till huvudinnehåll",
223
- changeLanguage: "Ändra Språk",
224
- activeLanguage: "Svenska valt",
225
- },
226
- en: {
227
- skipLabel: "Skip to main content",
228
- changeLanguage: "Change language",
229
- activeLanguage: "English selected",
230
- },
231
- };
232
- this.accessibleI18nLabels = getLocaleString(this.accessibleI18nLabelsDefaults);
233
- this.accessibleLabelExternalDefaults = DuetStringsExternalDefaults;
234
- this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults);
235
- this.accessibleLabelDefaults = {
236
- fi: "Valikko",
237
- sv: "Meny",
238
- en: "Menu",
239
- };
240
- this.accessibleLabel = getLocaleString(this.accessibleLabelDefaults);
241
- this.user = undefined;
242
- this.logoHref = "/";
243
- this.currentHref = "/";
244
- this.skipToId = "";
245
- this.items = undefined;
246
- this.region = "";
247
- this.session = undefined;
248
- this.search = undefined;
249
- this.back = undefined;
250
- this.contact = "";
251
- this.contactItems = undefined;
252
- this.languageItems = undefined;
253
- }
254
- /**
255
- * Component lifecycle events.
256
- */
257
- componentWillLoad() {
258
- inheritGlobalTheme(this);
259
- this.refresh();
260
- }
261
- connectedCallback() {
262
- for (let i = 0; i < this.mql.length; i++) {
263
- // addEventListener is not available in Stencil hydrate
264
- if (this.mql[i].addEventListener) {
265
- const bound = this.refresh.bind(this);
266
- this.mql[i].addEventListener("change", bound);
267
- this.boundMqlFunctions[i] = bound;
268
- }
269
- }
270
- connectLanguageChangeObserver(this, [
271
- { prop: "accessibleLabel", defaults: "accessibleLabelDefaults" },
272
- { prop: "accessibleI18nLabels", defaults: "accessibleI18nLabelsDefaults" },
273
- { prop: "accessibleLabelExternal", defaults: "accessibleLabelExternalDefaults" },
274
- ]);
275
- }
276
- disconnectedCallback() {
277
- if (this.navigationEl) {
278
- enableBodyScroll(this.navigationEl);
279
- }
280
- for (let i = 0; i < this.mql.length; i++) {
281
- // addEventListener is not available in Stencil hydrate
282
- if (this.mql[i].removeEventListener) {
283
- this.mql[i].removeEventListener("change", this.boundMqlFunctions[i]);
284
- }
203
+ this.openMenu = null;
204
+ this.closedActives = null;
205
+ this.processedItems = null;
206
+ this.processedLanguageItems = null;
207
+ this.processedContactItems = null;
208
+ this.processedSession = null;
209
+ this.processedSearch = null;
210
+ this.processedUser = null;
211
+ this.processedBack = null;
212
+ this.renderDesktopNav = Build.isServer ? true : (_a = this.mql[0]) === null || _a === void 0 ? void 0 : _a.matches;
213
+ this.theme = "";
214
+ this.language = getLanguage();
215
+ this.accessibleI18nLabelsDefaults = {
216
+ fi: {
217
+ skipLabel: "Siirry pääsisältöön",
218
+ changeLanguage: "Vaihda kieltä",
219
+ activeLanguage: "Suomi valittuna",
220
+ },
221
+ sv: {
222
+ skipLabel: "Gå till huvudinnehåll",
223
+ changeLanguage: "Ändra Språk",
224
+ activeLanguage: "Svenska valt",
225
+ },
226
+ en: {
227
+ skipLabel: "Skip to main content",
228
+ changeLanguage: "Change language",
229
+ activeLanguage: "English selected",
230
+ },
231
+ };
232
+ this.accessibleI18nLabels = getLocaleString(this.accessibleI18nLabelsDefaults);
233
+ this.accessibleLabelExternalDefaults = DuetStringsExternalDefaults;
234
+ this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults);
235
+ this.accessibleLabelDefaults = {
236
+ fi: "Valikko",
237
+ sv: "Meny",
238
+ en: "Menu",
239
+ };
240
+ this.accessibleLabel = getLocaleString(this.accessibleLabelDefaults);
241
+ this.user = undefined;
242
+ this.logoHref = "/";
243
+ this.currentHref = "/";
244
+ this.skipToId = "";
245
+ this.items = undefined;
246
+ this.region = "";
247
+ this.session = undefined;
248
+ this.search = undefined;
249
+ this.back = undefined;
250
+ this.contact = "";
251
+ this.contactItems = undefined;
252
+ this.languageItems = undefined;
285
253
  }
286
- this.boundMqlFunctions = [];
287
- disconnectLanguageChangeObserver(this);
288
- }
289
- /**
290
- * Component event handling.
291
- */
292
- handleKeyUp(ev) {
293
- // When Esc is pressed
294
- if (isEscapeKey(ev)) {
295
- this.closeMenus(true);
296
- this.closeMobileNavigation(true);
254
+ /**
255
+ * Component lifecycle events.
256
+ */
257
+ componentWillLoad() {
258
+ inheritGlobalTheme(this);
259
+ this.refresh();
297
260
  }
298
- }
299
- handleKeyDown(ev) {
300
- if (this.isContactOpen || this.isLanguageOpen || this.isSegmentOpen) {
301
- const activeElement = this.element.shadowRoot.activeElement;
302
- // When Space is pressed
303
- if (isSpaceKey(ev) && activeElement) {
304
- ev.preventDefault();
305
- ev.stopPropagation();
306
- if (this.isContactOpen) {
307
- this.closeMenus();
261
+ connectedCallback() {
262
+ for (let i = 0; i < this.mql.length; i++) {
263
+ // addEventListener is not available in Stencil hydrate
264
+ if (this.mql[i].addEventListener) {
265
+ const bound = this.refresh.bind(this);
266
+ this.mql[i].addEventListener("change", bound);
267
+ this.boundMqlFunctions[i] = bound;
268
+ }
308
269
  }
309
- else if (this.isLanguageOpen) {
310
- this.closeMenus(true);
270
+ connectLanguageChangeObserver(this, [
271
+ { prop: "accessibleLabel", defaults: "accessibleLabelDefaults" },
272
+ { prop: "accessibleI18nLabels", defaults: "accessibleI18nLabelsDefaults" },
273
+ { prop: "accessibleLabelExternal", defaults: "accessibleLabelExternalDefaults" },
274
+ ]);
275
+ }
276
+ disconnectedCallback() {
277
+ if (this.navigationEl) {
278
+ enableBodyScroll(this.navigationEl);
311
279
  }
312
- else if (this.isSegmentOpen) {
313
- this.closeMenus();
280
+ for (let i = 0; i < this.mql.length; i++) {
281
+ // addEventListener is not available in Stencil hydrate
282
+ if (this.mql[i].removeEventListener) {
283
+ this.mql[i].removeEventListener("change", this.boundMqlFunctions[i]);
284
+ }
314
285
  }
315
- else if (this.openMenu) {
316
- this.closeMenus();
286
+ this.boundMqlFunctions = [];
287
+ disconnectLanguageChangeObserver(this);
288
+ }
289
+ /**
290
+ * Component event handling.
291
+ */
292
+ handleKeyUp(ev) {
293
+ // When Esc is pressed
294
+ if (isEscapeKey(ev)) {
295
+ this.closeMenus(true);
296
+ this.closeMobileNavigation(true);
317
297
  }
318
- activeElement.click();
319
- }
320
298
  }
321
- }
322
- handleDocumentClick() {
323
- this.closeMenus();
324
- this.closeMobileNavigation();
325
- }
326
- handleLanguageClick(ev, data) {
327
- this.language = data.country;
328
- this.hasLanguageChanged = true;
329
- const e = createEvent(ev, data);
330
- this.handleClick(e, true);
331
- this.duetLanguageSelect.emit(e);
332
- }
333
- handleContactClick(ev, data) {
334
- const e = createEvent(ev, data);
335
- this.handleClick(e);
336
- this.duetContactClick.emit(e);
337
- }
338
- handleItemClick(ev, data) {
339
- const e = createEvent(ev, data);
340
- this.handleClick(e);
341
- this.duetItemClick.emit(e);
342
- }
343
- /**
344
- * Local methods.
345
- */
346
- async refresh() {
347
- var _a, _b;
348
- if (this.renderDesktopNav !== Build.isServer ? true : (_a = this.mql[0]) === null || _a === void 0 ? void 0 : _a.matches) {
349
- this.renderDesktopNav = Build.isServer ? true : (_b = this.mql[0]) === null || _b === void 0 ? void 0 : _b.matches;
350
- this.openMenu = null;
351
- if (this.isSlideOutOpen) {
352
- this.toggleMenu(document.createEvent("UIEvents"), "mobile");
353
- }
299
+ handleKeyDown(ev) {
300
+ if (this.isContactOpen || this.isLanguageOpen || this.isSegmentOpen) {
301
+ const activeElement = this.element.shadowRoot.activeElement;
302
+ // When Space is pressed
303
+ if (isSpaceKey(ev) && activeElement) {
304
+ ev.preventDefault();
305
+ ev.stopPropagation();
306
+ if (this.isContactOpen) {
307
+ this.closeMenus();
308
+ }
309
+ else if (this.isLanguageOpen) {
310
+ this.closeMenus(true);
311
+ }
312
+ else if (this.isSegmentOpen) {
313
+ this.closeMenus();
314
+ }
315
+ else if (this.openMenu) {
316
+ this.closeMenus();
317
+ }
318
+ activeElement.click();
319
+ }
320
+ }
354
321
  }
355
- this.processedItems = parsePossibleJSON(this.items);
356
- this.processedLanguageItems = parsePossibleJSON(this.languageItems);
357
- this.processedContactItems = parsePossibleJSON(this.contactItems);
358
- this.processedSession = parsePossibleJSON(this.session);
359
- this.processedSearch = parsePossibleJSON(this.search);
360
- this.processedUser = parsePossibleJSON(this.user);
361
- this.processedBack = parsePossibleJSON(this.back);
362
- }
363
- /**
364
- * Closes mobile menu in header when called.
365
- */
366
- async closeMobileNavigation(moveFocusToButton = false) {
367
- if (this.isSlideOutOpen) {
368
- this.isSlideOutOpen = false;
369
- enableBodyScroll(this.navigationEl);
370
- if (moveFocusToButton) {
371
- this.navigationElButton.focus({
372
- preventScroll: true,
373
- });
374
- }
322
+ handleDocumentClick() {
323
+ this.closeMenus();
324
+ this.closeMobileNavigation();
375
325
  }
376
- }
377
- /**
378
- * Closes all dropdown menus in header when called.
379
- */
380
- async closeMenus(moveFocusToButton = false) {
381
- if (this.isContactOpen || this.isLanguageOpen || this.isSegmentOpen || this.isSessionOpen || this.openMenu) {
382
- if (this.isContactOpen && moveFocusToButton) {
383
- this.contactItemsButtonEl.focus({
384
- preventScroll: true,
385
- });
386
- }
387
- if (this.isLanguageOpen && moveFocusToButton) {
388
- this.languageItemsButtonEl.focus({
389
- preventScroll: true,
390
- });
391
- }
392
- if (this.isSegmentOpen && moveFocusToButton) {
393
- this.segmentItemsButtonEl.focus({
394
- preventScroll: true,
395
- });
396
- }
397
- if (this.isSessionOpen && moveFocusToButton) {
398
- this.sessionItemsButtonEl.focus({
399
- preventScroll: true,
400
- });
401
- }
402
- if (this.openMenu && moveFocusToButton) {
403
- this.subMenuButtonRefs[this.openMenu].focus({
404
- preventScroll: true,
405
- });
406
- }
407
- this.isContactOpen = false;
408
- this.isLanguageOpen = false;
409
- this.isSegmentOpen = false;
410
- this.isSessionOpen = false;
411
- this.openMenu = null;
326
+ handleLanguageClick(ev, data) {
327
+ this.language = data.country;
328
+ this.hasLanguageChanged = true;
329
+ const e = createEvent(ev, data);
330
+ this.handleClick(e, true);
331
+ this.duetLanguageSelect.emit(e);
412
332
  }
413
- }
414
- /**
415
- * Sets focus on the specified `duet-header`. Use this method instead of the global
416
- * `header.focus()`.
417
- */
418
- async setFocus(options) {
419
- this.logoEl.setFocus(options);
420
- }
421
- /**
422
- * render() function
423
- * Always the last one in the class.
424
- */
425
- render() {
426
- const { skipLabel, changeLanguage, activeLanguage } = this.accessibleI18nLabels;
427
- const skipToLabel = () => this.skipToId ? (h("a", { href: this.skipToId, class: "duet-header-skip", onClick: this.handleSkipClick }, skipLabel)) : null;
428
- const logo = () => (h("duet-logo", { href: this.logoHref, size: "medium", ref: el => (this.logoEl = el), language: this.language, theme: this.theme, onClick: this.handleLogoClick }));
429
- const largeLogo = () => (h("duet-logo", { href: this.logoHref, size: "large", ref: el => (this.logoEl = el), language: this.language, theme: this.theme, onClick: this.handleLogoClick }));
430
- const contactDropdown = () => this.contact && this.processedContactItems ? (h(DuetHeaderDropdown, { id: "duet-header-contact", label: this.contact, icon: contactDropdownIcon.svg, active: this.isContactOpen, isOpen: this.isContactOpen, badge: false, toggleRef: el => (this.contactItemsButtonEl = el), itemsRef: el => (this.contactItemsEl = el), onToggle: event => this.toggleMenu(event, "contact") }, this.processedContactItems.map(item => (h("a", { role: "menuitem", href: item.href || "#", id: item.id, onClick: event => this.handleContactClick(event, item), onKeyDown: ev => this.handleArrowKeys(ev), target: item.external ? "_blank" : "_self" }, item.label, Build.isBrowser && item.external && (h(Fragment, null, h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), h("span", { class: "duet-header-link-external" }, h("duet-icon", { name: "action-new-window-small", size: "xx-small", margin: "none", color: this.theme === "turva" ? "primary-turva" : "primary" }))))))))) : null;
431
- const languageDropdown = () => this.language && this.processedLanguageItems ? (h(DuetHeaderDropdown, { id: "duet-header-language", label: this.language, icon: languageIcon.svg, accessibleText: `${changeLanguage}${this.hasLanguageChanged ? `, ${activeLanguage}` : ""}`, active: this.isLanguageOpen, isOpen: this.isLanguageOpen, badge: false, toggleRef: el => (this.languageItemsButtonEl = el), itemsRef: el => (this.languageItemsEl = el), onToggle: event => this.toggleMenu(event, "language") }, this.processedLanguageItems.map(item => (h("a", { class: { active: this.language === item.country }, "aria-selected": this.language === item.country, role: "menuitem", id: item.id, lang: item.country, href: item.href || "#", onClick: event => this.handleLanguageClick(event, item), onKeyDown: this.handleArrowKeys }, item.label))))) : null;
432
- const processedUserWithLink = () => this.processedUser && this.processedUser.href ? (h("a", { href: this.processedUser.href || "#", id: this.processedUser.id, class: "duet-header-user duet-header-button", onClick: this.handleUserClick }, h(DuetHeaderIcon, { icon: userIcon.svg }), h("span", { class: "duet-header-user-label" }, this.processedUser.label))) : null;
433
- const processedUserWithoutLink = () => this.processedUser && !this.processedUser.href ? (h("span", { id: this.processedUser.id, class: "duet-header-user duet-header-button duet-header-no-action" }, h(DuetHeaderIcon, { icon: userIcon.svg }), h("span", { class: "duet-header-user-label" }, this.processedUser.label))) : null;
434
- const processedSession = () => this.processedSession ? (h("a", { href: this.processedSession.href || "#", id: this.processedSession.id, class: "duet-header-logout duet-header-button", onClick: this.handleSessionClick }, h(DuetHeaderIcon, { class: "desktop", icon: this.processedSession.type === "logout" ? logoutIcon.svg : loginIcon.svg, iconSize: "x-small" }), h(DuetHeaderIcon, { class: "mobile", icon: this.processedSession.type === "logout" ? logoutIcon.svg : loginIcon.svg, iconSize: "small" }), h("span", { class: "duet-header-button-label" }, this.processedSession.label))) : null;
435
- const processedSessionDropdown = () => this.processedSession && this.processedSession.sessionItems ? (h(DuetHeaderDropdown, { className: "duet-header-session", id: "duet-header-session", label: this.processedSession.label, icon: this.processedSession.type === "logout" ? logoutIcon.svg : loginIcon.svg, active: this.isSessionOpen, isOpen: this.isSessionOpen, badge: false, toggleRef: el => (this.sessionItemsButtonEl = el), itemsRef: el => (this.sessionItemsEl = el), onToggle: event => this.toggleMenu(event, "session") }, this.processedSession.sessionItems.map((sessionItem, index) => (h(Fragment, null, sessionItem.label && h("span", { class: "duet-header-session-label" }, sessionItem.label), h("duet-spacer", { size: "small", "aria-hidden": "true" }), sessionItem.items.map(item => (h("a", { role: "menuitem", "aria-label": sessionItem.label ? `${sessionItem.label} ${item.label}` : item.label, id: item.id, href: item.href || "#", onClick: event => this.handleSessionItemClick(event, item), onKeyDown: this.handleArrowKeys }, item.label))), index !== this.processedSession.sessionItems.length - 1 && (h(Fragment, null, h("duet-spacer", { size: "x-small", "aria-hidden": "true" }), h("duet-divider", { margin: "none", "aria-hidden": "true" })))))))) : null;
436
- const processedSearch = () => this.processedSearch ? (h("a", { href: this.processedSearch.href || "#", id: this.processedSearch.id, class: "duet-header-search duet-header-button", onClick: this.handleSearchClick }, h(DuetHeaderIcon, { icon: searchIcon.svg }), h("span", { class: "duet-header-button-label" }, this.processedSearch.label))) : null;
437
- // Back variation
438
- if (this.processedBack) {
439
- return (h(Host, { class: "duet-header-back-variation" }, h("div", { class: "duet-header-reserved-space" }, h("header", { class: {
440
- "duet-header": true,
441
- "duet-theme-turva": this.theme === "turva",
442
- "duet-header-back": true,
443
- "duet-header-inactive": true,
444
- }, part: "header" }, h("div", { class: "duet-header-top" }, skipToLabel(), h("duet-button", { url: this.processedBack.href, id: this.processedBack.id, theme: this.theme, variation: "plain", color: this.theme === "turva" ? "secondary-turva" : "secondary", icon: "navigation-arrow-left", iconSize: "large", onClick: this.handleBackClick }, this.processedBack.label), logo(), h("slot", { name: "logo-utility" }))))));
333
+ handleContactClick(ev, data) {
334
+ const e = createEvent(ev, data);
335
+ this.handleClick(e);
336
+ this.duetContactClick.emit(e);
445
337
  }
446
- const itemsHaveSubItems = this.processedItems && this.processedItems.some(item => item.items && item.items.length > 0);
447
- const isSecondLevelActive = this.processedItems &&
448
- this.processedItems.some(item => item.items && item.items.some(secondLevelItem => secondLevelItem.active === true));
449
- const isThirdLevelActive = this.processedItems &&
450
- this.processedItems.some(item => item.items &&
451
- item.items.some(secondLevelItem => secondLevelItem.items && secondLevelItem.items.some(thirdLevelItem => thirdLevelItem.active === true)));
452
- const defaultVariationContent = (h("div", { class: {
453
- "duet-header-reserved-space": true,
454
- "duet-with-links": !!this.processedItems,
455
- "duet-header-second-level-active": isSecondLevelActive,
456
- "duet-header-third-level-active": isThirdLevelActive,
457
- "duet-header-items-have-sub-items": itemsHaveSubItems,
458
- } }, h("header", { class: {
459
- "duet-header": true,
460
- "duet-theme-turva": this.theme === "turva",
461
- "duet-header-inactive": !this.processedItems,
462
- }, part: "header" }, h("div", { class: "duet-header-top" }, skipToLabel(), logo(), h("slot", { name: "logo-utility" }, this.region && h("div", { class: "duet-header-region" }, this.region)), (this.processedItems ||
463
- languageDropdown() ||
464
- contactDropdown() ||
465
- this.processedSession ||
466
- this.processedUser) && (h("button", { ref: el => (this.navigationElButton = el), class: { "duet-header-toggle": true, active: this.isSlideOutOpen }, onClick: event => this.toggleMenu(event, "mobile"), type: "button", "aria-controls": "duet-header-bottom", "aria-expanded": this.isSlideOutOpen ? "true" : "false" }, h("duet-visually-hidden", null, this.accessibleLabel), h(DuetHeaderHamburger, null)))), h("div", { ref: el => (this.navigationEl = el), id: "duet-header-bottom", class: {
467
- "duet-header-bottom": true,
468
- active: this.isSlideOutOpen,
469
- inactive: !this.processedItems,
470
- } }, h("nav", { class: "duet-header-items", role: "navigation" }, this.processedItems &&
471
- this.processedItems.map((item, itemIndex) => (h("div", { class: "duet-header-item-container" }, h("a", { class: {
472
- "duet-header-first-level": true,
473
- "duet-header-item": true,
474
- active: (!itemsHaveSubItems && this.currentHref === item.href) ||
475
- (item.active === true &&
476
- !this.openMenu &&
477
- this.closedActives &&
478
- this.closedActives.length === 1) ||
479
- (item.active === true &&
480
- !this.openMenu &&
481
- item.items &&
482
- !item.items.some(s => s.active === true)),
483
- }, 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) }, item.label, item.badge && h("div", { class: "duet-header-badge" })), item.items &&
484
- item.items
485
- .filter(secondLevelitem => secondLevelitem.items && secondLevelitem.items.length > 0)
486
- .map((secondLevelItem, secondLevelItemIndex) => {
487
- const id = secondLevelItem.id || `header-item-${itemIndex}-${secondLevelItemIndex}`;
488
- const active = (!this.openMenu &&
489
- secondLevelItem.active === true &&
490
- !(this.closedActives && !!this.closedActives.find(i => i === id))) ||
491
- this.openMenu === id;
492
- const activeBar = active && !(secondLevelItem.items && secondLevelItem.items.some(s => s.active === true));
493
- return (h(DuetHeaderDropdown, { id: id, className: "duet-header-second-level", label: secondLevelItem.label, icon: `${secondLevelItem.icon}.svg`, active: activeBar, isOpen: active, badge: secondLevelItem.badge, toggleRef: el => (this.subMenuButtonRefs[id] = el), itemsRef: el => (this.subMenuItemRefs[id] = el), onToggle: event => this.toggleMenu(event, "sub", id, secondLevelItem.active === true) }, h("div", { class: "duet-header-third-level" }, secondLevelItem.items &&
494
- secondLevelItem.items.map(thirdLevelItem => (h("a", { class: {
495
- "duet-header-item": true,
496
- active: thirdLevelItem.active === true,
497
- }, 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" }, thirdLevelItem.icon && (h("div", { class: "duet-header-icon" }, h("duet-icon", { margin: "none", size: "medium", name: thirdLevelItem.icon, color: "currentColor" }))), h("span", null, thirdLevelItem.label), thirdLevelItem.badge && h("div", { class: "duet-header-badge" })))))));
498
- }))))), h("div", { class: "duet-header-bottom-utils" }, h("slot", { name: "utility" })), h("div", { class: "duet-header-utils" }, !itemsHaveSubItems && contactDropdown(), languageDropdown(), !itemsHaveSubItems && (h(Fragment, null, processedUserWithLink(), processedUserWithoutLink())), processedSearch(), processedSession())))));
499
- // multi level variation
500
- if (itemsHaveSubItems) {
501
- const activeSegment = this.processedItems.find(item => item.active);
502
- const isThirdLevelActive = this.processedItems &&
503
- this.processedItems.some(item => item.items &&
504
- item.items.some(secondLevelItem => secondLevelItem.items && secondLevelItem.items.some(thirdLevelItem => thirdLevelItem.active === true)));
505
- const segmentId = "duet-header-segment";
506
- return (h(Host, { class: "duet-header-multi-level-variation" }, h("div", { class: {
507
- "duet-header-multi-level": true,
508
- "duet-header-multi-level-third-level-is-open": isThirdLevelActive,
509
- } }, h("header", { class: {
510
- "duet-header": true,
511
- "duet-theme-turva": this.theme === "turva",
512
- "duet-header-inactive": !this.processedItems,
513
- }, part: "header" }, h("div", { class: "duet-header-top" }, skipToLabel(), h("div", { class: "logo-and-segment" }, h("div", null, largeLogo()), 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" }, item.icon && (h("div", { class: "duet-header-icon" }, h("duet-icon", { margin: "none", size: "x-small", name: item.icon, color: "currentColor" }))), h("span", null, item.label), item.badge && h("div", { class: "duet-header-badge" }))))))), h("nav", { class: "duet-header-multi-level-nav" }, activeSegment.items &&
514
- activeSegment.items
515
- .filter(secondLevelItem => secondLevelItem.items && secondLevelItem.items.length > 0)
516
- .map((secondLevelItem, secondLevelItemIndex) => {
517
- const id = secondLevelItem.id || `segment-item-${secondLevelItemIndex}`;
518
- 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 &&
519
- 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" }, thirdLevelItem.icon && (h("div", { class: "duet-header-icon" }, h("duet-icon", { margin: "none", size: "medium", name: thirdLevelItem.icon, color: "currentColor" }))), h("span", null, thirdLevelItem.label), thirdLevelItem.badge && h("div", { class: "duet-header-badge" }))))));
520
- })), h("div", { class: "duet-header-multi-level-utils" }, processedSearch(), languageDropdown(), processedSessionDropdown() != null ? processedSessionDropdown() : processedSession()), h("slot", { name: "utility" })))), defaultVariationContent));
338
+ handleItemClick(ev, data) {
339
+ const e = createEvent(ev, data);
340
+ this.handleClick(e);
341
+ this.duetItemClick.emit(e);
521
342
  }
522
- // Default variation
523
- return (h(Host, { class: {
524
- "duet-header-default-variation": true,
525
- } }, defaultVariationContent));
526
- }
527
- static get is() { return "duet-header"; }
528
- static get encapsulation() { return "shadow"; }
529
- static get originalStyleUrls() {
530
- return {
531
- "$": ["duet-header.scss"]
532
- };
533
- }
534
- static get styleUrls() {
535
- return {
536
- "$": ["duet-header.css"]
537
- };
538
- }
539
- static get properties() {
540
- return {
541
- "theme": {
542
- "type": "string",
543
- "mutable": true,
544
- "complexType": {
545
- "original": "DuetTheme",
546
- "resolved": "\"\" | \"default\" | \"turva\"",
547
- "references": {
548
- "DuetTheme": {
549
- "location": "import",
550
- "path": "../../common-types",
551
- "id": "src/common-types.d.ts::DuetTheme"
552
- }
553
- }
554
- },
555
- "required": false,
556
- "optional": false,
557
- "docs": {
558
- "tags": [],
559
- "text": "Theme of the header."
560
- },
561
- "attribute": "theme",
562
- "reflect": false,
563
- "defaultValue": "\"\""
564
- },
565
- "language": {
566
- "type": "string",
567
- "mutable": true,
568
- "complexType": {
569
- "original": "DuetLanguage",
570
- "resolved": "\"en\" | \"fi\" | \"sv\"",
571
- "references": {
572
- "DuetLanguage": {
573
- "location": "import",
574
- "path": "../../common-types",
575
- "id": "src/common-types.d.ts::DuetLanguage"
576
- }
577
- }
578
- },
579
- "required": false,
580
- "optional": false,
581
- "docs": {
582
- "tags": [{
583
- "name": "deprecated",
584
- "text": "this is now handled via the html lang tag, and is no longer used - kept to avoid breaking changes and ease unit testing"
585
- }, {
586
- "name": "default",
587
- "text": "\"fi\""
588
- }],
589
- "text": "The currently active language. This setting also changes the logo to match\nthe chosen language."
590
- },
591
- "attribute": "language",
592
- "reflect": false,
593
- "defaultValue": "getLanguage()"
594
- },
595
- "accessibleI18nLabelsDefaults": {
596
- "type": "string",
597
- "mutable": false,
598
- "complexType": {
599
- "original": "| string\n | Record<DuetLanguage, I18nText>",
600
- "resolved": "string | { fi: I18nText; en: I18nText; sv: I18nText; }",
601
- "references": {
602
- "Record": {
603
- "location": "global",
604
- "id": "global::Record"
605
- },
606
- "DuetLanguage": {
607
- "location": "import",
608
- "path": "../../common-types",
609
- "id": "src/common-types.d.ts::DuetLanguage"
610
- },
611
- "I18nText": {
612
- "location": "local",
613
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-header/duet-header.tsx",
614
- "id": "src/components/duet-header/duet-header.tsx::I18nText"
615
- }
616
- }
617
- },
618
- "required": false,
619
- "optional": false,
620
- "docs": {
621
- "tags": [{
622
- "name": "default",
623
- "text": "{\nfi: {\nskipLabel: \"Siirry p\u00E4\u00E4sis\u00E4lt\u00F6\u00F6n\",\nchangeLanguage: \"Vaihda kielt\u00E4\",\nactiveLanguage: \"Suomi valittuna\",\n},\nsv: {\nskipLabel: \"Hoppa till huvudinneh\u00E5ll\",\nchangeLanguage: \"\u00C4ndra Spr\u00E5k\",\nactiveLanguage: \"Svenska valt\",\n},\nen: {\nskipLabel: \"Skip to main content\",\nchangeLanguage: \"Change language\",\nactiveLanguage: \"English selected\",\n},\n}"
624
- }],
625
- "text": "Default strings for accessibleI18nLabels"
626
- },
627
- "attribute": "accessible-labels-default",
628
- "reflect": false,
629
- "defaultValue": "{\n fi: {\n skipLabel: \"Siirry p\u00E4\u00E4sis\u00E4lt\u00F6\u00F6n\",\n changeLanguage: \"Vaihda kielt\u00E4\",\n activeLanguage: \"Suomi valittuna\",\n },\n sv: {\n skipLabel: \"G\u00E5 till huvudinneh\u00E5ll\",\n changeLanguage: \"\u00C4ndra Spr\u00E5k\",\n activeLanguage: \"Svenska valt\",\n },\n en: {\n skipLabel: \"Skip to main content\",\n changeLanguage: \"Change language\",\n activeLanguage: \"English selected\",\n },\n }"
630
- },
631
- "accessibleI18nLabels": {
632
- "type": "unknown",
633
- "mutable": true,
634
- "complexType": {
635
- "original": "I18nText",
636
- "resolved": "I18nText",
637
- "references": {
638
- "I18nText": {
639
- "location": "local",
640
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-header/duet-header.tsx",
641
- "id": "src/components/duet-header/duet-header.tsx::I18nText"
642
- }
643
- }
644
- },
645
- "required": false,
646
- "optional": false,
647
- "docs": {
648
- "tags": [{
649
- "name": "default",
650
- "text": "{\nfi: {\nskipLabel: \"Siirry p\u00E4\u00E4sis\u00E4lt\u00F6\u00F6n\",\nchangeLanguage: \"Vaihda kielt\u00E4\",\nactiveLanguage: \"Suomi valittuna\",\n},\nsv: {\nskipLabel: \"Hoppa till huvudinneh\u00E5ll\",\nchangeLanguage: \"\u00C4ndra Spr\u00E5k\",\nactiveLanguage: \"Svenska valt\",\n},\nen: {\nskipLabel: \"Skip to main content\",\nchangeLanguage: \"Change language\",\nactiveLanguage: \"English selected\",\n},\n}"
651
- }],
652
- "text": "Adds i18n translations of all internally used textStrings"
653
- },
654
- "defaultValue": "getLocaleString(\n this.accessibleI18nLabelsDefaults\n )"
655
- },
656
- "accessibleLabelExternalDefaults": {
657
- "type": "string",
658
- "mutable": false,
659
- "complexType": {
660
- "original": "DuetLangObject | string",
661
- "resolved": "DuetLangObject | string",
662
- "references": {
663
- "DuetLangObject": {
664
- "location": "import",
665
- "path": "../../utils/language-utils",
666
- "id": "src/utils/language-utils.ts::DuetLangObject"
667
- }
668
- }
669
- },
670
- "required": false,
671
- "optional": false,
672
- "docs": {
673
- "tags": [{
674
- "name": "default",
675
- "text": "{fi: \"Avautuu uuteen ikkunaan\",sv: \"\u00D6ppnas i nytt f\u00F6nster\",en: \"Opens in a new window\"}"
676
- }],
677
- "text": "Property to change accessibleLabelExternal defaults on the component.\nnormally you would handle these strings on an application level and override accessibleLabelExternal when needed"
678
- },
679
- "attribute": "accessible-label-external-default",
680
- "reflect": false,
681
- "defaultValue": "DuetStringsExternalDefaults"
682
- },
683
- "accessibleLabelExternal": {
684
- "type": "string",
685
- "mutable": true,
686
- "complexType": {
687
- "original": "string",
688
- "resolved": "string",
689
- "references": {}
690
- },
691
- "required": false,
692
- "optional": false,
693
- "docs": {
694
- "tags": [{
695
- "name": "default",
696
- "text": "{fi: \"Avautuu uuteen ikkunaan\",sv: \"\u00D6ppnas i nytt f\u00F6nster\",en: \"Opens in a new window\"}"
697
- }],
698
- "text": "Adds accessible label for tooltip that is shown in external link (url & external have both been set)"
699
- },
700
- "attribute": "accessible-label-external",
701
- "reflect": false,
702
- "defaultValue": "getLocaleString(this.accessibleLabelExternalDefaults)"
703
- },
704
- "accessibleLabelDefaults": {
705
- "type": "string",
706
- "mutable": false,
707
- "complexType": {
708
- "original": "DuetLangObject | string",
709
- "resolved": "DuetLangObject | string",
710
- "references": {
711
- "DuetLangObject": {
712
- "location": "import",
713
- "path": "../../utils/language-utils",
714
- "id": "src/utils/language-utils.ts::DuetLangObject"
715
- }
716
- }
717
- },
718
- "required": false,
719
- "optional": false,
720
- "docs": {
721
- "tags": [],
722
- "text": "Property to change accessibleLabel defaults on the component.\nnormally you would handle these strings on an application level and override accessibleLabel when needed"
723
- },
724
- "attribute": "accessible-label-default",
725
- "reflect": false,
726
- "defaultValue": "{\n fi: \"Valikko\",\n sv: \"Meny\",\n en: \"Menu\",\n }"
727
- },
728
- "accessibleLabel": {
729
- "type": "string",
730
- "mutable": true,
731
- "complexType": {
732
- "original": "string",
733
- "resolved": "string",
734
- "references": {}
735
- },
736
- "required": false,
737
- "optional": false,
738
- "docs": {
739
- "tags": [{
740
- "name": "default",
741
- "text": "{\nfi: \"Valikko\",\nsv: \"Meny\",\nen: \"Menu\",\n}"
742
- }],
743
- "text": "Accessible label that is shown for screen reader users in the mobile\nnavigation toggle. Not visible for normal users."
744
- },
745
- "attribute": "accessible-label",
746
- "reflect": false,
747
- "defaultValue": "getLocaleString(this.accessibleLabelDefaults)"
748
- },
749
- "user": {
750
- "type": "any",
751
- "mutable": false,
752
- "complexType": {
753
- "original": "any",
754
- "resolved": "any",
755
- "references": {}
756
- },
757
- "required": false,
758
- "optional": false,
759
- "docs": {
760
- "tags": [],
761
- "text": "An object that includes mandatory \"label\" and \"href\" fields for the user\nprofile link. Additionally, you can pass an \"id\" that is added as an HTML\nidentifier for the element. If nothing is passed, user won\u2019t be shown.\nNote: not available in multilevel headers."
762
- },
763
- "attribute": "user",
764
- "reflect": false
765
- },
766
- "logoHref": {
767
- "type": "string",
768
- "mutable": false,
769
- "complexType": {
770
- "original": "string",
771
- "resolved": "string",
772
- "references": {}
773
- },
774
- "required": false,
775
- "optional": false,
776
- "docs": {
777
- "tags": [],
778
- "text": "URL that the logo link points to."
779
- },
780
- "attribute": "logo-href",
781
- "reflect": false,
782
- "defaultValue": "\"/\""
783
- },
784
- "currentHref": {
785
- "type": "string",
786
- "mutable": true,
787
- "complexType": {
788
- "original": "string",
789
- "resolved": "string",
790
- "references": {}
791
- },
792
- "required": false,
793
- "optional": false,
794
- "docs": {
795
- "tags": [],
796
- "text": "The href of the current page item that is shown as \u201Cactive\u201D.\nNote: not available in multilevel headers."
797
- },
798
- "attribute": "current-href",
799
- "reflect": false,
800
- "defaultValue": "\"/\""
801
- },
802
- "skipToId": {
803
- "type": "string",
804
- "mutable": false,
805
- "complexType": {
806
- "original": "string",
807
- "resolved": "string",
808
- "references": {}
809
- },
810
- "required": false,
811
- "optional": false,
812
- "docs": {
813
- "tags": [],
814
- "text": "The ID of the element where \"skip to content\" link should take the user.\nIf empty, the functionality won\u2019t be rendered in the DOM."
815
- },
816
- "attribute": "skip-to-id",
817
- "reflect": false,
818
- "defaultValue": "\"\""
819
- },
820
- "items": {
821
- "type": "any",
822
- "mutable": false,
823
- "complexType": {
824
- "original": "any",
825
- "resolved": "any",
826
- "references": {}
827
- },
828
- "required": false,
829
- "optional": false,
830
- "docs": {
831
- "tags": [],
832
- "text": "An array of items for the main navigation. Items have to include mandatory\n\"label\" and \"href\" fields to work. Additionally, you can pass an \"id\" that is\nadded as an HTML identifier for the element, \"active\" boolean that makes item active,\n\"badge\" boolean to add notification badge next to the item and\n\"items\" array consisting of sub items that are allowed up to three levels.\nTwo and three level menus are deprecated and you should instead use\nNav component to create multilevel navigations."
833
- },
834
- "attribute": "items",
835
- "reflect": false
836
- },
837
- "region": {
838
- "type": "string",
839
- "mutable": false,
840
- "complexType": {
841
- "original": "string",
842
- "resolved": "string",
843
- "references": {}
844
- },
845
- "required": false,
846
- "optional": false,
847
- "docs": {
848
- "tags": [],
849
- "text": "Region that is shown next to the logo. If empty, region will be hidden.\nNote: not available in multilevel header."
850
- },
851
- "attribute": "region",
852
- "reflect": false,
853
- "defaultValue": "\"\""
854
- },
855
- "session": {
856
- "type": "any",
857
- "mutable": false,
858
- "complexType": {
859
- "original": "any",
860
- "resolved": "any",
861
- "references": {}
862
- },
863
- "required": false,
864
- "optional": false,
865
- "docs": {
866
- "tags": [],
867
- "text": "An object that includes mandatory \"label\", \"href\" and \"type\" fields for the\nsession login/logout link. Additionally, you can pass an \"id\" that is added\nas an HTML identifier for the element.\nIf nothing is passed, this link won\u2019t be shown."
868
- },
869
- "attribute": "session",
870
- "reflect": false
871
- },
872
- "search": {
873
- "type": "any",
874
- "mutable": false,
875
- "complexType": {
876
- "original": "any",
877
- "resolved": "any",
878
- "references": {}
879
- },
880
- "required": false,
881
- "optional": false,
882
- "docs": {
883
- "tags": [],
884
- "text": "An object that includes mandatory \"label\" and \"href\" fields for the\nsearch link. Additionally, you can pass an \"id\" that is added\nas an HTML identifier for the element. If nothing is passed, this link won\u2019t\nbe shown."
885
- },
886
- "attribute": "search",
887
- "reflect": false
888
- },
889
- "back": {
890
- "type": "any",
891
- "mutable": false,
892
- "complexType": {
893
- "original": "any",
894
- "resolved": "any",
895
- "references": {}
896
- },
897
- "required": false,
898
- "optional": false,
899
- "docs": {
900
- "tags": [],
901
- "text": "An object that includes mandatory \"label\" and \"href\" fields for the back link.\nAdditionally, you can pass an \"id\" that is added as an HTML identifier for the\nelement. If nothing is passed, back link won\u2019t be shown. **NOTE: The back link\nshould be ONLY used in combination with language and logoHref props.**"
902
- },
903
- "attribute": "back",
904
- "reflect": false
905
- },
906
- "contact": {
907
- "type": "string",
908
- "mutable": false,
909
- "complexType": {
910
- "original": "string",
911
- "resolved": "string",
912
- "references": {}
913
- },
914
- "required": false,
915
- "optional": false,
916
- "docs": {
917
- "tags": [],
918
- "text": "Label of the contact menu. If empty, contact menu will be hidden.\nNote: not available in multilevel headers."
919
- },
920
- "attribute": "contact",
921
- "reflect": false,
922
- "defaultValue": "\"\""
923
- },
924
- "contactItems": {
925
- "type": "any",
926
- "mutable": false,
927
- "complexType": {
928
- "original": "any",
929
- "resolved": "any",
930
- "references": {}
931
- },
932
- "required": false,
933
- "optional": false,
934
- "docs": {
935
- "tags": [],
936
- "text": "An array of items for the contact menu. \"label\" and \"href\" are mandatory.\nAdditionally, you can pass an \"id\" that is added as an HTML identifier for\nthe element, and pass an \"external\" flag if the link is to open in a new window."
937
- },
938
- "attribute": "contact-items",
939
- "reflect": false
940
- },
941
- "languageItems": {
942
- "type": "any",
943
- "mutable": false,
944
- "complexType": {
945
- "original": "any",
946
- "resolved": "any",
947
- "references": {}
948
- },
949
- "required": false,
950
- "optional": false,
951
- "docs": {
952
- "tags": [],
953
- "text": "An array of items for the language menu. If empty, the language menu will\nbe hidden. \"label\", \"country\" and \"href\" are mandatory. Additionally you\ncan pass an \"id\" that is added as an HTML identifier for the element."
954
- },
955
- "attribute": "language-items",
956
- "reflect": false
957
- }
958
- };
959
- }
960
- static get states() {
961
- return {
962
- "isContactOpen": {},
963
- "isLanguageOpen": {},
964
- "isSessionOpen": {},
965
- "isSlideOutOpen": {},
966
- "isSegmentOpen": {},
967
- "openMenu": {},
968
- "closedActives": {},
969
- "processedItems": {},
970
- "processedLanguageItems": {},
971
- "processedContactItems": {},
972
- "processedSession": {},
973
- "processedSearch": {},
974
- "processedUser": {},
975
- "processedBack": {},
976
- "renderDesktopNav": {}
977
- };
978
- }
979
- static get events() {
980
- return [{
981
- "method": "duetChange",
982
- "name": "duetChange",
983
- "bubbles": false,
984
- "cancelable": true,
985
- "composed": true,
986
- "docs": {
987
- "tags": [{
988
- "name": "deprecated",
989
- "text": "in favour of more specific events like duetLogoClick.\nCallback for when a user is about to navigate to another page. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
990
- }],
991
- "text": ""
992
- },
993
- "complexType": {
994
- "original": "DuetHeaderChangeEvent",
995
- "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
996
- "references": {
997
- "DuetHeaderChangeEvent": {
998
- "location": "local",
999
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-header/duet-header.tsx",
1000
- "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
1001
- }
1002
- }
1003
- }
1004
- }, {
1005
- "method": "duetSessionClick",
1006
- "name": "duetSessionClick",
1007
- "bubbles": true,
1008
- "cancelable": true,
1009
- "composed": true,
1010
- "docs": {
1011
- "tags": [],
1012
- "text": "Event for when a user has clicked the session link. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1013
- },
1014
- "complexType": {
1015
- "original": "DuetHeaderChangeEvent",
1016
- "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1017
- "references": {
1018
- "DuetHeaderChangeEvent": {
1019
- "location": "local",
1020
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-header/duet-header.tsx",
1021
- "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
1022
- }
1023
- }
1024
- }
1025
- }, {
1026
- "method": "duetSearchClick",
1027
- "name": "duetSearchClick",
1028
- "bubbles": true,
1029
- "cancelable": true,
1030
- "composed": true,
1031
- "docs": {
1032
- "tags": [],
1033
- "text": "Event for when a user has clicked the search link. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1034
- },
1035
- "complexType": {
1036
- "original": "DuetHeaderChangeEvent",
1037
- "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1038
- "references": {
1039
- "DuetHeaderChangeEvent": {
1040
- "location": "local",
1041
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-header/duet-header.tsx",
1042
- "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
1043
- }
1044
- }
1045
- }
1046
- }, {
1047
- "method": "duetUserClick",
1048
- "name": "duetUserClick",
1049
- "bubbles": true,
1050
- "cancelable": true,
1051
- "composed": true,
1052
- "docs": {
1053
- "tags": [],
1054
- "text": "Event raised when a user has clicked the user link. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1055
- },
1056
- "complexType": {
1057
- "original": "DuetHeaderChangeEvent",
1058
- "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1059
- "references": {
1060
- "DuetHeaderChangeEvent": {
1061
- "location": "local",
1062
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-header/duet-header.tsx",
1063
- "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
1064
- }
1065
- }
1066
- }
1067
- }, {
1068
- "method": "duetLanguageSelect",
1069
- "name": "duetLanguageSelect",
1070
- "bubbles": true,
1071
- "cancelable": true,
1072
- "composed": true,
1073
- "docs": {
1074
- "tags": [],
1075
- "text": "Event raised when a user has selected a language from the language dropdown. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1076
- },
1077
- "complexType": {
1078
- "original": "DuetHeaderChangeEvent",
1079
- "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1080
- "references": {
1081
- "DuetHeaderChangeEvent": {
1082
- "location": "local",
1083
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-header/duet-header.tsx",
1084
- "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
343
+ /**
344
+ * Local methods.
345
+ */
346
+ async refresh() {
347
+ var _a, _b;
348
+ if (this.renderDesktopNav !== Build.isServer ? true : (_a = this.mql[0]) === null || _a === void 0 ? void 0 : _a.matches) {
349
+ this.renderDesktopNav = Build.isServer ? true : (_b = this.mql[0]) === null || _b === void 0 ? void 0 : _b.matches;
350
+ this.openMenu = null;
351
+ if (this.isSlideOutOpen) {
352
+ this.toggleMenu(document.createEvent("UIEvents"), "mobile");
1085
353
  }
1086
- }
1087
354
  }
1088
- }, {
1089
- "method": "duetLogoClick",
1090
- "name": "duetLogoClick",
1091
- "bubbles": true,
1092
- "cancelable": true,
1093
- "composed": true,
1094
- "docs": {
1095
- "tags": [],
1096
- "text": "Event raised when a user has clicked the logo. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1097
- },
1098
- "complexType": {
1099
- "original": "DuetHeaderChangeEvent",
1100
- "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1101
- "references": {
1102
- "DuetHeaderChangeEvent": {
1103
- "location": "local",
1104
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-header/duet-header.tsx",
1105
- "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
355
+ this.processedItems = parsePossibleJSON(this.items);
356
+ this.processedLanguageItems = parsePossibleJSON(this.languageItems);
357
+ this.processedContactItems = parsePossibleJSON(this.contactItems);
358
+ this.processedSession = parsePossibleJSON(this.session);
359
+ this.processedSearch = parsePossibleJSON(this.search);
360
+ this.processedUser = parsePossibleJSON(this.user);
361
+ this.processedBack = parsePossibleJSON(this.back);
362
+ }
363
+ /**
364
+ * Closes mobile menu in header when called.
365
+ */
366
+ async closeMobileNavigation(moveFocusToButton = false) {
367
+ if (this.isSlideOutOpen) {
368
+ this.isSlideOutOpen = false;
369
+ enableBodyScroll(this.navigationEl);
370
+ if (moveFocusToButton) {
371
+ this.navigationElButton.focus({
372
+ preventScroll: true,
373
+ });
1106
374
  }
1107
- }
1108
375
  }
1109
- }, {
1110
- "method": "duetBackClick",
1111
- "name": "duetBackClick",
1112
- "bubbles": true,
1113
- "cancelable": true,
1114
- "composed": true,
1115
- "docs": {
1116
- "tags": [],
1117
- "text": "Event raised when a user has clicked the back button. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1118
- },
1119
- "complexType": {
1120
- "original": "DuetHeaderChangeEvent",
1121
- "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1122
- "references": {
1123
- "DuetHeaderChangeEvent": {
1124
- "location": "local",
1125
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-header/duet-header.tsx",
1126
- "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
376
+ }
377
+ /**
378
+ * Closes all dropdown menus in header when called.
379
+ */
380
+ async closeMenus(moveFocusToButton = false) {
381
+ if (this.isContactOpen || this.isLanguageOpen || this.isSegmentOpen || this.isSessionOpen || this.openMenu) {
382
+ if (this.isContactOpen && moveFocusToButton) {
383
+ this.contactItemsButtonEl.focus({
384
+ preventScroll: true,
385
+ });
1127
386
  }
1128
- }
1129
- }
1130
- }, {
1131
- "method": "duetContactClick",
1132
- "name": "duetContactClick",
1133
- "bubbles": true,
1134
- "cancelable": true,
1135
- "composed": true,
1136
- "docs": {
1137
- "tags": [],
1138
- "text": "Event raised when a user has clicked an option from the contact dropdown. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1139
- },
1140
- "complexType": {
1141
- "original": "DuetHeaderChangeEvent",
1142
- "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1143
- "references": {
1144
- "DuetHeaderChangeEvent": {
1145
- "location": "local",
1146
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-header/duet-header.tsx",
1147
- "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
387
+ if (this.isLanguageOpen && moveFocusToButton) {
388
+ this.languageItemsButtonEl.focus({
389
+ preventScroll: true,
390
+ });
1148
391
  }
1149
- }
1150
- }
1151
- }, {
1152
- "method": "duetItemClick",
1153
- "name": "duetItemClick",
1154
- "bubbles": true,
1155
- "cancelable": true,
1156
- "composed": true,
1157
- "docs": {
1158
- "tags": [],
1159
- "text": "Event raised when a user has clicked a menu item. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1160
- },
1161
- "complexType": {
1162
- "original": "DuetHeaderChangeEvent",
1163
- "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1164
- "references": {
1165
- "DuetHeaderChangeEvent": {
1166
- "location": "local",
1167
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-header/duet-header.tsx",
1168
- "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
392
+ if (this.isSegmentOpen && moveFocusToButton) {
393
+ this.segmentItemsButtonEl.focus({
394
+ preventScroll: true,
395
+ });
1169
396
  }
1170
- }
1171
- }
1172
- }, {
1173
- "method": "duetSkipClick",
1174
- "name": "duetSkipClick",
1175
- "bubbles": true,
1176
- "cancelable": true,
1177
- "composed": true,
1178
- "docs": {
1179
- "tags": [],
1180
- "text": "Event raised when a user has clicked the \"skip to content\" button. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1181
- },
1182
- "complexType": {
1183
- "original": "DuetHeaderChangeEvent",
1184
- "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1185
- "references": {
1186
- "DuetHeaderChangeEvent": {
1187
- "location": "local",
1188
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-header/duet-header.tsx",
1189
- "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
397
+ if (this.isSessionOpen && moveFocusToButton) {
398
+ this.sessionItemsButtonEl.focus({
399
+ preventScroll: true,
400
+ });
1190
401
  }
1191
- }
1192
- }
1193
- }, {
1194
- "method": "duetAnalytics",
1195
- "name": "duetAnalytics",
1196
- "bubbles": true,
1197
- "cancelable": true,
1198
- "composed": true,
1199
- "docs": {
1200
- "tags": [],
1201
- "text": "Event raised when an items with an associated analytics ID is clicked. Analytics ID can be\naccessed via **event.detail.analyticsId**"
1202
- },
1203
- "complexType": {
1204
- "original": "DuetHeaderAnalyticsEvent",
1205
- "resolved": "{ analyticsId: string; component: \"duet-header\"; }",
1206
- "references": {
1207
- "DuetHeaderAnalyticsEvent": {
1208
- "location": "local",
1209
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-header/duet-header.tsx",
1210
- "id": "src/components/duet-header/duet-header.tsx::DuetHeaderAnalyticsEvent"
402
+ if (this.openMenu && moveFocusToButton) {
403
+ this.subMenuButtonRefs[this.openMenu].focus({
404
+ preventScroll: true,
405
+ });
1211
406
  }
1212
- }
407
+ this.isContactOpen = false;
408
+ this.isLanguageOpen = false;
409
+ this.isSegmentOpen = false;
410
+ this.isSessionOpen = false;
411
+ this.openMenu = null;
1213
412
  }
1214
- }, {
1215
- "method": "duetMobileNavToggle",
1216
- "name": "duetMobileNavToggle",
1217
- "bubbles": true,
1218
- "cancelable": true,
1219
- "composed": true,
1220
- "docs": {
1221
- "tags": [],
1222
- "text": "Event raised mobile navigation is toggled. **event.detail.open** shows the current status of the navigation."
1223
- },
1224
- "complexType": {
1225
- "original": "DuetHeaderMobileNavToggleEvent",
1226
- "resolved": "{ originalEvent: Event; open: boolean; }",
1227
- "references": {
1228
- "DuetHeaderMobileNavToggleEvent": {
1229
- "location": "local",
1230
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-header/duet-header.tsx",
1231
- "id": "src/components/duet-header/duet-header.tsx::DuetHeaderMobileNavToggleEvent"
1232
- }
1233
- }
413
+ }
414
+ /**
415
+ * Sets focus on the specified `duet-header`. Use this method instead of the global
416
+ * `header.focus()`.
417
+ */
418
+ async setFocus(options) {
419
+ this.logoEl.setFocus(options);
420
+ }
421
+ /**
422
+ * render() function
423
+ * Always the last one in the class.
424
+ */
425
+ render() {
426
+ const { skipLabel, changeLanguage, activeLanguage } = this.accessibleI18nLabels;
427
+ const skipToLabel = () => this.skipToId ? (h("a", { href: this.skipToId, class: "duet-header-skip", onClick: this.handleSkipClick }, skipLabel)) : null;
428
+ const logo = () => (h("duet-logo", { href: this.logoHref, size: "medium", ref: el => (this.logoEl = el), language: this.language, theme: this.theme, onClick: this.handleLogoClick }));
429
+ const largeLogo = () => (h("duet-logo", { href: this.logoHref, size: "large", ref: el => (this.logoEl = el), language: this.language, theme: this.theme, onClick: this.handleLogoClick }));
430
+ const contactDropdown = () => this.contact && this.processedContactItems ? (h(DuetHeaderDropdown, { id: "duet-header-contact", label: this.contact, icon: contactDropdownIcon.svg, active: this.isContactOpen, isOpen: this.isContactOpen, badge: false, toggleRef: el => (this.contactItemsButtonEl = el), itemsRef: el => (this.contactItemsEl = el), onToggle: event => this.toggleMenu(event, "contact") }, this.processedContactItems.map(item => (h("a", { role: "menuitem", href: item.href || "#", id: item.id, onClick: event => this.handleContactClick(event, item), onKeyDown: ev => this.handleArrowKeys(ev), target: item.external ? "_blank" : "_self" }, item.label, Build.isBrowser && item.external && (h(Fragment, null, h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), h("span", { class: "duet-header-link-external" }, h("duet-icon", { name: "action-new-window-small", size: "xx-small", margin: "none", color: this.theme === "turva" ? "primary-turva" : "primary" }))))))))) : null;
431
+ const languageDropdown = () => this.language && this.processedLanguageItems ? (h(DuetHeaderDropdown, { id: "duet-header-language", label: this.language, icon: languageIcon.svg, accessibleText: `${changeLanguage}${this.hasLanguageChanged ? `, ${activeLanguage}` : ""}`, active: this.isLanguageOpen, isOpen: this.isLanguageOpen, badge: false, toggleRef: el => (this.languageItemsButtonEl = el), itemsRef: el => (this.languageItemsEl = el), onToggle: event => this.toggleMenu(event, "language") }, this.processedLanguageItems.map(item => (h("a", { class: { active: this.language === item.country }, "aria-selected": this.language === item.country, role: "menuitem", id: item.id, lang: item.country, href: item.href || "#", onClick: event => this.handleLanguageClick(event, item), onKeyDown: this.handleArrowKeys }, item.label))))) : null;
432
+ const processedUserWithLink = () => this.processedUser && this.processedUser.href ? (h("a", { href: this.processedUser.href || "#", id: this.processedUser.id, class: "duet-header-user duet-header-button", onClick: this.handleUserClick }, h(DuetHeaderIcon, { icon: userIcon.svg }), h("span", { class: "duet-header-user-label" }, this.processedUser.label))) : null;
433
+ const processedUserWithoutLink = () => this.processedUser && !this.processedUser.href ? (h("span", { id: this.processedUser.id, class: "duet-header-user duet-header-button duet-header-no-action" }, h(DuetHeaderIcon, { icon: userIcon.svg }), h("span", { class: "duet-header-user-label" }, this.processedUser.label))) : null;
434
+ const processedSession = () => this.processedSession ? (h("a", { href: this.processedSession.href || "#", id: this.processedSession.id, class: "duet-header-logout duet-header-button", onClick: this.handleSessionClick }, h(DuetHeaderIcon, { class: "desktop", icon: this.processedSession.type === "logout" ? logoutIcon.svg : loginIcon.svg, iconSize: "x-small" }), h(DuetHeaderIcon, { class: "mobile", icon: this.processedSession.type === "logout" ? logoutIcon.svg : loginIcon.svg, iconSize: "small" }), h("span", { class: "duet-header-button-label" }, this.processedSession.label))) : null;
435
+ const processedSessionDropdown = () => this.processedSession && this.processedSession.sessionItems ? (h(DuetHeaderDropdown, { className: "duet-header-session", id: "duet-header-session", label: this.processedSession.label, icon: this.processedSession.type === "logout" ? logoutIcon.svg : loginIcon.svg, active: this.isSessionOpen, isOpen: this.isSessionOpen, badge: false, toggleRef: el => (this.sessionItemsButtonEl = el), itemsRef: el => (this.sessionItemsEl = el), onToggle: event => this.toggleMenu(event, "session") }, this.processedSession.sessionItems.map((sessionItem, index) => (h(Fragment, null, sessionItem.label && h("span", { class: "duet-header-session-label" }, sessionItem.label), h("duet-spacer", { size: "small", "aria-hidden": "true" }), sessionItem.items.map(item => (h("a", { role: "menuitem", "aria-label": sessionItem.label ? `${sessionItem.label} ${item.label}` : item.label, id: item.id, href: item.href || "#", onClick: event => this.handleSessionItemClick(event, item), onKeyDown: this.handleArrowKeys }, item.label))), index !== this.processedSession.sessionItems.length - 1 && (h(Fragment, null, h("duet-spacer", { size: "x-small", "aria-hidden": "true" }), h("duet-divider", { margin: "none", "aria-hidden": "true" })))))))) : null;
436
+ const processedSearch = () => this.processedSearch ? (h("a", { href: this.processedSearch.href || "#", id: this.processedSearch.id, class: "duet-header-search duet-header-button", onClick: this.handleSearchClick }, h(DuetHeaderIcon, { icon: searchIcon.svg }), h("span", { class: "duet-header-button-label" }, this.processedSearch.label))) : null;
437
+ // Back variation
438
+ if (this.processedBack) {
439
+ return (h(Host, { class: "duet-header-back-variation" }, h("div", { class: "duet-header-reserved-space" }, h("header", { class: {
440
+ "duet-header": true,
441
+ "duet-theme-turva": this.theme === "turva",
442
+ "duet-header-back": true,
443
+ "duet-header-inactive": true,
444
+ }, part: "header" }, h("div", { class: "duet-header-top" }, skipToLabel(), h("duet-button", { url: this.processedBack.href, id: this.processedBack.id, theme: this.theme, variation: "plain", color: this.theme === "turva" ? "secondary-turva" : "secondary", icon: "navigation-arrow-left", iconSize: "large", onClick: this.handleBackClick }, this.processedBack.label), logo(), h("slot", { name: "logo-utility" }))))));
1234
445
  }
1235
- }, {
1236
- "method": "duetEvent",
1237
- "name": "duetEvent",
1238
- "bubbles": true,
1239
- "cancelable": true,
1240
- "composed": true,
1241
- "docs": {
1242
- "tags": [],
1243
- "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**."
1244
- },
1245
- "complexType": {
1246
- "original": "DuetHeaderChangeEvent",
1247
- "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1248
- "references": {
1249
- "DuetHeaderChangeEvent": {
1250
- "location": "local",
1251
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-header/duet-header.tsx",
1252
- "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
1253
- }
1254
- }
446
+ const itemsHaveSubItems = this.processedItems && this.processedItems.some(item => item.items && item.items.length > 0);
447
+ const isSecondLevelActive = this.processedItems &&
448
+ this.processedItems.some(item => item.items && item.items.some(secondLevelItem => secondLevelItem.active === true));
449
+ const isThirdLevelActive = this.processedItems &&
450
+ this.processedItems.some(item => item.items &&
451
+ item.items.some(secondLevelItem => secondLevelItem.items && secondLevelItem.items.some(thirdLevelItem => thirdLevelItem.active === true)));
452
+ const defaultVariationContent = (h("div", { class: {
453
+ "duet-header-reserved-space": true,
454
+ "duet-with-links": !!this.processedItems,
455
+ "duet-header-second-level-active": isSecondLevelActive,
456
+ "duet-header-third-level-active": isThirdLevelActive,
457
+ "duet-header-items-have-sub-items": itemsHaveSubItems,
458
+ } }, h("header", { class: {
459
+ "duet-header": true,
460
+ "duet-theme-turva": this.theme === "turva",
461
+ "duet-header-inactive": !this.processedItems,
462
+ }, part: "header" }, h("div", { class: "duet-header-top" }, skipToLabel(), logo(), h("slot", { name: "logo-utility" }, this.region && h("div", { class: "duet-header-region" }, this.region)), (this.processedItems ||
463
+ languageDropdown() ||
464
+ contactDropdown() ||
465
+ this.processedSession ||
466
+ this.processedUser) && (h("button", { ref: el => (this.navigationElButton = el), class: { "duet-header-toggle": true, active: this.isSlideOutOpen }, onClick: event => this.toggleMenu(event, "mobile"), type: "button", "aria-controls": "duet-header-bottom", "aria-expanded": this.isSlideOutOpen ? "true" : "false" }, h("duet-visually-hidden", null, this.accessibleLabel), h(DuetHeaderHamburger, null)))), h("div", { ref: el => (this.navigationEl = el), id: "duet-header-bottom", class: {
467
+ "duet-header-bottom": true,
468
+ active: this.isSlideOutOpen,
469
+ inactive: !this.processedItems,
470
+ } }, h("nav", { class: "duet-header-items", role: "navigation" }, this.processedItems &&
471
+ this.processedItems.map((item, itemIndex) => (h("div", { class: "duet-header-item-container" }, h("a", { class: {
472
+ "duet-header-first-level": true,
473
+ "duet-header-item": true,
474
+ active: (!itemsHaveSubItems && this.currentHref === item.href) ||
475
+ (item.active === true &&
476
+ !this.openMenu &&
477
+ this.closedActives &&
478
+ this.closedActives.length === 1) ||
479
+ (item.active === true &&
480
+ !this.openMenu &&
481
+ item.items &&
482
+ !item.items.some(s => s.active === true)),
483
+ }, 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) }, item.label, item.badge && h("div", { class: "duet-header-badge" })), item.items &&
484
+ item.items
485
+ .filter(secondLevelitem => secondLevelitem.items && secondLevelitem.items.length > 0)
486
+ .map((secondLevelItem, secondLevelItemIndex) => {
487
+ const id = secondLevelItem.id || `header-item-${itemIndex}-${secondLevelItemIndex}`;
488
+ const active = (!this.openMenu &&
489
+ secondLevelItem.active === true &&
490
+ !(this.closedActives && !!this.closedActives.find(i => i === id))) ||
491
+ this.openMenu === id;
492
+ const activeBar = active && !(secondLevelItem.items && secondLevelItem.items.some(s => s.active === true));
493
+ return (h(DuetHeaderDropdown, { id: id, className: "duet-header-second-level", label: secondLevelItem.label, icon: `${secondLevelItem.icon}.svg`, active: activeBar, isOpen: active, badge: secondLevelItem.badge, toggleRef: el => (this.subMenuButtonRefs[id] = el), itemsRef: el => (this.subMenuItemRefs[id] = el), onToggle: event => this.toggleMenu(event, "sub", id, secondLevelItem.active === true) }, h("div", { class: "duet-header-third-level" }, secondLevelItem.items &&
494
+ secondLevelItem.items.map(thirdLevelItem => (h("a", { class: {
495
+ "duet-header-item": true,
496
+ active: thirdLevelItem.active === true,
497
+ }, 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" }, thirdLevelItem.icon && (h("div", { class: "duet-header-icon" }, h("duet-icon", { margin: "none", size: "medium", name: thirdLevelItem.icon, color: "currentColor" }))), h("span", null, thirdLevelItem.label), thirdLevelItem.badge && h("div", { class: "duet-header-badge" })))))));
498
+ }))))), h("div", { class: "duet-header-bottom-utils" }, h("slot", { name: "utility" })), h("div", { class: "duet-header-utils" }, !itemsHaveSubItems && contactDropdown(), languageDropdown(), !itemsHaveSubItems && (h(Fragment, null, processedUserWithLink(), processedUserWithoutLink())), processedSearch(), processedSession())))));
499
+ // multi level variation
500
+ if (itemsHaveSubItems) {
501
+ const activeSegment = this.processedItems.find(item => item.active);
502
+ const isThirdLevelActive = this.processedItems &&
503
+ this.processedItems.some(item => item.items &&
504
+ item.items.some(secondLevelItem => secondLevelItem.items && secondLevelItem.items.some(thirdLevelItem => thirdLevelItem.active === true)));
505
+ const segmentId = "duet-header-segment";
506
+ return (h(Host, { class: "duet-header-multi-level-variation" }, h("div", { class: {
507
+ "duet-header-multi-level": true,
508
+ "duet-header-multi-level-third-level-is-open": isThirdLevelActive,
509
+ } }, h("header", { class: {
510
+ "duet-header": true,
511
+ "duet-theme-turva": this.theme === "turva",
512
+ "duet-header-inactive": !this.processedItems,
513
+ }, part: "header" }, h("div", { class: "duet-header-top" }, skipToLabel(), h("div", { class: "logo-and-segment" }, h("div", null, largeLogo()), 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" }, item.icon && (h("div", { class: "duet-header-icon" }, h("duet-icon", { margin: "none", size: "x-small", name: item.icon, color: "currentColor" }))), h("span", null, item.label), item.badge && h("div", { class: "duet-header-badge" }))))))), h("nav", { class: "duet-header-multi-level-nav" }, activeSegment.items &&
514
+ activeSegment.items
515
+ .filter(secondLevelItem => secondLevelItem.items && secondLevelItem.items.length > 0)
516
+ .map((secondLevelItem, secondLevelItemIndex) => {
517
+ const id = secondLevelItem.id || `segment-item-${secondLevelItemIndex}`;
518
+ 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 &&
519
+ 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" }, thirdLevelItem.icon && (h("div", { class: "duet-header-icon" }, h("duet-icon", { margin: "none", size: "medium", name: thirdLevelItem.icon, color: "currentColor" }))), h("span", null, thirdLevelItem.label), thirdLevelItem.badge && h("div", { class: "duet-header-badge" }))))));
520
+ })), h("div", { class: "duet-header-multi-level-utils" }, processedSearch(), languageDropdown(), processedSessionDropdown() != null ? processedSessionDropdown() : processedSession()), h("slot", { name: "utility" })))), defaultVariationContent));
1255
521
  }
1256
- }];
1257
- }
1258
- static get methods() {
1259
- return {
1260
- "closeMenus": {
1261
- "complexType": {
1262
- "signature": "(moveFocusToButton?: boolean) => Promise<void>",
1263
- "parameters": [{
1264
- "tags": [],
1265
- "text": ""
1266
- }],
1267
- "references": {
1268
- "Promise": {
1269
- "location": "global",
1270
- "id": "global::Promise"
522
+ // Default variation
523
+ return (h(Host, { class: {
524
+ "duet-header-default-variation": true,
525
+ } }, defaultVariationContent));
526
+ }
527
+ static get is() { return "duet-header"; }
528
+ static get encapsulation() { return "shadow"; }
529
+ static get originalStyleUrls() {
530
+ return {
531
+ "$": ["duet-header.scss"]
532
+ };
533
+ }
534
+ static get styleUrls() {
535
+ return {
536
+ "$": ["duet-header.css"]
537
+ };
538
+ }
539
+ static get properties() {
540
+ return {
541
+ "theme": {
542
+ "type": "string",
543
+ "mutable": true,
544
+ "complexType": {
545
+ "original": "DuetTheme",
546
+ "resolved": "\"\" | \"default\" | \"turva\"",
547
+ "references": {
548
+ "DuetTheme": {
549
+ "location": "import",
550
+ "path": "../../common-types",
551
+ "id": "src/common-types.d.ts::DuetTheme"
552
+ }
553
+ }
554
+ },
555
+ "required": false,
556
+ "optional": false,
557
+ "docs": {
558
+ "tags": [],
559
+ "text": "Theme of the header."
560
+ },
561
+ "attribute": "theme",
562
+ "reflect": false,
563
+ "defaultValue": "\"\""
564
+ },
565
+ "language": {
566
+ "type": "string",
567
+ "mutable": true,
568
+ "complexType": {
569
+ "original": "DuetLanguage",
570
+ "resolved": "\"en\" | \"fi\" | \"sv\"",
571
+ "references": {
572
+ "DuetLanguage": {
573
+ "location": "import",
574
+ "path": "../../common-types",
575
+ "id": "src/common-types.d.ts::DuetLanguage"
576
+ }
577
+ }
578
+ },
579
+ "required": false,
580
+ "optional": false,
581
+ "docs": {
582
+ "tags": [{
583
+ "name": "deprecated",
584
+ "text": "this is now handled via the html lang tag, and is no longer used - kept to avoid breaking changes and ease unit testing"
585
+ }, {
586
+ "name": "default",
587
+ "text": "\"fi\""
588
+ }],
589
+ "text": "The currently active language. This setting also changes the logo to match\nthe chosen language."
590
+ },
591
+ "attribute": "language",
592
+ "reflect": false,
593
+ "defaultValue": "getLanguage()"
594
+ },
595
+ "accessibleI18nLabelsDefaults": {
596
+ "type": "string",
597
+ "mutable": false,
598
+ "complexType": {
599
+ "original": "| string\n | Record<DuetLanguage, I18nText>",
600
+ "resolved": "string | { fi: I18nText; en: I18nText; sv: I18nText; }",
601
+ "references": {
602
+ "Record": {
603
+ "location": "global",
604
+ "id": "global::Record"
605
+ },
606
+ "DuetLanguage": {
607
+ "location": "import",
608
+ "path": "../../common-types",
609
+ "id": "src/common-types.d.ts::DuetLanguage"
610
+ },
611
+ "I18nText": {
612
+ "location": "local",
613
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-header/duet-header.tsx",
614
+ "id": "src/components/duet-header/duet-header.tsx::I18nText"
615
+ }
616
+ }
617
+ },
618
+ "required": false,
619
+ "optional": false,
620
+ "docs": {
621
+ "tags": [{
622
+ "name": "default",
623
+ "text": "{\nfi: {\nskipLabel: \"Siirry p\u00E4\u00E4sis\u00E4lt\u00F6\u00F6n\",\nchangeLanguage: \"Vaihda kielt\u00E4\",\nactiveLanguage: \"Suomi valittuna\",\n},\nsv: {\nskipLabel: \"Hoppa till huvudinneh\u00E5ll\",\nchangeLanguage: \"\u00C4ndra Spr\u00E5k\",\nactiveLanguage: \"Svenska valt\",\n},\nen: {\nskipLabel: \"Skip to main content\",\nchangeLanguage: \"Change language\",\nactiveLanguage: \"English selected\",\n},\n}"
624
+ }],
625
+ "text": "Default strings for accessibleI18nLabels"
626
+ },
627
+ "attribute": "accessible-labels-default",
628
+ "reflect": false,
629
+ "defaultValue": "{\n fi: {\n skipLabel: \"Siirry p\u00E4\u00E4sis\u00E4lt\u00F6\u00F6n\",\n changeLanguage: \"Vaihda kielt\u00E4\",\n activeLanguage: \"Suomi valittuna\",\n },\n sv: {\n skipLabel: \"G\u00E5 till huvudinneh\u00E5ll\",\n changeLanguage: \"\u00C4ndra Spr\u00E5k\",\n activeLanguage: \"Svenska valt\",\n },\n en: {\n skipLabel: \"Skip to main content\",\n changeLanguage: \"Change language\",\n activeLanguage: \"English selected\",\n },\n }"
630
+ },
631
+ "accessibleI18nLabels": {
632
+ "type": "unknown",
633
+ "mutable": true,
634
+ "complexType": {
635
+ "original": "I18nText",
636
+ "resolved": "I18nText",
637
+ "references": {
638
+ "I18nText": {
639
+ "location": "local",
640
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-header/duet-header.tsx",
641
+ "id": "src/components/duet-header/duet-header.tsx::I18nText"
642
+ }
643
+ }
644
+ },
645
+ "required": false,
646
+ "optional": false,
647
+ "docs": {
648
+ "tags": [{
649
+ "name": "default",
650
+ "text": "{\nfi: {\nskipLabel: \"Siirry p\u00E4\u00E4sis\u00E4lt\u00F6\u00F6n\",\nchangeLanguage: \"Vaihda kielt\u00E4\",\nactiveLanguage: \"Suomi valittuna\",\n},\nsv: {\nskipLabel: \"Hoppa till huvudinneh\u00E5ll\",\nchangeLanguage: \"\u00C4ndra Spr\u00E5k\",\nactiveLanguage: \"Svenska valt\",\n},\nen: {\nskipLabel: \"Skip to main content\",\nchangeLanguage: \"Change language\",\nactiveLanguage: \"English selected\",\n},\n}"
651
+ }],
652
+ "text": "Adds i18n translations of all internally used textStrings"
653
+ },
654
+ "defaultValue": "getLocaleString(\n this.accessibleI18nLabelsDefaults\n )"
655
+ },
656
+ "accessibleLabelExternalDefaults": {
657
+ "type": "string",
658
+ "mutable": false,
659
+ "complexType": {
660
+ "original": "DuetLangObject | string",
661
+ "resolved": "DuetLangObject | string",
662
+ "references": {
663
+ "DuetLangObject": {
664
+ "location": "import",
665
+ "path": "../../utils/language-utils",
666
+ "id": "src/utils/language-utils.ts::DuetLangObject"
667
+ }
668
+ }
669
+ },
670
+ "required": false,
671
+ "optional": false,
672
+ "docs": {
673
+ "tags": [{
674
+ "name": "default",
675
+ "text": "{fi: \"Avautuu uuteen ikkunaan\",sv: \"\u00D6ppnas i nytt f\u00F6nster\",en: \"Opens in a new window\"}"
676
+ }],
677
+ "text": "Property to change accessibleLabelExternal defaults on the component.\nnormally you would handle these strings on an application level and override accessibleLabelExternal when needed"
678
+ },
679
+ "attribute": "accessible-label-external-default",
680
+ "reflect": false,
681
+ "defaultValue": "DuetStringsExternalDefaults"
682
+ },
683
+ "accessibleLabelExternal": {
684
+ "type": "string",
685
+ "mutable": true,
686
+ "complexType": {
687
+ "original": "string",
688
+ "resolved": "string",
689
+ "references": {}
690
+ },
691
+ "required": false,
692
+ "optional": false,
693
+ "docs": {
694
+ "tags": [{
695
+ "name": "default",
696
+ "text": "{fi: \"Avautuu uuteen ikkunaan\",sv: \"\u00D6ppnas i nytt f\u00F6nster\",en: \"Opens in a new window\"}"
697
+ }],
698
+ "text": "Adds accessible label for tooltip that is shown in external link (url & external have both been set)"
699
+ },
700
+ "attribute": "accessible-label-external",
701
+ "reflect": false,
702
+ "defaultValue": "getLocaleString(this.accessibleLabelExternalDefaults)"
703
+ },
704
+ "accessibleLabelDefaults": {
705
+ "type": "string",
706
+ "mutable": false,
707
+ "complexType": {
708
+ "original": "DuetLangObject | string",
709
+ "resolved": "DuetLangObject | string",
710
+ "references": {
711
+ "DuetLangObject": {
712
+ "location": "import",
713
+ "path": "../../utils/language-utils",
714
+ "id": "src/utils/language-utils.ts::DuetLangObject"
715
+ }
716
+ }
717
+ },
718
+ "required": false,
719
+ "optional": false,
720
+ "docs": {
721
+ "tags": [],
722
+ "text": "Property to change accessibleLabel defaults on the component.\nnormally you would handle these strings on an application level and override accessibleLabel when needed"
723
+ },
724
+ "attribute": "accessible-label-default",
725
+ "reflect": false,
726
+ "defaultValue": "{\n fi: \"Valikko\",\n sv: \"Meny\",\n en: \"Menu\",\n }"
727
+ },
728
+ "accessibleLabel": {
729
+ "type": "string",
730
+ "mutable": true,
731
+ "complexType": {
732
+ "original": "string",
733
+ "resolved": "string",
734
+ "references": {}
735
+ },
736
+ "required": false,
737
+ "optional": false,
738
+ "docs": {
739
+ "tags": [{
740
+ "name": "default",
741
+ "text": "{\nfi: \"Valikko\",\nsv: \"Meny\",\nen: \"Menu\",\n}"
742
+ }],
743
+ "text": "Accessible label that is shown for screen reader users in the mobile\nnavigation toggle. Not visible for normal users."
744
+ },
745
+ "attribute": "accessible-label",
746
+ "reflect": false,
747
+ "defaultValue": "getLocaleString(this.accessibleLabelDefaults)"
748
+ },
749
+ "user": {
750
+ "type": "any",
751
+ "mutable": false,
752
+ "complexType": {
753
+ "original": "any",
754
+ "resolved": "any",
755
+ "references": {}
756
+ },
757
+ "required": false,
758
+ "optional": false,
759
+ "docs": {
760
+ "tags": [],
761
+ "text": "An object that includes mandatory \"label\" and \"href\" fields for the user\nprofile link. Additionally, you can pass an \"id\" that is added as an HTML\nidentifier for the element. If nothing is passed, user won\u2019t be shown.\nNote: not available in multilevel headers."
762
+ },
763
+ "attribute": "user",
764
+ "reflect": false
765
+ },
766
+ "logoHref": {
767
+ "type": "string",
768
+ "mutable": false,
769
+ "complexType": {
770
+ "original": "string",
771
+ "resolved": "string",
772
+ "references": {}
773
+ },
774
+ "required": false,
775
+ "optional": false,
776
+ "docs": {
777
+ "tags": [],
778
+ "text": "URL that the logo link points to."
779
+ },
780
+ "attribute": "logo-href",
781
+ "reflect": false,
782
+ "defaultValue": "\"/\""
783
+ },
784
+ "currentHref": {
785
+ "type": "string",
786
+ "mutable": true,
787
+ "complexType": {
788
+ "original": "string",
789
+ "resolved": "string",
790
+ "references": {}
791
+ },
792
+ "required": false,
793
+ "optional": false,
794
+ "docs": {
795
+ "tags": [],
796
+ "text": "The href of the current page item that is shown as \u201Cactive\u201D.\nNote: not available in multilevel headers."
797
+ },
798
+ "attribute": "current-href",
799
+ "reflect": false,
800
+ "defaultValue": "\"/\""
801
+ },
802
+ "skipToId": {
803
+ "type": "string",
804
+ "mutable": false,
805
+ "complexType": {
806
+ "original": "string",
807
+ "resolved": "string",
808
+ "references": {}
809
+ },
810
+ "required": false,
811
+ "optional": false,
812
+ "docs": {
813
+ "tags": [],
814
+ "text": "The ID of the element where \"skip to content\" link should take the user.\nIf empty, the functionality won\u2019t be rendered in the DOM."
815
+ },
816
+ "attribute": "skip-to-id",
817
+ "reflect": false,
818
+ "defaultValue": "\"\""
819
+ },
820
+ "items": {
821
+ "type": "any",
822
+ "mutable": false,
823
+ "complexType": {
824
+ "original": "any",
825
+ "resolved": "any",
826
+ "references": {}
827
+ },
828
+ "required": false,
829
+ "optional": false,
830
+ "docs": {
831
+ "tags": [],
832
+ "text": "An array of items for the main navigation. Items have to include mandatory\n\"label\" and \"href\" fields to work. Additionally, you can pass an \"id\" that is\nadded as an HTML identifier for the element, \"active\" boolean that makes item active,\n\"badge\" boolean to add notification badge next to the item and\n\"items\" array consisting of sub items that are allowed up to three levels.\nTwo and three level menus are deprecated and you should instead use\nNav component to create multilevel navigations."
833
+ },
834
+ "attribute": "items",
835
+ "reflect": false
836
+ },
837
+ "region": {
838
+ "type": "string",
839
+ "mutable": false,
840
+ "complexType": {
841
+ "original": "string",
842
+ "resolved": "string",
843
+ "references": {}
844
+ },
845
+ "required": false,
846
+ "optional": false,
847
+ "docs": {
848
+ "tags": [],
849
+ "text": "Region that is shown next to the logo. If empty, region will be hidden.\nNote: not available in multilevel header."
850
+ },
851
+ "attribute": "region",
852
+ "reflect": false,
853
+ "defaultValue": "\"\""
854
+ },
855
+ "session": {
856
+ "type": "any",
857
+ "mutable": false,
858
+ "complexType": {
859
+ "original": "any",
860
+ "resolved": "any",
861
+ "references": {}
862
+ },
863
+ "required": false,
864
+ "optional": false,
865
+ "docs": {
866
+ "tags": [],
867
+ "text": "An object that includes mandatory \"label\", \"href\" and \"type\" fields for the\nsession login/logout link. Additionally, you can pass an \"id\" that is added\nas an HTML identifier for the element.\nIf nothing is passed, this link won\u2019t be shown."
868
+ },
869
+ "attribute": "session",
870
+ "reflect": false
871
+ },
872
+ "search": {
873
+ "type": "any",
874
+ "mutable": false,
875
+ "complexType": {
876
+ "original": "any",
877
+ "resolved": "any",
878
+ "references": {}
879
+ },
880
+ "required": false,
881
+ "optional": false,
882
+ "docs": {
883
+ "tags": [],
884
+ "text": "An object that includes mandatory \"label\" and \"href\" fields for the\nsearch link. Additionally, you can pass an \"id\" that is added\nas an HTML identifier for the element. If nothing is passed, this link won\u2019t\nbe shown."
885
+ },
886
+ "attribute": "search",
887
+ "reflect": false
888
+ },
889
+ "back": {
890
+ "type": "any",
891
+ "mutable": false,
892
+ "complexType": {
893
+ "original": "any",
894
+ "resolved": "any",
895
+ "references": {}
896
+ },
897
+ "required": false,
898
+ "optional": false,
899
+ "docs": {
900
+ "tags": [],
901
+ "text": "An object that includes mandatory \"label\" and \"href\" fields for the back link.\nAdditionally, you can pass an \"id\" that is added as an HTML identifier for the\nelement. If nothing is passed, back link won\u2019t be shown. **NOTE: The back link\nshould be ONLY used in combination with language and logoHref props.**"
902
+ },
903
+ "attribute": "back",
904
+ "reflect": false
905
+ },
906
+ "contact": {
907
+ "type": "string",
908
+ "mutable": false,
909
+ "complexType": {
910
+ "original": "string",
911
+ "resolved": "string",
912
+ "references": {}
913
+ },
914
+ "required": false,
915
+ "optional": false,
916
+ "docs": {
917
+ "tags": [],
918
+ "text": "Label of the contact menu. If empty, contact menu will be hidden.\nNote: not available in multilevel headers."
919
+ },
920
+ "attribute": "contact",
921
+ "reflect": false,
922
+ "defaultValue": "\"\""
923
+ },
924
+ "contactItems": {
925
+ "type": "any",
926
+ "mutable": false,
927
+ "complexType": {
928
+ "original": "any",
929
+ "resolved": "any",
930
+ "references": {}
931
+ },
932
+ "required": false,
933
+ "optional": false,
934
+ "docs": {
935
+ "tags": [],
936
+ "text": "An array of items for the contact menu. \"label\" and \"href\" are mandatory.\nAdditionally, you can pass an \"id\" that is added as an HTML identifier for\nthe element, and pass an \"external\" flag if the link is to open in a new window."
937
+ },
938
+ "attribute": "contact-items",
939
+ "reflect": false
940
+ },
941
+ "languageItems": {
942
+ "type": "any",
943
+ "mutable": false,
944
+ "complexType": {
945
+ "original": "any",
946
+ "resolved": "any",
947
+ "references": {}
948
+ },
949
+ "required": false,
950
+ "optional": false,
951
+ "docs": {
952
+ "tags": [],
953
+ "text": "An array of items for the language menu. If empty, the language menu will\nbe hidden. \"label\", \"country\" and \"href\" are mandatory. Additionally you\ncan pass an \"id\" that is added as an HTML identifier for the element."
954
+ },
955
+ "attribute": "language-items",
956
+ "reflect": false
1271
957
  }
1272
- },
1273
- "return": "Promise<void>"
1274
- },
1275
- "docs": {
1276
- "text": "Closes all dropdown menus in header when called.",
1277
- "tags": []
1278
- }
1279
- },
1280
- "setFocus": {
1281
- "complexType": {
1282
- "signature": "(options?: FocusOptions) => Promise<void>",
1283
- "parameters": [{
1284
- "tags": [],
1285
- "text": ""
1286
- }],
1287
- "references": {
1288
- "Promise": {
1289
- "location": "global",
1290
- "id": "global::Promise"
958
+ };
959
+ }
960
+ static get states() {
961
+ return {
962
+ "isContactOpen": {},
963
+ "isLanguageOpen": {},
964
+ "isSessionOpen": {},
965
+ "isSlideOutOpen": {},
966
+ "isSegmentOpen": {},
967
+ "openMenu": {},
968
+ "closedActives": {},
969
+ "processedItems": {},
970
+ "processedLanguageItems": {},
971
+ "processedContactItems": {},
972
+ "processedSession": {},
973
+ "processedSearch": {},
974
+ "processedUser": {},
975
+ "processedBack": {},
976
+ "renderDesktopNav": {}
977
+ };
978
+ }
979
+ static get events() {
980
+ return [{
981
+ "method": "duetChange",
982
+ "name": "duetChange",
983
+ "bubbles": false,
984
+ "cancelable": true,
985
+ "composed": true,
986
+ "docs": {
987
+ "tags": [{
988
+ "name": "deprecated",
989
+ "text": "in favour of more specific events like duetLogoClick.\nCallback for when a user is about to navigate to another page. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
990
+ }],
991
+ "text": ""
992
+ },
993
+ "complexType": {
994
+ "original": "DuetHeaderChangeEvent",
995
+ "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
996
+ "references": {
997
+ "DuetHeaderChangeEvent": {
998
+ "location": "local",
999
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-header/duet-header.tsx",
1000
+ "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
1001
+ }
1002
+ }
1003
+ }
1004
+ }, {
1005
+ "method": "duetSessionClick",
1006
+ "name": "duetSessionClick",
1007
+ "bubbles": true,
1008
+ "cancelable": true,
1009
+ "composed": true,
1010
+ "docs": {
1011
+ "tags": [],
1012
+ "text": "Event for when a user has clicked the session link. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1013
+ },
1014
+ "complexType": {
1015
+ "original": "DuetHeaderChangeEvent",
1016
+ "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1017
+ "references": {
1018
+ "DuetHeaderChangeEvent": {
1019
+ "location": "local",
1020
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-header/duet-header.tsx",
1021
+ "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
1022
+ }
1023
+ }
1024
+ }
1025
+ }, {
1026
+ "method": "duetSearchClick",
1027
+ "name": "duetSearchClick",
1028
+ "bubbles": true,
1029
+ "cancelable": true,
1030
+ "composed": true,
1031
+ "docs": {
1032
+ "tags": [],
1033
+ "text": "Event for when a user has clicked the search link. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1034
+ },
1035
+ "complexType": {
1036
+ "original": "DuetHeaderChangeEvent",
1037
+ "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1038
+ "references": {
1039
+ "DuetHeaderChangeEvent": {
1040
+ "location": "local",
1041
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-header/duet-header.tsx",
1042
+ "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
1043
+ }
1044
+ }
1045
+ }
1046
+ }, {
1047
+ "method": "duetUserClick",
1048
+ "name": "duetUserClick",
1049
+ "bubbles": true,
1050
+ "cancelable": true,
1051
+ "composed": true,
1052
+ "docs": {
1053
+ "tags": [],
1054
+ "text": "Event raised when a user has clicked the user link. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1055
+ },
1056
+ "complexType": {
1057
+ "original": "DuetHeaderChangeEvent",
1058
+ "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1059
+ "references": {
1060
+ "DuetHeaderChangeEvent": {
1061
+ "location": "local",
1062
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-header/duet-header.tsx",
1063
+ "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
1064
+ }
1065
+ }
1066
+ }
1067
+ }, {
1068
+ "method": "duetLanguageSelect",
1069
+ "name": "duetLanguageSelect",
1070
+ "bubbles": true,
1071
+ "cancelable": true,
1072
+ "composed": true,
1073
+ "docs": {
1074
+ "tags": [],
1075
+ "text": "Event raised when a user has selected a language from the language dropdown. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1076
+ },
1077
+ "complexType": {
1078
+ "original": "DuetHeaderChangeEvent",
1079
+ "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1080
+ "references": {
1081
+ "DuetHeaderChangeEvent": {
1082
+ "location": "local",
1083
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-header/duet-header.tsx",
1084
+ "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
1085
+ }
1086
+ }
1087
+ }
1088
+ }, {
1089
+ "method": "duetLogoClick",
1090
+ "name": "duetLogoClick",
1091
+ "bubbles": true,
1092
+ "cancelable": true,
1093
+ "composed": true,
1094
+ "docs": {
1095
+ "tags": [],
1096
+ "text": "Event raised when a user has clicked the logo. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1097
+ },
1098
+ "complexType": {
1099
+ "original": "DuetHeaderChangeEvent",
1100
+ "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1101
+ "references": {
1102
+ "DuetHeaderChangeEvent": {
1103
+ "location": "local",
1104
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-header/duet-header.tsx",
1105
+ "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
1106
+ }
1107
+ }
1108
+ }
1109
+ }, {
1110
+ "method": "duetBackClick",
1111
+ "name": "duetBackClick",
1112
+ "bubbles": true,
1113
+ "cancelable": true,
1114
+ "composed": true,
1115
+ "docs": {
1116
+ "tags": [],
1117
+ "text": "Event raised when a user has clicked the back button. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1118
+ },
1119
+ "complexType": {
1120
+ "original": "DuetHeaderChangeEvent",
1121
+ "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1122
+ "references": {
1123
+ "DuetHeaderChangeEvent": {
1124
+ "location": "local",
1125
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-header/duet-header.tsx",
1126
+ "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
1127
+ }
1128
+ }
1129
+ }
1130
+ }, {
1131
+ "method": "duetContactClick",
1132
+ "name": "duetContactClick",
1133
+ "bubbles": true,
1134
+ "cancelable": true,
1135
+ "composed": true,
1136
+ "docs": {
1137
+ "tags": [],
1138
+ "text": "Event raised when a user has clicked an option from the contact dropdown. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1139
+ },
1140
+ "complexType": {
1141
+ "original": "DuetHeaderChangeEvent",
1142
+ "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1143
+ "references": {
1144
+ "DuetHeaderChangeEvent": {
1145
+ "location": "local",
1146
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-header/duet-header.tsx",
1147
+ "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
1148
+ }
1149
+ }
1150
+ }
1151
+ }, {
1152
+ "method": "duetItemClick",
1153
+ "name": "duetItemClick",
1154
+ "bubbles": true,
1155
+ "cancelable": true,
1156
+ "composed": true,
1157
+ "docs": {
1158
+ "tags": [],
1159
+ "text": "Event raised when a user has clicked a menu item. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1160
+ },
1161
+ "complexType": {
1162
+ "original": "DuetHeaderChangeEvent",
1163
+ "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1164
+ "references": {
1165
+ "DuetHeaderChangeEvent": {
1166
+ "location": "local",
1167
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-header/duet-header.tsx",
1168
+ "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
1169
+ }
1170
+ }
1171
+ }
1172
+ }, {
1173
+ "method": "duetSkipClick",
1174
+ "name": "duetSkipClick",
1175
+ "bubbles": true,
1176
+ "cancelable": true,
1177
+ "composed": true,
1178
+ "docs": {
1179
+ "tags": [],
1180
+ "text": "Event raised when a user has clicked the \"skip to content\" button. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
1181
+ },
1182
+ "complexType": {
1183
+ "original": "DuetHeaderChangeEvent",
1184
+ "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1185
+ "references": {
1186
+ "DuetHeaderChangeEvent": {
1187
+ "location": "local",
1188
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-header/duet-header.tsx",
1189
+ "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
1190
+ }
1191
+ }
1192
+ }
1193
+ }, {
1194
+ "method": "duetAnalytics",
1195
+ "name": "duetAnalytics",
1196
+ "bubbles": true,
1197
+ "cancelable": true,
1198
+ "composed": true,
1199
+ "docs": {
1200
+ "tags": [],
1201
+ "text": "Event raised when an items with an associated analytics ID is clicked. Analytics ID can be\naccessed via **event.detail.analyticsId**"
1202
+ },
1203
+ "complexType": {
1204
+ "original": "DuetHeaderAnalyticsEvent",
1205
+ "resolved": "{ analyticsId: string; component: \"duet-header\"; }",
1206
+ "references": {
1207
+ "DuetHeaderAnalyticsEvent": {
1208
+ "location": "local",
1209
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-header/duet-header.tsx",
1210
+ "id": "src/components/duet-header/duet-header.tsx::DuetHeaderAnalyticsEvent"
1211
+ }
1212
+ }
1213
+ }
1214
+ }, {
1215
+ "method": "duetMobileNavToggle",
1216
+ "name": "duetMobileNavToggle",
1217
+ "bubbles": true,
1218
+ "cancelable": true,
1219
+ "composed": true,
1220
+ "docs": {
1221
+ "tags": [],
1222
+ "text": "Event raised mobile navigation is toggled. **event.detail.open** shows the current status of the navigation."
1223
+ },
1224
+ "complexType": {
1225
+ "original": "DuetHeaderMobileNavToggleEvent",
1226
+ "resolved": "{ originalEvent: Event; open: boolean; }",
1227
+ "references": {
1228
+ "DuetHeaderMobileNavToggleEvent": {
1229
+ "location": "local",
1230
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-header/duet-header.tsx",
1231
+ "id": "src/components/duet-header/duet-header.tsx::DuetHeaderMobileNavToggleEvent"
1232
+ }
1233
+ }
1234
+ }
1235
+ }, {
1236
+ "method": "duetEvent",
1237
+ "name": "duetEvent",
1238
+ "bubbles": true,
1239
+ "cancelable": true,
1240
+ "composed": true,
1241
+ "docs": {
1242
+ "tags": [],
1243
+ "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**."
1244
+ },
1245
+ "complexType": {
1246
+ "original": "DuetHeaderChangeEvent",
1247
+ "resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
1248
+ "references": {
1249
+ "DuetHeaderChangeEvent": {
1250
+ "location": "local",
1251
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-header/duet-header.tsx",
1252
+ "id": "src/components/duet-header/duet-header.tsx::DuetHeaderChangeEvent"
1253
+ }
1254
+ }
1255
+ }
1256
+ }];
1257
+ }
1258
+ static get methods() {
1259
+ return {
1260
+ "closeMenus": {
1261
+ "complexType": {
1262
+ "signature": "(moveFocusToButton?: boolean) => Promise<void>",
1263
+ "parameters": [{
1264
+ "name": "moveFocusToButton",
1265
+ "type": "boolean",
1266
+ "docs": ""
1267
+ }],
1268
+ "references": {
1269
+ "Promise": {
1270
+ "location": "global",
1271
+ "id": "global::Promise"
1272
+ }
1273
+ },
1274
+ "return": "Promise<void>"
1275
+ },
1276
+ "docs": {
1277
+ "text": "Closes all dropdown menus in header when called.",
1278
+ "tags": []
1279
+ }
1291
1280
  },
1292
- "FocusOptions": {
1293
- "location": "global",
1294
- "id": "global::FocusOptions"
1281
+ "setFocus": {
1282
+ "complexType": {
1283
+ "signature": "(options?: FocusOptions) => Promise<void>",
1284
+ "parameters": [{
1285
+ "name": "options",
1286
+ "type": "FocusOptions",
1287
+ "docs": ""
1288
+ }],
1289
+ "references": {
1290
+ "Promise": {
1291
+ "location": "global",
1292
+ "id": "global::Promise"
1293
+ },
1294
+ "FocusOptions": {
1295
+ "location": "global",
1296
+ "id": "global::FocusOptions"
1297
+ }
1298
+ },
1299
+ "return": "Promise<void>"
1300
+ },
1301
+ "docs": {
1302
+ "text": "Sets focus on the specified `duet-header`. Use this method instead of the global\n`header.focus()`.",
1303
+ "tags": []
1304
+ }
1295
1305
  }
1296
- },
1297
- "return": "Promise<void>"
1298
- },
1299
- "docs": {
1300
- "text": "Sets focus on the specified `duet-header`. Use this method instead of the global\n`header.focus()`.",
1301
- "tags": []
1302
- }
1303
- }
1304
- };
1305
- }
1306
- static get elementRef() { return "element"; }
1307
- static get watchers() {
1308
- return [{
1309
- "propName": "user",
1310
- "methodName": "refresh"
1311
- }, {
1312
- "propName": "items",
1313
- "methodName": "refresh"
1314
- }, {
1315
- "propName": "session",
1316
- "methodName": "refresh"
1317
- }, {
1318
- "propName": "back",
1319
- "methodName": "refresh"
1320
- }, {
1321
- "propName": "contactItems",
1322
- "methodName": "refresh"
1323
- }, {
1324
- "propName": "languageItems",
1325
- "methodName": "refresh"
1326
- }];
1327
- }
1328
- static get listeners() {
1329
- return [{
1330
- "name": "keyup",
1331
- "method": "handleKeyUp",
1332
- "target": "window",
1333
- "capture": false,
1334
- "passive": false
1335
- }, {
1336
- "name": "keydown",
1337
- "method": "handleKeyDown",
1338
- "target": "window",
1339
- "capture": false,
1340
- "passive": false
1341
- }, {
1342
- "name": "focus",
1343
- "method": "handleDocumentClick",
1344
- "target": "document",
1345
- "capture": false,
1346
- "passive": false
1347
- }, {
1348
- "name": "click",
1349
- "method": "handleDocumentClick",
1350
- "target": "document",
1351
- "capture": false,
1352
- "passive": false
1353
- }];
1354
- }
1306
+ };
1307
+ }
1308
+ static get elementRef() { return "element"; }
1309
+ static get watchers() {
1310
+ return [{
1311
+ "propName": "user",
1312
+ "methodName": "refresh"
1313
+ }, {
1314
+ "propName": "items",
1315
+ "methodName": "refresh"
1316
+ }, {
1317
+ "propName": "session",
1318
+ "methodName": "refresh"
1319
+ }, {
1320
+ "propName": "back",
1321
+ "methodName": "refresh"
1322
+ }, {
1323
+ "propName": "contactItems",
1324
+ "methodName": "refresh"
1325
+ }, {
1326
+ "propName": "languageItems",
1327
+ "methodName": "refresh"
1328
+ }];
1329
+ }
1330
+ static get listeners() {
1331
+ return [{
1332
+ "name": "keyup",
1333
+ "method": "handleKeyUp",
1334
+ "target": "window",
1335
+ "capture": false,
1336
+ "passive": false
1337
+ }, {
1338
+ "name": "keydown",
1339
+ "method": "handleKeyDown",
1340
+ "target": "window",
1341
+ "capture": false,
1342
+ "passive": false
1343
+ }, {
1344
+ "name": "focus",
1345
+ "method": "handleDocumentClick",
1346
+ "target": "document",
1347
+ "capture": false,
1348
+ "passive": false
1349
+ }, {
1350
+ "name": "click",
1351
+ "method": "handleDocumentClick",
1352
+ "target": "document",
1353
+ "capture": false,
1354
+ "passive": false
1355
+ }];
1356
+ }
1355
1357
  }