@duetds/components 5.0.4 → 5.1.1

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 (324) hide show
  1. package/hydrate/index.js +474 -17
  2. package/lib/cjs/duet-action-button.cjs.entry.js +7 -7
  3. package/lib/cjs/duet-alert.cjs.entry.js +4 -4
  4. package/lib/cjs/duet-badge.cjs.entry.js +2 -2
  5. package/lib/cjs/duet-breadcrumb.cjs.entry.js +2 -2
  6. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +4 -4
  7. package/lib/cjs/duet-button_2.cjs.entry.js +6 -6
  8. package/lib/cjs/duet-caption_4.cjs.entry.js +6 -6
  9. package/lib/cjs/duet-card.cjs.entry.js +6 -6
  10. package/lib/cjs/duet-checkbox.cjs.entry.js +2 -2
  11. package/lib/cjs/duet-choice_2.cjs.entry.js +6 -6
  12. package/lib/cjs/duet-collapsible.cjs.entry.js +5 -5
  13. package/lib/cjs/duet-combobox.cjs.entry.js +390 -0
  14. package/lib/cjs/duet-cookie-consent.cjs.entry.js +2 -2
  15. package/lib/cjs/duet-date-picker.cjs.entry.js +5 -5
  16. package/lib/cjs/duet-divider_2.cjs.entry.js +2 -2
  17. package/lib/cjs/duet-editable-table_3.cjs.entry.js +11 -9
  18. package/lib/cjs/duet-empty-state.cjs.entry.js +2 -2
  19. package/lib/cjs/duet-fieldset.cjs.entry.js +2 -2
  20. package/lib/cjs/duet-footer.cjs.entry.js +6 -6
  21. package/lib/cjs/duet-grid_2.cjs.entry.js +3 -3
  22. package/lib/cjs/duet-header_2.cjs.entry.js +42 -11
  23. package/lib/cjs/duet-hero.cjs.entry.js +4 -4
  24. package/lib/cjs/duet-icon.cjs.entry.js +4 -4
  25. package/lib/cjs/duet-input_2.cjs.entry.js +19 -4
  26. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-list_2.cjs.entry.js +2 -2
  28. package/lib/cjs/duet-modal.cjs.entry.js +6 -6
  29. package/lib/cjs/duet-notification_2.cjs.entry.js +4 -4
  30. package/lib/cjs/duet-number-input.cjs.entry.js +5 -5
  31. package/lib/cjs/duet-pagination_2.cjs.entry.js +5 -5
  32. package/lib/cjs/duet-progress.cjs.entry.js +4 -4
  33. package/lib/cjs/duet-radio_2.cjs.entry.js +2 -2
  34. package/lib/cjs/duet-range-slider.cjs.entry.js +3 -3
  35. package/lib/cjs/duet-scrollable_3.cjs.entry.js +12 -8
  36. package/lib/cjs/duet-select.cjs.entry.js +3 -3
  37. package/lib/cjs/duet-step_2.cjs.entry.js +3 -3
  38. package/lib/cjs/duet-textarea.cjs.entry.js +3 -3
  39. package/lib/cjs/duet-toggle.cjs.entry.js +2 -2
  40. package/lib/cjs/duet-tooltip.cjs.entry.js +4 -4
  41. package/lib/cjs/duet-tray.cjs.entry.js +5 -5
  42. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  44. package/lib/cjs/duet.cjs.js +2 -2
  45. package/lib/cjs/{focus-utils-88e98997.js → focus-utils-a03e60dd.js} +1 -1
  46. package/lib/cjs/{index-ef094178.js → index-e44f9b36.js} +1 -1
  47. package/lib/cjs/{input-utils-f3e3854c.js → input-utils-b5e8f524.js} +1 -1
  48. package/lib/cjs/{keyboard-utils-898cfe14.js → keyboard-utils-bb32119b.js} +3 -0
  49. package/lib/cjs/{language-utils-aa282901.js → language-utils-4f62a7db.js} +1 -1
  50. package/lib/cjs/loader.cjs.js +2 -2
  51. package/lib/cjs/{string-utils-267e3dbb.js → string-utils-5cadd058.js} +6 -0
  52. package/lib/cjs/themeable-component-940d3b50.js +15 -0
  53. package/lib/cjs/{token-utils-ac8432d1.js → token-utils-f402e205.js} +1 -1
  54. package/lib/cjs/{tokens-72efc7fd.js → tokens-8596cece.js} +0 -0
  55. package/lib/cjs/{tokens.module-6afcc9c1.js → tokens.module-6b2df1c2.js} +0 -0
  56. package/lib/collection/collection-manifest.json +1 -0
  57. package/lib/collection/components/duet-combobox/duet-combobox-select-single.js +12 -0
  58. package/lib/collection/components/duet-combobox/duet-combobox-select.js +19 -0
  59. package/lib/collection/components/duet-combobox/duet-combobox.css +78 -0
  60. package/lib/collection/components/duet-combobox/duet-combobox.js +592 -0
  61. package/lib/collection/components/duet-footer/duet-footer.js +6 -2
  62. package/lib/collection/components/duet-header/duet-header.css +15 -0
  63. package/lib/collection/components/duet-header/duet-header.js +41 -3
  64. package/lib/collection/components/duet-input/duet-input.js +67 -1
  65. package/lib/collection/components/duet-tab-group/duet-tab-group.js +25 -3
  66. package/lib/collection/components/duet-upload/duet-upload.css +12 -0
  67. package/lib/collection/components/duet-upload/duet-upload.js +4 -1
  68. package/lib/collection/components/duet-upload/upload-editable-item-success.js +1 -1
  69. package/lib/collection/utils/input-utils.js +1 -1
  70. package/lib/collection/utils/string-utils.js +6 -0
  71. package/lib/collection/utils/themeable-component.js +5 -2
  72. package/lib/custom-elements-bundle/index.d.ts +6 -0
  73. package/lib/custom-elements-bundle/index.js +470 -29
  74. package/lib/duet/duet.esm.js +1 -1
  75. package/lib/duet/duet.js +1 -1
  76. package/lib/duet/{p-36e7114b.system.entry.js → p-052a5743.system.entry.js} +1 -1
  77. package/lib/duet/{p-f1b62aca.entry.js → p-0958486a.entry.js} +1 -1
  78. package/lib/duet/{p-9b568485.entry.js → p-0bfa4901.entry.js} +1 -1
  79. package/lib/duet/{p-912eed2f.entry.js → p-14883a40.entry.js} +1 -1
  80. package/lib/duet/p-1676ed71.system.entry.js +4 -0
  81. package/lib/duet/{p-16df6ccc.system.entry.js → p-17261af2.system.entry.js} +1 -1
  82. package/lib/duet/{p-c3bd89fa.system.entry.js → p-1a1c2f04.system.entry.js} +1 -1
  83. package/lib/duet/p-1beddade.entry.js +4 -0
  84. package/lib/duet/{p-ea4674fd.system.entry.js → p-202bedcb.system.entry.js} +1 -1
  85. package/lib/duet/{p-68fecc14.system.entry.js → p-21711099.system.entry.js} +1 -1
  86. package/lib/duet/{p-f4c60fd8.system.entry.js → p-25edad4a.system.entry.js} +1 -1
  87. package/lib/duet/{p-123c8434.system.entry.js → p-2673743a.system.entry.js} +1 -1
  88. package/lib/duet/p-28f204ff.system.entry.js +4 -0
  89. package/lib/duet/{p-1144c927.entry.js → p-2963573e.entry.js} +1 -1
  90. package/lib/duet/{p-87bedb24.system.entry.js → p-2999bd13.system.entry.js} +1 -1
  91. package/lib/duet/{p-c2d1223e.entry.js → p-2f6e0663.entry.js} +1 -1
  92. package/lib/duet/{p-42d3a162.system.entry.js → p-314a8dce.system.entry.js} +1 -1
  93. package/lib/duet/{p-b631407a.system.entry.js → p-32c98e7e.system.entry.js} +1 -1
  94. package/lib/duet/{p-aa16ca33.system.entry.js → p-33eef64b.system.entry.js} +1 -1
  95. package/lib/duet/{p-ad77f9e2.entry.js → p-3b6ba9be.entry.js} +1 -1
  96. package/lib/duet/{p-1cfeab55.system.entry.js → p-3c09dfc7.system.entry.js} +1 -1
  97. package/lib/duet/{p-b5bc8221.entry.js → p-3e21a552.entry.js} +1 -1
  98. package/lib/duet/{p-5d997107.entry.js → p-3e6b24df.entry.js} +1 -1
  99. package/lib/duet/{p-7dbf8797.system.entry.js → p-3f781b16.system.entry.js} +1 -1
  100. package/lib/duet/{p-f5a4ae78.entry.js → p-3fef06e6.entry.js} +1 -1
  101. package/lib/duet/{p-1bb6c66f.system.entry.js → p-434eb761.system.entry.js} +1 -1
  102. package/lib/duet/{p-92722c37.system.entry.js → p-442a290e.system.entry.js} +1 -1
  103. package/lib/duet/{p-f414ff23.system.entry.js → p-4600e39d.system.entry.js} +1 -1
  104. package/lib/duet/{p-a96ead6c.entry.js → p-489173a9.entry.js} +1 -1
  105. package/lib/duet/{p-104c3fa5.system.entry.js → p-4b9eb6dd.system.entry.js} +1 -1
  106. package/lib/duet/{p-77acbfe4.system.js → p-4e2532c7.system.js} +1 -1
  107. package/lib/duet/{p-2b1b8246.entry.js → p-53d51490.entry.js} +1 -1
  108. package/lib/duet/p-54f35a79.js +4 -0
  109. package/lib/duet/p-56118313.js +4 -0
  110. package/lib/duet/p-5a9d75e1.js +4 -0
  111. package/lib/duet/{p-5d6f8c04.entry.js → p-6ac8a774.entry.js} +1 -1
  112. package/lib/duet/p-6b03322b.system.js +4 -0
  113. package/lib/duet/{p-ee6d9bc6.entry.js → p-6b915701.entry.js} +1 -1
  114. package/lib/duet/{p-bd27572d.entry.js → p-6c94b74c.entry.js} +1 -1
  115. package/lib/duet/{p-298aff96.system.entry.js → p-6d93203d.system.entry.js} +1 -1
  116. package/lib/duet/{p-689fe862.entry.js → p-6f339dd4.entry.js} +1 -1
  117. package/lib/duet/{p-cbd12107.system.entry.js → p-71e1ff1e.system.entry.js} +1 -1
  118. package/lib/duet/p-72919e6d.entry.js +4 -0
  119. package/lib/duet/{p-b47892c9.entry.js → p-7312120a.entry.js} +1 -1
  120. package/lib/duet/{p-54cc4f86.entry.js → p-77c8ae06.entry.js} +1 -1
  121. package/lib/duet/{p-b110c837.entry.js → p-79af737e.entry.js} +1 -1
  122. package/lib/duet/{p-d98ed960.entry.js → p-7d8ee301.entry.js} +1 -1
  123. package/lib/duet/{p-d7bc0102.js → p-8143f3de.js} +0 -0
  124. package/lib/duet/{p-d4621cbf.system.entry.js → p-82bfc46e.system.entry.js} +1 -1
  125. package/lib/duet/{p-70acda4b.entry.js → p-854b2669.entry.js} +1 -1
  126. package/lib/duet/{p-b06d63cb.entry.js → p-8afcef6d.entry.js} +1 -1
  127. package/lib/duet/p-8ca12f86.entry.js +4 -0
  128. package/lib/duet/{p-b985a189.entry.js → p-8e7b2349.entry.js} +1 -1
  129. package/lib/duet/p-976d65bc.entry.js +4 -0
  130. package/lib/duet/{p-84eb2808.entry.js → p-a3e84a0c.entry.js} +1 -1
  131. package/lib/duet/p-a63f753e.system.js +4 -0
  132. package/lib/duet/{p-285e2473.system.entry.js → p-a682460b.system.entry.js} +2 -2
  133. package/lib/duet/p-abf8eaf7.js +4 -0
  134. package/lib/duet/{p-ed75c8b3.js → p-ad07f399.js} +0 -0
  135. package/lib/duet/p-aee18e71.system.entry.js +4 -0
  136. package/lib/duet/{p-d494f1a3.system.entry.js → p-b03047e2.system.entry.js} +1 -1
  137. package/lib/duet/p-b6d51921.system.js +4 -0
  138. package/lib/duet/{p-ada161bd.entry.js → p-b8423556.entry.js} +1 -1
  139. package/lib/duet/{p-f125dfff.system.js → p-bdbf8f12.system.js} +1 -1
  140. package/lib/duet/{p-fe9138e7.system.entry.js → p-bfacc4ba.system.entry.js} +1 -1
  141. package/lib/duet/{p-d688612f.entry.js → p-bfbc45ac.entry.js} +1 -1
  142. package/lib/duet/{p-1a2ab8e8.system.entry.js → p-c3248b49.system.entry.js} +1 -1
  143. package/lib/duet/{p-128983f7.system.entry.js → p-c363cb4b.system.entry.js} +1 -1
  144. package/lib/duet/{p-97bdc2bf.entry.js → p-c3cfb3d2.entry.js} +1 -1
  145. package/lib/duet/{p-9a8d5b11.system.js → p-c466bad9.system.js} +1 -1
  146. package/lib/duet/{p-217b9e24.entry.js → p-c4b8dbcc.entry.js} +1 -1
  147. package/lib/duet/{p-b5a64d86.system.entry.js → p-ca07f766.system.entry.js} +1 -1
  148. package/lib/duet/{p-d9ac5f05.entry.js → p-ca61da84.entry.js} +1 -1
  149. package/lib/duet/{p-5746d88c.js → p-cb445018.js} +1 -1
  150. package/lib/duet/{p-c0071398.system.entry.js → p-cbee7eb0.system.entry.js} +1 -1
  151. package/lib/duet/p-cc557ff2.entry.js +4 -0
  152. package/lib/duet/{p-a41384d5.system.entry.js → p-cde3dddb.system.entry.js} +1 -1
  153. package/lib/duet/p-cf2cd5b6.js +4 -0
  154. package/lib/duet/{p-e0b5e649.entry.js → p-d15456a9.entry.js} +1 -1
  155. package/lib/duet/{p-04145769.system.js → p-d3a21d3a.system.js} +1 -1
  156. package/lib/duet/{p-37f74ccb.system.entry.js → p-d4f6977d.system.entry.js} +2 -2
  157. package/lib/duet/{p-217e3cc7.system.entry.js → p-d56fcc0f.system.entry.js} +1 -1
  158. package/lib/duet/{p-c40c716c.entry.js → p-d75cb9b3.entry.js} +1 -1
  159. package/lib/duet/{p-8ebf4113.entry.js → p-dc6f6251.entry.js} +1 -1
  160. package/lib/duet/{p-268c0abb.system.js → p-ddb6344c.system.js} +0 -0
  161. package/lib/duet/{p-c5037594.entry.js → p-e2e9c1c6.entry.js} +1 -1
  162. package/lib/duet/{p-e485de24.entry.js → p-e3bb4d0d.entry.js} +1 -1
  163. package/lib/duet/{p-2495cec7.system.entry.js → p-e6217a66.system.entry.js} +1 -1
  164. package/lib/duet/{p-333ed250.system.entry.js → p-e7d06e4b.system.entry.js} +1 -1
  165. package/lib/duet/{p-30a28555.system.entry.js → p-e9d62935.system.entry.js} +1 -1
  166. package/lib/duet/{p-a52c08c6.entry.js → p-ea85a070.entry.js} +1 -1
  167. package/lib/duet/{p-90223d57.entry.js → p-eacb0a3c.entry.js} +1 -1
  168. package/lib/duet/{p-eb7c1a1d.system.entry.js → p-eafce13a.system.entry.js} +2 -2
  169. package/lib/duet/{p-a7a1ece1.system.entry.js → p-eafe466d.system.entry.js} +1 -1
  170. package/lib/duet/{p-17a8d23c.system.entry.js → p-ebc287fb.system.entry.js} +1 -1
  171. package/lib/duet/p-ede854e1.js +4 -0
  172. package/lib/duet/p-ef60173e.js +4 -0
  173. package/lib/duet/{p-d2b5efc0.system.entry.js → p-ef63e6b7.system.entry.js} +1 -1
  174. package/lib/duet/{p-71cdfd93.system.entry.js → p-f2dda559.system.entry.js} +1 -1
  175. package/lib/duet/p-f357091a.entry.js +4 -0
  176. package/lib/duet/{p-70fafc98.system.js → p-f69b64c9.system.js} +1 -1
  177. package/lib/duet/{p-f333c2bf.system.entry.js → p-f6d4c0e2.system.entry.js} +1 -1
  178. package/lib/duet/{p-27eac9a4.entry.js → p-f8d42b1d.entry.js} +1 -1
  179. package/lib/duet/{p-812b0905.system.js → p-fa99eaa4.system.js} +0 -0
  180. package/lib/duet/p-fad9218e.system.js +4 -0
  181. package/lib/esm/duet-action-button.entry.js +7 -7
  182. package/lib/esm/duet-alert.entry.js +4 -4
  183. package/lib/esm/duet-badge.entry.js +2 -2
  184. package/lib/esm/duet-breadcrumb.entry.js +2 -2
  185. package/lib/esm/duet-breadcrumbs.entry.js +4 -4
  186. package/lib/esm/duet-button_2.entry.js +6 -6
  187. package/lib/esm/duet-caption_4.entry.js +6 -6
  188. package/lib/esm/duet-card.entry.js +6 -6
  189. package/lib/esm/duet-checkbox.entry.js +2 -2
  190. package/lib/esm/duet-choice_2.entry.js +6 -6
  191. package/lib/esm/duet-collapsible.entry.js +5 -5
  192. package/lib/esm/duet-combobox.entry.js +386 -0
  193. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  194. package/lib/esm/duet-date-picker.entry.js +5 -5
  195. package/lib/esm/duet-divider_2.entry.js +2 -2
  196. package/lib/esm/duet-editable-table_3.entry.js +11 -9
  197. package/lib/esm/duet-empty-state.entry.js +2 -2
  198. package/lib/esm/duet-fieldset.entry.js +2 -2
  199. package/lib/esm/duet-footer.entry.js +6 -6
  200. package/lib/esm/duet-grid_2.entry.js +3 -3
  201. package/lib/esm/duet-header_2.entry.js +42 -11
  202. package/lib/esm/duet-hero.entry.js +4 -4
  203. package/lib/esm/duet-icon.entry.js +4 -4
  204. package/lib/esm/duet-input_2.entry.js +19 -4
  205. package/lib/esm/duet-layout.entry.js +1 -1
  206. package/lib/esm/duet-list_2.entry.js +2 -2
  207. package/lib/esm/duet-modal.entry.js +6 -6
  208. package/lib/esm/duet-notification_2.entry.js +4 -4
  209. package/lib/esm/duet-number-input.entry.js +5 -5
  210. package/lib/esm/duet-pagination_2.entry.js +5 -5
  211. package/lib/esm/duet-progress.entry.js +4 -4
  212. package/lib/esm/duet-radio_2.entry.js +2 -2
  213. package/lib/esm/duet-range-slider.entry.js +3 -3
  214. package/lib/esm/duet-scrollable_3.entry.js +12 -8
  215. package/lib/esm/duet-select.entry.js +3 -3
  216. package/lib/esm/duet-step_2.entry.js +3 -3
  217. package/lib/esm/duet-textarea.entry.js +3 -3
  218. package/lib/esm/duet-toggle.entry.js +2 -2
  219. package/lib/esm/duet-tooltip.entry.js +4 -4
  220. package/lib/esm/duet-tray.entry.js +5 -5
  221. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  222. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  223. package/lib/esm/duet.js +2 -2
  224. package/lib/esm/{focus-utils-d02ee9d2.js → focus-utils-ea33cb8a.js} +1 -1
  225. package/lib/esm/{index-3cfa1b7e.js → index-54e0bce3.js} +1 -1
  226. package/lib/esm/{input-utils-f4cafee1.js → input-utils-de45e099.js} +1 -1
  227. package/lib/esm/{keyboard-utils-6eb55cd5.js → keyboard-utils-88ea1007.js} +2 -1
  228. package/lib/esm/{language-utils-344d894c.js → language-utils-bf701d37.js} +1 -1
  229. package/lib/esm/loader.js +2 -2
  230. package/lib/esm/{string-utils-2f1793b8.js → string-utils-5954f458.js} +6 -0
  231. package/lib/esm/themeable-component-e8fc98bf.js +13 -0
  232. package/lib/esm/{token-utils-e9a0cb88.js → token-utils-e9a69acf.js} +1 -1
  233. package/lib/esm/{tokens-57d98824.js → tokens-e110dc89.js} +0 -0
  234. package/lib/esm/{tokens.module-a13e9683.js → tokens.module-49cbf963.js} +0 -0
  235. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  236. package/lib/esm-es5/duet-alert.entry.js +1 -1
  237. package/lib/esm-es5/duet-badge.entry.js +1 -1
  238. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  239. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  240. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  241. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  242. package/lib/esm-es5/duet-card.entry.js +1 -1
  243. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  244. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  245. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  246. package/lib/esm-es5/duet-combobox.entry.js +4 -0
  247. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  248. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  249. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  250. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  251. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  252. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  253. package/lib/esm-es5/duet-footer.entry.js +1 -1
  254. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  255. package/lib/esm-es5/duet-header_2.entry.js +2 -2
  256. package/lib/esm-es5/duet-hero.entry.js +1 -1
  257. package/lib/esm-es5/duet-icon.entry.js +1 -1
  258. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  259. package/lib/esm-es5/duet-layout.entry.js +1 -1
  260. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  261. package/lib/esm-es5/duet-modal.entry.js +1 -1
  262. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  263. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  264. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  265. package/lib/esm-es5/duet-progress.entry.js +1 -1
  266. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  267. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  268. package/lib/esm-es5/duet-scrollable_3.entry.js +2 -2
  269. package/lib/esm-es5/duet-select.entry.js +1 -1
  270. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  271. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  272. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  273. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  274. package/lib/esm-es5/duet-tray.entry.js +1 -1
  275. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  276. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  277. package/lib/esm-es5/duet.js +1 -1
  278. package/lib/esm-es5/focus-utils-ea33cb8a.js +4 -0
  279. package/lib/esm-es5/index-54e0bce3.js +4 -0
  280. package/lib/esm-es5/input-utils-de45e099.js +4 -0
  281. package/lib/esm-es5/keyboard-utils-88ea1007.js +4 -0
  282. package/lib/esm-es5/{language-utils-344d894c.js → language-utils-bf701d37.js} +1 -1
  283. package/lib/esm-es5/loader.js +1 -1
  284. package/lib/esm-es5/string-utils-5954f458.js +4 -0
  285. package/lib/esm-es5/themeable-component-e8fc98bf.js +4 -0
  286. package/lib/esm-es5/{token-utils-e9a0cb88.js → token-utils-e9a69acf.js} +1 -1
  287. package/lib/esm-es5/{tokens-57d98824.js → tokens-e110dc89.js} +0 -0
  288. package/lib/esm-es5/{tokens.module-a13e9683.js → tokens.module-49cbf963.js} +0 -0
  289. package/lib/html.html-data.json +55 -0
  290. package/lib/types/components/duet-combobox/duet-combobox-select-single.d.ts +8 -0
  291. package/lib/types/components/duet-combobox/duet-combobox-select.d.ts +14 -0
  292. package/lib/types/components/duet-combobox/duet-combobox.d.ts +131 -0
  293. package/lib/types/components/duet-footer/duet-footer.d.ts +4 -0
  294. package/lib/types/components/duet-header/duet-header.d.ts +8 -0
  295. package/lib/types/components/duet-input/duet-input.d.ts +13 -0
  296. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +4 -0
  297. package/lib/types/components.d.ts +115 -0
  298. package/package.json +5 -5
  299. package/lib/cjs/themeable-component-0c1be552.js +0 -12
  300. package/lib/duet/p-195f73d6.entry.js +0 -4
  301. package/lib/duet/p-2764f081.js +0 -4
  302. package/lib/duet/p-6733b42f.js +0 -4
  303. package/lib/duet/p-74780bca.system.js +0 -4
  304. package/lib/duet/p-7b064c4f.entry.js +0 -4
  305. package/lib/duet/p-7e2e9a28.js +0 -4
  306. package/lib/duet/p-898f30a5.js +0 -4
  307. package/lib/duet/p-922c3772.system.entry.js +0 -4
  308. package/lib/duet/p-98228d0a.system.js +0 -4
  309. package/lib/duet/p-986779fb.js +0 -4
  310. package/lib/duet/p-9a945278.system.js +0 -4
  311. package/lib/duet/p-9dfcd29a.js +0 -4
  312. package/lib/duet/p-a28cf57b.js +0 -4
  313. package/lib/duet/p-a8ff3a13.entry.js +0 -4
  314. package/lib/duet/p-d70b3f27.entry.js +0 -4
  315. package/lib/duet/p-d8c526b4.entry.js +0 -4
  316. package/lib/duet/p-e87b2fa4.system.entry.js +0 -4
  317. package/lib/duet/p-efaa0c04.system.js +0 -4
  318. package/lib/esm/themeable-component-572685dd.js +0 -10
  319. package/lib/esm-es5/focus-utils-d02ee9d2.js +0 -4
  320. package/lib/esm-es5/index-3cfa1b7e.js +0 -4
  321. package/lib/esm-es5/input-utils-f4cafee1.js +0 -4
  322. package/lib/esm-es5/keyboard-utils-6eb55cd5.js +0 -4
  323. package/lib/esm-es5/string-utils-2f1793b8.js +0 -4
  324. package/lib/esm-es5/themeable-component-572685dd.js +0 -4
