@duetds/components 5.0.3 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/hydrate/index.js +491 -16
  2. package/lib/cjs/duet-action-button.cjs.entry.js +5 -5
  3. package/lib/cjs/duet-alert.cjs.entry.js +2 -2
  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 +2 -2
  7. package/lib/cjs/duet-button_2.cjs.entry.js +4 -4
  8. package/lib/cjs/duet-caption_4.cjs.entry.js +4 -4
  9. package/lib/cjs/duet-card.cjs.entry.js +5 -5
  10. package/lib/cjs/duet-checkbox.cjs.entry.js +2 -2
  11. package/lib/cjs/duet-choice_2.cjs.entry.js +4 -4
  12. package/lib/cjs/duet-collapsible.cjs.entry.js +4 -4
  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 +10 -5
  16. package/lib/cjs/duet-divider_2.cjs.entry.js +2 -2
  17. package/lib/cjs/duet-editable-table_3.cjs.entry.js +9 -7
  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 +4 -4
  21. package/lib/cjs/duet-grid_2.cjs.entry.js +3 -3
  22. package/lib/cjs/duet-header_2.cjs.entry.js +40 -9
  23. package/lib/cjs/duet-hero.cjs.entry.js +2 -2
  24. package/lib/cjs/duet-icon.cjs.entry.js +4 -4
  25. package/lib/cjs/duet-input_2.cjs.entry.js +42 -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 +4 -4
  29. package/lib/cjs/duet-notification_2.cjs.entry.js +2 -2
  30. package/lib/cjs/duet-number-input.cjs.entry.js +3 -3
  31. package/lib/cjs/duet-pagination_2.cjs.entry.js +3 -3
  32. package/lib/cjs/duet-progress.cjs.entry.js +2 -2
  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 +3 -3
  36. package/lib/cjs/duet-select.cjs.entry.js +2 -2
  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 +2 -2
  41. package/lib/cjs/duet-tray.cjs.entry.js +3 -3
  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-be11fe84.js → focus-utils-be2df924.js} +1 -1
  46. package/lib/cjs/{index-4be1f8f7.js → index-608ca44d.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/loader.cjs.js +2 -2
  50. package/lib/cjs/themeable-component-940d3b50.js +15 -0
  51. package/lib/cjs/{token-utils-ac8432d1.js → token-utils-f402e205.js} +1 -1
  52. package/lib/cjs/{tokens-72efc7fd.js → tokens-8596cece.js} +0 -0
  53. package/lib/cjs/{tokens.module-6afcc9c1.js → tokens.module-6b2df1c2.js} +0 -0
  54. package/lib/collection/collection-manifest.json +1 -0
  55. package/lib/collection/components/duet-combobox/duet-combobox-select-single.js +12 -0
  56. package/lib/collection/components/duet-combobox/duet-combobox-select.js +19 -0
  57. package/lib/collection/components/duet-combobox/duet-combobox.css +78 -0
  58. package/lib/collection/components/duet-combobox/duet-combobox.js +592 -0
  59. package/lib/collection/components/duet-date-picker/duet-date-picker.js +24 -2
  60. package/lib/collection/components/duet-date-picker/utils.js +1 -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 +92 -2
  65. package/lib/collection/components/duet-upload/duet-upload.css +12 -0
  66. package/lib/collection/components/duet-upload/duet-upload.js +4 -1
  67. package/lib/collection/components/duet-upload/upload-editable-item-success.js +1 -1
  68. package/lib/collection/utils/input-utils.js +1 -1
  69. package/lib/collection/utils/themeable-component.js +5 -2
  70. package/lib/custom-elements-bundle/index.d.ts +6 -0
  71. package/lib/custom-elements-bundle/index.js +487 -28
  72. package/lib/duet/duet.esm.js +1 -1
  73. package/lib/duet/duet.js +1 -1
  74. package/lib/duet/{p-74586a15.system.entry.js → p-026083dd.system.entry.js} +1 -1
  75. package/lib/duet/{p-cdd335a3.entry.js → p-068a3522.entry.js} +1 -1
  76. package/lib/duet/{p-7e8d9165.entry.js → p-06b01be8.entry.js} +1 -1
  77. package/lib/duet/{p-dbc85b3a.entry.js → p-08c949c2.entry.js} +1 -1
  78. package/lib/duet/{p-1159dab0.system.entry.js → p-0cfe2b11.system.entry.js} +1 -1
  79. package/lib/duet/{p-71f87732.entry.js → p-143182be.entry.js} +1 -1
  80. package/lib/duet/p-156538ea.system.entry.js +4 -0
  81. package/lib/duet/{p-b6d748a9.system.entry.js → p-1dd368a3.system.entry.js} +1 -1
  82. package/lib/duet/{p-b72b4f9d.entry.js → p-1feabba1.entry.js} +1 -1
  83. package/lib/duet/{p-79f99668.entry.js → p-206f46ba.entry.js} +1 -1
  84. package/lib/duet/{p-22ed4dd2.entry.js → p-2287449d.entry.js} +1 -1
  85. package/lib/duet/{p-0c71c685.system.entry.js → p-23a19b83.system.entry.js} +1 -1
  86. package/lib/duet/{p-8824199e.system.entry.js → p-2866ccc1.system.entry.js} +1 -1
  87. package/lib/duet/{p-8f3be2e7.system.entry.js → p-29e73d8c.system.entry.js} +1 -1
  88. package/lib/duet/{p-33c8d8b9.entry.js → p-2f409514.entry.js} +1 -1
  89. package/lib/duet/{p-2a0ae7f6.system.entry.js → p-3048d8ef.system.entry.js} +1 -1
  90. package/lib/duet/{p-04ad8a51.system.js → p-31bc24a2.system.js} +1 -1
  91. package/lib/duet/{p-5be54927.entry.js → p-383c7df0.entry.js} +1 -1
  92. package/lib/duet/{p-24a9e68e.system.entry.js → p-388535da.system.entry.js} +1 -1
  93. package/lib/duet/p-3dfcf826.entry.js +4 -0
  94. package/lib/duet/{p-19a632b5.system.entry.js → p-41ff8913.system.entry.js} +1 -1
  95. package/lib/duet/{p-4a0d062b.entry.js → p-48ea1da4.entry.js} +1 -1
  96. package/lib/duet/{p-e171592e.entry.js → p-4c57fe8a.entry.js} +1 -1
  97. package/lib/duet/{p-77acbfe4.system.js → p-4e2532c7.system.js} +1 -1
  98. package/lib/duet/{p-364daea3.entry.js → p-4e4cce23.entry.js} +1 -1
  99. package/lib/duet/p-546444b0.system.entry.js +4 -0
  100. package/lib/duet/{p-fb3f8bae.entry.js → p-54724f73.entry.js} +1 -1
  101. package/lib/duet/p-54f35a79.js +4 -0
  102. package/lib/duet/p-56118313.js +4 -0
  103. package/lib/duet/{p-b9a23922.system.entry.js → p-58c20a42.system.entry.js} +1 -1
  104. package/lib/duet/{p-f40ab568.entry.js → p-60e2436b.entry.js} +1 -1
  105. package/lib/duet/{p-3e4f8f38.entry.js → p-63ac8866.entry.js} +1 -1
  106. package/lib/duet/{p-d8d93e29.system.js → p-64ebe689.system.js} +1 -1
  107. package/lib/duet/{p-3ab1a68a.entry.js → p-65a79da5.entry.js} +1 -1
  108. package/lib/duet/{p-8493e747.system.entry.js → p-69c0a7f6.system.entry.js} +1 -1
  109. package/lib/duet/p-6b03322b.system.js +4 -0
  110. package/lib/duet/{p-302a1111.system.entry.js → p-6b1abf52.system.entry.js} +1 -1
  111. package/lib/duet/{p-9bc80a7f.js → p-6b6176f4.js} +1 -1
  112. package/lib/duet/{p-480d4dcf.system.entry.js → p-6ba20e72.system.entry.js} +2 -2
  113. package/lib/duet/{p-0047c4f5.system.entry.js → p-6f4863db.system.entry.js} +1 -1
  114. package/lib/duet/{p-4c3d3d98.system.entry.js → p-6f603653.system.entry.js} +1 -1
  115. package/lib/duet/{p-5bb0d504.system.entry.js → p-7339eb94.system.entry.js} +1 -1
  116. package/lib/duet/{p-5208e8c8.entry.js → p-74728a74.entry.js} +1 -1
  117. package/lib/duet/{p-70090114.entry.js → p-7666b058.entry.js} +1 -1
  118. package/lib/duet/{p-cda9e6ea.entry.js → p-7729af53.entry.js} +1 -1
  119. package/lib/duet/p-7754c44f.entry.js +4 -0
  120. package/lib/duet/{p-c44470ff.entry.js → p-7a906647.entry.js} +1 -1
  121. package/lib/duet/{p-8c873050.system.entry.js → p-7aa17a19.system.entry.js} +1 -1
  122. package/lib/duet/{p-48c23e5c.entry.js → p-7f857142.entry.js} +1 -1
  123. package/lib/duet/{p-d7bc0102.js → p-8143f3de.js} +0 -0
  124. package/lib/duet/{p-49b566b8.entry.js → p-81c4e0b8.entry.js} +1 -1
  125. package/lib/duet/{p-7fe35615.system.entry.js → p-84afb642.system.entry.js} +1 -1
  126. package/lib/duet/{p-2724a54c.entry.js → p-85fe86ef.entry.js} +1 -1
  127. package/lib/duet/{p-839ea534.entry.js → p-887d51ae.entry.js} +1 -1
  128. package/lib/duet/{p-3cfbe168.entry.js → p-8cc38bb7.entry.js} +1 -1
  129. package/lib/duet/{p-a008aacc.entry.js → p-8f2b3690.entry.js} +1 -1
  130. package/lib/duet/p-93c1b85e.system.entry.js +4 -0
  131. package/lib/duet/{p-0e962ab1.system.entry.js → p-9592fa1f.system.entry.js} +1 -1
  132. package/lib/duet/{p-f65e0de6.system.entry.js → p-99dc86ab.system.entry.js} +1 -1
  133. package/lib/duet/{p-afe9e9f0.system.entry.js → p-9a47fd17.system.entry.js} +1 -1
  134. package/lib/duet/{p-8e7c504a.entry.js → p-9b0489b4.entry.js} +1 -1
  135. package/lib/duet/{p-a3506401.system.entry.js → p-9b282421.system.entry.js} +2 -2
  136. package/lib/duet/{p-36af1d4b.system.entry.js → p-9e06a7c7.system.entry.js} +1 -1
  137. package/lib/duet/p-a63f753e.system.js +4 -0
  138. package/lib/duet/{p-419e1df7.entry.js → p-a682a6a5.entry.js} +1 -1
  139. package/lib/duet/{p-25b156ea.entry.js → p-aa9d165e.entry.js} +1 -1
  140. package/lib/duet/{p-693cec9c.system.entry.js → p-ab3a0d39.system.entry.js} +1 -1
  141. package/lib/duet/p-ab8e590d.system.js +4 -0
  142. package/lib/duet/p-abf8eaf7.js +4 -0
  143. package/lib/duet/{p-ed75c8b3.js → p-ad07f399.js} +0 -0
  144. package/lib/duet/{p-14aba051.entry.js → p-b77d4386.entry.js} +1 -1
  145. package/lib/duet/{p-515fe415.system.entry.js → p-b7a86acf.system.entry.js} +1 -1
  146. package/lib/duet/p-badc3ac3.entry.js +4 -0
  147. package/lib/duet/{p-995288c0.entry.js → p-bc84c679.entry.js} +1 -1
  148. package/lib/duet/{p-1aa9b60c.system.entry.js → p-bdc61811.system.entry.js} +1 -1
  149. package/lib/duet/{p-38cc1d02.system.entry.js → p-c3019850.system.entry.js} +1 -1
  150. package/lib/duet/{p-9a8d5b11.system.js → p-c466bad9.system.js} +1 -1
  151. package/lib/duet/{p-68b50c43.entry.js → p-c5429708.entry.js} +1 -1
  152. package/lib/duet/{p-140cf44e.entry.js → p-ca55e1f8.entry.js} +1 -1
  153. package/lib/duet/{p-5746d88c.js → p-cb445018.js} +1 -1
  154. package/lib/duet/{p-f0dba299.system.entry.js → p-cd2e4ea8.system.entry.js} +1 -1
  155. package/lib/duet/{p-799f35c8.system.entry.js → p-d4734090.system.entry.js} +1 -1
  156. package/lib/duet/{p-d5a75400.system.entry.js → p-d8ebb48c.system.entry.js} +1 -1
  157. package/lib/duet/{p-29c093f0.entry.js → p-dca9237d.entry.js} +1 -1
  158. package/lib/duet/{p-268c0abb.system.js → p-ddb6344c.system.js} +0 -0
  159. package/lib/duet/p-df6b0878.system.entry.js +4 -0
  160. package/lib/duet/{p-7afb2bcf.system.entry.js → p-e4f8e874.system.entry.js} +1 -1
  161. package/lib/duet/{p-76f3205a.system.entry.js → p-e50c8c08.system.entry.js} +1 -1
  162. package/lib/duet/{p-b6339b38.system.entry.js → p-e5f9c7b8.system.entry.js} +1 -1
  163. package/lib/duet/{p-dca6993f.system.entry.js → p-e8a5580c.system.entry.js} +1 -1
  164. package/lib/duet/{p-d1549bd1.entry.js → p-e8da9596.entry.js} +1 -1
  165. package/lib/duet/{p-8594bc4d.entry.js → p-ea131807.entry.js} +1 -1
  166. package/lib/duet/{p-2be3b1ee.entry.js → p-ec340319.entry.js} +1 -1
  167. package/lib/duet/{p-2345965b.system.entry.js → p-ed1ea287.system.entry.js} +1 -1
  168. package/lib/duet/p-f37a0b50.entry.js +4 -0
  169. package/lib/duet/{p-bfc93e93.system.entry.js → p-f3ed1115.system.entry.js} +1 -1
  170. package/lib/duet/p-f42b06ec.entry.js +4 -0
  171. package/lib/duet/{p-343975bc.js → p-f5ced40a.js} +1 -1
  172. package/lib/duet/{p-83aaed17.system.entry.js → p-f7e5404c.system.entry.js} +1 -1
  173. package/lib/duet/{p-636dfb04.system.entry.js → p-f9ddfbd3.system.entry.js} +1 -1
  174. package/lib/duet/{p-812b0905.system.js → p-fa99eaa4.system.js} +0 -0
  175. package/lib/esm/duet-action-button.entry.js +5 -5
  176. package/lib/esm/duet-alert.entry.js +2 -2
  177. package/lib/esm/duet-badge.entry.js +2 -2
  178. package/lib/esm/duet-breadcrumb.entry.js +2 -2
  179. package/lib/esm/duet-breadcrumbs.entry.js +2 -2
  180. package/lib/esm/duet-button_2.entry.js +4 -4
  181. package/lib/esm/duet-caption_4.entry.js +4 -4
  182. package/lib/esm/duet-card.entry.js +5 -5
  183. package/lib/esm/duet-checkbox.entry.js +2 -2
  184. package/lib/esm/duet-choice_2.entry.js +4 -4
  185. package/lib/esm/duet-collapsible.entry.js +4 -4
  186. package/lib/esm/duet-combobox.entry.js +386 -0
  187. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  188. package/lib/esm/duet-date-picker.entry.js +10 -5
  189. package/lib/esm/duet-divider_2.entry.js +2 -2
  190. package/lib/esm/duet-editable-table_3.entry.js +9 -7
  191. package/lib/esm/duet-empty-state.entry.js +2 -2
  192. package/lib/esm/duet-fieldset.entry.js +2 -2
  193. package/lib/esm/duet-footer.entry.js +4 -4
  194. package/lib/esm/duet-grid_2.entry.js +3 -3
  195. package/lib/esm/duet-header_2.entry.js +40 -9
  196. package/lib/esm/duet-hero.entry.js +2 -2
  197. package/lib/esm/duet-icon.entry.js +4 -4
  198. package/lib/esm/duet-input_2.entry.js +42 -4
  199. package/lib/esm/duet-layout.entry.js +1 -1
  200. package/lib/esm/duet-list_2.entry.js +2 -2
  201. package/lib/esm/duet-modal.entry.js +4 -4
  202. package/lib/esm/duet-notification_2.entry.js +2 -2
  203. package/lib/esm/duet-number-input.entry.js +3 -3
  204. package/lib/esm/duet-pagination_2.entry.js +3 -3
  205. package/lib/esm/duet-progress.entry.js +2 -2
  206. package/lib/esm/duet-radio_2.entry.js +2 -2
  207. package/lib/esm/duet-range-slider.entry.js +3 -3
  208. package/lib/esm/duet-scrollable_3.entry.js +3 -3
  209. package/lib/esm/duet-select.entry.js +2 -2
  210. package/lib/esm/duet-step_2.entry.js +3 -3
  211. package/lib/esm/duet-textarea.entry.js +3 -3
  212. package/lib/esm/duet-toggle.entry.js +2 -2
  213. package/lib/esm/duet-tooltip.entry.js +2 -2
  214. package/lib/esm/duet-tray.entry.js +3 -3
  215. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  216. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  217. package/lib/esm/duet.js +2 -2
  218. package/lib/esm/{focus-utils-e649bb9d.js → focus-utils-b6b1e60d.js} +1 -1
  219. package/lib/esm/{index-fe6fd837.js → index-0b088451.js} +1 -1
  220. package/lib/esm/{input-utils-f4cafee1.js → input-utils-de45e099.js} +1 -1
  221. package/lib/esm/{keyboard-utils-6eb55cd5.js → keyboard-utils-88ea1007.js} +2 -1
  222. package/lib/esm/loader.js +2 -2
  223. package/lib/esm/themeable-component-e8fc98bf.js +13 -0
  224. package/lib/esm/{token-utils-e9a0cb88.js → token-utils-e9a69acf.js} +1 -1
  225. package/lib/esm/{tokens-57d98824.js → tokens-e110dc89.js} +0 -0
  226. package/lib/esm/{tokens.module-a13e9683.js → tokens.module-49cbf963.js} +0 -0
  227. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  228. package/lib/esm-es5/duet-alert.entry.js +1 -1
  229. package/lib/esm-es5/duet-badge.entry.js +1 -1
  230. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  231. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  232. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  233. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  234. package/lib/esm-es5/duet-card.entry.js +1 -1
  235. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  236. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  237. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  238. package/lib/esm-es5/duet-combobox.entry.js +4 -0
  239. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  240. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  241. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  242. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  243. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  244. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  245. package/lib/esm-es5/duet-footer.entry.js +1 -1
  246. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  247. package/lib/esm-es5/duet-header_2.entry.js +2 -2
  248. package/lib/esm-es5/duet-hero.entry.js +1 -1
  249. package/lib/esm-es5/duet-icon.entry.js +1 -1
  250. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  251. package/lib/esm-es5/duet-layout.entry.js +1 -1
  252. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  253. package/lib/esm-es5/duet-modal.entry.js +1 -1
  254. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  255. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  256. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  257. package/lib/esm-es5/duet-progress.entry.js +1 -1
  258. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  259. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  260. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  261. package/lib/esm-es5/duet-select.entry.js +1 -1
  262. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  263. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  264. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  265. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  266. package/lib/esm-es5/duet-tray.entry.js +1 -1
  267. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  268. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  269. package/lib/esm-es5/duet.js +1 -1
  270. package/lib/esm-es5/focus-utils-b6b1e60d.js +4 -0
  271. package/lib/esm-es5/{index-fe6fd837.js → index-0b088451.js} +1 -1
  272. package/lib/esm-es5/input-utils-de45e099.js +4 -0
  273. package/lib/esm-es5/keyboard-utils-88ea1007.js +4 -0
  274. package/lib/esm-es5/loader.js +1 -1
  275. package/lib/esm-es5/themeable-component-e8fc98bf.js +4 -0
  276. package/lib/esm-es5/{token-utils-e9a0cb88.js → token-utils-e9a69acf.js} +1 -1
  277. package/lib/esm-es5/{tokens-57d98824.js → tokens-e110dc89.js} +0 -0
  278. package/lib/esm-es5/{tokens.module-a13e9683.js → tokens.module-49cbf963.js} +0 -0
  279. package/lib/html.html-data.json +56 -1
  280. package/lib/types/components/duet-combobox/duet-combobox-select-single.d.ts +8 -0
  281. package/lib/types/components/duet-combobox/duet-combobox-select.d.ts +14 -0
  282. package/lib/types/components/duet-combobox/duet-combobox.d.ts +131 -0
  283. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +4 -0
  284. package/lib/types/components/duet-footer/duet-footer.d.ts +4 -0
  285. package/lib/types/components/duet-header/duet-header.d.ts +8 -0
  286. package/lib/types/components/duet-input/duet-input.d.ts +17 -0
  287. package/lib/types/components.d.ts +115 -0
  288. package/package.json +7 -7
  289. package/lib/cjs/themeable-component-0c1be552.js +0 -12
  290. package/lib/duet/p-251ee915.system.entry.js +0 -4
  291. package/lib/duet/p-2759fa82.system.entry.js +0 -4
  292. package/lib/duet/p-2fd6f95a.system.js +0 -4
  293. package/lib/duet/p-35a8dcc6.entry.js +0 -4
  294. package/lib/duet/p-7385e892.entry.js +0 -4
  295. package/lib/duet/p-74780bca.system.js +0 -4
  296. package/lib/duet/p-898f30a5.js +0 -4
  297. package/lib/duet/p-9ad2878e.system.entry.js +0 -4
  298. package/lib/duet/p-9dfcd29a.js +0 -4
  299. package/lib/duet/p-a28cf57b.js +0 -4
  300. package/lib/duet/p-d1a4aa9c.entry.js +0 -4
  301. package/lib/duet/p-dc9de1e3.entry.js +0 -4
  302. package/lib/duet/p-efaa0c04.system.js +0 -4
  303. package/lib/esm/themeable-component-572685dd.js +0 -10
  304. package/lib/esm-es5/focus-utils-e649bb9d.js +0 -4
  305. package/lib/esm-es5/input-utils-f4cafee1.js +0 -4
  306. package/lib/esm-es5/keyboard-utils-6eb55cd5.js +0 -4
  307. 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.21"};
5
+ const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"2.2.23"};
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;
@@ -1874,8 +1875,11 @@ const getLocaleString = (langObject, languageOverride) => {
1874
1875
  };
1875
1876
 
1876
1877
  const inheritGlobalTheme = (component) => {
1877
- if (component.theme !== "default" && document.documentElement.classList.contains("duet-theme-turva")) {
1878
- component.theme = "turva";
1878
+ // this minor change enables duet-theme-XXXXX instead of just duet-theme-turva
1879
+ const classList = Array.from(document.documentElement.classList).join(" ") || "";
1880
+ const theme = /(duet-theme-)([a-z]*)/gis.exec(classList);
1881
+ if (theme && theme[1] === "duet-theme-") {
1882
+ component.theme = theme[2] === "default" ? "" : theme[2];
1879
1883
  }
1880
1884
  };
1881
1885
 
@@ -2627,7 +2631,7 @@ const DuetBreadcrumbs$1 = class extends H {
2627
2631
  return (h$1(Host, null, h$1("nav", { "aria-label": this.breadcrumbsAriaLabel, class: {
2628
2632
  "duet-breadcrumbs": true,
2629
2633
  "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)))))))));
2634
+ } }, 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
2635
  }
2632
2636
  get element() { return this; }
2633
2637
  static get style() { return duetBreadcrumbsCss; }
@@ -3026,7 +3030,7 @@ const DuetCard$1 = class extends H {
3026
3030
  onKeyDown: this.handleKeyDown,
3027
3031
  }
3028
3032
  : {};
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" })));
3033
+ 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
3034
  }
3031
3035
  /**
3032
3036
  * Sets focus on the specified `duet-card`. Use this method instead of the global
@@ -3304,6 +3308,7 @@ const convertToPrivate = (node) => {
3304
3308
  vnode.$name$ = node.vname;
3305
3309
  return vnode;
3306
3310
  };
3311
+ const Fragment = (_, children) => children;
3307
3312
 
3308
3313
  const focusElement = (element) => {
3309
3314
  if ("setFocus" in element) {
@@ -4388,6 +4393,382 @@ const DuetCollapsible$1 = class extends H {
4388
4393
  static get style() { return duetCollapsibleCss; }
4389
4394
  };
4390
4395
 
4396
+ const SelectSingle = ({ item, search = "", selected }) => {
4397
+ const regEx = search !== "" ? new RegExp("(" + search.split(" ").join("|") + ")", "gi") : undefined;
4398
+ return (h(Fragment, null,
4399
+ selected && h("duet-icon", { class: "option-icon", name: "messaging-checked", size: "xx-small", margin: "none" }),
4400
+ regEx ? (h("span", { class: "option-container", "aria-hidden": "true" },
4401
+ h("span", { innerHTML: item.name.replace(regEx, '<span class="highlight">$&</span>') }))) : (item.name),
4402
+ item.tags && h("span", { class: "option-tags" }, item.tags.join(", "))));
4403
+ };
4404
+
4405
+ const DuetComboBoxSelect = ({ item, active, total, selected, label = undefined, clickHandler = e => {
4406
+ e.preventDefault();
4407
+ }, keyHandler = e => {
4408
+ e.preventDefault();
4409
+ }, search, }) => {
4410
+ return (h("li", { class: {
4411
+ "list-item": true,
4412
+ option: true,
4413
+ active: active,
4414
+ selected: selected,
4415
+ }, 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})` },
4416
+ 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" },
4417
+ h(SelectSingle, { item: item, search: search, selected: selected }))));
4418
+ };
4419
+
4420
+ 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}";
4421
+
4422
+ const DuetCombobox$1 = class extends H {
4423
+ constructor() {
4424
+ super();
4425
+ this.__registerHost();
4426
+ this.duetChange = createEvent$2(this, "duetChange", 3);
4427
+ // Safari doesnt properly support aria-activedecendatn, the code associated with this bool is a workaround for that,
4428
+ // this should be removed when Safari fixes the issue
4429
+ // 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
4430
+ this.isSafari = false;
4431
+ this.resizeObserver = new ResizeObserver(debounce(entries => {
4432
+ var _a, _b;
4433
+ // otherwise, something is wrong, expecting 1 element only
4434
+ if ((entries === null || entries === void 0 ? void 0 : entries.length) === 1) {
4435
+ const currentWidth = (_b = (_a = entries[0]) === null || _a === void 0 ? void 0 : _a.target) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().width;
4436
+ this.listContainer.style.width = `${currentWidth + 1}px`;
4437
+ // this.listElement.style.width = `${currentWidth + 1}px`
4438
+ }
4439
+ }, 100));
4440
+ this.processedItems = null;
4441
+ this.inputWidth = 0;
4442
+ this.inputValue = "";
4443
+ this.selectionMsg = "";
4444
+ this.listOpen = false;
4445
+ // the selected item is based upon the DuetComboboxItem.id value
4446
+ this.selectedItems = new Set();
4447
+ // the activeItem number is based upon the array.index of the array stored in processedItems
4448
+ this.activeItem = undefined;
4449
+ /**
4450
+ * Placeholder defaults
4451
+ * @default { fi: "pp.kk.vvvv", en: "dd.mm.yyyy", sv: "dd.mm.åååå" }
4452
+ */
4453
+ this.accessibleLabelDefaults = {
4454
+ en: {
4455
+ heading: "Select:",
4456
+ item: "{name}, ({current} of {total})",
4457
+ itemFiltered: "{name}, ({current} of {total}, {hiddenItems} filtered)",
4458
+ },
4459
+ fi: {
4460
+ heading: "Valitse:",
4461
+ item: "{name}, ({current}/{total})",
4462
+ itemFiltered: "{name}, ({current}/{total}, {hiddenItems} suodatettu)",
4463
+ },
4464
+ sv: {
4465
+ heading: "Välj:",
4466
+ item: "{name}, ({current} av {total})",
4467
+ itemFiltered: "{name}, ({current} av {total}, {hiddenItems} filtrerade)",
4468
+ },
4469
+ };
4470
+ /**
4471
+ * Hint text to display before the user types into the date picker input.
4472
+ * @default {
4473
+ * heading: "Valitse:",
4474
+ * item: "{0}, ({1}/{2})",
4475
+ * itemFiltered: "{0}, ({1}/{2} - {3} suodatettu"
4476
+ * }
4477
+ */
4478
+ this.accessibleLabels = getLocaleString(parsePossibleJSON(this.accessibleLabelDefaults), getLanguage());
4479
+ /**
4480
+ * Theme of the combobox.
4481
+ */
4482
+ this.theme = "";
4483
+ /**
4484
+ * Force the user to make a selection (typing things in the input field will only be used for list search)
4485
+ */
4486
+ this.force = false;
4487
+ /**
4488
+ * A hook to overwrite how the values are displayed in the input field after a User select an item
4489
+ * @example (item) => `${item.name} (${item.value})`
4490
+ * @default undefined
4491
+ */
4492
+ this.formatter = (item) => item && item.name ? item.name : "";
4493
+ }
4494
+ activeItemHandler(state) {
4495
+ this.input.accessibleActiveDescendant = this.listOpen && (state || state === 0) ? `active_item` : "";
4496
+ }
4497
+ handleDocumentClick(e) {
4498
+ //we want to remove all user text if they have NOT selected from the dropdown
4499
+ const path = e.composedPath();
4500
+ const isClickOutside = path.every(el => el !== this.element);
4501
+ if (isClickOutside) {
4502
+ this.updateInputText(true);
4503
+ this.listOpen = false;
4504
+ }
4505
+ }
4506
+ /**
4507
+ * Exposes a formatter function to format the item value displayed after a user selects an item
4508
+ * @param item: DuetComboboxItem
4509
+ */
4510
+ async formatItem(item) {
4511
+ return this.formatter(item);
4512
+ }
4513
+ /**
4514
+ * Component lifecycle events.
4515
+ */
4516
+ componentWillLoad() {
4517
+ inheritGlobalTheme(this);
4518
+ }
4519
+ connectedCallback() {
4520
+ if (/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {
4521
+ this.isSafari = true;
4522
+ }
4523
+ this.items = this.processedItems = parsePossibleJSON(this.items);
4524
+ this.input = this.element.querySelector("duet-input");
4525
+ this.input.addEventListener("duetChange", this.updateInputValue.bind(this));
4526
+ this.input.addEventListener("click", () => {
4527
+ this.inputValue.length ? (this.listOpen = true) : (this.listOpen = false);
4528
+ });
4529
+ this.element.addEventListener("keydown", this.handleInputKeyDownEvent.bind(this));
4530
+ //add correct aria attributes to the input element
4531
+ this.input.accessibleAutocomplete = "list";
4532
+ this.input.accessibleControls = "duet-combobox-list-element";
4533
+ }
4534
+ disconnectedCallback() {
4535
+ this.input.removeEventListener("duetChange", this.updateInputValue.bind(this));
4536
+ this.input.removeEventListener("click", () => this.inputValue.length ? (this.listOpen = true) : (this.listOpen = false));
4537
+ this.element.removeEventListener("keydown", this.handleInputKeyDownEvent.bind(this));
4538
+ this.listElement.removeEventListener("click", e => {
4539
+ e.stopPropagation();
4540
+ });
4541
+ this.resizeObserver.disconnect();
4542
+ }
4543
+ componentDidLoad() {
4544
+ // observe resize events to dynamically adjust size of dropdown area
4545
+ this.resizeObserver.observe(this.input);
4546
+ this.listElement.addEventListener("click", e => {
4547
+ e.stopPropagation();
4548
+ });
4549
+ }
4550
+ /**
4551
+ * Updates the input text based on the selected/clicked items.
4552
+ * @param event - event
4553
+ *'param item: DuetComboboxItem - the item that was selected
4554
+ */
4555
+ onListClick(e, item) {
4556
+ e.preventDefault();
4557
+ // update selected item with id
4558
+ this.updateSelectedItems(item.id);
4559
+ this.listOpen = false;
4560
+ return this.listOpen;
4561
+ }
4562
+ /**
4563
+ * Helper function that checks inputs in the field, compares it with the item list and returns true when inputvalue matches selectedItem id
4564
+ * TODO: this should be disabled in multiple mode
4565
+ */
4566
+ shouldListBeFiltered() {
4567
+ if (this.selectedItems.size && this.input.value === this.inputValue) {
4568
+ const item = this.items.filter(item => this.selectedItems.has(item.id));
4569
+ return !(this.formatter(item).toLowerCase() === this.input.value.toLowerCase());
4570
+ }
4571
+ return true;
4572
+ }
4573
+ /**
4574
+ * Helper function that return correct collection depending on filter status returend by shouldListBeFiltered
4575
+ */
4576
+ returnFilteredOrNonFiltered() {
4577
+ return this.processedItems
4578
+ ? this.shouldListBeFiltered()
4579
+ ? this.getFilteredItems()
4580
+ : this.sortFilteredItems(this.processedItems)
4581
+ : [];
4582
+ }
4583
+ /**
4584
+ * Updates the selected items based on the item id.
4585
+ * @param id
4586
+ * @private
4587
+ */
4588
+ async updateSelectedItems(id) {
4589
+ // for a multiple scenario wrap this in an if/else and just don't clear here
4590
+ this.selectedItems.clear();
4591
+ if (this.selectedItems) {
4592
+ if (this.selectedItems.has(id)) {
4593
+ this.selectedItems.delete(id);
4594
+ }
4595
+ else {
4596
+ this.selectedItems.add(id);
4597
+ }
4598
+ }
4599
+ await this.updateInputText();
4600
+ }
4601
+ /**
4602
+ * Updates the input text based on the selected/clicked items.
4603
+ * @param bool -override to clear if invoked by "click outside"
4604
+ */
4605
+ async updateInputText(isBlurred = false) {
4606
+ const item = this.selectedItems.size === 0 ? [] : this.items.filter(item => this.selectedItems.has(item.id));
4607
+ if (this.selectedItems.size === 1) {
4608
+ this.input.value = ""; // set value to empty so that cursor position follows accordingly
4609
+ this.input.value = await this.formatItem(item[0]);
4610
+ this.input.scrollLeft = this.input.scrollWidth;
4611
+ this.activeItem = undefined;
4612
+ this.value = await this.formatItem(item[0]);
4613
+ this.duetChange.emit({
4614
+ value: item[0].value,
4615
+ item: item[0],
4616
+ component: "duet-combobox",
4617
+ });
4618
+ }
4619
+ else if (isBlurred && this.selectedItems.size === 0) {
4620
+ //if nothing is selected and a user clicks outside, we want the input field to clearly illustrate that nothing was selected
4621
+ if (this.force) {
4622
+ this.inputValue = "";
4623
+ this.input.value = "";
4624
+ }
4625
+ this.activeItem = undefined;
4626
+ }
4627
+ this.listOpen = false;
4628
+ }
4629
+ updateInputValue(e) {
4630
+ var _a;
4631
+ this.inputValue = e.detail.value;
4632
+ this.listOpen = String(this.inputValue).length > 0 && ((_a = this.getFilteredItems()) === null || _a === void 0 ? void 0 : _a.length) > 0;
4633
+ }
4634
+ handleInputKeyDownEvent(e) {
4635
+ //if selection is made, close the list and update internal and external values
4636
+ // this should be set to undefined on everything BUT up/down arrow according to the aria 1.1 specs
4637
+ // https://www.w3.org/TR/wai-aria-practices-1.1/#combobox
4638
+ this.input.accessibleActiveDescendant = undefined;
4639
+ if (isEnterKey(e)) {
4640
+ e.preventDefault();
4641
+ this.selectActiveItem();
4642
+ this.listOpen = false;
4643
+ return;
4644
+ }
4645
+ //tabbing out or escaping, restore initial state
4646
+ if (isEscapeKey(e) || isTabKey(e)) {
4647
+ this.updateInputText(true);
4648
+ this.listOpen = false;
4649
+ return;
4650
+ }
4651
+ //handle arrow up/down navigation
4652
+ let nextActiveItem = this.activeItem;
4653
+ if (isArrowUpKey(e)) {
4654
+ e.preventDefault();
4655
+ nextActiveItem = this.activeItem - 1;
4656
+ }
4657
+ else if (isArrowDownKey(e)) {
4658
+ e.preventDefault();
4659
+ nextActiveItem = this.listOpen ? this.activeItem + 1 : this.activeItem;
4660
+ this.listOpen = true;
4661
+ }
4662
+ if (isArrowDownKey(e) || isArrowUpKey(e)) {
4663
+ const listItems = this.shouldListBeFiltered() ? this.getFilteredItems() : this.processedItems;
4664
+ if (nextActiveItem < 0 || !nextActiveItem) {
4665
+ nextActiveItem = 0;
4666
+ }
4667
+ if (nextActiveItem >= listItems.length) {
4668
+ nextActiveItem = listItems.length - 1;
4669
+ }
4670
+ // this should be set to undefined on everything BUT up/down arrow according to the aria 1.1 specs
4671
+ // https://www.w3.org/TR/wai-aria-practices-1.1/#combobox
4672
+ this.input.accessibleActiveDescendant = "active_item";
4673
+ this.activeItem = nextActiveItem;
4674
+ this.scrollToActive();
4675
+ }
4676
+ this.announceActive();
4677
+ return;
4678
+ }
4679
+ selectActiveItem() {
4680
+ if (this.activeItem === undefined) {
4681
+ return;
4682
+ }
4683
+ const filteredItem = this.returnFilteredOrNonFiltered();
4684
+ const item = filteredItem[this.activeItem];
4685
+ this.updateSelectedItems(item.id);
4686
+ }
4687
+ announceActive(items) {
4688
+ if (!items) {
4689
+ items = this.returnFilteredOrNonFiltered();
4690
+ }
4691
+ if (this.activeItem === undefined || this.activeItem === -1) {
4692
+ return;
4693
+ }
4694
+ const item = items[this.activeItem];
4695
+ this.selectionMsg = this.formatLabel(item, items.length, this.items.length);
4696
+ }
4697
+ //function that scrolls to the li element with the class "active"
4698
+ scrollToActive() {
4699
+ const activeElement = this.listElement.querySelector(".active");
4700
+ if (activeElement) {
4701
+ activeElement.scrollIntoView({
4702
+ behavior: "smooth",
4703
+ block: "center",
4704
+ });
4705
+ }
4706
+ }
4707
+ formatLabel(item, length, itemsLength) {
4708
+ if (!item || itemsLength === undefined) {
4709
+ return "";
4710
+ }
4711
+ const labelString = length === itemsLength ? this.accessibleLabels.item : this.accessibleLabels.itemFiltered;
4712
+ return labelString
4713
+ .replace("{name}", String(item.name))
4714
+ .replace("{current}", String(this.activeItem + 1))
4715
+ .replace("{total}", String(length))
4716
+ .replace("{hiddenItems}", String(itemsLength - length));
4717
+ }
4718
+ /**
4719
+ * Filter the items based on the input value
4720
+ */
4721
+ getFilteredItems() {
4722
+ // filter items based on user inputs
4723
+ const filteredItems = this.processedItems.filter(item =>
4724
+ // filter by name and value
4725
+ // if value contains inputvalue
4726
+ String(item.value).toLowerCase().includes(this.inputValue.toLowerCase()) ||
4727
+ // if name contains input value
4728
+ String(item.name).toLowerCase().includes(this.inputValue.toLowerCase()) ||
4729
+ // if the item is selected
4730
+ this.selectedItems.has(item.id));
4731
+ return this.sortFilteredItems(filteredItems);
4732
+ }
4733
+ /**
4734
+ * Sort the return from getFilteredItems so that any item with and item.id that matches this.selectedItems is placed first
4735
+ */
4736
+ sortFilteredItems(items) {
4737
+ if (items.length > 0) {
4738
+ items
4739
+ .filter(item => this.selectedItems.has(item.id))
4740
+ .forEach(item => {
4741
+ const index = items.indexOf(item);
4742
+ items.splice(index, 1);
4743
+ items.unshift(item);
4744
+ });
4745
+ }
4746
+ return items;
4747
+ }
4748
+ /**
4749
+ * render() function
4750
+ * Always the last one in the class.
4751
+ */
4752
+ render() {
4753
+ const selectElements = this.returnFilteredOrNonFiltered();
4754
+ 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: {
4755
+ "duet-combobox": true,
4756
+ [`duet-theme-${this.theme}`]: true,
4757
+ } }, 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: {
4758
+ "duet-combobox-list": true,
4759
+ open: this.listOpen,
4760
+ }, ref: el => (this.listContainer = el) }, h$1("ul", { role: "listbox", ref: el => (this.listElement = el), id: "duet-combobox-list-element", class: "listbox" }, this.processedItems &&
4761
+ selectElements.map((item, index) => {
4762
+ 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) }));
4763
+ })))));
4764
+ }
4765
+ get element() { return this; }
4766
+ static get watchers() { return {
4767
+ "activeItem": ["activeItemHandler"]
4768
+ }; }
4769
+ static get style() { return duetComboboxCss; }
4770
+ };
4771
+
4391
4772
  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