@@ -2,7 +2,7 @@
2
2
  * Built with Duet Design System
3
3
  */
4
4
  const NAMESPACE = 'duet';
5
- const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"2.2.22"};
5
+ const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"2.3.0"};
6
6
 
7
7
  let scopeId;
8
8
  let contentRef;
@@ -1593,7 +1593,7 @@ const proxyCustomElement = (Cstr, compactMeta) => {
1593
1593
  };
1594
1594
  const setAssetPath = (path) => (plt.$resourcesUrl$ = path);
1595
1595
  const setPlatformOptions = (opts) => Object.assign(plt, opts);
1596
- const Fragment = (_, children) => children;
1596
+ const Fragment$1 = (_, children) => children;
1597
1597
  const hostRefs = new WeakMap();
1598
1598
  const getHostRef = (ref) => hostRefs.get(ref);
1599
1599
  const registerHost = (elm, cmpMeta) => {
@@ -1733,6 +1733,7 @@ const isArrowRightKey = (e) => e.keyCode === 39;
1733
1733
  const isArrowDownKey = (e) => e.keyCode === 40;
1734
1734
  const isArrowKey = (e) => isArrowDownKey(e) || isArrowRightKey(e) || isArrowUpKey(e) || isArrowLeftKey(e);
1735
1735
  const isEscapeKey = (e) => e.key === "Escape" || e.key === "Esc" || e.keyCode === 27;
1736
+ const isTabKey = (e) => e.key === "Tab" || e.keyCode === 9;
1736
1737
  const isBackspaceKey = (e) => e.keyCode === 8;
1737
1738
  const isSpaceKey = (e) => e.key === "Space" || e.keyCode === 32;
1738
1739
  const isPlusKey = (e) => e.key === "+" || e.keyCode === 43;
@@ -1755,6 +1756,12 @@ const parsePossibleJSON = (maybeJSON) => {
1755
1756
  }
1756
1757
  catch (e) {
1757
1758
  console.warn(e);
1759
+ try {
1760
+ return JSON.parse(convertHtmlQuotes(maybeJSON));
1761
+ }
1762
+ catch (e) {
1763
+ console.warn(e);
1764
+ }
1758
1765
  }
1759
1766
  }
1760
1767
  // undefined is not a type in JSON,
@@ -1874,8 +1881,11 @@ const getLocaleString = (langObject, languageOverride) => {
1874
1881
  };
1875
1882
 
1876
1883
  const inheritGlobalTheme = (component) => {
1877
- if (component.theme !== "default" && document.documentElement.classList.contains("duet-theme-turva")) {
1878
- component.theme = "turva";
1884
+ // this minor change enables duet-theme-XXXXX instead of just duet-theme-turva
1885
+ const classList = Array.from(document.documentElement.classList).join(" ") || "";
1886
+ const theme = /(duet-theme-)([a-z]*)/gis.exec(classList);
1887
+ if (theme && theme[1] === "duet-theme-") {
1888
+ component.theme = theme[2] === "default" ? "" : theme[2];
1879
1889
  }
1880
1890
  };
1881
1891
 
@@ -2627,7 +2637,7 @@ const DuetBreadcrumbs$1 = class extends H {
2627
2637
  return (h$1(Host, null, h$1("nav", { "aria-label": this.breadcrumbsAriaLabel, class: {
2628
2638
  "duet-breadcrumbs": true,
2629
2639
  "duet-theme-turva": this.theme === "turva",
2630
- } }, h$1("ol", null, this.children.map((child, index) => (h$1(Fragment, null, index > 0 && (h$1("li", { "aria-hidden": "true" }, h$1("duet-icon", { class: "duet-breadrumbs-arrow", size: "auto", icon: actionArrowRightSmall.svg, margin: "none", color: "currentColor" }))), h$1("li", { innerHTML: child.outerHTML }), h$1("div", { class: "hide" }, h$1("slot", null)))))))));
2640
+ } }, h$1("ol", null, this.children.map((child, index) => (h$1(Fragment$1, null, index > 0 && (h$1("li", { "aria-hidden": "true" }, h$1("duet-icon", { class: "duet-breadrumbs-arrow", size: "auto", icon: actionArrowRightSmall.svg, margin: "none", color: "currentColor" }))), h$1("li", { innerHTML: child.outerHTML }), h$1("div", { class: "hide" }, h$1("slot", null)))))))));
2631
2641
  }
2632
2642
  get element() { return this; }
2633
2643
  static get style() { return duetBreadcrumbsCss; }
@@ -3026,7 +3036,7 @@ const DuetCard$1 = class extends H {
3026
3036
  onKeyDown: this.handleKeyDown,
3027
3037
  }
3028
3038
  : {};
3029
- return (h$1(HeadingTag, Object.assign({ class: "duet-card-heading" }, headingProps), h$1("div", { class: "duet-card-heading-grid" }, this.icon && (h$1(Fragment, null, h$1("duet-icon", { class: "duet-card-icon", name: this.icon, size: "medium", margin: "none", color: "currentColor" }), h$1("duet-spacer", { direction: "horizontal", size: "small" }))), h$1("div", { class: "duet-card-heading-text" }, this.heading), this.secondaryHeading && (h$1(Fragment, null, h$1("duet-spacer", { direction: "horizontal", size: "small" }), h$1("div", { class: "duet-card-secondary-heading duet-card-secondary-heading--inline" }, this.secondaryHeading))), this.collapsible && (h$1(Fragment, null, h$1("duet-spacer", { direction: "horizontal", size: "small" }), h$1("duet-icon", { class: "duet-card-caret", icon: actionArrowUp.svg, size: "small", margin: "none", color: "currentColor" })))), this.secondaryHeading && (h$1("div", { class: "duet-card-secondary-heading duet-card-secondary-heading--new-line" }, this.secondaryHeading)), h$1("slot", { name: "below-heading" })));
3039
+ return (h$1(HeadingTag, Object.assign({ class: "duet-card-heading" }, headingProps), h$1("div", { class: "duet-card-heading-grid" }, this.icon && (h$1(Fragment$1, null, h$1("duet-icon", { class: "duet-card-icon", name: this.icon, size: "medium", margin: "none", color: "currentColor" }), h$1("duet-spacer", { direction: "horizontal", size: "small" }))), h$1("div", { class: "duet-card-heading-text" }, this.heading), this.secondaryHeading && (h$1(Fragment$1, null, h$1("duet-spacer", { direction: "horizontal", size: "small" }), h$1("div", { class: "duet-card-secondary-heading duet-card-secondary-heading--inline" }, this.secondaryHeading))), this.collapsible && (h$1(Fragment$1, null, h$1("duet-spacer", { direction: "horizontal", size: "small" }), h$1("duet-icon", { class: "duet-card-caret", icon: actionArrowUp.svg, size: "small", margin: "none", color: "currentColor" })))), this.secondaryHeading && (h$1("div", { class: "duet-card-secondary-heading duet-card-secondary-heading--new-line" }, this.secondaryHeading)), h$1("slot", { name: "below-heading" })));
3030
3040
  }