4773
 
4393
4774
  const DuetCookieConsent$1 = class extends H {
@@ -4738,6 +5119,7 @@ const DatePickerDay = ({ focusedDay, today, day, language, onDaySelect, onKeyboa
4738
5119
  * @param to
4739
5120
  */
4740
5121
  function range(from, to) {
5122
+ console.log({ from, to });
4741
5123
  var result = [];
4742
5124
  for (var i = from; i <= to; i++) {
4743
5125
  result.push(i);
@@ -4933,6 +5315,10 @@ const DuetDatePicker$1 = class extends H {
4933
5315
  * This setting can be used alone or together with the min property.
4934
5316
  */
4935
5317
  this.max = "";
5318
+ /**
5319
+ * Increment to add to years, defaults to 10 for simplicity, if you need a larger selectionspace you can set it to 100
5320
+ */
5321
+ this.incrementYears = 10;
4936
5322
  this.enableActiveFocus = () => {
4937
5323
  this.focusTarget = "day-button";
4938
5324
  };
@@ -5198,8 +5584,8 @@ const DuetDatePicker$1 = class extends H {
5198
5584
  const maxDate = parseISODate(this.max);
5199
5585
  const prevMonthDisabled = minDate != null && minDate.getMonth() === focusedMonth && minDate.getFullYear() === focusedYear;
5200
5586
  const nextMonthDisabled = maxDate != null && maxDate.getMonth() === focusedMonth && maxDate.getFullYear() === focusedYear;
5201
- let minYear = selectedYear - 10;
5202
- let maxYear = selectedYear + 10;
5587
+ let minYear = selectedYear - this.incrementYears;
5588
+ let maxYear = selectedYear + this.incrementYears;
5203
5589
  if (minDate) {
5204
5590
  minYear = Math.max(minYear, minDate.getFullYear());
5205
5591
  }
@@ -5689,9 +6075,9 @@ const DuetFooter$1 = class extends H {
5689
6075
  "duet-m-0": this.margin === "none",
5690
6076
  "duet-theme-turva": this.theme === "turva",
5691
6077
  "duet-footer-simple": this.variation === "simple",
5692
- } }, 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 &&
6078
+ } }, 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 &&
5693
6079
  this.variation !== "simple" &&
5694
- 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" }, "/"))))))))));
6080
+ 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" }, "/"))))))))));
5695
6081
  }
5696
6082
  get element() { return this; }
5697
6083
  static get watchers() { return {
@@ -6155,7 +6541,7 @@ const DuetHeaderHamburger = () => (h("div", { class: "duet-header-hamburger" },
6155
6541
  h("span", { class: "duet-header-bar" }),
6156
6542
  h("span", { class: "duet-header-bar" })));
6157
6543
 
6158
- 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}";
6544
+ 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}";
6159
6545
 
6160
6546
  const createEvent = (ev, data) => ({
6161
6547
  component: "duet-header",
@@ -6193,6 +6579,7 @@ const DuetHeader$1 = class extends H {
6193
6579
  */
6194
6580
  this.isContactOpen = false;
6195
6581
  this.isLanguageOpen = false;
6582
+ this.isSessionOpen = false;
6196
6583
  this.isSlideOutOpen = false;
6197
6584
  this.isSegmentOpen = false;
6198
6585
  this.openMenu = null;
@@ -6344,6 +6731,11 @@ const DuetHeader$1 = class extends H {
6344
6731
  this.handleClick(e);
6345
6732
  this.duetSessionClick.emit(e);
6346
6733
  };
6734
+ this.handleSessionItemClick = (ev, item) => {
6735
+ const e = createEvent(ev, item);
6736
+ this.handleClick(e);
6737
+ this.duetSessionClick.emit(e);
6738
+ };
6347
6739
  this.handleSearchClick = (ev) => {
6348
6740
  const e = createEvent(ev, this.processedSearch);
6349
6741
  this.handleClick(e);
@@ -6406,13 +6798,23 @@ const DuetHeader$1 = class extends H {
6406
6798
  this.isContactOpen = false;
6407
6799
  this.isLanguageOpen = !this.isLanguageOpen;
6408
6800
  this.isSegmentOpen = false;
6801
+ this.isSessionOpen = false;
6409
6802
  el = this.languageItemsEl;
6410
6803
  }
6804
+ // For session menu
6805
+ if (type === "session") {
6806
+ this.isContactOpen = false;
6807
+ this.isLanguageOpen = false;
6808
+ this.isSegmentOpen = false;
6809
+ this.isSessionOpen = !this.isSessionOpen;
6810
+ el = this.sessionItemsEl;
6811
+ }
6411
6812
  // For contact menu
6412
6813
  else if (type === "contact") {
6413
6814
  this.isLanguageOpen = false;
6414
6815
  this.isContactOpen = !this.isContactOpen;
6415
6816
  this.isSegmentOpen = false;
6817
+ this.isSessionOpen = false;
6416
6818
  el = this.contactItemsEl;
6417
6819
  }
6418
6820
  // For mobile menu
@@ -6420,6 +6822,7 @@ const DuetHeader$1 = class extends H {
6420
6822
  this.isContactOpen = false;
6421
6823
  this.isLanguageOpen = false;
6422
6824
  this.isSegmentOpen = false;
6825
+ this.isSessionOpen = false;
6423
6826
  el = this.navigationEl;
6424
6827
  this.isSlideOutOpen = !this.isSlideOutOpen;
6425
6828
  if (this.isSlideOutOpen) {
@@ -6433,15 +6836,22 @@ const DuetHeader$1 = class extends H {
6433
6836
  this.isContactOpen = false;
6434
6837
  this.isLanguageOpen = false;
6435
6838
  this.isSegmentOpen = false;
6839
+ this.isSessionOpen = false;
6436
6840
  el = this.subMenuItemRefs[id];
6437
6841
  }
6438
6842
  else if (type === "segment") {
6439
6843
  this.isContactOpen = false;
6440
6844
  this.isLanguageOpen = false;
6845
+ this.isSessionOpen = false;
6441
6846
  this.isSegmentOpen = !this.isSegmentOpen;
6442
6847
  el = this.segmentItemsEl;
6443
6848
  }
6444
- if (this.isSlideOutOpen || this.isLanguageOpen || this.isContactOpen || this.isSegmentOpen || this.openMenu) {
6849
+ if (this.isSlideOutOpen ||
6850
+ this.isLanguageOpen ||
6851
+ this.isContactOpen ||
6852
+ this.isSegmentOpen ||
6853
+ this.isSessionOpen ||
6854
+ this.openMenu) {
6445
6855
  const drawer = this.element.querySelector("duet-notification-drawer");
6446
6856
  if (drawer) {
6447
6857
  drawer.close(false);
@@ -6565,7 +6975,7 @@ const DuetHeader$1 = class extends H {
6565
6975
  * Closes all dropdown menus in header when called.
6566
6976
  */
6567
6977
  async closeMenus(moveFocusToButton = false) {
6568
- if (this.isContactOpen || this.isLanguageOpen || this.isSegmentOpen || this.openMenu) {
6978
+ if (this.isContactOpen || this.isLanguageOpen || this.isSegmentOpen || this.isSessionOpen || this.openMenu) {
6569
6979
  if (this.isContactOpen && moveFocusToButton) {
6570
6980
  this.contactItemsButtonEl.focus({
6571
6981
  preventScroll: true,
@@ -6581,6 +6991,11 @@ const DuetHeader$1 = class extends H {
6581
6991
  preventScroll: true,
6582
6992
  });
6583
6993
  }
6994
+ if (this.isSessionOpen && moveFocusToButton) {
6995
+ this.sessionItemsButtonEl.focus({
6996
+ preventScroll: true,
6997
+ });
6998
+ }
6584
6999
  if (this.openMenu && moveFocusToButton) {
6585
7000
  this.subMenuButtonRefs[this.openMenu].focus({
6586
7001
  preventScroll: true,
@@ -6589,6 +7004,7 @@ const DuetHeader$1 = class extends H {
6589
7004
  this.isContactOpen = false;
6590
7005
  this.isLanguageOpen = false;
6591
7006
  this.isSegmentOpen = false;
7007
+ this.isSessionOpen = false;
6592
7008
  this.openMenu = null;
6593
7009
  }
6594
7010
  }
@@ -6608,12 +7024,13 @@ const DuetHeader$1 = class extends H {
6608
7024
  const skipToLabel = this.skipToId ? (h$1("a", { href: this.skipToId, class: "duet-header-skip", onClick: this.handleSkipClick }, skipLabel)) : null;
6609
7025
  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 }));
6610
7026
  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 }));
6611
- 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;
7027
+ 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;
6612
7028
  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;
6613
7029
  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;
6614
7030
  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;
6615
7031
  const processedSessionIconSize = this.renderDesktopNav ? "x-small" : "small";
6616
7032
  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;
7033
+ 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;
6617
7034
  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;
6618
7035
  // Back variation
6619
7036
  if (this.processedBack) {
@@ -6646,7 +7063,7 @@ const DuetHeader$1 = class extends H {
6646
7063
  const id = secondLevelItem.id || `segment-item-${secondLevelItemIndex}`;
6647
7064
  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 &&
6648
7065
  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" }))))));
6649
- })), h$1("div", { class: "duet-header-multi-level-desktop-utils" }, processedSearch, languageDropdown, processedSession), h$1("slot", { name: "utility" }))))));
7066
+ })), h$1("div", { class: "duet-header-multi-level-desktop-utils" }, processedSearch, languageDropdown, processedSessionDropdown != null ? processedSessionDropdown : processedSession), h$1("slot", { name: "utility" }))))));
6650
7067
  }
6651
7068
  // Default variation
6652
7069
  const isSecondLevelActive = this.processedItems &&
@@ -6701,7 +7118,7 @@ const DuetHeader$1 = class extends H {
6701
7118
  "duet-header-item": true,
6702
7119
  active: thirdLevelItem.active === true,
6703
7120
  }, 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" })))))));
6704
- }))))), 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))))));
7121
+ }))))), 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))))));
6705
7122
  }
6706
7123
  get element() { return this; }
6707
7124
  static get watchers() { return {
@@ -7195,7 +7612,7 @@ function resetCursor(domElement) {
7195
7612
  }
7196
7613
  };
7197
7614
  }
7198
- return () => console.log("domElement not valid");
7615
+ return () => true;
7199
7616
  }
7200
7617
  /**
7201
7618
  * Given an input and a regex, remove any characters from the input's value
@@ -7245,6 +7662,14 @@ const DuetInput$1 = class extends H {
7245
7662
  this.topCaptionPlaceholderId = createID("DuetCaptionPlaceholderTop");
7246
7663
  this.errorId = createID("DuetError");
7247
7664
  this.disallowPatternRegex = null;
7665
+ /**
7666
+ * Indicates the id of a component that describes the input.
7667
+ */
7668
+ this.accessibleDescribedBy = "";
7669
+ /**
7670
+ * Indicates value of any popup element associated with the input.
7671
+ */
7672
+ this.accessibleHasPopup = undefined;
7248
7673
  /**
7249
7674
  * Set the amount of time, in milliseconds, to wait to trigger the duetChange
7250
7675
  * event after each keystroke.
@@ -7350,6 +7775,25 @@ const DuetInput$1 = class extends H {
7350
7775
  component: "duet-input",
7351
7776
  });
7352
7777
  };
7778
+ /** Private functions
7779
+ *
7780
+ */
7781
+ this.getDescribedBy = () => {
7782
+ let describedBy = "";
7783
+ if (this.isCaptionVisible && this.topCaptionId) {
7784
+ describedBy = this.topCaptionId;
7785
+ if (this.accessibleDescribedBy) {
7786
+ describedBy += " " + this.accessibleDescribedBy;
7787
+ }
7788
+ }
7789
+ else if (this.accessibleDescribedBy.length > 0) {
7790
+ describedBy = this.accessibleDescribedBy;
7791
+ }
7792
+ else {
7793
+ describedBy = undefined;
7794
+ }
7795
+ return describedBy;
7796
+ };
7353
7797
  }