3031
3041
  /**
3032
3042
  * Sets focus on the specified `duet-card`. Use this method instead of the global
@@ -3304,6 +3314,7 @@ const convertToPrivate = (node) => {
3304
3314
  vnode.$name$ = node.vname;
3305
3315
  return vnode;
3306
3316
  };
3317
+ const Fragment = (_, children) => children;
3307
3318
 
3308
3319
  const focusElement = (element) => {
3309
3320
  if ("setFocus" in element) {
@@ -4388,6 +4399,382 @@ const DuetCollapsible$1 = class extends H {
4388
4399
  static get style() { return duetCollapsibleCss; }
4389
4400
  };
4390
4401
 
4402
+ const SelectSingle = ({ item, search = "", selected }) => {
4403
+ const regEx = search !== "" ? new RegExp("(" + search.split(" ").join("|") + ")", "gi") : undefined;
4404
+ return (h(Fragment, null,
4405
+ selected && h("duet-icon", { class: "option-icon", name: "messaging-checked", size: "xx-small", margin: "none" }),
4406
+ regEx ? (h("span", { class: "option-container", "aria-hidden": "true" },
4407
+ h("span", { innerHTML: item.name.replace(regEx, '<span class="highlight">$&</span>') }))) : (item.name),
4408
+ item.tags && h("span", { class: "option-tags" }, item.tags.join(", "))));
4409
+ };
4410
+
4411
+ const DuetComboBoxSelect = ({ item, active, total, selected, label = undefined, clickHandler = e => {
4412
+ e.preventDefault();
4413
+ }, keyHandler = e => {
4414
+ e.preventDefault();
4415
+ }, search, }) => {
4416
+ return (h("li", { class: {
4417
+ "list-item": true,
4418
+ option: true,
4419
+ active: active,
4420
+ selected: selected,
4421
+ }, id: active ? "active_item" : "", "data-index": item.id, "aria-selected": active ? "true" : undefined, "aria-current": selected ? "true" : undefined, role: "option", "aria-label": label || `${item.name}, (${item.id + 1} of ${total})` },
4422
+ h("a", { tabindex: "-1", onClick: e => clickHandler(e), onKeyUp: e => keyHandler(e), class: "option-link", "aria-label": label || `${item.name}, (${item.id + 1} of ${total})`, "aria-hidden": "true" },
4423
+ h(SelectSingle, { item: item, search: search, selected: selected }))));
4424
+ };
4425
+
4426
+ const duetComboboxCss = ".sc-duet-combobox-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;width:auto;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#00294d}.duet-combobox-list.sc-duet-combobox{position:absolute;top:calc(100% - 12px);display:none;overflow:hidden;background:white;border-radius:0 4px;box-shadow:0 2px 10px 0 rgba(0, 41, 77, 0.1)}.duet-combobox-list.open.sc-duet-combobox{z-index:700;display:block}.duet-combobox-list.sc-duet-combobox .listbox.sc-duet-combobox{max-height:200px;padding:0.75rem 0;margin:0;overflow-y:scroll;font-weight:600;list-style:none;cursor:pointer;scroll-behavior:smooth}.duet-combobox-list.sc-duet-combobox .listbox.sc-duet-combobox .list-item.sc-duet-combobox{padding:4px 0}.duet-combobox-list.sc-duet-combobox .listbox.sc-duet-combobox .list-item.sc-duet-combobox:not(.selected){padding-left:16px}.duet-combobox-list.sc-duet-combobox .listbox.sc-duet-combobox .list-item.sc-duet-combobox:not(.selected) .highlight.sc-duet-combobox{text-decoration:underline}.duet-combobox-list.sc-duet-combobox .listbox.sc-duet-combobox .list-item.option.sc-duet-combobox .option-link.sc-duet-combobox{display:block;width:100%}.duet-combobox-list.sc-duet-combobox .listbox.sc-duet-combobox .list-item.option.sc-duet-combobox .option-tags.sc-duet-combobox{float:right;padding-right:0.875rem;font-weight:400;color:#909599}.duet-combobox-list.sc-duet-combobox .listbox.sc-duet-combobox .list-item.option-link.sc-duet-combobox{display:block;width:100%}.duet-combobox-list.sc-duet-combobox .listbox.sc-duet-combobox .list-item.selected.sc-duet-combobox{padding-left:0;background:#cde5f1}.duet-combobox-list.sc-duet-combobox .listbox.sc-duet-combobox .list-item.selected.option.sc-duet-combobox .option-icon.sc-duet-combobox{padding:0 8px 0 8px}.duet-combobox-list.sc-duet-combobox .listbox.sc-duet-combobox .list-item.selected.option.sc-duet-combobox .option-tags.sc-duet-combobox{color:#909599}.duet-combobox-list.sc-duet-combobox .listbox.sc-duet-combobox .list-item.active.sc-duet-combobox,.duet-combobox-list.sc-duet-combobox .listbox.sc-duet-combobox .list-item.sc-duet-combobox:focus,.duet-combobox-list.sc-duet-combobox .listbox.sc-duet-combobox .list-item.sc-duet-combobox:hover{color:white;background:#0077b3}.duet-combobox-list.sc-duet-combobox .listbox.sc-duet-combobox .list-item.active.sc-duet-combobox .option-tags.sc-duet-combobox,.duet-combobox-list.sc-duet-combobox .listbox.sc-duet-combobox .list-item.sc-duet-combobox:focus .option-tags.sc-duet-combobox,.duet-combobox-list.sc-duet-combobox .listbox.sc-duet-combobox .list-item.sc-duet-combobox:hover .option-tags.sc-duet-combobox{color:#e1e3e6}";
4427
+
4428
+ const DuetCombobox$1 = class extends H {
4429
+ constructor() {
4430
+ super();
4431
+ this.__registerHost();
4432
+ this.duetChange = createEvent$2(this, "duetChange", 3);
4433
+ // Safari doesnt properly support aria-activedecendatn, the code associated with this bool is a workaround for that,
4434
+ // this should be removed when Safari fixes the issue
4435
+ // see: https://a11ysupport.io/tests/apg__aria-1-2-combobox-with-list-autocomplete-example#assertion-aria-aria-activedescendant_attribute-convey_value-aria-combobox_role-vo_macos-safari
4436
+ this.isSafari = false;
4437
+ this.resizeObserver = new ResizeObserver(debounce(entries => {
4438
+ var _a, _b;
4439
+ // otherwise, something is wrong, expecting 1 element only
4440
+ if ((entries === null || entries === void 0 ? void 0 : entries.length) === 1) {
4441
+ const currentWidth = (_b = (_a = entries[0]) === null || _a === void 0 ? void 0 : _a.target) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().width;
4442
+ this.listContainer.style.width = `${currentWidth + 1}px`;
4443
+ // this.listElement.style.width = `${currentWidth + 1}px`
4444
+ }
4445
+ }, 100));
4446
+ this.processedItems = null;
4447
+ this.inputWidth = 0;
4448
+ this.inputValue = "";
4449
+ this.selectionMsg = "";
4450
+ this.listOpen = false;
4451
+ // the selected item is based upon the DuetComboboxItem.id value
4452
+ this.selectedItems = new Set();
4453
+ // the activeItem number is based upon the array.index of the array stored in processedItems
4454
+ this.activeItem = undefined;
4455
+ /**
4456
+ * Placeholder defaults
4457
+ * @default { fi: "pp.kk.vvvv", en: "dd.mm.yyyy", sv: "dd.mm.åååå" }
4458
+ */
4459
+ this.accessibleLabelDefaults = {
4460
+ en: {
4461
+ heading: "Select:",
4462
+ item: "{name}, ({current} of {total})",
4463
+ itemFiltered: "{name}, ({current} of {total}, {hiddenItems} filtered)",
4464
+ },
4465
+ fi: {
4466
+ heading: "Valitse:",
4467
+ item: "{name}, ({current}/{total})",
4468
+ itemFiltered: "{name}, ({current}/{total}, {hiddenItems} suodatettu)",
4469
+ },
4470
+ sv: {
4471
+ heading: "Välj:",
4472
+ item: "{name}, ({current} av {total})",
4473
+ itemFiltered: "{name}, ({current} av {total}, {hiddenItems} filtrerade)",
4474
+ },
4475
+ };
4476
+ /**
4477
+ * Hint text to display before the user types into the date picker input.
4478
+ * @default {
4479
+ * heading: "Valitse:",
4480
+ * item: "{0}, ({1}/{2})",
4481
+ * itemFiltered: "{0}, ({1}/{2} - {3} suodatettu"
4482
+ * }
4483
+ */
4484
+ this.accessibleLabels = getLocaleString(parsePossibleJSON(this.accessibleLabelDefaults), getLanguage());
4485
+ /**
4486
+ * Theme of the combobox.
4487
+ */
4488
+ this.theme = "";
4489
+ /**
4490
+ * Force the user to make a selection (typing things in the input field will only be used for list search)
4491
+ */
4492
+ this.force = false;
4493
+ /**
4494
+ * A hook to overwrite how the values are displayed in the input field after a User select an item
4495
+ * @example (item) => `${item.name} (${item.value})`
4496
+ * @default undefined
4497
+ */
4498
+ this.formatter = (item) => item && item.name ? item.name : "";
4499
+ }
4500
+ activeItemHandler(state) {
4501
+ this.input.accessibleActiveDescendant = this.listOpen && (state || state === 0) ? `active_item` : "";
4502
+ }
4503
+ handleDocumentClick(e) {
4504
+ //we want to remove all user text if they have NOT selected from the dropdown
4505
+ const path = e.composedPath();
4506
+ const isClickOutside = path.every(el => el !== this.element);
4507
+ if (isClickOutside) {
4508
+ this.updateInputText(true);
4509
+ this.listOpen = false;
4510
+ }
4511
+ }
4512
+ /**
4513
+ * Exposes a formatter function to format the item value displayed after a user selects an item
4514
+ * @param item: DuetComboboxItem
4515
+ */
4516
+ async formatItem(item) {
4517
+ return this.formatter(item);
4518
+ }
4519
+ /**
4520
+ * Component lifecycle events.
4521
+ */
4522
+ componentWillLoad() {
4523
+ inheritGlobalTheme(this);
4524
+ }
4525
+ connectedCallback() {
4526
+ if (/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {
4527
+ this.isSafari = true;
4528
+ }
4529
+ this.items = this.processedItems = parsePossibleJSON(this.items);
4530
+ this.input = this.element.querySelector("duet-input");
4531
+ this.input.addEventListener("duetChange", this.updateInputValue.bind(this));
4532
+ this.input.addEventListener("click", () => {
4533
+ this.inputValue.length ? (this.listOpen = true) : (this.listOpen = false);
4534
+ });
4535
+ this.element.addEventListener("keydown", this.handleInputKeyDownEvent.bind(this));
4536
+ //add correct aria attributes to the input element
4537
+ this.input.accessibleAutocomplete = "list";
4538
+ this.input.accessibleControls = "duet-combobox-list-element";
4539
+ }
4540
+ disconnectedCallback() {
4541
+ this.input.removeEventListener("duetChange", this.updateInputValue.bind(this));
4542
+ this.input.removeEventListener("click", () => this.inputValue.length ? (this.listOpen = true) : (this.listOpen = false));
4543
+ this.element.removeEventListener("keydown", this.handleInputKeyDownEvent.bind(this));
4544
+ this.listElement.removeEventListener("click", e => {
4545
+ e.stopPropagation();
4546
+ });
4547
+ this.resizeObserver.disconnect();
4548
+ }
4549
+ componentDidLoad() {
4550
+ // observe resize events to dynamically adjust size of dropdown area
4551
+ this.resizeObserver.observe(this.input);
4552
+ this.listElement.addEventListener("click", e => {
4553
+ e.stopPropagation();
4554
+ });
4555
+ }
4556
+ /**
4557
+ * Updates the input text based on the selected/clicked items.
4558
+ * @param event - event
4559
+ *'param item: DuetComboboxItem - the item that was selected
4560
+ */
4561
+ onListClick(e, item) {
4562
+ e.preventDefault();
4563
+ // update selected item with id
4564
+ this.updateSelectedItems(item.id);
4565
+ this.listOpen = false;
4566
+ return this.listOpen;
4567
+ }
4568
+ /**
4569
+ * Helper function that checks inputs in the field, compares it with the item list and returns true when inputvalue matches selectedItem id
4570
+ * TODO: this should be disabled in multiple mode
4571
+ */
4572
+ shouldListBeFiltered() {
4573
+ if (this.selectedItems.size && this.input.value === this.inputValue) {
4574
+ const item = this.items.filter(item => this.selectedItems.has(item.id));
4575
+ return !(this.formatter(item).toLowerCase() === this.input.value.toLowerCase());
4576
+ }
4577
+ return true;
4578
+ }
4579
+ /**
4580
+ * Helper function that return correct collection depending on filter status returend by shouldListBeFiltered
4581
+ */
4582
+ returnFilteredOrNonFiltered() {
4583
+ return this.processedItems
4584
+ ? this.shouldListBeFiltered()
4585
+ ? this.getFilteredItems()
4586
+ : this.sortFilteredItems(this.processedItems)
4587
+ : [];
4588
+ }
4589
+ /**
4590
+ * Updates the selected items based on the item id.
4591
+ * @param id
4592
+ * @private
4593
+ */
4594
+ async updateSelectedItems(id) {
4595
+ // for a multiple scenario wrap this in an if/else and just don't clear here
4596
+ this.selectedItems.clear();
4597
+ if (this.selectedItems) {
4598
+ if (this.selectedItems.has(id)) {
4599
+ this.selectedItems.delete(id);
4600
+ }
4601
+ else {
4602
+ this.selectedItems.add(id);
4603
+ }
4604
+ }
4605
+ await this.updateInputText();
4606
+ }
4607
+ /**
4608
+ * Updates the input text based on the selected/clicked items.
4609
+ * @param bool -override to clear if invoked by "click outside"
4610
+ */
4611
+ async updateInputText(isBlurred = false) {
4612
+ const item = this.selectedItems.size === 0 ? [] : this.items.filter(item => this.selectedItems.has(item.id));
4613
+ if (this.selectedItems.size === 1) {
4614
+ this.input.value = ""; // set value to empty so that cursor position follows accordingly
4615
+ this.input.value = await this.formatItem(item[0]);
4616
+ this.input.scrollLeft = this.input.scrollWidth;
4617
+ this.activeItem = undefined;
4618
+ this.value = await this.formatItem(item[0]);
4619
+ this.duetChange.emit({
4620
+ value: item[0].value,
4621
+ item: item[0],
4622
+ component: "duet-combobox",
4623
+ });
4624
+ }
4625
+ else if (isBlurred && this.selectedItems.size === 0) {
4626
+ //if nothing is selected and a user clicks outside, we want the input field to clearly illustrate that nothing was selected
4627
+ if (this.force) {
4628
+ this.inputValue = "";
4629
+ this.input.value = "";
4630
+ }
4631
+ this.activeItem = undefined;
4632
+ }
4633
+ this.listOpen = false;
4634
+ }
4635
+ updateInputValue(e) {
4636
+ var _a;
4637
+ this.inputValue = e.detail.value;
4638
+ this.listOpen = String(this.inputValue).length > 0 && ((_a = this.getFilteredItems()) === null || _a === void 0 ? void 0 : _a.length) > 0;
4639
+ }
4640
+ handleInputKeyDownEvent(e) {
4641
+ //if selection is made, close the list and update internal and external values
4642
+ // this should be set to undefined on everything BUT up/down arrow according to the aria 1.1 specs
4643
+ // https://www.w3.org/TR/wai-aria-practices-1.1/#combobox
4644
+ this.input.accessibleActiveDescendant = undefined;
4645
+ if (isEnterKey(e)) {
4646
+ e.preventDefault();
4647
+ this.selectActiveItem();
4648
+ this.listOpen = false;
4649
+ return;
4650
+ }
4651
+ //tabbing out or escaping, restore initial state
4652
+ if (isEscapeKey(e) || isTabKey(e)) {
4653
+ this.updateInputText(true);
4654
+ this.listOpen = false;
4655
+ return;
4656
+ }
4657
+ //handle arrow up/down navigation
4658
+ let nextActiveItem = this.activeItem;
4659
+ if (isArrowUpKey(e)) {
4660
+ e.preventDefault();
4661
+ nextActiveItem = this.activeItem - 1;
4662
+ }
4663
+ else if (isArrowDownKey(e)) {
4664
+ e.preventDefault();
4665
+ nextActiveItem = this.listOpen ? this.activeItem + 1 : this.activeItem;
4666
+ this.listOpen = true;
4667
+ }
4668
+ if (isArrowDownKey(e) || isArrowUpKey(e)) {
4669
+ const listItems = this.shouldListBeFiltered() ? this.getFilteredItems() : this.processedItems;
4670
+ if (nextActiveItem < 0 || !nextActiveItem) {
4671
+ nextActiveItem = 0;
4672
+ }
4673
+ if (nextActiveItem >= listItems.length) {
4674
+ nextActiveItem = listItems.length - 1;
4675
+ }
4676
+ // this should be set to undefined on everything BUT up/down arrow according to the aria 1.1 specs
4677
+ // https://www.w3.org/TR/wai-aria-practices-1.1/#combobox
4678
+ this.input.accessibleActiveDescendant = "active_item";
4679
+ this.activeItem = nextActiveItem;
4680
+ this.scrollToActive();
4681
+ }
4682
+ this.announceActive();
4683
+ return;
4684
+ }
4685
+ selectActiveItem() {
4686
+ if (this.activeItem === undefined) {
4687
+ return;
4688
+ }
4689
+ const filteredItem = this.returnFilteredOrNonFiltered();
4690
+ const item = filteredItem[this.activeItem];
4691
+ this.updateSelectedItems(item.id);
4692
+ }
4693
+ announceActive(items) {
4694
+ if (!items) {
4695
+ items = this.returnFilteredOrNonFiltered();
4696
+ }
4697
+ if (this.activeItem === undefined || this.activeItem === -1) {
4698
+ return;
4699
+ }
4700
+ const item = items[this.activeItem];
4701
+ this.selectionMsg = this.formatLabel(item, items.length, this.items.length);
4702
+ }
4703
+ //function that scrolls to the li element with the class "active"
4704
+ scrollToActive() {
4705
+ const activeElement = this.listElement.querySelector(".active");
4706
+ if (activeElement) {
4707
+ activeElement.scrollIntoView({
4708
+ behavior: "smooth",
4709
+ block: "center",
4710
+ });
4711
+ }
4712
+ }
4713
+ formatLabel(item, length, itemsLength) {
4714
+ if (!item || itemsLength === undefined) {
4715
+ return "";
4716
+ }
4717
+ const labelString = length === itemsLength ? this.accessibleLabels.item : this.accessibleLabels.itemFiltered;
4718
+ return labelString
4719
+ .replace("{name}", String(item.name))
4720
+ .replace("{current}", String(this.activeItem + 1))
4721
+ .replace("{total}", String(length))
4722
+ .replace("{hiddenItems}", String(itemsLength - length));
4723
+ }
4724
+ /**
4725
+ * Filter the items based on the input value
4726
+ */
4727
+ getFilteredItems() {
4728
+ // filter items based on user inputs
4729
+ const filteredItems = this.processedItems.filter(item =>
4730
+ // filter by name and value
4731
+ // if value contains inputvalue
4732
+ String(item.value).toLowerCase().includes(this.inputValue.toLowerCase()) ||
4733
+ // if name contains input value
4734
+ String(item.name).toLowerCase().includes(this.inputValue.toLowerCase()) ||
4735
+ // if the item is selected
4736
+ this.selectedItems.has(item.id));
4737
+ return this.sortFilteredItems(filteredItems);
4738
+ }
4739
+ /**
4740
+ * Sort the return from getFilteredItems so that any item with and item.id that matches this.selectedItems is placed first
4741
+ */
4742
+ sortFilteredItems(items) {
4743
+ if (items.length > 0) {
4744
+ items
4745
+ .filter(item => this.selectedItems.has(item.id))
4746
+ .forEach(item => {
4747
+ const index = items.indexOf(item);
4748
+ items.splice(index, 1);
4749
+ items.unshift(item);
4750
+ });
4751
+ }
4752
+ return items;
4753
+ }
4754
+ /**
4755
+ * render() function
4756
+ * Always the last one in the class.
4757
+ */
4758
+ render() {
4759
+ const selectElements = this.returnFilteredOrNonFiltered();
4760
+ return (h$1(Host, { role: "combobox", "aria-expanded": this.listOpen ? "true" : "false", "aria-owns": this.listOpen ? "duet-combobox-list-element" : undefined, "aria-haspopup": "listbox", class: {
4761
+ "duet-combobox": true,
4762
+ [`duet-theme-${this.theme}`]: true,
4763
+ } }, h$1("slot", null), this.isSafari && (h$1("duet-visually-hidden", { "aria-live": "assertive", "aria-atomic": "true", "aria-relevant": "all" }, this.selectionMsg)), h$1("div", { role: "list", class: {
4764
+ "duet-combobox-list": true,
4765
+ open: this.listOpen,
4766
+ }, ref: el => (this.listContainer = el) }, h$1("ul", { role: "listbox", ref: el => (this.listElement = el), id: "duet-combobox-list-element", class: "listbox" }, this.processedItems &&
4767
+ selectElements.map((item, index) => {
4768
+ return (h$1(DuetComboBoxSelect, { item: item, active: index === this.activeItem, selected: this.selectedItems.has(item.id), search: this.inputValue, total: selectElements.length, clickHandler: e => this.onListClick(e, item), label: this.formatLabel(item, this.returnFilteredOrNonFiltered().length, this.items.length) }));
4769
+ })))));
4770
+ }
4771
+ get element() { return this; }
4772
+ static get watchers() { return {
4773
+ "activeItem": ["activeItemHandler"]
4774
+ }; }
4775
+ static get style() { return duetComboboxCss; }
4776
+ };
4777
+
4391
4778
  const duetCookieConsentCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:fixed;right:0;bottom:0;left:0;z-index:950;display:block;width:100%;box-shadow:0 2px 20px 0 rgba(0, 0, 0, 0.2)}@media (min-width: 48em){:host{right:28px;bottom:28px;left:auto;width:25rem}}:host(:focus){outline:0}:host(.user-is-tabbing:focus){border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing.duet-theme-turva:focus){box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-cookie-consent{padding:20px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;color:white !important;background-color:rgba(0, 21, 39, 0.9)}@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none){.duet-cookie-consent{background:rgba(0, 21, 39, 0.8);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}.duet-cookie-consent.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";background-color:rgba(12, 14, 29, 0.9)}@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none){.duet-cookie-consent.duet-theme-turva{background:rgba(12, 14, 29, 0.8)}}@media (min-width: 48em){.duet-cookie-consent{padding:20px;border-radius:4px}}.duet-cookie-consent-content{display:flex;align-items:center;max-width:1110px;margin:0 auto}.duet-cookie-consent-content .expand{flex:1}::slotted(a){font-weight:600;color:white !important;text-decoration:underline;white-space:nowrap}::slotted(a[target=_blank]){padding-right:16px;background:url(\"data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjZmZmIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwLjUgMmExLjUgMS41IDAgMDEuMTQgM0gzLjc1Yy0uMzggMC0uNy4yOC0uNzQuNjVsLS4wMS4xdjE0LjVjMCAuMzguMjguNy42NS43NGwuMS4wMWgxNC41Yy4zOCAwIC43LS4yOC43NC0uNjVsLjAxLS4xdi02Ljg5YTEuNSAxLjUgMCAwMTMgMHY2Ljg5QTMuNzUgMy43NSAwIDAxMTguMjUgMjRIMy43NUEzLjc1IDMuNzUgMCAwMTAgMjAuMjVWNS43NUEzLjc1IDMuNzUgMCAwMTMuNzUgMnptMTItMmMuNzggMCAxLjQyLjYgMS41IDEuMzZWNy41YTEuNSAxLjUgMCAwMS0zIC4xNFY1LjEybC01LjQ0IDUuNDRhMS41IDEuNSAwIDAxLTIuMjItMmwuMS0uMTJMMTguODggM0gxNi41QTEuNSAxLjUgMCAwMTE1IDEuNjRWMS41YzAtLjc4LjYtMS40MiAxLjM2LTEuNWguMTR6Ii8+PC9zdmc+\") no-repeat right 50%;background-size:12px 10px}::slotted(a:focus){outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva ::slotted(a:focus){outline:0;box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}";
4392
4779
 
4393
4780
  const DuetCookieConsent$1 = class extends H {
@@ -5694,9 +6081,9 @@ const DuetFooter$1 = class extends H {
5694
6081
  "duet-m-0": this.margin === "none",
5695
6082
  "duet-theme-turva": this.theme === "turva",
5696
6083
  "duet-footer-simple": this.variation === "simple",
5697
- } }, h$1("div", { class: "duet-footer-wrapper" }, h$1("div", { class: "duet-footer-top" }, this.variation !== "simple" && (h$1("duet-logo", { href: this.logoHref, onClick: this.handleLogoClick, size: "large", inverse: true, language: this.language, theme: this.theme })), this.processedItems &&
6084
+ } }, h$1("div", { class: "duet-footer-wrapper" }, h$1("div", { class: "duet-footer-top", part: "top" }, this.variation !== "simple" && (h$1("duet-logo", { href: this.logoHref, onClick: this.handleLogoClick, size: "large", inverse: true, language: this.language, theme: this.theme })), this.processedItems &&
5698
6085
  this.variation !== "simple" &&
5699
- this.processedItems.map(item => (h$1("a", { class: "duet-footer-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleItemClick(event, item) }, h$1("div", { class: "duet-footer-icon" }, h$1("duet-icon", { size: "medium", margin: "none", name: item.icon, color: "currentColor" })), h$1("span", null, item.label), item.external && h$1("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), h$1("div", { class: "duet-footer-arrow" }, item.external ? (h$1("duet-icon", { icon: actionNewWindow.svg, size: "xx-small", margin: "none", color: "currentColor" })) : (h$1("duet-icon", { icon: actionArrowRight.svg, size: "auto", margin: "none", color: "currentColor" }))))))), h$1("p", { class: "duet-footer-menu" }, h$1("span", { class: "duet-footer-copyright" }, `${copyrightLabel} ${new Date().getFullYear()}`), this.processedMenu && (h$1(Fragment, null, h$1("span", { class: "duet-footer-divider", role: "presentation", "aria-hidden": "true" }, "/"), this.processedMenu.map(item => (h$1("a", { href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleMenuClick(event, item) }, item.label, item.external && (h$1(Fragment, null, h$1("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), h$1("div", { class: "duet-footer-external" }, h$1("duet-icon", { icon: actionNewWindowSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))), h$1("span", { class: "duet-footer-divider", role: "presentation", "aria-hidden": "true" }, "/"))))))))));
6086
+ this.processedItems.map(item => (h$1("a", { class: "duet-footer-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleItemClick(event, item) }, h$1("div", { class: "duet-footer-icon" }, h$1("duet-icon", { size: "medium", margin: "none", name: item.icon, color: "currentColor" })), h$1("span", null, item.label), item.external && h$1("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), h$1("div", { class: "duet-footer-arrow" }, item.external ? (h$1("duet-icon", { icon: actionNewWindow.svg, size: "xx-small", margin: "none", color: "currentColor" })) : (h$1("duet-icon", { icon: actionArrowRight.svg, size: "auto", margin: "none", color: "currentColor" }))))))), h$1("p", { class: "duet-footer-menu", part: "menu" }, h$1("span", { class: "duet-footer-copyright" }, `${copyrightLabel} ${new Date().getFullYear()}`), this.processedMenu && (h$1(Fragment$1, null, h$1("span", { class: "duet-footer-divider", role: "presentation", "aria-hidden": "true" }, "/"), this.processedMenu.map(item => (h$1("a", { href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleMenuClick(event, item) }, item.label, item.external && (h$1(Fragment$1, null, h$1("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), h$1("div", { class: "duet-footer-external" }, h$1("duet-icon", { icon: actionNewWindowSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))), h$1("span", { class: "duet-footer-divider", role: "presentation", "aria-hidden": "true" }, "/"))))))))));
5700
6087
  }
5701
6088
  get element() { return this; }
5702
6089
  static get watchers() { return {
@@ -6160,7 +6547,7 @@ const DuetHeaderHamburger = () => (h("div", { class: "duet-header-hamburger" },
6160
6547
  h("span", { class: "duet-header-bar" }),
6161
6548
  h("span", { class: "duet-header-bar" })));
6162
6549
 
6163
- const duetHeaderCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}@supports (position: -webkit-sticky){:host{position:-webkit-sticky;top:-4rem;z-index:400}}@supports (position: sticky){:host{position:sticky;top:-4rem;z-index:400}}@supports (position: -webkit-sticky){:host(.duet-header-multi-level-desktop-variation){top:0}}@supports (position: sticky){:host(.duet-header-multi-level-desktop-variation){top:0}}.duet-header-reserved-space{height:4rem}@media (min-width: 62em){.duet-header-reserved-space.duet-with-links{height:7rem}}.duet-header{-webkit-user-select:none;user-select:none;position:fixed;top:0;left:0;z-index:400;display:block;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left}.duet-header.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}@media (min-width: 62em){.duet-header.duet-theme-turva{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13)}}@media (min-width: 62em){.duet-header{position:absolute;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07)}.duet-header.duet-header-inactive{position:fixed}}.duet-header *{-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}.duet-header-top{position:relative;z-index:200;display:flex;flex-direction:row;align-items:center;width:100%;height:4rem;padding:0 16px;background:white;border-bottom:1px solid #e1e3e6;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07)}@media (min-width: 62em){.duet-header-top{z-index:100;padding:0 28px;box-shadow:none}.duet-header-top duet-logo{padding-right:4px}}@media (min-width: 106.25em){.duet-header-top{padding:0 48px}}.duet-theme-turva .duet-header-top{border-color:#e4e4e6;box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13)}@media (min-width: 62em){.duet-theme-turva .duet-header-top{box-shadow:none}}.duet-theme-turva .duet-header-top duet-logo{left:-80px !important;margin-top:-8px !important}.duet-header-top .duet-header-region{max-width:200px;padding-left:16px;margin-top:1px;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:1px solid #cfd2d4}.duet-theme-turva .duet-header-top .duet-header-region{border-color:#cfcfd1}@media (max-width: 35.9375em){.duet-header-top .duet-header-region{display:none}}@media (min-width: 62em){.duet-header-top .duet-header-region{padding-left:19px}}.duet-header-bottom{position:fixed;top:4rem;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;width:100%;overflow-y:auto;visibility:hidden;background:#f3f9fc;opacity:0;-webkit-overflow-scrolling:touch}.duet-theme-turva .duet-header-bottom{background:#f5f5f7}@media (min-width: 62em){.duet-header-bottom{position:relative;top:auto;bottom:auto;z-index:200;flex-direction:row;overflow:visible;visibility:visible;background:white;opacity:1}.duet-header-bottom.duet-header-inactive{position:relative}}.duet-header-bottom.active{visibility:visible;opacity:1;transition:opacity 300ms ease, visibility 300ms ease}@media (min-width: 62em){.duet-header-bottom{position:relative;transition:none !important}}.duet-header-items,.duet-header-bottom-utils,.duet-header-utils{opacity:0;transition:transform 600ms ease, opacity 600ms ease;transform:translateY(-28px)}@media (min-width: 62em){.duet-header-items,.duet-header-bottom-utils,.duet-header-utils{opacity:1;transition:none !important;transform:none}}.active .duet-header-items,.active .duet-header-bottom-utils,.active .duet-header-utils{opacity:1;transform:translateY(0)}.duet-header-items{position:relative;z-index:300;display:block;width:100%;font-size:1rem;font-weight:400;line-height:1.5;background:white}@media (min-width: 62em){.duet-header-items{z-index:100;display:flex;flex-direction:row;padding:0 21.5384615385px}}@media (min-width: 106.25em){.duet-header-items{padding-left:43.6363636364px}}.duet-header-items .duet-header-item-container{border-bottom:1px solid #e1e3e6;border-radius:0}@media (min-width: 62em){.duet-header-items .duet-header-item-container{border:0}}.duet-header-items .duet-header-second-level .duet-header-item{padding:0 40px;border:0}.duet-header-items .duet-header-second-level .duet-header-button{border:0}.duet-header-items .duet-header-second-level .duet-header-dropdown-content{padding:0;border:0}.duet-header-items .duet-header-third-level .duet-header-item{padding:0 75px}.duet-header-items .duet-header-item{position:relative;display:flex;align-items:center;width:100%;padding:0 20px;overflow:hidden;font-size:1rem;line-height:48px;color:#00294d;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 62em){.duet-header-items .duet-header-item{border-radius:4px}}.duet-theme-turva .duet-header-items .duet-header-item{font-weight:600;color:#171c3a;border-color:#e1e3e6}.duet-header-items .duet-header-item:hover{color:#004d80}.duet-theme-turva .duet-header-items .duet-header-item:hover{color:#444445}.duet-header-items .duet-header-item:focus{outline:0}:host(.user-is-tabbing) .duet-header-items .duet-header-item:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-header-items .duet-header-item:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 62em){.duet-header-items .duet-header-item{width:auto;max-width:300px;padding:0 12px;overflow:hidden;font-size:0.875rem;text-overflow:ellipsis;border:0}}.duet-header-items .duet-header-item.active{color:#0077b3}.duet-theme-turva .duet-header-items .duet-header-item.active{color:#c60c30}.duet-header-items .duet-header-item.active:hover{color:#0077b3}.duet-theme-turva .duet-header-items .duet-header-item.active:hover{color:#c60c30}.duet-header-items .duet-header-item.active::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}.duet-theme-turva .duet-header-items .duet-header-item.active::after{background:#c60c30}@media (min-width: 62em){.duet-header-items .duet-header-item.active::after{top:auto;left:12px;width:calc(100% - 24px);height:3px}}.duet-header-toggle{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-right:-8px;margin-left:auto;cursor:pointer;border-radius:4px;-webkit-appearance:none;appearance:none}.duet-header-toggle:focus{outline:0}:host(.user-is-tabbing) .duet-header-toggle:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-header-toggle:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 62em){.duet-header-toggle{display:none}}.duet-header-hamburger{position:relative;width:24px;height:24px;margin-top:5px !important;pointer-events:none;transition:0.4s ease-in-out;backface-visibility:hidden}.duet-header-hamburger .duet-header-bar{position:absolute;left:0;display:block;width:100%;height:2px;background:#00294d;border-radius:20rem;opacity:1;transition:0.25s ease-in-out;transform:rotate(0deg) scale(0.98)}.duet-theme-turva .duet-header-hamburger .duet-header-bar{background:#171c3a}.duet-header-hamburger .duet-header-bar:nth-child(1){top:0}.duet-header-hamburger .duet-header-bar:nth-child(2),.duet-header-hamburger .duet-header-bar:nth-child(3){top:7px}.duet-header-hamburger .duet-header-bar:nth-child(4){top:14px}button.active .duet-header-hamburger .duet-header-bar:nth-child(1){top:7px;left:50%;width:0%}button.active .duet-header-hamburger .duet-header-bar:nth-child(2){transform:rotate(45deg)}button.active .duet-header-hamburger .duet-header-bar:nth-child(3){transform:rotate(-45deg)}button.active .duet-header-hamburger .duet-header-bar:nth-child(4){top:7px;left:50%;width:0%}.duet-header-utils{display:flex;flex-direction:column;width:100%}@media (min-width: 62em){.duet-header-utils{position:absolute;top:-4rem;right:0;z-index:999999999;flex-direction:row;align-items:center;justify-content:space-between;width:auto;margin-right:20px}}@media (min-width: 106.25em){.duet-header-utils{margin-right:36px}}@media (min-width: 62em){.duet-header-bottom-utils{position:absolute;top:0;right:0;z-index:999999999;margin-right:20px}}@media (min-width: 106.25em){.duet-header-bottom-utils{margin-right:36px}}button{font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-theme-turva button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-header-button{position:relative;display:flex;align-items:center;width:100%;height:48px;padding:0 20px;overflow:hidden;font-size:1rem;font-weight:400;line-height:48px;color:#00294d;text-align:left;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-bottom:1px solid #e1e3e6;border-radius:4px;-webkit-appearance:none;appearance:none}.duet-theme-turva .duet-header-button{color:#171c3a;border-color:#e4e4e6}.duet-header-button:hover{color:#004d80}.duet-theme-turva .duet-header-button:hover{color:#444445}.duet-header-button:focus{outline:0}:host(.user-is-tabbing) .duet-header-button:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-header-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-header-button:active{opacity:0.75}@media (min-width: 62em){.duet-header-button{width:auto;max-width:200px;height:4rem;padding:0 16px;font-size:0.875rem;line-height:4rem;border:0}.duet-header-button::before{position:absolute;top:50%;right:0;width:1px;height:20px;content:\"\";background:#cfd2d4;transform:translateY(-50%)}.duet-theme-turva .duet-header-button::before{background:#cfcfd1}}.duet-header-button.active{color:#0077b3;border-radius:0}.duet-theme-turva .duet-header-button.active{color:#c60c30}.duet-header-button.active:hover{color:#0077b3}.duet-theme-turva .duet-header-button.active:hover{color:#c60c30}@media (min-width: 62em){.duet-header-button.active::after{position:absolute;top:0;bottom:0;left:0;width:3px;content:\"\";background:#0077b3}.duet-theme-turva .duet-header-button.active::after{color:#c60c30}}.duet-header-utils .duet-header-button.duet-header-logout{align-self:center;justify-content:center;width:auto;height:2.5rem;margin:2.25rem 0;font-weight:600;border:2px solid #00294d;border-radius:20rem}.duet-theme-turva .duet-header-utils .duet-header-button.duet-header-logout{border-color:#171c3a}.duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon{margin-right:0.5rem}.duet-header-utils .duet-header-button.duet-header-logout .duet-header-button-label{font-size:0.875rem}@media (min-width: 62em){.duet-header-utils .duet-header-button.duet-header-logout{height:4rem;margin:0;font-weight:400;border:0}.duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon{margin-right:0.75rem}}.duet-header-no-action{pointer-events:none}.duet-header-user-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 62em){.duet-header-utils>*:last-child::before,.duet-header-utils>*:last-child button::before{display:none}}@media (min-width: 62em){.duet-header-utils>*:last-child .duet-header-dropdown-content{right:0;left:auto}}.duet-header-language{text-transform:uppercase}.duet-header-language.active,.duet-header-language.active:hover,.duet-header-contact.active,.duet-header-contact.active:hover{color:inherit}.duet-theme-turva .duet-header-language.active,.duet-theme-turva .duet-header-language.active:hover,.duet-theme-turva .duet-header-contact.active,.duet-theme-turva .duet-header-contact.active:hover{color:inherit}.duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active:hover::after,.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active:hover::after{width:0}@media (min-width: 62em){.duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active:hover::after,.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active:hover::after{width:100%}}.duet-header-icon{display:inline-flex;min-width:12px;margin-right:12px;font-size:0;line-height:normal;vertical-align:baseline}@media (min-width: 62em){.duet-header-icon{margin-right:8px}}.duet-header-caret{position:absolute;top:50%;right:20px;display:flex;width:10px;height:10px;margin-left:8px;line-height:normal;pointer-events:none;transition:300ms ease;transform:translateY(-50%);transform-origin:50% 50%}@media (min-width: 62em){.duet-header-caret{width:7px;height:7px}}.duet-header-caret duet-icon{width:10px}.duet-header-dropdown-toggle.active .duet-header-caret{transform:translateY(-50%) rotate(180deg)}.duet-header-dropdown-toggle:focus{outline:0}:host(.user-is-tabbing) .duet-header-dropdown-toggle:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-header-dropdown-toggle:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-header-dropdown-toggle:active{outline:none}.duet-header-badge{display:inline-block;width:6px;height:6px;margin-top:-1rem;margin-left:5px;vertical-align:top;background:#f7b228;border-radius:50%;box-shadow:0 0 0 1px #c18b1f}.duet-theme-turva .duet-header-badge{background:#faa40f}.active-bar{color:#0077b3}.active-bar::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}.duet-theme-turva .active-bar::after{background:#c60c30}.duet-header-dropdown{position:relative}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-toggle{z-index:200;padding-right:36px;overflow:hidden;transition:border 300ms ease}}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-toggle::after{position:absolute;top:auto;bottom:0;left:0;display:block !important;width:100%;height:3px !important;content:\"\";background:#0077b3;transition:300ms ease;transform:translateY(3px)}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle::after{background:#c60c30}}.duet-header-dropdown .duet-header-dropdown-toggle.active,.duet-header-dropdown .duet-header-dropdown-toggle.active:hover{border-bottom:1px solid #f5f8fa}.duet-header-dropdown .duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active::after,.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after{background:#c60c30}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active,.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active:hover{border-color:#f5f5f7}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-toggle.active,.duet-header-dropdown .duet-header-dropdown-toggle.active:hover{color:#004d80;border:0}.duet-header-dropdown .duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after{position:absolute;top:auto;bottom:0;left:0;width:100%;height:3px;transform:translateY(0)}}.duet-header-dropdown .duet-header-dropdown-content{display:none;padding-bottom:16px;background:#f3f9fc;border-bottom:1px solid #e1e3e6}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content{background:#f5f5f7;border-color:#e1e3e6}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content{position:absolute;top:100%;left:0;z-index:600;display:block;min-width:150px;padding-top:16px;padding-left:0;visibility:hidden;border:0;border-radius:4px;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 4px 10px 0 rgba(0, 41, 77, 0.15);opacity:0;transition:300ms ease;transform:scale(0.85) translateZ(0) translateY(-20px)}}@media (min-width: 64.0625em){.duet-header-dropdown .duet-header-dropdown-content{min-width:170px}}.duet-header-dropdown .duet-header-dropdown-content.active{display:block}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content.active{visibility:visible;opacity:1;transform:translateZ(0) translateY(0)}}.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item){padding:3px 8px 4px !important;position:relative;display:block;width:100%;padding-right:16px;padding-left:48px !important;overflow:hidden;font-size:0.875rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left;text-decoration:none;white-space:nowrap;cursor:pointer;transition:300ms ease}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item){color:#171c3a}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item){padding-right:20px !important;padding-left:20px !important}}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):hover{background:#e6f2f8}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):hover{background:#f9e6ea}}.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus{outline:0}:host(.user-is-tabbing) .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active{padding-right:36px;font-weight:600;vertical-align:baseline}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active{font-weight:700}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active{color:white;background:#0077b3}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active{background:#c60c30}}.duet-header-dropdown .duet-header-dropdown-content .duet-header-link-external{margin-left:4px}.duet-header-back .duet-header-top{flex-direction:row;align-items:center;justify-content:center}.duet-header-back duet-button{position:absolute;top:50%;left:36px;transform:translateY(-50%)}@media (max-width: 35.9375em){.duet-header-back duet-button{left:20px;max-width:40px;padding:0 12px;overflow:hidden}}.duet-header-back .duet-header-toggle{display:none !important}.duet-header-skip{padding:15px 28px 16px !important;position:absolute;top:-100%;left:-100%;z-index:200;width:1px;min-width:190px;height:1px;overflow:hidden;font-weight:600;color:#0077b3;text-align:center;text-decoration:none;background:white;border-radius:4px;opacity:0}.duet-header-skip:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-header-skip:focus,.duet-header-skip:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-theme-turva .duet-header-skip{min-width:120px;color:#171c3a}@media (min-width: 106.25em){.duet-header-skip{margin-left:20px}}.duet-header-skip:focus{top:12px;left:20px;width:auto;height:auto;outline:0;opacity:1}.duet-header-multi-level-desktop{height:6rem}.duet-header-multi-level-desktop .duet-header-top{justify-content:space-between;height:6rem}.duet-header-multi-level-desktop .duet-header-button{height:6rem}.duet-header-multi-level-desktop .logo-and-segment{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;padding-top:1rem}.duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown{z-index:400;margin-left:2rem}.duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content{background:#f3f9fc}.duet-header-multi-level-desktop .logo-and-segment button{align-items:flex-start;height:2rem;font-weight:600;line-height:1rem}.duet-header-multi-level-desktop .logo-and-segment button::before{display:none}.duet-header-multi-level-desktop .logo-and-segment .duet-header-caret{top:25%}.duet-header-multi-level-desktop-nav{display:flex}.duet-header-multi-level-desktop-nav .duet-header-dropdown{position:static}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle{z-index:400;padding-right:1rem;font-size:1rem;font-weight:600}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active{color:#0077b3}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content{z-index:399;display:flex;justify-content:center;width:100%;height:4.5rem;padding:0;background:#f3f9fc;border-top:1px solid #e1e3e6;border-bottom:1px solid #e1e3e6;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07);transition:none}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:auto;min-width:6rem;height:100%;padding:0 1rem !important;font-weight:600}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a::after{position:absolute;top:auto;bottom:0;left:0;display:block !important;width:100%;height:3px;content:\"\";background:#0077b3;transition:300ms ease;transform:translateY(3px)}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active{font-weight:600;color:#0077b3;background:none}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active::after{transform:translateY(0)}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a .duet-header-icon{margin:0}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content .duet-header-badge{position:absolute;margin-top:-2rem;margin-right:-2.25rem}.duet-header-multi-level-desktop-nav button::before{display:none}.duet-header-multi-level-desktop-nav .duet-header-caret{display:none}.duet-header-multi-level-desktop-utils{display:flex;flex-basis:0;flex-grow:1;justify-content:flex-end}.duet-header-multi-level-desktop-utils>:last-child::before{display:none}.duet-header-multi-level-desktop-utils .duet-header-dropdown{z-index:400}.duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content{background:#f3f9fc}.duet-header-multi-level-desktop-utils .duet-header-button-label,.duet-header-multi-level-desktop-utils .duet-header-dropdown-label{display:none}@media (min-width: 64.0625em){.duet-header-multi-level-desktop-utils .duet-header-button-label,.duet-header-multi-level-desktop-utils .duet-header-dropdown-label{display:initial}}.duet-header-multi-level-desktop .duet-theme-turva .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content{background:#fcf3f4}.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active{color:#c60c30}.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content{background:#fcf3f4;border-color:#e4e4e6}.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a::after{background:#c60c30}.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active{color:#c60c30;background:none}.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content{background:#fcf3f4}";
6550
+ const duetHeaderCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}@supports (position: -webkit-sticky){:host{position:-webkit-sticky;top:-4rem;z-index:400}}@supports (position: sticky){:host{position:sticky;top:-4rem;z-index:400}}@supports (position: -webkit-sticky){:host(.duet-header-multi-level-desktop-variation){top:0}}@supports (position: sticky){:host(.duet-header-multi-level-desktop-variation){top:0}}.duet-header-reserved-space{height:4rem}@media (min-width: 62em){.duet-header-reserved-space.duet-with-links{height:7rem}}.duet-header{-webkit-user-select:none;user-select:none;position:fixed;top:0;left:0;z-index:400;display:block;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left}.duet-header.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}@media (min-width: 62em){.duet-header.duet-theme-turva{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13)}}@media (min-width: 62em){.duet-header{position:absolute;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07)}.duet-header.duet-header-inactive{position:fixed}}.duet-header *{-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}.duet-header-top{position:relative;z-index:200;display:flex;flex-direction:row;align-items:center;width:100%;height:4rem;padding:0 16px;background:white;border-bottom:1px solid #e1e3e6;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07)}@media (min-width: 62em){.duet-header-top{z-index:100;padding:0 28px;box-shadow:none}.duet-header-top duet-logo{padding-right:4px}}@media (min-width: 106.25em){.duet-header-top{padding:0 48px}}.duet-theme-turva .duet-header-top{border-color:#e4e4e6;box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13)}@media (min-width: 62em){.duet-theme-turva .duet-header-top{box-shadow:none}}.duet-theme-turva .duet-header-top duet-logo{left:-80px !important;margin-top:-8px !important}.duet-header-top .duet-header-region{max-width:200px;padding-left:16px;margin-top:1px;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:1px solid #cfd2d4}.duet-theme-turva .duet-header-top .duet-header-region{border-color:#cfcfd1}@media (max-width: 35.9375em){.duet-header-top .duet-header-region{display:none}}@media (min-width: 62em){.duet-header-top .duet-header-region{padding-left:19px}}.duet-header-bottom{position:fixed;top:4rem;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;width:100%;overflow-y:auto;visibility:hidden;background:#f3f9fc;opacity:0;-webkit-overflow-scrolling:touch}.duet-theme-turva .duet-header-bottom{background:#f5f5f7}@media (min-width: 62em){.duet-header-bottom{position:relative;top:auto;bottom:auto;z-index:200;flex-direction:row;overflow:visible;visibility:visible;background:white;opacity:1}.duet-header-bottom.duet-header-inactive{position:relative}}.duet-header-bottom.active{visibility:visible;opacity:1;transition:opacity 300ms ease, visibility 300ms ease}@media (min-width: 62em){.duet-header-bottom{position:relative;transition:none !important}}.duet-header-items,.duet-header-bottom-utils,.duet-header-utils{opacity:0;transition:transform 600ms ease, opacity 600ms ease;transform:translateY(-28px)}@media (min-width: 62em){.duet-header-items,.duet-header-bottom-utils,.duet-header-utils{opacity:1;transition:none !important;transform:none}}.active .duet-header-items,.active .duet-header-bottom-utils,.active .duet-header-utils{opacity:1;transform:translateY(0)}.duet-header-items{position:relative;z-index:300;display:block;width:100%;font-size:1rem;font-weight:400;line-height:1.5;background:white}@media (min-width: 62em){.duet-header-items{z-index:100;display:flex;flex-direction:row;padding:0 21.5384615385px}}@media (min-width: 106.25em){.duet-header-items{padding-left:43.6363636364px}}.duet-header-items .duet-header-item-container{border-bottom:1px solid #e1e3e6;border-radius:0}@media (min-width: 62em){.duet-header-items .duet-header-item-container{border:0}}.duet-header-items .duet-header-second-level .duet-header-item{padding:0 40px;border:0}.duet-header-items .duet-header-second-level .duet-header-button{border:0}.duet-header-items .duet-header-second-level .duet-header-dropdown-content{padding:0;border:0}.duet-header-items .duet-header-third-level .duet-header-item{padding:0 75px}.duet-header-items .duet-header-item{position:relative;display:flex;align-items:center;width:100%;padding:0 20px;overflow:hidden;font-size:1rem;line-height:48px;color:#00294d;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 62em){.duet-header-items .duet-header-item{border-radius:4px}}.duet-theme-turva .duet-header-items .duet-header-item{font-weight:600;color:#171c3a;border-color:#e1e3e6}.duet-header-items .duet-header-item:hover{color:#004d80}.duet-theme-turva .duet-header-items .duet-header-item:hover{color:#444445}.duet-header-items .duet-header-item:focus{outline:0}:host(.user-is-tabbing) .duet-header-items .duet-header-item:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-header-items .duet-header-item:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 62em){.duet-header-items .duet-header-item{width:auto;max-width:300px;padding:0 12px;overflow:hidden;font-size:0.875rem;text-overflow:ellipsis;border:0}}.duet-header-items .duet-header-item.active{color:#0077b3}.duet-theme-turva .duet-header-items .duet-header-item.active{color:#c60c30}.duet-header-items .duet-header-item.active:hover{color:#0077b3}.duet-theme-turva .duet-header-items .duet-header-item.active:hover{color:#c60c30}.duet-header-items .duet-header-item.active::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}.duet-theme-turva .duet-header-items .duet-header-item.active::after{background:#c60c30}@media (min-width: 62em){.duet-header-items .duet-header-item.active::after{top:auto;left:12px;width:calc(100% - 24px);height:3px}}.duet-header-toggle{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-right:-8px;margin-left:auto;cursor:pointer;border-radius:4px;-webkit-appearance:none;appearance:none}.duet-header-toggle:focus{outline:0}:host(.user-is-tabbing) .duet-header-toggle:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-header-toggle:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 62em){.duet-header-toggle{display:none}}.duet-header-hamburger{position:relative;width:24px;height:24px;margin-top:5px !important;pointer-events:none;transition:0.4s ease-in-out;backface-visibility:hidden}.duet-header-hamburger .duet-header-bar{position:absolute;left:0;display:block;width:100%;height:2px;background:#00294d;border-radius:20rem;opacity:1;transition:0.25s ease-in-out;transform:rotate(0deg) scale(0.98)}.duet-theme-turva .duet-header-hamburger .duet-header-bar{background:#171c3a}.duet-header-hamburger .duet-header-bar:nth-child(1){top:0}.duet-header-hamburger .duet-header-bar:nth-child(2),.duet-header-hamburger .duet-header-bar:nth-child(3){top:7px}.duet-header-hamburger .duet-header-bar:nth-child(4){top:14px}button.active .duet-header-hamburger .duet-header-bar:nth-child(1){top:7px;left:50%;width:0%}button.active .duet-header-hamburger .duet-header-bar:nth-child(2){transform:rotate(45deg)}button.active .duet-header-hamburger .duet-header-bar:nth-child(3){transform:rotate(-45deg)}button.active .duet-header-hamburger .duet-header-bar:nth-child(4){top:7px;left:50%;width:0%}.duet-header-utils{display:flex;flex-direction:column;width:100%}@media (min-width: 62em){.duet-header-utils{position:absolute;top:-4rem;right:0;z-index:999999999;flex-direction:row;align-items:center;justify-content:space-between;width:auto;margin-right:20px}}@media (min-width: 106.25em){.duet-header-utils{margin-right:36px}}@media (min-width: 62em){.duet-header-bottom-utils{position:absolute;top:0;right:0;z-index:999999999;margin-right:20px}}@media (min-width: 106.25em){.duet-header-bottom-utils{margin-right:36px}}button{font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-theme-turva button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-header-button{position:relative;display:flex;align-items:center;width:100%;height:48px;padding:0 20px;overflow:hidden;font-size:1rem;font-weight:400;line-height:48px;color:#00294d;text-align:left;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-bottom:1px solid #e1e3e6;border-radius:4px;-webkit-appearance:none;appearance:none}.duet-theme-turva .duet-header-button{color:#171c3a;border-color:#e4e4e6}.duet-header-button:hover{color:#004d80}.duet-theme-turva .duet-header-button:hover{color:#444445}.duet-header-button:focus{outline:0}:host(.user-is-tabbing) .duet-header-button:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-header-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-header-button:active{opacity:0.75}@media (min-width: 62em){.duet-header-button{width:auto;max-width:200px;height:4rem;padding:0 16px;font-size:0.875rem;line-height:4rem;border:0}.duet-header-button::before{position:absolute;top:50%;right:0;width:1px;height:20px;content:\"\";background:#cfd2d4;transform:translateY(-50%)}.duet-theme-turva .duet-header-button::before{background:#cfcfd1}}.duet-header-button.active{color:#0077b3;border-radius:0}.duet-theme-turva .duet-header-button.active{color:#c60c30}.duet-header-button.active:hover{color:#0077b3}.duet-theme-turva .duet-header-button.active:hover{color:#c60c30}@media (min-width: 62em){.duet-header-button.active::after{position:absolute;top:0;bottom:0;left:0;width:3px;content:\"\";background:#0077b3}.duet-theme-turva .duet-header-button.active::after{color:#c60c30}}.duet-header-utils .duet-header-button.duet-header-logout{align-self:center;justify-content:center;width:auto;height:2.5rem;margin:2.25rem 0;font-weight:600;border:2px solid #00294d;border-radius:20rem}.duet-theme-turva .duet-header-utils .duet-header-button.duet-header-logout{border-color:#171c3a}.duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon{margin-right:0.5rem}.duet-header-utils .duet-header-button.duet-header-logout .duet-header-button-label{font-size:0.875rem}@media (min-width: 62em){.duet-header-utils .duet-header-button.duet-header-logout{height:4rem;margin:0;font-weight:400;border:0}.duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon{margin-right:0.75rem}}.duet-header-no-action{pointer-events:none}.duet-header-user-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 62em){.duet-header-utils>*:last-child::before,.duet-header-utils>*:last-child button::before{display:none}}@media (min-width: 62em){.duet-header-utils>*:last-child .duet-header-dropdown-content{right:0;left:auto}}.duet-header-language{text-transform:uppercase}.duet-header-language.active,.duet-header-language.active:hover,.duet-header-contact.active,.duet-header-contact.active:hover{color:inherit}.duet-theme-turva .duet-header-language.active,.duet-theme-turva .duet-header-language.active:hover,.duet-theme-turva .duet-header-contact.active,.duet-theme-turva .duet-header-contact.active:hover{color:inherit}.duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active:hover::after,.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active:hover::after{width:0}@media (min-width: 62em){.duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active:hover::after,.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active:hover::after{width:100%}}.duet-header-icon{display:inline-flex;min-width:12px;margin-right:12px;font-size:0;line-height:normal;vertical-align:baseline}@media (min-width: 62em){.duet-header-icon{margin-right:8px}}.duet-header-caret{position:absolute;top:50%;right:20px;display:flex;width:10px;height:10px;margin-left:8px;line-height:normal;pointer-events:none;transition:300ms ease;transform:translateY(-50%);transform-origin:50% 50%}@media (min-width: 62em){.duet-header-caret{width:7px;height:7px}}.duet-header-caret duet-icon{width:10px}.duet-header-dropdown-toggle.active .duet-header-caret{transform:translateY(-50%) rotate(180deg)}.duet-header-dropdown-toggle:focus{outline:0}:host(.user-is-tabbing) .duet-header-dropdown-toggle:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-header-dropdown-toggle:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-header-dropdown-toggle:active{outline:none}.duet-header-badge{display:inline-block;width:6px;height:6px;margin-top:-1rem;margin-left:5px;vertical-align:top;background:#f7b228;border-radius:50%;box-shadow:0 0 0 1px #c18b1f}.duet-theme-turva .duet-header-badge{background:#faa40f}.active-bar{color:#0077b3}.active-bar::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}.duet-theme-turva .active-bar::after{background:#c60c30}.duet-header-dropdown{position:relative}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-toggle{z-index:200;padding-right:36px;overflow:hidden;transition:border 300ms ease}}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-toggle::after{position:absolute;top:auto;bottom:0;left:0;display:block !important;width:100%;height:3px !important;content:\"\";background:#0077b3;transition:300ms ease;transform:translateY(3px)}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle::after{background:#c60c30}}.duet-header-dropdown .duet-header-dropdown-toggle.active,.duet-header-dropdown .duet-header-dropdown-toggle.active:hover{border-bottom:1px solid #f5f8fa}.duet-header-dropdown .duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active::after,.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after{background:#c60c30}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active,.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active:hover{border-color:#f5f5f7}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-toggle.active,.duet-header-dropdown .duet-header-dropdown-toggle.active:hover{color:#004d80;border:0}.duet-header-dropdown .duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after{position:absolute;top:auto;bottom:0;left:0;width:100%;height:3px;transform:translateY(0)}}.duet-header-dropdown .duet-header-dropdown-content{display:none;padding-bottom:16px;background:#f3f9fc;border-bottom:1px solid #e1e3e6}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content{background:#f5f5f7;border-color:#e1e3e6}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content{position:absolute;top:100%;left:0;z-index:600;display:block;min-width:150px;padding-top:16px;padding-left:0;visibility:hidden;border:0;border-radius:4px;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 4px 10px 0 rgba(0, 41, 77, 0.15);opacity:0;transition:300ms ease;transform:scale(0.85) translateZ(0) translateY(-20px)}.duet-header-dropdown .duet-header-dropdown-content.duet-header-session-items{right:0%;left:auto;min-width:225px}.duet-header-dropdown .duet-header-dropdown-content.duet-header-session-items .duet-header-session-label{padding:0 20px;font-weight:600}}@media (min-width: 64.0625em){.duet-header-dropdown .duet-header-dropdown-content{min-width:170px}.duet-header-dropdown .duet-header-dropdown-content.duet-header-session-items{min-width:225px}}.duet-header-dropdown .duet-header-dropdown-content.active{display:block}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content.active{visibility:visible;opacity:1;transform:translateZ(0) translateY(0)}}.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item){padding:3px 8px 4px !important;position:relative;display:block;width:100%;padding-right:16px;padding-left:48px !important;overflow:hidden;font-size:0.875rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left;text-decoration:none;white-space:nowrap;cursor:pointer;transition:300ms ease}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item){color:#171c3a}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item){padding-right:20px !important;padding-left:20px !important}}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):hover{background:#e6f2f8}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):hover{background:#f9e6ea}}.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus{outline:0}:host(.user-is-tabbing) .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active{padding-right:36px;font-weight:600;vertical-align:baseline}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active{font-weight:700}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active{color:white;background:#0077b3}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active{background:#c60c30}}.duet-header-dropdown .duet-header-dropdown-content .duet-header-link-external{margin-left:4px}.duet-header-back .duet-header-top{flex-direction:row;align-items:center;justify-content:center}.duet-header-back duet-button{position:absolute;top:50%;left:36px;transform:translateY(-50%)}@media (max-width: 35.9375em){.duet-header-back duet-button{left:20px;max-width:40px;padding:0 12px;overflow:hidden}}.duet-header-back .duet-header-toggle{display:none !important}.duet-header-skip{padding:15px 28px 16px !important;position:absolute;top:-100%;left:-100%;z-index:200;width:1px;min-width:190px;height:1px;overflow:hidden;font-weight:600;color:#0077b3;text-align:center;text-decoration:none;background:white;border-radius:4px;opacity:0}.duet-header-skip:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-header-skip:focus,.duet-header-skip:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-theme-turva .duet-header-skip{min-width:120px;color:#171c3a}@media (min-width: 106.25em){.duet-header-skip{margin-left:20px}}.duet-header-skip:focus{top:12px;left:20px;width:auto;height:auto;outline:0;opacity:1}.duet-header-multi-level-desktop{height:6rem}.duet-header-multi-level-desktop .duet-header-top{justify-content:space-between;height:6rem}.duet-header-multi-level-desktop .duet-header-button{height:6rem}.duet-header-multi-level-desktop .logo-and-segment{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;padding-top:1rem}.duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown{z-index:400;margin-left:2rem}.duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content{background:#f3f9fc}.duet-header-multi-level-desktop .logo-and-segment button{align-items:flex-start;height:2rem;font-weight:600;line-height:1rem}.duet-header-multi-level-desktop .logo-and-segment button::before{display:none}.duet-header-multi-level-desktop .logo-and-segment .duet-header-caret{top:25%}.duet-header-multi-level-desktop-nav{display:flex}.duet-header-multi-level-desktop-nav .duet-header-dropdown{position:static}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle{z-index:400;padding-right:1rem;font-size:1rem;font-weight:600}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active{color:#0077b3}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content{z-index:399;display:flex;justify-content:center;width:100%;height:4.5rem;padding:0;background:#f3f9fc;border-top:1px solid #e1e3e6;border-bottom:1px solid #e1e3e6;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07);transition:none}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:auto;min-width:6rem;height:100%;padding:0 1rem !important;font-weight:600}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a::after{position:absolute;top:auto;bottom:0;left:0;display:block !important;width:100%;height:3px;content:\"\";background:#0077b3;transition:300ms ease;transform:translateY(3px)}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active{font-weight:600;color:#0077b3;background:none}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active::after{transform:translateY(0)}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a .duet-header-icon{margin:0}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content .duet-header-badge{position:absolute;margin-top:-2rem;margin-right:-2.25rem}.duet-header-multi-level-desktop-nav button::before{display:none}.duet-header-multi-level-desktop-nav .duet-header-caret{display:none}.duet-header-multi-level-desktop-utils{display:flex;flex-basis:0;flex-grow:1;justify-content:flex-end}.duet-header-multi-level-desktop-utils>:last-child::before{display:none}.duet-header-multi-level-desktop-utils>:last-child.duet-header-dropdown .duet-header-button::before{display:none}.duet-header-multi-level-desktop-utils .duet-header-dropdown{z-index:400}.duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content{background:#f3f9fc}.duet-header-multi-level-desktop-utils .duet-header-button-label,.duet-header-multi-level-desktop-utils .duet-header-dropdown-label{display:none}@media (min-width: 64.0625em){.duet-header-multi-level-desktop-utils .duet-header-button-label,.duet-header-multi-level-desktop-utils .duet-header-dropdown-label{display:initial}}.duet-header-multi-level-desktop .duet-theme-turva .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content{background:#fcf3f4}.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active{color:#c60c30}.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content{background:#fcf3f4;border-color:#e4e4e6}.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a::after{background:#c60c30}.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active{color:#c60c30;background:none}.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content{background:#fcf3f4}";
6164
6551
 
6165
6552
  const createEvent = (ev, data) => ({
6166
6553
  component: "duet-header",
@@ -6198,6 +6585,7 @@ const DuetHeader$1 = class extends H {
6198
6585
  */
6199
6586
  this.isContactOpen = false;
6200
6587
  this.isLanguageOpen = false;
6588
+ this.isSessionOpen = false;
6201
6589
  this.isSlideOutOpen = false;
6202
6590
  this.isSegmentOpen = false;
6203
6591
  this.openMenu = null;
@@ -6349,6 +6737,11 @@ const DuetHeader$1 = class extends H {
6349
6737
  this.handleClick(e);
6350
6738
  this.duetSessionClick.emit(e);
6351
6739
  };
6740
+ this.handleSessionItemClick = (ev, item) => {
6741
+ const e = createEvent(ev, item);
6742
+ this.handleClick(e);
6743
+ this.duetSessionClick.emit(e);
6744
+ };
6352
6745
  this.handleSearchClick = (ev) => {
6353
6746
  const e = createEvent(ev, this.processedSearch);
6354
6747
  this.handleClick(e);
@@ -6411,13 +6804,23 @@ const DuetHeader$1 = class extends H {
6411
6804
  this.isContactOpen = false;
6412
6805
  this.isLanguageOpen = !this.isLanguageOpen;
6413
6806
  this.isSegmentOpen = false;
6807
+ this.isSessionOpen = false;
6414
6808
  el = this.languageItemsEl;
6415
6809
  }
6810
+ // For session menu
6811
+ if (type === "session") {
6812
+ this.isContactOpen = false;
6813
+ this.isLanguageOpen = false;
6814
+ this.isSegmentOpen = false;
6815
+ this.isSessionOpen = !this.isSessionOpen;
6816
+ el = this.sessionItemsEl;
6817
+ }
6416
6818
  // For contact menu
6417
6819
  else if (type === "contact") {
6418
6820
  this.isLanguageOpen = false;
6419
6821
  this.isContactOpen = !this.isContactOpen;
6420
6822
  this.isSegmentOpen = false;
6823
+ this.isSessionOpen = false;
6421
6824
  el = this.contactItemsEl;
6422
6825
  }
6423
6826
  // For mobile menu
@@ -6425,6 +6828,7 @@ const DuetHeader$1 = class extends H {
6425
6828
  this.isContactOpen = false;
6426
6829
  this.isLanguageOpen = false;
6427
6830
  this.isSegmentOpen = false;
6831
+ this.isSessionOpen = false;
6428
6832
  el = this.navigationEl;
6429
6833
  this.isSlideOutOpen = !this.isSlideOutOpen;
6430
6834
  if (this.isSlideOutOpen) {
@@ -6438,15 +6842,22 @@ const DuetHeader$1 = class extends H {
6438
6842
  this.isContactOpen = false;
6439
6843
  this.isLanguageOpen = false;
6440
6844
  this.isSegmentOpen = false;
6845
+ this.isSessionOpen = false;
6441
6846
  el = this.subMenuItemRefs[id];
6442
6847
  }
6443
6848
  else if (type === "segment") {
6444
6849
  this.isContactOpen = false;
6445
6850
  this.isLanguageOpen = false;
6851
+ this.isSessionOpen = false;
6446
6852
  this.isSegmentOpen = !this.isSegmentOpen;
6447
6853
  el = this.segmentItemsEl;
6448
6854
  }
6449
- if (this.isSlideOutOpen || this.isLanguageOpen || this.isContactOpen || this.isSegmentOpen || this.openMenu) {
6855
+ if (this.isSlideOutOpen ||
6856
+ this.isLanguageOpen ||
6857
+ this.isContactOpen ||
6858
+ this.isSegmentOpen ||
6859
+ this.isSessionOpen ||
6860
+ this.openMenu) {
6450
6861
  const drawer = this.element.querySelector("duet-notification-drawer");
6451
6862
  if (drawer) {
6452
6863
  drawer.close(false);
@@ -6570,7 +6981,7 @@ const DuetHeader$1 = class extends H {
6570
6981
  * Closes all dropdown menus in header when called.
6571
6982
  */
6572
6983
  async closeMenus(moveFocusToButton = false) {
6573
- if (this.isContactOpen || this.isLanguageOpen || this.isSegmentOpen || this.openMenu) {
6984
+ if (this.isContactOpen || this.isLanguageOpen || this.isSegmentOpen || this.isSessionOpen || this.openMenu) {
6574
6985
  if (this.isContactOpen && moveFocusToButton) {
6575
6986
  this.contactItemsButtonEl.focus({
6576
6987
  preventScroll: true,
@@ -6586,6 +6997,11 @@ const DuetHeader$1 = class extends H {
6586
6997
  preventScroll: true,
6587
6998
  });
6588
6999
  }
7000
+ if (this.isSessionOpen && moveFocusToButton) {
7001
+ this.sessionItemsButtonEl.focus({
7002
+ preventScroll: true,
7003
+ });
7004
+ }
6589
7005
  if (this.openMenu && moveFocusToButton) {
6590
7006
  this.subMenuButtonRefs[this.openMenu].focus({
6591
7007
  preventScroll: true,
@@ -6594,6 +7010,7 @@ const DuetHeader$1 = class extends H {
6594
7010
  this.isContactOpen = false;
6595
7011
  this.isLanguageOpen = false;
6596
7012
  this.isSegmentOpen = false;
7013
+ this.isSessionOpen = false;
6597
7014
  this.openMenu = null;
6598
7015
  }
6599
7016
  }
@@ -6613,12 +7030,13 @@ const DuetHeader$1 = class extends H {
6613
7030
  const skipToLabel = this.skipToId ? (h$1("a", { href: this.skipToId, class: "duet-header-skip", onClick: this.handleSkipClick }, skipLabel)) : null;
6614
7031
  const logo = (h$1("duet-logo", { href: this.logoHref, size: "medium", ref: el => (this.logoEl = el), language: this.language, theme: this.theme, onClick: this.handleLogoClick }));
6615
7032
  const largeLogo = (h$1("duet-logo", { href: this.logoHref, size: "large", ref: el => (this.logoEl = el), language: this.language, theme: this.theme, onClick: this.handleLogoClick }));
6616
- const contactDropdown = this.contact && this.processedContactItems ? (h$1(DuetHeaderDropdown, { id: "duet-header-contact", label: this.contact, icon: navigationContactDropdown.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$1("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, item.external && (h$1(Fragment, null, h$1("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), h$1("span", { class: "duet-header-link-external" }, h$1("duet-icon", { name: "action-new-window-small", size: "xx-small", margin: "none", color: this.theme === "turva" ? "primary-turva" : "primary" }))))))))) : null;
7033
+ const contactDropdown = this.contact && this.processedContactItems ? (h$1(DuetHeaderDropdown, { id: "duet-header-contact", label: this.contact, icon: navigationContactDropdown.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$1("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, item.external && (h$1(Fragment$1, null, h$1("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), h$1("span", { class: "duet-header-link-external" }, h$1("duet-icon", { name: "action-new-window-small", size: "xx-small", margin: "none", color: this.theme === "turva" ? "primary-turva" : "primary" }))))))))) : null;
6617
7034
  const languageDropdown = this.language && this.processedLanguageItems ? (h$1(DuetHeaderDropdown, { id: "duet-header-language", label: this.language, icon: navigationLanguage.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$1("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;
6618
7035
  const processedUserWithLink = this.processedUser && this.processedUser.href ? (h$1("a", { href: this.processedUser.href || "#", id: this.processedUser.id, class: "duet-header-user duet-header-button", onClick: this.handleUserClick }, h$1(DuetHeaderIcon, { icon: navigationUser.svg }), h$1("span", { class: "duet-header-user-label" }, this.processedUser.label))) : null;
6619
7036
  const processedUserWithoutLink = this.processedUser && !this.processedUser.href ? (h$1("span", { id: this.processedUser.id, class: "duet-header-user duet-header-button duet-header-no-action" }, h$1(DuetHeaderIcon, { icon: navigationUser.svg }), h$1("span", { class: "duet-header-user-label" }, this.processedUser.label))) : null;
6620
7037
  const processedSessionIconSize = this.renderDesktopNav ? "x-small" : "small";
6621
7038
  const processedSession = this.processedSession ? (h$1("a", { href: this.processedSession.href || "#", id: this.processedSession.id, class: "duet-header-logout duet-header-button", onClick: this.handleSessionClick }, h$1(DuetHeaderIcon, { icon: this.processedSession.type === "logout" ? navigationLogout.svg : navigationLogin.svg, iconSize: processedSessionIconSize }), h$1("span", { class: "duet-header-button-label" }, this.processedSession.label))) : null;
7039
+ const processedSessionDropdown = this.processedSession && this.processedSession.sessionItems ? (h$1(DuetHeaderDropdown, { className: "duet-header-session", id: "duet-header-session", label: this.processedSession.label, icon: this.processedSession.type === "logout" ? navigationLogout.svg : navigationLogin.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$1(Fragment$1, null, sessionItem.label && h$1("span", { class: "duet-header-session-label" }, sessionItem.label), h$1("duet-spacer", { size: "small", "aria-hidden": "true" }), sessionItem.items.map(item => (h$1("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$1(Fragment$1, null, h$1("duet-spacer", { size: "x-small", "aria-hidden": "true" }), h$1("duet-divider", { margin: "none", "aria-hidden": "true" })))))))) : null;
6622
7040
  const processedSearch = this.processedSearch ? (h$1("a", { href: this.processedSearch.href || "#", id: this.processedSearch.id, class: "duet-header-search duet-header-button", onClick: this.handleSearchClick }, h$1(DuetHeaderIcon, { icon: formSearch.svg }), h$1("span", { class: "duet-header-button-label" }, this.processedSearch.label))) : null;
6623
7041
  // Back variation
6624
7042
  if (this.processedBack) {
@@ -6651,7 +7069,7 @@ const DuetHeader$1 = class extends H {
6651
7069
  const id = secondLevelItem.id || `segment-item-${secondLevelItemIndex}`;
6652
7070
  return (h$1(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 &&
6653
7071
  secondLevelItem.items.map(thirdLevelItem => (h$1("a", { class: { active: thirdLevelItem.active }, role: "menuitem", href: thirdLevelItem.href || "#", id: thirdLevelItem.id, onClick: event => this.handleItemClick(event, thirdLevelItem), onKeyDown: ev => this.handleArrowKeys(ev), target: thirdLevelItem.external ? "_blank" : "_self" }, thirdLevelItem.icon && (h$1("div", { class: "duet-header-icon" }, h$1("duet-icon", { margin: "none", size: "medium", name: thirdLevelItem.icon, color: "currentColor" }))), h$1("span", null, thirdLevelItem.label), thirdLevelItem.badge && h$1("div", { class: "duet-header-badge" }))))));
6654
- })), h$1("div", { class: "duet-header-multi-level-desktop-utils" }, processedSearch, languageDropdown, processedSession), h$1("slot", { name: "utility" }))))));
7072
+ })), h$1("div", { class: "duet-header-multi-level-desktop-utils" }, processedSearch, languageDropdown, processedSessionDropdown != null ? processedSessionDropdown : processedSession), h$1("slot", { name: "utility" }))))));
6655
7073
  }
6656
7074
  // Default variation
6657
7075
  const isSecondLevelActive = this.processedItems &&
@@ -6706,7 +7124,7 @@ const DuetHeader$1 = class extends H {
6706
7124
  "duet-header-item": true,
6707
7125
  active: thirdLevelItem.active === true,
6708
7126
  }, role: "menuitem", href: thirdLevelItem.href || "#", id: thirdLevelItem.id, onClick: event => this.handleItemClick(event, item), onKeyDown: ev => this.handleArrowKeys(ev), target: thirdLevelItem.external ? "_blank" : "_self" }, thirdLevelItem.icon && (h$1("div", { class: "duet-header-icon" }, h$1("duet-icon", { margin: "none", size: "medium", name: thirdLevelItem.icon, color: "currentColor" }))), h$1("span", null, thirdLevelItem.label), thirdLevelItem.badge && h$1("div", { class: "duet-header-badge" })))))));
6709
- }))))), h$1("div", { class: "duet-header-bottom-utils" }, h$1("slot", { name: "utility" })), h$1("div", { class: "duet-header-utils" }, !itemsHaveSubItems && contactDropdown, languageDropdown, !itemsHaveSubItems && (h$1(Fragment, null, processedUserWithLink, processedUserWithoutLink)), processedSearch, processedSession))))));
7127
+ }))))), h$1("div", { class: "duet-header-bottom-utils" }, h$1("slot", { name: "utility" })), h$1("div", { class: "duet-header-utils" }, !itemsHaveSubItems && contactDropdown, languageDropdown, !itemsHaveSubItems && (h$1(Fragment$1, null, processedUserWithLink, processedUserWithoutLink)), processedSearch, processedSession))))));
6710
7128
  }
6711
7129
  get element() { return this; }
6712
7130
  static get watchers() { return {
@@ -7200,7 +7618,7 @@ function resetCursor(domElement) {
7200
7618
  }
7201
7619
  };
7202
7620
  }
7203
- return () => console.log("domElement not valid");
7621
+ return () => true;
7204
7622
  }
7205
7623
  /**
7206
7624
  * Given an input and a regex, remove any characters from the input's value
@@ -7254,6 +7672,10 @@ const DuetInput$1 = class extends H {
7254
7672
  * Indicates the id of a component that describes the input.
7255
7673
  */
7256
7674
  this.accessibleDescribedBy = "";
7675
+ /**
7676
+ * Indicates value of any popup element associated with the input.
7677
+ */
7678
+ this.accessibleHasPopup = undefined;
7257
7679
  /**
7258
7680
  * Set the amount of time, in milliseconds, to wait to trigger the duetChange
7259
7681
  * event after each keystroke.
@@ -7421,6 +7843,17 @@ const DuetInput$1 = class extends H {
7421
7843
  this.nativeInput.focus(options);
7422
7844
  }
7423
7845
  }
7846
+ /**
7847
+ * Reset the cursor position on the native element
7848
+ * `input.resetCursor()`.
7849
+ */
7850
+ async resetCursor() {
7851
+ if (this.nativeInput) {
7852
+ const restoreCursor = resetCursor(this.nativeInput);
7853
+ this.nativeInput.value = this.value;
7854
+ restoreCursor();
7855
+ }
7856
+ }
7424
7857
  /**
7425
7858
  * render() function
7426
7859
  * Always the last one in the class.
@@ -7450,7 +7883,7 @@ const DuetInput$1 = class extends H {
7450
7883
  disabled: this.disabled,
7451
7884
  "is-number": this.component === "number",
7452
7885
  "is-date": this.component === "date",
7453
- }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.getDescribedBy(), placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), !this.icon && this.type !== "text" && this.type !== "tel" && this.type !== "password" && (h$1("div", { class: "duet-input-icon" }, h$1("duet-icon", { margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.icon && (h$1("div", { class: "duet-input-icon" }, h$1("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), h$1("slot", null)), h$1("span", { class: "duet-input-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && h$1("span", { class: "duet-input-error" }, this.error)))));
7886
+ }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-expanded": this.accessibleExpanded, "aria-haspopup": this.accessibleHasPopup, "aria-owns": this.accessibleOwns, "aria-describedby": this.getDescribedBy(), placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), !this.icon && this.type !== "text" && this.type !== "tel" && this.type !== "password" && (h$1("div", { class: "duet-input-icon" }, h$1("duet-icon", { margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.icon && (h$1("div", { class: "duet-input-icon" }, h$1("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), h$1("slot", null)), h$1("span", { class: "duet-input-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && h$1("span", { class: "duet-input-error" }, this.error)))));
7454
7887
  }
7455
7888
  get element() { return this; }
7456
7889
  static get watchers() { return {
@@ -7642,7 +8075,7 @@ const DuetLink$1 = class extends H {
7642
8075
  "duet-link": true,
7643
8076
  "duet-link-is-external": this.external,
7644
8077
  "duet-theme-turva": this.theme === "turva",
7645
- }, target: this.external ? "_blank" : "_self", "aria-label": this.accessibleLabel, id: this.identifier, ref: el => (this.nativeLink = el), part: "duet-link", rel: this.external ? "noopener" : undefined }, h$1("slot", null), this.external && (h$1(Fragment, null, h$1("duet-visually-hidden", null, this.accessibleLabelExternal), h$1("span", { class: "duet-link-external" }, h$1("duet-icon", { icon: actionNewWindowSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))))));
8078
+ }, target: this.external ? "_blank" : "_self", "aria-label": this.accessibleLabel, id: this.identifier, ref: el => (this.nativeLink = el), part: "duet-link", rel: this.external ? "noopener" : undefined }, h$1("slot", null), this.external && (h$1(Fragment$1, null, h$1("duet-visually-hidden", null, this.accessibleLabelExternal), h$1("span", { class: "duet-link-external" }, h$1("duet-icon", { icon: actionNewWindowSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))))));
7646
8079
  }
7647
8080
  static get delegatesFocus() { return true; }
7648
8081
  static get style() { return duetLinkCss; }
@@ -8953,7 +9386,7 @@ const DuetPagination$1 = class extends H {
8953
9386
  }, role: "menubar", "aria-label": this.accessibleLabels.pagination_label, "aria-description": this.accessibleLabels.description }, h$1("li", { class: {
8954
9387
  "duet-pagination-page-button": true,
8955
9388
  "duet-pagination-button-first": true,
8956
- }, role: "menuitem", part: "navigation-arrow" }, h$1("duet-action-button", { disabled: this.internalSectionIndex === 0 && this.current <= 1, "data-direction": "back", onClick: e => this.onMouseHandler(e, -1), "aria-label": this.accessibleLabels.previous_page, "icon-name": "action-arrow-left-small" })), this.internalSectionIndex !== 0 && this.shouldDisplayNavigation() && (h$1(Fragment, null, h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h$1("duet-button", { class: "duet-pagination-link", "center-text": "true", variation: "plain", color: "secondary", margin: "none", accessibleLabel: this.accessibleLabels.first_page, onClick: e => this.jumpToStart(e) }, h$1("div", { class: "duet-pagination-page-number" }, "1"))), h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h$1("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.prev_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, -1) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))))), this.renderPageNumbers(), this.internalSectionIndex !== this.totalPages / this.visibleItems - 1 && this.shouldDisplayNavigation() && (h$1(Fragment, null, h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h$1("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.next_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, 1) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))), h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h$1("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.last_page, onClick: e => this.jumpToEnd(e) }, h$1("div", { class: "duet-pagination-page-number" }, this.totalPages))))), h$1("li", { class: {
9389
+ }, role: "menuitem", part: "navigation-arrow" }, h$1("duet-action-button", { disabled: this.internalSectionIndex === 0 && this.current <= 1, "data-direction": "back", onClick: e => this.onMouseHandler(e, -1), "aria-label": this.accessibleLabels.previous_page, "icon-name": "action-arrow-left-small" })), this.internalSectionIndex !== 0 && this.shouldDisplayNavigation() && (h$1(Fragment$1, null, h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h$1("duet-button", { class: "duet-pagination-link", "center-text": "true", variation: "plain", color: "secondary", margin: "none", accessibleLabel: this.accessibleLabels.first_page, onClick: e => this.jumpToStart(e) }, h$1("div", { class: "duet-pagination-page-number" }, "1"))), h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h$1("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.prev_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, -1) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))))), this.renderPageNumbers(), this.internalSectionIndex !== this.totalPages / this.visibleItems - 1 && this.shouldDisplayNavigation() && (h$1(Fragment$1, null, h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h$1("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.next_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, 1) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))), h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h$1("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.last_page, onClick: e => this.jumpToEnd(e) }, h$1("div", { class: "duet-pagination-page-number" }, this.totalPages))))), h$1("li", { class: {
8957
9390
  "duet-pagination-page-button": true,
8958
9391
  "duet-pagination-button-last": true,
8959
9392
  }, role: "menuitem", part: "navigation-arrow" }, h$1("duet-action-button", { disabled: this.current === this.totalPages &&
@@ -10387,6 +10820,10 @@ const DuetTabGroup$1 = class extends H {
10387
10820
  * Whether the tab-group collapses to a select dropwdown in minor breakpoints
10388
10821
  */