7354
7798
  disallowedPatternChange() {
7355
7799
  this.disallowPatternRegex = this.disallowPattern ? new RegExp(this.disallowPattern, "g") : null;
@@ -7393,6 +7837,17 @@ const DuetInput$1 = class extends H {
7393
7837
  this.nativeInput.focus(options);
7394
7838
  }
7395
7839
  }
7840
+ /**
7841
+ * Reset the cursor position on the native element
7842
+ * `input.resetCursor()`.
7843
+ */
7844
+ async resetCursor() {
7845
+ if (this.nativeInput) {
7846
+ const restoreCursor = resetCursor(this.nativeInput);
7847
+ this.nativeInput.value = this.value;
7848
+ restoreCursor();
7849
+ }
7850
+ }
7396
7851
  /**
7397
7852
  * render() function
7398
7853
  * Always the last one in the class.
@@ -7422,7 +7877,7 @@ const DuetInput$1 = class extends H {
7422
7877
  disabled: this.disabled,
7423
7878
  "is-number": this.component === "number",
7424
7879
  "is-date": this.component === "date",
7425
- }, 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.isCaptionVisible ? this.topCaptionId : ""} ${this.accessibleDescribedBy}`, 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)))));
7880
+ }, 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)))));
7426
7881
  }
7427
7882
  get element() { return this; }
7428
7883
  static get watchers() { return {
@@ -7614,7 +8069,7 @@ const DuetLink$1 = class extends H {
7614
8069
  "duet-link": true,
7615
8070
  "duet-link-is-external": this.external,
7616
8071
  "duet-theme-turva": this.theme === "turva",
7617
- }, 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" })))))));
8072
+ }, 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" })))))));
7618
8073
  }
7619
8074
  static get delegatesFocus() { return true; }
7620
8075
  static get style() { return duetLinkCss; }
@@ -8925,7 +9380,7 @@ const DuetPagination$1 = class extends H {
8925
9380
  }, role: "menubar", "aria-label": this.accessibleLabels.pagination_label, "aria-description": this.accessibleLabels.description }, h$1("li", { class: {
8926
9381
  "duet-pagination-page-button": true,
8927
9382
  "duet-pagination-button-first": true,
8928
- }, 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: {
9383
+ }, 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: {
8929
9384
  "duet-pagination-page-button": true,
8930
9385
  "duet-pagination-button-last": true,
8931
9386
  }, role: "menuitem", part: "navigation-arrow" }, h$1("duet-action-button", { disabled: this.current === this.totalPages &&
@@ -11284,7 +11739,7 @@ const DuetTray$1 = class extends H {
11284
11739
  "duet-tray-is-responsive": this.responsive,
11285
11740
  "duet-theme-turva": this.theme === "turva",
11286
11741
  "duet-tray-is-expandable": this.hasAdditionalContent,
11287
- } }, 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" })))))));
11742
+ } }, 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" })))))));
11288
11743
  }
11289
11744
  get element() { return this; }
11290
11745
  static get style() { return duetTrayCss; }
@@ -11479,7 +11934,7 @@ const SuccessItem = ({ data, showLinks }) => {
11479
11934
  const { item, size, uploaded, url, meta } = data;
11480
11935
  const { name } = item;
11481
11936
  const ContentName = (h("span", { class: "duet-upload-item-name" },
11482
- h("duet-icon", { margin: "none", size: "xx-small", name: "messaging-attachment" }),
11937
+ h("duet-icon", { margin: "none", size: "x-small", name: "messaging-attachment" }),
11483
11938
  h("duet-spacer", { size: "xx-small", direction: "horizontal" }),
11484
11939
  name));
11485
11940
  const SizeText = (h("span", { class: "duet-upload-item-size", style: { fontSize: "14px", fontWeight: "400" } },
@@ -11618,7 +12073,7 @@ const makeXhrRequest = ({ payload, options, onFailure, onSuccess, onProgress })
11618
12073
  return xhr;
11619
12074
  };
11620
12075
 
11621
- 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}";
12076
+ 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}";
11622
12077
 
11623
12078
  const DuetUpload$1 = class extends H {
11624
12079
  constructor() {
@@ -12369,7 +12824,9 @@ const DuetUpload$1 = class extends H {
12369
12824
  "duet-upload-filelist-empty": !this.files.size,
12370
12825
  "duet-upload-filelist": true,
12371
12826
  "duet-upload-filelist-filled": this.files.size,
12372
- }, 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 => {
12827
+ }, id: this.labelId, for: identifier }, h$1("span", { class: {
12828
+ "duet-upload-filelist-empty-label": !this.files.size,
12829
+ } }, 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 => {
12373
12830
  this.nativeInput = input;
12374
12831
  }, accept: !this.limitSelection ? undefined : `${this.allowedMimetypes},${this.allowedExtensions}`, onBlur: this.onBlur, onFocus: this.onFocus, onChange: e => this.onChange(e), type: "file", class: {
12375
12832
  "duet-upload": true,
@@ -12626,8 +13083,9 @@ const DuetCheckbox = /*@__PURE__*/proxyCustomElement(DuetCheckbox$1, [2,"duet-ch
12626
13083
  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"]]]);
12627
13084
  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]}]);
12628
13085
  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]}]);
13086
+ 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"]]]);
12629
13087
  const DuetCookieConsent = /*@__PURE__*/proxyCustomElement(DuetCookieConsent$1, [1,"duet-cookie-consent",{"accessibleLabel":[1,"accessible-label"],"theme":[1025]}]);
12630
- 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],"validity":[1040],"open":[32],"focusedDay":[32],"inputValue":[32]},[[4,"click","handleDocumentClick"]]]);
13088
+ 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"]]]);
12631
13089
  const DuetDivider = /*@__PURE__*/proxyCustomElement(DuetDivider$1, [1,"duet-divider",{"theme":[1025],"margin":[1]}]);
12632
13090
  const DuetEditableTable = /*@__PURE__*/proxyCustomElement(DuetEditableTable$1, [6,"duet-editable-table",{"margin":[1],"variation":[1],"sticky":[4],"stickyDistance":[1,"sticky-distance"],"breakpoint":[1],"actions":[1040],"columns":[1040],"rows":[1040],"sortable":[4],"groupId":[1,"group-id"],"theme":[1025],"accessibleRole":[1,"accessible-role"]}]);
12633
13091
  const DuetEmptyState = /*@__PURE__*/proxyCustomElement(DuetEmptyState$1, [1,"duet-empty-state",{"theme":[1025],"icon":[1],"size":[1]}]);