10389
10822
  this.collapses = true;
10823
+ /**
10824
+ * Aria label for the entire tab-group
10825
+ */
10826
+ this.accessibleLabel = undefined;
10390
10827
  /**
10391
10828
  * Style variation of the tab group.
10392
10829
  */
@@ -10447,7 +10884,7 @@ const DuetTabGroup$1 = class extends H {
10447
10884
  };
10448
10885
  this.renderTab = () => {
10449
10886
  const renderedTabs = this.tabs.map((element, index) => {
10450
- return (h$1("button", { role: "tab", id: this.getButtonId(index), "aria-controls": this.getTabId(index), "aria-selected": element.selected ? "true" : "false", "aria-description": this.getAccessibleDescription(index), part: `${this.identifier}-button ${element.selected ? `${this.identifier}-button--selected` : ""}`, type: "button", class: {
10887
+ return (h$1("button", { role: "tab", id: this.getButtonId(index), "aria-controls": this.getTabId(index), "aria-selected": element.selected ? "true" : "false", "aria-description": this.getAccessibleDescription(index), tabindex: index === 0 ? "0" : "-1", part: `${this.identifier}-button ${element.selected ? `${this.identifier}-button--selected` : ""}`, type: "button", class: {
10451
10888
  "duet-p-0": this.padding === "none",
10452
10889
  "duet-tab-button": true,
10453
10890
  selected: element.selected,
@@ -10557,14 +10994,14 @@ const DuetTabGroup$1 = class extends H {
10557
10994
  [`duet-tab-variation-${this.variation}`]: true,
10558
10995
  "duet-tab-group-scrolls": this.scrolls,
10559
10996
  "duet-tab-group-collapses": this.collapses,
10560
- } }, this.tabs.length > 3 && this.collapses && (h$1("duet-select", { value: this.selected.toString(), expand: true, label: this.label, labelHidden: this.labelHidden, theme: this.theme, onDuetChange: event => this.openTab(Number(event.detail.value)), items: this.tabs.map((tab, index) => {
10997
+ }, "aria-label": this.accessibleLabel }, this.tabs.length > 3 && this.collapses && (h$1("duet-select", { value: this.selected.toString(), expand: true, label: this.label, labelHidden: this.labelHidden, theme: this.theme, onDuetChange: event => this.openTab(Number(event.detail.value)), items: this.tabs.map((tab, index) => {
10561
10998
  return { label: tab.label, value: index.toString() };
10562
10999
  }) })), h$1("div", { role: "tablist", class: {
10563
11000
  "duet-m-0": this.margin === "none",
10564
11001
  "duet-tab-group-tabs": true,
10565
11002
  "duet-tab-group-hidden": this.tabs.length > 3,
10566
11003
  "duet-tab-group-collapses": this.collapses,
10567
- } }, this.renderTab()), h$1("div", { class: { "duet-tab-group-content": true, "duet-m-0": this.margin === "none" } }, h$1("slot", null))));
11004
+ } }, this.renderTab()), h$1("div", { role: "tabpanel", tabindex: "0", class: { "duet-tab-group-content": true, "duet-m-0": this.margin === "none" } }, h$1("slot", null))));
10568
11005
  }
10569
11006
  get element() { return this; }
10570
11007
  static get style() { return duetTabGroupCss; }
@@ -11312,7 +11749,7 @@ const DuetTray$1 = class extends H {
11312
11749
  "duet-tray-is-responsive": this.responsive,
11313
11750
  "duet-theme-turva": this.theme === "turva",
11314
11751
  "duet-tray-is-expandable": this.hasAdditionalContent,
11315
- } }, h$1("div", { class: "duet-tray-default-content", role: "status" }, h$1("slot", null)), this.hasAdditionalContent && (h$1(Fragment, null, h$1("button", { "aria-expanded": this.expanded ? "true" : "false", "aria-controls": this.expandableId, onClick: ev => this.toggleExpandable(ev), class: { "duet-tray-button": true, "duet-tray-is-expanded": this.expanded } }, h$1("duet-icon", { name: "action-arrow-down", size: "small", color: "currentColor", margin: "none" }), h$1("duet-visually-hidden", null, this.expanded ? this.accessibleCloseLabel : this.accessibleOpenLabel)), h$1("div", { id: this.expandableId, class: { "duet-tray-expandable": true, active: this.expanded } }, h$1("div", { class: "duet-tray-expandable-content" }, h$1("slot", { name: "additional" })))))));
11752
+ } }, h$1("div", { class: "duet-tray-default-content", role: "status" }, h$1("slot", null)), this.hasAdditionalContent && (h$1(Fragment$1, null, h$1("button", { "aria-expanded": this.expanded ? "true" : "false", "aria-controls": this.expandableId, onClick: ev => this.toggleExpandable(ev), class: { "duet-tray-button": true, "duet-tray-is-expanded": this.expanded } }, h$1("duet-icon", { name: "action-arrow-down", size: "small", color: "currentColor", margin: "none" }), h$1("duet-visually-hidden", null, this.expanded ? this.accessibleCloseLabel : this.accessibleOpenLabel)), h$1("div", { id: this.expandableId, class: { "duet-tray-expandable": true, active: this.expanded } }, h$1("div", { class: "duet-tray-expandable-content" }, h$1("slot", { name: "additional" })))))));
11316
11753
  }
11317
11754
  get element() { return this; }
11318
11755
  static get style() { return duetTrayCss; }
@@ -11507,7 +11944,7 @@ const SuccessItem = ({ data, showLinks }) => {
11507
11944
  const { item, size, uploaded, url, meta } = data;
11508
11945
  const { name } = item;
11509
11946
  const ContentName = (h("span", { class: "duet-upload-item-name" },
11510
- h("duet-icon", { margin: "none", size: "xx-small", name: "messaging-attachment" }),
11947
+ h("duet-icon", { margin: "none", size: "x-small", name: "messaging-attachment" }),
11511
11948
  h("duet-spacer", { size: "xx-small", direction: "horizontal" }),
11512
11949
  name));
11513
11950
  const SizeText = (h("span", { class: "duet-upload-item-size", style: { fontSize: "14px", fontWeight: "400" } },
@@ -11646,7 +12083,7 @@ const makeXhrRequest = ({ payload, options, onFailure, onSuccess, onProgress })
11646
12083
  return xhr;
11647
12084
  };
11648
12085
 
11649
- const duetUploadCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}::slotted([slot=header]){margin-bottom:16px}::slotted([slot=fileheader]){margin:16px 0 0 0}::slotted([slot=filefooter]){margin-top:16px}.duet-upload{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.duet-upload-item-size{font-size:0.75rem;font-weight:400}.duet-upload-filelist{margin-bottom:25px}.duet-upload-filelist-empty{display:flex;align-items:center;justify-content:center;width:100%;height:75px;margin:0 auto;font-size:1rem;font-weight:400;background-color:#f5f8fa}.duet-upload-editable-table-header-hidden{display:none}.duet-upload-editable-table tbody .duet-upload-editable-table-data{padding:0 !important;border:0}.duet-upload-editable-table duet-editable-table tfoot,.duet-upload-editable-table duet-editable-table thead{display:none}.duet-upload-editable-table duet-editable-table .duet-editable-table-content{padding-right:0 !important;padding-left:0 !important}.duet-upload-editable-table duet-editable-table duet-table .duet-table-action-row td{padding:0.75rem 0 !important}.duet-upload-editable-table duet-editable-table duet-table .duet-table-action-row td:last-child{padding-right:0 !important}.duet-upload-editable-table duet-editable-table .duet-editable-table-row-inprogress duet-action-button::part(button){border:0}";
12086
+ const duetUploadCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}::slotted([slot=header]){margin-bottom:16px}::slotted([slot=fileheader]){margin:16px 0 0 0}::slotted([slot=filefooter]){margin-top:16px}.duet-upload{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.duet-upload-item-size{font-size:0.75rem;font-weight:400}.duet-upload-filelist{margin-bottom:25px}.duet-upload-filelist-empty{display:flex;align-items:center;justify-content:center;width:100%;height:75px;margin:0 auto;font-size:1rem;font-weight:400;background-color:#f5f8fa}.duet-upload-filelist-empty-label{font-size:1rem;font-weight:400}.duet-upload-editable-table-header-hidden{display:none}.duet-upload-editable-table tbody .duet-upload-editable-table-data{padding:0 !important;border:0}.duet-upload-editable-table duet-editable-table tfoot,.duet-upload-editable-table duet-editable-table thead{display:none}.duet-upload-editable-table duet-editable-table .duet-editable-table-content{padding-right:0 !important;padding-left:0 !important}.duet-upload-editable-table duet-editable-table duet-table .duet-table-action-row td{padding:0.75rem 0 !important}.duet-upload-editable-table duet-editable-table duet-table .duet-table-action-row td:last-child{padding-right:0 !important}.duet-upload-editable-table duet-editable-table .duet-editable-table-row-inprogress duet-action-button::part(button){border:0}.duet-upload-editable-table .duet-upload-item-name duet-icon{position:relative;top:2px}duet-paragraph::part(duet-paragraph){word-break:break-word}";
11650
12087
 
11651
12088
  const DuetUpload$1 = class extends H {
11652
12089
  constructor() {
@@ -12397,7 +12834,9 @@ const DuetUpload$1 = class extends H {
12397
12834
  "duet-upload-filelist-empty": !this.files.size,
12398
12835
  "duet-upload-filelist": true,
12399
12836
  "duet-upload-filelist-filled": this.files.size,
12400
- }, id: this.labelId, for: identifier }, this.fileListEmpty)), !!this.files.size && h$1("slot", { name: "fileheader" }), !!this.files.size && (h$1("duet-upload-aria-status", { invalid: this.getFilesAsArray().invalid.length, valid: this.getFilesAsArray().valid.length, inprogress: this.filesInProgress.size, total: this.files.size, statusMessageLabel: this.internalStatusMessageLabel })), !!this.files.size && this.renderEditableTableGroups(), !!this.files.size && h$1("slot", { name: "filefooter" }), h$1("duet-spacer", { size: "large" }), !this.hideButton && (h$1("duet-button", { id: this.buttonId, onClick: this.startUpload, "accessible-controls": identifier, disabled: this.fileMaxReached, "accessible-label": this.accessibleButtonLabel, "accessible-owns": identifier, size: "small", variation: "secondary", fixed: true, icon: "action-add-circle", part: this.identifier ? `${this.identifier}-button-upload` : "duet-upload-button-upload" }, this.buttonLabel)), h$1("duet-spacer", { size: "medium" }), (this.fileMaxReached || this.bytesMaxReached) && (h$1("duet-alert", { part: this.identifier ? `${this.identifier}-error-notification` : "duet-upload-error-notification" }, this.fileMaxReached && getI18nError("duet-upload-301"), this.bytesMaxReached && getI18nError("duet-upload-202"))), h$1("duet-spacer", { size: "medium" }), h$1("duet-visually-hidden", null, h$1("input", { ref: input => {
12837
+ }, id: this.labelId, for: identifier }, h$1("span", { class: {
12838
+ "duet-upload-filelist-empty-label": !this.files.size,
12839
+ } }, this.fileListEmpty))), !!this.files.size && h$1("slot", { name: "fileheader" }), !!this.files.size && (h$1("duet-upload-aria-status", { invalid: this.getFilesAsArray().invalid.length, valid: this.getFilesAsArray().valid.length, inprogress: this.filesInProgress.size, total: this.files.size, statusMessageLabel: this.internalStatusMessageLabel })), !!this.files.size && this.renderEditableTableGroups(), !!this.files.size && h$1("slot", { name: "filefooter" }), h$1("duet-spacer", { size: "large" }), !this.hideButton && (h$1("duet-button", { id: this.buttonId, onClick: this.startUpload, "accessible-controls": identifier, disabled: this.fileMaxReached, "accessible-label": this.accessibleButtonLabel, "accessible-owns": identifier, size: "small", variation: "secondary", fixed: true, icon: "action-add-circle", part: this.identifier ? `${this.identifier}-button-upload` : "duet-upload-button-upload" }, this.buttonLabel)), h$1("duet-spacer", { size: "medium" }), (this.fileMaxReached || this.bytesMaxReached) && (h$1("duet-alert", { part: this.identifier ? `${this.identifier}-error-notification` : "duet-upload-error-notification" }, this.fileMaxReached && getI18nError("duet-upload-301"), this.bytesMaxReached && getI18nError("duet-upload-202"))), h$1("duet-spacer", { size: "medium" }), h$1("duet-visually-hidden", null, h$1("input", { ref: input => {
12401
12840
  this.nativeInput = input;
12402
12841
  }, accept: !this.limitSelection ? undefined : `${this.allowedMimetypes},${this.allowedExtensions}`, onBlur: this.onBlur, onFocus: this.onFocus, onChange: e => this.onChange(e), type: "file", class: {
12403
12842
  "duet-upload": true,
@@ -12654,6 +13093,7 @@ const DuetCheckbox = /*@__PURE__*/proxyCustomElement(DuetCheckbox$1, [2,"duet-ch
12654
13093
  const DuetChoice = /*@__PURE__*/proxyCustomElement(DuetChoice$1, [6,"duet-choice",{"theme":[1025],"label":[1],"accessibleLabelInfoButtonDefaults":[1,"accessible-label-info-default"],"accessibleLabelInfoButton":[1,"accessible-label-info-button"],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"caption":[1],"value":[1537],"type":[513],"name":[1],"checked":[1540],"collapsible":[4],"margin":[1],"icon":[1],"expand":[4],"padding":[1],"identifier":[1],"groupDirection":[1,"group-direction"],"groupDisabled":[4,"group-disabled"],"groupResponsive":[4,"group-responsive"],"disabled":[516],"required":[4],"infoLabelDefaults":[1,"accessible-label-info-default"],"infoLabel":[1,"info-label"],"isHovering":[32],"isInfoOpen":[32],"isBlurred":[32]},[[2,"blur","handleHostBlur"],[2,"keydown","handleHostKeyDown"],[2,"keyup","handleHostKeyUp"]]]);
12655
13094
  const DuetChoiceGroup = /*@__PURE__*/proxyCustomElement(DuetChoiceGroup$1, [6,"duet-choice-group",{"direction":[1],"margin":[1],"theme":[1025],"error":[1],"name":[1],"label":[1],"labelHidden":[4,"label-hidden"],"caption":[1],"tooltip":[1],"tooltipDirection":[1,"tooltip-direction"],"responsive":[4],"value":[1537],"disabled":[4]}]);
12656
13095
  const DuetCollapsible = /*@__PURE__*/proxyCustomElement(DuetCollapsible$1, [1,"duet-collapsible",{"theme":[1025],"heading":[1],"headingWeight":[1,"heading-weight"],"headingSize":[1,"heading-size"],"headingLevel":[1,"heading-level"],"margin":[1],"open":[1540]}]);
13096
+ const DuetCombobox = /*@__PURE__*/proxyCustomElement(DuetCombobox$1, [6,"duet-combobox",{"accessibleLabelDefaults":[1,"accessible-label-defaults"],"accessibleLabels":[16],"theme":[1025],"force":[4],"items":[1032],"formatter":[16],"value":[1537],"processedItems":[32],"inputWidth":[32],"inputValue":[32],"selectionMsg":[32],"listOpen":[32],"selectedItems":[32],"activeItem":[32]},[[4,"click","handleDocumentClick"]]]);
12657
13097
  const DuetCookieConsent = /*@__PURE__*/proxyCustomElement(DuetCookieConsent$1, [1,"duet-cookie-consent",{"accessibleLabel":[1,"accessible-label"],"theme":[1025]}]);
12658
13098
  const DuetDatePicker = /*@__PURE__*/proxyCustomElement(DuetDatePicker$1, [2,"duet-date-picker",{"theme":[1025],"expand":[4],"name":[1],"identifier":[1],"label":[1],"caption":[1],"margin":[1],"language":[1],"placeholderDefaults":[1,"placeholder-default"],"placeholder":[1],"echoPlaceholder":[1540,"echo-placeholder"],"disabled":[516],"error":[1],"labelHidden":[4,"label-hidden"],"role":[1],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"required":[4],"direction":[1],"tooltip":[1],"tooltipDirection":[1,"tooltip-direction"],"value":[1537],"min":[1],"max":[1],"incrementYears":[2,"increment"],"validity":[1040],"open":[32],"focusedDay":[32],"inputValue":[32]},[[4,"click","handleDocumentClick"]]]);
12659
13099
  const DuetDivider = /*@__PURE__*/proxyCustomElement(DuetDivider$1, [1,"duet-divider",{"theme":[1025],"margin":[1]}]);
@@ -12663,11 +13103,11 @@ const DuetFieldset = /*@__PURE__*/proxyCustomElement(DuetFieldset$1, [1,"duet-fi
12663
13103
  const DuetFooter = /*@__PURE__*/proxyCustomElement(DuetFooter$1, [1,"duet-footer",{"theme":[1025],"variation":[1],"margin":[1],"logoHref":[1,"logo-href"],"language":[1025],"items":[8],"accessibleLabelExternalDefaults":[1,"accessible-label-external-default"],"accessibleLabelExternal":[1,"accessible-label-external"],"menu":[8],"processedItems":[32],"processedMenu":[32]}]);
12664
13104
  const DuetGrid = /*@__PURE__*/proxyCustomElement(DuetGrid$1, [2,"duet-grid",{"responsive":[4],"breakpoint":[1],"direction":[1],"alignment":[1],"distribution":[1],"mobile":[1],"distributeFormElement":[32]}]);
12665
13105
  const DuetGridItem = /*@__PURE__*/proxyCustomElement(DuetGridItem$1, [2,"duet-grid-item",{"fill":[4],"maxWidth":[1,"max-width"],"minWidth":[1,"min-width"],"theme":[1025],"margin":[1],"responsive":[4],"breakpoint":[1]}]);
12666
- const DuetHeader = /*@__PURE__*/proxyCustomElement(DuetHeader$1, [1,"duet-header",{"theme":[1025],"language":[1025],"accessibleI18nLabelsDefaults":[1,"accessible-labels-default"],"accessibleI18nLabels":[16],"accessibleLabelExternalDefaults":[1,"accessible-label-external-default"],"accessibleLabelExternal":[1,"accessible-label-external"],"accessibleLabelDefaults":[1,"accessible-label-default"],"accessibleLabel":[1,"accessible-label"],"user":[8],"logoHref":[1,"logo-href"],"currentHref":[1025,"current-href"],"skipToId":[1,"skip-to-id"],"items":[8],"region":[1],"session":[8],"search":[8],"back":[8],"contact":[1],"contactItems":[8,"contact-items"],"languageItems":[8,"language-items"],"isContactOpen":[32],"isLanguageOpen":[32],"isSlideOutOpen":[32],"isSegmentOpen":[32],"openMenu":[32],"closedActives":[32],"processedItems":[32],"processedLanguageItems":[32],"processedContactItems":[32],"processedSession":[32],"processedSearch":[32],"processedUser":[32],"processedBack":[32],"renderDesktopNav":[32]},[[8,"keyup","handleKeyUp"],[8,"keydown","handleKeyDown"],[4,"focus","handleDocumentClick"],[4,"click","handleDocumentClick"]]]);
13106
+ const DuetHeader = /*@__PURE__*/proxyCustomElement(DuetHeader$1, [1,"duet-header",{"theme":[1025],"language":[1025],"accessibleI18nLabelsDefaults":[1,"accessible-labels-default"],"accessibleI18nLabels":[16],"accessibleLabelExternalDefaults":[1,"accessible-label-external-default"],"accessibleLabelExternal":[1,"accessible-label-external"],"accessibleLabelDefaults":[1,"accessible-label-default"],"accessibleLabel":[1,"accessible-label"],"user":[8],"logoHref":[1,"logo-href"],"currentHref":[1025,"current-href"],"skipToId":[1,"skip-to-id"],"items":[8],"region":[1],"session":[8],"search":[8],"back":[8],"contact":[1],"contactItems":[8,"contact-items"],"languageItems":[8,"language-items"],"isContactOpen":[32],"isLanguageOpen":[32],"isSessionOpen":[32],"isSlideOutOpen":[32],"isSegmentOpen":[32],"openMenu":[32],"closedActives":[32],"processedItems":[32],"processedLanguageItems":[32],"processedContactItems":[32],"processedSession":[32],"processedSearch":[32],"processedUser":[32],"processedBack":[32],"renderDesktopNav":[32]},[[8,"keyup","handleKeyUp"],[8,"keydown","handleKeyDown"],[4,"focus","handleDocumentClick"],[4,"click","handleDocumentClick"]]]);
12667
13107
  const DuetHeading = /*@__PURE__*/proxyCustomElement(DuetHeading$1, [1,"duet-heading",{"level":[513],"margin":[1],"visualLevel":[1,"visual-level"],"border":[8],"weight":[1],"color":[1],"theme":[1025],"hyphenate":[4]}]);
12668
13108
  const DuetHero = /*@__PURE__*/proxyCustomElement(DuetHero$1, [1,"duet-hero",{"theme":[1025],"heading":[1],"preHeading":[1,"pre-heading"],"level":[1],"description":[1],"icon":[1],"iconSize":[1,"icon-size"],"iconRight":[4,"icon-right"],"categoryIcon":[1,"category-icon"],"categoryIconColor":[1,"category-icon-color"],"buttonLabel":[1,"button-label"],"language":[1025],"accessibleLabelExternalDefaults":[1,"accessible-label-external-default"],"accessibleLabelExternal":[1,"accessible-label-external"],"buttonUrl":[1,"button-url"],"buttonId":[1,"button-id"],"buttonData":[16],"textCenter":[4,"text-center"],"leftAlign":[4,"left-align"],"image":[1],"variation":[1],"back":[8],"listItems":[8,"list-items"],"actions":[8],"processedListItems":[32],"processedActions":[32],"processedBack":[32]}]);
12669
13109
  const DuetIcon = /*@__PURE__*/proxyCustomElement(DuetIcon$1, [1,"duet-icon",{"theme":[1025],"icon":[1],"src":[1],"name":[1],"margin":[1],"responsive":[4],"color":[513],"background":[1],"size":[1],"outline":[1],"svgContent":[32]}]);
12670
- const DuetInput = /*@__PURE__*/proxyCustomElement(DuetInput$1, [6,"duet-input",{"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleAutocomplete":[1,"accessible-autocomplete"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"debounce":[2],"caption":[1],"echoPlaceholder":[4,"echo-placeholder"],"theme":[1025],"expand":[4],"disabled":[516],"identifier":[1],"margin":[1],"required":[4],"type":[1],"label":[1],"error":[1],"labelHidden":[4,"label-hidden"],"numericKeyboard":[4,"numeric-keyboard"],"name":[1],"pattern":[1],"maxlength":[2],"minlength":[2],"placeholder":[1],"component":[1],"role":[1],"icon":[1],"autoComplete":[1,"auto-complete"],"disallowPattern":[1,"disallow-pattern"],"value":[1025],"tooltip":[1],"tooltipDirection":[1,"tooltip-direction"]}]);
13110
+ const DuetInput = /*@__PURE__*/proxyCustomElement(DuetInput$1, [6,"duet-input",{"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleAutocomplete":[1,"accessible-autocomplete"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleExpanded":[1,"accessible-expanded"],"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleHasPopup":[1,"accessible-has-popup"],"debounce":[2],"caption":[1],"echoPlaceholder":[4,"echo-placeholder"],"theme":[1025],"expand":[4],"disabled":[516],"identifier":[1],"margin":[1],"required":[4],"type":[1],"label":[1],"error":[1],"labelHidden":[4,"label-hidden"],"numericKeyboard":[4,"numeric-keyboard"],"name":[1],"pattern":[1],"maxlength":[2],"minlength":[2],"placeholder":[1],"component":[1],"role":[1],"icon":[1],"autoComplete":[1,"auto-complete"],"disallowPattern":[1,"disallow-pattern"],"value":[1025],"tooltip":[1],"tooltipDirection":[1,"tooltip-direction"]}]);
12671
13111
  const DuetLabel = /*@__PURE__*/proxyCustomElement(DuetLabel$1, [6,"duet-label",{"theme":[1025],"for":[1],"margin":[1],"size":[1]}]);
12672
13112
  const DuetLayout = /*@__PURE__*/proxyCustomElement(DuetLayout$1, [1,"duet-layout",{"sticky":[4],"margin":[1],"stickyDistance":[1,"sticky-distance"],"center":[4],"tabs":[4],"middle":[4]}]);
12673
13113
  const DuetLink = /*@__PURE__*/proxyCustomElement(DuetLink$1, [17,"duet-link",{"accessibleLabel":[1,"accessible-label"],"language":[1025],"accessibleLabelExternalDefaults":[1,"accessible-label-external-default"],"accessibleLabelExternal":[1,"accessible-label-external"],"identifier":[1],"theme":[1025],"url":[513],"external":[4]}]);
@@ -12692,7 +13132,7 @@ const DuetSpinner = /*@__PURE__*/proxyCustomElement(DuetSpinner$1, [1,"duet-spin
12692
13132
  const DuetStep = /*@__PURE__*/proxyCustomElement(DuetStep$1, [6,"duet-step",{"theme":[1025],"heading":[1],"headingLevel":[1,"heading-level"],"stepIndex":[2,"step-index"],"state":[1],"roundedTop":[4,"rounded-top"],"roundedBottom":[4,"rounded-bottom"]}]);
12693
13133
  const DuetStepper = /*@__PURE__*/proxyCustomElement(DuetStepper$1, [1,"duet-stepper",{"theme":[1025],"accessibleLive":[1,"accessible-live"],"margin":[1],"backDisabled":[4,"back-disabled"],"selected":[514]},[[0,"duetStepClick","onDuetStepClick"]]]);
12694
13134
  const DuetTab = /*@__PURE__*/proxyCustomElement(DuetTab$1, [6,"duet-tab",{"label":[513],"selected":[516],"accessibleDescriptionDefault":[1,"accessible-description-defaults"],"accessibleDescription":[1,"accessible-description"]}]);
12695
- const DuetTabGroup = /*@__PURE__*/proxyCustomElement(DuetTabGroup$1, [1,"duet-tab-group",{"theme":[1025],"scrolls":[4],"collapses":[4],"variation":[1],"language":[1025],"labelDefaults":[1,"label-default"],"label":[1],"labelHidden":[4,"label-hidden"],"identifier":[1],"margin":[1],"padding":[1],"tabs":[32],"selected":[32]}]);
13135
+ const DuetTabGroup = /*@__PURE__*/proxyCustomElement(DuetTabGroup$1, [1,"duet-tab-group",{"theme":[1025],"scrolls":[4],"collapses":[4],"accessibleLabel":[1,"accessible-label"],"variation":[1],"language":[1025],"labelDefaults":[1,"label-default"],"label":[1],"labelHidden":[4,"label-hidden"],"identifier":[1],"margin":[1],"padding":[1],"tabs":[32],"selected":[32]}]);
12696
13136
  const DuetTable = /*@__PURE__*/proxyCustomElement(DuetTable$1, [4,"duet-table",{"theme":[1025],"margin":[1],"variation":[1],"sticky":[4],"stickyDistance":[1,"sticky-distance"],"breakpoint":[1],"matchesBreakpoint":[32]}]);
12697
13137
  const DuetTextarea = /*@__PURE__*/proxyCustomElement(DuetTextarea$1, [2,"duet-textarea",{"margin":[1],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleAutocomplete":[1,"accessible-autocomplete"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"theme":[1025],"expand":[4],"disabled":[516],"identifier":[1],"required":[4],"label":[1],"labelHidden":[4,"label-hidden"],"name":[1],"placeholder":[1],"caption":[1],"echoPlaceholder":[4,"echo-placeholder"],"maxlength":[2],"minlength":[2],"error":[1],"role":[1],"tooltip":[1],"tooltipDirection":[1,"tooltip-direction"],"value":[1025],"disallowPattern":[1,"disallow-pattern"],"counter":[4],"counterLabel":[1,"counter-label"]}]);
12698
13138
  const DuetToggle = /*@__PURE__*/proxyCustomElement(DuetToggle$1, [2,"duet-toggle",{"theme":[1025],"margin":[1],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"label":[1],"required":[4],"disabled":[516],"checked":[1540],"value":[1537],"identifier":[1],"name":[1],"role":[1]}]);
@@ -12716,6 +13156,7 @@ const defineCustomElements = (opts) => {
12716
13156
  DuetChoice,
12717
13157
  DuetChoiceGroup,
12718
13158
  DuetCollapsible,
13159
+ DuetCombobox,
12719
13160
  DuetCookieConsent,
12720
13161
  DuetDatePicker,
12721
13162
  DuetDivider,
@@ -13163,4 +13604,4 @@ const shadowCss = /*#__PURE__*/Object.freeze({
13163
13604
  scopeCss: scopeCss
13164
13605
  });
13165
13606
 
13166
- export { DuetActionButton, DuetAlert, DuetBadge, DuetBreadcrumb, DuetBreadcrumbs, DuetButton, DuetCaption, DuetCard, DuetCheckbox, DuetChoice, DuetChoiceGroup, DuetCollapsible, DuetCookieConsent, DuetDatePicker, DuetDivider, DuetEditableTable, DuetEmptyState, DuetFieldset, DuetFooter, DuetGrid, DuetGridItem, DuetHeader, DuetHeading, DuetHero, DuetIcon, DuetInput, DuetLabel, DuetLayout, DuetLink, DuetList, DuetListItem, DuetLogo, DuetModal, DuetNotification, DuetNotificationDrawer, DuetNumberInput, DuetPagination, DuetParagraph, DuetProgress, DuetRadio, DuetRadioGroup, DuetRangeSlider, DuetRangeStepper, DuetScrollable, DuetSelect, DuetSpacer, DuetSpinner, DuetStep, DuetStepper, DuetTab, DuetTabGroup, DuetTable, DuetTextarea, DuetToggle, DuetTooltip, DuetTray, DuetUpload, DuetUploadAriaStatus, DuetVisuallyHidden, defineCustomElements, setAssetPath, setPlatformOptions };
13607
+ export { DuetActionButton, DuetAlert, DuetBadge, DuetBreadcrumb, DuetBreadcrumbs, DuetButton, DuetCaption, DuetCard, DuetCheckbox, DuetChoice, DuetChoiceGroup, DuetCollapsible, DuetCombobox, DuetCookieConsent, DuetDatePicker, DuetDivider, DuetEditableTable, DuetEmptyState, DuetFieldset, DuetFooter, DuetGrid, DuetGridItem, DuetHeader, DuetHeading, DuetHero, DuetIcon, DuetInput, DuetLabel, DuetLayout, DuetLink, DuetList, DuetListItem, DuetLogo, DuetModal, DuetNotification, DuetNotificationDrawer, DuetNumberInput, DuetPagination, DuetParagraph, DuetProgress, DuetRadio, DuetRadioGroup, DuetRangeSlider, DuetRangeStepper, DuetScrollable, DuetSelect, DuetSpacer, DuetSpinner, DuetStep, DuetStepper, DuetTab, DuetTabGroup, DuetTable, DuetTextarea, DuetToggle, DuetTooltip, DuetTray, DuetUpload, DuetUploadAriaStatus, DuetVisuallyHidden, defineCustomElements, setAssetPath, setPlatformOptions };