@@ -12635,11 +13093,11 @@ const DuetFieldset = /*@__PURE__*/proxyCustomElement(DuetFieldset$1, [1,"duet-fi
12635
13093
  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]}]);
12636
13094
  const DuetGrid = /*@__PURE__*/proxyCustomElement(DuetGrid$1, [2,"duet-grid",{"responsive":[4],"breakpoint":[1],"direction":[1],"alignment":[1],"distribution":[1],"mobile":[1],"distributeFormElement":[32]}]);
12637
13095
  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]}]);
12638
- 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"]]]);
13096
+ 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"]]]);
12639
13097
  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]}]);
12640
13098
  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]}]);
12641
13099
  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]}]);
12642
- 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"]}]);
13100
+ 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"]}]);
12643
13101
  const DuetLabel = /*@__PURE__*/proxyCustomElement(DuetLabel$1, [6,"duet-label",{"theme":[1025],"for":[1],"margin":[1],"size":[1]}]);
12644
13102
  const DuetLayout = /*@__PURE__*/proxyCustomElement(DuetLayout$1, [1,"duet-layout",{"sticky":[4],"margin":[1],"stickyDistance":[1,"sticky-distance"],"center":[4],"tabs":[4],"middle":[4]}]);
12645
13103
  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]}]);
@@ -12688,6 +13146,7 @@ const defineCustomElements = (opts) => {
12688
13146
  DuetChoice,
12689
13147
  DuetChoiceGroup,
12690
13148
  DuetCollapsible,
13149
+ DuetCombobox,
12691
13150
  DuetCookieConsent,
12692
13151
  DuetDatePicker,
12693
13152
  DuetDivider,
@@ -13135,4 +13594,4 @@ const shadowCss = /*#__PURE__*/Object.freeze({
13135
13594
  scopeCss: scopeCss
13136
13595
  });
13137
13596
 
13138
- 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 };
13597
+ 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 };