@duetds/components 10.4.0 → 10.6.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 (486) hide show
  1. package/hydrate/index.js +686 -318
  2. package/hydrate/index.mjs +686 -318
  3. package/lib/cjs/{a11y-utils-BXDHn_nL.js → a11y-utils-CgWjS7yq.js} +1 -1
  4. package/lib/cjs/{app-globals-Bs3-XKhd.js → app-globals-D68ciWsb.js} +1 -1
  5. package/lib/cjs/duet-action-button.cjs.entry.js +6 -6
  6. package/lib/cjs/duet-alert.cjs.entry.js +4 -4
  7. package/lib/cjs/duet-badge.cjs.entry.js +29 -6
  8. package/lib/cjs/duet-banner.cjs.entry.js +15 -16
  9. package/lib/cjs/duet-breadcrumb.cjs.entry.js +7 -7
  10. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +7 -7
  11. package/lib/cjs/duet-button_2.cjs.entry.js +9 -9
  12. package/lib/cjs/duet-callout.cjs.entry.js +5 -5
  13. package/lib/cjs/duet-caption_4.cjs.entry.js +13 -13
  14. package/lib/cjs/duet-card.cjs.entry.js +21 -10
  15. package/lib/cjs/duet-checkbox.cjs.entry.js +3 -3
  16. package/lib/cjs/duet-checkmark.cjs.entry.js +4 -4
  17. package/lib/cjs/duet-chip.cjs.entry.js +29 -16
  18. package/lib/cjs/duet-choice_2.cjs.entry.js +20 -22
  19. package/lib/cjs/duet-collapsible.cjs.entry.js +4 -4
  20. package/lib/cjs/duet-combobox.cjs.entry.js +6 -7
  21. package/lib/cjs/duet-contact-card.cjs.entry.js +17 -7
  22. package/lib/cjs/duet-cookie-consent.cjs.entry.js +3 -3
  23. package/lib/cjs/duet-date-picker.cjs.entry.js +128 -14
  24. package/lib/cjs/duet-divider_2.cjs.entry.js +6 -6
  25. package/lib/cjs/duet-editable-table_3.cjs.entry.js +17 -17
  26. package/lib/cjs/duet-empty-state.cjs.entry.js +4 -4
  27. package/lib/cjs/duet-fieldset.cjs.entry.js +6 -6
  28. package/lib/cjs/duet-file-chooser.cjs.entry.js +3 -3
  29. package/lib/cjs/duet-footer.cjs.entry.js +9 -9
  30. package/lib/cjs/duet-grid_2.cjs.entry.js +7 -7
  31. package/lib/cjs/duet-header_2.cjs.entry.js +7 -7
  32. package/lib/cjs/duet-hero.cjs.entry.js +22 -21
  33. package/lib/cjs/duet-icon.cjs.entry.js +7 -7
  34. package/lib/cjs/duet-indicator.cjs.entry.js +5 -5
  35. package/lib/cjs/duet-input_2.cjs.entry.js +132 -23
  36. package/lib/cjs/duet-layout.cjs.entry.js +7 -7
  37. package/lib/cjs/duet-list_2.cjs.entry.js +5 -5
  38. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +4 -4
  39. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +5 -5
  40. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +7 -7
  41. package/lib/cjs/duet-menu-bar-item.cjs.entry.js +7 -7
  42. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +4 -4
  43. package/lib/cjs/duet-menu-bar.cjs.entry.js +6 -6
  44. package/lib/cjs/duet-modal.cjs.entry.js +15 -15
  45. package/lib/cjs/duet-multiselect.cjs.entry.js +11 -11
  46. package/lib/cjs/duet-nav.cjs.entry.js +3 -3
  47. package/lib/cjs/duet-notification_2.cjs.entry.js +10 -10
  48. package/lib/cjs/duet-number-input.cjs.entry.js +14 -12
  49. package/lib/cjs/duet-overlay.cjs.entry.js +3 -3
  50. package/lib/cjs/duet-page-heading.cjs.entry.js +20 -5
  51. package/lib/cjs/duet-pagination_2.cjs.entry.js +20 -21
  52. package/lib/cjs/duet-panel.cjs.entry.js +4 -4
  53. package/lib/cjs/duet-phone-input.cjs.entry.js +23 -6
  54. package/lib/cjs/duet-popup-menu_2.cjs.entry.js +10 -10
  55. package/lib/cjs/duet-progress.cjs.entry.js +3 -3
  56. package/lib/cjs/duet-promo-card.cjs.entry.js +20 -8
  57. package/lib/cjs/duet-radio_2.cjs.entry.js +7 -10
  58. package/lib/cjs/duet-range-slider.cjs.entry.js +8 -8
  59. package/lib/cjs/duet-scrollable_3.cjs.entry.js +18 -18
  60. package/lib/cjs/duet-section-layout.cjs.entry.js +4 -4
  61. package/lib/cjs/duet-select.cjs.entry.js +9 -9
  62. package/lib/cjs/duet-shaped-image.cjs.entry.js +4 -4
  63. package/lib/cjs/duet-share-chart-item.cjs.entry.js +2 -2
  64. package/lib/cjs/duet-share-chart.cjs.entry.js +8 -8
  65. package/lib/cjs/duet-show-more.cjs.entry.js +6 -6
  66. package/lib/cjs/duet-slideout-lang.cjs.entry.js +4 -4
  67. package/lib/cjs/duet-slideout-link.cjs.entry.js +7 -7
  68. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +6 -6
  69. package/lib/cjs/duet-slideout-panel.cjs.entry.js +13 -13
  70. package/lib/cjs/duet-slideout.cjs.entry.js +20 -14
  71. package/lib/cjs/duet-status-icon.cjs.entry.js +3 -3
  72. package/lib/cjs/duet-step_2.cjs.entry.js +7 -7
  73. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +5 -5
  74. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +7 -7
  75. package/lib/cjs/duet-submenu-bar-item.cjs.entry.js +7 -7
  76. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +4 -4
  77. package/lib/cjs/duet-submenu-bar.cjs.entry.js +7 -7
  78. package/lib/cjs/duet-textarea.cjs.entry.js +8 -8
  79. package/lib/cjs/duet-toggle.cjs.entry.js +9 -9
  80. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +5 -5
  81. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +7 -7
  82. package/lib/cjs/duet-toolbar-item.cjs.entry.js +8 -8
  83. package/lib/cjs/duet-toolbar-link.cjs.entry.js +4 -4
  84. package/lib/cjs/duet-toolbar.cjs.entry.js +4 -4
  85. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +14 -12
  86. package/lib/cjs/duet-tooltip.cjs.entry.js +25 -8
  87. package/lib/cjs/duet-tray.cjs.entry.js +7 -7
  88. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +2 -2
  89. package/lib/cjs/duet-upload-item.cjs.entry.js +6 -6
  90. package/lib/cjs/duet-visually-hidden.cjs.entry.js +2 -2
  91. package/lib/cjs/duet.cjs.js +3 -3
  92. package/lib/cjs/{errorcodes.utils-W6UQ3hgy.js → errorcodes.utils-C0tQ3k6Z.js} +1 -1
  93. package/lib/cjs/{focus-utils-KTKpjKRi.js → focus-utils-tCoGOO7d.js} +1 -1
  94. package/lib/cjs/{index-C7Yvi8y8.js → index-BeiMjjVl.js} +9 -9
  95. package/lib/cjs/{keyboard-utils-D9UlHbik.js → keyboard-utils-DibQafwg.js} +2 -0
  96. package/lib/cjs/{label-DZ63Z3SI.js → label-Cu4DNShe.js} +1 -1
  97. package/lib/cjs/{language-utils-BsevPDrN.js → language-utils-B3NubUDr.js} +1 -1
  98. package/lib/cjs/loader.cjs.js +3 -3
  99. package/lib/cjs/picture-utils-D_HVgfq5.js +15 -0
  100. package/lib/cjs/{slot-utils-DIDW777s.js → slot-utils-Dny6EJ_G.js} +1 -1
  101. package/lib/cjs/{themeable-component-hQ83w5_A.js → themeable-component-Csdvrnsd.js} +1 -1
  102. package/lib/cjs/{token-utils-DY3-olMV.js → token-utils-ZISdNshf.js} +1 -1
  103. package/lib/cjs/{tokens.module-CTbvyezn.js → tokens.module-CGRpZaa1.js} +2 -1
  104. package/lib/collection/components/duet-action-button/duet-action-button.js +2 -2
  105. package/lib/collection/components/duet-alert/duet-alert.js +1 -1
  106. package/lib/collection/components/duet-badge/duet-badge.css +66 -5
  107. package/lib/collection/components/duet-badge/duet-badge.js +49 -2
  108. package/lib/collection/components/duet-banner/duet-banner.css +12 -0
  109. package/lib/collection/components/duet-banner/duet-banner.js +30 -5
  110. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +4 -4
  111. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +2 -2
  112. package/lib/collection/components/duet-button/duet-button.css +5 -0
  113. package/lib/collection/components/duet-button/duet-button.js +8 -8
  114. package/lib/collection/components/duet-callout/duet-callout.js +2 -2
  115. package/lib/collection/components/duet-caption/duet-caption.js +1 -1
  116. package/lib/collection/components/duet-card/duet-card.css +3 -0
  117. package/lib/collection/components/duet-card/duet-card.js +43 -7
  118. package/lib/collection/components/duet-checkbox/duet-checkbox.js +3 -3
  119. package/lib/collection/components/duet-chip/duet-chip.js +54 -21
  120. package/lib/collection/components/duet-choice/duet-checkmark.js +2 -2
  121. package/lib/collection/components/duet-choice/duet-choice.js +12 -12
  122. package/lib/collection/components/duet-choice-group/duet-choice-group.js +6 -8
  123. package/lib/collection/components/duet-collapsible/duet-collapsible.js +3 -3
  124. package/lib/collection/components/duet-combobox/duet-combobox.js +3 -4
  125. package/lib/collection/components/duet-contact-card/duet-contact-card.css +3 -0
  126. package/lib/collection/components/duet-contact-card/duet-contact-card.js +38 -2
  127. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.js +1 -1
  128. package/lib/collection/components/duet-date-picker/date-picker-month.js +4 -2
  129. package/lib/collection/components/duet-date-picker/date-utils.js +7 -0
  130. package/lib/collection/components/duet-date-picker/disallowed-days.js +23 -0
  131. package/lib/collection/components/duet-date-picker/duet-date-picker.js +103 -10
  132. package/lib/collection/components/duet-date-picker/finnish-bank-holidays.js +66 -0
  133. package/lib/collection/components/duet-divider/duet-divider.js +2 -2
  134. package/lib/collection/components/duet-editable-table/duet-editable-table.js +7 -7
  135. package/lib/collection/components/duet-empty-state/duet-empty-state.js +5 -5
  136. package/lib/collection/components/duet-fieldset/duet-fieldset.js +3 -3
  137. package/lib/collection/components/duet-file-chooser/duet-file-chooser.js +2 -2
  138. package/lib/collection/components/duet-footer/duet-footer.js +11 -11
  139. package/lib/collection/components/duet-grid/duet-grid.js +5 -5
  140. package/lib/collection/components/duet-grid-item/duet-grid-item.css +5 -0
  141. package/lib/collection/components/duet-grid-item/duet-grid-item.js +2 -2
  142. package/lib/collection/components/duet-header/duet-header.js +15 -15
  143. package/lib/collection/components/duet-heading/duet-heading.js +3 -3
  144. package/lib/collection/components/duet-hero/duet-hero.css +92 -14
  145. package/lib/collection/components/duet-hero/duet-hero.js +47 -21
  146. package/lib/collection/components/duet-icon/duet-icon.js +3 -3
  147. package/lib/collection/components/duet-indicator/duet-indicator.js +3 -3
  148. package/lib/collection/components/duet-input/duet-input.css +38 -3
  149. package/lib/collection/components/duet-input/duet-input.js +213 -27
  150. package/lib/collection/components/duet-label/duet-label.js +2 -2
  151. package/lib/collection/components/duet-layout/duet-layout.js +6 -6
  152. package/lib/collection/components/duet-link/duet-link.js +2 -2
  153. package/lib/collection/components/duet-list/duet-list.js +4 -4
  154. package/lib/collection/components/duet-list-item/duet-list-item.js +2 -2
  155. package/lib/collection/components/duet-logo/duet-logo.js +2 -2
  156. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +4 -4
  157. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +2 -2
  158. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +4 -4
  159. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +2 -2
  160. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.js +2 -2
  161. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +2 -2
  162. package/lib/collection/components/duet-modal/duet-modal.js +11 -11
  163. package/lib/collection/components/duet-multiselect/duet-multiselect.js +11 -11
  164. package/lib/collection/components/duet-nav/duet-nav.js +1 -1
  165. package/lib/collection/components/duet-notification/duet-notification.js +2 -2
  166. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +4 -4
  167. package/lib/collection/components/duet-number-input/duet-number-input.js +14 -13
  168. package/lib/collection/components/duet-overlay/duet-overlay.js +2 -2
  169. package/lib/collection/components/duet-page-heading/duet-page-heading.css +20 -1
  170. package/lib/collection/components/duet-page-heading/duet-page-heading.js +58 -2
  171. package/lib/collection/components/duet-pagination/duet-pagination.js +14 -15
  172. package/lib/collection/components/duet-panel/duet-panel.js +3 -3
  173. package/lib/collection/components/duet-paragraph/duet-paragraph.js +5 -5
  174. package/lib/collection/components/duet-phone-input/duet-phone-input.js +42 -5
  175. package/lib/collection/components/duet-popup-menu/duet-popup-menu.js +1 -1
  176. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +4 -4
  177. package/lib/collection/components/duet-promo-card/duet-promo-card.css +4 -0
  178. package/lib/collection/components/duet-promo-card/duet-promo-card.js +39 -2
  179. package/lib/collection/components/duet-radio/duet-radio.js +6 -9
  180. package/lib/collection/components/duet-radio-group/duet-radio-group.js +1 -1
  181. package/lib/collection/components/duet-range-slider/duet-range-slider.js +4 -4
  182. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +3 -3
  183. package/lib/collection/components/duet-scrollable/duet-scrollable.js +5 -5
  184. package/lib/collection/components/duet-section-layout/duet-section-layout.js +3 -3
  185. package/lib/collection/components/duet-select/duet-select.js +10 -10
  186. package/lib/collection/components/duet-shaped-image/duet-shaped-image.js +2 -2
  187. package/lib/collection/components/duet-share-chart/duet-share-chart.js +2 -2
  188. package/lib/collection/components/duet-share-chart-item/duet-share-chart-item.js +1 -1
  189. package/lib/collection/components/duet-show-more/duet-show-more.js +3 -3
  190. package/lib/collection/components/duet-slideout/duet-slideout.js +12 -6
  191. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +1 -1
  192. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +2 -2
  193. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +6 -6
  194. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +4 -4
  195. package/lib/collection/components/duet-spacer/duet-spacer.js +3 -3
  196. package/lib/collection/components/duet-spinner/duet-spinner.js +2 -2
  197. package/lib/collection/components/duet-status-icon/duet-status-icon.js +2 -2
  198. package/lib/collection/components/duet-step/duet-step.js +4 -4
  199. package/lib/collection/components/duet-stepper/duet-stepper.js +2 -2
  200. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +5 -5
  201. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +4 -4
  202. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +2 -2
  203. package/lib/collection/components/duet-submenu-bar-item/duet-submenu-bar-item.js +1 -1
  204. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +1 -1
  205. package/lib/collection/components/duet-tab/duet-tab.js +2 -2
  206. package/lib/collection/components/duet-tab-group/duet-tab-group.js +9 -9
  207. package/lib/collection/components/duet-table/duet-table-styles.js +5 -5
  208. package/lib/collection/components/duet-table/duet-table.js +2 -2
  209. package/lib/collection/components/duet-textarea/duet-textarea.js +7 -7
  210. package/lib/collection/components/duet-toggle/duet-toggle.js +4 -4
  211. package/lib/collection/components/duet-toolbar/duet-toolbar.js +2 -2
  212. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +4 -4
  213. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +2 -2
  214. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.js +3 -3
  215. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +2 -2
  216. package/lib/collection/components/duet-tooltip/duet-tooltip-button.css +18 -4
  217. package/lib/collection/components/duet-tooltip/duet-tooltip-button.js +25 -3
  218. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.css +1 -1
  219. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +3 -3
  220. package/lib/collection/components/duet-tooltip/duet-tooltip.js +48 -5
  221. package/lib/collection/components/duet-tray/duet-tray.js +2 -2
  222. package/lib/collection/components/duet-upload/duet-upload.js +16 -16
  223. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +1 -1
  224. package/lib/collection/components/duet-upload-item/duet-upload-item.js +4 -4
  225. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +1 -1
  226. package/lib/collection/utils/keyboard-utils.js +1 -0
  227. package/lib/collection/utils/math.utils.js +1 -0
  228. package/lib/duet/duet.esm.js +1 -1
  229. package/lib/duet/p-054c334d.entry.js +4 -0
  230. package/lib/duet/{p-81332db1.entry.js → p-0e10e36b.entry.js} +1 -1
  231. package/lib/duet/{p-428db44b.entry.js → p-12d7fdf6.entry.js} +1 -1
  232. package/lib/duet/{p-494755d0.entry.js → p-1579bdf5.entry.js} +1 -1
  233. package/lib/duet/{p-e8bd6dab.entry.js → p-174935bc.entry.js} +1 -1
  234. package/lib/duet/p-1d7a9425.entry.js +4 -0
  235. package/lib/duet/{p-2e413951.entry.js → p-20066df8.entry.js} +1 -1
  236. package/lib/duet/{p-6988c81c.entry.js → p-20c8226c.entry.js} +1 -1
  237. package/lib/duet/{p-1ee400e7.entry.js → p-210bc161.entry.js} +1 -1
  238. package/lib/duet/{p-fea479fd.entry.js → p-244bfbf9.entry.js} +1 -1
  239. package/lib/duet/{p-adecab91.entry.js → p-264688ae.entry.js} +1 -1
  240. package/lib/duet/{p-1dcbbd67.entry.js → p-2bf78fe4.entry.js} +1 -1
  241. package/lib/duet/{p-1bdef0e0.entry.js → p-2e44c6b8.entry.js} +1 -1
  242. package/lib/duet/{p-3c26d300.entry.js → p-304a9a55.entry.js} +1 -1
  243. package/lib/duet/{p-a63327c3.entry.js → p-30d8a1e4.entry.js} +1 -1
  244. package/lib/duet/p-3445529c.entry.js +4 -0
  245. package/lib/duet/{p-1666aeaf.entry.js → p-3533d6ee.entry.js} +1 -1
  246. package/lib/duet/{p-87bb797c.entry.js → p-374b48f6.entry.js} +1 -1
  247. package/lib/duet/{p-bcced6eb.entry.js → p-3b9d7f6a.entry.js} +1 -1
  248. package/lib/duet/{p-dc87f3f4.entry.js → p-3def9480.entry.js} +1 -1
  249. package/lib/duet/p-3fbe466a.entry.js +4 -0
  250. package/lib/duet/{p-12e4e9b6.entry.js → p-407d4e5a.entry.js} +1 -1
  251. package/lib/duet/p-41230630.entry.js +4 -0
  252. package/lib/duet/p-44e53564.entry.js +4 -0
  253. package/lib/duet/p-46287d85.entry.js +4 -0
  254. package/lib/duet/p-48e77341.entry.js +4 -0
  255. package/lib/duet/{p-fbce84d5.entry.js → p-4a041c60.entry.js} +1 -1
  256. package/lib/duet/p-4a251661.entry.js +4 -0
  257. package/lib/duet/p-4a4e5bb5.entry.js +4 -0
  258. package/lib/duet/{p-184d53a7.entry.js → p-4acdc586.entry.js} +1 -1
  259. package/lib/duet/{p-afd7d87a.entry.js → p-4b07ce36.entry.js} +1 -1
  260. package/lib/duet/{p-c71f6942.entry.js → p-4cee693b.entry.js} +1 -1
  261. package/lib/duet/{p-01f3e30c.entry.js → p-4e1c2676.entry.js} +1 -1
  262. package/lib/duet/{p-d181c624.entry.js → p-4e5532c8.entry.js} +1 -1
  263. package/lib/duet/{p-3bd45b5b.entry.js → p-512d18c8.entry.js} +1 -1
  264. package/lib/duet/p-555e0c78.entry.js +4 -0
  265. package/lib/duet/{p-13b7f4e0.entry.js → p-5b322a86.entry.js} +1 -1
  266. package/lib/duet/p-5f72134e.entry.js +4 -0
  267. package/lib/duet/{p-f210e405.entry.js → p-61abccd4.entry.js} +1 -1
  268. package/lib/duet/p-6a11ba26.entry.js +4 -0
  269. package/lib/duet/p-6bd78205.entry.js +4 -0
  270. package/lib/duet/p-6c239923.entry.js +4 -0
  271. package/lib/duet/{p-7a5066b8.entry.js → p-6ce82324.entry.js} +1 -1
  272. package/lib/duet/{p-526fa31c.entry.js → p-6d1d1199.entry.js} +1 -1
  273. package/lib/duet/p-81c5d3e3.entry.js +4 -0
  274. package/lib/duet/{p-f652a9c7.entry.js → p-829bccb7.entry.js} +1 -1
  275. package/lib/duet/p-83dcbb64.entry.js +4 -0
  276. package/lib/duet/{p-a4a1b8e3.entry.js → p-84f8bee8.entry.js} +1 -1
  277. package/lib/duet/{p-07c4b435.entry.js → p-8927ccc1.entry.js} +1 -1
  278. package/lib/duet/{p-2d43de54.entry.js → p-8bdcfd1f.entry.js} +1 -1
  279. package/lib/duet/{p-b64b3e2f.entry.js → p-8fbcea55.entry.js} +1 -1
  280. package/lib/duet/{p-84420fbf.entry.js → p-914ee7ac.entry.js} +1 -1
  281. package/lib/duet/{p-7a668cee.entry.js → p-95bb2a8d.entry.js} +1 -1
  282. package/lib/duet/{p-4c5a8ed3.entry.js → p-985213bb.entry.js} +1 -1
  283. package/lib/duet/{p-d2c91ed0.entry.js → p-9889218e.entry.js} +1 -1
  284. package/lib/duet/{p-c1d4542d.entry.js → p-9b2731b9.entry.js} +1 -1
  285. package/lib/duet/{p-46300680.entry.js → p-9b448008.entry.js} +1 -1
  286. package/lib/duet/p-9c41f1d5.entry.js +4 -0
  287. package/lib/duet/p-BDgGHTHh.js +4 -0
  288. package/lib/duet/p-BZev46O8.js +4 -0
  289. package/lib/duet/p-BaefVzkx.js +4 -0
  290. package/lib/duet/p-CcoGR9T9.js +4 -0
  291. package/lib/duet/{p-BW3SZS4F.js → p-CyfEm8iD.js} +1 -1
  292. package/lib/duet/p-D3450NfA.js +5 -0
  293. package/lib/duet/{p-DWIjWGAD.js → p-D9N9LBeD.js} +1 -1
  294. package/lib/duet/{p-2HU78SJ-.js → p-DI7IXBXp.js} +1 -1
  295. package/lib/duet/{p-D2ly4TZR.js → p-DYmL1tSl.js} +1 -1
  296. package/lib/duet/p-Dk60lC7n.js +4 -0
  297. package/lib/duet/p-JFwTD5kM.js +4 -0
  298. package/lib/duet/{p-D2EBd3cT.js → p-KbNgo0QF.js} +1 -1
  299. package/lib/duet/p-a01f3141.entry.js +4 -0
  300. package/lib/duet/p-a49b5d93.entry.js +4 -0
  301. package/lib/duet/p-a6dbe893.entry.js +4 -0
  302. package/lib/duet/{p-a690a165.entry.js → p-aa1256f9.entry.js} +1 -1
  303. package/lib/duet/{p-9d8027aa.entry.js → p-aa7e4c81.entry.js} +1 -1
  304. package/lib/duet/{p-d2c04a7e.entry.js → p-ac4fc44c.entry.js} +1 -1
  305. package/lib/duet/{p-376f9d06.entry.js → p-ae382e2e.entry.js} +1 -1
  306. package/lib/duet/p-bc41d13d.entry.js +4 -0
  307. package/lib/duet/{p-5dde8fbb.entry.js → p-c54ecb23.entry.js} +1 -1
  308. package/lib/duet/{p-5ffc4081.entry.js → p-d72dee5d.entry.js} +1 -1
  309. package/lib/duet/{p-2168e431.entry.js → p-d7abb7fa.entry.js} +1 -1
  310. package/lib/duet/{p-3648404d.entry.js → p-dbb9e1d4.entry.js} +1 -1
  311. package/lib/duet/{p-b3ec9b98.entry.js → p-e40d9c21.entry.js} +1 -1
  312. package/lib/duet/p-e43df9c2.entry.js +4 -0
  313. package/lib/duet/{p-14d4a45a.entry.js → p-e442943d.entry.js} +1 -1
  314. package/lib/duet/p-eb7bc989.entry.js +4 -0
  315. package/lib/duet/{p-3361387d.entry.js → p-ec1d2e0a.entry.js} +1 -1
  316. package/lib/duet/p-edcdf0b7.entry.js +4 -0
  317. package/lib/duet/{p-d0a54e6d.entry.js → p-ee369233.entry.js} +1 -1
  318. package/lib/duet/{p-816caa58.entry.js → p-f297f8f2.entry.js} +1 -1
  319. package/lib/duet/{p-0453edd0.entry.js → p-f30c3cfe.entry.js} +1 -1
  320. package/lib/duet/{p-0395eb34.entry.js → p-f4538e9d.entry.js} +1 -1
  321. package/lib/duet/{p-1ed82a27.entry.js → p-f4de7ac0.entry.js} +1 -1
  322. package/lib/duet/{p-4d39941c.entry.js → p-f8d640ba.entry.js} +1 -1
  323. package/lib/duet/{p-61b6962a.entry.js → p-f9db8670.entry.js} +1 -1
  324. package/lib/duet/p-fc1a18f8.entry.js +4 -0
  325. package/lib/duet/{p-dfd55180.entry.js → p-fc2be136.entry.js} +1 -1
  326. package/lib/duet/p-fdc4a97c.entry.js +4 -0
  327. package/lib/duet/p-kkZE1C6Z.js +4 -0
  328. package/lib/esm/{a11y-utils-sgAajRY0.js → a11y-utils--wwGTL0T.js} +1 -1
  329. package/lib/esm/{app-globals-NNQmI_gc.js → app-globals-Diuuep9d.js} +1 -1
  330. package/lib/esm/duet-action-button.entry.js +6 -6
  331. package/lib/esm/duet-alert.entry.js +4 -4
  332. package/lib/esm/duet-badge.entry.js +29 -6
  333. package/lib/esm/duet-banner.entry.js +15 -16
  334. package/lib/esm/duet-breadcrumb.entry.js +7 -7
  335. package/lib/esm/duet-breadcrumbs.entry.js +7 -7
  336. package/lib/esm/duet-button_2.entry.js +9 -9
  337. package/lib/esm/duet-callout.entry.js +5 -5
  338. package/lib/esm/duet-caption_4.entry.js +13 -13
  339. package/lib/esm/duet-card.entry.js +22 -11
  340. package/lib/esm/duet-checkbox.entry.js +3 -3
  341. package/lib/esm/duet-checkmark.entry.js +4 -4
  342. package/lib/esm/duet-chip.entry.js +29 -16
  343. package/lib/esm/duet-choice_2.entry.js +20 -22
  344. package/lib/esm/duet-collapsible.entry.js +4 -4
  345. package/lib/esm/duet-combobox.entry.js +6 -7
  346. package/lib/esm/duet-contact-card.entry.js +17 -7
  347. package/lib/esm/duet-cookie-consent.entry.js +3 -3
  348. package/lib/esm/duet-date-picker.entry.js +128 -14
  349. package/lib/esm/duet-divider_2.entry.js +6 -6
  350. package/lib/esm/duet-editable-table_3.entry.js +17 -17
  351. package/lib/esm/duet-empty-state.entry.js +4 -4
  352. package/lib/esm/duet-fieldset.entry.js +6 -6
  353. package/lib/esm/duet-file-chooser.entry.js +3 -3
  354. package/lib/esm/duet-footer.entry.js +9 -9
  355. package/lib/esm/duet-grid_2.entry.js +7 -7
  356. package/lib/esm/duet-header_2.entry.js +7 -7
  357. package/lib/esm/duet-hero.entry.js +22 -21
  358. package/lib/esm/duet-icon.entry.js +7 -7
  359. package/lib/esm/duet-indicator.entry.js +5 -5
  360. package/lib/esm/duet-input_2.entry.js +132 -23
  361. package/lib/esm/duet-layout.entry.js +7 -7
  362. package/lib/esm/duet-list_2.entry.js +5 -5
  363. package/lib/esm/duet-menu-bar-button.entry.js +4 -4
  364. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +5 -5
  365. package/lib/esm/duet-menu-bar-dropdown.entry.js +7 -7
  366. package/lib/esm/duet-menu-bar-item.entry.js +7 -7
  367. package/lib/esm/duet-menu-bar-link.entry.js +4 -4
  368. package/lib/esm/duet-menu-bar.entry.js +6 -6
  369. package/lib/esm/duet-modal.entry.js +15 -15
  370. package/lib/esm/duet-multiselect.entry.js +11 -11
  371. package/lib/esm/duet-nav.entry.js +3 -3
  372. package/lib/esm/duet-notification_2.entry.js +10 -10
  373. package/lib/esm/duet-number-input.entry.js +14 -12
  374. package/lib/esm/duet-overlay.entry.js +3 -3
  375. package/lib/esm/duet-page-heading.entry.js +20 -5
  376. package/lib/esm/duet-pagination_2.entry.js +20 -21
  377. package/lib/esm/duet-panel.entry.js +4 -4
  378. package/lib/esm/duet-phone-input.entry.js +23 -6
  379. package/lib/esm/duet-popup-menu_2.entry.js +10 -10
  380. package/lib/esm/duet-progress.entry.js +3 -3
  381. package/lib/esm/duet-promo-card.entry.js +20 -8
  382. package/lib/esm/duet-radio_2.entry.js +7 -10
  383. package/lib/esm/duet-range-slider.entry.js +8 -8
  384. package/lib/esm/duet-scrollable_3.entry.js +18 -18
  385. package/lib/esm/duet-section-layout.entry.js +4 -4
  386. package/lib/esm/duet-select.entry.js +9 -9
  387. package/lib/esm/duet-shaped-image.entry.js +4 -4
  388. package/lib/esm/duet-share-chart-item.entry.js +2 -2
  389. package/lib/esm/duet-share-chart.entry.js +8 -8
  390. package/lib/esm/duet-show-more.entry.js +6 -6
  391. package/lib/esm/duet-slideout-lang.entry.js +4 -4
  392. package/lib/esm/duet-slideout-link.entry.js +7 -7
  393. package/lib/esm/duet-slideout-panel-dropdown.entry.js +6 -6
  394. package/lib/esm/duet-slideout-panel.entry.js +13 -13
  395. package/lib/esm/duet-slideout.entry.js +20 -14
  396. package/lib/esm/duet-status-icon.entry.js +3 -3
  397. package/lib/esm/duet-step_2.entry.js +7 -7
  398. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +5 -5
  399. package/lib/esm/duet-submenu-bar-dropdown.entry.js +7 -7
  400. package/lib/esm/duet-submenu-bar-item.entry.js +7 -7
  401. package/lib/esm/duet-submenu-bar-link.entry.js +4 -4
  402. package/lib/esm/duet-submenu-bar.entry.js +7 -7
  403. package/lib/esm/duet-textarea.entry.js +8 -8
  404. package/lib/esm/duet-toggle.entry.js +9 -9
  405. package/lib/esm/duet-toolbar-dropdown-link.entry.js +5 -5
  406. package/lib/esm/duet-toolbar-dropdown.entry.js +7 -7
  407. package/lib/esm/duet-toolbar-item.entry.js +8 -8
  408. package/lib/esm/duet-toolbar-link.entry.js +4 -4
  409. package/lib/esm/duet-toolbar.entry.js +4 -4
  410. package/lib/esm/duet-tooltip-button_2.entry.js +14 -12
  411. package/lib/esm/duet-tooltip.entry.js +26 -9
  412. package/lib/esm/duet-tray.entry.js +7 -7
  413. package/lib/esm/duet-upload-aria-status.entry.js +2 -2
  414. package/lib/esm/duet-upload-item.entry.js +6 -6
  415. package/lib/esm/duet-visually-hidden.entry.js +2 -2
  416. package/lib/esm/duet.js +4 -4
  417. package/lib/esm/{errorcodes.utils-CqW0-HM8.js → errorcodes.utils-S_WrUPeV.js} +1 -1
  418. package/lib/esm/{focus-utils-Dokkd7xz.js → focus-utils-C4oaajGr.js} +1 -1
  419. package/lib/esm/{index-Cwhi6_oZ.js → index-D3450NfA.js} +9 -9
  420. package/lib/esm/{keyboard-utils-Db8rvjPI.js → keyboard-utils-BaefVzkx.js} +2 -1
  421. package/lib/esm/{label-CyQlly6Z.js → label-C1HF2o4Y.js} +1 -1
  422. package/lib/esm/{language-utils-LZh-sc2s.js → language-utils-D4WVl8Ph.js} +1 -1
  423. package/lib/esm/loader.js +4 -4
  424. package/lib/esm/picture-utils-MSeJTkDk.js +13 -0
  425. package/lib/esm/{slot-utils-CEZnAp61.js → slot-utils-Dxcjtmp3.js} +1 -1
  426. package/lib/esm/{themeable-component-D_FVcjsD.js → themeable-component-QHdUfcat.js} +1 -1
  427. package/lib/esm/{token-utils-B0KAgyj_.js → token-utils-BILzD7LX.js} +1 -1
  428. package/lib/esm/{tokens.module-DEzE2U5T.js → tokens.module-kkZE1C6Z.js} +1 -1
  429. package/lib/types/components/duet-badge/duet-badge.d.ts +14 -0
  430. package/lib/types/components/duet-banner/duet-banner.d.ts +5 -1
  431. package/lib/types/components/duet-button/duet-button.d.ts +1 -1
  432. package/lib/types/components/duet-card/duet-card.d.ts +5 -0
  433. package/lib/types/components/duet-chip/duet-chip.d.ts +16 -9
  434. package/lib/types/components/duet-contact-card/duet-contact-card.d.ts +5 -0
  435. package/lib/types/components/duet-date-picker/date-picker-month.d.ts +3 -0
  436. package/lib/types/components/duet-date-picker/date-utils.d.ts +4 -0
  437. package/lib/types/components/duet-date-picker/disallowed-days.d.ts +9 -0
  438. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +14 -0
  439. package/lib/types/components/duet-date-picker/finnish-bank-holidays.d.ts +11 -0
  440. package/lib/types/components/duet-hero/duet-hero.d.ts +5 -0
  441. package/lib/types/components/duet-input/duet-input.d.ts +42 -3
  442. package/lib/types/components/duet-number-input/duet-number-input.d.ts +2 -1
  443. package/lib/types/components/duet-page-heading/duet-page-heading.d.ts +10 -0
  444. package/lib/types/components/duet-phone-input/duet-phone-input.d.ts +7 -0
  445. package/lib/types/components/duet-promo-card/duet-promo-card.d.ts +6 -0
  446. package/lib/types/components/duet-radio/duet-radio.d.ts +0 -1
  447. package/lib/types/components/duet-tooltip/duet-tooltip-button.d.ts +1 -0
  448. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +6 -0
  449. package/lib/types/components.d.ts +183 -20
  450. package/lib/types/utils/keyboard-utils.d.ts +1 -0
  451. package/lib/types/utils/math.utils.d.ts +1 -0
  452. package/package.json +5 -5
  453. package/lib/duet/p--fmK3qPb.js +0 -4
  454. package/lib/duet/p-07aa40df.entry.js +0 -4
  455. package/lib/duet/p-0eb0e582.entry.js +0 -4
  456. package/lib/duet/p-104ddbf2.entry.js +0 -4
  457. package/lib/duet/p-1705b6cf.entry.js +0 -4
  458. package/lib/duet/p-4420973e.entry.js +0 -4
  459. package/lib/duet/p-455e8ebe.entry.js +0 -4
  460. package/lib/duet/p-4f7b0699.entry.js +0 -4
  461. package/lib/duet/p-58496fb1.entry.js +0 -4
  462. package/lib/duet/p-58a70b3d.entry.js +0 -4
  463. package/lib/duet/p-592a6542.entry.js +0 -4
  464. package/lib/duet/p-5c8c691b.entry.js +0 -4
  465. package/lib/duet/p-73ed0008.entry.js +0 -4
  466. package/lib/duet/p-7a2ca711.entry.js +0 -4
  467. package/lib/duet/p-7e640c8e.entry.js +0 -4
  468. package/lib/duet/p-7eaa1fb5.entry.js +0 -4
  469. package/lib/duet/p-870dc953.entry.js +0 -4
  470. package/lib/duet/p-Chf7ZRmW.js +0 -4
  471. package/lib/duet/p-CtBx3Trd.js +0 -4
  472. package/lib/duet/p-Cwhi6_oZ.js +0 -5
  473. package/lib/duet/p-DCDM41Ef.js +0 -4
  474. package/lib/duet/p-DEzE2U5T.js +0 -4
  475. package/lib/duet/p-Db8rvjPI.js +0 -4
  476. package/lib/duet/p-a4db8c29.entry.js +0 -4
  477. package/lib/duet/p-a7bb038a.entry.js +0 -4
  478. package/lib/duet/p-af9c8169.entry.js +0 -4
  479. package/lib/duet/p-c7851c15.entry.js +0 -4
  480. package/lib/duet/p-cbd1069e.entry.js +0 -4
  481. package/lib/duet/p-cd4f52a9.entry.js +0 -4
  482. package/lib/duet/p-d3dac8af.entry.js +0 -4
  483. package/lib/duet/p-e9ed96cf.entry.js +0 -4
  484. package/lib/duet/p-eab349f2.entry.js +0 -4
  485. package/lib/duet/p-eebf150c.entry.js +0 -4
  486. package/lib/duet/p-f600e215.entry.js +0 -4
package/hydrate/index.mjs CHANGED
@@ -3489,6 +3489,7 @@ const isQuestionKey = (e) => e.key === "?";
3489
3489
  const isEnterKey = (e) => e.key === "Enter";
3490
3490
  const isKeyboardClick = (e) => isEnterKey(e) || isSpaceKey(e);
3491
3491
  const isNumber = (e) => e.key >= "0" && e.key <= "9";
3492
+ const isCharacterInsertKey = (e) => e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey;
3492
3493
  /**
3493
3494
  * Component instances that have subscribed to tabbing change.
3494
3495
  */
@@ -5201,11 +5202,16 @@ class DuetAlert {
5201
5202
  }; }
5202
5203
  }
5203
5204
 
5204
- const duetBadgeCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-right:4px !important;margin-bottom:2px !important;display:inline-block;width:auto;vertical-align:middle}:host:last-child,:host:last-of-type{margin-right:0 !important}[alignment=form-distribute]>:host:last-of-type:not(:last-child){margin-right:4px !important}:host(.duet-m-0){margin:0 !important}.duet-badge{display:inline-block;width:100%;padding:4.4444444444px 12px 5.4444444444px;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.75rem;font-style:normal;font-weight:600;line-height:1.25;vertical-align:middle;color:rgb(3, 56, 102);text-align:center;word-break:break-word;background:rgb(217, 236, 245);border-radius:20rem}.duet-badge.duet-p-0{padding:0 !important}.duet-badge.duet-m-0{margin:0 !important}.duet-badge.duet-theme-turva{padding:5.4444444444px 12px 4.4444444444px;font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-weight:700}.duet-badge.warning{color:rgb(81, 55, 9);background:rgb(255, 232, 160)}.duet-badge.danger{color:rgb(120, 4, 56);background:rgb(255, 211, 219)}.duet-badge.success{color:rgb(13, 71, 59);background:rgb(191, 239, 218)}.duet-badge.subtle{color:rgb(62, 84, 102);background:rgb(228, 236, 239)}.duet-badge.background-strong.default{color:rgb(240, 247, 250);background:rgb(0, 97, 155)}.duet-badge.background-strong.warning{color:rgb(38, 26, 4);background:rgb(247, 178, 40)}.duet-badge.background-strong.danger{color:rgb(255, 240, 243);background:rgb(185, 16, 74)}.duet-badge.background-strong.success{color:rgb(244, 250, 247);background:rgb(29, 106, 88)}.duet-badge.background-strong.subtle{color:rgb(245, 248, 250);background:rgb(98, 121, 138)}";
5205
+ const duetBadgeCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-right:4px !important;margin-bottom:2px !important;display:inline-block;width:auto;vertical-align:middle}:host:last-child,:host:last-of-type{margin-right:0 !important}[alignment=form-distribute]>:host:last-of-type:not(:last-child){margin-right:4px !important}:host(.duet-m-0){margin:0 !important}.duet-badge{position:relative;display:inline-block;width:100%;padding:4.4444444444px 12px 5.4444444444px;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.75rem;font-style:normal;font-weight:600;line-height:1.25;vertical-align:middle;color:rgb(3, 56, 102);text-align:center;word-break:break-word;background:rgb(217, 236, 245);border-radius:20rem}.duet-badge.duet-p-0{padding:0 !important}.duet-badge.duet-m-0{margin:0 !important}.duet-badge.warning{color:rgb(81, 55, 9);background:rgb(255, 232, 160)}.duet-badge.danger{color:rgb(120, 4, 56);background:rgb(255, 211, 219)}.duet-badge.success{color:rgb(13, 71, 59);background:rgb(191, 239, 218)}.duet-badge.subtle{color:rgb(62, 84, 102);background:rgb(228, 236, 239)}.duet-badge.background-strong.default{color:rgb(240, 247, 250);background:rgb(0, 97, 155)}.duet-badge.background-strong.warning{color:rgb(38, 26, 4);background:rgb(247, 178, 40)}.duet-badge.background-strong.danger{color:rgb(255, 240, 243);background:rgb(185, 16, 74)}.duet-badge.background-strong.success{color:rgb(244, 250, 247);background:rgb(29, 106, 88)}.duet-badge.background-strong.subtle{color:rgb(245, 248, 250);background:rgb(98, 121, 138)}.duet-badge.has-tooltip{padding-right:24px;cursor:pointer}.duet-badge.has-tooltip .tooltip-wrap{position:absolute;top:6.5px;right:11px;display:inline-block;width:16px;height:12px}.duet-badge.has-tooltip:hover{color:rgb(0, 75, 129)}.duet-badge.has-tooltip:hover.warning{color:rgb(126, 87, 16)}.duet-badge.has-tooltip:hover.danger{color:rgb(153, 9, 66)}.duet-badge.has-tooltip:hover.success{color:rgb(29, 106, 88)}.duet-badge.has-tooltip:hover.subtle{color:rgb(45, 64, 81)}.duet-badge.has-tooltip:hover.background-strong.default{color:rgb(240, 247, 250);background:rgb(0, 119, 179)}.duet-badge.has-tooltip:hover.background-strong.warning{color:rgb(38, 26, 4);background:rgb(255, 199, 79)}.duet-badge.has-tooltip:hover.background-strong.danger{color:rgb(255, 240, 243);background:rgb(214, 28, 82)}.duet-badge.has-tooltip:hover.background-strong.success{color:rgb(244, 250, 247);background:rgb(76, 164, 138)}.duet-badge.has-tooltip:hover.background-strong.subtle{color:rgb(245, 248, 250);background:rgb(127, 150, 165)}:host(.user-is-tabbing) .duet-badge.has-tooltip:focus-within{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva :host(.user-is-tabbing) .duet-badge.has-tooltip:focus-within,:host(.user-is-tabbing) .duet-badge.has-tooltip:focus-within.duet-theme-turva{outline-color:rgba(53, 79, 101, 0.8)}.duet-theme-turva.duet-badge{padding:5.4444444444px 12px 4.4444444444px;font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-weight:700}.duet-theme-turva.duet-badge.has-tooltip{padding-right:24px}";
5205
5206
 
5207
+ /**
5208
+ * @slot default - Badge content.
5209
+ * @slot tooltip - Alternative way to provide a tooltip for the badge, takes one duet-tooltip.
5210
+ */
5206
5211
  class DuetBadge {
5207
5212
  constructor(hostRef) {
5208
5213
  registerInstance(this, hostRef);
5214
+ this.hasTooltipSlot = false;
5209
5215
  /**
5210
5216
  * Theme of the badge.
5211
5217
  */
@@ -5223,6 +5229,13 @@ class DuetBadge {
5223
5229
  * Controls the margin of the component.
5224
5230
  */
5225
5231
  this.margin = "auto";
5232
+ /**
5233
+ * Giving tooltip text makes the badge act as tooltip button. The badge's text content will be used as the
5234
+ * tooltips accessible-about-label - if you want other accessible label, use the tooltip slot instead of this
5235
+ * attribute.
5236
+ */
5237
+ this.tooltip = "";
5238
+ this.getBadgeText = () => this.element.textContent;
5226
5239
  this.getVariationLabel = () => {
5227
5240
  if (this.variation === "subtle") {
5228
5241
  return "";
@@ -5236,8 +5249,20 @@ class DuetBadge {
5236
5249
  /**
5237
5250
  * Component lifecycle events.
5238
5251
  */
5252
+ connectedCallback() {
5253
+ subscribeTabbingChange(this);
5254
+ }
5255
+ disconnectedCallback() {
5256
+ unsubscribeTabbingChange(this);
5257
+ }
5239
5258
  componentWillLoad() {
5240
5259
  inheritGlobalTheme(this);
5260
+ this.hasTooltipSlot = hasSlot(this.element, "tooltip");
5261
+ checkNamedSlotElement(this.element, "tooltip", "duet-tooltip", 1, true);
5262
+ if (this.hasTooltipSlot) {
5263
+ const tooltip = getElementsFromNamedSlot(this.element, "tooltip")[0];
5264
+ tooltip.badgeElement = this.element;
5265
+ }
5241
5266
  }
5242
5267
  /**
5243
5268
  * render() function
@@ -5245,12 +5270,13 @@ class DuetBadge {
5245
5270
  */
5246
5271
  render() {
5247
5272
  const backgroundClass = `background-${this.background}`;
5248
- return (hAsync(Host, { key: '446fcb8a0becb11a4043774efb1611dd9d89d82d', class: { "duet-m-0": this.margin === "none" } }, hAsync("span", { key: '56ca2601a6f378068ce6d1c695089c0d131e9b7d', class: {
5273
+ return (hAsync(Host, { key: 'a560a9bf8c66e7b54260cf1a51c2bb4728d204bd', class: { "duet-m-0": this.margin === "none" } }, hAsync("span", { key: '6acc7c0b3470e48d82386d808f0b997da64d01bd', class: {
5249
5274
  "duet-badge": true,
5250
5275
  [this.variation]: true,
5251
5276
  [backgroundClass]: true,
5277
+ "has-tooltip": !!this.tooltip || this.hasTooltipSlot,
5252
5278
  "duet-theme-turva": this.theme === "turva",
5253
- } }, hAsync("duet-visually-hidden", { key: 'b1105a9f4a43ee6f9379cb8c02a06328830bbaa6' }, this.getVariationLabel()), hAsync("slot", { key: '2922cf32e24472ae3c8685a1ea90a27c0112b740' }))));
5279
+ } }, hAsync("duet-visually-hidden", { key: 'ffef5f8b2e1f4daa1ad9c6422663bdd68279d97b' }, this.getVariationLabel()), hAsync("slot", { key: 'c29a964054979e3453dc6d1e3e26deb37db4d6da' }), (this.tooltip || this.hasTooltipSlot) && (hAsync("span", { key: '6aaefca53e94bf5a1d25b19f3f3b6182bdc24d89', class: "tooltip-wrap" }, !this.hasTooltipSlot && (hAsync("duet-tooltip", { key: '2dcff5145d02f2dc6be7c9459dfe96d57873d7c9', "accessible-about-label": this.getBadgeText(), badgeElement: this.element }, this.tooltip)), hAsync("slot", { key: '618248018df97f7071166094bf62ac615577371b', name: "tooltip" }))))));
5254
5280
  }
5255
5281
  get element() { return getElement(this); }
5256
5282
  static get style() { return duetBadgeCss; }
@@ -5261,7 +5287,8 @@ class DuetBadge {
5261
5287
  "theme": [1025],
5262
5288
  "variation": [1],
5263
5289
  "background": [1],
5264
- "margin": [1]
5290
+ "margin": [1],
5291
+ "tooltip": [1]
5265
5292
  },
5266
5293
  "$listeners$": undefined,
5267
5294
  "$lazyBundleId$": "-",
@@ -5276,7 +5303,7 @@ const DuetPicture = ({ img, sources }) => {
5276
5303
  hAsync("img", Object.assign({}, img))));
5277
5304
  };
5278
5305
 
5279
- const duetBannerCss = "*,\n*::after,\n*::before {\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n -moz-appearance: none;\n -webkit-appearance: none;\n appearance: none;\n background: transparent;\n border: 0;\n}\n\n:host {\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n -moz-appearance: none;\n -webkit-appearance: none;\n appearance: none;\n background: transparent;\n border: 0;\n margin-right: 36px !important;\n margin-bottom: 36px !important;\n display: flex;\n justify-content: center;\n width: auto;\n container: duet-banner-container;\n container-type: inline-size;\n}\n:host:last-child, :host:last-of-type {\n margin-right: 0 !important;\n}\n[alignment=form-distribute] > :host:last-of-type:not(:last-child) {\n margin-right: 36px !important;\n}\n\n:host(.duet-m-0) {\n margin: 0 !important;\n}\n\n.duet-banner {\n display: grid;\n grid-template-rows: min-content 1fr;\n width: 100%;\n height: 100%;\n font-family: \"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n text-align: left;\n border-radius: 16px;\n}\n.duet-banner.duet-p-0 {\n padding: 0 !important;\n}\n.duet-banner.duet-m-0 {\n margin: 0 !important;\n}\n.duet-banner .visual {\n position: relative;\n display: none;\n overflow: hidden;\n}\n@container duet-banner-container (min-width: 0) {\n .duet-banner .visual {\n display: block;\n }\n}\n.duet-banner .visual .image-container {\n position: relative;\n aspect-ratio: 2/1;\n overflow: hidden;\n}\n.duet-banner .visual .image {\n position: relative;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n}\n.duet-banner .visual .icon {\n position: absolute;\n}\n.duet-banner .visual .brand-shape {\n position: absolute;\n top: 0;\n left: 72%;\n display: none;\n width: 100%;\n height: 100%;\n mask-image: url(\"data:image/svg+xml,%3Csvg%20%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20344%22%20fill%3D%22none%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M2.72641e-07%2091.1902C0.000476976%2097.9034%200.626077%20104.726%201.92282%20111.592L42.7493%20327.771C43.8045%20333.358%2045.2667%20338.776%2047.0996%20344H160V0H51.1439C19.7799%2019.1253%200.00268143%2053.4178%202.72641e-07%2091.1749C-9.08807e-08%2091.18%20-9.08875e-08%2091.1851%202.72641e-07%2091.1902Z%22%20fill%3D%22%23E6F2F8%22%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fsvg%3E\");\n transform: scale(101%);\n}\n.duet-banner .content {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 16px 20px 28px;\n}\n.duet-banner .content .description {\n hyphens: auto;\n}\n.duet-banner .action {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-end;\n padding-top: 16px;\n}\n.duet-banner .visual {\n border-top-left-radius: 16px;\n border-top-right-radius: 16px;\n}\n.duet-banner .visual .image-container {\n width: 100%;\n height: auto;\n border-radius: 0;\n}\n.duet-banner .visual .icon {\n bottom: 30px;\n left: 15px;\n}\n@container duet-banner-container (min-width: 486px) {\n .duet-banner.size-medium, .duet-banner.size-large {\n grid-template-rows: none;\n grid-template-columns: 50% 50%;\n }\n .duet-banner.size-medium .visual, .duet-banner.size-large .visual {\n border-top-left-radius: 16px;\n border-top-right-radius: 0;\n border-bottom-left-radius: 16px;\n }\n .duet-banner.size-medium .visual .image-container, .duet-banner.size-large .visual .image-container {\n height: 100%;\n }\n .duet-banner.size-medium .visual .image, .duet-banner.size-large .visual .image {\n width: 100%;\n height: 100%;\n }\n .duet-banner.size-medium .visual .icon, .duet-banner.size-large .visual .icon {\n top: 36px;\n left: 168px;\n }\n .duet-banner.size-medium .visual .brand-shape, .duet-banner.size-large .visual .brand-shape {\n display: block;\n }\n .duet-banner.size-medium .content, .duet-banner.size-large .content {\n align-items: flex-start;\n justify-content: center;\n padding: 28px 28px 28px 0;\n }\n .duet-banner.size-medium .action, .duet-banner.size-large .action {\n flex-grow: 0;\n }\n}\n@container duet-banner-container (min-width: 586px) {\n .duet-banner.size-medium .visual .brand-shape, .duet-banner.size-large .visual .brand-shape {\n left: 80%;\n }\n}\n@container duet-banner-container (min-width: 900px) {\n .duet-banner.size-large {\n grid-template-rows: none;\n grid-template-columns: 50% 50%;\n }\n .duet-banner.size-large .visual {\n border-top-left-radius: 16px;\n border-bottom-left-radius: 16px;\n }\n .duet-banner.size-large .visual .image-container {\n height: 100%;\n }\n .duet-banner.size-large .visual .image {\n width: 100%;\n height: 100%;\n }\n .duet-banner.size-large .visual .icon {\n top: 40px;\n bottom: auto;\n left: 335px;\n }\n .duet-banner.size-large .visual .brand-shape {\n display: block;\n }\n .duet-banner.size-large .content {\n align-items: flex-start;\n justify-content: center;\n padding: 48px 48px 48px 0;\n }\n .duet-banner.size-large .action {\n flex-grow: 0;\n }\n}\n.duet-banner.no-image {\n display: flex;\n justify-content: center;\n padding: 36px 20px;\n}\n.duet-banner.no-image .visual {\n display: none;\n}\n.duet-banner.no-image .content {\n width: 100%;\n max-width: 720px;\n padding: 0;\n}\n@container duet-banner-container (min-width: 486px) {\n .duet-banner.no-image.size-medium, .duet-banner.no-image.size-large {\n padding: 48px;\n }\n}\n\n::slotted(.duet-heading) {\n margin: inherit !important;\n font-size: inherit !important;\n line-height: inherit !important;\n color: inherit !important;\n}\n\n.duet-banner.duet-theme-turva {\n font-family: \"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n border-radius: 12px;\n}\n.duet-banner.duet-theme-turva .visual .brand-shape {\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n mask-image: url(\"data:image/svg+xml,%3Csvg%20width%3D%22540%22%20height%3D%2258%22%20viewBox%3D%220%200%20540%2058%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M540%2018.0729L540%2057.6749H0L0.000139455%2011.2563C0.000139455%202.85822%208.31858%20-2.59156%2015.3307%201.26796C33.6821%2011.3367%2055.6983%2020.0831%2080.3633%2027.3465C134.438%2043.276%20201.239%2052.0939%20270%2052.0939C338.761%2052.0939%20405.572%2043.276%20459.637%2027.3465C484.302%2020.0742%20506.318%2011.3277%20524.669%201.25902C531.682%20-2.59156%20540%202.85822%20540%2011.2563V18.0729Z%22%20fill%3D%22%23FBEBE1%22%2F%3E%0A%3C%2Fsvg%3E%0A\");\n mask-repeat: no-repeat;\n mask-position: bottom;\n mask-size: contain;\n scale: 101%;\n}\n.duet-banner.duet-theme-turva.size-medium .visual, .duet-banner.duet-theme-turva.size-large .visual {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n}\n@container duet-banner-container (min-width: 486px) {\n .duet-banner.duet-theme-turva.size-medium, .duet-banner.duet-theme-turva.size-large {\n grid-template-columns: 1fr 1fr;\n gap: 28px;\n border-radius: 12px;\n }\n .duet-banner.duet-theme-turva.size-medium .visual, .duet-banner.duet-theme-turva.size-large .visual {\n border-top-left-radius: 12px;\n border-top-right-radius: 0;\n border-bottom-left-radius: 12px;\n }\n .duet-banner.duet-theme-turva.size-medium .visual .image-container, .duet-banner.duet-theme-turva.size-large .visual .image-container {\n padding: 20px;\n padding-right: 0;\n }\n .duet-banner.duet-theme-turva.size-medium .visual .image, .duet-banner.duet-theme-turva.size-large .visual .image {\n border-radius: 12px;\n }\n .duet-banner.duet-theme-turva.size-medium .visual .brand-shape, .duet-banner.duet-theme-turva.size-large .visual .brand-shape {\n display: none;\n }\n}";
5306
+ const duetBannerCss = "*,\n*::after,\n*::before {\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n -moz-appearance: none;\n -webkit-appearance: none;\n appearance: none;\n background: transparent;\n border: 0;\n}\n\n:host {\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n -moz-appearance: none;\n -webkit-appearance: none;\n appearance: none;\n background: transparent;\n border: 0;\n margin-right: 36px !important;\n margin-bottom: 36px !important;\n display: flex;\n justify-content: center;\n width: auto;\n container: duet-banner-container;\n container-type: inline-size;\n}\n:host:last-child, :host:last-of-type {\n margin-right: 0 !important;\n}\n[alignment=form-distribute] > :host:last-of-type:not(:last-child) {\n margin-right: 36px !important;\n}\n\n:host(.duet-m-0) {\n margin: 0 !important;\n}\n\n.duet-banner {\n display: grid;\n grid-template-rows: min-content 1fr;\n width: 100%;\n height: 100%;\n font-family: \"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n text-align: left;\n border-radius: 16px;\n}\n.duet-banner.duet-p-0 {\n padding: 0 !important;\n}\n.duet-banner.duet-m-0 {\n margin: 0 !important;\n}\n.duet-banner .visual {\n position: relative;\n display: none;\n overflow: hidden;\n}\n@container duet-banner-container (min-width: 0) {\n .duet-banner .visual {\n display: block;\n }\n}\n.duet-banner .visual .image-container {\n position: relative;\n aspect-ratio: 2/1;\n overflow: hidden;\n}\n.duet-banner .visual .image {\n position: relative;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n}\n.duet-banner .visual .image.contain {\n padding: 16px 20px 0;\n object-fit: contain;\n object-position: center bottom;\n}\n.duet-banner .visual .icon {\n position: absolute;\n}\n.duet-banner .visual .brand-shape {\n position: absolute;\n top: 0;\n left: 72%;\n display: none;\n width: 100%;\n height: 100%;\n mask-image: url(\"data:image/svg+xml,%3Csvg%20%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20344%22%20fill%3D%22none%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M2.72641e-07%2091.1902C0.000476976%2097.9034%200.626077%20104.726%201.92282%20111.592L42.7493%20327.771C43.8045%20333.358%2045.2667%20338.776%2047.0996%20344H160V0H51.1439C19.7799%2019.1253%200.00268143%2053.4178%202.72641e-07%2091.1749C-9.08807e-08%2091.18%20-9.08875e-08%2091.1851%202.72641e-07%2091.1902Z%22%20fill%3D%22%23E6F2F8%22%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fsvg%3E\");\n transform: scale(101%);\n}\n.duet-banner .content {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 16px 20px 28px;\n}\n.duet-banner .content .description {\n hyphens: auto;\n}\n.duet-banner .action {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-end;\n padding-top: 16px;\n}\n.duet-banner .visual {\n border-top-left-radius: 16px;\n border-top-right-radius: 16px;\n}\n.duet-banner .visual .image-container {\n width: 100%;\n height: auto;\n border-radius: 0;\n}\n.duet-banner .visual .icon {\n bottom: 30px;\n left: 15px;\n}\n@container duet-banner-container (min-width: 486px) {\n .duet-banner.size-medium, .duet-banner.size-large {\n grid-template-rows: none;\n grid-template-columns: 50% 50%;\n }\n .duet-banner.size-medium .visual, .duet-banner.size-large .visual {\n border-top-left-radius: 16px;\n border-top-right-radius: 0;\n border-bottom-left-radius: 16px;\n }\n .duet-banner.size-medium .visual .image-container, .duet-banner.size-large .visual .image-container {\n height: 100%;\n }\n .duet-banner.size-medium .visual .image, .duet-banner.size-large .visual .image {\n width: 100%;\n height: 100%;\n }\n .duet-banner.size-medium .visual .image.contain, .duet-banner.size-large .visual .image.contain {\n padding: 28px;\n object-position: center;\n }\n .duet-banner.size-medium .visual .icon, .duet-banner.size-large .visual .icon {\n top: 36px;\n left: 168px;\n }\n .duet-banner.size-medium .visual .brand-shape, .duet-banner.size-large .visual .brand-shape {\n display: block;\n }\n .duet-banner.size-medium .content, .duet-banner.size-large .content {\n align-items: flex-start;\n justify-content: center;\n padding: 28px 28px 28px 0;\n }\n .duet-banner.size-medium .action, .duet-banner.size-large .action {\n flex-grow: 0;\n }\n}\n@container duet-banner-container (min-width: 586px) {\n .duet-banner.size-medium .visual .brand-shape, .duet-banner.size-large .visual .brand-shape {\n left: 80%;\n }\n}\n@container duet-banner-container (min-width: 900px) {\n .duet-banner.size-large {\n grid-template-rows: none;\n grid-template-columns: 50% 50%;\n }\n .duet-banner.size-large .visual {\n border-top-left-radius: 16px;\n border-bottom-left-radius: 16px;\n }\n .duet-banner.size-large .visual .image-container {\n height: 100%;\n }\n .duet-banner.size-large .visual .image {\n width: 100%;\n height: 100%;\n }\n .duet-banner.size-large .visual .image.contain {\n padding: 48px;\n }\n .duet-banner.size-large .visual .icon {\n top: 40px;\n bottom: auto;\n left: 335px;\n }\n .duet-banner.size-large .visual .brand-shape {\n display: block;\n }\n .duet-banner.size-large .content {\n align-items: flex-start;\n justify-content: center;\n padding: 48px 48px 48px 0;\n }\n .duet-banner.size-large .action {\n flex-grow: 0;\n }\n}\n.duet-banner.no-image {\n display: flex;\n justify-content: center;\n padding: 36px 20px;\n}\n.duet-banner.no-image .visual {\n display: none;\n}\n.duet-banner.no-image .content {\n width: 100%;\n max-width: 720px;\n padding: 0;\n}\n@container duet-banner-container (min-width: 486px) {\n .duet-banner.no-image.size-medium, .duet-banner.no-image.size-large {\n padding: 48px;\n }\n}\n\n::slotted(.duet-heading) {\n margin: inherit !important;\n font-size: inherit !important;\n line-height: inherit !important;\n color: inherit !important;\n}\n\n.duet-banner.duet-theme-turva {\n font-family: \"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n border-radius: 12px;\n}\n.duet-banner.duet-theme-turva .visual .brand-shape {\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n mask-image: url(\"data:image/svg+xml,%3Csvg%20width%3D%22540%22%20height%3D%2258%22%20viewBox%3D%220%200%20540%2058%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M540%2018.0729L540%2057.6749H0L0.000139455%2011.2563C0.000139455%202.85822%208.31858%20-2.59156%2015.3307%201.26796C33.6821%2011.3367%2055.6983%2020.0831%2080.3633%2027.3465C134.438%2043.276%20201.239%2052.0939%20270%2052.0939C338.761%2052.0939%20405.572%2043.276%20459.637%2027.3465C484.302%2020.0742%20506.318%2011.3277%20524.669%201.25902C531.682%20-2.59156%20540%202.85822%20540%2011.2563V18.0729Z%22%20fill%3D%22%23FBEBE1%22%2F%3E%0A%3C%2Fsvg%3E%0A\");\n mask-repeat: no-repeat;\n mask-position: bottom;\n mask-size: contain;\n scale: 101%;\n}\n.duet-banner.duet-theme-turva.size-medium .visual, .duet-banner.duet-theme-turva.size-large .visual {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n}\n@container duet-banner-container (min-width: 486px) {\n .duet-banner.duet-theme-turva.size-medium, .duet-banner.duet-theme-turva.size-large {\n grid-template-columns: 1fr 1fr;\n gap: 28px;\n border-radius: 12px;\n }\n .duet-banner.duet-theme-turva.size-medium .visual, .duet-banner.duet-theme-turva.size-large .visual {\n border-top-left-radius: 12px;\n border-top-right-radius: 0;\n border-bottom-left-radius: 12px;\n }\n .duet-banner.duet-theme-turva.size-medium .visual .image-container, .duet-banner.duet-theme-turva.size-large .visual .image-container {\n padding: 20px;\n padding-right: 0;\n }\n .duet-banner.duet-theme-turva.size-medium .visual .image, .duet-banner.duet-theme-turva.size-large .visual .image {\n border-radius: 12px;\n }\n .duet-banner.duet-theme-turva.size-medium .visual .brand-shape, .duet-banner.duet-theme-turva.size-large .visual .brand-shape {\n display: none;\n }\n}";
5280
5307
 
5281
5308
  /**
5282
5309
  * @slot heading - Slot for heading content. Only span should be used in this slot.
@@ -5319,6 +5346,11 @@ class DuetBanner {
5319
5346
  * Image. Example image is 512x341;
5320
5347
  */
5321
5348
  this.image = "";
5349
+ /**
5350
+ * Will the image cover the whole image area (possibly getting cropped), or will it be contained without any
5351
+ * cropping (possibly not filling the whole area).
5352
+ */
5353
+ this.imageFit = "cover";
5322
5354
  /**
5323
5355
  * Icon.
5324
5356
  */
@@ -5402,19 +5434,19 @@ class DuetBanner {
5402
5434
  src: this.image,
5403
5435
  alt: this.imageAlt || "",
5404
5436
  loading: "lazy",
5405
- class: "image",
5437
+ class: `image ${this.imageFit}`,
5406
5438
  role: this.imageAlt ? undefined : "presentation",
5407
5439
  },
5408
5440
  sources: parsePossibleJSON(this.sources),
5409
5441
  };
5410
- return (hAsync(Host, { key: '6c5c51b5270034eca60358d32acf69b0b87cfe37', class: { "duet-m-0": this.margin === "none" } }, hAsync("aside", { key: 'd3357af952f4d21a284a3c07a4840be8c9d96671', class: {
5442
+ return (hAsync(Host, { key: '7bb7e73a6f4d35a44a152b488d46ad622f2cb50b', class: { "duet-m-0": this.margin === "none" } }, hAsync("aside", { key: '739f618adf7c4723262b4ec6295cf4864c361526', class: {
5411
5443
  "duet-banner": true,
5412
5444
  "duet-theme-turva": this.theme === "turva",
5413
5445
  [this.currentSize]: true,
5414
5446
  "size-medium": this.size === "medium" || this.size === "large",
5415
5447
  "size-large": this.size === "large",
5416
5448
  "no-image": !this.image,
5417
- }, style: bannerStyles }, hAsync("div", { key: '129fd9d09e47a09e8109741d832e6adbb254c2f7', class: "visual" }, hAsync("div", { key: '34a38d97f6591aa3cf06542ccc21d2be6526775e', class: "image-container" }, this.image && hAsync(DuetPicture, Object.assign({ key: '4e74d10a68cbd875eafda59dff824d20f2259534' }, pictureSource))), 1 > 2, hAsync("div", { key: '527007e8b696a194e63cb513d32c8072e3900fa0', style: bannerStyles, class: "brand-shape" })), hAsync("div", { key: '6c2ce761c87965936e5a77764bd07c4068fc5af1', class: "content" }, this.hasHeadingSlot && (hAsync("div", { key: 'f95cad851a8a235080682deabc5eb48f69f06090', class: "heading" }, hAsync("duet-heading", { key: '35d3d015a16e2f723d2afa61b46b44706239063f', theme: this.theme, level: this.hasHeadingSlotNative ? "div" : this.headingLevel, "visual-level": this.currentSize === "large" ? "h2" : "h3", "fixed-size": true, margin: "none", color: postfixTheme(this.textColor, this.theme) }, hAsync("span", { key: '3968de3baeb3baca08829460f41c843df594c3a6' }, hAsync("slot", { key: 'c19c73a90688fc2e2f45cd46215714cd0f23eee1', name: "heading" }))))), this.hasDescriptionSlot && (hAsync("div", { key: '77df4cc82d30c81bd36f73fa7db4bbfb59a491d6', class: "description", style: { color } }, hAsync("slot", { key: '21d38914241a35c9d5b8803d727abca2b8c7c249', name: "description" }))), this.hasActionSlot && (hAsync("div", { key: 'aef144cc3dbb6453ed8e0b37337322da880f26d8', class: "action" }, hAsync("slot", { key: '613875d267d920e780afe93b3eb4c4fadbb3d73b', name: "action" })))))));
5449
+ }, style: bannerStyles }, hAsync("div", { key: 'd78595a1aabf12715243be11008f484d23596a1b', class: "visual" }, hAsync("div", { key: 'ef55a2809492d94f8c249f1cad969f52c7c7b82d', class: "image-container" }, this.image && hAsync(DuetPicture, Object.assign({ key: '80aa252e2ae80b3deeea7949866fe797dfff3500' }, pictureSource))), 1 > 2, this.imageFit !== "contain" && hAsync("div", { key: '99d09920043743c985e0d3dba395a3985fb498a9', style: bannerStyles, class: "brand-shape" })), hAsync("div", { key: 'b71115c0291aa50a6fb14fd9da4f5ca3e17966b8', class: "content" }, this.hasHeadingSlot && (hAsync("div", { key: 'ab430cc7698686f5e352cd8b1a832a75fba1016e', class: "heading" }, hAsync("duet-heading", { key: 'd524b78d7d934270dece2274467f32450d67d5c3', theme: this.theme, level: this.hasHeadingSlotNative ? "div" : this.headingLevel, "visual-level": this.currentSize === "large" ? "h2" : "h3", "fixed-size": true, margin: "none", color: postfixTheme(this.textColor, this.theme) }, hAsync("span", { key: 'c9f8c556560a5cf18924a0f3b4c71bc5b4a66e34' }, hAsync("slot", { key: '4e1425677afc11f145db287ebf17df9917f40529', name: "heading" }))))), this.hasDescriptionSlot && (hAsync("div", { key: 'b0ec390d54156a3df44821ab41b5bee3245a880b', class: "description", style: { color } }, hAsync("slot", { key: 'd284da9e4b546bbc02c8741aa7aa368de497ea52', name: "description" }))), this.hasActionSlot && (hAsync("div", { key: '3ff5952fc3f6ab7a7948317ef7907f297df37a30', class: "action" }, hAsync("slot", { key: 'e912017d264737322c63eec6e3d3a13a225db01a', name: "action" })))))));
5418
5450
  }
5419
5451
  get element() { return getElement(this); }
5420
5452
  static get style() { return duetBannerCss; }
@@ -5431,6 +5463,7 @@ class DuetBanner {
5431
5463
  "size": [1025],
5432
5464
  "image": [1],
5433
5465
  "imageAlt": [1, "image-alt"],
5466
+ "imageFit": [1, "image-fit"],
5434
5467
  "sources": [1],
5435
5468
  "icon": [1],
5436
5469
  "headingLevel": [1, "heading-level"],
@@ -5501,15 +5534,15 @@ class DuetBreadcrumb {
5501
5534
  */
5502
5535
  render() {
5503
5536
  const Tag = this.href ? "a" : "span";
5504
- return (hAsync(Host, { key: 'bee5edcaaa257aef537393e9620b269c242dff1d', role: "listitem" }, hAsync("div", { key: 'fe46fa6ccf1f40968db1b82d27b11c5a5a450594', class: "container" }, this.icon === "arrow-right-small-icon" && (hAsync("duet-icon", { key: '0f01a2a92376855fc341815886b031498a5085fd', class: "duet-breadrumbs-arrow", size: "auto", icon: arrowRightSmallIcon.svg, margin: "none", color: "currentColor" })), hAsync(Tag, { key: 'cffeeca1d48de91945115a38bfcb1ae5efe702db', class: {
5537
+ return (hAsync(Host, { key: '9d25b651fd5b242297c25eb3ea99ffc6f1ca48af', role: "listitem" }, hAsync("div", { key: '84a91d5dd5578cb8294cea0e48d0ee4d5bb2fd23', class: "container" }, this.icon === "arrow-right-small-icon" && (hAsync("duet-icon", { key: 'c443a924a8354ec1218f8ff092ba4f8c8c6ee848', class: "duet-breadrumbs-arrow", size: "auto", icon: arrowRightSmallIcon.svg, margin: "none", color: "currentColor" })), hAsync(Tag, { key: '266f23bcf053b651c24cdf70aaf540a618ed0334', class: {
5505
5538
  "duet-breadcrumb": true,
5506
5539
  "duet-theme-turva": this.theme === "turva",
5507
5540
  "icon-only": this.icon && !this.hasSlottedContent,
5508
5541
  }, href: this.href || undefined, "aria-label": this.accessibleLabel || this.element.textContent, "aria-current": this.href ? undefined : "page" }, this.icon !== "arrow-right-small-icon" &&
5509
5542
  this.icon && [
5510
- hAsync("duet-icon", { key: 'ee27c63d28c4c9187a8242a811532322749f94fd', size: this.iconSize, name: this.icon, margin: "none", color: "currentColor" }),
5511
- this.hasSlottedContent && hAsync("duet-spacer", { key: 'e0a220aa059a782dc8716f9fcda3e945bc048f40', size: "x-small", direction: "horizontal" }),
5512
- ], hAsync("slot", { key: '86454db36ecfe921c4b1719f1d9b7807da79a272' })))));
5543
+ hAsync("duet-icon", { key: '4db885eb507c009ff6f8441052b4c402bf6fd677', size: this.iconSize, name: this.icon, margin: "none", color: "currentColor" }),
5544
+ this.hasSlottedContent && hAsync("duet-spacer", { key: '1dd57ad658f67683907cf1d7b9db5726d5d4d309', size: "x-small", direction: "horizontal" }),
5545
+ ], hAsync("slot", { key: '71d21629fc5c66ebe08d0c7eb04a9293e0246cf5' })))));
5513
5546
  }
5514
5547
  get element() { return getElement(this); }
5515
5548
  static get style() { return duetBreadcrumbCss; }
@@ -5577,11 +5610,11 @@ class DuetBreadcrumbs {
5577
5610
  */
5578
5611
  render() {
5579
5612
  const color = getColorByName(this.color);
5580
- return (hAsync(Host, { key: '36f67b82a722d5c4017bb4cec37fd7149572d264' }, hAsync("nav", { key: 'f8fe3f4e521969a60d9428a354a88152171613ec', "aria-label": this.breadcrumbsAriaLabel, class: {
5613
+ return (hAsync(Host, { key: 'e7ae98090732542452a2a94210f21bc4d877987e' }, hAsync("nav", { key: '20edb0b05a6c3e6589e7d6be4e875bbfe89e263c', "aria-label": this.breadcrumbsAriaLabel, class: {
5581
5614
  "duet-breadcrumbs": true,
5582
5615
  "duet-theme-turva": this.theme === "turva",
5583
5616
  [this.variation]: true,
5584
- } }, hAsync("div", { key: '78f711e9262e47c989705552d2ab75e65ae17fbe', class: "container" }, hAsync("div", { key: 'bfc70b5d984cc57ef2591f4a3ecf452db9ae0ed6', role: "list", class: "list", style: { color } }, hAsync("slot", { key: '96e85ea897f84aef0111f41d1e91ac2a263e8d66' })), hAsync("div", { key: 'b99f56d5dba834d934872b86fcb8e46205ae3084', class: "bottom-border bottom-border--container" })), hAsync("div", { key: '1d96cf880260a6fa1fb39cbc0e76e7b5df8f208c', class: "bottom-border bottom-border--nav" }))));
5617
+ } }, hAsync("div", { key: '9af54a322da0c7be2e37687a9d67e16214de644c', class: "container" }, hAsync("div", { key: '0e7243aa0cb721abb7b413e4bd109f4594f6c2ac', role: "list", class: "list", style: { color } }, hAsync("slot", { key: '8ed1299ec1deda2d43ecabdcc1d49c15a4467b23' })), hAsync("div", { key: '24b4efdf7a6f85c6ea8badf769d0dd8b098252ee', class: "bottom-border bottom-border--container" })), hAsync("div", { key: '510ebbb8148a84730d5bc1f53c3fb01a76c7bcdb', class: "bottom-border bottom-border--nav" }))));
5585
5618
  }
5586
5619
  get element() { return getElement(this); }
5587
5620
  static get style() { return duetBreadcrumbsCss; }
@@ -5600,7 +5633,7 @@ class DuetBreadcrumbs {
5600
5633
  }; }
5601
5634
  }
5602
5635
 
5603
- const duetButtonCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;font-size:0;vertical-align:bottom;-webkit-tap-highlight-color:transparent}:host:last-child,:host:last-of-type{margin-right:0 !important}[alignment=form-distribute]>:host:last-of-type:not(:last-child){margin-right:8px !important}@media (max-width: 35.9375em){:host{width:100%}}:host(.square){margin-right:12px !important}:host(.square):last-child,:host(.square):last-of-type{margin-right:0 !important}[alignment=form-distribute]>:host(.square):last-of-type:not(:last-child){margin-right:12px !important}:host(.input-button){z-index:250}:host(.duet-small),:host(.duet-x-small){margin-right:4px !important;margin-bottom:8px !important}:host(.duet-small):last-child,:host(.duet-small):last-of-type,:host(.duet-x-small):last-child,:host(.duet-x-small):last-of-type{margin-right:0 !important}[alignment=form-distribute]>:host(.duet-small):last-of-type:not(:last-child),[alignment=form-distribute]>:host(.duet-x-small):last-of-type:not(:last-child){margin-right:4px !important}@media (max-width: 35.9375em){:host(.duet-small),:host(.duet-x-small){width:auto}}:host(.duet-x-small){margin-right:2px !important}:host(.duet-x-small):last-child,:host(.duet-x-small):last-of-type{margin-right:0 !important}[alignment=form-distribute]>:host(.duet-x-small):last-of-type:not(:last-child){margin-right:2px !important}:host(.square.duet-small),:host(.square.duet-x-small){margin-right:8px !important}:host(.square.duet-small):last-child,:host(.square.duet-small):last-of-type,:host(.square.duet-x-small):last-child,:host(.square.duet-x-small):last-of-type{margin-right:0 !important}[alignment=form-distribute]>:host(.square.duet-small):last-of-type:not(:last-child),[alignment=form-distribute]>:host(.square.duet-x-small):last-of-type:not(:last-child){margin-right:8px !important}:host(.duet-expand){width:100% !important}:host(.duet-m-0){margin:0 !important}:host(.duet-fixed){width:auto !important}:host(:last-child){margin-right:0 !important}.duet-button-container{position:relative;display:block;width:100%}.duet-button{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:flex;align-items:center;width:100%;min-width:8rem;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:1rem;font-weight:600;line-height:1.1;color:rgb(0, 119, 179) !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:1px;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, padding 300ms ease, box-shadow 300ms ease}.duet-button.duet-p-0{padding:0 !important}.duet-button.duet-m-0{margin:0 !important}.duet-button:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva .duet-button:focus,.duet-button:focus.duet-theme-turva{outline:2px solid;outline-offset:2px;outline-color:rgba(53, 79, 101, 0.8)}.duet-button.duet-button-size-medium{height:50px;padding-right:30px;padding-left:30px;font-size:1rem;border-radius:25px}.duet-button.duet-button-size-medium.square{border-radius:12.5px}.duet-button.duet-button-size-medium.icon-left{padding-left:24px}.duet-button.duet-button-size-medium.icon-right{padding-right:24px}.duet-button.duet-button-size-small{height:40px;padding-right:20px;padding-left:20px;font-size:0.875rem;border-radius:20px}.duet-button.duet-button-size-small.square{border-radius:10px}.duet-button.duet-button-size-small.icon-left{padding-left:18px}.duet-button.duet-button-size-small.icon-right{padding-right:18px}.duet-button.duet-button-size-x-small{height:32px;padding-right:12px;padding-left:12px;font-size:0.75rem;border-radius:8px}.duet-button.duet-button-size-x-small.icon-left{padding-left:10px}.duet-button.duet-button-size-x-small.icon-right{padding-right:10px}.duet-button.plain.duet-p-0{height:auto}.duet-button:not(.input-button-primary,.input-button-secondary,.input-button-embedded){font-variant-numeric:tabular-nums}.duet-button.duet-button-text-center{text-align:center !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only){min-width:48px}.duet-button.duet-button-is-small:not(.duet-button-icon-only).plain{padding-right:0 !important;padding-left:0 !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only).duet-p-0{padding:0 !important}.duet-button .duet-button-contents{position:relative;display:flex;gap:10px;align-items:center;margin:0 auto;pointer-events:none}.duet-button .duet-button-contents.icon-right{flex-direction:row-reverse}.duet-button .duet-button-contents .duet-button-contents-slot{position:relative;top:0}.duet-button.duet-no-wrap{white-space:nowrap}.duet-button svg{width:100%;min-width:100%;fill:currentColor}.duet-button .duet-button-icon{display:flex;align-items:center}.duet-button .duet-button-icon duet-icon{width:16px;height:16px}.duet-button .duet-button-icon.large duet-icon{width:20px;height:20px}.duet-button .duet-button-icon.medium-small duet-icon{width:10px;height:10px}.duet-button .duet-button-icon.small duet-icon{width:7px;height:7px}.duet-button:active:not([disabled]){opacity:0.75;transition:none}.duet-button.default{background:rgb(255, 255, 255);border-color:rgb(181, 198, 208)}.duet-button.default:hover{outline:2px solid rgb(0, 119, 179);outline-offset:-2px;border-color:rgb(0, 119, 179)}.duet-button.default.duet-button-negative{background-color:rgb(255, 255, 255)}.duet-button.default.duet-button-negative:hover{color:rgb(0, 119, 179) !important;border-color:rgb(0, 119, 179)}.duet-button.primary,.duet-button.input-button-primary,.duet-button.input-button-left-primary{color:rgb(255, 255, 255) !important;background:rgb(0, 119, 179);border-color:rgb(0, 119, 179)}.duet-button.primary:hover,.duet-button.input-button-primary:hover,.duet-button.input-button-left-primary:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px 0 rgba(34, 34, 34, 0.1)}.duet-button.secondary,.duet-button.input-button-secondary,.duet-button.input-button-left-secondary,.duet-button.input-button-embedded{color:rgb(8, 42, 77) !important;background:transparent;border-color:rgb(8, 42, 77)}.duet-button.secondary:hover,.duet-button.input-button-secondary:hover,.duet-button.input-button-left-secondary:hover,.duet-button.input-button-embedded:hover{color:rgb(0, 119, 179) !important;border-color:rgb(0, 119, 179);outline:2px solid;outline-color:rgb(127, 150, 165) !important;outline-offset:-1px}.duet-theme-turva .duet-button.secondary:hover,.duet-button.secondary:hover.duet-theme-turva,.duet-theme-turva .duet-button.input-button-secondary:hover,.duet-button.input-button-secondary:hover.duet-theme-turva,.duet-theme-turva .duet-button.input-button-left-secondary:hover,.duet-button.input-button-left-secondary:hover.duet-theme-turva,.duet-theme-turva .duet-button.input-button-embedded:hover,.duet-button.input-button-embedded:hover.duet-theme-turva{outline-color:rgb(120, 145, 164) !important}.duet-button.secondary.duet-button-negative,.duet-button.input-button-secondary.duet-button-negative,.duet-button.input-button-left-secondary.duet-button-negative,.duet-button.input-button-embedded.duet-button-negative{color:rgb(212, 223, 229) !important;border-color:rgb(255, 255, 255)}.duet-button.secondary.duet-button-negative:hover,.duet-button.input-button-secondary.duet-button-negative:hover,.duet-button.input-button-left-secondary.duet-button-negative:hover,.duet-button.input-button-embedded.duet-button-negative:hover{color:rgb(0, 119, 179) !important;border-color:rgb(0, 119, 179)}.duet-button.input-button-embedded{width:40px;min-width:40px !important;min-height:40px !important;margin:4px !important;border-width:0 !important;border-radius:4px !important}.duet-button.input-button{height:auto}.duet-button.negative{color:rgb(8, 42, 77) !important;background:rgb(255, 255, 255);border-color:rgb(255, 255, 255)}.duet-button.negative:hover{color:rgb(255, 255, 255) !important;background:transparent;border-color:rgb(255, 255, 255)}.duet-button.destructive-primary{color:rgb(255, 255, 255) !important;background:rgb(214, 28, 82);border-color:rgb(214, 28, 82)}.duet-button.destructive-primary:hover{background:#ab1642;border-color:#ab1642;box-shadow:0 4px 20px 0 rgba(34, 34, 34, 0.1)}.duet-button.destructive,.duet-button.destructive-secondary{color:rgb(214, 28, 82) !important;background:rgb(255, 255, 255);border-color:rgb(214, 28, 82)}.duet-button.destructive:hover,.duet-button.destructive-secondary:hover{color:rgb(255, 255, 255) !important;background:#ab1642;border-color:#ab1642}.duet-button.plain{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}.duet-button.plain.duet-p-0 .duet-button-contents{height:auto}.duet-button.plain[disabled],.duet-button.plain[disabled]:hover{color:rgb(98, 121, 138) !important;cursor:not-allowed;background:transparent !important;border-color:transparent !important}.duet-button.plain:hover{color:rgb(0, 75, 129) !important;background:transparent !important}.duet-button.plain.duet-button-negative{color:rgb(255, 255, 255) !important}.duet-button.plain.duet-button-negative:hover{color:rgba(255, 255, 255, 0.8) !important}.duet-button.plain.duet-button-icon-only:focus{outline-offset:1px}.duet-button.duet-button-icon-only{min-width:48px;min-height:48px;padding:0 !important}.duet-button.duet-button-icon-only .duet-button-contents{position:static}.duet-button.duet-button-icon-only .duet-button-icon.left.large,.duet-button.duet-button-icon-only .duet-button-icon.left.medium,.duet-button.duet-button-icon-only .duet-button-icon.left.small{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}.duet-button.duet-button.input-button-primary,.duet-button.duet-button.input-button-secondary,.duet-button.duet-button.input-button-embedded,.duet-button.duet-button.input-button-left-primary,.duet-button.duet-button.input-button-left-secondary{box-sizing:content-box;min-width:48px;min-height:48px;padding:0 !important;border-width:1px}.duet-button.duet-button.input-button-primary .duet-button-contents,.duet-button.duet-button.input-button-secondary .duet-button-contents,.duet-button.duet-button.input-button-embedded .duet-button-contents,.duet-button.duet-button.input-button-left-primary .duet-button-contents,.duet-button.duet-button.input-button-left-secondary .duet-button-contents{position:static}.duet-button.duet-button.input-button-primary .duet-button-contents.icon-right,.duet-button.duet-button.input-button-secondary .duet-button-contents.icon-right,.duet-button.duet-button.input-button-embedded .duet-button-contents.icon-right,.duet-button.duet-button.input-button-left-primary .duet-button-contents.icon-right,.duet-button.duet-button.input-button-left-secondary .duet-button-contents.icon-right{padding:0 16px}.duet-button.duet-button.input-button-primary,.duet-button.duet-button.input-button-secondary,.duet-button.duet-button.input-button-embedded{border-top-left-radius:0;border-top-right-radius:4px !important;border-bottom-right-radius:4px !important;border-bottom-left-radius:0}.duet-button.duet-button.input-button-primary .duet-button-icon.left.large,.duet-button.duet-button.input-button-primary .duet-button-icon.left.medium,.duet-button.duet-button.input-button-primary .duet-button-icon.left.small,.duet-button.duet-button.input-button-secondary .duet-button-icon.left.large,.duet-button.duet-button.input-button-secondary .duet-button-icon.left.medium,.duet-button.duet-button.input-button-secondary .duet-button-icon.left.small,.duet-button.duet-button.input-button-embedded .duet-button-icon.left.large,.duet-button.duet-button.input-button-embedded .duet-button-icon.left.medium,.duet-button.duet-button.input-button-embedded .duet-button-icon.left.small{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}.duet-button.duet-button.input-button-embedded{border-left-width:0}.duet-button.duet-button.input-button-left-primary,.duet-button.duet-button.input-button-left-secondary{border-top-left-radius:4px !important;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px !important}.duet-button.duet-button.input-button-left-primary .duet-button-contents,.duet-button.duet-button.input-button-left-secondary .duet-button-contents{position:static}.duet-button.duet-button.input-button-secondary,.duet-button.duet-button.input-button-left-secondary{border-color:rgb(127, 150, 165)}.duet-button.square{width:52px;min-width:auto !important;padding:0 !important;font-size:1rem;border-color:rgb(181, 198, 208);border-width:1px}.duet-button.square.duet-button-size-small{width:42px;font-size:0.875rem}.duet-button.square.duet-button-size-x-small{width:34px;font-size:0.875rem}.duet-button.square.duet-button-negative{color:rgb(255, 255, 255) !important;background:rgb(0, 119, 179);border-color:rgb(0, 119, 179)}.duet-button.square:hover{outline:2px solid rgb(0, 119, 179);outline-offset:-2px;border-color:rgb(0, 119, 179)}.duet-button.square .duet-button-contents{gap:0}.duet-button[disabled],.duet-button[disabled]:hover,.duet-button.duet-button-negative[disabled],.duet-button.duet-button-negative[disabled]:hover{color:rgb(98, 121, 138) !important;cursor:not-allowed;outline:none !important;outline-color:rgb(212, 223, 229) !important;outline-color:rgb(212, 223, 229) !important;background:rgb(212, 223, 229) !important;border-color:rgb(212, 223, 229) !important;box-shadow:none !important}.duet-button-is-loading.primary,.duet-button-is-loading.input-button-primary{color:rgb(255, 255, 255)}.duet-button-is-loading.default{color:rgb(0, 119, 179)}.duet-button-is-loading .duet-button-contents{visibility:hidden;opacity:0}.duet-theme-turva .duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(230, 23, 64) !important;border-radius:8px}.duet-theme-turva .duet-button.duet-button-size-medium{padding-right:24px;padding-left:24px;border-radius:8px}.duet-theme-turva .duet-button.duet-button-size-medium.icon-left{padding-left:14px}.duet-theme-turva .duet-button.duet-button-size-medium.icon-right{padding-right:14px}.duet-theme-turva .duet-button.duet-button-size-small{padding-right:18px;padding-left:18px;border-radius:8px}.duet-theme-turva .duet-button.duet-button-size-small.icon-left{padding-left:18px}.duet-theme-turva .duet-button.duet-button-size-small.icon-right{padding-right:18px}.duet-theme-turva .duet-button.default{color:rgb(230, 23, 64) !important;border-color:rgb(178, 194, 205)}.duet-theme-turva .duet-button.default:hover{outline-color:rgb(230, 23, 64);border-color:rgb(230, 23, 64)}.duet-theme-turva .duet-button.default.duet-button-negative{background-color:rgb(251, 225, 209) !important}.duet-theme-turva .duet-button.default.duet-button-negative:hover{color:rgb(230, 23, 64) !important;border-color:rgb(230, 23, 64)}.duet-theme-turva .duet-button.primary,.duet-theme-turva .duet-button.input-button-primary,.duet-theme-turva .duet-button.input-button-left-primary{color:rgb(255, 255, 255) !important;background:rgb(230, 23, 64);border-color:rgb(230, 23, 64)}.duet-theme-turva .duet-button.primary:hover,.duet-theme-turva .duet-button.input-button-primary:hover,.duet-theme-turva .duet-button.input-button-left-primary:hover{background:rgb(140, 0, 30);border-color:rgb(140, 0, 30)}.duet-theme-turva .duet-button.secondary,.duet-theme-turva .duet-button.input-button-secondary,.duet-theme-turva .duet-button.input-button-left-secondary,.duet-theme-turva .duet-button.input-button-embedded{color:rgb(23, 42, 59) !important;border-color:rgb(23, 42, 59)}.duet-theme-turva .duet-button.secondary:hover,.duet-theme-turva .duet-button.input-button-secondary:hover,.duet-theme-turva .duet-button.input-button-left-secondary:hover,.duet-theme-turva .duet-button.input-button-embedded:hover{color:rgb(230, 23, 64) !important;border-color:rgb(230, 23, 64)}.duet-theme-turva .duet-button.secondary.duet-button-negative,.duet-theme-turva .duet-button.input-button-secondary.duet-button-negative,.duet-theme-turva .duet-button.input-button-left-secondary.duet-button-negative,.duet-theme-turva .duet-button.input-button-embedded.duet-button-negative{color:rgb(251, 225, 209) !important}.duet-theme-turva .duet-button.secondary.duet-button-negative:hover,.duet-theme-turva .duet-button.input-button-secondary.duet-button-negative:hover,.duet-theme-turva .duet-button.input-button-left-secondary.duet-button-negative:hover,.duet-theme-turva .duet-button.input-button-embedded.duet-button-negative:hover{color:rgb(230, 23, 64) !important;border-color:rgb(230, 23, 64)}.duet-theme-turva .duet-button.duet-button.input-button-primary,.duet-theme-turva .duet-button.duet-button.input-button-secondary,.duet-theme-turva .duet-button.duet-button.input-button-embedded{border-top-left-radius:0;border-bottom-left-radius:0}.duet-theme-turva .duet-button.duet-button.input-button-left-primary,.duet-theme-turva .duet-button.duet-button.input-button-left-secondary{border-top-right-radius:0;border-bottom-right-radius:0}.duet-theme-turva .duet-button.duet-button.input-button-secondary,.duet-theme-turva .duet-button.duet-button.input-button-left-secondary{border-color:rgb(120, 145, 164)}.duet-theme-turva .duet-button.negative{color:rgb(23, 42, 59) !important}.duet-theme-turva .duet-button.negative:hover{color:rgb(255, 255, 255) !important}.duet-theme-turva .duet-button.destructive-primary{color:rgb(255, 255, 255) !important;background:rgb(214, 28, 82);border-color:rgb(214, 28, 82)}.duet-theme-turva .duet-button.destructive-primary:hover{background:#ab1642}.duet-theme-turva .duet-button.destructive,.duet-theme-turva .duet-button.destructive-secondary{color:rgb(214, 28, 82) !important;background:rgb(255, 255, 255);border-color:rgb(214, 28, 82)}.duet-theme-turva .duet-button.destructive:hover,.duet-theme-turva .duet-button.destructive-secondary:hover{color:rgb(255, 255, 255) !important;background:#ab1642;border-color:#ab1642}.duet-theme-turva .duet-button.plain{color:rgb(230, 23, 64) !important;background:transparent;border-color:transparent}.duet-theme-turva .duet-button.plain.duet-button-negative{color:rgb(255, 255, 255) !important}.duet-theme-turva .duet-button.plain:hover{color:rgb(140, 0, 30) !important}.duet-theme-turva .duet-button.plain[disabled],.duet-theme-turva .duet-button.plain[disabled]:hover{color:rgb(95, 122, 143) !important;cursor:not-allowed;background:transparent !important;border-color:rgb(251, 225, 209) !important}.duet-theme-turva .duet-button.square{border-color:rgb(212, 221, 226)}.duet-theme-turva .duet-button.square.duet-button-negative{color:rgb(255, 255, 255) !important;background:rgb(230, 23, 64);border-color:rgb(230, 23, 64)}.duet-theme-turva .duet-button.square:hover{outline-color:rgb(230, 23, 64);border-color:rgb(230, 23, 64)}.duet-theme-turva .duet-button[disabled],.duet-theme-turva .duet-button[disabled]:hover,.duet-theme-turva .duet-button.duet-button-negative [disabled],.duet-theme-turva .duet-button.duet-button-negative [disabled]:hover{color:rgb(120, 145, 164) !important;cursor:not-allowed;outline-color:rgb(212, 221, 226) !important;background:rgb(212, 221, 226) !important;border-color:rgb(212, 221, 226) !important}.duet-theme-turva .duet-button-is-loading.default{color:rgb(230, 23, 64)}";
5636
+ const duetButtonCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;font-size:0;vertical-align:bottom;-webkit-tap-highlight-color:transparent}:host:last-child,:host:last-of-type{margin-right:0 !important}[alignment=form-distribute]>:host:last-of-type:not(:last-child){margin-right:8px !important}@media (max-width: 35.9375em){:host{width:100%}}:host(.square){margin-right:12px !important}:host(.square):last-child,:host(.square):last-of-type{margin-right:0 !important}[alignment=form-distribute]>:host(.square):last-of-type:not(:last-child){margin-right:12px !important}:host(.input-button){z-index:250}:host(.duet-small),:host(.duet-x-small){margin-right:4px !important;margin-bottom:8px !important}:host(.duet-small):last-child,:host(.duet-small):last-of-type,:host(.duet-x-small):last-child,:host(.duet-x-small):last-of-type{margin-right:0 !important}[alignment=form-distribute]>:host(.duet-small):last-of-type:not(:last-child),[alignment=form-distribute]>:host(.duet-x-small):last-of-type:not(:last-child){margin-right:4px !important}@media (max-width: 35.9375em){:host(.duet-small),:host(.duet-x-small){width:auto}}:host(.duet-x-small){margin-right:2px !important}:host(.duet-x-small):last-child,:host(.duet-x-small):last-of-type{margin-right:0 !important}[alignment=form-distribute]>:host(.duet-x-small):last-of-type:not(:last-child){margin-right:2px !important}:host(.square.duet-small),:host(.square.duet-x-small){margin-right:8px !important}:host(.square.duet-small):last-child,:host(.square.duet-small):last-of-type,:host(.square.duet-x-small):last-child,:host(.square.duet-x-small):last-of-type{margin-right:0 !important}[alignment=form-distribute]>:host(.square.duet-small):last-of-type:not(:last-child),[alignment=form-distribute]>:host(.square.duet-x-small):last-of-type:not(:last-child){margin-right:8px !important}:host(.duet-expand){width:100% !important}:host(.duet-m-0){margin:0 !important}:host(.duet-fixed){width:auto !important}:host(:last-child){margin-right:0 !important}.duet-button-container{position:relative;display:block;width:100%}.duet-button{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:flex;align-items:center;width:100%;min-width:8rem;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:1rem;font-weight:600;line-height:1.1;color:rgb(0, 119, 179) !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:1px;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, padding 300ms ease, box-shadow 300ms ease}.duet-button.duet-p-0{padding:0 !important}.duet-button.duet-m-0{margin:0 !important}.duet-button:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva .duet-button:focus,.duet-button:focus.duet-theme-turva{outline:2px solid;outline-offset:2px;outline-color:rgba(53, 79, 101, 0.8)}.duet-button.duet-button-size-medium{height:50px;padding-right:30px;padding-left:30px;font-size:1rem;border-radius:25px}.duet-button.duet-button-size-medium.square{border-radius:12.5px}.duet-button.duet-button-size-medium.icon-left{padding-left:24px}.duet-button.duet-button-size-medium.icon-right{padding-right:24px}.duet-button.duet-button-size-small{height:40px;padding-right:20px;padding-left:20px;font-size:0.875rem;border-radius:20px}.duet-button.duet-button-size-small.square{border-radius:10px}.duet-button.duet-button-size-small.icon-left{padding-left:18px}.duet-button.duet-button-size-small.icon-right{padding-right:18px}.duet-button.duet-button-size-x-small{height:32px;padding-right:12px;padding-left:12px;font-size:0.75rem;border-radius:8px}.duet-button.duet-button-size-x-small.icon-left{padding-left:10px}.duet-button.duet-button-size-x-small.icon-right{padding-right:10px}.duet-button.plain.duet-p-0{height:auto}.duet-button:not(.input-button-primary,.input-button-secondary,.input-button-embedded){font-variant-numeric:tabular-nums}.duet-button.duet-button-text-center{text-align:center !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only){min-width:48px}.duet-button.duet-button-is-small:not(.duet-button-icon-only).plain{padding-right:0 !important;padding-left:0 !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only).duet-p-0{padding:0 !important}.duet-button .duet-button-contents{position:relative;display:flex;gap:10px;align-items:center;margin:0 auto;pointer-events:none}.duet-button .duet-button-contents.icon-right{flex-direction:row-reverse}.duet-button .duet-button-contents .duet-button-contents-slot{position:relative;top:0}.duet-button.duet-no-wrap{white-space:nowrap}.duet-button svg{width:100%;min-width:100%;fill:currentColor}.duet-button .duet-button-icon{display:flex;align-items:center}.duet-button .duet-button-icon duet-icon{width:16px;height:16px}.duet-button .duet-button-icon.large duet-icon{width:20px;height:20px}.duet-button .duet-button-icon.medium-small duet-icon{width:10px;height:10px}.duet-button .duet-button-icon.small duet-icon{width:7px;height:7px}.duet-button:active:not([disabled]){opacity:0.75;transition:none}.duet-button.default{background:rgb(255, 255, 255);border-color:rgb(181, 198, 208)}.duet-button.default:hover{outline:2px solid rgb(0, 119, 179);outline-offset:-2px;border-color:rgb(0, 119, 179)}.duet-button.default.duet-button-negative{background-color:rgb(255, 255, 255)}.duet-button.default.duet-button-negative:hover{color:rgb(0, 119, 179) !important;border-color:rgb(0, 119, 179)}.duet-button.primary,.duet-button.input-button-primary,.duet-button.input-button-left-primary{color:rgb(255, 255, 255) !important;background:rgb(0, 119, 179);border-color:rgb(0, 119, 179)}.duet-button.primary:hover,.duet-button.input-button-primary:hover,.duet-button.input-button-left-primary:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px 0 rgba(34, 34, 34, 0.1)}.duet-button.secondary,.duet-button.input-button-secondary,.duet-button.input-button-left-secondary,.duet-button.input-button-embedded{color:rgb(8, 42, 77) !important;background:transparent;border-color:rgb(8, 42, 77)}.duet-button.secondary:hover,.duet-button.input-button-secondary:hover,.duet-button.input-button-left-secondary:hover,.duet-button.input-button-embedded:hover{color:rgb(0, 119, 179) !important;border-color:rgb(0, 119, 179);outline:2px solid;outline-color:rgb(127, 150, 165) !important;outline-offset:-1px}.duet-theme-turva .duet-button.secondary:hover,.duet-button.secondary:hover.duet-theme-turva,.duet-theme-turva .duet-button.input-button-secondary:hover,.duet-button.input-button-secondary:hover.duet-theme-turva,.duet-theme-turva .duet-button.input-button-left-secondary:hover,.duet-button.input-button-left-secondary:hover.duet-theme-turva,.duet-theme-turva .duet-button.input-button-embedded:hover,.duet-button.input-button-embedded:hover.duet-theme-turva{outline-color:rgb(120, 145, 164) !important}.duet-button.secondary.duet-button-negative,.duet-button.input-button-secondary.duet-button-negative,.duet-button.input-button-left-secondary.duet-button-negative,.duet-button.input-button-embedded.duet-button-negative{color:rgb(212, 223, 229) !important;border-color:rgb(255, 255, 255)}.duet-button.secondary.duet-button-negative:hover,.duet-button.input-button-secondary.duet-button-negative:hover,.duet-button.input-button-left-secondary.duet-button-negative:hover,.duet-button.input-button-embedded.duet-button-negative:hover{color:rgb(0, 119, 179) !important;border-color:rgb(0, 119, 179)}.duet-button.input-button-embedded{width:40px;min-width:40px !important;min-height:40px !important;margin:4px !important;border-width:0 !important;border-radius:4px !important}.duet-button.input-button{height:auto}.duet-button.negative{color:rgb(8, 42, 77) !important;background:rgb(255, 255, 255);border-color:rgb(255, 255, 255)}.duet-button.negative:hover{color:rgb(255, 255, 255) !important;background:transparent;border-color:rgb(255, 255, 255)}.duet-button.duet-button-negative:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(255, 255, 255, 0.8)}.duet-button.destructive-primary{color:rgb(255, 255, 255) !important;background:rgb(214, 28, 82);border-color:rgb(214, 28, 82)}.duet-button.destructive-primary:hover{background:#ab1642;border-color:#ab1642;box-shadow:0 4px 20px 0 rgba(34, 34, 34, 0.1)}.duet-button.destructive,.duet-button.destructive-secondary{color:rgb(214, 28, 82) !important;background:rgb(255, 255, 255);border-color:rgb(214, 28, 82)}.duet-button.destructive:hover,.duet-button.destructive-secondary:hover{color:rgb(255, 255, 255) !important;background:#ab1642;border-color:#ab1642}.duet-button.plain{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}.duet-button.plain.duet-p-0 .duet-button-contents{height:auto}.duet-button.plain[disabled],.duet-button.plain[disabled]:hover{color:rgb(98, 121, 138) !important;cursor:not-allowed;background:transparent !important;border-color:transparent !important}.duet-button.plain:hover{color:rgb(0, 75, 129) !important;background:transparent !important}.duet-button.plain.duet-button-negative{color:rgb(255, 255, 255) !important}.duet-button.plain.duet-button-negative:hover{color:rgba(255, 255, 255, 0.8) !important}.duet-button.plain.duet-button-icon-only:focus{outline-offset:1px}.duet-button.duet-button-icon-only{min-width:48px;min-height:48px;padding:0 !important}.duet-button.duet-button-icon-only .duet-button-contents{position:static}.duet-button.duet-button-icon-only .duet-button-icon.left.large,.duet-button.duet-button-icon-only .duet-button-icon.left.medium,.duet-button.duet-button-icon-only .duet-button-icon.left.small{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}.duet-button.duet-button.input-button-primary,.duet-button.duet-button.input-button-secondary,.duet-button.duet-button.input-button-embedded,.duet-button.duet-button.input-button-left-primary,.duet-button.duet-button.input-button-left-secondary{box-sizing:content-box;min-width:48px;min-height:48px;padding:0 !important;border-width:1px}.duet-button.duet-button.input-button-primary .duet-button-contents,.duet-button.duet-button.input-button-secondary .duet-button-contents,.duet-button.duet-button.input-button-embedded .duet-button-contents,.duet-button.duet-button.input-button-left-primary .duet-button-contents,.duet-button.duet-button.input-button-left-secondary .duet-button-contents{position:static}.duet-button.duet-button.input-button-primary .duet-button-contents.icon-right,.duet-button.duet-button.input-button-secondary .duet-button-contents.icon-right,.duet-button.duet-button.input-button-embedded .duet-button-contents.icon-right,.duet-button.duet-button.input-button-left-primary .duet-button-contents.icon-right,.duet-button.duet-button.input-button-left-secondary .duet-button-contents.icon-right{padding:0 16px}.duet-button.duet-button.input-button-primary,.duet-button.duet-button.input-button-secondary,.duet-button.duet-button.input-button-embedded{border-top-left-radius:0;border-top-right-radius:4px !important;border-bottom-right-radius:4px !important;border-bottom-left-radius:0}.duet-button.duet-button.input-button-primary .duet-button-icon.left.large,.duet-button.duet-button.input-button-primary .duet-button-icon.left.medium,.duet-button.duet-button.input-button-primary .duet-button-icon.left.small,.duet-button.duet-button.input-button-secondary .duet-button-icon.left.large,.duet-button.duet-button.input-button-secondary .duet-button-icon.left.medium,.duet-button.duet-button.input-button-secondary .duet-button-icon.left.small,.duet-button.duet-button.input-button-embedded .duet-button-icon.left.large,.duet-button.duet-button.input-button-embedded .duet-button-icon.left.medium,.duet-button.duet-button.input-button-embedded .duet-button-icon.left.small{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}.duet-button.duet-button.input-button-embedded{border-left-width:0}.duet-button.duet-button.input-button-left-primary,.duet-button.duet-button.input-button-left-secondary{border-top-left-radius:4px !important;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px !important}.duet-button.duet-button.input-button-left-primary .duet-button-contents,.duet-button.duet-button.input-button-left-secondary .duet-button-contents{position:static}.duet-button.duet-button.input-button-secondary,.duet-button.duet-button.input-button-left-secondary{border-color:rgb(127, 150, 165)}.duet-button.square{width:52px;min-width:auto !important;padding:0 !important;font-size:1rem;border-color:rgb(181, 198, 208);border-width:1px}.duet-button.square.duet-button-size-small{width:42px;font-size:0.875rem}.duet-button.square.duet-button-size-x-small{width:34px;font-size:0.875rem}.duet-button.square.duet-button-negative{color:rgb(255, 255, 255) !important;background:rgb(0, 119, 179);border-color:rgb(0, 119, 179)}.duet-button.square:hover{outline:2px solid rgb(0, 119, 179);outline-offset:-2px;border-color:rgb(0, 119, 179)}.duet-button.square .duet-button-contents{gap:0}.duet-button[disabled],.duet-button[disabled]:hover,.duet-button.duet-button-negative[disabled],.duet-button.duet-button-negative[disabled]:hover{color:rgb(98, 121, 138) !important;cursor:not-allowed;outline:none !important;outline-color:rgb(212, 223, 229) !important;outline-color:rgb(212, 223, 229) !important;background:rgb(212, 223, 229) !important;border-color:rgb(212, 223, 229) !important;box-shadow:none !important}.duet-button-is-loading.primary,.duet-button-is-loading.input-button-primary{color:rgb(255, 255, 255)}.duet-button-is-loading.default{color:rgb(0, 119, 179)}.duet-button-is-loading .duet-button-contents{visibility:hidden;opacity:0}.duet-theme-turva .duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(230, 23, 64) !important;border-radius:8px}.duet-theme-turva .duet-button.duet-button-size-medium{padding-right:24px;padding-left:24px;border-radius:8px}.duet-theme-turva .duet-button.duet-button-size-medium.icon-left{padding-left:14px}.duet-theme-turva .duet-button.duet-button-size-medium.icon-right{padding-right:14px}.duet-theme-turva .duet-button.duet-button-size-small{padding-right:18px;padding-left:18px;border-radius:8px}.duet-theme-turva .duet-button.duet-button-size-small.icon-left{padding-left:18px}.duet-theme-turva .duet-button.duet-button-size-small.icon-right{padding-right:18px}.duet-theme-turva .duet-button.default{color:rgb(230, 23, 64) !important;border-color:rgb(178, 194, 205)}.duet-theme-turva .duet-button.default:hover{outline-color:rgb(230, 23, 64);border-color:rgb(230, 23, 64)}.duet-theme-turva .duet-button.default.duet-button-negative{background-color:rgb(251, 225, 209) !important}.duet-theme-turva .duet-button.default.duet-button-negative:hover{color:rgb(230, 23, 64) !important;border-color:rgb(230, 23, 64)}.duet-theme-turva .duet-button.primary,.duet-theme-turva .duet-button.input-button-primary,.duet-theme-turva .duet-button.input-button-left-primary{color:rgb(255, 255, 255) !important;background:rgb(230, 23, 64);border-color:rgb(230, 23, 64)}.duet-theme-turva .duet-button.primary:hover,.duet-theme-turva .duet-button.input-button-primary:hover,.duet-theme-turva .duet-button.input-button-left-primary:hover{background:rgb(140, 0, 30);border-color:rgb(140, 0, 30)}.duet-theme-turva .duet-button.secondary,.duet-theme-turva .duet-button.input-button-secondary,.duet-theme-turva .duet-button.input-button-left-secondary,.duet-theme-turva .duet-button.input-button-embedded{color:rgb(23, 42, 59) !important;border-color:rgb(23, 42, 59)}.duet-theme-turva .duet-button.secondary:hover,.duet-theme-turva .duet-button.input-button-secondary:hover,.duet-theme-turva .duet-button.input-button-left-secondary:hover,.duet-theme-turva .duet-button.input-button-embedded:hover{color:rgb(230, 23, 64) !important;border-color:rgb(230, 23, 64)}.duet-theme-turva .duet-button.secondary.duet-button-negative,.duet-theme-turva .duet-button.input-button-secondary.duet-button-negative,.duet-theme-turva .duet-button.input-button-left-secondary.duet-button-negative,.duet-theme-turva .duet-button.input-button-embedded.duet-button-negative{color:rgb(251, 225, 209) !important}.duet-theme-turva .duet-button.secondary.duet-button-negative:hover,.duet-theme-turva .duet-button.input-button-secondary.duet-button-negative:hover,.duet-theme-turva .duet-button.input-button-left-secondary.duet-button-negative:hover,.duet-theme-turva .duet-button.input-button-embedded.duet-button-negative:hover{color:rgb(230, 23, 64) !important;border-color:rgb(230, 23, 64)}.duet-theme-turva .duet-button.duet-button.input-button-primary,.duet-theme-turva .duet-button.duet-button.input-button-secondary,.duet-theme-turva .duet-button.duet-button.input-button-embedded{border-top-left-radius:0;border-bottom-left-radius:0}.duet-theme-turva .duet-button.duet-button.input-button-left-primary,.duet-theme-turva .duet-button.duet-button.input-button-left-secondary{border-top-right-radius:0;border-bottom-right-radius:0}.duet-theme-turva .duet-button.duet-button.input-button-secondary,.duet-theme-turva .duet-button.duet-button.input-button-left-secondary{border-color:rgb(120, 145, 164)}.duet-theme-turva .duet-button.negative{color:rgb(23, 42, 59) !important}.duet-theme-turva .duet-button.negative:hover{color:rgb(255, 255, 255) !important}.duet-theme-turva .duet-button.destructive-primary{color:rgb(255, 255, 255) !important;background:rgb(214, 28, 82);border-color:rgb(214, 28, 82)}.duet-theme-turva .duet-button.destructive-primary:hover{background:#ab1642}.duet-theme-turva .duet-button.destructive,.duet-theme-turva .duet-button.destructive-secondary{color:rgb(214, 28, 82) !important;background:rgb(255, 255, 255);border-color:rgb(214, 28, 82)}.duet-theme-turva .duet-button.destructive:hover,.duet-theme-turva .duet-button.destructive-secondary:hover{color:rgb(255, 255, 255) !important;background:#ab1642;border-color:#ab1642}.duet-theme-turva .duet-button.plain{color:rgb(230, 23, 64) !important;background:transparent;border-color:transparent}.duet-theme-turva .duet-button.plain.duet-button-negative{color:rgb(255, 255, 255) !important}.duet-theme-turva .duet-button.plain:hover{color:rgb(140, 0, 30) !important}.duet-theme-turva .duet-button.plain[disabled],.duet-theme-turva .duet-button.plain[disabled]:hover{color:rgb(95, 122, 143) !important;cursor:not-allowed;background:transparent !important;border-color:rgb(251, 225, 209) !important}.duet-theme-turva .duet-button.square{border-color:rgb(212, 221, 226)}.duet-theme-turva .duet-button.square.duet-button-negative{color:rgb(255, 255, 255) !important;background:rgb(230, 23, 64);border-color:rgb(230, 23, 64)}.duet-theme-turva .duet-button.square:hover{outline-color:rgb(230, 23, 64);border-color:rgb(230, 23, 64)}.duet-theme-turva .duet-button[disabled],.duet-theme-turva .duet-button[disabled]:hover,.duet-theme-turva .duet-button.duet-button-negative [disabled],.duet-theme-turva .duet-button.duet-button-negative [disabled]:hover{color:rgb(120, 145, 164) !important;cursor:not-allowed;outline-color:rgb(212, 221, 226) !important;background:rgb(212, 221, 226) !important;border-color:rgb(212, 221, 226) !important}.duet-theme-turva .duet-button-is-loading.default{color:rgb(230, 23, 64)}";
5604
5637
 
5605
5638
  class DuetButton {
5606
5639
  constructor(hostRef) {
@@ -5662,7 +5695,7 @@ class DuetButton {
5662
5695
  */
5663
5696
  this.expand = false;
5664
5697
  /**
5665
- * Keep the button fixed width even on mobile viewports.
5698
+ * Keep the button fixed width even on mobile viewports. Fixed width is always used for variation plain.
5666
5699
  */
5667
5700
  this.fixed = false;
5668
5701
  /**
@@ -5915,7 +5948,7 @@ class DuetButton {
5915
5948
  "duet-m-0": this.margin === "none",
5916
5949
  "duet-small": this.size === "small",
5917
5950
  "duet-x-small": this.size === "x-small",
5918
- "duet-fixed": this.fixed,
5951
+ "duet-fixed": this.fixed || this.variation === "plain",
5919
5952
  "duet-expand": this.expand,
5920
5953
  [this.variation]: true,
5921
5954
  "input-button": (_b = this.variation) === null || _b === void 0 ? void 0 : _b.startsWith("input-button"),
@@ -6017,11 +6050,11 @@ class DuetCallout {
6017
6050
  <path d="M6.6591 0.557547L9.2031 2.33355C7.0911 5.21355 6.1311 7.18155 5.8431 8.90955C7.4751 9.34155 8.7231 10.5415 8.7231 12.6535C8.7231 15.2935 6.9471 16.9255 4.6431 16.9255C2.0511 16.9255 0.227096 15.1975 0.227096 12.2695C0.227096 8.28555 2.3871 4.34955 6.6591 0.557547ZM17.9871 8.95755C19.6191 9.34155 20.8671 10.5415 20.8671 12.6535C20.8671 15.2935 19.1391 16.9255 16.8351 16.9255C14.2431 16.9255 12.4191 15.1975 12.4191 12.2695C12.4191 8.28555 14.5791 4.34955 18.8511 0.557547L21.3951 2.33355C19.2351 5.21355 18.3231 7.18155 17.9871 8.95755Z"/>
6018
6051
  </svg>
6019
6052
  `;
6020
- return (hAsync(Host, { key: 'e0a035450d6e7305b25de43ed55f4ffe7a15a0e3' }, hAsync("div", { key: '6c5d998d494deab47f1384005e7d2dfb95246c7b', class: {
6053
+ return (hAsync(Host, { key: '70c2370b0a61707b44ed89544cf0ae0d3eb5b739' }, hAsync("div", { key: '440dfe7d27ede12ff24de94bd9b598b9a630fdf4', class: {
6021
6054
  "duet-callout": true,
6022
6055
  "duet-theme-turva": this.theme === "turva",
6023
6056
  "duet-m-0": this.margin === "none",
6024
- } }, hAsync("figure", { key: '48c6d6f720cd951a3e80e953265a1c79174c0dd6', class: "container" }, hAsync("duet-icon", { key: 'f25c2dbb92d9a7f05b11512f9ef73052585916a7', class: "callout-icon", shape: "brand-rotated", background: "primary-lighter", "background-opacity": "0.75", "background-rotation": this.theme === "turva" ? "0" : "7", color: "secondary", icon: icon, size: "auto", margin: "none", theme: this.theme }), hAsync("blockquote", { key: 'e01e4dcdc7992709803169f5fb85183134f7608f' }, hAsync("slot", { key: '7d23fc2421ababa106e834cbb1681d7b94137574' })), this.hasAuthorSlot && (hAsync("figcaption", { key: 'ccd723ba6d25df159a5826a0ab652cde0556659d', class: "author" }, hAsync("span", { key: '0daa1d1540484278f462a1f6ea258dd292f5548c' }, "\u2014 "), hAsync("slot", { key: '47f2ade5a9f6e081482c243fa52942de8fa523e8', name: "author" })))))));
6057
+ } }, hAsync("figure", { key: 'b3aa896544cb2cc6021eb50ea96e317fd256d266', class: "container" }, hAsync("duet-icon", { key: 'cdffa280e6126af9e8e77bc6a96821cf7b229796', class: "callout-icon", shape: "brand-rotated", background: "primary-lighter", "background-opacity": "0.75", "background-rotation": this.theme === "turva" ? "0" : "7", color: "secondary", icon: icon, size: "auto", margin: "none", theme: this.theme }), hAsync("blockquote", { key: '8b3d9b55675179e4ed743459009d4f278bf2b30a' }, hAsync("slot", { key: '41a60c64671630e6199cb5bcc94a9d19f530b8f3' })), this.hasAuthorSlot && (hAsync("figcaption", { key: '80d6481648829aead64c88db38312ee34253424e', class: "author" }, hAsync("span", { key: '2bf9d1de8bfa5456ea8c69c9b2731e2b1a4bbef3' }, "\u2014 "), hAsync("slot", { key: '091fcf50b602dccfb2d8ae005999539a0dde8efb', name: "author" })))))));
6025
6058
  }
6026
6059
  get element() { return getElement(this); }
6027
6060
  static get style() { return duetCalloutCss; }
@@ -6109,7 +6142,7 @@ function requireActionArrowUp () {
6109
6142
  var actionArrowUpExports = requireActionArrowUp();
6110
6143
  var arrowUpIcon = /*@__PURE__*/getDefaultExportFromCjs(actionArrowUpExports);
6111
6144
 
6112
- const duetCardCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-bottom:20px !important;display:flex;width:100%;vertical-align:top}:host(.duet-card-info){margin-bottom:16px !important}:host(.duet-m-0){margin:0 !important}:host{--duet-card-border-radius:12px}@media (min-width: 36em){:host{--duet-card-border-radius:16px}}.duet-card{padding:20px !important;position:relative;display:flex;flex-direction:column;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:1rem;font-style:normal;font-weight:400;line-height:1.5;color:rgb(8, 42, 77);text-decoration:none;border-radius:var(--duet-card-border-radius);box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}.duet-card.duet-p-0{padding:0 !important}.duet-card.duet-m-0{margin:0 !important}.duet-card:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva .duet-card:focus,.duet-card:focus.duet-theme-turva{outline:2px solid;outline-offset:2px;outline-color:rgba(53, 79, 101, 0.8)}@media (max-width: 20.5em){.duet-card.shadow-xxx-small{box-shadow:none}}@media (max-width: 22.5em){.duet-card.shadow-xx-small{box-shadow:none}}@media (max-width: 35.9375em){.duet-card.shadow-x-small{box-shadow:none}}@media (min-width: 36em){.duet-card.shadow-small{box-shadow:none}}@media (min-width: 48em){.duet-card.shadow-medium{box-shadow:none}}@media (min-width: 62em){.duet-card.shadow-large{box-shadow:none}}@media (min-width: 64.0625em){.duet-card.shadow-x-large{box-shadow:none}}@media (min-width: 76.25em){.duet-card.shadow-xx-large{box-shadow:none}}@media (min-width: 106.25em){.duet-card.shadow-xxx-large{box-shadow:none}}@media (min-width: 36em){.duet-card{padding:28px !important}}@media (min-width: 36em){.duet-card.xx-small{padding:12px !important}}@media (min-width: 36em){.duet-card.x-small{padding:20px !important}}@media (min-width: 36em){.duet-card.medium{padding:28px !important}}@media (min-width: 48em){.duet-card.medium{padding:36px !important}}@media (min-width: 36em){.duet-card.large{padding:36px !important}}@media (min-width: 48em){.duet-card.large{padding:48px !important}}@media (min-width: 36em){.duet-card.x-large{padding:48px !important}}@media (min-width: 48em){.duet-card.x-large{padding:72px !important}}.duet-card.duet-card-collapsed{padding-bottom:0 !important}@media (min-width: 36em){.duet-card.duet-card-collapsed{padding-bottom:0 !important}}.duet-card.info{background:rgba(4, 81, 128, 0.04) !important;box-shadow:none}.duet-card.plain{box-shadow:none}.duet-card.plain:not(.duet-card-has-bg){background:transparent !important}.duet-card-heading-grid{display:flex;flex-direction:row}.duet-card-icon{align-self:center}.duet-card-heading-text{flex:1;word-break:break-word}.duet-card-secondary-heading{font-size:1rem;font-weight:600;word-break:break-word}.duet-card-secondary-heading--inline{display:block;flex:1;align-self:flex-start;line-height:1.875;text-align:right}@media (max-width: 22.5em){.duet-card-secondary-heading--inline{display:none}}.duet-card-secondary-heading--new-line{display:none}@media (max-width: 22.5em){.duet-card-secondary-heading--new-line{display:block}}.duet-card-heading{position:relative;display:block;padding:16px 20px;margin:-20px -20px 20px;overflow:hidden;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:1.25rem;font-weight:800;color:rgb(8, 42, 77);border-bottom:1px solid rgb(212, 223, 229);border-radius:var(--duet-card-border-radius) var(--duet-card-border-radius) 0 0}@media (min-width: 36em){.duet-card-heading{padding:15px 28px 16px !important;margin:-28px -28px 20px}.none .duet-card-heading{padding:0 !important;margin:0}}.duet-card-collapsed .duet-card-heading{border-radius:var(--duet-card-border-radius)}.duet-card-image-mask+.duet-card-heading{border-radius:0}.duet-card-heading.duet-card-heading--collapsible{cursor:pointer}.duet-card-heading.duet-card-heading--collapsible button{width:100%;font-family:inherit;font-size:inherit;font-weight:inherit;color:inherit;text-align:left;cursor:pointer}.duet-card-heading.duet-card-heading--collapsible button:focus{outline:0}:host(.user-is-tabbing) .duet-card-heading.duet-card-heading--collapsible button:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva :host(.user-is-tabbing) .duet-card-heading.duet-card-heading--collapsible button:focus,:host(.user-is-tabbing) .duet-card-heading.duet-card-heading--collapsible button:focus.duet-theme-turva{outline-color:rgba(53, 79, 101, 0.8)}:host(.user-is-tabbing) .duet-card-heading.duet-card-heading--collapsible button:focus{border-radius:var(--duet-card-border-radius)}.duet-card-collapsed .duet-card-heading{margin-bottom:0 !important;border-bottom:0 !important}@media (min-width: 36em){.xx-small .duet-card-heading{padding:6px 12px 7px !important;margin:-12px -12px 12px}}@media (min-width: 48em){.xx-small .duet-card-heading{padding:6px 12px 7px !important;margin:-12px -12px 12px}}@media (min-width: 36em){.x-small .duet-card-heading{padding:10px 20px 11px !important;margin:-20px -20px 20px}}@media (min-width: 48em){.x-small .duet-card-heading{padding:10px 20px 11px !important;margin:-20px -20px 20px}}.medium .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.medium .duet-card-heading{padding:15px 28px 16px !important;margin:-28px -28px 20px}}@media (min-width: 48em){.medium .duet-card-heading{padding:19px 36px 20px !important;margin:-36px -36px 28px}}.large .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.large .duet-card-heading{padding:19px 36px 20px !important;margin:-36px -36px 28px}}@media (min-width: 48em){.large .duet-card-heading{padding:26px 48px 27px !important;margin:-48px -48px 36px}}.x-large .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.x-large .duet-card-heading{padding:26px 48px 27px !important;margin:-48px -48px 36px}}@media (min-width: 48em){.x-large .duet-card-heading{padding:39px 72px 40px !important;margin:-72px -72px 48px}}.none .duet-card-heading{padding:0;margin:0}.duet-card-footer{padding:20px;margin:20px -20px -20px;font-size:0.875rem;line-height:1.25;background:rgb(245, 248, 250);border-bottom-right-radius:4px;border-bottom-left-radius:4px}@media (min-width: 36em){.duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){.duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 36em){.xx-small .duet-card-footer{padding:10px 20px 11px !important;padding-left:12px !important;margin:12px -12px -12px}}@media (min-width: 36em){.x-small .duet-card-footer{padding:15px 28px 16px !important;padding-left:20px !important;margin:20px -20px -20px}}@media (min-width: 36em){.medium .duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){.medium .duet-card-footer{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 36em){.large .duet-card-footer{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 48em){.large .duet-card-footer{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 36em){.x-large .duet-card-footer{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 48em){.x-large .duet-card-footer{padding:39px 72px 40px !important;margin:48px -72px -72px}}.none .duet-card-footer{padding:0;margin:0}.duet-card-content{flex:1 1 auto;width:100%}.duet-card-collapsed .duet-card-content{display:none}.duet-card-caret{position:relative;top:6px;align-self:flex-start;transition:300ms ease}[aria-expanded=false] .duet-card-caret{transform:rotate(-180deg)}.duet-card-image-mask{position:relative;width:calc(100% + 40px);margin:-20px 0 20px -20px;overflow:hidden;border-top-left-radius:4px;border-top-right-radius:4px}@media (min-width: 36em){.small .duet-card-image-mask{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 36em){.medium .duet-card-image-mask{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 48em){.medium .duet-card-image-mask{width:calc(100% + 72px);margin:-36px 0 28px -36px}}@media (min-width: 36em){.large .duet-card-image-mask{width:calc(100% + 72px);margin:-36px 0 36px -36px}}@media (min-width: 48em){.large .duet-card-image-mask{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 36em){.x-large .duet-card-image-mask{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 48em){.x-large .duet-card-image-mask{width:calc(100% + 144px);margin:-72px 0 36px -72px}}.none .duet-card-image-mask{width:100%;padding:0;margin:0}.duet-card-image{display:block;width:102%;min-width:1px;max-width:102%;height:auto;min-height:1px;margin-left:-1%;transform:scale(1.0001);transition:transform 300ms ease}a.duet-card{transition:box-shadow 300ms ease, background-position 300ms ease}a.duet-card:hover{box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(0, 41, 77, 0.1)}a.duet-card:hover .duet-card-image{transform:scale(1.024)}.duet-theme-turva a.duet-card:hover{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(117, 117, 117, 0.15)}a.duet-card:active{transform:translateY(1px);transition:none}.duet-card.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:rgb(23, 42, 59);box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}.duet-card.duet-theme-turva.info{background:rgb(253, 247, 242) !important}.duet-card.duet-theme-turva .duet-card-heading{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 42, 59);border-color:rgb(212, 221, 226)}.duet-card.duet-theme-turva .duet-card-footer{background:rgb(245, 246, 247)}";
6145
+ const duetCardCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-bottom:20px !important;display:flex;width:100%;vertical-align:top}:host(.duet-card-info){margin-bottom:16px !important}:host(.duet-m-0){margin:0 !important}:host{--duet-card-border-radius:12px}@media (min-width: 36em){:host{--duet-card-border-radius:16px}}.duet-card{padding:20px !important;position:relative;display:flex;flex-direction:column;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:1rem;font-style:normal;font-weight:400;line-height:1.5;color:rgb(8, 42, 77);text-decoration:none;border-radius:var(--duet-card-border-radius);box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}.duet-card.duet-p-0{padding:0 !important}.duet-card.duet-m-0{margin:0 !important}.duet-card:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva .duet-card:focus,.duet-card:focus.duet-theme-turva{outline:2px solid;outline-offset:2px;outline-color:rgba(53, 79, 101, 0.8)}@media (max-width: 20.5em){.duet-card.shadow-xxx-small{box-shadow:none}}@media (max-width: 22.5em){.duet-card.shadow-xx-small{box-shadow:none}}@media (max-width: 35.9375em){.duet-card.shadow-x-small{box-shadow:none}}@media (min-width: 36em){.duet-card.shadow-small{box-shadow:none}}@media (min-width: 48em){.duet-card.shadow-medium{box-shadow:none}}@media (min-width: 62em){.duet-card.shadow-large{box-shadow:none}}@media (min-width: 64.0625em){.duet-card.shadow-x-large{box-shadow:none}}@media (min-width: 76.25em){.duet-card.shadow-xx-large{box-shadow:none}}@media (min-width: 106.25em){.duet-card.shadow-xxx-large{box-shadow:none}}@media (min-width: 36em){.duet-card{padding:28px !important}}@media (min-width: 36em){.duet-card.xx-small{padding:12px !important}}@media (min-width: 36em){.duet-card.x-small{padding:20px !important}}@media (min-width: 36em){.duet-card.medium{padding:28px !important}}@media (min-width: 48em){.duet-card.medium{padding:36px !important}}@media (min-width: 36em){.duet-card.large{padding:36px !important}}@media (min-width: 48em){.duet-card.large{padding:48px !important}}@media (min-width: 36em){.duet-card.x-large{padding:48px !important}}@media (min-width: 48em){.duet-card.x-large{padding:72px !important}}.duet-card.duet-card-collapsed{padding-bottom:0 !important}@media (min-width: 36em){.duet-card.duet-card-collapsed{padding-bottom:0 !important}}.duet-card.info{background:rgba(4, 81, 128, 0.04) !important;box-shadow:none}.duet-card.plain{box-shadow:none}.duet-card.plain:not(.duet-card-has-bg){background:transparent !important}.duet-card-heading-grid{display:flex;flex-direction:row}.duet-card-icon{align-self:center}.duet-card-heading-text{flex:1;word-break:break-word}.duet-card-secondary-heading{font-size:1rem;font-weight:600;word-break:break-word}.duet-card-secondary-heading--inline{display:block;flex:1;align-self:flex-start;line-height:1.875;text-align:right}@media (max-width: 22.5em){.duet-card-secondary-heading--inline{display:none}}.duet-card-secondary-heading--new-line{display:none}@media (max-width: 22.5em){.duet-card-secondary-heading--new-line{display:block}}.duet-card-heading{position:relative;display:block;padding:16px 20px;margin:-20px -20px 20px;overflow:hidden;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:1.25rem;font-weight:800;color:rgb(8, 42, 77);border-bottom:1px solid rgb(212, 223, 229);border-radius:var(--duet-card-border-radius) var(--duet-card-border-radius) 0 0}@media (min-width: 36em){.duet-card-heading{padding:15px 28px 16px !important;margin:-28px -28px 20px}.none .duet-card-heading{padding:0 !important;margin:0}}.duet-card-collapsed .duet-card-heading{border-radius:var(--duet-card-border-radius)}.duet-card-image-mask+.duet-card-heading{border-radius:0}.duet-card-heading.duet-card-heading--collapsible{cursor:pointer}.duet-card-heading.duet-card-heading--collapsible button{width:100%;font-family:inherit;font-size:inherit;font-weight:inherit;color:inherit;text-align:left;cursor:pointer}.duet-card-heading.duet-card-heading--collapsible button:focus{outline:0}:host(.user-is-tabbing) .duet-card-heading.duet-card-heading--collapsible button:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva :host(.user-is-tabbing) .duet-card-heading.duet-card-heading--collapsible button:focus,:host(.user-is-tabbing) .duet-card-heading.duet-card-heading--collapsible button:focus.duet-theme-turva{outline-color:rgba(53, 79, 101, 0.8)}:host(.user-is-tabbing) .duet-card-heading.duet-card-heading--collapsible button:focus{border-radius:var(--duet-card-border-radius)}.duet-card-collapsed .duet-card-heading{margin-bottom:0 !important;border-bottom:0 !important}@media (min-width: 36em){.xx-small .duet-card-heading{padding:6px 12px 7px !important;margin:-12px -12px 12px}}@media (min-width: 48em){.xx-small .duet-card-heading{padding:6px 12px 7px !important;margin:-12px -12px 12px}}@media (min-width: 36em){.x-small .duet-card-heading{padding:10px 20px 11px !important;margin:-20px -20px 20px}}@media (min-width: 48em){.x-small .duet-card-heading{padding:10px 20px 11px !important;margin:-20px -20px 20px}}.medium .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.medium .duet-card-heading{padding:15px 28px 16px !important;margin:-28px -28px 20px}}@media (min-width: 48em){.medium .duet-card-heading{padding:19px 36px 20px !important;margin:-36px -36px 28px}}.large .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.large .duet-card-heading{padding:19px 36px 20px !important;margin:-36px -36px 28px}}@media (min-width: 48em){.large .duet-card-heading{padding:26px 48px 27px !important;margin:-48px -48px 36px}}.x-large .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.x-large .duet-card-heading{padding:26px 48px 27px !important;margin:-48px -48px 36px}}@media (min-width: 48em){.x-large .duet-card-heading{padding:39px 72px 40px !important;margin:-72px -72px 48px}}.none .duet-card-heading{padding:0;margin:0}.duet-card-footer{padding:20px;margin:20px -20px -20px;font-size:0.875rem;line-height:1.25;background:rgb(245, 248, 250);border-bottom-right-radius:4px;border-bottom-left-radius:4px}@media (min-width: 36em){.duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){.duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 36em){.xx-small .duet-card-footer{padding:10px 20px 11px !important;padding-left:12px !important;margin:12px -12px -12px}}@media (min-width: 36em){.x-small .duet-card-footer{padding:15px 28px 16px !important;padding-left:20px !important;margin:20px -20px -20px}}@media (min-width: 36em){.medium .duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){.medium .duet-card-footer{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 36em){.large .duet-card-footer{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 48em){.large .duet-card-footer{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 36em){.x-large .duet-card-footer{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 48em){.x-large .duet-card-footer{padding:39px 72px 40px !important;margin:48px -72px -72px}}.none .duet-card-footer{padding:0;margin:0}.duet-card-content{flex:1 1 auto;width:100%}.duet-card-collapsed .duet-card-content{display:none}.duet-card-caret{position:relative;top:6px;align-self:flex-start;transition:300ms ease}[aria-expanded=false] .duet-card-caret{transform:rotate(-180deg)}.duet-card-image-mask{position:relative;width:calc(100% + 40px);margin:-20px 0 20px -20px;overflow:hidden;border-top-left-radius:4px;border-top-right-radius:4px}@media (min-width: 36em){.small .duet-card-image-mask{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 36em){.medium .duet-card-image-mask{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 48em){.medium .duet-card-image-mask{width:calc(100% + 72px);margin:-36px 0 28px -36px}}@media (min-width: 36em){.large .duet-card-image-mask{width:calc(100% + 72px);margin:-36px 0 36px -36px}}@media (min-width: 48em){.large .duet-card-image-mask{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 36em){.x-large .duet-card-image-mask{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 48em){.x-large .duet-card-image-mask{width:calc(100% + 144px);margin:-72px 0 36px -72px}}.none .duet-card-image-mask{width:100%;padding:0;margin:0}.duet-card-image-mask picture{display:block}.duet-card-image{display:block;width:102%;min-width:1px;max-width:102%;height:auto;min-height:1px;margin-left:-1%;transform:scale(1.0001);transition:transform 300ms ease}a.duet-card{transition:box-shadow 300ms ease, background-position 300ms ease}a.duet-card:hover{box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(0, 41, 77, 0.1)}a.duet-card:hover .duet-card-image{transform:scale(1.024)}.duet-theme-turva a.duet-card:hover{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(117, 117, 117, 0.15)}a.duet-card:active{transform:translateY(1px);transition:none}.duet-card.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:rgb(23, 42, 59);box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}.duet-card.duet-theme-turva.info{background:rgb(253, 247, 242) !important}.duet-card.duet-theme-turva .duet-card-heading{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 42, 59);border-color:rgb(212, 221, 226)}.duet-card.duet-theme-turva .duet-card-footer{background:rgb(245, 246, 247)}";
6113
6146
 
6114
6147
  /**
6115
6148
  * @slot unnamed default slot - The component’s primary content. All child nodes that do not have a slot attribute defined are inserted into this primary slot.
@@ -6254,10 +6287,20 @@ class DuetCard {
6254
6287
  const styles = {
6255
6288
  backgroundColor: getColorByName(this.background),
6256
6289
  };
6257
- return (hAsync(Host, { key: '526da1b920f1be4a18d200ab81bc1951649cf3b2', class: {
6290
+ const pictureSource = {
6291
+ img: {
6292
+ src: this.image,
6293
+ alt: this.imageAlt || "",
6294
+ loading: "lazy",
6295
+ class: "duet-card-image",
6296
+ role: this.imageAlt ? undefined : "presentation",
6297
+ },
6298
+ sources: parsePossibleJSON(this.sources),
6299
+ };
6300
+ return (hAsync(Host, { key: 'd61c941d4cbcd29c34375c93cf2c414b553e6825', class: {
6258
6301
  "duet-m-0": this.margin === "none",
6259
6302
  "duet-card-info": this.variation === "info",
6260
- } }, hAsync(TagName, { key: '1cfae581c87423ea9d466fd39084b28505b01a77', href: this.url, style: styles, ref: card => (this.nativeCard = card), "aria-label": this.accessibleLabel, class: {
6303
+ } }, hAsync(TagName, { key: '3e8e63bc3077e7ee7008816f3f1c0928a9ac6cad', href: this.url, style: styles, ref: card => (this.nativeCard = card), "aria-label": this.accessibleLabel, class: {
6261
6304
  "duet-card": true,
6262
6305
  [this.padding]: true,
6263
6306
  [this.variation]: true,
@@ -6267,7 +6310,7 @@ class DuetCard {
6267
6310
  "duet-card-has-bg": this.background !== "gray-lightest",
6268
6311
  "duet-card-has-icon": !!this.icon,
6269
6312
  "duet-card-collapsed": this.collapsible && !this.open,
6270
- } }, this.image && (hAsync("div", { key: 'e310f18c792507a78333290fc56a3866efe302ca', class: "duet-card-image-mask" }, hAsync("img", { key: '84eaf59d2df2a9dd85cf0703b9b1641dff78c473', src: this.image, class: "duet-card-image", loading: "lazy", alt: this.imageAlt || "", role: this.imageAlt ? null : "presentation" }))), (this.heading || this.hasHeadingSlot) && this.renderHeading(), hAsync("div", { key: 'ef549d1a5f7efeb35a2fd0ca6ab2c22566955029', class: "duet-card-content", id: this.cardId }, hAsync("slot", { key: '746a25475887db3e0ba914e273eb32571accbb56' }), this.hasFooter && (hAsync("div", { key: 'd30c96b12ae73fc4bdfbfd22f25b862287b8fce5', class: "duet-card-footer" }, hAsync("slot", { key: '887615186784331005c099562f296bdd3d216c98', name: "footer" })))))));
6313
+ } }, this.image && (hAsync("div", { key: '430d6550590b6ba8ff0582c6bfe1de5556149597', class: "duet-card-image-mask" }, hAsync(DuetPicture, Object.assign({ key: 'b2c6457f6fad9275a9fdaff2b1a3a492dc08a1e1' }, pictureSource)))), (this.heading || this.hasHeadingSlot) && this.renderHeading(), hAsync("div", { key: '705605a43265107ea95fa7d9147cb7cbe82ad586', class: "duet-card-content", id: this.cardId }, hAsync("slot", { key: '2eeb551820975ccbcb3c72f4c2ae4f315848d024' }), this.hasFooter && (hAsync("div", { key: '4ef3a54510d5747516a767282d7392e81eb7ced2', class: "duet-card-footer" }, hAsync("slot", { key: 'f0f8e31a0beba199f3826ec58d277e848134ce38', name: "footer" })))))));
6271
6314
  }
6272
6315
  get element() { return getElement(this); }
6273
6316
  static get style() { return duetCardCss; }
@@ -6287,6 +6330,7 @@ class DuetCard {
6287
6330
  "iconColor": [513, "icon-color"],
6288
6331
  "image": [1],
6289
6332
  "imageAlt": [1, "image-alt"],
6333
+ "sources": [1],
6290
6334
  "background": [1],
6291
6335
  "padding": [1],
6292
6336
  "margin": [1],
@@ -6528,11 +6572,11 @@ class DuetCheckmark {
6528
6572
  inheritGlobalTheme(this);
6529
6573
  }
6530
6574
  render() {
6531
- return (hAsync(Host, { key: '9f320db3e8549d7d12de134f013789c1f412b947', class: { "duet-theme-turva": this.theme === "turva" } }, hAsync("div", { key: 'a8fe605a230fd34d9714bd5194c281b87394bd24', role: this.presentationOnly ? "presentation" : null, class: { checked: this.checked } }, hAsync("div", { key: '91fabdc145a023efc8317ef543296d4e5e2509d9', class: {
6575
+ return (hAsync(Host, { key: '588662850d35631ef6cb3c242d050f4049af0f59', class: { "duet-theme-turva": this.theme === "turva" } }, hAsync("div", { key: '301f41ca7f4d90729bffe6940380d56b4d226407', role: this.presentationOnly ? "presentation" : null, class: { checked: this.checked } }, hAsync("div", { key: 'b0c88fd8e22781c438ec744fc2b24b6263ecf272', class: {
6532
6576
  "duet-checkmark-container": true,
6533
6577
  center: this.center,
6534
6578
  "duet-checkmark-radio": this.type === "radio",
6535
- } }, this.checked && hAsync("div", { key: '9a418c3b3cd7c451f52003eb5efe16e90a4d5841', class: "duet-checkmark" })))));
6579
+ } }, this.checked && hAsync("div", { key: '389644f6a51bf281434c674aefc560e35dec4a6e', class: "duet-checkmark" })))));
6536
6580
  }
6537
6581
  static get style() { return duetCheckmarkCss; }
6538
6582
  static get cmpMeta() { return {
@@ -6580,9 +6624,11 @@ class DuetChip {
6580
6624
  /**
6581
6625
  * Variation of the chip.
6582
6626
  * Button should be used to present a list of actions or suggestions. It behaves like a button and must be used
6583
- * together with a click handler. Filter acts like a checkbox, it can be toggled on or off, and it should be
6584
- * used with a value. Input represents items input by the user, and the chip can be removed with a click.
6585
- * Radio behaves like a radio button, it can be toggled on or off, and it should be used with a value and name.
6627
+ * together with a click handler. Filter acts like a checkbox, it can be toggled on or off, and it should be used with
6628
+ * a value. Filter can also be used with a popup-menu - then the initial text describes the type of category of
6629
+ * filtering, and the selection from the popup-menu sets the filter value. Input represents items input by the user,
6630
+ * and the chip can be removed with a click. Radio behaves like a radio button, it can be toggled on or off in a group,
6631
+ * and it should be used with a value and name.
6586
6632
  */
6587
6633
  this.variation = "button";
6588
6634
  /**
@@ -6616,6 +6662,10 @@ class DuetChip {
6616
6662
  * Use this property to add an aria-haspopup attribute.
6617
6663
  */
6618
6664
  this.accessiblePopup = "false";
6665
+ /**
6666
+ * Indicates the id or a string of space seperated ids of a component(s) that describes the input.
6667
+ */
6668
+ this.accessibleDescribedBy = "";
6619
6669
  this.enforceNoDisabledSelected = () => {
6620
6670
  if (this.disabled && this.checked) {
6621
6671
  console.error("Duet error: pre-selected chip may not be disabled");
@@ -6647,6 +6697,9 @@ class DuetChip {
6647
6697
  radioInput.value = this.value;
6648
6698
  radioInput.checked = this.checked;
6649
6699
  radioInput.ariaLabel = this.element.textContent;
6700
+ if (!!this.accessibleDescribedBy) {
6701
+ radioInput.setAttribute("aria-describedby", this.accessibleDescribedBy);
6702
+ }
6650
6703
  if (slotInput) {
6651
6704
  this.radioInputListenersRemove(radioInput);
6652
6705
  }
@@ -6656,13 +6709,15 @@ class DuetChip {
6656
6709
  this.radioInputListenersAdd(radioInput);
6657
6710
  this.focusableElement = radioInput;
6658
6711
  };
6712
+ this.originalFilterChipText = "";
6713
+ this.originalFilterChipValue = "";
6659
6714
  this.popupSetUp = () => {
6660
6715
  const popup = document.querySelector(`duet-popup-menu#${this.popup}`);
6661
6716
  if (popup) {
6662
6717
  this.popupElement = popup;
6663
6718
  popup.controller = this.element;
6664
- const originalText = this.element.textContent;
6665
- const originalValue = this.value;
6719
+ this.originalFilterChipText = this.element.textContent;
6720
+ this.originalFilterChipValue = this.value;
6666
6721
  if (!popup.id) {
6667
6722
  popup.id = "popup-menu";
6668
6723
  }
@@ -6687,8 +6742,8 @@ class DuetChip {
6687
6742
  }
6688
6743
  else {
6689
6744
  clearActive();
6690
- this.element.textContent = originalText;
6691
- this.value = originalValue;
6745
+ this.element.textContent = this.originalFilterChipText;
6746
+ this.value = this.originalFilterChipValue;
6692
6747
  this.checked = false;
6693
6748
  }
6694
6749
  this.emitChange(evt);
@@ -6755,16 +6810,14 @@ class DuetChip {
6755
6810
  }
6756
6811
  };
6757
6812
  /**
6758
- * Stop propagation and prevent default if popup is present, as the popup controls value and checked state.
6813
+ * Stop prevent default if popup is present, as the popup controls value and checked state.
6759
6814
  */
6760
6815
  this.onFilterClick = (evt) => {
6761
6816
  if (this.disabled) {
6762
- evt.stopPropagation();
6763
6817
  evt.preventDefault();
6764
6818
  return;
6765
6819
  }
6766
6820
  if (this.popupElement) {
6767
- evt.stopPropagation();
6768
6821
  evt.preventDefault();
6769
6822
  this.popupElement.toggle();
6770
6823
  }
@@ -6773,7 +6826,6 @@ class DuetChip {
6773
6826
  * Remove input chip
6774
6827
  */
6775
6828
  this.onRemoveClick = (evt) => {
6776
- evt === null || evt === void 0 ? void 0 : evt.stopPropagation();
6777
6829
  evt === null || evt === void 0 ? void 0 : evt.preventDefault();
6778
6830
  this.duetRemove.emit({
6779
6831
  originalEvent: evt,
@@ -6842,6 +6894,11 @@ class DuetChip {
6842
6894
  getAccessibleInputChipLabel() {
6843
6895
  return `${this.element.textContent}${this.selected ? ` (${getLocaleString(this.selectedForDeletionLabels)}) ` : ""},`;
6844
6896
  }
6897
+ getAccessibleFilterLabel() {
6898
+ return this.value !== this.originalFilterChipValue
6899
+ ? `${this.originalFilterChipText}: ${this.element.textContent}`
6900
+ : undefined;
6901
+ }
6845
6902
  /**
6846
6903
  * Sets focus. Use this method instead of the global focus().
6847
6904
  */
@@ -6886,7 +6943,7 @@ class DuetChip {
6886
6943
  onBlur: this.onBlur,
6887
6944
  ref: el => (this.focusableElement = el),
6888
6945
  };
6889
- return (hAsync(Host, { key: 'a02dfd14dbc6adb2b4603f1032071f973ed2ccde', class: { [this.variation]: true } }, this.variation === "button" && (hAsync("span", { key: 'f6f837561846f06857082a732a01dc00be276bab', class: classes }, hAsync("button", Object.assign({ key: '614901de9dce1a3613e710f2144dd9cd8f3e635a', id: identifier, "aria-label": this.accessibleLabel, "aria-haspopup": this.getAccessiblePopup(), "aria-expanded": this.getAccessibleExpanded(), "aria-disabled": this.disabled ? "true" : undefined, name: this.name, value: this.value, onClick: this.disabled ? evt => evt.stopPropagation() : undefined }, focusHandlers), hAsync("span", { key: 'f0bbf7f4631fb86dc23a381c25c03cabe947cc3e', class: "duet-chip-icon-container" }, this.icon && (hAsync("duet-icon", { key: '6a7c79b76c0fd5d06b4b4d3f6640459cd6d6298d', name: this.icon, size: "x-small", margin: "none", color: "currentColor" }))), hAsync("slot", { key: '397dbf6b64587f75b1fc3f3d3f0bf12a0e4df881' })))), this.variation === "input" && (hAsync("span", { key: '5ee6a9d0856e2879420676696e360c78205041cc', class: classes, "aria-label": this.getAccessibleInputChipLabel() }, hAsync("button", Object.assign({ key: '4bbbbdece24e710ce9933ff9f91a9c800b3e58fe', id: identifier, class: "duet-chip-input-button", value: this.value, "aria-label": this.accessibleLabel, onMouseOver: () => (this.inputChipHover = true), onMouseOut: () => (this.inputChipHover = false), onClick: () => (this.selected = !this.selected) }, focusHandlers), hAsync("span", { key: 'd1aef801dcf90532b29fc97c01b7456d8487f44a', class: "duet-chip-icon-container" }, this.icon && (hAsync("duet-icon", { key: 'a63f98e142a1a3b23fc95d5fc1da841d377e10ce', name: this.icon, size: "x-small", margin: "none", color: "currentColor" }))), hAsync("slot", { key: '11f084e182d0c9d6aa3662bcce61235e8ec76fcf' })), hAsync("button", { key: '777701d86d7a3c4dc31e94d11e3e127ed7d2e1fd', class: "duet-chip-remove-button", "aria-label": this.getAccessibleDeleteLabel(), onClick: this.onRemoveClick, onFocus: () => (this.inputChipDeleteFocus = true), onBlur: () => (this.inputChipDeleteFocus = false), ref: el => (this.deleteButtonElement = el) }, hAsync("duet-icon", { key: '856fed5273e55797d4824c153cf2cb3278e9a2b4', name: "activity-close", size: "xx-small", margin: "none", color: "currentColor" })))), this.variation === "filter" && (hAsync("span", { key: '679cda39bb299541877fe34081bc414119d49455', class: classes }, hAsync("input", Object.assign({ key: '7ccb0cad55edef64e3d261416384871b5474908e', "aria-haspopup": this.getAccessiblePopup(), "aria-controls": (_a = this.popupElement) === null || _a === void 0 ? void 0 : _a.id, "aria-expanded": this.getAccessibleExpanded(), "aria-disabled": this.disabled ? "true" : undefined, id: identifier, type: "checkbox", name: this.name, value: this.value, checked: this.checked, onClick: this.onFilterClick, onChange: this.onFilterChange }, focusHandlers)), hAsync("label", { key: 'c0bc9afaac898ec41d39ae2fd4908389b3ac065a', htmlFor: identifier }, this.icon && (hAsync("span", { key: '15038fc3a98b2486a950d1b64d2b54ee6e479393', class: "duet-chip-icon-container" }, hAsync("duet-icon", { key: '592062e0add70bea207fef298935a3c2d0a6fdb4', name: this.icon, size: this.size === "large" ? "small" : "x-small", margin: "none", color: "currentColor" }), hAsync("duet-icon", { key: 'e55ffd29e3d14b71be6c15f59bc36395d5868269', name: "messaging-checked-small", size: this.size === "large" ? "x-small" : "xx-small", margin: "none", color: "currentColor", class: "check-mark" }))), hAsync("slot", { key: '5aab1d1c1dfae62c0801d8b726cd78ce24fb8c2d' }), this.popupElement && (hAsync("span", { key: '8ce9e5d7685346af76deb8d9561e149033b723c5', class: "duet-chip-popup-disclosure" }, hAsync("duet-icon", { key: 'a6a23f49aa4b6a182edd3b135b695a42089b8c5a', name: "action-arrow-down-small", size: this.size === "large" ? "xx-small" : "xxx-small", margin: "none", color: "currentColor" })))))), this.variation === "radio" && (hAsync("span", { key: '6d61938382d8ff58e4a817cce31928d191cf5abb', class: classes }, hAsync("slot", { key: '72b0c769e2bee8de5fc6f834232aae55555e7835', name: "input" }), hAsync("label", { key: '3ad924385c4d43e905cc42efaa016fd90e3854b5', htmlFor: identifier }, this.icon && (hAsync("span", { key: 'e5d698e18b0bf9e37db7b13fc4a96124736be144', class: "duet-chip-icon-container" }, hAsync("duet-icon", { key: '3101dbabb443a5b23cc7c94ad5bbdb0fbbcc930b', name: this.icon, size: this.size === "large" ? "small" : "x-small", margin: "none", color: "currentColor" }), hAsync("duet-icon", { key: '0084200969cb3a17c048869ba10fdefd28dbc7ed', name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor", class: "check-mark" }))), hAsync("slot", { key: 'e43b1bdf08e27bf2dcc164a45bf088451b742e88' }))))));
6946
+ return (hAsync(Host, { key: '84203a4f6d7de284823eb560bfb95b2aec1ac5e4', class: { [this.variation]: true } }, this.variation === "button" && (hAsync("span", { key: '3c735a109cf161c40ff2eb4cdd3ab6ae9ccd07f1', class: classes }, hAsync("button", Object.assign({ key: 'd91978a69db645b988514f9fe147ff6a0e618f06', id: identifier, "aria-label": this.accessibleLabel, "aria-describedby": this.accessibleDescribedBy || undefined, "aria-haspopup": this.getAccessiblePopup(), "aria-expanded": this.getAccessibleExpanded(), "aria-disabled": this.disabled ? "true" : undefined, name: this.name, value: this.value, onClick: this.disabled ? evt => evt.stopPropagation() : undefined }, focusHandlers), hAsync("span", { key: '00a9bfa1e9b1654a6b1bdbd47298f54ccdc445f5', class: "duet-chip-icon-container" }, this.icon && (hAsync("duet-icon", { key: '2f8756f5ffb41e04e5842dab15f1b908086c753d', name: this.icon, size: "x-small", margin: "none", color: "currentColor" }))), hAsync("slot", { key: '2e791bd8bab1495608208ad696fe9150ddc28e34' })))), this.variation === "input" && (hAsync("span", { key: 'd6a9ece4abe8ebac562a31e3970255bbe4f8eadd', class: classes }, hAsync("button", Object.assign({ key: 'dbb7a3ee7849bb53b58bae7dcb6373ec685de638', id: identifier, class: "duet-chip-input-button", value: this.value, "aria-label": this.getAccessibleInputChipLabel(), "aria-describedby": this.accessibleDescribedBy, onMouseOver: () => (this.inputChipHover = true), onMouseOut: () => (this.inputChipHover = false), onClick: () => (this.selected = !this.selected) }, focusHandlers), hAsync("span", { key: '1e0b295b70924c7bbaf945ba1af950f63668c5a8', class: "duet-chip-icon-container" }, this.icon && (hAsync("duet-icon", { key: '1d5ec89006c85f4b8a630215a19055d863c67416', name: this.icon, size: "x-small", margin: "none", color: "currentColor" }))), hAsync("slot", { key: '5f52df5a6d4d675f24a6bd927593e336612997f5' })), hAsync("button", { key: 'f056e733dcc146eed6228a060736690a33c40311', class: "duet-chip-remove-button", "aria-label": this.getAccessibleDeleteLabel(), onClick: this.onRemoveClick, onFocus: () => (this.inputChipDeleteFocus = true), onBlur: () => (this.inputChipDeleteFocus = false), ref: el => (this.deleteButtonElement = el) }, hAsync("duet-icon", { key: '6f052eca141e3eea229954f7034c479d14c38d6f', name: "activity-close", size: "xx-small", margin: "none", color: "currentColor" })))), this.variation === "filter" && (hAsync("span", { key: 'b573900d3ad93f1e8f49bb1f27e7d1d5e87f1ad3', class: classes }, hAsync("input", Object.assign({ key: 'd558bee064252fff70ef6db2b7292d8e5019bd78', "aria-haspopup": this.getAccessiblePopup(), "aria-controls": (_a = this.popupElement) === null || _a === void 0 ? void 0 : _a.id, "aria-expanded": this.getAccessibleExpanded(), "aria-disabled": this.disabled ? "true" : undefined, "aria-label": this.getAccessibleFilterLabel(), "aria-describedby": this.accessibleDescribedBy || undefined, id: identifier, type: "checkbox", name: this.name, value: this.value, checked: this.checked, onClick: this.onFilterClick, onChange: this.onFilterChange }, focusHandlers)), hAsync("label", { key: '7f88107a9734bd1142d00dc26ce1ceed694b0904', htmlFor: identifier }, this.icon && (hAsync("span", { key: '35559b51d65f9d609edebe6d641c11f936b43bd2', class: "duet-chip-icon-container" }, hAsync("duet-icon", { key: 'a1a51b616e4fb7c9d949bfca74a6cb1a7fa549a5', name: this.icon, size: this.size === "large" ? "small" : "x-small", margin: "none", color: "currentColor" }), hAsync("duet-icon", { key: '320133b510ed5702a9fd1a30f01deb9b266531f8', name: "messaging-checked-small", size: this.size === "large" ? "x-small" : "xx-small", margin: "none", color: "currentColor", class: "check-mark" }))), hAsync("slot", { key: 'b1133a5c686b6c8fc8a6f7d16281b25a584f8943' }), this.popupElement && (hAsync("span", { key: 'd6d6785289ba11bfcb83877c45f85e9ad9f43683', class: "duet-chip-popup-disclosure" }, hAsync("duet-icon", { key: '3c930adbf23abfeee3d2c5fcbbb151878a4b9a39', name: "action-arrow-down-small", size: this.size === "large" ? "xx-small" : "xxx-small", margin: "none", color: "currentColor" })))))), this.variation === "radio" && (hAsync("span", { key: 'aa5035fea2416069bc01fe07a28b3da134fdd886', class: classes }, hAsync("slot", { key: 'f861682874396c57779c427fb4f89556884f9434', name: "input" }), hAsync("label", { key: '80a7465dae485bf1cdcbee5b10210dc158c6425b', htmlFor: identifier }, this.icon && (hAsync("span", { key: 'dc5ffe43af42a08253de88bdc17a16022cd3a40d', class: "duet-chip-icon-container" }, hAsync("duet-icon", { key: 'c0b3326871d1f440b1196fdef2d6a6961b8b883f', name: this.icon, size: this.size === "large" ? "small" : "x-small", margin: "none", color: "currentColor" }), hAsync("duet-icon", { key: 'f6d6f16565393969a6945d11f00736726e95aef1', name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor", class: "check-mark" }))), hAsync("slot", { key: '8ba0c81daff6bc6f966afd5f75582a89f932e8b1' }))))));
6890
6947
  }
6891
6948
  get element() { return getElement(this); }
6892
6949
  static get watchers() { return {
@@ -6912,6 +6969,7 @@ class DuetChip {
6912
6969
  "disabled": [4],
6913
6970
  "accessibleExpanded": [1540, "accessible-expanded"],
6914
6971
  "accessiblePopup": [1537, "accessible-popup"],
6972
+ "accessibleDescribedBy": [1, "accessible-described-by"],
6915
6973
  "focus": [32],
6916
6974
  "popupElement": [32],
6917
6975
  "popupOpen": [32],
@@ -7161,13 +7219,13 @@ class DuetChoice {
7161
7219
  * Local methods
7162
7220
  */
7163
7221
  this.toggleChecked = ev => {
7222
+ // As label click by default toggles the input, but we handle
7223
+ // toggling here, prevent default.
7164
7224
  ev.preventDefault();
7165
- ev.stopPropagation();
7166
7225
  if (this.getDisabled()) {
7167
7226
  return;
7168
7227
  }
7169
- // if it's a radio button, and it's already checked
7170
- // we shouldn't fire an event, so exit early
7228
+ // For a checked radio button do not toggle checkedness nor emit event.
7171
7229
  if (this.type === "radio" && this.checked) {
7172
7230
  return;
7173
7231
  }
@@ -7322,7 +7380,7 @@ class DuetChoice {
7322
7380
  * Always the last one in the class.
7323
7381
  */
7324
7382
  render() {
7325
- return (hAsync(Host, { key: 'c4b3a5c501d38245acc5af3e2b9f544bd0bf7072', class: {
7383
+ return (hAsync(Host, { key: '161ca837a384fd96fde8171eb0ee9a922f348740', class: {
7326
7384
  horizontal: this.groupDirection === "horizontal" && !this.groupResponsive,
7327
7385
  [`horizontal-responsive-${this.groupResponsive}`]: this.groupDirection === "horizontal" && !!this.groupResponsive,
7328
7386
  "vertical-stretch": this.groupDirection === "horizontal",
@@ -7331,10 +7389,10 @@ class DuetChoice {
7331
7389
  "duet-theme-turva": this.theme === "turva",
7332
7390
  "no-hover": this.isHovering,
7333
7391
  disabled: this.getDisabled(),
7334
- } }, hAsync("div", { key: '795598769dac455ce019fafc78a0da012fab367e', class: {
7392
+ } }, hAsync("div", { key: '9b1f7f73d1e644294e06780f748a5b5c86f3c419', class: {
7335
7393
  "duet-choice-card-flextainer": true,
7336
7394
  "duet-theme-turva": this.theme === "turva",
7337
- } }, hAsync("div", { key: '7c2d292a71e2c29410fe1b25b23f21d2331a2441', class: {
7395
+ } }, hAsync("div", { key: '5bd120316eff11e496393cc3d41401c7523d1fdc', class: {
7338
7396
  "duet-choice-card": true,
7339
7397
  "has-icon": !!this.icon,
7340
7398
  "has-info": this.hasInfo,
@@ -7343,16 +7401,16 @@ class DuetChoice {
7343
7401
  collapsible: this.collapsible,
7344
7402
  "collapsible-force-expanded": this.collapsibleForceExpanded,
7345
7403
  "duet-p-0": this.padding === "none",
7346
- } }, hAsync("slot", { key: '7c8737f5f56691e6d91b1ef6aa88d4d429a91853', name: "choiceinput" }), hAsync("label", { key: '956d1a8a3e617e20822cb45e16510552377c689a', class: {
7404
+ } }, hAsync("slot", { key: '25b753b3d13766c86e7c03e48ecde9ee345151c9', name: "choiceinput" }), hAsync("label", { key: 'd113e5e6012cd5606552b6964c0f792b992483af', class: {
7347
7405
  "duet-choice-label": true,
7348
7406
  "has-before-text": this.hasBeforeText,
7349
7407
  checked: this.checked,
7350
7408
  focus: this.focus,
7351
7409
  disabled: this.getDisabled(),
7352
- }, onClick: this.onClick }, this.hasBeforeText && hAsync("slot", { key: '8e06e00faf592c2217bcdf4125de0a3fbe688226', name: "before-text" }), this.icon && (hAsync("div", { key: 'a03eb510213a5dacea0ea1a8fba5c59e3f7b5adf', class: "duet-choice-card-icon" }, hAsync("duet-icon", { key: '6f1da454489ebc91e044c73bcaa72e4dc0cbc434', margin: "none", size: "small", name: this.icon, color: "currentColor" }))), hAsync("div", { key: '7ae5d20c3621b1ea86a08e01752a1501f4c6141f', class: "duet-choice-card-text" }, hAsync("div", { key: '48924d49aa8990d06b898d5e859d3259340424f3' }, this.hasLabel ? hAsync("slot", { name: "label" }) : this.label), this.caption && (hAsync("div", { key: '159e947250b2e752ede4b9e1cc239a17beb56e4a' }, hAsync("duet-spacer", { key: '841d4ceb579eafb87c381f78c4a62d6943480702', size: "xx-small" }), hAsync("duet-caption", { key: 'da80efff2d5db1ac58bcba1074d2acd8ebe49fc4', margin: "none", selected: this.checked }, this.caption))), this.hasAdditional && (hAsync("div", { key: '990e772b8ed9d22a20f5a6718d5884d49135b6b1' }, hAsync("duet-spacer", { key: '691495c8aeb63a55951a36c28f15bcb049c9d36e', size: "xx-small" }), hAsync("slot", { key: 'ba5ca5f8c750aa685ae9560f482401e315e1700b', name: "additional" })))), hAsync("div", { key: 'a5a27faf19b806f0cbe5d78c751acbc05cd70a4e' }, hAsync("div", { key: '5191f1bc54972485f2850139cf7dedb0c66e0f69', class: { "duet-checkmark-container": true, "duet-checkmark-radio": this.type === "radio" } }, this.checked && hAsync("div", { key: 'abe835c0eb8f2917a1e1e87b883d9a43c8883ae6', class: "duet-checkmark" }))))), this.hasInfo && !this.collapsible && (hAsync("button", { key: '232418bd6f978e77039ebea2bdea0388efeae571', ref: button => (this.infoButtonEl = button), id: this.infoButtonId, class: {
7410
+ }, onClick: this.onClick }, this.hasBeforeText && hAsync("slot", { key: '1ab6a902a2a1e6ea5ab7e075a2318482cf0a1f75', name: "before-text" }), this.icon && (hAsync("div", { key: '524b6f9260ab2e3bab12f933ad14e744b1401a12', class: "duet-choice-card-icon" }, hAsync("duet-icon", { key: 'b969cf6e06ffaf643aa701c37d4541e36f4e16a8', margin: "none", size: "small", name: this.icon, color: "currentColor" }))), hAsync("div", { key: '9cc50495673c27a7c6a5f3bdb14c609e6a4601f8', class: "duet-choice-card-text" }, hAsync("div", { key: 'c87f5c7fbfcb824cd962b47f5b245b0d113cb04b' }, this.hasLabel ? hAsync("slot", { name: "label" }) : this.label), this.caption && (hAsync("div", { key: '8b325a22769d880383b1b3b24e531306b83bc082' }, hAsync("duet-spacer", { key: '7d0b9e0b85d3ed5d5da0bcad6991d17ceb385587', size: "xx-small" }), hAsync("duet-caption", { key: '3a3a799147caa313ca58a101dc47e5149c0c214f', margin: "none", selected: this.checked }, this.caption))), this.hasAdditional && (hAsync("div", { key: 'ebea33b278a48a2d1277df23682aff24ffca5f93' }, hAsync("duet-spacer", { key: 'c06cf1daace2056cfc11c90e2fdbe2e3d5a02281', size: "xx-small" }), hAsync("slot", { key: '952ec73f80beb3dc70550cc7f294f3cc19466109', name: "additional" })))), hAsync("div", { key: 'c011bec512f287c09ac07c7eb27351bdf035d95f' }, hAsync("div", { key: 'df64779e16fd3eb7a476794b11516433f7d9cdce', class: { "duet-checkmark-container": true, "duet-checkmark-radio": this.type === "radio" } }, this.checked && hAsync("div", { key: '94314b297dc613c45adaa647eeec06f93b01e325', class: "duet-checkmark" }))))), this.hasInfo && !this.collapsible && (hAsync("button", { key: 'dd3fc995ac9ac436708557efc5319b7c081d76e8', ref: button => (this.infoButtonEl = button), id: this.infoButtonId, class: {
7353
7411
  "duet-choice-info-toggle": true,
7354
7412
  "duet-theme-turva": this.theme === "turva",
7355
- }, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave, onClick: this.toggleInfo, disabled: this.getDisabled(), "aria-expanded": this.isInfoOpen ? "true" : "false", "aria-label": `${this.infoLabel} ${this.label}`, "aria-controls": this.expandId, tabindex: this.type === "radio" && !this.checked ? "-1" : "0", type: "button", onKeyUp: e => this.handleEscape(e) }, hAsync("div", { key: 'cd5726ddd6b87acb1c4a8b0661906c4555c8371a', class: "duet-choice-info-icon" }, hAsync("duet-icon", { key: 'd2d3d9bc3e7862c2f01ba3b2ad27dd7662c0a8a4', icon: infoIcon.svg, margin: "none", size: "small", color: "currentColor" }))))), this.collapsible && (hAsync("span", { key: 'eab4a0209ba1f4fe2bb7a4be8971f843a67b77e6', id: `${this.choiceId}-collapsible-notification`, hidden: true }, this.collapsibleNotification)), this.collapsible || this.hasInfo ? (hAsync("div", { class: this.getClassNames(), id: this.expandId }, hAsync("span", { class: {
7413
+ }, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave, onClick: this.toggleInfo, disabled: this.getDisabled(), "aria-expanded": this.isInfoOpen ? "true" : "false", "aria-label": `${this.infoLabel} ${this.label}`, "aria-controls": this.expandId, tabindex: this.type === "radio" && !this.checked ? "-1" : "0", type: "button", onKeyUp: e => this.handleEscape(e) }, hAsync("div", { key: 'a78097639b91f3c310e490e8cfc23040a7dfcb48', class: "duet-choice-info-icon" }, hAsync("duet-icon", { key: 'a4a43850eb0cbbb171ff87b7834e135247d5f4c8', icon: infoIcon.svg, margin: "none", size: "small", color: "currentColor" }))))), this.collapsible && (hAsync("span", { key: 'd081dffa05b32cd86475b5dcaed06d8d12af4b85', id: `${this.choiceId}-collapsible-notification`, hidden: true }, this.collapsibleNotification)), this.collapsible || this.hasInfo ? (hAsync("div", { class: this.getClassNames(), id: this.expandId }, hAsync("span", { class: {
7356
7414
  "duet-choice-section-visible": this.collapsible ? this.getExpanded() : this.isInfoOpen,
7357
7415
  "duet-choice-section-hidden": this.collapsible ? !this.getExpanded() : !this.isInfoOpen,
7358
7416
  } }, hAsync("span", { id: this.headerId }, hAsync("slot", { name: "header" })), this.hasInfo ? (hAsync("span", { ref: span => (this.infoContainer = span), tabindex: "-1", class: "duet-choice-info-container", onKeyUp: e => this.handleEscape(e) }, hAsync("span", null, hAsync("slot", { name: "info" })), hAsync("slot", null))) : (hAsync("span", { id: `${this.choiceId}-collapsible-content` }, hAsync("slot", null)))))) : null));
@@ -7481,7 +7539,7 @@ class DuetChoiceGroup {
7481
7539
  if (mutationList.some(r => {
7482
7540
  var _a;
7483
7541
  return ((_a = r.removedNodes) === null || _a === void 0 ? void 0 : _a.length) > 0 &&
7484
- Array.from(r.removedNodes.values()).some(n => n.nodeName.toLowerCase() === "duet-choice");
7542
+ Array.from(r.removedNodes.values()).some(n => n.nodeName.toLowerCase() === "duet-choice" && this.choices.has(n));
7485
7543
  })) {
7486
7544
  this.updateChoices();
7487
7545
  }
@@ -7543,13 +7601,11 @@ class DuetChoiceGroup {
7543
7601
  async updateChoices() {
7544
7602
  var _a;
7545
7603
  const value = (_a = this.value) !== null && _a !== void 0 ? _a : this.initialValue;
7604
+ const allChoices = Array.from(this.element.querySelectorAll("duet-choice"));
7605
+ const ownChoices = allChoices.filter(choice => !allChoices.includes(choice.parentElement.closest("duet-choice")));
7546
7606
  let hasChecked = false;
7547
7607
  this.choices.clear();
7548
- this.element.querySelectorAll("duet-choice").forEach((choice) => {
7549
- if (choice.closest("duet-choice-group") === this.element) {
7550
- this.choices.add(choice);
7551
- }
7552
- });
7608
+ ownChoices.forEach(choice => this.choices.add(choice));
7553
7609
  // Walk the DOM in reverse order, since the last selected one wins
7554
7610
  for (const choice of Array.from(this.choices)) {
7555
7611
  choice.name = this.name;
@@ -7581,14 +7637,14 @@ class DuetChoiceGroup {
7581
7637
  * Always the last one in the class.
7582
7638
  */
7583
7639
  render() {
7584
- return (hAsync(Host, { key: '39267534dcf19f7f942ef44d869d302552ad8463', onDuetChange: this.onSelect, onDuetChoiceReady: this.onChoiceReady, class: {
7640
+ return (hAsync(Host, { key: '0d7434c28155b9472c8819d53c34843052a58d0d', onDuetChange: this.onSelect, onDuetChoiceReady: this.onChoiceReady, class: {
7585
7641
  horizontal: this.direction === "horizontal",
7586
7642
  "duet-choice-group-breakpoint-x-small": this.responsive && this.breakpoint === "x-small",
7587
7643
  "duet-choice-group-breakpoint-small": this.responsive && this.breakpoint === "small",
7588
7644
  "duet-choice-group-breakpoint-medium": this.responsive && this.breakpoint === "medium",
7589
7645
  "duet-choice-group-breakpoint-large": this.responsive && this.breakpoint === "large",
7590
7646
  "duet-choice-group-breakpoint-x-large": this.responsive && this.breakpoint === "x-large",
7591
- } }, hAsync("duet-fieldset", { key: '1e292babf2206d42d58c46f88bed02959e595dc1', label: this.label, labelHidden: this.labelHidden, compactLabel: true, caption: this.caption, error: this.error, margin: this.margin, theme: this.theme, "accessible-live-error": this.accessibleLiveError }, this.tooltip && (hAsync("duet-tooltip", { key: '435735b34c7f437aba23bda2eebd7fa78aa30f3d', slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), hAsync("slot", { key: '390312b35af123116ec5919b31f61d9499559813', name: "tooltip", slot: "tooltip" }), hAsync("div", { key: 'fb68426f6c7feac6c767511bcaccfb6585515e3e', class: { [this.choiceGroupName]: true, "duet-no-stacking": !this.responsive } }, hAsync("slot", { key: '5b26fd1d7d1239fdcdcb6d736445a6366995c3bc' })))));
7647
+ } }, hAsync("duet-fieldset", { key: 'd0abc308f9f4e0b001efb4923b0e5203ae1d00a6', label: this.label, labelHidden: this.labelHidden, compactLabel: true, caption: this.caption, error: this.error, margin: this.margin, theme: this.theme, "accessible-live-error": this.accessibleLiveError }, this.tooltip && (hAsync("duet-tooltip", { key: 'f8e3bbac49fdb91180c3caa1b32e7d6eb1305086', slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), hAsync("slot", { key: '9ebac012a0024a84eaa3b320a9d1aca91bb48480', name: "tooltip", slot: "tooltip" }), hAsync("div", { key: '9b811428dda8073221eedb0b5a64ddff1662828d', class: { [this.choiceGroupName]: true, "duet-no-stacking": !this.responsive } }, hAsync("slot", { key: '22ab1bec355e45e4bd35c68e2d9c86815b99852f' })))));
7592
7648
  }
7593
7649
  get element() { return getElement(this); }
7594
7650
  static get watchers() { return {
@@ -9502,7 +9558,6 @@ class DuetCombobox {
9502
9558
  // Event handlers
9503
9559
  onListClick(e, item) {
9504
9560
  e.preventDefault();
9505
- e.stopPropagation();
9506
9561
  // update selected item with id
9507
9562
  if (this.multiple) {
9508
9563
  this.addSelectedItem(item.id, true);
@@ -9641,7 +9696,7 @@ class DuetCombobox {
9641
9696
  }; }
9642
9697
  }
9643
9698
 
9644
- const duetContactCardCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-bottom:12px !important;display:block}:host(.duet-m-0){margin:0 !important}::slotted(*){padding-top:1.5rem}@media (min-width: 48em){::slotted(*){grid-column:2/span 2;padding-top:0}}.duet-contact-card{display:grid;grid-template-columns: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:1rem;font-weight:600;line-height:1.5;color:rgb(8, 42, 77)}@media (min-width: 48em){.duet-contact-card{grid-template-columns:min-content minmax(0, 1fr) auto;gap:20px}}.duet-contact-card .image{width:4rem;height:4rem;margin-bottom:8px;border-radius:4px}@media (min-width: 48em){.duet-contact-card .image{width:6rem;height:6rem;padding-bottom:0}}.duet-contact-card .description{padding-bottom:8px}.duet-contact-card .email,.duet-contact-card .phone{display:grid;grid-template-columns:min-content auto;gap:8px;align-items:center;justify-content:flex-start;padding-bottom:8px;overflow-wrap:break-word}.duet-contact-card.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:rgb(23, 42, 59)}";
9699
+ const duetContactCardCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-bottom:12px !important;display:block}:host(.duet-m-0){margin:0 !important}::slotted(*){padding-top:1.5rem}@media (min-width: 48em){::slotted(*){grid-column:2/span 2;padding-top:0}}.duet-contact-card{display:grid;grid-template-columns: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:1rem;font-weight:600;line-height:1.5;color:rgb(8, 42, 77)}@media (min-width: 48em){.duet-contact-card{grid-template-columns:min-content minmax(0, 1fr) auto;gap:20px}}.duet-contact-card picture{display:block}.duet-contact-card .image{width:4rem;height:4rem;margin-bottom:8px;border-radius:4px}@media (min-width: 48em){.duet-contact-card .image{width:6rem;height:6rem;padding-bottom:0}}.duet-contact-card .description{padding-bottom:8px}.duet-contact-card .email,.duet-contact-card .phone{display:grid;grid-template-columns:min-content auto;gap:8px;align-items:center;justify-content:flex-start;padding-bottom:8px;overflow-wrap:break-word}.duet-contact-card.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:rgb(23, 42, 59)}";
9645
9700
 
9646
9701
  class DuetContactCard {
9647
9702
  constructor(hostRef) {
@@ -9687,10 +9742,19 @@ class DuetContactCard {
9687
9742
  render() {
9688
9743
  const isTurva = this.theme === "turva";
9689
9744
  const theme = isTurva ? "turva" : "default";
9690
- return (hAsync(Host, { key: 'a29a3dab2ac7fb3079f2c1a159af7f4e7b5c226b', class: { "duet-m-0": this.margin === "none" } }, hAsync("div", { key: '14753b1f4fc3901aa2285d438c612e66619fabb5', class: {
9745
+ const pictureSource = {
9746
+ img: {
9747
+ src: this.image,
9748
+ alt: this.name || "",
9749
+ loading: "lazy",
9750
+ class: "image",
9751
+ },
9752
+ sources: parsePossibleJSON(this.sources),
9753
+ };
9754
+ return (hAsync(Host, { key: 'f64dabbe00a4d4f03132a6adc7bc3b95bdd6042a', class: { "duet-m-0": this.margin === "none" } }, hAsync("div", { key: '0f5bf8d1828462b3f5e6aa9f5d7e11b338a2b61c', class: {
9691
9755
  "duet-contact-card": true,
9692
9756
  "duet-theme-turva": this.theme === "turva",
9693
- }, role: "group", "aria-label": this.name }, this.image ? hAsync("img", { class: "image", src: this.image, alt: this.name }) : hAsync("div", null), hAsync("div", { key: 'dc77c6904966d2b6438391dd2c827832ffe86325' }, this.name && (hAsync("duet-heading", { key: 'a10e331782d05726446653615ba8effbb1de3257', class: "name", level: "h3", margin: "none", theme: theme }, this.name)), this.description && (hAsync("duet-paragraph", { key: '3f49dc9a8933eb5551f259e2dcca7f434f8e5082', class: "description", margin: "none", theme: theme }, this.description)), this.email && (hAsync("div", { key: '99ad9df72533f48e298153aeadf18cb50e37d1e9', class: "email" }, hAsync("duet-icon", { key: 'cbe804f4877e52df6f678ace315efe098b3ef914', name: "navigation-message", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), hAsync("duet-link", { key: 'e909d9bc1096700ef5fb6d7a1e87c499d585d4dd', url: `mailto:${this.email}`, accessibleLabel: `Email: ${this.email}`, theme: theme }, this.email))), this.phone && (hAsync("div", { key: 'fe217c26608f2f461999844a3a00fe335c1e4509', class: "phone" }, hAsync("duet-icon", { key: '1194445745ecb176f6fcc39a18c3e233921524d9', name: "form-tel", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), hAsync("duet-link", { key: 'b83e145b7909c3ef697932ff1cf95d223d4a4b14', url: `tel:${this.phone}`, accessibleLabel: `${this.phoneLabel[this.language]}: ${this.phone}`, theme: theme }, this.phone)))), this.buttonUrl && this.buttonText && (hAsync("div", { key: 'fdb27957cd0b60be23e8b4df7f062da5cc3eafc1', class: "call-to-action" }, hAsync("duet-button", { key: 'f7cd81b4f2712057ee507a9f0f01e59121e7960e', variation: "default", icon: this.buttonIcon, fixed: true, margin: "none", url: this.buttonUrl, theme: theme }, this.buttonText))), hAsync("div", { key: 'b3a716a438e7793ef194ae0b1067d926b75e0925' }), hAsync("slot", { key: '3d4bea81e03b40457deb9fd0731c14a9b80d465e' }))));
9757
+ }, role: "group", "aria-label": this.name }, this.image ? hAsync(DuetPicture, Object.assign({}, pictureSource)) : hAsync("div", null), hAsync("div", { key: 'c7f1a34d6324e755b84db0dc4da6ccfe23c2caea' }, this.name && (hAsync("duet-heading", { key: 'b5e344e3a442dd32b215a64c5ac5050004205cd2', class: "name", level: "h3", margin: "none", theme: theme }, this.name)), this.description && (hAsync("duet-paragraph", { key: 'c0691195632640e79ff0138fd59b974764f4e653', class: "description", margin: "none", theme: theme }, this.description)), this.email && (hAsync("div", { key: '69b2e8b159c01ac6a10b0e9f5db6484e24d7ba88', class: "email" }, hAsync("duet-icon", { key: '610229dce2bd62cdd469f1507a3d7ab2fb9bbf2e', name: "navigation-message", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), hAsync("duet-link", { key: 'b8de1672468624fb4d187f2284d59057abc6fc02', url: `mailto:${this.email}`, accessibleLabel: `Email: ${this.email}`, theme: theme }, this.email))), this.phone && (hAsync("div", { key: 'f1f0f4cb51fb389b4af742d8aff457575ba2fea8', class: "phone" }, hAsync("duet-icon", { key: 'bf01da4d50e3c15d6e5e6578e560746cd0290cdc', name: "form-tel", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), hAsync("duet-link", { key: 'b13decd3ea2cbe80e5eb96f4214db65bcf318918', url: `tel:${this.phone}`, accessibleLabel: `${this.phoneLabel[this.language]}: ${this.phone}`, theme: theme }, this.phone)))), this.buttonUrl && this.buttonText && (hAsync("div", { key: 'e9d62c80a434400828e323a802e873df327e9c28', class: "call-to-action" }, hAsync("duet-button", { key: '5603fe9f97b490a96cfb04cb6efbc98093d8e216', variation: "default", icon: this.buttonIcon, fixed: true, margin: "none", url: this.buttonUrl, theme: theme }, this.buttonText))), hAsync("div", { key: '6fd00f636dd39f1ad02f62fa2a63cfe7f00f67b2' }), hAsync("slot", { key: 'f91dc7abe608519b46f5bf421f09258cabdda749' }))));
9694
9758
  }
9695
9759
  get element() { return getElement(this); }
9696
9760
  static get style() { return duetContactCardCss; }
@@ -9701,6 +9765,7 @@ class DuetContactCard {
9701
9765
  "theme": [1025],
9702
9766
  "margin": [1],
9703
9767
  "image": [1025],
9768
+ "sources": [1],
9704
9769
  "name": [1025],
9705
9770
  "description": [1025],
9706
9771
  "email": [1025],
@@ -10070,6 +10135,13 @@ function setYear(date, year) {
10070
10135
  d.setFullYear(year);
10071
10136
  return d;
10072
10137
  }
10138
+ /**
10139
+ * Check if date falls on a Saturday or Sunday
10140
+ */
10141
+ function isWeekend(date) {
10142
+ const day = date.getDay();
10143
+ return day === 0 || day === 6;
10144
+ }
10073
10145
  /**
10074
10146
  * Check if date is within a min and max
10075
10147
  */
@@ -10133,6 +10205,88 @@ const DatePickerDay = ({ focusedDay, today, day, language, onDaySelect, onKeyboa
10133
10205
  hAsync("span", { class: { "duet-date-table-button": true, outside: isOutsideRange, disabled: isDisabled, today: isToday } }, day.getDate())));
10134
10206
  };
10135
10207
 
10208
+ const holidaysByYear = new Map();
10209
+ /**
10210
+ * Calculate the date of Easter Sunday for a given year using the
10211
+ * Meeus/Jones/Butcher Gregorian algorithm.
10212
+ */
10213
+ function getEasterSunday(year) {
10214
+ const a = year % 19;
10215
+ const b = Math.floor(year / 100);
10216
+ const c = year % 100;
10217
+ const d = Math.floor(b / 4);
10218
+ const e = b % 4;
10219
+ const f = Math.floor((b + 8) / 25);
10220
+ const g = Math.floor((b - f + 1) / 3);
10221
+ const h = (19 * a + b - d - g + 15) % 30;
10222
+ const i = Math.floor(c / 4);
10223
+ const k = c % 4;
10224
+ const l = (32 + 2 * e + 2 * i - h - k) % 7;
10225
+ const m = Math.floor((a + 11 * h + 22 * l) / 451);
10226
+ const monthAndDay = h + l - 7 * m + 114;
10227
+ const month = Math.floor(monthAndDay / 31);
10228
+ const day = (monthAndDay % 31) + 1;
10229
+ return new Date(year, month - 1, day);
10230
+ }
10231
+ /**
10232
+ * Midsummer Eve is the Friday falling between 19 and 25 June (inclusive).
10233
+ */
10234
+ function getMidsummerEve(year) {
10235
+ for (let day = 19; day <= 25; day++) {
10236
+ const date = new Date(year, 5, day);
10237
+ if (date.getDay() === 5) {
10238
+ return date;
10239
+ }
10240
+ }
10241
+ }
10242
+ /**
10243
+ * Finnish bank holidays for a given year, as published by the Bank of Finland:
10244
+ * https://www.suomenpankki.fi/en/money-and-payments/bank-holidays/
10245
+ */
10246
+ function getFinnishBankHolidays(year) {
10247
+ if (holidaysByYear.has(year)) {
10248
+ return holidaysByYear.get(year);
10249
+ }
10250
+ const easterSunday = getEasterSunday(year);
10251
+ const holidays = [
10252
+ new Date(year, 0, 1), // New Year's Day
10253
+ new Date(year, 0, 6), // Epiphany
10254
+ addDays(easterSunday, -2), // Good Friday
10255
+ addDays(easterSunday, 1), // Easter Monday
10256
+ new Date(year, 4, 1), // May Day
10257
+ addDays(easterSunday, 39), // Ascension Day
10258
+ getMidsummerEve(year), // Midsummer Eve
10259
+ new Date(year, 11, 6), // Independence Day
10260
+ new Date(year, 11, 24), // Christmas Eve
10261
+ new Date(year, 11, 25), // Christmas Day
10262
+ new Date(year, 11, 26), // Boxing Day
10263
+ ];
10264
+ holidaysByYear.set(year, holidays);
10265
+ return holidays;
10266
+ }
10267
+ function isFinnishBankHoliday(date) {
10268
+ return getFinnishBankHolidays(date.getFullYear()).some(holiday => isEqual(holiday, date));
10269
+ }
10270
+
10271
+ function parseDisallowedDates(disallowedDates) {
10272
+ if (!disallowedDates) {
10273
+ return [];
10274
+ }
10275
+ return Array.isArray(disallowedDates) ? disallowedDates : disallowedDates.split(",").map(date => date.trim());
10276
+ }
10277
+ /**
10278
+ * Check if a date is disallowed by any of the given weekend/bank-holiday/explicit-date rules
10279
+ */
10280
+ function isDateDisallowed(date, options) {
10281
+ if (options.disallowWeekends && isWeekend(date)) {
10282
+ return true;
10283
+ }
10284
+ if (options.disallowBankHolidays && isFinnishBankHoliday(date)) {
10285
+ return true;
10286
+ }
10287
+ return parseDisallowedDates(options.disallowedDates).some(isoDate => isEqual(parseISODate(isoDate), date));
10288
+ }
10289
+
10136
10290
  /**
10137
10291
  * Creates an array representing an inclusive numeric range.
10138
10292
  * `from` must be less than `to`
@@ -10192,7 +10346,7 @@ function createShortcuts(shortcuts) {
10192
10346
  };
10193
10347
  }
10194
10348
 
10195
- const DatePickerMonth = ({ selectedDate, focusedDate, labelledById, theme, language, min, max, onDateSelect, onKeyboardNavigation, focusedDayRef, onFocusEnter, onFocusExit, }) => {
10349
+ const DatePickerMonth = ({ selectedDate, focusedDate, labelledById, theme, language, min, max, disallowWeekends, disallowBankHolidays, disallowedDates, onDateSelect, onKeyboardNavigation, focusedDayRef, onFocusEnter, onFocusExit, }) => {
10196
10350
  const { dayLabels } = i18n$2[language];
10197
10351
  const today = new Date();
10198
10352
  const days = getViewOfMonth(focusedDate);
@@ -10210,7 +10364,8 @@ const DatePickerMonth = ({ selectedDate, focusedDate, labelledById, theme, langu
10210
10364
  hAsync("thead", null,
10211
10365
  hAsync("tr", null, dayLabels.map(label => (hAsync("th", { scope: "col" },
10212
10366
  hAsync("span", { "aria-hidden": "true" }, label.substr(0, 2))))))),
10213
- hAsync("tbody", null, chunk(days, 7).map(week => (hAsync("tr", { class: "duet-date-table-row" }, week.map(day => (hAsync(DatePickerDay, { day: day, today: today, language: language, focusedDay: focusedDate, inRange: inRange(day, min, max), isSelected: isEqual(day, selectedDate), onDaySelect: onDateSelect, onKeyboardNavigation: onKeyboardNavigation, ref: el => {
10367
+ hAsync("tbody", null, chunk(days, 7).map(week => (hAsync("tr", { class: "duet-date-table-row" }, week.map(day => (hAsync(DatePickerDay, { day: day, today: today, language: language, focusedDay: focusedDate, inRange: inRange(day, min, max) &&
10368
+ !isDateDisallowed(day, { disallowWeekends, disallowBankHolidays, disallowedDates }), isSelected: isEqual(day, selectedDate), onDaySelect: onDateSelect, onKeyboardNavigation: onKeyboardNavigation, ref: el => {
10214
10369
  if (el && isEqual(day, focusedDate)) {
10215
10370
  focusedDayRef(el);
10216
10371
  }
@@ -10256,6 +10411,11 @@ class DuetDatePicker {
10256
10411
  fi: "Päivämäärä vaaditaan",
10257
10412
  sv: "Datum krävs",
10258
10413
  },
10414
+ customError: {
10415
+ en: "Date not allowed",
10416
+ fi: "Päivämäärä ei sallittu",
10417
+ sv: "Datum inte tillåtet",
10418
+ },
10259
10419
  };
10260
10420
  this.open = false;
10261
10421
  this.focusedDay = new Date();
@@ -10364,6 +10524,19 @@ class DuetDatePicker {
10364
10524
  * This setting can be used alone or together with the min property.
10365
10525
  */
10366
10526
  this.max = "";
10527
+ /**
10528
+ * Disallow selecting Saturdays and Sundays.
10529
+ */
10530
+ this.disallowWeekends = false;
10531
+ /**
10532
+ * Disallow selecting Finnish bank holidays, including Easter-based dates and Midsummer Eve.
10533
+ */
10534
+ this.disallowBankHolidays = false;
10535
+ /**
10536
+ * Disallow selecting specific dates. Accepts an array of ISO-8601 (YYYY-MM-DD) dates,
10537
+ * or a comma-separated string of the same when set as an HTML attribute.
10538
+ */
10539
+ this.disallowedDates = [];
10367
10540
  /**
10368
10541
  * Increment to add to years, defaults to 10 for simplicity, if you need a larger selectionspace you can set it to 100
10369
10542
  */
@@ -10466,7 +10639,7 @@ class DuetDatePicker {
10466
10639
  this.handleDaySelect = (_event, day) => {
10467
10640
  const min = parseISODate(this.min);
10468
10641
  const max = parseISODate(this.max);
10469
- if (inRange(day, min, max)) {
10642
+ if (inRange(day, min, max) && !isDateDisallowed(day, this)) {
10470
10643
  this.setValue(day);
10471
10644
  this.hide();
10472
10645
  }
@@ -10487,6 +10660,7 @@ class DuetDatePicker {
10487
10660
  * This offers information relating to the current validity of the component.
10488
10661
  * It follow as closely as possible the behaviour of the native date input.
10489
10662
  * Useful properties to inspect are badInput, valueMissing, rangeOverflow, rangeUnderflow.
10663
+ * For disallowed dates property customError is set true.
10490
10664
  */
10491
10665
  get validity() {
10492
10666
  this.determineValidity();
@@ -10610,9 +10784,10 @@ class DuetDatePicker {
10610
10784
  const valueMissing = !valueAsDate && this.required;
10611
10785
  const rangeOverflow = valueAsDate ? !inRange(valueAsDate, null, parseISODate(this.max)) : false;
10612
10786
  const rangeUnderflow = valueAsDate ? !inRange(valueAsDate, parseISODate(this.min)) : false;
10787
+ const customError = valueAsDate ? isDateDisallowed(valueAsDate, this) : false;
10613
10788
  this._validity = {
10614
10789
  patternMismatch: false,
10615
- customError: false,
10790
+ customError,
10616
10791
  stepMismatch: false,
10617
10792
  tooLong: false,
10618
10793
  tooShort: false,
@@ -10621,7 +10796,7 @@ class DuetDatePicker {
10621
10796
  rangeUnderflow,
10622
10797
  rangeOverflow,
10623
10798
  valueMissing,
10624
- valid: !(valueMissing || badInput || rangeUnderflow || rangeOverflow),
10799
+ valid: !(valueMissing || badInput || rangeUnderflow || rangeOverflow || customError),
10625
10800
  };
10626
10801
  if (this._validity.valid) {
10627
10802
  this.error = "";
@@ -10684,20 +10859,24 @@ class DuetDatePicker {
10684
10859
  if (maxDate) {
10685
10860
  maxYear = Math.min(maxYear, maxDate.getFullYear());
10686
10861
  }
10687
- return (hAsync(Host, { key: '5ebd34bf6ba1033b890138e5523f45fecd17eaf4', class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" } }, hAsync("div", { key: '8c4b995485be3c6b070ce738f3416db0d9683771', class: "duet-date" }, hAsync(DatePickerInput, { key: 'c0b308099cd5c56790a1160d10a682551ce9da7e', hasFocus: this.inputHasFocus, value: this.value, valueAsDate: valueAsDate, formattedValue: this.inputValue, language: this.language, onInput: this.handleInputChange, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.toggleOpen, name: this.name, disabled: this.disabled, error: this.error, role: this.role, required: this.required, theme: this.theme, tooltip: this.tooltip, tooltipDirection: this.tooltipDirection, labelHidden: this.labelHidden, placeholder: this.placeholder, inputLabel: this.label, identifier: this.identifier, buttonRef: element => (this.datePickerButton = element), inputRef: element => (this.datePickerInput = element), accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy, accessibleLiveError: this.accessibleLiveError, echoPlaceholder: this.echoPlaceholder, caption: this.caption })), hAsync("div", { key: 'cca008327d5a939054a1b2abd748b08170b19a07', class: {
10862
+ return (hAsync(Host, { key: '574a2e443eb79af37f178f46845a206f561cba2e', class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" } }, hAsync("div", { key: '62fa53292d9b464c3bfce84805c61abbc729b32c', class: "duet-date" }, hAsync(DatePickerInput, { key: 'fd44ced264f1b867ffa5642a110d118cfd8a7977', hasFocus: this.inputHasFocus, value: this.value, valueAsDate: valueAsDate, formattedValue: this.inputValue, language: this.language, onInput: this.handleInputChange, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.toggleOpen, name: this.name, disabled: this.disabled, error: this.error, role: this.role, required: this.required, theme: this.theme, tooltip: this.tooltip, tooltipDirection: this.tooltipDirection, labelHidden: this.labelHidden, placeholder: this.placeholder, inputLabel: this.label, identifier: this.identifier, buttonRef: element => (this.datePickerButton = element), inputRef: element => (this.datePickerInput = element), accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy, accessibleLiveError: this.accessibleLiveError, echoPlaceholder: this.echoPlaceholder, caption: this.caption })), hAsync("div", { key: '7db19721a17bc48c0f232de5a91e9aee49435f6b', class: {
10688
10863
  "duet-theme-turva": this.theme === "turva",
10689
10864
  "duet-date-dialog": true,
10690
10865
  left: this.direction === "left",
10691
10866
  error: !!this.error,
10692
10867
  active: this.open,
10693
- }, role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? "false" : "true", "aria-labelledby": this.dialogLabelId, onTouchMove: this.handleTouchMove, onTouchStart: this.handleTouchStart, onTouchEnd: this.handleTouchEnd }, hAsync("duet-overlay", { key: 'fcb2d3f3fd5333529c2ebc82590a6a543112a5f4', visible: this.open, "display-device": "x-small" }), hAsync(FocusGuard, { key: '0de38fdb796337ec9448bcff1bb652776fdf6f60', moveFocusTo: this.focusedDayNode }), hAsync("div", { key: '9950afbc58987e498e2e6734fd6af177c65d94a8', class: "duet-date-dialog-wrapper", onKeyDown: this.handleEscKey, ref: element => (this.dialogWrapperNode = element) }, hAsync("duet-visually-hidden", { key: '2394f33f1efd2e0626b2a1bc3642a73193798b13', "aria-live": "polite" }, text.keyboardInstruction), hAsync("div", { key: '74b68ad35d92ab0c2616be5466ea6b8b2c1a1451', class: "duet-date-dialog-mobile-header" }, hAsync(DuetInternalLabel, { key: '7385d9ef814cf4557cf903f705b38a7571369d0f', margin: "none" }, this.label), hAsync("button", { key: '5ba61af3c6b024f1f3ef531b412e5c20243d83ca', class: "duet-date-picker-close", ref: element => (this.closeButtonNode = element), onClick: () => this.hide(), type: "button" }, hAsync("duet-icon", { key: '14e320af49eb06c184cfe918a67f278bdac888bf', name: "navigation-close-small", margin: "none", color: "currentColor", size: "xx-small" }), hAsync("duet-visually-hidden", { key: 'b58668ebd6f0849ae6e8f0454800b4ceb916443e' }, text.closeLabel))), hAsync("div", { key: '79a07d6373ca479f45808ff3eef1ea6239148b26', class: "duet-date-dialog-header" }, hAsync("div", { key: '6f08a300db74dd1562c658334c8220fc1569228c', class: "duet-date-dialog-dropdowns" }, hAsync("duet-visually-hidden", { key: '400b1451a2180e0a189a5c1e7c27139647ec5539' }, hAsync("h2", { key: '47225d656584304da5b114f0430e17cb74a38e53', id: this.dialogLabelId, "aria-live": "polite", "aria-atomic": "true" }, text.monthLabels[focusedMonth], " ", this.focusedDay.getFullYear())), hAsync("duet-visually-hidden", { key: 'b66a24df41db7807ed3c0d3f36d380a897360fa6' }, hAsync("label", { key: 'aae8cf780c5452e1399421e177309ad7a9179803', htmlFor: this.monthSelectId }, text.monthSelectLabel)), hAsync("div", { key: 'f2bad2498489114a7bc0ffd6fc8c4f842b507e43', class: "duet-date-dialog-select" }, hAsync("select", { key: '9d58e711523ace0781cc27947fb9ecc52bda8499', id: this.monthSelectId, class: "duet-date-month-select", ref: element => (this.monthSelectNode = element), onChange: this.handleMonthSelect }, text.monthLabels.map((month, i) => (hAsync("option", { key: month, value: i, selected: i === focusedMonth, disabled: !inRange(new Date(focusedYear, i, 1), minDate ? startOfMonth(minDate) : null, maxDate ? endOfMonth(maxDate) : null) }, month)))), hAsync("div", { key: '914f0bef1d172d4d5391991fd9f8206f7d0576df', class: "duet-date-dialog-select-label", "aria-hidden": "true" }, hAsync("span", { key: '7aebf3e0cbc22a117a5e155e0dd4518189f9b946' }, text.monthLabelsShort[focusedMonth]), hAsync("duet-icon", { key: 'faf140d4032093b37db295f06e23ea761fa27c65', name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" }))), hAsync("duet-visually-hidden", { key: '66399d5d57f605fe4db9c13ee13bcf89f4d38efd' }, hAsync("label", { key: '76256efb6db83d4165a903420b70e9a6d43a2e49', htmlFor: this.yearSelectId }, text.yearSelectLabel)), hAsync("div", { key: 'e871aa90559d85cad33752f52a6e538571e6984f', class: "duet-date-dialog-select" }, hAsync("select", { key: 'af2e90cb3d28123c36c83853753be30beff06400', id: this.yearSelectId, class: "duet-date-year-select", onChange: this.handleYearSelect }, range(minYear, maxYear).map(year => (hAsync("option", { key: year, selected: year === focusedYear }, year)))), hAsync("div", { key: 'a1487d1853c56fc62c20bf2b3df60cc73d666017', class: "duet-date-dialog-select-label", "aria-hidden": "true" }, hAsync("span", { key: 'ad43c7efa4a93e4417c2051e000fe0f786b35612' }, this.focusedDay.getFullYear()), hAsync("duet-icon", { key: '5c42115e3dd7c4a48e5cae87b5f03ed274087ba5', name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" })))), hAsync("div", { key: 'bc63edbea7a3b069774fc0b8766983f570479501', class: "duet-date-dialog-buttons" }, hAsync("duet-action-button", { key: 'e3cb3ade86eeedbaf914d104ce9b638109708eb6', accessibleLabel: i18n$2[this.language].prevMonthLabel, actionName: i18n$2[this.language].prevMonthLabel, class: "duet-date-dialog-prev", onClick: this.handlePreviousMonthClick, disabled: prevMonthDisabled, "icon-name": "action-arrow-left-small" }, text.prevMonthLabel), hAsync("duet-action-button", { key: '3d1b9df7ab5852d770d6c98285b73e002a9f4468', accessibleLabel: i18n$2[this.language].nextMonthLabel, actionName: i18n$2[this.language].nextMonthLabel, class: "duet-date-dialog-next", onClick: this.handleNextMonthClick, disabled: nextMonthDisabled, "icon-name": "action-arrow-right-small" }, text.nextMonthLabel))), hAsync(DatePickerMonth, { key: 'fb66dbdf2065a158a265490a6f7c0ace038919d5', selectedDate: valueAsDate, focusedDate: this.focusedDay, onDateSelect: this.handleDaySelect, onKeyboardNavigation: this.handleKeyboardNavigation, labelledById: this.dialogLabelId, language: this.language, theme: this.theme, min: minDate, max: maxDate, focusedDayRef: element => (this.focusedDayNode = element), onFocusEnter: this.enableActiveFocus, onFocusExit: this.disableActiveFocus })), hAsync(FocusGuard, { key: 'b40a59659930ae4a47fb6d8dd45f334e5fcdf026', moveFocusTo: this.closeButtonNode }))));
10868
+ }, role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? "false" : "true", "aria-labelledby": this.dialogLabelId, onTouchMove: this.handleTouchMove, onTouchStart: this.handleTouchStart, onTouchEnd: this.handleTouchEnd }, hAsync("duet-overlay", { key: 'b762f7971ef0f3cfdba4338da8b66ddd932d739c', visible: this.open, "display-device": "x-small" }), hAsync(FocusGuard, { key: '116f8a028515e1cabbdfe6c7c4fbe46a366e8417', moveFocusTo: this.focusedDayNode }), hAsync("div", { key: '46df5dc4188ca94f1e9288cc94b369a56a951ee1', class: "duet-date-dialog-wrapper", onKeyDown: this.handleEscKey, ref: element => (this.dialogWrapperNode = element) }, hAsync("duet-visually-hidden", { key: '1de44e1f4c44b9c97adb419fa7abf60f937b0fa2', "aria-live": "polite" }, text.keyboardInstruction), hAsync("div", { key: '4a36684eab5f83211dcd9f04f240ad535f781376', class: "duet-date-dialog-mobile-header" }, hAsync(DuetInternalLabel, { key: 'ef9877f7fc10b63428437a0ddbc07a787792617b', margin: "none" }, this.label), hAsync("button", { key: '52b087991727aa7c32178aef85a7ff6a88b33f6e', class: "duet-date-picker-close", ref: element => (this.closeButtonNode = element), onClick: () => this.hide(), type: "button" }, hAsync("duet-icon", { key: '9434a8ab91835101fca28fb28d3ba3b5fc768583', name: "navigation-close-small", margin: "none", color: "currentColor", size: "xx-small" }), hAsync("duet-visually-hidden", { key: 'eaa01ae0b3e0270af1ee5b7777c4bf1c823ed55d' }, text.closeLabel))), hAsync("div", { key: '8f59e259985eb3628f23dd8aa4edd90eab33ce45', class: "duet-date-dialog-header" }, hAsync("div", { key: 'fd9e2ffede5b19a2008684f5587663372a769b0f', class: "duet-date-dialog-dropdowns" }, hAsync("duet-visually-hidden", { key: '9bfda8777868d3a1a0b5dfb1146d4bd22ece9b9d' }, hAsync("h2", { key: '4f8171f8b0bfabeb8ef0d44f604c668810572ba8', id: this.dialogLabelId, "aria-live": "polite", "aria-atomic": "true" }, text.monthLabels[focusedMonth], " ", this.focusedDay.getFullYear())), hAsync("duet-visually-hidden", { key: 'f55f26894bef3e11233e3d72b62d70ff5f4f30fc' }, hAsync("label", { key: '01d6cda898862ee9c82f018e4a875a54c8a4454c', htmlFor: this.monthSelectId }, text.monthSelectLabel)), hAsync("div", { key: '758b166665674a916ab6d6b2c9fd78b6f51f27fd', class: "duet-date-dialog-select" }, hAsync("select", { key: '548b2e7615f581454c64c30fe8e8c8d6dfe0d969', id: this.monthSelectId, class: "duet-date-month-select", ref: element => (this.monthSelectNode = element), onChange: this.handleMonthSelect }, text.monthLabels.map((month, i) => (hAsync("option", { key: month, value: i, selected: i === focusedMonth, disabled: !inRange(new Date(focusedYear, i, 1), minDate ? startOfMonth(minDate) : null, maxDate ? endOfMonth(maxDate) : null) }, month)))), hAsync("div", { key: '34d1e610de1d9f1c1436fdf1ffb2294742269696', class: "duet-date-dialog-select-label", "aria-hidden": "true" }, hAsync("span", { key: '84d57f82660038e7fb7d631e6eb03be0ef9c4315' }, text.monthLabelsShort[focusedMonth]), hAsync("duet-icon", { key: 'f706752d81c80ae05bf13a19ed6cfa3b2d7262cc', name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" }))), hAsync("duet-visually-hidden", { key: 'fb67730ced2246377442fb2fd2ebf5086db34fbd' }, hAsync("label", { key: '0d3d28925711a15b919004ad2384c719b9832f7d', htmlFor: this.yearSelectId }, text.yearSelectLabel)), hAsync("div", { key: '371bb8461b655460da25e9982e17c0385fab8f71', class: "duet-date-dialog-select" }, hAsync("select", { key: 'c466eed369426ad7cc78fbed3278a0523529920c', id: this.yearSelectId, class: "duet-date-year-select", onChange: this.handleYearSelect }, range(minYear, maxYear).map(year => (hAsync("option", { key: year, selected: year === focusedYear }, year)))), hAsync("div", { key: '78db254ed00d0d7b5104f4932415d970ff17e1f4', class: "duet-date-dialog-select-label", "aria-hidden": "true" }, hAsync("span", { key: '9a66b0dad5bf39fd769cd851cb529b4568310d9d' }, this.focusedDay.getFullYear()), hAsync("duet-icon", { key: 'a68a8da9385f631020ba28389caf1b611def6676', name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" })))), hAsync("div", { key: 'd1dd09f7da7f1e9d50cdd79ae97d13ba4d89be25', class: "duet-date-dialog-buttons" }, hAsync("duet-action-button", { key: 'e7b3c41d7d56f2c24b4e69db80e4c8fc2e0395a2', accessibleLabel: i18n$2[this.language].prevMonthLabel, actionName: i18n$2[this.language].prevMonthLabel, class: "duet-date-dialog-prev", onClick: this.handlePreviousMonthClick, disabled: prevMonthDisabled, "icon-name": "action-arrow-left-small" }, text.prevMonthLabel), hAsync("duet-action-button", { key: '980a6a1316a3f0b64a0ae62dd80d3494ea855ae8', accessibleLabel: i18n$2[this.language].nextMonthLabel, actionName: i18n$2[this.language].nextMonthLabel, class: "duet-date-dialog-next", onClick: this.handleNextMonthClick, disabled: nextMonthDisabled, "icon-name": "action-arrow-right-small" }, text.nextMonthLabel))), hAsync(DatePickerMonth, { key: '8524700a8665fe9b8edc04bd6b90b4aacc1eeea0', selectedDate: valueAsDate, focusedDate: this.focusedDay, onDateSelect: this.handleDaySelect, onKeyboardNavigation: this.handleKeyboardNavigation, labelledById: this.dialogLabelId, language: this.language, theme: this.theme, min: minDate, max: maxDate, disallowWeekends: this.disallowWeekends, disallowBankHolidays: this.disallowBankHolidays, disallowedDates: this.disallowedDates, focusedDayRef: element => (this.focusedDayNode = element), onFocusEnter: this.enableActiveFocus, onFocusExit: this.disableActiveFocus })), hAsync(FocusGuard, { key: '8b92a3d7d025848e2e3c976e9c091364b52b7f96', moveFocusTo: this.closeButtonNode }))));
10694
10869
  }
10695
10870
  get element() { return getElement(this); }
10696
10871
  static get watchers() { return {
10697
10872
  "min": ["updateValidity"],
10698
10873
  "max": ["updateValidity"],
10699
10874
  "value": ["updateValidity", "updateInternalValue"],
10700
- "required": ["updateValidity"]
10875
+ "required": ["updateValidity"],
10876
+ "inputValue": ["updateValidity"],
10877
+ "disallowWeekends": ["updateValidity"],
10878
+ "disallowBankHolidays": ["updateValidity"],
10879
+ "disallowedDates": ["updateValidity"]
10701
10880
  }; }
10702
10881
  static get style() { return duetDatePickerCss; }
10703
10882
  static get cmpMeta() { return {
@@ -10731,6 +10910,9 @@ class DuetDatePicker {
10731
10910
  "value": [1537],
10732
10911
  "min": [1],
10733
10912
  "max": [1],
10913
+ "disallowWeekends": [4, "disallow-weekends"],
10914
+ "disallowBankHolidays": [4, "disallow-bank-holidays"],
10915
+ "disallowedDates": [1, "disallowed-dates"],
10734
10916
  "incrementYears": [2, "increment"],
10735
10917
  "validity": [2064],
10736
10918
  "accessibleLiveError": [1, "accessible-live-error"],
@@ -10779,7 +10961,7 @@ class DuetDivider {
10779
10961
  */
10780
10962
  render() {
10781
10963
  const background = getColorByName(this.color);
10782
- return (hAsync("div", { key: 'a833c22a31c93caea94753696848ad720b5dc06d', class: {
10964
+ return (hAsync("div", { key: 'cfe1692393e236239489a12b1348ee3ceacbd6e8', class: {
10783
10965
  "duet-m-0": this.margin === "none",
10784
10966
  "duet-m-s": this.margin === "small",
10785
10967
  "duet-divider": true,
@@ -11017,7 +11199,7 @@ class DuetEditableTable {
11017
11199
  * Render Methods
11018
11200
  */
11019
11201
  render() {
11020
- return (hAsync(Host, { key: 'a0c3202194fcc3910b50193f2a4fcb3bd7d3a5d8', class: {
11202
+ return (hAsync(Host, { key: 'e8047048590b1dfac635e5a94a46fb1d61e4030b', class: {
11021
11203
  [`duet-editable-table-${this.variation}`]: true,
11022
11204
  "duet-editable-table": true,
11023
11205
  [`duet-editable-table-${this.theme}`]: true,
@@ -11027,7 +11209,7 @@ class DuetEditableTable {
11027
11209
  "duet-editable-table-actions": !!this.actions,
11028
11210
  "duet-m-0": this.margin === "none",
11029
11211
  "duet-theme-turva": this.theme === "turva",
11030
- } }, hAsync("duet-table", { key: '6e53631c212527e8702f9e9c8a1b9bc2b390c830', class: "duet-editable-table-table", sticky: this.sticky, stickyDistance: this.stickyDistance, margin: this.margin, theme: this.theme, variation: this.variation, breakpoint: this.breakpoint, "hide-head-visually": this.hideHeadVisually }, hAsync("table", { key: '990481c1affeb11d6a6541a36a8f0118c961915c', role: this.accessibleRole }, hAsync("caption", { key: 'f7b1bc44ab9fef0194485fdd6e49e11a306e365c' }, hAsync("slot", { key: '2caecec6e5c024bdde6fa6bf72917914e2626752', name: "tcaption" })), hAsync("thead", { key: 'c892dcd586814dcecddc46fbaf0319b04b6d9f16' }, this.hasHeadSlotFirst && (hAsync("tr", { key: 'bfbac21dbab8afab7f34e952bd5803954be4991d' }, hAsync("td", { key: '0a491ed1c4855d55b4dbc493a52029d657a08cc5', class: "duet-editable-table-actions-menu", colSpan: 99 }, hAsync("slot", { key: '87c033e72a1bd3b87a51a4981b1b4939de66578d', name: "thead-first" })))), this.renderTableHeader(), this.hasHeadSlotLast && (hAsync("tr", { key: '2ab66f9b14fe592f7ee7e6293cdd56b3aed0190e' }, hAsync("td", { key: 'edb3ae066371b6f5dc990f10f088246c0d9388d9', class: "duet-editable-table-actions-menu", colSpan: 99 }, hAsync("slot", { key: 'f57ebf07ee01c40cb47469b2fa07a706c4724dae', name: "thead-last" }))))), hAsync("tbody", { key: '538b2de606132fcb272e5af1650cafb947fc5b2a' }, this.renderTableBody()), this.hasFootSlot && (hAsync("tfoot", { key: '2f1a98dd550705933222f7179bc3ff4d6554d117' }, hAsync("tr", { key: 'ecb9667d57ea85de7efa6fa0035fbfbb16c78a9e' }, hAsync("td", { key: 'c78b25495de0621c55f70cce5131b1d192fc5e0e', class: "duet-editable-table-footer-menu", colSpan: 99 }, hAsync("slot", { key: 'ed051b0e66c28fdbee565b33c1c394034a817a82', name: "tfoot" })))))))));
11212
+ } }, hAsync("duet-table", { key: 'abcb5c0dc22830d840bbf18144e66605207849d0', class: "duet-editable-table-table", sticky: this.sticky, stickyDistance: this.stickyDistance, margin: this.margin, theme: this.theme, variation: this.variation, breakpoint: this.breakpoint, "hide-head-visually": this.hideHeadVisually }, hAsync("table", { key: '269ab86ebe745cfcf2e208e174e0914ea7b4fed8', role: this.accessibleRole }, hAsync("caption", { key: '2753e748db0c5264c994a41b002e52a5641d2971' }, hAsync("slot", { key: '567de210690137ae00e2ad40e2e2c1e1c733f3d7', name: "tcaption" })), hAsync("thead", { key: 'ea6b829d344cd19619f667d75304614cbf60cc9d' }, this.hasHeadSlotFirst && (hAsync("tr", { key: '84c66d116690df93737670dbbd0fc2b0e5c9f80b' }, hAsync("td", { key: '3ab4954300f48b65cdc48f612045ef4296f3561d', class: "duet-editable-table-actions-menu", colSpan: 99 }, hAsync("slot", { key: '9f32c90606e46036a34ca037bdfd61d4eae70fb2', name: "thead-first" })))), this.renderTableHeader(), this.hasHeadSlotLast && (hAsync("tr", { key: '8be7b6223bd2ba7109db839efde2baab0f04c40f' }, hAsync("td", { key: '1d6b0626d4b9dfdedc24f1118b53558e3ad80a54', class: "duet-editable-table-actions-menu", colSpan: 99 }, hAsync("slot", { key: '247e4a043cc716d504a4827c415a3d73e8285046', name: "thead-last" }))))), hAsync("tbody", { key: '778fd5a880190cffa0f9649b37839b2a0abedbe5' }, this.renderTableBody()), this.hasFootSlot && (hAsync("tfoot", { key: '8c5e4045377ec3547c5005836f389cac2221dc62' }, hAsync("tr", { key: '71959adb135cbcd6b7e19c9c9d4dcd3e799e8720' }, hAsync("td", { key: 'ff1dc8216a9c918c1d9dec4aaf77454fd728a9ff', class: "duet-editable-table-footer-menu", colSpan: 99 }, hAsync("slot", { key: '450238c070a9f72a326737a26b1f6ede2f9606d2', name: "tfoot" })))))))));
11031
11213
  }
11032
11214
  get element() { return getElement(this); }
11033
11215
  static get style() { return duetEditableTableCss; }
@@ -11109,13 +11291,13 @@ class DuetEmptyState {
11109
11291
  * Always the last one in the class.
11110
11292
  */
11111
11293
  render() {
11112
- return (hAsync(Host, { key: '83c41a104ebe8f29f18a2d0754a822981edd2204' }, hAsync("div", { key: 'c2b928a204ec58089c46368f0e7a73f2f6880633', class: {
11294
+ return (hAsync(Host, { key: 'bf9aa87672aa22b4e89cc0014f6918fd8389981f' }, hAsync("div", { key: '21e1d1af1326ef9709a99695809cb6025bd8431a', class: {
11113
11295
  "duet-empty-state": true,
11114
11296
  [this.variation]: true,
11115
11297
  [`padding-${this.padding}`]: true,
11116
11298
  "duet-theme-turva": this.theme === "turva",
11117
11299
  "duet-no-background": this.background === "none",
11118
- } }, this.icon !== "none" && this.getIcon(), this.heading && (hAsync("div", { key: '8b6f183f2022ef6a5d00b93cb4b345d93e310d45' }, hAsync("strong", { key: 'fd7369964488e3821b00cbf3493fa873ee5a969e', class: "duet-empty-state-heading" }, this.heading), hAsync("duet-spacer", { key: '7b96f48b9587efa581fc84b2205a32e839e03ee7', size: "x-small" }))), hAsync("div", { key: 'ea6a1f4c70a824c705e8f644f8e58f9768db8317' }, hAsync("slot", { key: '77c8aa58fa27abf0635ea22f22fd7d5c06d151dc' })))));
11300
+ } }, this.icon !== "none" && this.getIcon(), this.heading && (hAsync("div", { key: 'dc994018199345c865ee6d242349dadd99f71b36' }, hAsync("strong", { key: '4e758372f9785d9f54bfe969ddcb90a0ae1fee6d', class: "duet-empty-state-heading" }, this.heading), hAsync("duet-spacer", { key: '7eedd7853ef4ea89bb434dc55a488132fa8a30ef', size: "x-small" }))), hAsync("div", { key: '4d1817b68cd9e88627eb1725a06cd510ea10ed61' }, hAsync("slot", { key: '4db106ff0912e6896ca74071580223340fb3df14' })))));
11119
11301
  }
11120
11302
  get element() { return getElement(this); }
11121
11303
  static get style() { return duetEmptyStateCss; }
@@ -11210,20 +11392,20 @@ class DuetFieldset {
11210
11392
  * Always the last one in the class.
11211
11393
  */
11212
11394
  render() {
11213
- return (hAsync(Host, { key: 'e1a788de39eaef07a1abaa996870dd726b226aee', class: { "duet-m-0": this.margin === "none" } }, hAsync("fieldset", { key: 'e7d2b6ecb24666f6a563d4923bb228bdf7e8820d', "aria-labelledby": this.labelId, "aria-describedby": this.error ? this.errorId : null,
11395
+ return (hAsync(Host, { key: 'dfc4801eaf8c1165b778701dffc06cb6c6729dab', class: { "duet-m-0": this.margin === "none" } }, hAsync("fieldset", { key: '720a2326b5106d5a7665528aedf93a351173abd0', "aria-labelledby": this.labelId, "aria-describedby": this.error ? this.errorId : null,
11214
11396
  // NVDA and VoiceOver do not yet support aria-errormessage
11215
11397
  // once they do, we can remove errors from the aria-describedby
11216
11398
  // aria-errormessage={this.error ? this.errorId : null}
11217
11399
  class: {
11218
11400
  "duet-fieldset": true,
11219
11401
  "duet-theme-turva": this.theme === "turva",
11220
- } }, hAsync("legend", { key: '9412c1763b18075c6c6d585389c3ac9d22542f64', id: this.labelId }, hAsync(this.labelHeadingLevel, { key: '9c1c5cfef779deef96e68e7f3760f0eeec8d347a' }, this.label), this.caption && hAsync("span", { key: 'd166f280495ee9e156e705fe52455b18c5a13ea2' }, this.caption)), hAsync("div", { key: 'e390d201c421bbd2086946b4548dc98d5c58fead', class: {
11402
+ } }, hAsync("legend", { key: 'a3e0f5a2079c07462370fe5b4953029868a34128', id: this.labelId }, hAsync(this.labelHeadingLevel, { key: '8b09fc7c58d0cb9ce5228f420c16b7e753cbff32' }, this.label), this.caption && hAsync("span", { key: '5505e5ff8f0fb05d0de2100a606281efc89de10d' }, this.caption)), hAsync("div", { key: 'c283e26732c4a1a23ab92f2f69c470f8576a1295', class: {
11221
11403
  "duet-legend-wrapper": true,
11222
11404
  "duet-legend-has-caption": !!this.caption,
11223
11405
  "duet-legend-has-tooltip": this.hasTooltip,
11224
11406
  "duet-legend-hidden": this.labelHidden,
11225
11407
  "duet-legend-compact": this.compactLabel,
11226
- } }, hAsync("div", { key: '10861fb7ec43cc4aec34ae9b04b1b191dd7a0d5c', class: "duet-fieldset-label" }, hAsync("span", { key: '63b295dc887c75eb4bc062d214bb5b6a899e0f83', "aria-hidden": "true" }, this.label), hAsync("slot", { key: 'dc154b5f9980e99c525884e32f7811e36fe634fc', onSlotchange: this.checkHasTooltip, name: "tooltip" })), this.caption && (hAsync("div", { key: '1803a70997b3d2de928d501cfb86864bfa3af614', class: "duet-fieldset-caption", "aria-hidden": "true" }, hAsync("duet-caption", { key: 'c574d64b9a375d0af50bc0bed35ea0418139f579', theme: this.theme, margin: "none" }, this.caption)))), hAsync("slot", { key: '48665d8be4d66036d4d69090d7a98ee01f99dbac' }), hAsync("span", { key: '9815f8bf073a39267673baf538de5908b52758e9', class: "duet-fieldset-help duet-fieldset-error", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && hAsync("span", { key: '93bfa1f3fb33cf3bc23055948b416a18369b8497', class: { "duet-m-0": this.lastItemIsChip } }, this.error)))));
11408
+ } }, hAsync("div", { key: '1ffa47a6b399b46b218a71a35e645f3c7f3e4699', class: "duet-fieldset-label" }, hAsync("span", { key: '8f13839c07004cfa7b57c7e90a56a9416e5318cd', "aria-hidden": "true" }, this.label), hAsync("slot", { key: '48871bac950c808682971d71b05bffb3e4d2f423', onSlotchange: this.checkHasTooltip, name: "tooltip" })), this.caption && (hAsync("div", { key: '9a67fb599acf90e1b6711421f08b5f76776c9c2a', class: "duet-fieldset-caption", "aria-hidden": "true" }, hAsync("duet-caption", { key: '4b40741c7e05704d6c7d8226a926a6a38ceff851', theme: this.theme, margin: "none" }, this.caption)))), hAsync("slot", { key: 'f57fd8b8ab64c31c89e7daf22baa9c9ae1251cfa' }), hAsync("span", { key: '3fc490294c332706136999063ea7b3091c95676d', class: "duet-fieldset-help duet-fieldset-error", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && hAsync("span", { key: 'f8b4d8ccd2a8d7b1b0ef640f55520278995fe80b', class: { "duet-m-0": this.lastItemIsChip } }, this.error)))));
11227
11409
  }
11228
11410
  get element() { return getElement(this); }
11229
11411
  static get style() { return duetFieldsetCss; }
@@ -11422,16 +11604,16 @@ class DuetFooter {
11422
11604
  render() {
11423
11605
  const text = getLocaleString(i18n$1, this.language);
11424
11606
  const copyrightLabel = this.theme === "turva" ? text.turva : text.lahi;
11425
- return (hAsync("footer", { key: '803a027abb0c9d387f880a40cf4fa48cfdc96ab0', class: {
11607
+ return (hAsync("footer", { key: '41644e999245cd90d4c97839293f95bfa5d9d250', class: {
11426
11608
  "duet-footer": true,
11427
11609
  "duet-m-0": this.margin === "none",
11428
11610
  "duet-theme-turva": this.theme === "turva",
11429
11611
  "duet-footer-simple": this.variation === "simple",
11430
- }, "aria-label": this.accessibleLabel }, hAsync("div", { key: '46da624a2ea71bc94e7029110f2aa4b264e21a0b', class: "duet-footer-wrapper" }, this.variation !== "simple" && (hAsync("div", { key: 'bb5d3de968dc4d893e002294a3ab5106ca3676ad', class: {
11612
+ }, "aria-label": this.accessibleLabel }, hAsync("div", { key: '5cc2520a6657b134143ef4b54e8bc25cb4ec6f3f', class: "duet-footer-wrapper" }, this.variation !== "simple" && (hAsync("div", { key: '6172bf0124114fa0d1447d4cde52541c06513707', class: {
11431
11613
  "duet-footer-top": true,
11432
11614
  "duet-has-info": this.hasInfoSlot,
11433
- }, part: "top" }, hAsync("div", { key: 'a3c27f3c9fbf54263b0e632307fe2ed39aeb9e46', class: "footer-top-logo" }, hAsync("duet-logo", { key: '5f7440b81f78389724830f3e843c71de140ae05d', href: this.logoHref, onClick: this.handleLogoClick, size: "large", inverse: true, language: this.language, theme: this.theme })), hAsync("div", { key: 'f0a8b5cdda02fbd0fbff1015320572900e12a16e', class: "footer-top-right-container" }, hAsync("slot", { key: '2c9e48c0350b76dbb74c59cfbca727d1c579b7a5', name: "info" }), hAsync("div", { key: '4df2f42f2dc49b084a94de90de892adac97866c9', class: "footer-top-items" }, this.processedItems &&
11434
- this.processedItems.map((item, index) => (hAsync(Fragment, null, index > 0 && hAsync("duet-spacer", { size: "x-large", direction: "horizontal" }), hAsync("duet-button", { ref: element => this.setDataAttributes(element, item), theme: this.theme, id: item.id, class: "duet-footer-link", variation: "plain", margin: "none", fixed: true, negative: true, url: item.href, external: item.external, icon: this.getTopItemButtonIcon(item), "icon-right": !this.isMessagingLink(item.href), "icon-size": this.isMessagingLink(item.href) ? "medium" : "medium-small", onClick: event => this.handleItemClick(event, item), onMouseEnter: event => this.emitDuetEvent(event, item), onTouchStart: event => this.emitDuetEvent(event, item) }, item.label)))))))), hAsync("slot", { key: '51d5f56fe14519205709b1cb02bcfa1b87e6a3c2', name: "extra" }), hAsync("p", { key: '3e2b620a21d109d0f4119d5b2a8a1a5c1404ec5c', class: "duet-footer-menu", part: "menu" }, hAsync("span", { key: '9a5becef9ceb454715ee6f560e3f9df8ae72357a', class: "duet-footer-copyright" }, `${copyrightLabel} ${new Date().getFullYear()}`), hAsync("span", { key: '34b3c5e0d44b6a0497b7983ddde14380175618cc', class: "duet-footer-menu-links" }, this.processedMenu && (hAsync(Fragment, { key: 'd7defe3bd130ba7fb71731f71860351dbca3d726' }, this.processedMenu.map(item => (hAsync("a", { ref: element => this.setDataAttributes(element, item), href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleMenuClick(event, item), onMouseEnter: event => this.emitDuetEvent(event, item), onTouchStart: event => this.emitDuetEvent(event, item) }, item.label, item.external && (hAsync(Fragment, null, hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), hAsync("span", { class: "duet-footer-external" }, hAsync("duet-icon", { icon: newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" })))), hAsync("span", { class: "duet-footer-divider", role: "presentation", "aria-hidden": "true" }, "/")))))))), hAsync("p", { key: '4c708db5c94a113edcda458bd9375cdb382a3237', class: "duet-footer-copyright duet-footer-copyright-mobile" }, `${copyrightLabel} ${new Date().getFullYear()}`))));
11615
+ }, part: "top" }, hAsync("div", { key: '8d7fa0e35487812a06867478b0d8c717e8cbc295', class: "footer-top-logo" }, hAsync("duet-logo", { key: '88a405f43f8923aec01dfbe7637d8b693c24ee94', href: this.logoHref, onClick: this.handleLogoClick, size: "large", inverse: true, language: this.language, theme: this.theme })), hAsync("div", { key: '0945fb2a21d2621abd034763e50d30f047fa7734', class: "footer-top-right-container" }, hAsync("slot", { key: '73eb607d6eae88968f7066c951f5f8ddf326f55e', name: "info" }), hAsync("div", { key: '1c142d6053b4b3f9b0bae03289e9ad79849cade6', class: "footer-top-items" }, this.processedItems &&
11616
+ this.processedItems.map((item, index) => (hAsync(Fragment, null, index > 0 && hAsync("duet-spacer", { size: "x-large", direction: "horizontal" }), hAsync("duet-button", { ref: element => this.setDataAttributes(element, item), theme: this.theme, id: item.id, class: "duet-footer-link", variation: "plain", margin: "none", fixed: true, negative: true, url: item.href, external: item.external, icon: this.getTopItemButtonIcon(item), "icon-right": !this.isMessagingLink(item.href), "icon-size": this.isMessagingLink(item.href) ? "medium" : "medium-small", onClick: event => this.handleItemClick(event, item), onMouseEnter: event => this.emitDuetEvent(event, item), onTouchStart: event => this.emitDuetEvent(event, item) }, item.label)))))))), hAsync("slot", { key: '86fc7e14e4fb80b35c4e81659c9e3b35d6c965c7', name: "extra" }), hAsync("p", { key: 'f5ddbb6a4cbf19f70259d96ef786cd6b068f503f', class: "duet-footer-menu", part: "menu" }, hAsync("span", { key: '9e2390e03d199fc50f6fb67181734a4ba71a38b8', class: "duet-footer-copyright" }, `${copyrightLabel} ${new Date().getFullYear()}`), hAsync("span", { key: 'c7b6bc951c3d2dc81abfcc4eac43d6d9061e9421', class: "duet-footer-menu-links" }, this.processedMenu && (hAsync(Fragment, { key: '87ef405d79957865d7cfd81f07fb400b9aa2ab1a' }, this.processedMenu.map(item => (hAsync("a", { ref: element => this.setDataAttributes(element, item), href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleMenuClick(event, item), onMouseEnter: event => this.emitDuetEvent(event, item), onTouchStart: event => this.emitDuetEvent(event, item) }, item.label, item.external && (hAsync(Fragment, null, hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), hAsync("span", { class: "duet-footer-external" }, hAsync("duet-icon", { icon: newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" })))), hAsync("span", { class: "duet-footer-divider", role: "presentation", "aria-hidden": "true" }, "/")))))))), hAsync("p", { key: '53c2ae3a42969730299aa948b8b6d42e9d765d32', class: "duet-footer-copyright duet-footer-copyright-mobile" }, `${copyrightLabel} ${new Date().getFullYear()}`))));
11435
11617
  }
11436
11618
  get element() { return getElement(this); }
11437
11619
  static get watchers() { return {
@@ -11653,7 +11835,7 @@ class DuetGrid {
11653
11835
  * Always the last one in the class.
11654
11836
  */
11655
11837
  render() {
11656
- return (hAsync(Host, { key: 'e83b3b47e6285da96df9121db761bc7c5feddd65', class: {
11838
+ return (hAsync(Host, { key: 'e64260236eda4217a2cb10444342c33d243da8cf', class: {
11657
11839
  "duet-grid": true,
11658
11840
  "duet-no-stacking": !this.responsive,
11659
11841
  "duet-grid-align-top": this.alignment === "top", // flex-start
@@ -11682,7 +11864,7 @@ class DuetGrid {
11682
11864
  [`duet-grid-template-${this.gridTemplate}`]: true,
11683
11865
  "duet-grid-no-row-gap": this.gridTemplateGap.startsWith("none") && this.gridTemplate !== "button-grid",
11684
11866
  "duet-grid-no-column-gap": this.gridTemplateGap.endsWith("none") && this.gridTemplate !== "button-grid",
11685
- } }, hAsync("slot", { key: 'f53c15eef6edec556ff4200a95675a2feb5574e4' })));
11867
+ } }, hAsync("slot", { key: '1cb11ce3685bf5043dfa3e36e6a0ff3653106b54' })));
11686
11868
  }
11687
11869
  get element() { return getElement(this); }
11688
11870
  static get watchers() { return {
@@ -11712,7 +11894,7 @@ class DuetGrid {
11712
11894
  }; }
11713
11895
  }
11714
11896
 
11715
- const duetGridItemCss = ":host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-bottom:16px !important;min-width:0;max-width:100%;flex:0 0 auto;padding-right:8px;padding-left:8px;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:1rem;font-style:normal;font-weight:400;line-height:1.5;color:rgb(8, 42, 77)}:host(.duet-grid-direction-horizontal:not(.duet-grid-item-row-reverse):first-child){padding-left:0}:host(.duet-grid-direction-horizontal:not(.duet-grid-item-row-reverse):first-of-type){padding-left:0}:host(.duet-grid-direction-horizontal:not(.duet-grid-item-row-reverse):last-child){padding-right:0}:host(.duet-grid-direction-horizontal:not(.duet-grid-item-row-reverse):last-of-type){padding-right:0}:host(.duet-grid-direction-horizontal.duet-grid-item-row-reverse:first-child){padding-right:0}:host(.duet-grid-direction-horizontal.duet-grid-item-row-reverse:first-of-type){padding-right:0}:host(.duet-grid-direction-horizontal.duet-grid-item-row-reverse:last-child){padding-left:0}:host(.duet-grid-direction-horizontal.duet-grid-item-row-reverse:last-of-type){padding-left:0}@media (max-width: 35.9375em){:host(.duet-grid-item-responsive){width:100% !important;min-width:0 !important;max-width:100% !important;padding-right:0;padding-left:0}}@media screen and (max-width: 47.9375em){:host(.duet-grid-item-br-medium){width:100% !important;min-width:0 !important;max-width:100% !important}}@media screen and (max-width: 47.9375em){:host(.duet-grid-item-responsive.duet-grid-item-br-medium){padding-right:0;padding-left:0}}@media screen and (max-width: 64em){:host(.duet-grid-item-br-x-large){width:100% !important;min-width:0 !important;max-width:100% !important}}@media screen and (max-width: 64em){:host(.duet-grid-item-responsive.duet-grid-item-br-x-large){padding-right:0;padding-left:0}}:host(.duet-grid-item-fill){flex:1 1 auto;width:100%}:host(.duet-m-0){padding:0 !important;margin:0 !important}:host(.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:rgb(23, 42, 59)}";
11897
+ const duetGridItemCss = ":host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-bottom:16px !important;min-width:0;max-width:100%;flex:0 0 auto;padding-right:8px;padding-left:8px;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:1rem;font-style:normal;font-weight:400;line-height:1.5;color:rgb(8, 42, 77)}:host(.duet-grid-direction-vertical){padding-right:0;padding-left:0}:host(.duet-grid-direction-horizontal:not(.duet-grid-item-row-reverse):first-child){padding-left:0}:host(.duet-grid-direction-horizontal:not(.duet-grid-item-row-reverse):first-of-type){padding-left:0}:host(.duet-grid-direction-horizontal:not(.duet-grid-item-row-reverse):last-child){padding-right:0}:host(.duet-grid-direction-horizontal:not(.duet-grid-item-row-reverse):last-of-type){padding-right:0}:host(.duet-grid-direction-horizontal.duet-grid-item-row-reverse:first-child){padding-right:0}:host(.duet-grid-direction-horizontal.duet-grid-item-row-reverse:first-of-type){padding-right:0}:host(.duet-grid-direction-horizontal.duet-grid-item-row-reverse:last-child){padding-left:0}:host(.duet-grid-direction-horizontal.duet-grid-item-row-reverse:last-of-type){padding-left:0}@media (max-width: 35.9375em){:host(.duet-grid-item-responsive){width:100% !important;min-width:0 !important;max-width:100% !important;padding-right:0;padding-left:0}}@media screen and (max-width: 47.9375em){:host(.duet-grid-item-br-medium){width:100% !important;min-width:0 !important;max-width:100% !important}}@media screen and (max-width: 47.9375em){:host(.duet-grid-item-responsive.duet-grid-item-br-medium){padding-right:0;padding-left:0}}@media screen and (max-width: 64em){:host(.duet-grid-item-br-x-large){width:100% !important;min-width:0 !important;max-width:100% !important}}@media screen and (max-width: 64em){:host(.duet-grid-item-responsive.duet-grid-item-br-x-large){padding-right:0;padding-left:0}}:host(.duet-grid-item-fill){flex:1 1 auto;width:100%}:host(.duet-m-0){padding:0 !important;margin:0 !important}:host(.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:rgb(23, 42, 59)}";
11716
11898
 
11717
11899
  class DuetGridItem {
11718
11900
  constructor(hostRef) {
@@ -11765,7 +11947,7 @@ class DuetGridItem {
11765
11947
  * Always the last one in the class.
11766
11948
  */
11767
11949
  render() {
11768
- return (hAsync(Host, { key: '4b538b2691f1fe5d57e6d1bbdec0e4278128c0c8', style: {
11950
+ return (hAsync(Host, { key: 'df12b3cc2925272599581a0a6c922364a9ddbc83', style: {
11769
11951
  "min-width": this.minWidth,
11770
11952
  "max-width": this.maxWidth,
11771
11953
  }, class: {
@@ -11782,7 +11964,7 @@ class DuetGridItem {
11782
11964
  "duet-grid-item-br-medium": this.breakpoint === "medium",
11783
11965
  "duet-grid-item-br-large": this.breakpoint === "large",
11784
11966
  "duet-grid-item-br-x-large": this.breakpoint === "x-large",
11785
- } }, hAsync("slot", { key: 'dabba4fd818496d5472f9328f3a400ce0dac9bc0' })));
11967
+ } }, hAsync("slot", { key: 'beb1eff26b3dd81aab53500be3b2f5274c099c9d' })));
11786
11968
  }
11787
11969
  get element() { return getElement(this); }
11788
11970
  static get style() { return duetGridItemCss; }
@@ -12823,7 +13005,7 @@ class DuetHeading {
12823
13005
  render() {
12824
13006
  const TagName = sanitizeString$1(this.level);
12825
13007
  const color = getColorByName(this.color);
12826
- return (hAsync(TagName, { key: '0688ea9a9c1b36b5f8ca555051c1efa338bd1f57', class: {
13008
+ return (hAsync(TagName, { key: 'c921aaf37180daaa075fa9973069ff1ead3050a1', class: {
12827
13009
  "duet-heading": true,
12828
13010
  "duet-heading-border": this.border !== false,
12829
13011
  "duet-heading-border-solid": this.border === "solid",
@@ -12834,7 +13016,7 @@ class DuetHeading {
12834
13016
  [this.visualLevel ? this.visualLevel : this.level]: true,
12835
13017
  "duet-theme-turva": this.theme === "turva",
12836
13018
  "fixed-size": this.fixedSize,
12837
- }, "aria-label": this.accessibleLabel, style: { color }, part: "duet-heading" }, this.preHeading && hAsync("span", { key: 'ca9674066e83408743dda180faa73befac1f6ee2', class: "pre-post-heading" }, this.preHeading, " "), hAsync("slot", { key: 'e2903a1c33bc8e3681523f2ab59ce83ad258bc87' }), this.postHeading && hAsync("span", { key: '623bec656c67630d780b7922c922bf62da571dec', class: "pre-post-heading" }, " ", this.postHeading)));
13019
+ }, "aria-label": this.accessibleLabel, style: { color }, part: "duet-heading" }, this.preHeading && hAsync("span", { key: 'a39345b73db50edae14806161481c4f5ec2aea71', class: "pre-post-heading" }, this.preHeading, " "), hAsync("slot", { key: 'f36300eafdc9fea4a9b8fde902cd1872bb586b65' }), this.postHeading && hAsync("span", { key: 'e8f5b8d19838e6c3d8e049975dcc5740bfd00363', class: "pre-post-heading" }, " ", this.postHeading)));
12838
13020
  }
12839
13021
  get element() { return getElement(this); }
12840
13022
  static get style() { return duetHeadingCss; }
@@ -12861,7 +13043,7 @@ class DuetHeading {
12861
13043
  }; }
12862
13044
  }
12863
13045
 
12864
- const duetHeroCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;display:block;width:100%}.duet-hero{position:relative;display:block;width:100%;padding:48px 28px;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:1rem;font-style:normal;font-weight:400;line-height:1.5;text-transform:none;text-decoration:none;text-shadow:none;background:rgb(8, 42, 77)}.duet-hero.duet-p-0{padding:0 !important}.duet-hero.duet-m-0{margin:0 !important}.duet-hero.duet-hero-text-center{text-align:center !important}.duet-hero.duet-hero-light{padding-bottom:0 !important}@media (min-width: 62em){.duet-hero.duet-hero-light{padding-bottom:28px !important}}.duet-hero.duet-hero-with-image{padding-bottom:20px !important;margin-bottom:-36px}@media (min-width: 48em){.duet-hero.duet-hero-with-image{padding-bottom:28px !important}}@media (min-width: 62em){.duet-hero.duet-hero-with-image{padding-bottom:36px !important;margin-bottom:-20px}}.duet-hero.duet-hero-light,.duet-hero.duet-hero-with-image{color:rgb(8, 42, 77);background-color:rgb(255, 255, 255);background-image:linear-gradient(rgb(240, 247, 250), #f8fbfd)}.duet-hero.duet-hero-light::before,.duet-hero.duet-hero-with-image::before{position:absolute;top:100%;left:0;z-index:-1;width:100%;height:400px;content:\"\";background-image:linear-gradient(#f8fbfd, rgb(255, 255, 255))}.duet-hero.duet-hero-gray{color:rgb(8, 42, 77);background:rgb(245, 248, 250)}@media (min-width: 62em){.duet-hero.duet-hero-gray .duet-hero-text{display:inline-block;vertical-align:top}.duet-hero.duet-hero-gray .duet-hero-icon+.duet-hero-text{margin-left:28px}}@media (min-width: 62em){.duet-hero.duet-hero-gray-with-actions{padding-bottom:65.4545454545px}}@media (min-width: 62em){.duet-hero.duet-hero-gray-with-back{padding-top:72px}}.duet-hero.duet-hero-campaign,.duet-hero.duet-hero-section{padding:0 0 48px;margin:0;background:none}@media (min-width: 48em){.duet-hero.duet-hero-campaign,.duet-hero.duet-hero-section{min-height:490px}}@media (min-width: 62em){.duet-hero.duet-hero-campaign,.duet-hero.duet-hero-section{min-height:540px}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign,.duet-hero.duet-hero-section{min-height:620px}}.duet-hero.duet-hero-campaign .background-area,.duet-hero.duet-hero-section .background-area{height:1px;margin-bottom:-1px}.duet-hero.duet-hero-campaign .background-container,.duet-hero.duet-hero-section .background-container{position:absolute;right:0;left:0;display:grid;align-items:flex-start;justify-content:center;overflow:hidden}.duet-hero.duet-hero-campaign .background,.duet-hero.duet-hero-section .background{display:flex;align-items:flex-start;justify-content:center;height:220px;margin:0 auto}.duet-hero.duet-hero-campaign .background img,.duet-hero.duet-hero-section .background img{height:100%}.duet-hero.duet-hero-campaign .background img.cover,.duet-hero.duet-hero-section .background img.cover{object-fit:cover}.duet-hero.duet-hero-campaign .background img.center,.duet-hero.duet-hero-section .background img.center{object-position:center}@media (min-width: 1440px){.duet-hero.duet-hero-campaign .background img,.duet-hero.duet-hero-section .background img{width:100%;height:auto}}@media (min-width: 36em){.duet-hero.duet-hero-campaign .background,.duet-hero.duet-hero-section .background{height:300px}}@media (min-width: 48em){.duet-hero.duet-hero-campaign .background,.duet-hero.duet-hero-section .background{height:450px}}@media (min-width: 62em){.duet-hero.duet-hero-campaign .background,.duet-hero.duet-hero-section .background{height:500px}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign .background,.duet-hero.duet-hero-section .background{height:580px}}@media (min-width: 1600px){.duet-hero.duet-hero-campaign .background,.duet-hero.duet-hero-section .background{width:1600px;overflow:hidden}}.duet-hero.duet-hero-campaign .background .brand-container,.duet-hero.duet-hero-section .background .brand-container{position:relative;width:100%;height:100%;min-height:220px;overflow:hidden}.duet-hero.duet-hero-campaign .background .brand,.duet-hero.duet-hero-section .background .brand{position:absolute;width:100%;height:220px;background-repeat:no-repeat;background-position:center center;background-size:cover}@media (min-width: 36em){.duet-hero.duet-hero-campaign .background .brand,.duet-hero.duet-hero-section .background .brand{left:-200px}}@media (min-width: 62em){.duet-hero.duet-hero-campaign .background .brand,.duet-hero.duet-hero-section .background .brand{left:auto;height:1100px;background-position:140% -200%}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign .background .brand,.duet-hero.duet-hero-section .background .brand{background-position:right -200%}}.duet-hero.duet-hero-campaign .brand-shape,.duet-hero.duet-hero-section .brand-shape{position:absolute;top:143px;right:0;left:-30px;width:340px;height:340px;margin-right:auto;margin-left:auto;background:rgb(255, 255, 255);border-radius:20%;mix-blend-mode:normal;transform:rotate(8deg)}@media (min-width: 22.5em){.duet-hero.duet-hero-campaign .brand-shape,.duet-hero.duet-hero-section .brand-shape{top:160px;width:450px;height:450px}}@media (min-width: 36em){.duet-hero.duet-hero-campaign .brand-shape,.duet-hero.duet-hero-section .brand-shape{top:215px;left:-50px;width:550px;height:550px}}@media (min-width: 48em){.duet-hero.duet-hero-campaign .brand-shape,.duet-hero.duet-hero-section .brand-shape{top:250px;left:0;width:712.18px;height:712.18px}}@media (min-width: 62em){.duet-hero.duet-hero-campaign .brand-shape,.duet-hero.duet-hero-section .brand-shape{top:240px}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign .brand-shape,.duet-hero.duet-hero-section .brand-shape{top:280px}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign .brand-shape,.duet-hero.duet-hero-section .brand-shape{top:310px}}.duet-hero.duet-hero-campaign ::slotted(.duet-heading),.duet-hero.duet-hero-section ::slotted(.duet-heading){font-size:inherit !important;color:inherit !important}.duet-hero.duet-hero-campaign .duet-hero-text,.duet-hero.duet-hero-section .duet-hero-text{width:100%}.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading),.duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading){font-size:36px}@media (min-width: 36em){.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading),.duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading){font-size:48px}}@media (min-width: 62em){.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading),.duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading){font-size:64px}}.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section .duet-hero-text duet-paragraph{margin:0 auto}@media (min-width: 22.5em){.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section .duet-hero-text duet-paragraph{width:90%}}@media (min-width: 25em){.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section .duet-hero-text duet-paragraph{width:80%}}@media (min-width: 30em){.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section .duet-hero-text duet-paragraph{width:70%}}@media (min-width: 36em){.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section .duet-hero-text duet-paragraph{width:70%}}@media (min-width: 62em){.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section .duet-hero-text duet-paragraph{width:52%}}.duet-hero.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-hero-section .duet-hero-heading{display:flex;align-items:center;height:6rem;padding:0 1rem;margin:1rem 0 4.5rem}@media (min-width: 22.5em){.duet-hero.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-hero-section .duet-hero-heading{margin:2rem 0 4rem}}@media (min-width: 36em){.duet-hero.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-hero-section .duet-hero-heading{margin:3rem 0 8rem}}@media (min-width: 48em){.duet-hero.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-hero-section .duet-hero-heading{margin:4rem 0 10rem}}@media (min-width: 62em){.duet-hero.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-hero-section .duet-hero-heading{margin:5rem 0 10rem}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-hero-section .duet-hero-heading{margin:6rem 0 10rem}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-hero-section .duet-hero-heading{margin:8rem 0 11rem}}.duet-hero.duet-hero-campaign .duet-hero-wrapper.fluid,.duet-hero.duet-hero-campaign .duet-hero-wrapper.narrow,.duet-hero.duet-hero-section .duet-hero-wrapper.fluid,.duet-hero.duet-hero-section .duet-hero-wrapper.narrow{padding:0 16px}@media (min-width: 48em){.duet-hero.duet-hero-section{min-height:490px}}@media (min-width: 62em){.duet-hero.duet-hero-section{min-height:auto}}@media (min-width: 76.25em){.duet-hero.duet-hero-section{min-height:560px}}@media (min-width: 62em){.duet-hero.duet-hero-section .background img{width:100%;height:auto}}@media (min-width: 62em){.duet-hero.duet-hero-section .background{width:1400px;height:436px;overflow:hidden}}@media (min-width: 76.25em){.duet-hero.duet-hero-section .background{width:1536px;height:516px}}@media (min-width: 106.25em){.duet-hero.duet-hero-section .background{width:1536px}}.duet-hero.duet-hero-product{position:relative;padding:0 0 48px;margin:0;background:rgb(255, 255, 255)}@media (max-width: 35.9375em){.duet-hero.duet-hero-product{padding-top:240px}}@media (max-width: 22.5em){.duet-hero.duet-hero-product{padding-top:200px}}@media (min-width: 36em){.duet-hero.duet-hero-product{padding-top:260px}}@media (min-width: 48em){.duet-hero.duet-hero-product{padding-top:250px}}@media (min-width: 48em){.duet-hero.duet-hero-product{min-height:400px;padding:72px 0}}@media (min-width: 62em){.duet-hero.duet-hero-product{min-height:500px;padding:96px 0}}@media (min-width: 76.25em){.duet-hero.duet-hero-product{min-height:575px;padding:120px 0}}.duet-hero.duet-hero-product .background-area{position:absolute;top:0;width:100%;height:600px;overflow:hidden;pointer-events:none}.duet-hero.duet-hero-product .background-area *{pointer-events:auto}.duet-hero.duet-hero-product .background-container{position:absolute;top:-150px;width:100%;height:600px;overflow:hidden;pointer-events:none}.duet-hero.duet-hero-product .background-container *{pointer-events:auto}@media (min-width: 62em){.duet-hero.duet-hero-product .background-container{top:-48px}}.duet-hero.duet-hero-product .background{position:absolute;top:145px;width:100%;overflow:visible}.duet-hero.duet-hero-product .background .background-mask{display:none}@media (min-width: 48em){.duet-hero.duet-hero-product .background{top:130px}}@media (min-width: 62em){.duet-hero.duet-hero-product .background{top:35px}}@media (min-width: 62em){.duet-hero.duet-hero-product .background{position:absolute;right:0;left:0;max-width:1440px;height:100%;margin:0 auto}}.duet-hero.duet-hero-product .background .brand-shaped-image{position:absolute;top:-160px;right:-15%;z-index:0;width:375px;height:375px;overflow:hidden;border-radius:20%;transform:rotate(7deg)}@media (max-width: 35.9375em){.duet-hero.duet-hero-product .background .brand-shaped-image{top:-160px;right:-60px;width:360px;height:360px}}@media (max-width: 22.5em){.duet-hero.duet-hero-product .background .brand-shaped-image{top:-120px;right:-14px;width:290px;height:290px}}@media (min-width: 36em){.duet-hero.duet-hero-product .background .brand-shaped-image{top:-175px;right:-20px;width:400px;height:400px}}@media (min-width: 48em){.duet-hero.duet-hero-product .background .brand-shaped-image{top:-145px;right:-150px;width:414px;height:414px}}@media (min-width: 860px){.duet-hero.duet-hero-product .background .brand-shaped-image{right:-105px}}@media (min-width: 960px){.duet-hero.duet-hero-product .background .brand-shaped-image{right:-45px}}@media (min-width: 62em){.duet-hero.duet-hero-product .background .brand-shaped-image{top:-190px;right:-150px;width:552px;height:552px}}@media (min-width: 1100px){.duet-hero.duet-hero-product .background .brand-shaped-image{right:-35px}}@media (min-width: 76.25em){.duet-hero.duet-hero-product .background .brand-shaped-image{top:-300px;right:-128px;width:736px;height:736px}.duet-hero.duet-hero-product .background .brand-shaped-image.narrow{right:-160px}}@media (min-width: 1300px){.duet-hero.duet-hero-product .background .brand-shaped-image.narrow{right:-128px}}.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-wrapper{position:relative;width:100%;height:100%}.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg{position:absolute;bottom:0;left:50%;z-index:1;width:600px;height:256px;background-repeat:no-repeat;background-position:40px;background-size:100%;transform:rotate(-7deg) translate(-50%, 0)}@media (max-width: 35.9375em){.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg{width:520px;height:240px}}@media (max-width: 22.5em){.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg{width:440px;height:200px}}@media (min-width: 36em){.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg{width:600px;height:260px}}@media (min-width: 48em){.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg{width:500px;height:292px}}@media (min-width: 62em){.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg{width:720px;height:420px}}@media (min-width: 76.25em){.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg{width:950px;height:540px}}.duet-hero.duet-hero-product .background .brand-shape{position:absolute;background:rgb(228, 241, 247);border-radius:25%;mix-blend-mode:normal;transform:rotate(7deg)}@media (max-width: 35.9375em){.duet-hero.duet-hero-product .background .brand-shape{top:20px;right:210px;width:200px;height:200px}}@media (max-width: 22.5em){.duet-hero.duet-hero-product .background .brand-shape{top:24px;right:199px;width:162px;height:162px}}@media (min-width: 36em){.duet-hero.duet-hero-product .background .brand-shape{top:25px;right:290px;width:220px;height:220px}}@media (min-width: 48em){.duet-hero.duet-hero-product .background .brand-shape{top:90px;right:145px;width:225px;height:225px}}@media (min-width: 860px){.duet-hero.duet-hero-product .background .brand-shape{right:195px}}@media (min-width: 960px){.duet-hero.duet-hero-product .background .brand-shape{right:245px}}@media (min-width: 62em){.duet-hero.duet-hero-product .background .brand-shape{top:115px;right:228px;width:300px;height:300px}}@media (min-width: 1100px){.duet-hero.duet-hero-product .background .brand-shape{right:343px}}@media (min-width: 76.25em){.duet-hero.duet-hero-product .background .brand-shape{right:394px;width:400px;height:400px}}.duet-hero.duet-hero-product .background .brand-shaped-icon{position:absolute;display:flex;align-items:center;justify-content:center;background:rgba(0, 119, 179, 0.85);border-radius:25%;mix-blend-mode:normal;transform:rotate(7deg)}@media (max-width: 35.9375em){.duet-hero.duet-hero-product .background .brand-shaped-icon{top:165px;right:25px;width:69px;height:69px}}@media (max-width: 22.5em){.duet-hero.duet-hero-product .background .brand-shaped-icon{top:138px;right:50px;width:57px;height:57px}}@media (min-width: 36em){.duet-hero.duet-hero-product .background .brand-shaped-icon{top:175px;right:125px;width:78px;height:78px}}@media (min-width: 48em){.duet-hero.duet-hero-product .background .brand-shaped-icon{top:220px;right:60px}}@media (min-width: 860px){.duet-hero.duet-hero-product .background .brand-shaped-icon{right:110px}}@media (min-width: 960px){.duet-hero.duet-hero-product .background .brand-shaped-icon{right:160px}}@media (min-width: 62em){.duet-hero.duet-hero-product .background .brand-shaped-icon{top:296px;right:120px;width:105px;height:105px}}@media (min-width: 1100px){.duet-hero.duet-hero-product .background .brand-shaped-icon{right:235px}}@media (min-width: 76.25em){.duet-hero.duet-hero-product .background .brand-shaped-icon{top:345px;right:245px;width:140px;height:140px}}.duet-hero.duet-hero-product .background .brand-shaped-icon duet-icon{transform:rotate(-7deg)}@media (max-width: 35.9375em){.duet-hero.duet-hero-product .background .brand-shaped-icon duet-icon{width:100%;height:100%}}@media (min-width: 36em){.duet-hero.duet-hero-product .background .brand-shaped-icon duet-icon{width:72px;height:72px}}@media (min-width: 48em){.duet-hero.duet-hero-product .background .brand-shaped-icon duet-icon{width:72px;height:72px}}@media (min-width: 62em){.duet-hero.duet-hero-product .background .brand-shaped-icon duet-icon{width:86px;height:86px}}@media (min-width: 76.25em){.duet-hero.duet-hero-product .background .brand-shaped-icon duet-icon{width:104px;height:104px}}.duet-hero.duet-hero-product .duet-hero-wrapper{max-width:100%;margin:0 auto}.duet-hero.duet-hero-product .duet-hero-wrapper .duet-hero-text{margin-top:0}@media (min-width: 62em){.duet-hero.duet-hero-product .duet-hero-wrapper .duet-hero-heading{margin-top:0}}.duet-hero.duet-hero-product .duet-hero-wrapper.fluid,.duet-hero.duet-hero-product .duet-hero-wrapper.narrow{padding:0 16px}@media (min-width: 36em){.duet-hero.duet-hero-product .duet-hero-wrapper.fluid{padding:0 28px}}@media (min-width: 62em){.duet-hero.duet-hero-product .duet-hero-wrapper.fluid{padding:0 56px}}@media (min-width: 76.25em){.duet-hero.duet-hero-product .duet-hero-wrapper.fluid{max-width:1110px;padding:0}}@media (min-width: 48em){.duet-hero.duet-hero-product .duet-hero-wrapper.fluid .duet-hero-text{width:60%}}@media (min-width: 62em){.duet-hero.duet-hero-product .duet-hero-wrapper.fluid .duet-hero-text{width:50%}}@media (min-width: 76.25em){.duet-hero.duet-hero-product .duet-hero-wrapper.fluid .duet-hero-text{width:47%}}.duet-hero.duet-hero-product .duet-hero-wrapper.narrow{max-width:888px}@media (min-width: 36em){.duet-hero.duet-hero-product .duet-hero-wrapper.narrow{padding:0 48px}}@media (min-width: 48em){.duet-hero.duet-hero-product .duet-hero-wrapper.narrow{padding:0 72px}}@media (min-width: 48em){.duet-hero.duet-hero-product .duet-hero-wrapper.narrow .duet-hero-text{width:60%}}@media (min-width: 62em){.duet-hero.duet-hero-product .duet-hero-wrapper.narrow .duet-hero-text{width:47%}}.duet-hero.duet-hero-product.duet-theme-turva{background:rgb(255, 255, 255)}.duet-hero.duet-hero-product.duet-theme-turva .background .background-mask{position:absolute;top:0;left:0;display:block;width:721px;height:256.85px;pointer-events:none;background-image:url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIxIiBoZWlnaHQ9IjI1NyIgdmlld0JveD0iMCAwIDcyMSAyNTciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yODIwXzY5OTkxKSI+CjxwYXRoIGQ9Ik04MC4xNzA1IDIzLjE4MTVDOTEuOTY5OSAxOC44NjU5IDEwMi44NyAxMS42NTU5IDExMi45MDkgMS41NjQ0OEMxMjMuNzcgLTguMzA1MjcgMTM0LjM4MiAtMTguMjAxMSAxNDQuODI2IC0yOC4xODgyQzE1NS4yNDMgLTM4LjE2MjIgMTY1LjkwOCAtNDguMDg0MSAxNzYuNzQzIC01Ny45Mjc4QzE3OC44MTYgLTU5LjA0OSAxODAuNDk4IC02MC4yODc3IDE4MS43ODggLTYxLjY1NjdDMTgzLjA2NiAtNjMuMDEyNiAxODUuNDY1IC02Mi4yODI1IDE4OS4wMTIgLTU5LjQ3OTNDMTg0LjczNSAtNTEuMTM1IDE4MC43NTkgLTQyLjk2MDIgMTc3LjAxNyAtMzQuOTAyN0MxNzMuMjg4IC0yNi44NDUyIDE2Ny42ODEgLTE5LjEyNjggMTYwLjIxMSAtMTEuNzYwM0MxNTIuNzUzIC00LjM4MDgzIDE0NC45NTYgMy4zMTE1MiAxMzYuODQ3IDExLjM2OUMxMjguNzI0IDE5LjQyNjUgMTIwLjk2NiAyNy4xNDUgMTEzLjQ4MyAzNC40OTg0Qzk3LjQ5OCA0OS44MTggNzkuNjYyIDU2LjAyNDEgNjAuMDAwOCA1My4xNjg4QzQwLjI4NzQgNTAuMzEzNSAyNS41NDE0IDM5LjA3NDcgMTUuNjk3NyAxOS40Nzg2QzMuOTI0NDUgLTIuMzcyOTkgLTEuMjI1NTUgLTI0LjQ3MjQgMC4yNDc3NDMgLTQ2Ljc4MDNDMS4yNTE2NyAtNjcuNDg0NiAzLjQwMjkzIC04Ny43OTc4IDYuODA1ODQgLTEwNy43NzJDMTAuMTk1NyAtMTI3LjczMyAxNS43MTA4IC0xNDcuNDg2IDIzLjMzOCAtMTY3LjA0M0MyNi4zMTA3IC0xNzQuMDMxIDI5LjAwOTUgLTE4MC44NSAzMS40NzM3IC0xODcuNTY0QzMzLjkxMTggLTE5NC4yMjcgMzYuNTMyNCAtMjAwLjY2OCAzOS4yNTc0IC0yMDYuODQ4QzQxLjgxMjggLTIwOS41NzIgNDMuNDY4NiAtMjEyLjEyOCA0NC4xODU3IC0yMTQuNTRDNTMuMDI1NSAtMjI5LjM3NyA2Mi44MyAtMjM3Ljk5NSA3My42Mzg1IC0yNDAuNDMzQzg0LjM5NDggLTI0Mi44NzEgOTguMTM2OSAtMjM5LjgyMSAxMTQuODEyIC0yMzEuMzJDMTI3Ljk0MiAtMjI1LjYwOSAxMzMuMzkyIC0yMTYuMTA1IDEzMS4xNDkgLTIwMi43OTNDMTMwLjE3MSAtMTkwLjgzNyAxMjcuOTk0IC0xNzkuMjU5IDEyNC42MTcgLTE2OC4wMkMxMjAuMDQxIC0xNTIuNzc5IDExNS40MzggLTEzNy41NTEgMTEwLjg0OSAtMTIyLjMyMkMxMDYuMjczIC0xMDcuMDgxIDEwMS4yNzkgLTkxLjk2OTkgOTUuODk0MyAtNzcuMDAyM0M4NS41OTQzIC00OC42MDU3IDc5LjQyNzQgLTE5LjQyNjcgNzcuNDA2NSAxMC41NjA2Qzc3LjcxOTQgMTIuNDEyIDc4LjA0NTMgMTQuMjYzNSA3OC4zNTgzIDE2LjA4ODhDNzguNjcxMiAxNy45NDAyIDc5LjI3MDkgMjAuMyA4MC4xNzA1IDIzLjE5NDRNMTEwLjkxNCAtMjk2Ljc1N0MxMDkuNTQ1IC0yOTguMDM1IDEwNy4zMTYgLTI5OS4zNTIgMTA0LjIzOSAtMzAwLjczNEMxMDEuMTYyIC0zMDIuMDkgOTguMjQxMiAtMzA0LjA1OSA5NS41NDIzIC0zMDYuNjI3QzkwLjA3OTQgLTMxMS43NzcgODYuOTc2MyAtMzE4LjE2NiA4Ni4yMzMyIC0zMjUuODE5Qzg1LjQ2NCAtMzMzLjQ3MiA4Ny4zODA1IC0zNDAuNTUyIDkxLjk2OTkgLTM0Ny4wNThDOTMuMjIxNSAtMzQ4LjQxNCA5NC4xNDcyIC0zNDkuMjM1IDk0LjY4MTggLTM0OS41MjJDOTUuMTkwMyAtMzQ5Ljc5NiA5Ni4xMDI5IC0zNTAuNjA0IDk3LjM5MzcgLTM1MS45OTlDMTA5LjY3NSAtMzU3LjkwNiAxMjIuNDE0IC0zNTYuNjkzIDEzNS42MzQgLTM0OC4zMzZDMTQ2Ljk1MSAtMzQyLjMyNSAxNTIuMDg4IC0zMzMuMzE2IDE1MS4xMzYgLTMyMS4zNkwxNDguMjI5IC0zMTEuNzM4QzE0NC42NjkgLTI5Ny4wNyAxMzUuNTY5IC0yOTEuNTAzIDEyMC45MTQgLTI5NS4wNjJDMTE5LjA1IC0yOTQuNzIzIDExNS43MzggLTI5NS4yOTcgMTEwLjkxNCAtMjk2Ljc0NCIgZmlsbD0iI0Y1RjVGNyIvPgo8cGF0aCBkPSJNMjQyLjc2NyAyMTUuNTE4QzI0NS4wODggMjEzLjU4OCAyNDcuMjc4IDIxMi4xMDIgMjQ5LjM3NyAyMTAuOTY4QzI1MS40NSAyMDkuODU5IDI1My41MzYgMjA4Ljc1MSAyNTUuNjIyIDIwNy42MDRDMjc0LjIyNyAxOTIuMjg0IDI5MC41NzcgMTc3LjE2IDMwNC43MjMgMTYyLjE5M0MzMTUuNjg4IDE0OC45NDYgMzI2LjYxNCAxMzUuODU2IDMzNy40ODggMTIyLjk4N0MzNDguMzYxIDExMC4xMTkgMzU4Ljg4MyA5Ni45Mzc1IDM2OS4wNjYgODMuNDE3MUMzNzYuNDQ1IDczLjQzMDEgMzg0LjU4MSA2My44NjAyIDM5My40NDcgNTQuNzQ2NkM0MDIuMyA0NS42NDYxIDQxMC44MjYgMzYuMjMyNyA0MTkuMDAxIDI2LjQ4MDNDNDIxLjgwNCAyMi45NzMxIDQyNC4yMjkgMjAuMDAwNCA0MjYuMjg5IDE3LjU0OTNDNDI4LjMyMyAxNS4xMjQzIDQzMC41MDEgMTIuOTMzOCA0MzIuODM1IDExLjAxNzNDNDM0LjkwOCA5LjkwOTA2IDQzNi43NDYgOS41ODMwMSA0MzguMzYzIDEwLjA2NTRDNDM5Ljk1MyAxMC41NDc5IDQ0MS43OTIgMTAuMjQ4IDQ0My45MDQgOS4xMTM3MUM0NDMuMTg3IDExLjUxMjcgNDQyLjgyMiAxMy4zOTAzIDQ0Mi44ODcgMTQuNjk0QzQ0Mi45MjYgMTYuMDIzOSA0NDIuMjg3IDE3LjM2NjggNDQxLjAwOSAxOC43MjI3QzQyNC42NDcgNDYuOTYzIDQwNy42ODQgNzIuODE3MyAzOTAuMTIyIDk2LjMxMTdDMzc2LjY0MSAxMTQuOTU2IDM2My4xNDcgMTMyLjkwOSAzNDkuNjM5IDE1MC4yMjRDMzM2LjEwNiAxNjcuNTI1IDMyMi4yMiAxODUuMzYxIDMwNy45NDQgMjAzLjc1OEMzMDEuNTI5IDIxMC41MzcgMjk1LjM4OCAyMTcuMiAyODkuNDk1IDIyMy43MTlDMjgzLjU4OSAyMzAuMjI1IDI3Ny40MzUgMjM2LjkgMjcxLjAyIDI0My42NjdDMjU4LjkyMSAyNTQuODggMjQ0LjQ4OCAyNTkuMjM0IDIyNy43MzQgMjU2Ljc5NkMxOTYuODYgMjUxLjg4MSAxNzYuMDI1IDIzNi44NzQgMTY1LjIxNyAyMTEuNzg5QzE1NC42OTUgMTg4LjU2OCAxNDkuNTMyIDE2Ni41MDggMTQ5LjcwMiAxNDUuNjA4QzE0Ny45NDIgMTEzLjY3OCAxNDguMzA3IDgxLjk0MzggMTUwLjgxIDUwLjQxOEMxNTMuMyAxOC44NzkyIDE1OC4zMiAtMTIuMzIwNyAxNjUuODY5IC00My4yMDc3QzE4MC4xNzIgLTEwNS4yMDMgMTk4LjU2OCAtMTY2LjQwMyAyMjEuMTExIC0yMjYuODA4QzIzMi4wODkgLTI1Ny41MjYgMjQ0LjQyMyAtMjg3LjYxOCAyNTguMSAtMzE3LjA5NkMyNzEuNzc2IC0zNDYuNTc1IDI4Ni4zNzkgLTM3NS41MDcgMzAxLjk3MiAtNDA0LjAwOEMzMTIuOTUgLTQyNS45OSAzMjQuNjMyIC00NDcuMzQ2IDMzNi45NzkgLTQ2OC4wNjNDMzQ5LjMxMyAtNDg4Ljc1NCAzNjIuNDk1IC01MDkuMjI0IDM3Ni40MzIgLTUyOS40NTlDNDAzLjg2NCAtNTY4LjI5OSA0MzQuMTkgLTYwMy42NzEgNDY3LjM5OCAtNjM1LjU3NUM0NzUuNjM4IC02NDIuNjgxIDQ4My45OTUgLTY0OS4zMTcgNDkyLjQwNSAtNjU1LjUxQzUwMC44MjggLTY2MS42NzcgNTEwLjM5NyAtNjY2LjY1OCA1MjEuMTU0IC02NzAuMzk5QzU0NS4yNzQgLTY3Ny45NjEgNTY3LjcxMiAtNjc2Ljg3OSA1ODguMzkxIC02NjcuMTY2QzYwNC43MjcgLTY2MC40NzggNjEzLjY3MSAtNjQ5LjUxMyA2MTUuMjEgLTYzNC4yMTlDNjE3LjU5NiAtNjI0Ljc1NCA2MTguMTk1IC02MTMuNjcxIDYxNi45ODMgLTYwMC45NTlDNjEwLjMyIC01NTguNDgxIDU5Ny44NTYgLTUxNS41MzQgNTc5LjU1MSAtNDcyLjE5NkM1NjUuNDMxIC00MzkuODIzIDU0OS4wODEgLTQwOC43NTMgNTMwLjUyOCAtMzc5LjAwMUM1MTEuOTM2IC0zNDkuMjYxIDQ5Mi42MTQgLTMxOS45NTIgNDcyLjYgLTI5MS4wOTlDNDY1LjQ1NiAtMjgxLjkyIDQ1Ny45NDYgLTI3MS41MDMgNDUwLjEyMyAtMjU5LjkxMkM0MzMuNTc4IC0yMzYuOTc4IDQxNS42MzcgLTIxNS4xMjYgMzk2LjI4OSAtMTk0LjM1N0MzNzYuOTAyIC0xNzMuNTYxIDM1NS44NDUgLTE1NC4zOTYgMzMzLjA2OCAtMTM2LjgyQzMyMC4zODIgLTEyNi42OSAzMTIuNTMzIC0xMTUuMDg2IDMwOS40ODIgLTEwMi4wNDhDMzA0LjE4OSAtODQuNDQ2OCAyOTguOTc0IC02Ny4wNDExIDI5My43OTggLTQ5Ljg0NEMyODguNjIxIC0zMi42NDY5IDI4My43NzEgLTE1LjExMDggMjc5LjI4NiAyLjcxMjFDMjc1LjI3MSAxOC45NzA1IDI3MS4zMDcgMzQuOTgxIDI2Ny40MjIgNTAuODM1MkMyNjMuNTIzIDY2LjY2MzMgMjU5Ljk2NCA4Mi44NDM0IDI1Ni43NyA5OS4zMzY1QzI1My41NDkgMTE1LjgwMyAyNTAuNjgxIDEzMi42MjIgMjQ4LjE1MiAxNDkuNzQxQzI0NS42MDkgMTY2Ljg2IDI0My4xMzIgMTgzLjc5NyAyNDAuNzQ2IDIwMC40OThDMjQxLjA0NiAyMDIuMzM3IDI0MS4zMDcgMjA0LjM5NiAyNDEuNTE1IDIwNi42MTNDMjQxLjY5OCAyMDguODY4IDI0Mi4xMjggMjExLjg0MSAyNDIuNzggMjE1LjUxOE01NjQuMzIyIC02MjIuMDgxQzU2MS43MjggLTYxOS4zNDMgNTU4LjExNiAtNjE2LjA4MyA1NTMuNDg4IC02MTIuMjM3QzU0Mi4yMzYgLTU5OC4xNjkgNTMwLjk1OCAtNTgzLjkwNiA1MTkuNjI4IC01NjkuNDU5QzUwOC4yNTkgLTU1NC45ODcgNDk4LjA1IC01MzkuOTQxIDQ4OS4wMTUgLTUyNC4zNzRDNDU5LjIzNiAtNDc0Ljg2OSA0MzIuNzY5IC00MjMuOTU2IDQwOS42MDEgLTM3MS42MDhDMzg2LjQxOSAtMzE5LjI0OCAzNjUuMTkzIC0yNjUuNDQgMzQ1LjkzNiAtMjEwLjE3MkMzNDUuNzAyIC0yMDkuMzc3IDM0NS43MDIgLTIwOC43MTIgMzQ2LjAxNSAtMjA4LjE5QzM0Ni4yNjIgLTIwNy42NTYgMzQ2LjE4NCAtMjA2LjU4NyAzNDUuNzE1IC0yMDUuMDA5QzM0OS4zNzggLTIwNS42MjIgMzUxLjM2IC0yMDYuMzM5IDM1MS42MDggLTIwNy4xNDdDMzU1LjQ2NyAtMjExLjIxNSAzNTkuNTA5IC0yMTUuMjMxIDM2My43NDYgLTIxOS4xOTRDMzY3Ljk5NyAtMjIzLjE0NSAzNzEuNzY1IC0yMjcuNjgyIDM3NS4wNzYgLTIzMi44MTlDNDAyLjg4NiAtMjY3LjE2MSA0MjguNzE0IC0zMDIuMTQyIDQ1Mi41MzUgLTMzNy43MzZDNDc2LjM2OCAtMzczLjMwMyA0OTguNTMzIC00MTAuNjk2IDUxOS4wNjggLTQ0OS44ODhDNTQzLjg1MyAtNDk3LjM3MiA1NTkuNTc3IC01NDYuNzM0IDU2Ni4yNTIgLTU5Ny45MzRDNTY2LjY0MyAtNjAyLjE4NSA1NjYuOTE3IC02MDYuMDE4IDU2Ny4xIC02MDkuNDZDNTY3LjI0MyAtNjEyLjkwMiA1NjYuMzE3IC02MTcuMSA1NjQuMzM2IC02MjIuMDgxIiBmaWxsPSIjRjVGNUY3Ii8+CjxwYXRoIGQ9Ik02OTYuNTE1IDE4OS4wNjRDNzA0LjYzOCAxODQuMzk2IDcxMi42ODIgMTc5LjYxMSA3MjAuNjg4IDE3NC43MzVWMTM0LjA1N0M2OTcuODE5IDE0OC41MDMgNjczLjgwMyAxNTkuNjM3IDY0OC42MDEgMTY3LjQyMUM2MjIuMDgyIDE3NS42MzUgNTk0LjU1OCAxODAuNjY3IDU2Ni4wMTggMTgyLjU1OEM1NTAuOTIgMTgzLjI2MiA1NDEuMjk4IDE4MS44OTMgNTM3LjEgMTc4LjQzOEM1MzIuODc2IDE3NS4wMDkgNTI5LjA5NSAxNjUuNzUyIDUyNS43NTcgMTUwLjc0NUw1MjMuOTU4IDEzMC41NDlDNTIzLjMzMiAxMTguMTI0IDUyNC43NjYgMTA2Ljc1NSA1MjguMzM5IDk2LjQyODlDNTMxLjg1OSA4Ni4xNTUgNTM2LjEyMiA3NS42MjAzIDU0MS4xMTYgNjQuODc3QzU0NS42MTQgNjQuNDg1OSA1NDkuNTY0IDY0LjM2ODUgNTUzLjAzMiA2NC41MzhDNTU2LjQ3NSA2NC42OTQ1IDU2MC40MzggNjQuNTc3MSA1NjQuOTQ5IDY0LjE3MjlDNTg1Ljg3NSA2NC4zNjg1IDYwNy42MzYgNjEuNzQ3OSA2MzAuMjY5IDU2LjI4NDlDNjUyLjA4MiA1MC42MjY1IDY3MC40IDQxLjI3ODIgNjg1LjI3NyAyOC4yNTMzQzY5NC45MzggMTkuNzc4NiA3MDQuMDI1IDEwLjM3ODMgNzEyLjU2NSAwLjA5MTMwODZINjM5LjUyNkM2MjAuMjU2IDE2Ljk4ODUgNTk2Ljk0NCAyNy40ODQxIDU2OS41MzkgMzEuNDYwN0M1NjcuNjYxIDMxLjc3MzYgNTY2LjM1NyAzMS44MTI3IDU2NS41NzUgMzEuNTY1QzU2NC43NTQgMzEuMzMwMyA1NjMuODI4IDMxLjUxMjggNTYyLjgxMSAzMi4wNDc0QzU2MS45OSAzMS44MTI3IDU2MS42NTEgMzEuNDk5OCA1NjEuNzgxIDMxLjA4MjZDNTYxLjg5OCAzMC42OTE1IDU2MS41NDYgMzAuMzY1NSA1NjAuNzUxIDMwLjEzMDhDNTYwLjk5OSAyOS4zMzU1IDU2MC45MDcgMjguODY2MSA1NjAuNTE2IDI4Ljc2MThDNTYwLjA5OSAyOC42MTg0IDU2MC4wMzQgMjguMTYyIDU2MC4yOTUgMjcuMzUzN0M1NjUuMzc5IDE4LjE3NDkgNTcwLjc3NyA5LjEwMDU1IDU3Ni40MzYgMC4wOTEzMDg2SDQzMC4xNzZDNDI0LjIwNCAxMi42NzMgNDE5LjA1NCAyNS45NDU2IDQxNC44MyAzOS45ODc1QzQwNi40NzMgNjEuOTU2NSA0MDQuMjgyIDgyLjI2OTcgNDA4LjI4NSAxMDAuOTY2QzQxMi4wMTQgMTIwLjQ1OCA0MTguODMzIDEzOC40NjMgNDI4LjcyOCAxNTQuOTgyQzQzOC42MTEgMTcxLjUyOCA0NTIuNDU4IDE4NS4wODcgNDcwLjI1NCAxOTUuN0M0OTAuNzM3IDIwOC44ODEgNTEyLjE0NSAyMTcuNzIxIDUzNC40MDEgMjIyLjI0NUM1NTYuNjQ0IDIyNi43NTcgNTc5Ljg2NSAyMjYuNTA5IDYwNC4xMTUgMjIxLjU2N0M2MDkuNjQzIDIyMC42MTYgNjE1LjI2MyAyMTkuNDY4IDYyMC45MjEgMjE4LjA5OUM2MjYuNTY3IDIxNi43NTYgNjMyLjI3NyAyMTUuMTkyIDYzOC4wNTMgMjEzLjQxOUM2NTkuMDU3IDIwNy41MjUgNjc4LjU2MiAxOTkuMzkgNjk2LjU0MSAxODkuMDc3IiBmaWxsPSIjRjVGNUY3Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMjgyMF82OTk5MSI+CjxyZWN0IHdpZHRoPSI3MjEiIGhlaWdodD0iMjU2Ljg0OCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K\");background-repeat:no-repeat}@media (min-width: 48em){.duet-hero.duet-hero-product.duet-theme-turva .background .background-mask{left:181px}}.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{margin:0 auto;border-radius:0;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transform:none}@media (max-width: 35.9375em){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{top:-120px;width:385px}}@media (max-width: 22.5em){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{top:-95px;width:320px}}@media (min-width: 36em){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{top:-135px;width:420px}}@media (min-width: 48em){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{top:-110px;right:-110px;width:418px}}@media (min-width: 860px){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{right:-75px}}@media (min-width: 960px){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{right:-40px}}@media (min-width: 62em){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{top:-130px;right:-100px;width:552px}}@media (min-width: 1100px){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{right:-35px}}@media (min-width: 76.25em){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{top:-215px;width:736px}.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image.narrow{right:-115px}}@media (min-width: 1300px){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image.narrow{right:-50px}}@media (min-width: 1400px){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image.narrow{right:-35px}}.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image .brand-shaped-image-bg{transform:translate(-50%, 0)}.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-icon{background:rgba(230, 23, 64, 0.9);-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transform:rotate(0deg)}.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-icon duet-icon{position:relative;top:-6px;transform:rotate(0deg)}@media (min-width: 48em){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-icon duet-icon{top:-8px}}@media (min-width: 62em){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-icon duet-icon{top:-12px}}.duet-hero.duet-hero-content{padding:0 0 48px;padding-top:236px;background:rgb(255, 255, 255)}@media (min-width: 48em){.duet-hero.duet-hero-content{padding-top:384px}}.duet-hero.duet-hero-content:not(.duet-hero-has-image){padding:72px 0 48px}.duet-hero.duet-hero-content .background-area{position:absolute;width:100%}.duet-hero.duet-hero-content .background{position:absolute;top:-236px;width:100%;height:600px;overflow:hidden;pointer-events:none}.duet-hero.duet-hero-content .background *{pointer-events:auto}.duet-hero.duet-hero-content .background .background-mask{display:none}@media (min-width: 48em){.duet-hero.duet-hero-content .background{top:-384px}}.duet-hero.duet-hero-content .background .brand-shaped-image{position:absolute;top:-165px;right:0;left:30px;z-index:0;width:375px;height:375px;margin:0 auto;overflow:hidden;border-radius:20%;transform:rotate(7deg)}@media (min-width: 48em){.duet-hero.duet-hero-content .background .brand-shaped-image{top:-325px;left:250px;width:687px;height:687px}}.duet-hero.duet-hero-content .background .brand-shaped-image .brand-shaped-image-wrapper{position:relative;width:100%;height:100%}.duet-hero.duet-hero-content .background .brand-shaped-image .brand-shaped-image-bg{position:absolute;bottom:0;left:50%;z-index:1;width:600px;height:256px;background-repeat:no-repeat;background-size:100%;transform:rotate(-7deg) translate(-50%, 0)}@media (min-width: 48em){.duet-hero.duet-hero-content .background .brand-shaped-image .brand-shaped-image-bg{width:733px;height:413px}}.duet-hero.duet-hero-content .background .brand-shape{position:absolute;top:-25px;right:0;left:-300px;width:240px;height:240px;margin-right:auto;margin-left:auto;background:rgb(0, 119, 179);border-radius:20%;mix-blend-mode:normal;opacity:0.07;transform:rotate(7deg)}@media (min-width: 48em){.duet-hero.duet-hero-content .background .brand-shape{top:80px;left:-400px;width:373px;height:373px}}.duet-hero.duet-hero-content .duet-hero-wrapper{max-width:100%;margin:0 auto}.duet-hero.duet-hero-content .duet-hero-wrapper.fluid,.duet-hero.duet-hero-content .duet-hero-wrapper.narrow{padding:0 16px}@media (min-width: 36em){.duet-hero.duet-hero-content .duet-hero-wrapper.fluid{padding:0 28px}}@media (min-width: 62em){.duet-hero.duet-hero-content .duet-hero-wrapper.fluid{padding:0 56px}}@media (min-width: 76.25em){.duet-hero.duet-hero-content .duet-hero-wrapper.fluid{max-width:1110px;padding:0}}.duet-hero.duet-hero-content .duet-hero-wrapper.narrow{max-width:888px}@media (min-width: 36em){.duet-hero.duet-hero-content .duet-hero-wrapper.narrow{padding:0 48px}}@media (min-width: 48em){.duet-hero.duet-hero-content .duet-hero-wrapper.narrow{padding:0 72px}}.duet-hero.duet-hero-content .duet-hero-text{max-width:100%}@media (min-width: 62em){.duet-hero.duet-hero-content .duet-hero-text{width:80%}}.duet-hero.duet-hero-content .duet-hero-text .duet-hero-pre{margin-top:1rem;margin-bottom:0.5rem}@media (min-width: 62em){.duet-hero.duet-hero-content .duet-hero-text .duet-hero-pre{margin-top:1.5rem;margin-bottom:0}}@media (min-width: 62em){.duet-hero{min-height:290px;padding:111.6px 56px;overflow:visible}}.duet-hero-icon{display:inline-block;vertical-align:top}@media (min-width: 62em){.duet-hero-icon{margin-top:-8px}}@media (min-width: 62em){.duet-hero-heading{margin-top:12px}}@media (min-width: 62em){.duet-hero-heading-has-pre{margin-top:0}}.duet-hero-wrapper{position:relative;width:100%;max-width:1110px;margin:0 auto;text-align:center}.duet-hero-left-align .duet-hero-wrapper{text-align:left}.duet-hero-with-image .duet-hero-wrapper{position:static}@media (min-width: 62em){.duet-hero-wrapper{text-align:left}}.duet-hero-text{max-width:50rem;margin:0 auto}.duet-hero-text-center .duet-hero-text{text-align:center !important}@media (min-width: 48em){.duet-hero-text{width:80%}.duet-hero-left-align .duet-hero-text{margin:0}}@media (min-width: 62em){.duet-hero-text{width:52%;max-width:none;margin-top:-10px;margin-left:0}.duet-hero-text-center .duet-hero-text{margin-left:auto}}.duet-hero:not(.duet-hero-with-image) .duet-hero-image{width:100%;max-width:400px;height:0;padding-bottom:50%;margin:28px auto 0;background-repeat:no-repeat;background-position:50% 50%;background-size:contain}@media (min-width: 36em){.duet-hero:not(.duet-hero-with-image) .duet-hero-image{padding-bottom:40%}}@media (min-width: 48em){.duet-hero:not(.duet-hero-with-image) .duet-hero-image{max-width:420px;padding-bottom:34%}.duet-hero-light .duet-hero:not(.duet-hero-with-image) .duet-hero-image{max-width:540px}}@media (min-width: 62em){.duet-hero:not(.duet-hero-with-image) .duet-hero-image{position:absolute;top:50%;right:0;padding-bottom:30%;margin:0;transform:translateY(-50%)}.duet-hero-light .duet-hero:not(.duet-hero-with-image) .duet-hero-image{right:-60px;padding-bottom:26%}.duet-hero-gray .duet-hero:not(.duet-hero-with-image) .duet-hero-image{right:-34px;padding-bottom:20%}}@media (min-width: 62em){.duet-hero-gray:not(.duet-hero-with-image) .duet-hero-image{right:-34px;padding-bottom:20%}}.duet-hero-image-wrapper{position:relative;width:80%;height:0;padding-bottom:80%;margin:-30px auto 36px;overflow:hidden;border-radius:28%;box-shadow:0 0 20px rgba(255, 255, 255, 0.5);transform:rotate(10deg)}@media screen and (min-width: 440px){.duet-hero-image-wrapper{width:300px;padding-bottom:300px}}@media (min-width: 62em){.duet-hero-image-wrapper{position:absolute;top:-60px;right:-50px;width:470px;padding-bottom:470px;margin:0}}@media (min-width: 76.25em){.duet-hero-image-wrapper{top:-70px;right:-60px;width:600px;padding-bottom:600px}}@media screen and (min-width: 1450px){.duet-hero-image-wrapper{top:-70px;right:25px}}.duet-hero-image-wrapper .duet-hero-image{position:absolute;top:-5%;left:-5%;width:110%;height:110%;background-repeat:no-repeat;background-position:50% 50%;background-size:cover;transform:rotate(-10deg)}.duet-hero-image-mask{position:relative;margin:-48px auto 0;overflow:hidden}@media (min-width: 62em){.duet-hero-image-mask{position:absolute;top:0;right:0;width:470px;height:460px;margin:0}}@media (min-width: 76.25em){.duet-hero-image-mask{width:650px;height:580px}}@media screen and (min-width: 1450px){.duet-hero-image-mask{right:50%;transform:translateX(110%)}}duet-heading+duet-button{margin-top:12px !important}.duet-hero-links{width:calc(100% + 56px);margin-top:48px;margin-left:-28px}.duet-hero-minimal .duet-hero-links{margin-top:28px}@media (min-width: 36em){.duet-hero-links{margin-top:72px}.duet-hero-minimal .duet-hero-links{margin-top:28px}}@media (min-width: 62em){.duet-hero-links{width:auto;margin:36px 0 0}.duet-hero-minimal .duet-hero-links{margin-top:28px}}.duet-hero-link{display:flex;align-items:center;width:100%;padding:16px 16px 8px;font-weight:600;line-height:1.25;color:rgb(0, 119, 179);text-align:left;-webkit-hyphens:auto;hyphens:auto;text-decoration:none;border-bottom:1px solid rgb(212, 223, 229);transition:background-color 300ms ease}.duet-hero-link:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva .duet-hero-link:focus,.duet-hero-link:focus.duet-theme-turva{outline:2px solid;outline-offset:2px;outline-color:rgba(53, 79, 101, 0.8)}.duet-hero-link:hover,.duet-hero-link:hover .duet-hero-action-arrow{color:rgb(0, 75, 129) !important;background:transparent !important}@media (min-width: 36em){.duet-hero-link{padding:16px 16px 16px 28px}}@media (min-width: 62em){.duet-hero-link{display:inline-flex;width:auto;max-width:350px;padding:0;margin:0 28px 16px 0;border:0;border-radius:4px}}.duet-hero-link:hover{background:rgba(0, 0, 0, 0.02)}@media (min-width: 62em){.duet-hero-link:hover{background:transparent}}.duet-hero-link:first-of-type{border-top:1px solid rgb(212, 223, 229)}@media (min-width: 62em){.duet-hero-link:first-of-type{margin-top:0;border:0}}.duet-hero-link:last-of-type{margin-bottom:-48px}@media (min-width: 62em){.duet-hero-link:last-of-type{margin-right:0;margin-bottom:0}}.duet-hero-link span{margin-top:-8px}@media (min-width: 36em){.duet-hero-link span{margin:0}}.duet-hero-action-icon{margin-right:8px}@media (min-width: 36em){.duet-hero-action-icon{margin-right:12px}}.duet-hero-action-arrow{margin:0 0 0 8px;color:rgb(0, 119, 179)}@media (max-width: 35.9375em){.duet-hero-action-arrow{margin-top:-9px}}.duet-hero-back{margin-bottom:28px !important;display:flex;align-items:center;justify-content:center}.duet-hero-left-align .duet-hero-back{align-items:self-start;justify-content:flex-start}@media (min-width: 36em){.duet-hero-back{margin-bottom:36px !important}.duet-hero-minimal .duet-hero-back{margin-bottom:28px !important}}@media (min-width: 62em){.duet-hero-back{display:block}}.duet-hero-pre{display:inline-block;width:auto;margin-right:8px}.duet-hero-pre+duet-heading{margin-top:0 !important}.duet-hero.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:rgb(230, 23, 64)}.duet-hero.duet-hero-light.duet-theme-turva,.duet-hero.duet-hero-with-image.duet-theme-turva{color:rgb(23, 42, 59);background-image:linear-gradient(rgb(253, 247, 242), #fefbf9)}.duet-hero.duet-hero-light.duet-theme-turva::before,.duet-hero.duet-hero-with-image.duet-theme-turva::before{background-image:linear-gradient(#fefbf9, rgb(255, 255, 255))}.duet-hero.duet-hero-gray.duet-theme-turva{background:rgb(245, 246, 247)}.duet-hero.duet-hero-campaign.duet-theme-turva,.duet-hero.duet-hero-section.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:none}.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape,.duet-hero.duet-hero-section.duet-theme-turva .brand-shape{top:125px;left:-10px;width:350px;height:350px;background:rgb(255, 255, 255);-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transform:none}@media (min-width: 22.5em){.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape,.duet-hero.duet-hero-section.duet-theme-turva .brand-shape{top:143px;left:-30px;width:450px;height:450px}}@media (min-width: 36em){.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape,.duet-hero.duet-hero-section.duet-theme-turva .brand-shape{top:180px;left:0;width:550px;height:550px}}@media (min-width: 48em){.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape,.duet-hero.duet-hero-section.duet-theme-turva .brand-shape{top:220px;width:712.18px;height:712.18px}}@media (min-width: 62em){.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape,.duet-hero.duet-hero-section.duet-theme-turva .brand-shape{top:230px}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape,.duet-hero.duet-hero-section.duet-theme-turva .brand-shape{top:260px}}@media (min-width: 106.25em){.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape,.duet-hero.duet-hero-section.duet-theme-turva .brand-shape{top:290px}}.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text duet-paragraph{width:98%}@media (min-width: 22.5em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text duet-paragraph{width:90%}}@media (min-width: 25em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text duet-paragraph{width:78%}}@media (min-width: 30em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text duet-paragraph{width:66%}}@media (min-width: 36em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text duet-paragraph{width:65%}}@media (min-width: 48em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text duet-paragraph{width:70%}}@media (min-width: 62em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text duet-paragraph{width:52%}}.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading{margin-bottom:2rem}@media (min-width: 22.5em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading{margin-bottom:2rem}}@media (min-width: 36em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading{margin-bottom:4rem}}@media (min-width: 48em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading{margin-bottom:6rem}}@media (min-width: 62em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading{margin-bottom:7rem}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading{margin-bottom:8rem}}@media (min-width: 106.25em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading{margin-botton:9rem}}.duet-hero.duet-hero-campaign.duet-theme-turva .background-area .brand-shape,.duet-hero.duet-hero-section.duet-theme-turva .background-area .brand-shape{left:0;background-color:rgb(255, 255, 255);border-radius:24px;mask-image:none}.duet-hero.duet-hero-product.duet-theme-turva{display:flex;flex-direction:column;gap:20px;min-height:auto;padding-top:0;padding-bottom:72px;margin:0 auto}@media (min-width: 62em){.duet-hero.duet-hero-product.duet-theme-turva{flex-direction:row-reverse;gap:40px;padding-top:72px;padding-right:56px;padding-left:56px}}@media (min-width: 76.25em){.duet-hero.duet-hero-product.duet-theme-turva{max-width:1110px;padding-right:0;padding-left:0}}.duet-hero.duet-hero-product.duet-theme-turva .background-area{position:relative;height:auto;overflow:visible}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid{position:relative;top:0;width:100%;height:auto;aspect-ratio:576/250;padding:0;overflow:visible;}@media (min-width: 36em){.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid{height:250px;aspect-ratio:auto}}@media (min-width: 48em){.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid{padding-right:28px;padding-left:28px}}@media (min-width: 62em){.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid{height:auto;aspect-ratio:53/32;padding-right:0;padding-left:0}}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background{position:relative;top:auto;height:100%}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .background-mask,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .background-mask{display:none;background-image:none}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-image,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-image{position:static;width:100%;height:100%;border-radius:0;mask-image:none}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-image .brand-shaped-image-bg,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-image .brand-shaped-image-bg{position:static;width:100%;height:100%;background-position:0;background-size:cover;transform:none}@media (min-width: 48em){.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-image,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-image{border-radius:0 0 12px 12px}}@media (min-width: 62em){.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-image,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-image{border-radius:12px}}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-icon,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-icon{top:auto;right:20px;bottom:-16px;width:auto;height:auto;padding:0;background-color:rgb(23, 42, 59);border-radius:8px;mask-image:none}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-icon duet-icon,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-icon duet-icon{top:0;width:62px;height:62px}@media (min-width: 36em){.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-icon,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-icon{right:40px;bottom:-24px;padding:8px}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-icon duet-icon,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-icon duet-icon{width:80px;height:80px}}@media (min-width: 48em){.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-icon,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-icon{right:68px}}@media (min-width: 62em){.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-icon,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-icon{right:40px}}.duet-hero.duet-hero-product.duet-theme-turva .duet-hero-wrapper .duet-hero-text{width:100%}@media (min-width: 48em){.duet-hero.duet-hero-product.duet-theme-turva .duet-hero-wrapper{margin-top:28px}}@media (min-width: 62em){.duet-hero.duet-hero-product.duet-theme-turva .duet-hero-wrapper{padding:0}}.duet-hero.duet-hero-content.duet-theme-turva{padding:0;margin:20px auto;background:rgb(255, 255, 255)}.duet-hero.duet-hero-content.duet-theme-turva .background-mask{position:absolute;top:0;left:0;display:block;width:721px;height:256.85px;pointer-events:none;background-image:url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIxIiBoZWlnaHQ9IjI1NyIgdmlld0JveD0iMCAwIDcyMSAyNTciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yODIwXzY5OTkxKSI+CjxwYXRoIGQ9Ik04MC4xNzA1IDIzLjE4MTVDOTEuOTY5OSAxOC44NjU5IDEwMi44NyAxMS42NTU5IDExMi45MDkgMS41NjQ0OEMxMjMuNzcgLTguMzA1MjcgMTM0LjM4MiAtMTguMjAxMSAxNDQuODI2IC0yOC4xODgyQzE1NS4yNDMgLTM4LjE2MjIgMTY1LjkwOCAtNDguMDg0MSAxNzYuNzQzIC01Ny45Mjc4QzE3OC44MTYgLTU5LjA0OSAxODAuNDk4IC02MC4yODc3IDE4MS43ODggLTYxLjY1NjdDMTgzLjA2NiAtNjMuMDEyNiAxODUuNDY1IC02Mi4yODI1IDE4OS4wMTIgLTU5LjQ3OTNDMTg0LjczNSAtNTEuMTM1IDE4MC43NTkgLTQyLjk2MDIgMTc3LjAxNyAtMzQuOTAyN0MxNzMuMjg4IC0yNi44NDUyIDE2Ny42ODEgLTE5LjEyNjggMTYwLjIxMSAtMTEuNzYwM0MxNTIuNzUzIC00LjM4MDgzIDE0NC45NTYgMy4zMTE1MiAxMzYuODQ3IDExLjM2OUMxMjguNzI0IDE5LjQyNjUgMTIwLjk2NiAyNy4xNDUgMTEzLjQ4MyAzNC40OTg0Qzk3LjQ5OCA0OS44MTggNzkuNjYyIDU2LjAyNDEgNjAuMDAwOCA1My4xNjg4QzQwLjI4NzQgNTAuMzEzNSAyNS41NDE0IDM5LjA3NDcgMTUuNjk3NyAxOS40Nzg2QzMuOTI0NDUgLTIuMzcyOTkgLTEuMjI1NTUgLTI0LjQ3MjQgMC4yNDc3NDMgLTQ2Ljc4MDNDMS4yNTE2NyAtNjcuNDg0NiAzLjQwMjkzIC04Ny43OTc4IDYuODA1ODQgLTEwNy43NzJDMTAuMTk1NyAtMTI3LjczMyAxNS43MTA4IC0xNDcuNDg2IDIzLjMzOCAtMTY3LjA0M0MyNi4zMTA3IC0xNzQuMDMxIDI5LjAwOTUgLTE4MC44NSAzMS40NzM3IC0xODcuNTY0QzMzLjkxMTggLTE5NC4yMjcgMzYuNTMyNCAtMjAwLjY2OCAzOS4yNTc0IC0yMDYuODQ4QzQxLjgxMjggLTIwOS41NzIgNDMuNDY4NiAtMjEyLjEyOCA0NC4xODU3IC0yMTQuNTRDNTMuMDI1NSAtMjI5LjM3NyA2Mi44MyAtMjM3Ljk5NSA3My42Mzg1IC0yNDAuNDMzQzg0LjM5NDggLTI0Mi44NzEgOTguMTM2OSAtMjM5LjgyMSAxMTQuODEyIC0yMzEuMzJDMTI3Ljk0MiAtMjI1LjYwOSAxMzMuMzkyIC0yMTYuMTA1IDEzMS4xNDkgLTIwMi43OTNDMTMwLjE3MSAtMTkwLjgzNyAxMjcuOTk0IC0xNzkuMjU5IDEyNC42MTcgLTE2OC4wMkMxMjAuMDQxIC0xNTIuNzc5IDExNS40MzggLTEzNy41NTEgMTEwLjg0OSAtMTIyLjMyMkMxMDYuMjczIC0xMDcuMDgxIDEwMS4yNzkgLTkxLjk2OTkgOTUuODk0MyAtNzcuMDAyM0M4NS41OTQzIC00OC42MDU3IDc5LjQyNzQgLTE5LjQyNjcgNzcuNDA2NSAxMC41NjA2Qzc3LjcxOTQgMTIuNDEyIDc4LjA0NTMgMTQuMjYzNSA3OC4zNTgzIDE2LjA4ODhDNzguNjcxMiAxNy45NDAyIDc5LjI3MDkgMjAuMyA4MC4xNzA1IDIzLjE5NDRNMTEwLjkxNCAtMjk2Ljc1N0MxMDkuNTQ1IC0yOTguMDM1IDEwNy4zMTYgLTI5OS4zNTIgMTA0LjIzOSAtMzAwLjczNEMxMDEuMTYyIC0zMDIuMDkgOTguMjQxMiAtMzA0LjA1OSA5NS41NDIzIC0zMDYuNjI3QzkwLjA3OTQgLTMxMS43NzcgODYuOTc2MyAtMzE4LjE2NiA4Ni4yMzMyIC0zMjUuODE5Qzg1LjQ2NCAtMzMzLjQ3MiA4Ny4zODA1IC0zNDAuNTUyIDkxLjk2OTkgLTM0Ny4wNThDOTMuMjIxNSAtMzQ4LjQxNCA5NC4xNDcyIC0zNDkuMjM1IDk0LjY4MTggLTM0OS41MjJDOTUuMTkwMyAtMzQ5Ljc5NiA5Ni4xMDI5IC0zNTAuNjA0IDk3LjM5MzcgLTM1MS45OTlDMTA5LjY3NSAtMzU3LjkwNiAxMjIuNDE0IC0zNTYuNjkzIDEzNS42MzQgLTM0OC4zMzZDMTQ2Ljk1MSAtMzQyLjMyNSAxNTIuMDg4IC0zMzMuMzE2IDE1MS4xMzYgLTMyMS4zNkwxNDguMjI5IC0zMTEuNzM4QzE0NC42NjkgLTI5Ny4wNyAxMzUuNTY5IC0yOTEuNTAzIDEyMC45MTQgLTI5NS4wNjJDMTE5LjA1IC0yOTQuNzIzIDExNS43MzggLTI5NS4yOTcgMTEwLjkxNCAtMjk2Ljc0NCIgZmlsbD0iI0Y1RjVGNyIvPgo8cGF0aCBkPSJNMjQyLjc2NyAyMTUuNTE4QzI0NS4wODggMjEzLjU4OCAyNDcuMjc4IDIxMi4xMDIgMjQ5LjM3NyAyMTAuOTY4QzI1MS40NSAyMDkuODU5IDI1My41MzYgMjA4Ljc1MSAyNTUuNjIyIDIwNy42MDRDMjc0LjIyNyAxOTIuMjg0IDI5MC41NzcgMTc3LjE2IDMwNC43MjMgMTYyLjE5M0MzMTUuNjg4IDE0OC45NDYgMzI2LjYxNCAxMzUuODU2IDMzNy40ODggMTIyLjk4N0MzNDguMzYxIDExMC4xMTkgMzU4Ljg4MyA5Ni45Mzc1IDM2OS4wNjYgODMuNDE3MUMzNzYuNDQ1IDczLjQzMDEgMzg0LjU4MSA2My44NjAyIDM5My40NDcgNTQuNzQ2NkM0MDIuMyA0NS42NDYxIDQxMC44MjYgMzYuMjMyNyA0MTkuMDAxIDI2LjQ4MDNDNDIxLjgwNCAyMi45NzMxIDQyNC4yMjkgMjAuMDAwNCA0MjYuMjg5IDE3LjU0OTNDNDI4LjMyMyAxNS4xMjQzIDQzMC41MDEgMTIuOTMzOCA0MzIuODM1IDExLjAxNzNDNDM0LjkwOCA5LjkwOTA2IDQzNi43NDYgOS41ODMwMSA0MzguMzYzIDEwLjA2NTRDNDM5Ljk1MyAxMC41NDc5IDQ0MS43OTIgMTAuMjQ4IDQ0My45MDQgOS4xMTM3MUM0NDMuMTg3IDExLjUxMjcgNDQyLjgyMiAxMy4zOTAzIDQ0Mi44ODcgMTQuNjk0QzQ0Mi45MjYgMTYuMDIzOSA0NDIuMjg3IDE3LjM2NjggNDQxLjAwOSAxOC43MjI3QzQyNC42NDcgNDYuOTYzIDQwNy42ODQgNzIuODE3MyAzOTAuMTIyIDk2LjMxMTdDMzc2LjY0MSAxMTQuOTU2IDM2My4xNDcgMTMyLjkwOSAzNDkuNjM5IDE1MC4yMjRDMzM2LjEwNiAxNjcuNTI1IDMyMi4yMiAxODUuMzYxIDMwNy45NDQgMjAzLjc1OEMzMDEuNTI5IDIxMC41MzcgMjk1LjM4OCAyMTcuMiAyODkuNDk1IDIyMy43MTlDMjgzLjU4OSAyMzAuMjI1IDI3Ny40MzUgMjM2LjkgMjcxLjAyIDI0My42NjdDMjU4LjkyMSAyNTQuODggMjQ0LjQ4OCAyNTkuMjM0IDIyNy43MzQgMjU2Ljc5NkMxOTYuODYgMjUxLjg4MSAxNzYuMDI1IDIzNi44NzQgMTY1LjIxNyAyMTEuNzg5QzE1NC42OTUgMTg4LjU2OCAxNDkuNTMyIDE2Ni41MDggMTQ5LjcwMiAxNDUuNjA4QzE0Ny45NDIgMTEzLjY3OCAxNDguMzA3IDgxLjk0MzggMTUwLjgxIDUwLjQxOEMxNTMuMyAxOC44NzkyIDE1OC4zMiAtMTIuMzIwNyAxNjUuODY5IC00My4yMDc3QzE4MC4xNzIgLTEwNS4yMDMgMTk4LjU2OCAtMTY2LjQwMyAyMjEuMTExIC0yMjYuODA4QzIzMi4wODkgLTI1Ny41MjYgMjQ0LjQyMyAtMjg3LjYxOCAyNTguMSAtMzE3LjA5NkMyNzEuNzc2IC0zNDYuNTc1IDI4Ni4zNzkgLTM3NS41MDcgMzAxLjk3MiAtNDA0LjAwOEMzMTIuOTUgLTQyNS45OSAzMjQuNjMyIC00NDcuMzQ2IDMzNi45NzkgLTQ2OC4wNjNDMzQ5LjMxMyAtNDg4Ljc1NCAzNjIuNDk1IC01MDkuMjI0IDM3Ni40MzIgLTUyOS40NTlDNDAzLjg2NCAtNTY4LjI5OSA0MzQuMTkgLTYwMy42NzEgNDY3LjM5OCAtNjM1LjU3NUM0NzUuNjM4IC02NDIuNjgxIDQ4My45OTUgLTY0OS4zMTcgNDkyLjQwNSAtNjU1LjUxQzUwMC44MjggLTY2MS42NzcgNTEwLjM5NyAtNjY2LjY1OCA1MjEuMTU0IC02NzAuMzk5QzU0NS4yNzQgLTY3Ny45NjEgNTY3LjcxMiAtNjc2Ljg3OSA1ODguMzkxIC02NjcuMTY2QzYwNC43MjcgLTY2MC40NzggNjEzLjY3MSAtNjQ5LjUxMyA2MTUuMjEgLTYzNC4yMTlDNjE3LjU5NiAtNjI0Ljc1NCA2MTguMTk1IC02MTMuNjcxIDYxNi45ODMgLTYwMC45NTlDNjEwLjMyIC01NTguNDgxIDU5Ny44NTYgLTUxNS41MzQgNTc5LjU1MSAtNDcyLjE5NkM1NjUuNDMxIC00MzkuODIzIDU0OS4wODEgLTQwOC43NTMgNTMwLjUyOCAtMzc5LjAwMUM1MTEuOTM2IC0zNDkuMjYxIDQ5Mi42MTQgLTMxOS45NTIgNDcyLjYgLTI5MS4wOTlDNDY1LjQ1NiAtMjgxLjkyIDQ1Ny45NDYgLTI3MS41MDMgNDUwLjEyMyAtMjU5LjkxMkM0MzMuNTc4IC0yMzYuOTc4IDQxNS42MzcgLTIxNS4xMjYgMzk2LjI4OSAtMTk0LjM1N0MzNzYuOTAyIC0xNzMuNTYxIDM1NS44NDUgLTE1NC4zOTYgMzMzLjA2OCAtMTM2LjgyQzMyMC4zODIgLTEyNi42OSAzMTIuNTMzIC0xMTUuMDg2IDMwOS40ODIgLTEwMi4wNDhDMzA0LjE4OSAtODQuNDQ2OCAyOTguOTc0IC02Ny4wNDExIDI5My43OTggLTQ5Ljg0NEMyODguNjIxIC0zMi42NDY5IDI4My43NzEgLTE1LjExMDggMjc5LjI4NiAyLjcxMjFDMjc1LjI3MSAxOC45NzA1IDI3MS4zMDcgMzQuOTgxIDI2Ny40MjIgNTAuODM1MkMyNjMuNTIzIDY2LjY2MzMgMjU5Ljk2NCA4Mi44NDM0IDI1Ni43NyA5OS4zMzY1QzI1My41NDkgMTE1LjgwMyAyNTAuNjgxIDEzMi42MjIgMjQ4LjE1MiAxNDkuNzQxQzI0NS42MDkgMTY2Ljg2IDI0My4xMzIgMTgzLjc5NyAyNDAuNzQ2IDIwMC40OThDMjQxLjA0NiAyMDIuMzM3IDI0MS4zMDcgMjA0LjM5NiAyNDEuNTE1IDIwNi42MTNDMjQxLjY5OCAyMDguODY4IDI0Mi4xMjggMjExLjg0MSAyNDIuNzggMjE1LjUxOE01NjQuMzIyIC02MjIuMDgxQzU2MS43MjggLTYxOS4zNDMgNTU4LjExNiAtNjE2LjA4MyA1NTMuNDg4IC02MTIuMjM3QzU0Mi4yMzYgLTU5OC4xNjkgNTMwLjk1OCAtNTgzLjkwNiA1MTkuNjI4IC01NjkuNDU5QzUwOC4yNTkgLTU1NC45ODcgNDk4LjA1IC01MzkuOTQxIDQ4OS4wMTUgLTUyNC4zNzRDNDU5LjIzNiAtNDc0Ljg2OSA0MzIuNzY5IC00MjMuOTU2IDQwOS42MDEgLTM3MS42MDhDMzg2LjQxOSAtMzE5LjI0OCAzNjUuMTkzIC0yNjUuNDQgMzQ1LjkzNiAtMjEwLjE3MkMzNDUuNzAyIC0yMDkuMzc3IDM0NS43MDIgLTIwOC43MTIgMzQ2LjAxNSAtMjA4LjE5QzM0Ni4yNjIgLTIwNy42NTYgMzQ2LjE4NCAtMjA2LjU4NyAzNDUuNzE1IC0yMDUuMDA5QzM0OS4zNzggLTIwNS42MjIgMzUxLjM2IC0yMDYuMzM5IDM1MS42MDggLTIwNy4xNDdDMzU1LjQ2NyAtMjExLjIxNSAzNTkuNTA5IC0yMTUuMjMxIDM2My43NDYgLTIxOS4xOTRDMzY3Ljk5NyAtMjIzLjE0NSAzNzEuNzY1IC0yMjcuNjgyIDM3NS4wNzYgLTIzMi44MTlDNDAyLjg4NiAtMjY3LjE2MSA0MjguNzE0IC0zMDIuMTQyIDQ1Mi41MzUgLTMzNy43MzZDNDc2LjM2OCAtMzczLjMwMyA0OTguNTMzIC00MTAuNjk2IDUxOS4wNjggLTQ0OS44ODhDNTQzLjg1MyAtNDk3LjM3MiA1NTkuNTc3IC01NDYuNzM0IDU2Ni4yNTIgLTU5Ny45MzRDNTY2LjY0MyAtNjAyLjE4NSA1NjYuOTE3IC02MDYuMDE4IDU2Ny4xIC02MDkuNDZDNTY3LjI0MyAtNjEyLjkwMiA1NjYuMzE3IC02MTcuMSA1NjQuMzM2IC02MjIuMDgxIiBmaWxsPSIjRjVGNUY3Ii8+CjxwYXRoIGQ9Ik02OTYuNTE1IDE4OS4wNjRDNzA0LjYzOCAxODQuMzk2IDcxMi42ODIgMTc5LjYxMSA3MjAuNjg4IDE3NC43MzVWMTM0LjA1N0M2OTcuODE5IDE0OC41MDMgNjczLjgwMyAxNTkuNjM3IDY0OC42MDEgMTY3LjQyMUM2MjIuMDgyIDE3NS42MzUgNTk0LjU1OCAxODAuNjY3IDU2Ni4wMTggMTgyLjU1OEM1NTAuOTIgMTgzLjI2MiA1NDEuMjk4IDE4MS44OTMgNTM3LjEgMTc4LjQzOEM1MzIuODc2IDE3NS4wMDkgNTI5LjA5NSAxNjUuNzUyIDUyNS43NTcgMTUwLjc0NUw1MjMuOTU4IDEzMC41NDlDNTIzLjMzMiAxMTguMTI0IDUyNC43NjYgMTA2Ljc1NSA1MjguMzM5IDk2LjQyODlDNTMxLjg1OSA4Ni4xNTUgNTM2LjEyMiA3NS42MjAzIDU0MS4xMTYgNjQuODc3QzU0NS42MTQgNjQuNDg1OSA1NDkuNTY0IDY0LjM2ODUgNTUzLjAzMiA2NC41MzhDNTU2LjQ3NSA2NC42OTQ1IDU2MC40MzggNjQuNTc3MSA1NjQuOTQ5IDY0LjE3MjlDNTg1Ljg3NSA2NC4zNjg1IDYwNy42MzYgNjEuNzQ3OSA2MzAuMjY5IDU2LjI4NDlDNjUyLjA4MiA1MC42MjY1IDY3MC40IDQxLjI3ODIgNjg1LjI3NyAyOC4yNTMzQzY5NC45MzggMTkuNzc4NiA3MDQuMDI1IDEwLjM3ODMgNzEyLjU2NSAwLjA5MTMwODZINjM5LjUyNkM2MjAuMjU2IDE2Ljk4ODUgNTk2Ljk0NCAyNy40ODQxIDU2OS41MzkgMzEuNDYwN0M1NjcuNjYxIDMxLjc3MzYgNTY2LjM1NyAzMS44MTI3IDU2NS41NzUgMzEuNTY1QzU2NC43NTQgMzEuMzMwMyA1NjMuODI4IDMxLjUxMjggNTYyLjgxMSAzMi4wNDc0QzU2MS45OSAzMS44MTI3IDU2MS42NTEgMzEuNDk5OCA1NjEuNzgxIDMxLjA4MjZDNTYxLjg5OCAzMC42OTE1IDU2MS41NDYgMzAuMzY1NSA1NjAuNzUxIDMwLjEzMDhDNTYwLjk5OSAyOS4zMzU1IDU2MC45MDcgMjguODY2MSA1NjAuNTE2IDI4Ljc2MThDNTYwLjA5OSAyOC42MTg0IDU2MC4wMzQgMjguMTYyIDU2MC4yOTUgMjcuMzUzN0M1NjUuMzc5IDE4LjE3NDkgNTcwLjc3NyA5LjEwMDU1IDU3Ni40MzYgMC4wOTEzMDg2SDQzMC4xNzZDNDI0LjIwNCAxMi42NzMgNDE5LjA1NCAyNS45NDU2IDQxNC44MyAzOS45ODc1QzQwNi40NzMgNjEuOTU2NSA0MDQuMjgyIDgyLjI2OTcgNDA4LjI4NSAxMDAuOTY2QzQxMi4wMTQgMTIwLjQ1OCA0MTguODMzIDEzOC40NjMgNDI4LjcyOCAxNTQuOTgyQzQzOC42MTEgMTcxLjUyOCA0NTIuNDU4IDE4NS4wODcgNDcwLjI1NCAxOTUuN0M0OTAuNzM3IDIwOC44ODEgNTEyLjE0NSAyMTcuNzIxIDUzNC40MDEgMjIyLjI0NUM1NTYuNjQ0IDIyNi43NTcgNTc5Ljg2NSAyMjYuNTA5IDYwNC4xMTUgMjIxLjU2N0M2MDkuNjQzIDIyMC42MTYgNjE1LjI2MyAyMTkuNDY4IDYyMC45MjEgMjE4LjA5OUM2MjYuNTY3IDIxNi43NTYgNjMyLjI3NyAyMTUuMTkyIDYzOC4wNTMgMjEzLjQxOUM2NTkuMDU3IDIwNy41MjUgNjc4LjU2MiAxOTkuMzkgNjk2LjU0MSAxODkuMDc3IiBmaWxsPSIjRjVGNUY3Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMjgyMF82OTk5MSI+CjxyZWN0IHdpZHRoPSI3MjEiIGhlaWdodD0iMjU2Ljg0OCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K\");background-repeat:no-repeat}@media (min-width: 48em){.duet-hero.duet-hero-content.duet-theme-turva .background-mask{left:181px}}.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image{top:-155px;right:0;left:0;width:420px;height:420px;margin:0 auto;border-radius:0;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transform:none}@media (min-width: 48em){.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image{top:-230px;width:687px;height:637px}}.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image .brand-shaped-image-bg{width:600px;height:280px;transform:translate(-50%, 0)}@media (min-width: 48em){.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image .brand-shaped-image-bg{width:733px;height:413px}}.duet-hero.duet-hero-content.duet-theme-turva.duet-hero-narrow .background-area{max-width:888px}@media (min-width: 36em){.duet-hero.duet-hero-content.duet-theme-turva.duet-hero-narrow .background-area{padding:0 48px}}@media (min-width: 48em){.duet-hero.duet-hero-content.duet-theme-turva.duet-hero-narrow .background-area{padding:0 72px}}.duet-hero.duet-hero-content.duet-theme-turva .background-area{position:static;padding:0 16px;margin:0 auto}@media (min-width: 36em){.duet-hero.duet-hero-content.duet-theme-turva .background-area{padding:0 28px}}@media (min-width: 62em){.duet-hero.duet-hero-content.duet-theme-turva .background-area{padding:0 56px}}@media (min-width: 76.25em){.duet-hero.duet-hero-content.duet-theme-turva .background-area{max-width:1110px;padding:0}}.duet-hero.duet-hero-content.duet-theme-turva .background-area .background{position:static;height:auto}.duet-hero.duet-hero-content.duet-theme-turva .background-area .background .background-mask{display:none;background-image:none}.duet-hero.duet-hero-content.duet-theme-turva .background-area .background .brand-shaped-image{position:static;width:auto;height:auto}.duet-hero.duet-hero-content.duet-theme-turva .background-area .background .brand-shaped-image .brand-shaped-image-wrapper{width:auto;height:auto}.duet-hero.duet-hero-content.duet-theme-turva .background-area .background .brand-shaped-image .brand-shaped-image-bg{position:static;width:100%;height:auto;aspect-ratio:5/2;background-size:cover;transform:none}.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image{border-radius:12px;mask-image:none}.duet-hero.duet-hero-content.duet-theme-turva .duet-hero-wrapper{margin-top:28px}@media (min-width: 48em){.duet-hero.duet-hero-content.duet-theme-turva .duet-hero-wrapper{margin-top:36px}}.duet-hero.duet-theme-turva .duet-hero-wrapper{position:static;margin-top:16px}@media (min-width: 48em){.duet-hero.duet-theme-turva .duet-hero-wrapper{margin-top:0}}.duet-theme-turva .duet-hero-image-wrapper{padding-bottom:68%;border-radius:44% 47% 38% 54%;transform:none}@media screen and (min-width: 440px){.duet-theme-turva .duet-hero-image-wrapper{width:80%;padding-bottom:68%}}@media (min-width: 62em){.duet-theme-turva .duet-hero-image-wrapper{top:-40px;right:-80px;width:536px;padding-bottom:470px}}@media (min-width: 76.25em){.duet-theme-turva .duet-hero-image-wrapper{top:-70px;right:-60px;width:650px;padding-bottom:600px}}@media screen and (min-width: 1450px){.duet-theme-turva .duet-hero-image-wrapper{right:0}}.duet-theme-turva .duet-hero-image-wrapper .duet-hero-image{top:0;left:0;width:100%;height:100%;transform:none}@media screen and (min-width: 1450px){.duet-theme-turva .duet-hero-image-mask{transform:translateX(108%)}}.duet-theme-turva .duet-hero-link{color:rgb(230, 23, 64)}.duet-theme-turva .duet-hero-link:hover .duet-hero-action-arrow{color:rgb(140, 0, 30) !important}.duet-theme-turva .duet-hero-action-arrow{color:rgb(230, 23, 64)}";
13046
+ const duetHeroCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;display:block;width:100%}.duet-hero{position:relative;display:block;width:100%;padding:48px 28px;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:1rem;font-style:normal;font-weight:400;line-height:1.5;text-transform:none;text-decoration:none;text-shadow:none;background:rgb(8, 42, 77)}.duet-hero.duet-p-0{padding:0 !important}.duet-hero.duet-m-0{margin:0 !important}.duet-hero.duet-hero-text-center{text-align:center !important}.duet-hero.duet-hero-light{padding-bottom:0 !important}@media (min-width: 62em){.duet-hero.duet-hero-light{padding-bottom:28px !important}}.duet-hero.duet-hero-with-image{padding-bottom:20px !important;margin-bottom:-36px}@media (min-width: 48em){.duet-hero.duet-hero-with-image{padding-bottom:28px !important}}@media (min-width: 62em){.duet-hero.duet-hero-with-image{padding-bottom:36px !important;margin-bottom:-20px}}.duet-hero.duet-hero-light,.duet-hero.duet-hero-with-image{color:rgb(8, 42, 77);background-color:rgb(255, 255, 255);background-image:linear-gradient(rgb(240, 247, 250), #f8fbfd)}.duet-hero.duet-hero-light::before,.duet-hero.duet-hero-with-image::before{position:absolute;top:100%;left:0;z-index:-1;width:100%;height:400px;content:\"\";background-image:linear-gradient(#f8fbfd, rgb(255, 255, 255))}.duet-hero.duet-hero-gray{color:rgb(8, 42, 77);background:rgb(245, 248, 250)}@media (min-width: 62em){.duet-hero.duet-hero-gray .duet-hero-text{display:inline-block;vertical-align:top}.duet-hero.duet-hero-gray .duet-hero-icon+.duet-hero-text{margin-left:28px}}@media (min-width: 62em){.duet-hero.duet-hero-gray-with-actions{padding-bottom:65.4545454545px}}@media (min-width: 62em){.duet-hero.duet-hero-gray-with-back{padding-top:72px}}.duet-hero.duet-hero-campaign,.duet-hero.duet-hero-section{padding:0 0 48px;margin:0;background:none}@media (min-width: 48em){.duet-hero.duet-hero-campaign,.duet-hero.duet-hero-section{min-height:490px}}@media (min-width: 62em){.duet-hero.duet-hero-campaign,.duet-hero.duet-hero-section{min-height:540px}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign,.duet-hero.duet-hero-section{min-height:620px}}.duet-hero.duet-hero-campaign .background-area,.duet-hero.duet-hero-section .background-area{height:1px;margin-bottom:-1px}.duet-hero.duet-hero-campaign .background-container,.duet-hero.duet-hero-section .background-container{position:absolute;right:0;left:0;display:grid;align-items:flex-start;justify-content:center;overflow:hidden}.duet-hero.duet-hero-campaign .background,.duet-hero.duet-hero-section .background{display:flex;align-items:flex-start;justify-content:center;height:220px;margin:0 auto}.duet-hero.duet-hero-campaign .background picture,.duet-hero.duet-hero-section .background picture{display:block;height:100%}@media (min-width: 1440px){.duet-hero.duet-hero-campaign .background picture,.duet-hero.duet-hero-section .background picture{height:auto}}.duet-hero.duet-hero-campaign .background img,.duet-hero.duet-hero-section .background img{display:block;height:100%}.duet-hero.duet-hero-campaign .background img.cover,.duet-hero.duet-hero-section .background img.cover{object-fit:cover}.duet-hero.duet-hero-campaign .background img.center,.duet-hero.duet-hero-section .background img.center{object-position:center}@media (min-width: 1440px){.duet-hero.duet-hero-campaign .background img,.duet-hero.duet-hero-section .background img{width:100%;height:auto}}@media (min-width: 36em){.duet-hero.duet-hero-campaign .background,.duet-hero.duet-hero-section .background{height:300px}}@media (min-width: 48em){.duet-hero.duet-hero-campaign .background,.duet-hero.duet-hero-section .background{height:450px}}@media (min-width: 62em){.duet-hero.duet-hero-campaign .background,.duet-hero.duet-hero-section .background{height:500px}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign .background,.duet-hero.duet-hero-section .background{height:580px}}@media (min-width: 1600px){.duet-hero.duet-hero-campaign .background,.duet-hero.duet-hero-section .background{width:1600px;overflow:hidden}}.duet-hero.duet-hero-campaign .background .brand-container,.duet-hero.duet-hero-section .background .brand-container{position:relative;width:100%;height:100%;min-height:220px;overflow:hidden}.duet-hero.duet-hero-campaign .background .brand,.duet-hero.duet-hero-section .background .brand{position:absolute;width:100%;height:220px;background-repeat:no-repeat;background-position:center center;background-size:cover}@media (min-width: 36em){.duet-hero.duet-hero-campaign .background .brand,.duet-hero.duet-hero-section .background .brand{left:-200px}}@media (min-width: 62em){.duet-hero.duet-hero-campaign .background .brand,.duet-hero.duet-hero-section .background .brand{left:auto;height:1100px;background-position:140% -200%}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign .background .brand,.duet-hero.duet-hero-section .background .brand{background-position:right -200%}}.duet-hero.duet-hero-campaign .brand-shape,.duet-hero.duet-hero-section .brand-shape{position:absolute;top:143px;right:0;left:-30px;width:340px;height:340px;margin-right:auto;margin-left:auto;background:rgb(255, 255, 255);border-radius:20%;mix-blend-mode:normal;transform:rotate(8deg)}@media (min-width: 22.5em){.duet-hero.duet-hero-campaign .brand-shape,.duet-hero.duet-hero-section .brand-shape{top:160px;width:450px;height:450px}}@media (min-width: 36em){.duet-hero.duet-hero-campaign .brand-shape,.duet-hero.duet-hero-section .brand-shape{top:215px;left:-50px;width:550px;height:550px}}@media (min-width: 48em){.duet-hero.duet-hero-campaign .brand-shape,.duet-hero.duet-hero-section .brand-shape{top:250px;left:0;width:712.18px;height:712.18px}}@media (min-width: 62em){.duet-hero.duet-hero-campaign .brand-shape,.duet-hero.duet-hero-section .brand-shape{top:240px}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign .brand-shape,.duet-hero.duet-hero-section .brand-shape{top:280px}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign .brand-shape,.duet-hero.duet-hero-section .brand-shape{top:310px}}.duet-hero.duet-hero-campaign ::slotted(.duet-heading),.duet-hero.duet-hero-section ::slotted(.duet-heading){font-size:inherit !important;color:inherit !important}.duet-hero.duet-hero-campaign .duet-hero-text,.duet-hero.duet-hero-section .duet-hero-text{width:100%}.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading),.duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading){font-size:36px}@media (min-width: 36em){.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading),.duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading){font-size:48px}}@media (min-width: 62em){.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading),.duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading){font-size:64px}}.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section .duet-hero-text duet-paragraph{margin:0 auto}@media (min-width: 22.5em){.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section .duet-hero-text duet-paragraph{width:90%}}@media (min-width: 25em){.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section .duet-hero-text duet-paragraph{width:80%}}@media (min-width: 30em){.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section .duet-hero-text duet-paragraph{width:70%}}@media (min-width: 36em){.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section .duet-hero-text duet-paragraph{width:70%}}@media (min-width: 62em){.duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section .duet-hero-text duet-paragraph{width:52%}}.duet-hero.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-hero-section .duet-hero-heading{display:flex;align-items:center;height:6rem;padding:0 1rem;margin:1rem 0 4.5rem}@media (min-width: 22.5em){.duet-hero.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-hero-section .duet-hero-heading{margin:2rem 0 4rem}}@media (min-width: 36em){.duet-hero.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-hero-section .duet-hero-heading{margin:3rem 0 8rem}}@media (min-width: 48em){.duet-hero.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-hero-section .duet-hero-heading{margin:4rem 0 10rem}}@media (min-width: 62em){.duet-hero.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-hero-section .duet-hero-heading{margin:5rem 0 10rem}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-hero-section .duet-hero-heading{margin:6rem 0 10rem}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-hero-section .duet-hero-heading{margin:8rem 0 11rem}}.duet-hero.duet-hero-campaign .duet-hero-wrapper.fluid,.duet-hero.duet-hero-campaign .duet-hero-wrapper.narrow,.duet-hero.duet-hero-section .duet-hero-wrapper.fluid,.duet-hero.duet-hero-section .duet-hero-wrapper.narrow{padding:0 16px}@media (min-width: 48em){.duet-hero.duet-hero-section{min-height:490px}}@media (min-width: 62em){.duet-hero.duet-hero-section{min-height:auto}}@media (min-width: 76.25em){.duet-hero.duet-hero-section{min-height:560px}}@media (min-width: 62em){.duet-hero.duet-hero-section .background img{width:100%;height:auto}}@media (min-width: 62em){.duet-hero.duet-hero-section .background{width:1400px;height:436px;overflow:hidden}}@media (min-width: 76.25em){.duet-hero.duet-hero-section .background{width:1536px;height:516px}}@media (min-width: 106.25em){.duet-hero.duet-hero-section .background{width:1536px}}.duet-hero.duet-hero-product{position:relative;padding:0 0 48px;margin:0;background:rgb(255, 255, 255)}@media (max-width: 35.9375em){.duet-hero.duet-hero-product{padding-top:240px}}@media (max-width: 22.5em){.duet-hero.duet-hero-product{padding-top:200px}}@media (min-width: 36em){.duet-hero.duet-hero-product{padding-top:260px}}@media (min-width: 48em){.duet-hero.duet-hero-product{padding-top:250px}}@media (min-width: 48em){.duet-hero.duet-hero-product{min-height:400px;padding:72px 0}}@media (min-width: 62em){.duet-hero.duet-hero-product{min-height:500px;padding:96px 0}}@media (min-width: 76.25em){.duet-hero.duet-hero-product{min-height:575px;padding:120px 0}}.duet-hero.duet-hero-product .background-area{position:absolute;top:0;width:100%;height:600px;overflow:hidden;pointer-events:none}.duet-hero.duet-hero-product .background-area *{pointer-events:auto}.duet-hero.duet-hero-product .background-container{position:absolute;top:-150px;width:100%;height:600px;overflow:hidden;pointer-events:none}.duet-hero.duet-hero-product .background-container *{pointer-events:auto}@media (min-width: 62em){.duet-hero.duet-hero-product .background-container{top:-48px}}.duet-hero.duet-hero-product .background{position:absolute;top:145px;width:100%;overflow:visible}.duet-hero.duet-hero-product .background .background-mask{display:none}@media (min-width: 48em){.duet-hero.duet-hero-product .background{top:130px}}@media (min-width: 62em){.duet-hero.duet-hero-product .background{top:35px}}@media (min-width: 62em){.duet-hero.duet-hero-product .background{position:absolute;right:0;left:0;max-width:1440px;height:100%;margin:0 auto}}.duet-hero.duet-hero-product .background .brand-shaped-image{position:absolute;top:-160px;right:-15%;z-index:0;width:375px;height:375px;overflow:hidden;border-radius:20%;transform:rotate(7deg)}@media (max-width: 35.9375em){.duet-hero.duet-hero-product .background .brand-shaped-image{top:-160px;right:-60px;width:360px;height:360px}}@media (max-width: 22.5em){.duet-hero.duet-hero-product .background .brand-shaped-image{top:-120px;right:-14px;width:290px;height:290px}}@media (min-width: 36em){.duet-hero.duet-hero-product .background .brand-shaped-image{top:-175px;right:-20px;width:400px;height:400px}}@media (min-width: 48em){.duet-hero.duet-hero-product .background .brand-shaped-image{top:-145px;right:-150px;width:414px;height:414px}}@media (min-width: 860px){.duet-hero.duet-hero-product .background .brand-shaped-image{right:-105px}}@media (min-width: 960px){.duet-hero.duet-hero-product .background .brand-shaped-image{right:-45px}}@media (min-width: 62em){.duet-hero.duet-hero-product .background .brand-shaped-image{top:-190px;right:-150px;width:552px;height:552px}}@media (min-width: 1100px){.duet-hero.duet-hero-product .background .brand-shaped-image{right:-35px}}@media (min-width: 76.25em){.duet-hero.duet-hero-product .background .brand-shaped-image{top:-300px;right:-128px;width:736px;height:736px}.duet-hero.duet-hero-product .background .brand-shaped-image.narrow{right:-160px}}@media (min-width: 1300px){.duet-hero.duet-hero-product .background .brand-shaped-image.narrow{right:-128px}}.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-wrapper{position:relative;width:100%;height:100%}.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg{position:absolute;bottom:0;left:50%;z-index:1;width:600px;height:256px;transform:rotate(-7deg) translate(-50%, 0)}.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg picture{display:block}.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg img{position:absolute;top:50%;left:40px;width:100%;height:auto;transform:translateY(-50%)}@media (max-width: 35.9375em){.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg{width:520px;height:240px}}@media (max-width: 22.5em){.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg{width:440px;height:200px}}@media (min-width: 36em){.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg{width:600px;height:260px}}@media (min-width: 48em){.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg{width:500px;height:292px}}@media (min-width: 62em){.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg{width:720px;height:420px}}@media (min-width: 76.25em){.duet-hero.duet-hero-product .background .brand-shaped-image .brand-shaped-image-bg{width:950px;height:540px}}.duet-hero.duet-hero-product .background .brand-shape{position:absolute;background:rgb(228, 241, 247);border-radius:25%;mix-blend-mode:normal;transform:rotate(7deg)}@media (max-width: 35.9375em){.duet-hero.duet-hero-product .background .brand-shape{top:20px;right:210px;width:200px;height:200px}}@media (max-width: 22.5em){.duet-hero.duet-hero-product .background .brand-shape{top:24px;right:199px;width:162px;height:162px}}@media (min-width: 36em){.duet-hero.duet-hero-product .background .brand-shape{top:25px;right:290px;width:220px;height:220px}}@media (min-width: 48em){.duet-hero.duet-hero-product .background .brand-shape{top:90px;right:145px;width:225px;height:225px}}@media (min-width: 860px){.duet-hero.duet-hero-product .background .brand-shape{right:195px}}@media (min-width: 960px){.duet-hero.duet-hero-product .background .brand-shape{right:245px}}@media (min-width: 62em){.duet-hero.duet-hero-product .background .brand-shape{top:115px;right:228px;width:300px;height:300px}}@media (min-width: 1100px){.duet-hero.duet-hero-product .background .brand-shape{right:343px}}@media (min-width: 76.25em){.duet-hero.duet-hero-product .background .brand-shape{right:394px;width:400px;height:400px}}.duet-hero.duet-hero-product .background .brand-shaped-icon{position:absolute;display:flex;align-items:center;justify-content:center;background:rgba(0, 119, 179, 0.85);border-radius:25%;mix-blend-mode:normal;transform:rotate(7deg)}@media (max-width: 35.9375em){.duet-hero.duet-hero-product .background .brand-shaped-icon{top:165px;right:25px;width:69px;height:69px}}@media (max-width: 22.5em){.duet-hero.duet-hero-product .background .brand-shaped-icon{top:138px;right:50px;width:57px;height:57px}}@media (min-width: 36em){.duet-hero.duet-hero-product .background .brand-shaped-icon{top:175px;right:125px;width:78px;height:78px}}@media (min-width: 48em){.duet-hero.duet-hero-product .background .brand-shaped-icon{top:220px;right:60px}}@media (min-width: 860px){.duet-hero.duet-hero-product .background .brand-shaped-icon{right:110px}}@media (min-width: 960px){.duet-hero.duet-hero-product .background .brand-shaped-icon{right:160px}}@media (min-width: 62em){.duet-hero.duet-hero-product .background .brand-shaped-icon{top:296px;right:120px;width:105px;height:105px}}@media (min-width: 1100px){.duet-hero.duet-hero-product .background .brand-shaped-icon{right:235px}}@media (min-width: 76.25em){.duet-hero.duet-hero-product .background .brand-shaped-icon{top:345px;right:245px;width:140px;height:140px}}.duet-hero.duet-hero-product .background .brand-shaped-icon duet-icon{transform:rotate(-7deg)}@media (max-width: 35.9375em){.duet-hero.duet-hero-product .background .brand-shaped-icon duet-icon{width:100%;height:100%}}@media (min-width: 36em){.duet-hero.duet-hero-product .background .brand-shaped-icon duet-icon{width:72px;height:72px}}@media (min-width: 48em){.duet-hero.duet-hero-product .background .brand-shaped-icon duet-icon{width:72px;height:72px}}@media (min-width: 62em){.duet-hero.duet-hero-product .background .brand-shaped-icon duet-icon{width:86px;height:86px}}@media (min-width: 76.25em){.duet-hero.duet-hero-product .background .brand-shaped-icon duet-icon{width:104px;height:104px}}.duet-hero.duet-hero-product .duet-hero-wrapper{max-width:100%;margin:0 auto}.duet-hero.duet-hero-product .duet-hero-wrapper .duet-hero-text{margin-top:0}@media (min-width: 62em){.duet-hero.duet-hero-product .duet-hero-wrapper .duet-hero-heading{margin-top:0}}.duet-hero.duet-hero-product .duet-hero-wrapper.fluid,.duet-hero.duet-hero-product .duet-hero-wrapper.narrow{padding:0 16px}@media (min-width: 36em){.duet-hero.duet-hero-product .duet-hero-wrapper.fluid{padding:0 28px}}@media (min-width: 62em){.duet-hero.duet-hero-product .duet-hero-wrapper.fluid{padding:0 56px}}@media (min-width: 76.25em){.duet-hero.duet-hero-product .duet-hero-wrapper.fluid{max-width:1110px;padding:0}}@media (min-width: 48em){.duet-hero.duet-hero-product .duet-hero-wrapper.fluid .duet-hero-text{width:60%}}@media (min-width: 62em){.duet-hero.duet-hero-product .duet-hero-wrapper.fluid .duet-hero-text{width:50%}}@media (min-width: 76.25em){.duet-hero.duet-hero-product .duet-hero-wrapper.fluid .duet-hero-text{width:47%}}.duet-hero.duet-hero-product .duet-hero-wrapper.narrow{max-width:888px}@media (min-width: 36em){.duet-hero.duet-hero-product .duet-hero-wrapper.narrow{padding:0 48px}}@media (min-width: 48em){.duet-hero.duet-hero-product .duet-hero-wrapper.narrow{padding:0 72px}}@media (min-width: 48em){.duet-hero.duet-hero-product .duet-hero-wrapper.narrow .duet-hero-text{width:60%}}@media (min-width: 62em){.duet-hero.duet-hero-product .duet-hero-wrapper.narrow .duet-hero-text{width:47%}}.duet-hero.duet-hero-product.duet-theme-turva{background:rgb(255, 255, 255)}.duet-hero.duet-hero-product.duet-theme-turva .background .background-mask{position:absolute;top:0;left:0;display:block;width:721px;height:256.85px;pointer-events:none;background-image:url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIxIiBoZWlnaHQ9IjI1NyIgdmlld0JveD0iMCAwIDcyMSAyNTciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yODIwXzY5OTkxKSI+CjxwYXRoIGQ9Ik04MC4xNzA1IDIzLjE4MTVDOTEuOTY5OSAxOC44NjU5IDEwMi44NyAxMS42NTU5IDExMi45MDkgMS41NjQ0OEMxMjMuNzcgLTguMzA1MjcgMTM0LjM4MiAtMTguMjAxMSAxNDQuODI2IC0yOC4xODgyQzE1NS4yNDMgLTM4LjE2MjIgMTY1LjkwOCAtNDguMDg0MSAxNzYuNzQzIC01Ny45Mjc4QzE3OC44MTYgLTU5LjA0OSAxODAuNDk4IC02MC4yODc3IDE4MS43ODggLTYxLjY1NjdDMTgzLjA2NiAtNjMuMDEyNiAxODUuNDY1IC02Mi4yODI1IDE4OS4wMTIgLTU5LjQ3OTNDMTg0LjczNSAtNTEuMTM1IDE4MC43NTkgLTQyLjk2MDIgMTc3LjAxNyAtMzQuOTAyN0MxNzMuMjg4IC0yNi44NDUyIDE2Ny42ODEgLTE5LjEyNjggMTYwLjIxMSAtMTEuNzYwM0MxNTIuNzUzIC00LjM4MDgzIDE0NC45NTYgMy4zMTE1MiAxMzYuODQ3IDExLjM2OUMxMjguNzI0IDE5LjQyNjUgMTIwLjk2NiAyNy4xNDUgMTEzLjQ4MyAzNC40OTg0Qzk3LjQ5OCA0OS44MTggNzkuNjYyIDU2LjAyNDEgNjAuMDAwOCA1My4xNjg4QzQwLjI4NzQgNTAuMzEzNSAyNS41NDE0IDM5LjA3NDcgMTUuNjk3NyAxOS40Nzg2QzMuOTI0NDUgLTIuMzcyOTkgLTEuMjI1NTUgLTI0LjQ3MjQgMC4yNDc3NDMgLTQ2Ljc4MDNDMS4yNTE2NyAtNjcuNDg0NiAzLjQwMjkzIC04Ny43OTc4IDYuODA1ODQgLTEwNy43NzJDMTAuMTk1NyAtMTI3LjczMyAxNS43MTA4IC0xNDcuNDg2IDIzLjMzOCAtMTY3LjA0M0MyNi4zMTA3IC0xNzQuMDMxIDI5LjAwOTUgLTE4MC44NSAzMS40NzM3IC0xODcuNTY0QzMzLjkxMTggLTE5NC4yMjcgMzYuNTMyNCAtMjAwLjY2OCAzOS4yNTc0IC0yMDYuODQ4QzQxLjgxMjggLTIwOS41NzIgNDMuNDY4NiAtMjEyLjEyOCA0NC4xODU3IC0yMTQuNTRDNTMuMDI1NSAtMjI5LjM3NyA2Mi44MyAtMjM3Ljk5NSA3My42Mzg1IC0yNDAuNDMzQzg0LjM5NDggLTI0Mi44NzEgOTguMTM2OSAtMjM5LjgyMSAxMTQuODEyIC0yMzEuMzJDMTI3Ljk0MiAtMjI1LjYwOSAxMzMuMzkyIC0yMTYuMTA1IDEzMS4xNDkgLTIwMi43OTNDMTMwLjE3MSAtMTkwLjgzNyAxMjcuOTk0IC0xNzkuMjU5IDEyNC42MTcgLTE2OC4wMkMxMjAuMDQxIC0xNTIuNzc5IDExNS40MzggLTEzNy41NTEgMTEwLjg0OSAtMTIyLjMyMkMxMDYuMjczIC0xMDcuMDgxIDEwMS4yNzkgLTkxLjk2OTkgOTUuODk0MyAtNzcuMDAyM0M4NS41OTQzIC00OC42MDU3IDc5LjQyNzQgLTE5LjQyNjcgNzcuNDA2NSAxMC41NjA2Qzc3LjcxOTQgMTIuNDEyIDc4LjA0NTMgMTQuMjYzNSA3OC4zNTgzIDE2LjA4ODhDNzguNjcxMiAxNy45NDAyIDc5LjI3MDkgMjAuMyA4MC4xNzA1IDIzLjE5NDRNMTEwLjkxNCAtMjk2Ljc1N0MxMDkuNTQ1IC0yOTguMDM1IDEwNy4zMTYgLTI5OS4zNTIgMTA0LjIzOSAtMzAwLjczNEMxMDEuMTYyIC0zMDIuMDkgOTguMjQxMiAtMzA0LjA1OSA5NS41NDIzIC0zMDYuNjI3QzkwLjA3OTQgLTMxMS43NzcgODYuOTc2MyAtMzE4LjE2NiA4Ni4yMzMyIC0zMjUuODE5Qzg1LjQ2NCAtMzMzLjQ3MiA4Ny4zODA1IC0zNDAuNTUyIDkxLjk2OTkgLTM0Ny4wNThDOTMuMjIxNSAtMzQ4LjQxNCA5NC4xNDcyIC0zNDkuMjM1IDk0LjY4MTggLTM0OS41MjJDOTUuMTkwMyAtMzQ5Ljc5NiA5Ni4xMDI5IC0zNTAuNjA0IDk3LjM5MzcgLTM1MS45OTlDMTA5LjY3NSAtMzU3LjkwNiAxMjIuNDE0IC0zNTYuNjkzIDEzNS42MzQgLTM0OC4zMzZDMTQ2Ljk1MSAtMzQyLjMyNSAxNTIuMDg4IC0zMzMuMzE2IDE1MS4xMzYgLTMyMS4zNkwxNDguMjI5IC0zMTEuNzM4QzE0NC42NjkgLTI5Ny4wNyAxMzUuNTY5IC0yOTEuNTAzIDEyMC45MTQgLTI5NS4wNjJDMTE5LjA1IC0yOTQuNzIzIDExNS43MzggLTI5NS4yOTcgMTEwLjkxNCAtMjk2Ljc0NCIgZmlsbD0iI0Y1RjVGNyIvPgo8cGF0aCBkPSJNMjQyLjc2NyAyMTUuNTE4QzI0NS4wODggMjEzLjU4OCAyNDcuMjc4IDIxMi4xMDIgMjQ5LjM3NyAyMTAuOTY4QzI1MS40NSAyMDkuODU5IDI1My41MzYgMjA4Ljc1MSAyNTUuNjIyIDIwNy42MDRDMjc0LjIyNyAxOTIuMjg0IDI5MC41NzcgMTc3LjE2IDMwNC43MjMgMTYyLjE5M0MzMTUuNjg4IDE0OC45NDYgMzI2LjYxNCAxMzUuODU2IDMzNy40ODggMTIyLjk4N0MzNDguMzYxIDExMC4xMTkgMzU4Ljg4MyA5Ni45Mzc1IDM2OS4wNjYgODMuNDE3MUMzNzYuNDQ1IDczLjQzMDEgMzg0LjU4MSA2My44NjAyIDM5My40NDcgNTQuNzQ2NkM0MDIuMyA0NS42NDYxIDQxMC44MjYgMzYuMjMyNyA0MTkuMDAxIDI2LjQ4MDNDNDIxLjgwNCAyMi45NzMxIDQyNC4yMjkgMjAuMDAwNCA0MjYuMjg5IDE3LjU0OTNDNDI4LjMyMyAxNS4xMjQzIDQzMC41MDEgMTIuOTMzOCA0MzIuODM1IDExLjAxNzNDNDM0LjkwOCA5LjkwOTA2IDQzNi43NDYgOS41ODMwMSA0MzguMzYzIDEwLjA2NTRDNDM5Ljk1MyAxMC41NDc5IDQ0MS43OTIgMTAuMjQ4IDQ0My45MDQgOS4xMTM3MUM0NDMuMTg3IDExLjUxMjcgNDQyLjgyMiAxMy4zOTAzIDQ0Mi44ODcgMTQuNjk0QzQ0Mi45MjYgMTYuMDIzOSA0NDIuMjg3IDE3LjM2NjggNDQxLjAwOSAxOC43MjI3QzQyNC42NDcgNDYuOTYzIDQwNy42ODQgNzIuODE3MyAzOTAuMTIyIDk2LjMxMTdDMzc2LjY0MSAxMTQuOTU2IDM2My4xNDcgMTMyLjkwOSAzNDkuNjM5IDE1MC4yMjRDMzM2LjEwNiAxNjcuNTI1IDMyMi4yMiAxODUuMzYxIDMwNy45NDQgMjAzLjc1OEMzMDEuNTI5IDIxMC41MzcgMjk1LjM4OCAyMTcuMiAyODkuNDk1IDIyMy43MTlDMjgzLjU4OSAyMzAuMjI1IDI3Ny40MzUgMjM2LjkgMjcxLjAyIDI0My42NjdDMjU4LjkyMSAyNTQuODggMjQ0LjQ4OCAyNTkuMjM0IDIyNy43MzQgMjU2Ljc5NkMxOTYuODYgMjUxLjg4MSAxNzYuMDI1IDIzNi44NzQgMTY1LjIxNyAyMTEuNzg5QzE1NC42OTUgMTg4LjU2OCAxNDkuNTMyIDE2Ni41MDggMTQ5LjcwMiAxNDUuNjA4QzE0Ny45NDIgMTEzLjY3OCAxNDguMzA3IDgxLjk0MzggMTUwLjgxIDUwLjQxOEMxNTMuMyAxOC44NzkyIDE1OC4zMiAtMTIuMzIwNyAxNjUuODY5IC00My4yMDc3QzE4MC4xNzIgLTEwNS4yMDMgMTk4LjU2OCAtMTY2LjQwMyAyMjEuMTExIC0yMjYuODA4QzIzMi4wODkgLTI1Ny41MjYgMjQ0LjQyMyAtMjg3LjYxOCAyNTguMSAtMzE3LjA5NkMyNzEuNzc2IC0zNDYuNTc1IDI4Ni4zNzkgLTM3NS41MDcgMzAxLjk3MiAtNDA0LjAwOEMzMTIuOTUgLTQyNS45OSAzMjQuNjMyIC00NDcuMzQ2IDMzNi45NzkgLTQ2OC4wNjNDMzQ5LjMxMyAtNDg4Ljc1NCAzNjIuNDk1IC01MDkuMjI0IDM3Ni40MzIgLTUyOS40NTlDNDAzLjg2NCAtNTY4LjI5OSA0MzQuMTkgLTYwMy42NzEgNDY3LjM5OCAtNjM1LjU3NUM0NzUuNjM4IC02NDIuNjgxIDQ4My45OTUgLTY0OS4zMTcgNDkyLjQwNSAtNjU1LjUxQzUwMC44MjggLTY2MS42NzcgNTEwLjM5NyAtNjY2LjY1OCA1MjEuMTU0IC02NzAuMzk5QzU0NS4yNzQgLTY3Ny45NjEgNTY3LjcxMiAtNjc2Ljg3OSA1ODguMzkxIC02NjcuMTY2QzYwNC43MjcgLTY2MC40NzggNjEzLjY3MSAtNjQ5LjUxMyA2MTUuMjEgLTYzNC4yMTlDNjE3LjU5NiAtNjI0Ljc1NCA2MTguMTk1IC02MTMuNjcxIDYxNi45ODMgLTYwMC45NTlDNjEwLjMyIC01NTguNDgxIDU5Ny44NTYgLTUxNS41MzQgNTc5LjU1MSAtNDcyLjE5NkM1NjUuNDMxIC00MzkuODIzIDU0OS4wODEgLTQwOC43NTMgNTMwLjUyOCAtMzc5LjAwMUM1MTEuOTM2IC0zNDkuMjYxIDQ5Mi42MTQgLTMxOS45NTIgNDcyLjYgLTI5MS4wOTlDNDY1LjQ1NiAtMjgxLjkyIDQ1Ny45NDYgLTI3MS41MDMgNDUwLjEyMyAtMjU5LjkxMkM0MzMuNTc4IC0yMzYuOTc4IDQxNS42MzcgLTIxNS4xMjYgMzk2LjI4OSAtMTk0LjM1N0MzNzYuOTAyIC0xNzMuNTYxIDM1NS44NDUgLTE1NC4zOTYgMzMzLjA2OCAtMTM2LjgyQzMyMC4zODIgLTEyNi42OSAzMTIuNTMzIC0xMTUuMDg2IDMwOS40ODIgLTEwMi4wNDhDMzA0LjE4OSAtODQuNDQ2OCAyOTguOTc0IC02Ny4wNDExIDI5My43OTggLTQ5Ljg0NEMyODguNjIxIC0zMi42NDY5IDI4My43NzEgLTE1LjExMDggMjc5LjI4NiAyLjcxMjFDMjc1LjI3MSAxOC45NzA1IDI3MS4zMDcgMzQuOTgxIDI2Ny40MjIgNTAuODM1MkMyNjMuNTIzIDY2LjY2MzMgMjU5Ljk2NCA4Mi44NDM0IDI1Ni43NyA5OS4zMzY1QzI1My41NDkgMTE1LjgwMyAyNTAuNjgxIDEzMi42MjIgMjQ4LjE1MiAxNDkuNzQxQzI0NS42MDkgMTY2Ljg2IDI0My4xMzIgMTgzLjc5NyAyNDAuNzQ2IDIwMC40OThDMjQxLjA0NiAyMDIuMzM3IDI0MS4zMDcgMjA0LjM5NiAyNDEuNTE1IDIwNi42MTNDMjQxLjY5OCAyMDguODY4IDI0Mi4xMjggMjExLjg0MSAyNDIuNzggMjE1LjUxOE01NjQuMzIyIC02MjIuMDgxQzU2MS43MjggLTYxOS4zNDMgNTU4LjExNiAtNjE2LjA4MyA1NTMuNDg4IC02MTIuMjM3QzU0Mi4yMzYgLTU5OC4xNjkgNTMwLjk1OCAtNTgzLjkwNiA1MTkuNjI4IC01NjkuNDU5QzUwOC4yNTkgLTU1NC45ODcgNDk4LjA1IC01MzkuOTQxIDQ4OS4wMTUgLTUyNC4zNzRDNDU5LjIzNiAtNDc0Ljg2OSA0MzIuNzY5IC00MjMuOTU2IDQwOS42MDEgLTM3MS42MDhDMzg2LjQxOSAtMzE5LjI0OCAzNjUuMTkzIC0yNjUuNDQgMzQ1LjkzNiAtMjEwLjE3MkMzNDUuNzAyIC0yMDkuMzc3IDM0NS43MDIgLTIwOC43MTIgMzQ2LjAxNSAtMjA4LjE5QzM0Ni4yNjIgLTIwNy42NTYgMzQ2LjE4NCAtMjA2LjU4NyAzNDUuNzE1IC0yMDUuMDA5QzM0OS4zNzggLTIwNS42MjIgMzUxLjM2IC0yMDYuMzM5IDM1MS42MDggLTIwNy4xNDdDMzU1LjQ2NyAtMjExLjIxNSAzNTkuNTA5IC0yMTUuMjMxIDM2My43NDYgLTIxOS4xOTRDMzY3Ljk5NyAtMjIzLjE0NSAzNzEuNzY1IC0yMjcuNjgyIDM3NS4wNzYgLTIzMi44MTlDNDAyLjg4NiAtMjY3LjE2MSA0MjguNzE0IC0zMDIuMTQyIDQ1Mi41MzUgLTMzNy43MzZDNDc2LjM2OCAtMzczLjMwMyA0OTguNTMzIC00MTAuNjk2IDUxOS4wNjggLTQ0OS44ODhDNTQzLjg1MyAtNDk3LjM3MiA1NTkuNTc3IC01NDYuNzM0IDU2Ni4yNTIgLTU5Ny45MzRDNTY2LjY0MyAtNjAyLjE4NSA1NjYuOTE3IC02MDYuMDE4IDU2Ny4xIC02MDkuNDZDNTY3LjI0MyAtNjEyLjkwMiA1NjYuMzE3IC02MTcuMSA1NjQuMzM2IC02MjIuMDgxIiBmaWxsPSIjRjVGNUY3Ii8+CjxwYXRoIGQ9Ik02OTYuNTE1IDE4OS4wNjRDNzA0LjYzOCAxODQuMzk2IDcxMi42ODIgMTc5LjYxMSA3MjAuNjg4IDE3NC43MzVWMTM0LjA1N0M2OTcuODE5IDE0OC41MDMgNjczLjgwMyAxNTkuNjM3IDY0OC42MDEgMTY3LjQyMUM2MjIuMDgyIDE3NS42MzUgNTk0LjU1OCAxODAuNjY3IDU2Ni4wMTggMTgyLjU1OEM1NTAuOTIgMTgzLjI2MiA1NDEuMjk4IDE4MS44OTMgNTM3LjEgMTc4LjQzOEM1MzIuODc2IDE3NS4wMDkgNTI5LjA5NSAxNjUuNzUyIDUyNS43NTcgMTUwLjc0NUw1MjMuOTU4IDEzMC41NDlDNTIzLjMzMiAxMTguMTI0IDUyNC43NjYgMTA2Ljc1NSA1MjguMzM5IDk2LjQyODlDNTMxLjg1OSA4Ni4xNTUgNTM2LjEyMiA3NS42MjAzIDU0MS4xMTYgNjQuODc3QzU0NS42MTQgNjQuNDg1OSA1NDkuNTY0IDY0LjM2ODUgNTUzLjAzMiA2NC41MzhDNTU2LjQ3NSA2NC42OTQ1IDU2MC40MzggNjQuNTc3MSA1NjQuOTQ5IDY0LjE3MjlDNTg1Ljg3NSA2NC4zNjg1IDYwNy42MzYgNjEuNzQ3OSA2MzAuMjY5IDU2LjI4NDlDNjUyLjA4MiA1MC42MjY1IDY3MC40IDQxLjI3ODIgNjg1LjI3NyAyOC4yNTMzQzY5NC45MzggMTkuNzc4NiA3MDQuMDI1IDEwLjM3ODMgNzEyLjU2NSAwLjA5MTMwODZINjM5LjUyNkM2MjAuMjU2IDE2Ljk4ODUgNTk2Ljk0NCAyNy40ODQxIDU2OS41MzkgMzEuNDYwN0M1NjcuNjYxIDMxLjc3MzYgNTY2LjM1NyAzMS44MTI3IDU2NS41NzUgMzEuNTY1QzU2NC43NTQgMzEuMzMwMyA1NjMuODI4IDMxLjUxMjggNTYyLjgxMSAzMi4wNDc0QzU2MS45OSAzMS44MTI3IDU2MS42NTEgMzEuNDk5OCA1NjEuNzgxIDMxLjA4MjZDNTYxLjg5OCAzMC42OTE1IDU2MS41NDYgMzAuMzY1NSA1NjAuNzUxIDMwLjEzMDhDNTYwLjk5OSAyOS4zMzU1IDU2MC45MDcgMjguODY2MSA1NjAuNTE2IDI4Ljc2MThDNTYwLjA5OSAyOC42MTg0IDU2MC4wMzQgMjguMTYyIDU2MC4yOTUgMjcuMzUzN0M1NjUuMzc5IDE4LjE3NDkgNTcwLjc3NyA5LjEwMDU1IDU3Ni40MzYgMC4wOTEzMDg2SDQzMC4xNzZDNDI0LjIwNCAxMi42NzMgNDE5LjA1NCAyNS45NDU2IDQxNC44MyAzOS45ODc1QzQwNi40NzMgNjEuOTU2NSA0MDQuMjgyIDgyLjI2OTcgNDA4LjI4NSAxMDAuOTY2QzQxMi4wMTQgMTIwLjQ1OCA0MTguODMzIDEzOC40NjMgNDI4LjcyOCAxNTQuOTgyQzQzOC42MTEgMTcxLjUyOCA0NTIuNDU4IDE4NS4wODcgNDcwLjI1NCAxOTUuN0M0OTAuNzM3IDIwOC44ODEgNTEyLjE0NSAyMTcuNzIxIDUzNC40MDEgMjIyLjI0NUM1NTYuNjQ0IDIyNi43NTcgNTc5Ljg2NSAyMjYuNTA5IDYwNC4xMTUgMjIxLjU2N0M2MDkuNjQzIDIyMC42MTYgNjE1LjI2MyAyMTkuNDY4IDYyMC45MjEgMjE4LjA5OUM2MjYuNTY3IDIxNi43NTYgNjMyLjI3NyAyMTUuMTkyIDYzOC4wNTMgMjEzLjQxOUM2NTkuMDU3IDIwNy41MjUgNjc4LjU2MiAxOTkuMzkgNjk2LjU0MSAxODkuMDc3IiBmaWxsPSIjRjVGNUY3Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMjgyMF82OTk5MSI+CjxyZWN0IHdpZHRoPSI3MjEiIGhlaWdodD0iMjU2Ljg0OCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K\");background-repeat:no-repeat}@media (min-width: 48em){.duet-hero.duet-hero-product.duet-theme-turva .background .background-mask{left:181px}}.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{margin:0 auto;border-radius:0;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transform:none}@media (max-width: 35.9375em){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{top:-120px;width:385px}}@media (max-width: 22.5em){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{top:-95px;width:320px}}@media (min-width: 36em){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{top:-135px;width:420px}}@media (min-width: 48em){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{top:-110px;right:-110px;width:418px}}@media (min-width: 860px){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{right:-75px}}@media (min-width: 960px){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{right:-40px}}@media (min-width: 62em){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{top:-130px;right:-100px;width:552px}}@media (min-width: 1100px){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{right:-35px}}@media (min-width: 76.25em){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image{top:-215px;width:736px}.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image.narrow{right:-115px}}@media (min-width: 1300px){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image.narrow{right:-50px}}@media (min-width: 1400px){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image.narrow{right:-35px}}.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-image .brand-shaped-image-bg{transform:translate(-50%, 0)}.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-icon{background:rgba(230, 23, 64, 0.9);-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transform:rotate(0deg)}.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-icon duet-icon{position:relative;top:-6px;transform:rotate(0deg)}@media (min-width: 48em){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-icon duet-icon{top:-8px}}@media (min-width: 62em){.duet-hero.duet-hero-product.duet-theme-turva .background .brand-shaped-icon duet-icon{top:-12px}}.duet-hero.duet-hero-content{padding:0 0 48px;padding-top:236px;background:rgb(255, 255, 255)}@media (min-width: 48em){.duet-hero.duet-hero-content{padding-top:384px}}.duet-hero.duet-hero-content:not(.duet-hero-has-image){padding:72px 0 48px}.duet-hero.duet-hero-content .background-area{position:absolute;width:100%}.duet-hero.duet-hero-content .background{position:absolute;top:-236px;width:100%;height:600px;overflow:hidden;pointer-events:none}.duet-hero.duet-hero-content .background *{pointer-events:auto}.duet-hero.duet-hero-content .background .background-mask{display:none}@media (min-width: 48em){.duet-hero.duet-hero-content .background{top:-384px}}.duet-hero.duet-hero-content .background .brand-shaped-image{position:absolute;top:-165px;right:0;left:30px;z-index:0;width:375px;height:375px;margin:0 auto;overflow:hidden;border-radius:20%;transform:rotate(7deg)}@media (min-width: 48em){.duet-hero.duet-hero-content .background .brand-shaped-image{top:-325px;left:250px;width:687px;height:687px}}.duet-hero.duet-hero-content .background .brand-shaped-image .brand-shaped-image-wrapper{position:relative;width:100%;height:100%}.duet-hero.duet-hero-content .background .brand-shaped-image .brand-shaped-image-bg{position:absolute;bottom:0;left:50%;z-index:1;width:600px;height:256px;transform:rotate(-7deg) translate(-50%, 0)}.duet-hero.duet-hero-content .background .brand-shaped-image .brand-shaped-image-bg picture{display:block}.duet-hero.duet-hero-content .background .brand-shaped-image .brand-shaped-image-bg img{position:absolute;top:0;left:0;width:100%;height:auto}@media (min-width: 48em){.duet-hero.duet-hero-content .background .brand-shaped-image .brand-shaped-image-bg{width:733px;height:413px}}.duet-hero.duet-hero-content .background .brand-shape{position:absolute;top:-25px;right:0;left:-300px;width:240px;height:240px;margin-right:auto;margin-left:auto;background:rgb(0, 119, 179);border-radius:20%;mix-blend-mode:normal;opacity:0.07;transform:rotate(7deg)}@media (min-width: 48em){.duet-hero.duet-hero-content .background .brand-shape{top:80px;left:-400px;width:373px;height:373px}}.duet-hero.duet-hero-content .duet-hero-wrapper{max-width:100%;margin:0 auto}.duet-hero.duet-hero-content .duet-hero-wrapper.fluid,.duet-hero.duet-hero-content .duet-hero-wrapper.narrow{padding:0 16px}@media (min-width: 36em){.duet-hero.duet-hero-content .duet-hero-wrapper.fluid{padding:0 28px}}@media (min-width: 62em){.duet-hero.duet-hero-content .duet-hero-wrapper.fluid{padding:0 56px}}@media (min-width: 76.25em){.duet-hero.duet-hero-content .duet-hero-wrapper.fluid{max-width:1110px;padding:0}}.duet-hero.duet-hero-content .duet-hero-wrapper.narrow{max-width:888px}@media (min-width: 36em){.duet-hero.duet-hero-content .duet-hero-wrapper.narrow{padding:0 48px}}@media (min-width: 48em){.duet-hero.duet-hero-content .duet-hero-wrapper.narrow{padding:0 72px}}.duet-hero.duet-hero-content .duet-hero-text{max-width:100%}@media (min-width: 62em){.duet-hero.duet-hero-content .duet-hero-text{width:80%}}.duet-hero.duet-hero-content .duet-hero-text .duet-hero-pre{margin-top:1rem;margin-bottom:0.5rem}@media (min-width: 62em){.duet-hero.duet-hero-content .duet-hero-text .duet-hero-pre{margin-top:1.5rem;margin-bottom:0}}@media (min-width: 62em){.duet-hero{min-height:290px;padding:111.6px 56px;overflow:visible}}.duet-hero-icon{display:inline-block;vertical-align:top}@media (min-width: 62em){.duet-hero-icon{margin-top:-8px}}@media (min-width: 62em){.duet-hero-heading{margin-top:12px}}@media (min-width: 62em){.duet-hero-heading-has-pre{margin-top:0}}.duet-hero-wrapper{position:relative;width:100%;max-width:1110px;margin:0 auto;text-align:center}.duet-hero-left-align .duet-hero-wrapper{text-align:left}.duet-hero-with-image .duet-hero-wrapper{position:static}@media (min-width: 62em){.duet-hero-wrapper{text-align:left}}.duet-hero-text{max-width:50rem;margin:0 auto}.duet-hero-text-center .duet-hero-text{text-align:center !important}@media (min-width: 48em){.duet-hero-text{width:80%}.duet-hero-left-align .duet-hero-text{margin:0}}@media (min-width: 62em){.duet-hero-text{width:52%;max-width:none;margin-top:-10px;margin-left:0}.duet-hero-text-center .duet-hero-text{margin-left:auto}}.duet-hero:not(.duet-hero-with-image) .duet-hero-image{position:relative;width:100%;max-width:400px;height:0;padding-bottom:50%;margin:28px auto 0}.duet-hero:not(.duet-hero-with-image) .duet-hero-image picture{display:block}.duet-hero:not(.duet-hero-with-image) .duet-hero-image img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;object-position:50% 50%}.duet-hero:not(.duet-hero-with-image) .duet-hero-image img.cover{object-fit:cover}.duet-hero:not(.duet-hero-with-image) .duet-hero-image img.center{object-position:center}@media (min-width: 36em){.duet-hero:not(.duet-hero-with-image) .duet-hero-image{padding-bottom:40%}}@media (min-width: 48em){.duet-hero:not(.duet-hero-with-image) .duet-hero-image{max-width:420px;padding-bottom:34%}.duet-hero-light .duet-hero:not(.duet-hero-with-image) .duet-hero-image{max-width:540px}}@media (min-width: 62em){.duet-hero:not(.duet-hero-with-image) .duet-hero-image{position:absolute;top:50%;right:0;padding-bottom:30%;margin:0;transform:translateY(-50%)}.duet-hero-light .duet-hero:not(.duet-hero-with-image) .duet-hero-image{right:-60px;padding-bottom:26%}.duet-hero-gray .duet-hero:not(.duet-hero-with-image) .duet-hero-image{right:-34px;padding-bottom:20%}}@media (min-width: 62em){.duet-hero-gray:not(.duet-hero-with-image) .duet-hero-image{right:-34px;padding-bottom:20%}}.duet-hero-image-wrapper{position:relative;width:80%;height:0;padding-bottom:80%;margin:-30px auto 36px;overflow:hidden;border-radius:28%;box-shadow:0 0 20px rgba(255, 255, 255, 0.5);transform:rotate(10deg)}@media screen and (min-width: 440px){.duet-hero-image-wrapper{width:300px;padding-bottom:300px}}@media (min-width: 62em){.duet-hero-image-wrapper{position:absolute;top:-60px;right:-50px;width:470px;padding-bottom:470px;margin:0}}@media (min-width: 76.25em){.duet-hero-image-wrapper{top:-70px;right:-60px;width:600px;padding-bottom:600px}}@media screen and (min-width: 1450px){.duet-hero-image-wrapper{top:-70px;right:25px}}.duet-hero-image-wrapper .duet-hero-image{position:absolute;top:-5%;left:-5%;width:110%;height:110%;transform:rotate(-10deg)}.duet-hero-image-wrapper .duet-hero-image picture{display:block}.duet-hero-image-wrapper .duet-hero-image img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}.duet-hero-image-mask{position:relative;margin:-48px auto 0;overflow:hidden}@media (min-width: 62em){.duet-hero-image-mask{position:absolute;top:0;right:0;width:470px;height:460px;margin:0}}@media (min-width: 76.25em){.duet-hero-image-mask{width:650px;height:580px}}@media screen and (min-width: 1450px){.duet-hero-image-mask{right:50%;transform:translateX(110%)}}duet-heading+duet-button{margin-top:12px !important}.duet-hero-links{width:calc(100% + 56px);margin-top:48px;margin-left:-28px}.duet-hero-minimal .duet-hero-links{margin-top:28px}@media (min-width: 36em){.duet-hero-links{margin-top:72px}.duet-hero-minimal .duet-hero-links{margin-top:28px}}@media (min-width: 62em){.duet-hero-links{width:auto;margin:36px 0 0}.duet-hero-minimal .duet-hero-links{margin-top:28px}}.duet-hero-link{display:flex;align-items:center;width:100%;padding:16px 16px 8px;font-weight:600;line-height:1.25;color:rgb(0, 119, 179);text-align:left;-webkit-hyphens:auto;hyphens:auto;text-decoration:none;border-bottom:1px solid rgb(212, 223, 229);transition:background-color 300ms ease}.duet-hero-link:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva .duet-hero-link:focus,.duet-hero-link:focus.duet-theme-turva{outline:2px solid;outline-offset:2px;outline-color:rgba(53, 79, 101, 0.8)}.duet-hero-link:hover,.duet-hero-link:hover .duet-hero-action-arrow{color:rgb(0, 75, 129) !important;background:transparent !important}@media (min-width: 36em){.duet-hero-link{padding:16px 16px 16px 28px}}@media (min-width: 62em){.duet-hero-link{display:inline-flex;width:auto;max-width:350px;padding:0;margin:0 28px 16px 0;border:0;border-radius:4px}}.duet-hero-link:hover{background:rgba(0, 0, 0, 0.02)}@media (min-width: 62em){.duet-hero-link:hover{background:transparent}}.duet-hero-link:first-of-type{border-top:1px solid rgb(212, 223, 229)}@media (min-width: 62em){.duet-hero-link:first-of-type{margin-top:0;border:0}}.duet-hero-link:last-of-type{margin-bottom:-48px}@media (min-width: 62em){.duet-hero-link:last-of-type{margin-right:0;margin-bottom:0}}.duet-hero-link span{margin-top:-8px}@media (min-width: 36em){.duet-hero-link span{margin:0}}.duet-hero-action-icon{margin-right:8px}@media (min-width: 36em){.duet-hero-action-icon{margin-right:12px}}.duet-hero-action-arrow{margin:0 0 0 8px;color:rgb(0, 119, 179)}@media (max-width: 35.9375em){.duet-hero-action-arrow{margin-top:-9px}}.duet-hero-back{margin-bottom:28px !important;display:flex;align-items:center;justify-content:center}.duet-hero-left-align .duet-hero-back{align-items:self-start;justify-content:flex-start}@media (min-width: 36em){.duet-hero-back{margin-bottom:36px !important}.duet-hero-minimal .duet-hero-back{margin-bottom:28px !important}}@media (min-width: 62em){.duet-hero-back{display:block}}.duet-hero-pre{display:inline-block;width:auto;margin-right:8px}.duet-hero-pre+duet-heading{margin-top:0 !important}.duet-hero.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:rgb(230, 23, 64)}.duet-hero.duet-hero-light.duet-theme-turva,.duet-hero.duet-hero-with-image.duet-theme-turva{color:rgb(23, 42, 59);background-image:linear-gradient(rgb(253, 247, 242), #fefbf9)}.duet-hero.duet-hero-light.duet-theme-turva::before,.duet-hero.duet-hero-with-image.duet-theme-turva::before{background-image:linear-gradient(#fefbf9, rgb(255, 255, 255))}.duet-hero.duet-hero-gray.duet-theme-turva{background:rgb(245, 246, 247)}.duet-hero.duet-hero-campaign.duet-theme-turva,.duet-hero.duet-hero-section.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:none}.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape,.duet-hero.duet-hero-section.duet-theme-turva .brand-shape{top:125px;left:-10px;width:350px;height:350px;background:rgb(255, 255, 255);-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transform:none}@media (min-width: 22.5em){.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape,.duet-hero.duet-hero-section.duet-theme-turva .brand-shape{top:143px;left:-30px;width:450px;height:450px}}@media (min-width: 36em){.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape,.duet-hero.duet-hero-section.duet-theme-turva .brand-shape{top:180px;left:0;width:550px;height:550px}}@media (min-width: 48em){.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape,.duet-hero.duet-hero-section.duet-theme-turva .brand-shape{top:220px;width:712.18px;height:712.18px}}@media (min-width: 62em){.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape,.duet-hero.duet-hero-section.duet-theme-turva .brand-shape{top:230px}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape,.duet-hero.duet-hero-section.duet-theme-turva .brand-shape{top:260px}}@media (min-width: 106.25em){.duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape,.duet-hero.duet-hero-section.duet-theme-turva .brand-shape{top:290px}}.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text duet-paragraph{width:98%}@media (min-width: 22.5em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text duet-paragraph{width:90%}}@media (min-width: 25em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text duet-paragraph{width:78%}}@media (min-width: 30em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text duet-paragraph{width:66%}}@media (min-width: 36em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text duet-paragraph{width:65%}}@media (min-width: 48em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text duet-paragraph{width:70%}}@media (min-width: 62em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-text duet-paragraph,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text .duet-hero-subheading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-text duet-paragraph{width:52%}}.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading{margin-bottom:2rem}@media (min-width: 22.5em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading{margin-bottom:2rem}}@media (min-width: 36em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading{margin-bottom:4rem}}@media (min-width: 48em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading{margin-bottom:6rem}}@media (min-width: 62em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading{margin-bottom:7rem}}@media (min-width: 76.25em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading{margin-bottom:8rem}}@media (min-width: 106.25em){.duet-hero.duet-hero-campaign.duet-theme-turva .duet-hero-heading,.duet-hero.duet-hero-section.duet-theme-turva .duet-hero-heading{margin-botton:9rem}}.duet-hero.duet-hero-campaign.duet-theme-turva .background-area .brand-shape,.duet-hero.duet-hero-section.duet-theme-turva .background-area .brand-shape{left:0;background-color:rgb(255, 255, 255);border-radius:24px;mask-image:none}.duet-hero.duet-hero-product.duet-theme-turva{display:flex;flex-direction:column;gap:20px;min-height:auto;padding-top:0;padding-bottom:72px;margin:0 auto}@media (min-width: 62em){.duet-hero.duet-hero-product.duet-theme-turva{flex-direction:row-reverse;gap:40px;padding-top:72px;padding-right:56px;padding-left:56px}}@media (min-width: 76.25em){.duet-hero.duet-hero-product.duet-theme-turva{max-width:1110px;padding-right:0;padding-left:0}}.duet-hero.duet-hero-product.duet-theme-turva .background-area{position:relative;height:auto;overflow:visible}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid{position:relative;top:0;width:100%;height:auto;aspect-ratio:576/250;padding:0;overflow:visible;}@media (min-width: 36em){.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid{height:250px;aspect-ratio:auto}}@media (min-width: 48em){.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid{padding-right:28px;padding-left:28px}}@media (min-width: 62em){.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid{height:auto;aspect-ratio:53/32;padding-right:0;padding-left:0}}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background{position:relative;top:auto;height:100%}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .background-mask,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .background-mask{display:none;background-image:none}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-image,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-image{position:static;width:100%;height:100%;border-radius:0;mask-image:none}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-image .brand-shaped-image-bg,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-image .brand-shaped-image-bg{position:static;width:100%;height:100%;transform:none}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-image .brand-shaped-image-bg picture,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-image .brand-shaped-image-bg picture{display:block;width:100%;height:100%}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-image .brand-shaped-image-bg img,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-image .brand-shaped-image-bg img{position:static;width:100%;height:100%;object-fit:cover;object-position:0 50%}@media (min-width: 48em){.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-image,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-image{border-radius:0 0 12px 12px}}@media (min-width: 62em){.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-image,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-image{border-radius:12px}}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-icon,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-icon{top:auto;right:20px;bottom:-16px;width:auto;height:auto;padding:0;background-color:rgb(23, 42, 59);border-radius:8px;mask-image:none}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-icon duet-icon,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-icon duet-icon{top:0;width:62px;height:62px}@media (min-width: 36em){.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-icon,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-icon{right:40px;bottom:-24px;padding:8px}.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-icon duet-icon,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-icon duet-icon{width:80px;height:80px}}@media (min-width: 48em){.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-icon,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-icon{right:68px}}@media (min-width: 62em){.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.narrow .background .brand-shaped-icon,.duet-hero.duet-hero-product.duet-theme-turva .background-area .background-container.fluid .background .brand-shaped-icon{right:40px}}.duet-hero.duet-hero-product.duet-theme-turva .duet-hero-wrapper .duet-hero-text{width:100%}@media (min-width: 48em){.duet-hero.duet-hero-product.duet-theme-turva .duet-hero-wrapper{margin-top:28px}}@media (min-width: 62em){.duet-hero.duet-hero-product.duet-theme-turva .duet-hero-wrapper{padding:0}}.duet-hero.duet-hero-content.duet-theme-turva{padding:0;margin:20px auto;background:rgb(255, 255, 255)}.duet-hero.duet-hero-content.duet-theme-turva .background-mask{position:absolute;top:0;left:0;display:block;width:721px;height:256.85px;pointer-events:none;background-image:url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIxIiBoZWlnaHQ9IjI1NyIgdmlld0JveD0iMCAwIDcyMSAyNTciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yODIwXzY5OTkxKSI+CjxwYXRoIGQ9Ik04MC4xNzA1IDIzLjE4MTVDOTEuOTY5OSAxOC44NjU5IDEwMi44NyAxMS42NTU5IDExMi45MDkgMS41NjQ0OEMxMjMuNzcgLTguMzA1MjcgMTM0LjM4MiAtMTguMjAxMSAxNDQuODI2IC0yOC4xODgyQzE1NS4yNDMgLTM4LjE2MjIgMTY1LjkwOCAtNDguMDg0MSAxNzYuNzQzIC01Ny45Mjc4QzE3OC44MTYgLTU5LjA0OSAxODAuNDk4IC02MC4yODc3IDE4MS43ODggLTYxLjY1NjdDMTgzLjA2NiAtNjMuMDEyNiAxODUuNDY1IC02Mi4yODI1IDE4OS4wMTIgLTU5LjQ3OTNDMTg0LjczNSAtNTEuMTM1IDE4MC43NTkgLTQyLjk2MDIgMTc3LjAxNyAtMzQuOTAyN0MxNzMuMjg4IC0yNi44NDUyIDE2Ny42ODEgLTE5LjEyNjggMTYwLjIxMSAtMTEuNzYwM0MxNTIuNzUzIC00LjM4MDgzIDE0NC45NTYgMy4zMTE1MiAxMzYuODQ3IDExLjM2OUMxMjguNzI0IDE5LjQyNjUgMTIwLjk2NiAyNy4xNDUgMTEzLjQ4MyAzNC40OTg0Qzk3LjQ5OCA0OS44MTggNzkuNjYyIDU2LjAyNDEgNjAuMDAwOCA1My4xNjg4QzQwLjI4NzQgNTAuMzEzNSAyNS41NDE0IDM5LjA3NDcgMTUuNjk3NyAxOS40Nzg2QzMuOTI0NDUgLTIuMzcyOTkgLTEuMjI1NTUgLTI0LjQ3MjQgMC4yNDc3NDMgLTQ2Ljc4MDNDMS4yNTE2NyAtNjcuNDg0NiAzLjQwMjkzIC04Ny43OTc4IDYuODA1ODQgLTEwNy43NzJDMTAuMTk1NyAtMTI3LjczMyAxNS43MTA4IC0xNDcuNDg2IDIzLjMzOCAtMTY3LjA0M0MyNi4zMTA3IC0xNzQuMDMxIDI5LjAwOTUgLTE4MC44NSAzMS40NzM3IC0xODcuNTY0QzMzLjkxMTggLTE5NC4yMjcgMzYuNTMyNCAtMjAwLjY2OCAzOS4yNTc0IC0yMDYuODQ4QzQxLjgxMjggLTIwOS41NzIgNDMuNDY4NiAtMjEyLjEyOCA0NC4xODU3IC0yMTQuNTRDNTMuMDI1NSAtMjI5LjM3NyA2Mi44MyAtMjM3Ljk5NSA3My42Mzg1IC0yNDAuNDMzQzg0LjM5NDggLTI0Mi44NzEgOTguMTM2OSAtMjM5LjgyMSAxMTQuODEyIC0yMzEuMzJDMTI3Ljk0MiAtMjI1LjYwOSAxMzMuMzkyIC0yMTYuMTA1IDEzMS4xNDkgLTIwMi43OTNDMTMwLjE3MSAtMTkwLjgzNyAxMjcuOTk0IC0xNzkuMjU5IDEyNC42MTcgLTE2OC4wMkMxMjAuMDQxIC0xNTIuNzc5IDExNS40MzggLTEzNy41NTEgMTEwLjg0OSAtMTIyLjMyMkMxMDYuMjczIC0xMDcuMDgxIDEwMS4yNzkgLTkxLjk2OTkgOTUuODk0MyAtNzcuMDAyM0M4NS41OTQzIC00OC42MDU3IDc5LjQyNzQgLTE5LjQyNjcgNzcuNDA2NSAxMC41NjA2Qzc3LjcxOTQgMTIuNDEyIDc4LjA0NTMgMTQuMjYzNSA3OC4zNTgzIDE2LjA4ODhDNzguNjcxMiAxNy45NDAyIDc5LjI3MDkgMjAuMyA4MC4xNzA1IDIzLjE5NDRNMTEwLjkxNCAtMjk2Ljc1N0MxMDkuNTQ1IC0yOTguMDM1IDEwNy4zMTYgLTI5OS4zNTIgMTA0LjIzOSAtMzAwLjczNEMxMDEuMTYyIC0zMDIuMDkgOTguMjQxMiAtMzA0LjA1OSA5NS41NDIzIC0zMDYuNjI3QzkwLjA3OTQgLTMxMS43NzcgODYuOTc2MyAtMzE4LjE2NiA4Ni4yMzMyIC0zMjUuODE5Qzg1LjQ2NCAtMzMzLjQ3MiA4Ny4zODA1IC0zNDAuNTUyIDkxLjk2OTkgLTM0Ny4wNThDOTMuMjIxNSAtMzQ4LjQxNCA5NC4xNDcyIC0zNDkuMjM1IDk0LjY4MTggLTM0OS41MjJDOTUuMTkwMyAtMzQ5Ljc5NiA5Ni4xMDI5IC0zNTAuNjA0IDk3LjM5MzcgLTM1MS45OTlDMTA5LjY3NSAtMzU3LjkwNiAxMjIuNDE0IC0zNTYuNjkzIDEzNS42MzQgLTM0OC4zMzZDMTQ2Ljk1MSAtMzQyLjMyNSAxNTIuMDg4IC0zMzMuMzE2IDE1MS4xMzYgLTMyMS4zNkwxNDguMjI5IC0zMTEuNzM4QzE0NC42NjkgLTI5Ny4wNyAxMzUuNTY5IC0yOTEuNTAzIDEyMC45MTQgLTI5NS4wNjJDMTE5LjA1IC0yOTQuNzIzIDExNS43MzggLTI5NS4yOTcgMTEwLjkxNCAtMjk2Ljc0NCIgZmlsbD0iI0Y1RjVGNyIvPgo8cGF0aCBkPSJNMjQyLjc2NyAyMTUuNTE4QzI0NS4wODggMjEzLjU4OCAyNDcuMjc4IDIxMi4xMDIgMjQ5LjM3NyAyMTAuOTY4QzI1MS40NSAyMDkuODU5IDI1My41MzYgMjA4Ljc1MSAyNTUuNjIyIDIwNy42MDRDMjc0LjIyNyAxOTIuMjg0IDI5MC41NzcgMTc3LjE2IDMwNC43MjMgMTYyLjE5M0MzMTUuNjg4IDE0OC45NDYgMzI2LjYxNCAxMzUuODU2IDMzNy40ODggMTIyLjk4N0MzNDguMzYxIDExMC4xMTkgMzU4Ljg4MyA5Ni45Mzc1IDM2OS4wNjYgODMuNDE3MUMzNzYuNDQ1IDczLjQzMDEgMzg0LjU4MSA2My44NjAyIDM5My40NDcgNTQuNzQ2NkM0MDIuMyA0NS42NDYxIDQxMC44MjYgMzYuMjMyNyA0MTkuMDAxIDI2LjQ4MDNDNDIxLjgwNCAyMi45NzMxIDQyNC4yMjkgMjAuMDAwNCA0MjYuMjg5IDE3LjU0OTNDNDI4LjMyMyAxNS4xMjQzIDQzMC41MDEgMTIuOTMzOCA0MzIuODM1IDExLjAxNzNDNDM0LjkwOCA5LjkwOTA2IDQzNi43NDYgOS41ODMwMSA0MzguMzYzIDEwLjA2NTRDNDM5Ljk1MyAxMC41NDc5IDQ0MS43OTIgMTAuMjQ4IDQ0My45MDQgOS4xMTM3MUM0NDMuMTg3IDExLjUxMjcgNDQyLjgyMiAxMy4zOTAzIDQ0Mi44ODcgMTQuNjk0QzQ0Mi45MjYgMTYuMDIzOSA0NDIuMjg3IDE3LjM2NjggNDQxLjAwOSAxOC43MjI3QzQyNC42NDcgNDYuOTYzIDQwNy42ODQgNzIuODE3MyAzOTAuMTIyIDk2LjMxMTdDMzc2LjY0MSAxMTQuOTU2IDM2My4xNDcgMTMyLjkwOSAzNDkuNjM5IDE1MC4yMjRDMzM2LjEwNiAxNjcuNTI1IDMyMi4yMiAxODUuMzYxIDMwNy45NDQgMjAzLjc1OEMzMDEuNTI5IDIxMC41MzcgMjk1LjM4OCAyMTcuMiAyODkuNDk1IDIyMy43MTlDMjgzLjU4OSAyMzAuMjI1IDI3Ny40MzUgMjM2LjkgMjcxLjAyIDI0My42NjdDMjU4LjkyMSAyNTQuODggMjQ0LjQ4OCAyNTkuMjM0IDIyNy43MzQgMjU2Ljc5NkMxOTYuODYgMjUxLjg4MSAxNzYuMDI1IDIzNi44NzQgMTY1LjIxNyAyMTEuNzg5QzE1NC42OTUgMTg4LjU2OCAxNDkuNTMyIDE2Ni41MDggMTQ5LjcwMiAxNDUuNjA4QzE0Ny45NDIgMTEzLjY3OCAxNDguMzA3IDgxLjk0MzggMTUwLjgxIDUwLjQxOEMxNTMuMyAxOC44NzkyIDE1OC4zMiAtMTIuMzIwNyAxNjUuODY5IC00My4yMDc3QzE4MC4xNzIgLTEwNS4yMDMgMTk4LjU2OCAtMTY2LjQwMyAyMjEuMTExIC0yMjYuODA4QzIzMi4wODkgLTI1Ny41MjYgMjQ0LjQyMyAtMjg3LjYxOCAyNTguMSAtMzE3LjA5NkMyNzEuNzc2IC0zNDYuNTc1IDI4Ni4zNzkgLTM3NS41MDcgMzAxLjk3MiAtNDA0LjAwOEMzMTIuOTUgLTQyNS45OSAzMjQuNjMyIC00NDcuMzQ2IDMzNi45NzkgLTQ2OC4wNjNDMzQ5LjMxMyAtNDg4Ljc1NCAzNjIuNDk1IC01MDkuMjI0IDM3Ni40MzIgLTUyOS40NTlDNDAzLjg2NCAtNTY4LjI5OSA0MzQuMTkgLTYwMy42NzEgNDY3LjM5OCAtNjM1LjU3NUM0NzUuNjM4IC02NDIuNjgxIDQ4My45OTUgLTY0OS4zMTcgNDkyLjQwNSAtNjU1LjUxQzUwMC44MjggLTY2MS42NzcgNTEwLjM5NyAtNjY2LjY1OCA1MjEuMTU0IC02NzAuMzk5QzU0NS4yNzQgLTY3Ny45NjEgNTY3LjcxMiAtNjc2Ljg3OSA1ODguMzkxIC02NjcuMTY2QzYwNC43MjcgLTY2MC40NzggNjEzLjY3MSAtNjQ5LjUxMyA2MTUuMjEgLTYzNC4yMTlDNjE3LjU5NiAtNjI0Ljc1NCA2MTguMTk1IC02MTMuNjcxIDYxNi45ODMgLTYwMC45NTlDNjEwLjMyIC01NTguNDgxIDU5Ny44NTYgLTUxNS41MzQgNTc5LjU1MSAtNDcyLjE5NkM1NjUuNDMxIC00MzkuODIzIDU0OS4wODEgLTQwOC43NTMgNTMwLjUyOCAtMzc5LjAwMUM1MTEuOTM2IC0zNDkuMjYxIDQ5Mi42MTQgLTMxOS45NTIgNDcyLjYgLTI5MS4wOTlDNDY1LjQ1NiAtMjgxLjkyIDQ1Ny45NDYgLTI3MS41MDMgNDUwLjEyMyAtMjU5LjkxMkM0MzMuNTc4IC0yMzYuOTc4IDQxNS42MzcgLTIxNS4xMjYgMzk2LjI4OSAtMTk0LjM1N0MzNzYuOTAyIC0xNzMuNTYxIDM1NS44NDUgLTE1NC4zOTYgMzMzLjA2OCAtMTM2LjgyQzMyMC4zODIgLTEyNi42OSAzMTIuNTMzIC0xMTUuMDg2IDMwOS40ODIgLTEwMi4wNDhDMzA0LjE4OSAtODQuNDQ2OCAyOTguOTc0IC02Ny4wNDExIDI5My43OTggLTQ5Ljg0NEMyODguNjIxIC0zMi42NDY5IDI4My43NzEgLTE1LjExMDggMjc5LjI4NiAyLjcxMjFDMjc1LjI3MSAxOC45NzA1IDI3MS4zMDcgMzQuOTgxIDI2Ny40MjIgNTAuODM1MkMyNjMuNTIzIDY2LjY2MzMgMjU5Ljk2NCA4Mi44NDM0IDI1Ni43NyA5OS4zMzY1QzI1My41NDkgMTE1LjgwMyAyNTAuNjgxIDEzMi42MjIgMjQ4LjE1MiAxNDkuNzQxQzI0NS42MDkgMTY2Ljg2IDI0My4xMzIgMTgzLjc5NyAyNDAuNzQ2IDIwMC40OThDMjQxLjA0NiAyMDIuMzM3IDI0MS4zMDcgMjA0LjM5NiAyNDEuNTE1IDIwNi42MTNDMjQxLjY5OCAyMDguODY4IDI0Mi4xMjggMjExLjg0MSAyNDIuNzggMjE1LjUxOE01NjQuMzIyIC02MjIuMDgxQzU2MS43MjggLTYxOS4zNDMgNTU4LjExNiAtNjE2LjA4MyA1NTMuNDg4IC02MTIuMjM3QzU0Mi4yMzYgLTU5OC4xNjkgNTMwLjk1OCAtNTgzLjkwNiA1MTkuNjI4IC01NjkuNDU5QzUwOC4yNTkgLTU1NC45ODcgNDk4LjA1IC01MzkuOTQxIDQ4OS4wMTUgLTUyNC4zNzRDNDU5LjIzNiAtNDc0Ljg2OSA0MzIuNzY5IC00MjMuOTU2IDQwOS42MDEgLTM3MS42MDhDMzg2LjQxOSAtMzE5LjI0OCAzNjUuMTkzIC0yNjUuNDQgMzQ1LjkzNiAtMjEwLjE3MkMzNDUuNzAyIC0yMDkuMzc3IDM0NS43MDIgLTIwOC43MTIgMzQ2LjAxNSAtMjA4LjE5QzM0Ni4yNjIgLTIwNy42NTYgMzQ2LjE4NCAtMjA2LjU4NyAzNDUuNzE1IC0yMDUuMDA5QzM0OS4zNzggLTIwNS42MjIgMzUxLjM2IC0yMDYuMzM5IDM1MS42MDggLTIwNy4xNDdDMzU1LjQ2NyAtMjExLjIxNSAzNTkuNTA5IC0yMTUuMjMxIDM2My43NDYgLTIxOS4xOTRDMzY3Ljk5NyAtMjIzLjE0NSAzNzEuNzY1IC0yMjcuNjgyIDM3NS4wNzYgLTIzMi44MTlDNDAyLjg4NiAtMjY3LjE2MSA0MjguNzE0IC0zMDIuMTQyIDQ1Mi41MzUgLTMzNy43MzZDNDc2LjM2OCAtMzczLjMwMyA0OTguNTMzIC00MTAuNjk2IDUxOS4wNjggLTQ0OS44ODhDNTQzLjg1MyAtNDk3LjM3MiA1NTkuNTc3IC01NDYuNzM0IDU2Ni4yNTIgLTU5Ny45MzRDNTY2LjY0MyAtNjAyLjE4NSA1NjYuOTE3IC02MDYuMDE4IDU2Ny4xIC02MDkuNDZDNTY3LjI0MyAtNjEyLjkwMiA1NjYuMzE3IC02MTcuMSA1NjQuMzM2IC02MjIuMDgxIiBmaWxsPSIjRjVGNUY3Ii8+CjxwYXRoIGQ9Ik02OTYuNTE1IDE4OS4wNjRDNzA0LjYzOCAxODQuMzk2IDcxMi42ODIgMTc5LjYxMSA3MjAuNjg4IDE3NC43MzVWMTM0LjA1N0M2OTcuODE5IDE0OC41MDMgNjczLjgwMyAxNTkuNjM3IDY0OC42MDEgMTY3LjQyMUM2MjIuMDgyIDE3NS42MzUgNTk0LjU1OCAxODAuNjY3IDU2Ni4wMTggMTgyLjU1OEM1NTAuOTIgMTgzLjI2MiA1NDEuMjk4IDE4MS44OTMgNTM3LjEgMTc4LjQzOEM1MzIuODc2IDE3NS4wMDkgNTI5LjA5NSAxNjUuNzUyIDUyNS43NTcgMTUwLjc0NUw1MjMuOTU4IDEzMC41NDlDNTIzLjMzMiAxMTguMTI0IDUyNC43NjYgMTA2Ljc1NSA1MjguMzM5IDk2LjQyODlDNTMxLjg1OSA4Ni4xNTUgNTM2LjEyMiA3NS42MjAzIDU0MS4xMTYgNjQuODc3QzU0NS42MTQgNjQuNDg1OSA1NDkuNTY0IDY0LjM2ODUgNTUzLjAzMiA2NC41MzhDNTU2LjQ3NSA2NC42OTQ1IDU2MC40MzggNjQuNTc3MSA1NjQuOTQ5IDY0LjE3MjlDNTg1Ljg3NSA2NC4zNjg1IDYwNy42MzYgNjEuNzQ3OSA2MzAuMjY5IDU2LjI4NDlDNjUyLjA4MiA1MC42MjY1IDY3MC40IDQxLjI3ODIgNjg1LjI3NyAyOC4yNTMzQzY5NC45MzggMTkuNzc4NiA3MDQuMDI1IDEwLjM3ODMgNzEyLjU2NSAwLjA5MTMwODZINjM5LjUyNkM2MjAuMjU2IDE2Ljk4ODUgNTk2Ljk0NCAyNy40ODQxIDU2OS41MzkgMzEuNDYwN0M1NjcuNjYxIDMxLjc3MzYgNTY2LjM1NyAzMS44MTI3IDU2NS41NzUgMzEuNTY1QzU2NC43NTQgMzEuMzMwMyA1NjMuODI4IDMxLjUxMjggNTYyLjgxMSAzMi4wNDc0QzU2MS45OSAzMS44MTI3IDU2MS42NTEgMzEuNDk5OCA1NjEuNzgxIDMxLjA4MjZDNTYxLjg5OCAzMC42OTE1IDU2MS41NDYgMzAuMzY1NSA1NjAuNzUxIDMwLjEzMDhDNTYwLjk5OSAyOS4zMzU1IDU2MC45MDcgMjguODY2MSA1NjAuNTE2IDI4Ljc2MThDNTYwLjA5OSAyOC42MTg0IDU2MC4wMzQgMjguMTYyIDU2MC4yOTUgMjcuMzUzN0M1NjUuMzc5IDE4LjE3NDkgNTcwLjc3NyA5LjEwMDU1IDU3Ni40MzYgMC4wOTEzMDg2SDQzMC4xNzZDNDI0LjIwNCAxMi42NzMgNDE5LjA1NCAyNS45NDU2IDQxNC44MyAzOS45ODc1QzQwNi40NzMgNjEuOTU2NSA0MDQuMjgyIDgyLjI2OTcgNDA4LjI4NSAxMDAuOTY2QzQxMi4wMTQgMTIwLjQ1OCA0MTguODMzIDEzOC40NjMgNDI4LjcyOCAxNTQuOTgyQzQzOC42MTEgMTcxLjUyOCA0NTIuNDU4IDE4NS4wODcgNDcwLjI1NCAxOTUuN0M0OTAuNzM3IDIwOC44ODEgNTEyLjE0NSAyMTcuNzIxIDUzNC40MDEgMjIyLjI0NUM1NTYuNjQ0IDIyNi43NTcgNTc5Ljg2NSAyMjYuNTA5IDYwNC4xMTUgMjIxLjU2N0M2MDkuNjQzIDIyMC42MTYgNjE1LjI2MyAyMTkuNDY4IDYyMC45MjEgMjE4LjA5OUM2MjYuNTY3IDIxNi43NTYgNjMyLjI3NyAyMTUuMTkyIDYzOC4wNTMgMjEzLjQxOUM2NTkuMDU3IDIwNy41MjUgNjc4LjU2MiAxOTkuMzkgNjk2LjU0MSAxODkuMDc3IiBmaWxsPSIjRjVGNUY3Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMjgyMF82OTk5MSI+CjxyZWN0IHdpZHRoPSI3MjEiIGhlaWdodD0iMjU2Ljg0OCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K\");background-repeat:no-repeat}@media (min-width: 48em){.duet-hero.duet-hero-content.duet-theme-turva .background-mask{left:181px}}.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image{top:-155px;right:0;left:0;width:420px;height:420px;margin:0 auto;border-radius:0;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transform:none}@media (min-width: 48em){.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image{top:-230px;width:687px;height:637px}}.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image .brand-shaped-image-bg{width:600px;height:280px;transform:translate(-50%, 0)}@media (min-width: 48em){.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image .brand-shaped-image-bg{width:733px;height:413px}}.duet-hero.duet-hero-content.duet-theme-turva.duet-hero-narrow .background-area{max-width:888px}@media (min-width: 36em){.duet-hero.duet-hero-content.duet-theme-turva.duet-hero-narrow .background-area{padding:0 48px}}@media (min-width: 48em){.duet-hero.duet-hero-content.duet-theme-turva.duet-hero-narrow .background-area{padding:0 72px}}.duet-hero.duet-hero-content.duet-theme-turva .background-area{position:static;padding:0 16px;margin:0 auto}@media (min-width: 36em){.duet-hero.duet-hero-content.duet-theme-turva .background-area{padding:0 28px}}@media (min-width: 62em){.duet-hero.duet-hero-content.duet-theme-turva .background-area{padding:0 56px}}@media (min-width: 76.25em){.duet-hero.duet-hero-content.duet-theme-turva .background-area{max-width:1110px;padding:0}}.duet-hero.duet-hero-content.duet-theme-turva .background-area .background{position:static;height:auto}.duet-hero.duet-hero-content.duet-theme-turva .background-area .background .background-mask{display:none;background-image:none}.duet-hero.duet-hero-content.duet-theme-turva .background-area .background .brand-shaped-image{position:static;width:auto;height:auto}.duet-hero.duet-hero-content.duet-theme-turva .background-area .background .brand-shaped-image .brand-shaped-image-wrapper{width:auto;height:auto}.duet-hero.duet-hero-content.duet-theme-turva .background-area .background .brand-shaped-image .brand-shaped-image-bg{position:static;width:100%;height:auto;aspect-ratio:5/2;transform:none}.duet-hero.duet-hero-content.duet-theme-turva .background-area .background .brand-shaped-image .brand-shaped-image-bg picture{display:block;width:100%;height:100%}.duet-hero.duet-hero-content.duet-theme-turva .background-area .background .brand-shaped-image .brand-shaped-image-bg img{position:static;width:100%;height:100%;object-fit:cover;object-position:50% 50%}.duet-hero.duet-hero-content.duet-theme-turva .brand-shaped-image{border-radius:12px;mask-image:none}.duet-hero.duet-hero-content.duet-theme-turva .duet-hero-wrapper{margin-top:28px}@media (min-width: 48em){.duet-hero.duet-hero-content.duet-theme-turva .duet-hero-wrapper{margin-top:36px}}.duet-hero.duet-theme-turva .duet-hero-wrapper{position:static;margin-top:16px}@media (min-width: 48em){.duet-hero.duet-theme-turva .duet-hero-wrapper{margin-top:0}}.duet-theme-turva .duet-hero-image-wrapper{padding-bottom:68%;border-radius:44% 47% 38% 54%;transform:none}@media screen and (min-width: 440px){.duet-theme-turva .duet-hero-image-wrapper{width:80%;padding-bottom:68%}}@media (min-width: 62em){.duet-theme-turva .duet-hero-image-wrapper{top:-40px;right:-80px;width:536px;padding-bottom:470px}}@media (min-width: 76.25em){.duet-theme-turva .duet-hero-image-wrapper{top:-70px;right:-60px;width:650px;padding-bottom:600px}}@media screen and (min-width: 1450px){.duet-theme-turva .duet-hero-image-wrapper{right:0}}.duet-theme-turva .duet-hero-image-wrapper .duet-hero-image{top:0;left:0;width:100%;height:100%;transform:none}@media screen and (min-width: 1450px){.duet-theme-turva .duet-hero-image-mask{transform:translateX(108%)}}.duet-theme-turva .duet-hero-link{color:rgb(230, 23, 64)}.duet-theme-turva .duet-hero-link:hover .duet-hero-action-arrow{color:rgb(140, 0, 30) !important}.duet-theme-turva .duet-hero-action-arrow{color:rgb(230, 23, 64)}";
12865
13047
 
12866
13048
  /**
12867
13049
  * @part duet-hero - piercing selector for styling the hero container
@@ -13095,17 +13277,17 @@ class DuetHero {
13095
13277
  const campaignOrSection = this.variation === "campaign" || this.variation === "section";
13096
13278
  const imageSizeIsCover = this.imageSize === "cover";
13097
13279
  const imagePositionIsCenter = this.imagePosition === "center";
13098
- const styles = {
13099
- backgroundImage: `url(${this.image})`,
13100
- backgroundSize: imageSizeIsCover ? "cover" : null,
13101
- backgroundPosition: imagePositionIsCenter ? "center" : null,
13102
- };
13103
- const bgImgA11yAttrs = this.image && this.imageAlt
13104
- ? {
13105
- role: "img",
13106
- ["aria-label"]: this.imageAlt,
13107
- }
13108
- : {};
13280
+ const imageClass = `${imageSizeIsCover ? "cover" : ""} ${imagePositionIsCenter ? "center" : ""}`.trim();
13281
+ const getPictureSource = (className) => ({
13282
+ img: {
13283
+ src: this.image,
13284
+ alt: this.imageAlt || "",
13285
+ loading: "lazy",
13286
+ class: className || "",
13287
+ role: this.imageAlt ? undefined : "presentation",
13288
+ },
13289
+ sources: parsePossibleJSON(this.sources),
13290
+ });
13109
13291
  const buttonStyles = {
13110
13292
  transform: "translateX(-8px)",
13111
13293
  };
@@ -13142,7 +13324,7 @@ class DuetHero {
13142
13324
  outlineColor = "color-primary-turva";
13143
13325
  }
13144
13326
  }
13145
- return (hAsync("div", { key: 'f6cddcb9c3f7095554a386ee08f94edd696de30f', role: "region", class: {
13327
+ return (hAsync("div", { key: 'ff8e73f82eb8aad28667e16e49d362f57fcd3b74', role: "region", class: {
13146
13328
  "duet-hero": true,
13147
13329
  "duet-theme-turva": this.theme === "turva",
13148
13330
  "duet-has-category-icon": !!this.categoryIcon,
@@ -13160,17 +13342,17 @@ class DuetHero {
13160
13342
  "duet-hero-text-center": this.variation !== "product" && ((this.textCenter && !this.leftAlign) || campaignOrSection),
13161
13343
  "duet-hero-left-align": this.variation === "product" || (this.leftAlign && !campaignOrSection),
13162
13344
  "duet-hero-narrow": this.layout === "narrow",
13163
- }, part: "duet-hero" }, campaignOrSection && this.image && (hAsync("div", { key: '8e546e1f6a87372506acedb5ea3e36bc2886f789', class: "background-area" }, hAsync("div", { key: 'c25e0f3339fa89a39a5b46ad27648300a7c489b8', class: "background-container" }, hAsync("div", { key: '31200db09804314fe8b9a015aa7b250f3343691f', class: "background" }, hAsync("img", { key: '5f1b008fe67fb54336d65d0a91f13921293ac03f', class: `${imageSizeIsCover ? "cover" : ""} ${imagePositionIsCenter ? "center" : ""}`, src: this.image, alt: this.imageAlt || "", role: this.imageAlt ? null : "presentation" })), hAsync("div", { key: 'c62590322740c9e3d1938e5f89dc13885abf07b6', class: "brand-shape" })))), this.variation === "product" && this.image && (hAsync("div", { key: '8f7994ab77f57be6ea58dbf8102415bcf7eb7ee6', class: { "background-area": true, [this.layout]: true } }, hAsync("div", { key: '01a855e32e56a513ec6cbbe3108b2d7f81af9154', class: { "background-container": true, [this.layout]: true } }, hAsync("div", { key: '863ce7546a76b161f64375733f35f861574c2fd4', class: { background: true, [this.layout]: true } }, hAsync("div", { key: '00f7dcf3f138928620d9427e17c330dca44a1e51', class: { "background-mask": true, [this.layout]: true } }), this.theme !== "turva" && hAsync("div", { key: '0c6c33ed4275e93f68f3d2cec43b879bbc74c60c', class: { "brand-shape": true, [this.layout]: true } }), hAsync("div", { key: 'd4fad75a79b2b33cb6e31d1265842af3a5535873', class: { "brand-shaped-image": true, [this.layout]: true } }, hAsync("div", { key: '7af50eabf0b09917bd5cebe2b44c55b6f0839231', class: { "brand-shaped-image-wrapper": true, [this.layout]: true } }, hAsync("div", Object.assign({ key: '90eb7934807f9e153fd8e53672c5597651aaf8c0', class: { "brand-shaped-image-bg": true, [this.layout]: true }, style: styles }, bgImgA11yAttrs)))), this.categoryIcon && (hAsync("div", { key: 'ce6e8cdcbd80b573448acb33539f59f06b28df9c', class: { "brand-shaped-icon": true, [this.layout]: true } }, hAsync("duet-icon", { key: '139e86a27857835a90d453bab2fcdbc555f41e96', class: { [this.layout]: true }, background: "none", name: this.categoryIcon, margin: "none", size: "auto", responsive: false }))))))), this.variation === "content" && this.image && (hAsync("div", { key: 'b0acf2f12e86bd067f963613d12a85b2db616755', class: "background-area" }, hAsync("div", { key: '5ca70d15eca85878c065441b64121bf935d07d32', class: "background" }, hAsync("div", { key: 'fda4ef9233986b3d1ac3111b374018b6b4296295', class: "background-mask" }), this.theme !== "turva" && hAsync("div", { key: '638a9905eab07c7fee8140423b11b1e28fdedb65', class: "brand-shape" }), hAsync("div", { key: '9a40f25f71ebaf02e17101a48f2cd15aa1b8de83', class: "brand-shaped-image" }, hAsync("div", { key: '520668ba497de55d0c671a87fe4a397a901de7cf', class: "brand-shaped-image-wrapper" }, hAsync("div", Object.assign({ key: 'aa2e5b706988a62baf70633a4d175ee1f935424c', class: "brand-shaped-image-bg", style: styles }, bgImgA11yAttrs))))))), hAsync("div", { key: 'f46858232e9b0c0e014497eb373f276a0253e25c', class: { "duet-hero-wrapper": true, [this.layout]: true } }, this.image && this.variation === "image" && (hAsync("div", { key: '8930f498a1b3d8c17cd6bfb2ca90011ec953becd', class: "duet-hero-image-mask" }, hAsync("div", { key: 'c96d8a199eb919a14a9b372961b7e2e97622edf9', class: "duet-hero-image-wrapper" }, hAsync("div", Object.assign({ key: '1960489a3dcd637d0d4c8cd90d4850563d96f62b', class: "duet-hero-image", style: styles }, bgImgA11yAttrs))))), (this.variation === "gray" || this.variation === "light" || this.variation === "minimal") &&
13164
- this.processedBack && (hAsync("div", { key: '72393575c1cda007fe0a93f50fd29f2254e57635', class: "duet-hero-back" }, hAsync("duet-button", { key: 'bb9c38f25da6cd86a6a1d9c550e39be5e553df52', style: buttonStyles, variation: "plain", icon: "action-arrow-left-small", theme: this.theme, iconSize: "small", color: buttonColor, padding: "none", margin: "none", fixed: true, url: this.processedBack.href, identifier: this.processedBack.id, onClick: event => this.handleClick(event, {
13345
+ }, part: "duet-hero" }, campaignOrSection && this.image && (hAsync("div", { key: '7c6eaf498e1c5f42601f4c77a59d04f4e11c3787', class: "background-area" }, hAsync("div", { key: 'a1cac74e5f880d8d7dd2d8f2fde6a6989769cbe2', class: "background-container" }, hAsync("div", { key: 'f7819b590a7d01d66cb3ec2daa6667cc6a066993', class: "background" }, hAsync(DuetPicture, Object.assign({ key: '554157cf62913f6fcbead29527d23678e952ce9e' }, getPictureSource(imageClass)))), hAsync("div", { key: 'cd6031dacba217d040ad59474be4af621a76e463', class: "brand-shape" })))), this.variation === "product" && this.image && (hAsync("div", { key: '08bbfc431301d26e2dee3c4e5bf2437c6bbe8052', class: { "background-area": true, [this.layout]: true } }, hAsync("div", { key: '2458dfef535c7278b6b703001e66d9fedef43aac', class: { "background-container": true, [this.layout]: true } }, hAsync("div", { key: '57b5c3ddecbc91ef48071c8050eaaa82599d1822', class: { background: true, [this.layout]: true } }, hAsync("div", { key: 'b84d8bb2ebcabf13dc9c258513423327021dbd83', class: { "background-mask": true, [this.layout]: true } }), this.theme !== "turva" && hAsync("div", { key: '1f899edfda9e0b827c28f83b286b8fde47a1079f', class: { "brand-shape": true, [this.layout]: true } }), hAsync("div", { key: '67b34ed24606ef237036bf322d644e993415bf8f', class: { "brand-shaped-image": true, [this.layout]: true } }, hAsync("div", { key: '95e326d93e23f615c90b18c61e7a30e30c84ebb1', class: { "brand-shaped-image-wrapper": true, [this.layout]: true } }, hAsync("div", { key: 'add5e271482d65053646ae3f6ff4c413a8e114c3', class: { "brand-shaped-image-bg": true, [this.layout]: true } }, hAsync(DuetPicture, Object.assign({ key: '00d4e688381f2758688008ce19e872ede3452cbc' }, getPictureSource()))))), this.categoryIcon && (hAsync("div", { key: 'a5651e24522d86a6b0d1d870a5d700fad9db74ba', class: { "brand-shaped-icon": true, [this.layout]: true } }, hAsync("duet-icon", { key: '0b35409d56e5842de0100f52e54f99561e777404', class: { [this.layout]: true }, background: "none", name: this.categoryIcon, margin: "none", size: "auto", responsive: false }))))))), this.variation === "content" && this.image && (hAsync("div", { key: '0fa8f2031fe9a05cbfae9f1df5b73afbe156e840', class: "background-area" }, hAsync("div", { key: '2fb9fe1b29056b9e257f8e8079f2872c2ae4ef93', class: "background" }, hAsync("div", { key: 'd4d20034ae7773baf2fdd1551b83711cc2b0b781', class: "background-mask" }), this.theme !== "turva" && hAsync("div", { key: '5ccc852b8b469c952800bac5c02489fc60ee8433', class: "brand-shape" }), hAsync("div", { key: '73d5610a1e0ca8331908ce011976b86d62fbe60e', class: "brand-shaped-image" }, hAsync("div", { key: '84079f98df920d86c3f6257f97d470ff1ff10d2b', class: "brand-shaped-image-wrapper" }, hAsync("div", { key: 'a5d34d656f4d4f208d6dda010fb9c2236559d1e0', class: "brand-shaped-image-bg" }, hAsync(DuetPicture, Object.assign({ key: '900a632f43c338d491fa7bd2104b51c27b9ec814' }, getPictureSource())))))))), hAsync("div", { key: '62a03b483feb3ed3639d3754515456b058161877', class: { "duet-hero-wrapper": true, [this.layout]: true } }, this.image && this.variation === "image" && (hAsync("div", { key: 'ba372654336abc15cfa19bf95e32eb2c629bacfc', class: "duet-hero-image-mask" }, hAsync("div", { key: '258446935eb244a6cef5559d64bc3c486bf46643', class: "duet-hero-image-wrapper" }, hAsync("div", { key: '726d6c0f7fd9915f813b5f7e57a9fd093a7640d2', class: "duet-hero-image" }, hAsync(DuetPicture, Object.assign({ key: 'e1a272326833f3eea3209265b7c17d4f581812dc' }, getPictureSource(imageClass))))))), (this.variation === "gray" || this.variation === "light" || this.variation === "minimal") &&
13346
+ this.processedBack && (hAsync("div", { key: 'bed23c4fdf4e2c6869bd519aaefe2fb95231eb76', class: "duet-hero-back" }, hAsync("duet-button", { key: 'efa5d21d8bd40aa5dcca5aec05b7ddb883898cbf', style: buttonStyles, variation: "plain", icon: "action-arrow-left-small", theme: this.theme, iconSize: "small", color: buttonColor, padding: "none", margin: "none", fixed: true, url: this.processedBack.href, identifier: this.processedBack.id, onClick: event => this.handleClick(event, {
13165
13347
  label: this.processedBack.label,
13166
13348
  href: this.processedBack.href,
13167
13349
  id: this.processedBack.id,
13168
13350
  analyticsId: this.processedBack.analyticsId,
13169
- }) }, this.processedBack.label))), (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (hAsync("duet-icon", { key: 'cac362aaa6b377b1dba3651f712e386182d9a0dd', class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })), hAsync("div", { key: '402006ac87cd15880b91d0267f2a1128870c7de7', class: { "duet-hero-text": true }, part: "duet-hero-text" }, (this.preHeading || this.hasPreHeadingSlot) && (hAsync("duet-paragraph", { key: '041bfe57134d086c3d94d2ee33d68a067dcccfba', margin: "none", class: "duet-hero-pre", size: this.variation === "content" ? "small" : "medium", "aria-hidden": "true" }, this.preHeading ? (this.preHeading) : (hAsync("span", null, hAsync("slot", { name: "pre-heading" }))))), hAsync("slot", { key: '20f0e190fec2a99d7b4cab63daf81ca8907fd58a', name: "badge" }), (this.heading || this.hasHeadingSlot) && (hAsync("duet-heading", { key: '1e7cbfe931e89c9bffd4ae4cd5a1ceff2c910534', theme: this.theme, level: this.hasHeadingSlotNative ? "div" : this.level, class: { "duet-hero-heading": true, "duet-hero-heading-has-pre": this.preHeading !== "" }, color: headingColor, visualLevel: headingVisualLevel, margin: campaignOrSection ? "none" : "auto", accessibleLabel: this.getAccessibleHeading() }, this.heading ? this.heading : hAsync("slot", { name: "heading" }))), campaignOrSection && this.hasSubHeadingSlot && (hAsync("duet-heading", { key: 'ecd154b6b7291eb2de4e8290562a1d1ee3930d8c', theme: this.theme, level: this.hasSubHeadingSlotNative ? "div" : this.subHeadingLevel, class: { "duet-hero-subheading": true }, color: this.theme === "turva" ? "secondary-turva" : "secondary", visualLevel: "h2" }, hAsync("slot", { key: '4a2a625be57f1c26a8e8daab58e714ef99dcf103', name: "subheading" }))), this.description && (hAsync("duet-paragraph", { key: '73bd53a15848745effd4c211434de70a82e3cb9f', theme: this.theme, color: textColor, variation: "intro" }, this.description)), (this.variation === "gray" || this.variation === "minimal") && this.processedListItems && (hAsync("duet-list", { key: '6d56faeee194fcf3af381a19bfed5aa0b25f7414', theme: this.theme, "label-width": "30", breakpoint: "large", mobile: this.leftAlign ? undefined : "center" }, this.processedListItems.map(item => (hAsync("duet-list-item", null, hAsync("span", { slot: "label" }, item.label), hAsync("span", { slot: "value" }, item.value)))))), this.buttonLabel && (hAsync("duet-button", { key: '5c9877bead31171f246c3b2519956cbcea6cfd4a', url: this.buttonUrl, icon: this.icon, iconRight: this.iconRight, iconSize: this.iconSize, variation: buttonVariation, theme: this.theme, identifier: this.buttonId, onClick: event => this.handleClick(event, this.buttonData), fixed: true }, this.buttonLabel)), hAsync("slot", { key: 'c168f8e3f59e2d27cb8cb6d13be251628b044ccc' })), (this.variation === "gray" || this.variation === "minimal") && this.processedActions && (hAsync("div", { key: '2c8a214eaa9fb3db915ecda2efa67a6433e9fe81', class: "duet-hero-links" }, this.processedActions.map(item => (hAsync("a", { class: "duet-hero-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleClick(event, item) }, hAsync("div", { class: "duet-hero-action-icon" }, hAsync("duet-icon", { size: "small", margin: "none", name: item.icon, color: "currentColor", outline: outlineColor })), hAsync("span", null, item.label), item.external && hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), item.external && (hAsync("div", { class: "duet-hero-action-arrow" }, hAsync("duet-icon", { icon: newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" })))))))), this.image &&
13351
+ }) }, this.processedBack.label))), (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (hAsync("duet-icon", { key: '7de90656859d63499f3b160c2a39619cd4a0a9db', class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })), hAsync("div", { key: '73b543bd71d7e1f2936a2753a255d1ac1339f99c', class: { "duet-hero-text": true }, part: "duet-hero-text" }, (this.preHeading || this.hasPreHeadingSlot) && (hAsync("duet-paragraph", { key: 'd0150811990feac24531dc5e173a93ec3a482418', margin: "none", class: "duet-hero-pre", size: this.variation === "content" ? "small" : "medium", "aria-hidden": "true" }, this.preHeading ? (this.preHeading) : (hAsync("span", null, hAsync("slot", { name: "pre-heading" }))))), hAsync("slot", { key: '041cf2cfcba43317f1e0041d40b00bfd68bb6202', name: "badge" }), (this.heading || this.hasHeadingSlot) && (hAsync("duet-heading", { key: '7f662d3f98757953d04cb29640a7284e7ddcb64b', theme: this.theme, level: this.hasHeadingSlotNative ? "div" : this.level, class: { "duet-hero-heading": true, "duet-hero-heading-has-pre": this.preHeading !== "" }, color: headingColor, visualLevel: headingVisualLevel, margin: campaignOrSection ? "none" : "auto", accessibleLabel: this.getAccessibleHeading() }, this.heading ? this.heading : hAsync("slot", { name: "heading" }))), campaignOrSection && this.hasSubHeadingSlot && (hAsync("duet-heading", { key: '1c02aada316e7b8f8699b79d1128476cdde75ae6', theme: this.theme, level: this.hasSubHeadingSlotNative ? "div" : this.subHeadingLevel, class: { "duet-hero-subheading": true }, color: this.theme === "turva" ? "secondary-turva" : "secondary", visualLevel: "h2" }, hAsync("slot", { key: '34c786a2833cbeb54018fa83b543ab7c55ecd5ff', name: "subheading" }))), this.description && (hAsync("duet-paragraph", { key: '28a82b3619a9418271f1dd4f25d10366fde9f753', theme: this.theme, color: textColor, variation: "intro" }, this.description)), (this.variation === "gray" || this.variation === "minimal") && this.processedListItems && (hAsync("duet-list", { key: '4508f7e305d64e5bf7b39f5340efe8b2ab9d12be', theme: this.theme, "label-width": "30", breakpoint: "large", mobile: this.leftAlign ? undefined : "center" }, this.processedListItems.map(item => (hAsync("duet-list-item", null, hAsync("span", { slot: "label" }, item.label), hAsync("span", { slot: "value" }, item.value)))))), this.buttonLabel && (hAsync("duet-button", { key: '3fb36dbf926c3331c6d757bc32208f26424f7e9c', url: this.buttonUrl, icon: this.icon, iconRight: this.iconRight, iconSize: this.iconSize, variation: buttonVariation, theme: this.theme, identifier: this.buttonId, onClick: event => this.handleClick(event, this.buttonData), fixed: true }, this.buttonLabel)), hAsync("slot", { key: '85fd506d92b185ddbb57c134298164422a6c682d' })), (this.variation === "gray" || this.variation === "minimal") && this.processedActions && (hAsync("div", { key: '9230b5c71616b04e276724e18592d946f7e4ad5d', class: "duet-hero-links" }, this.processedActions.map(item => (hAsync("a", { class: "duet-hero-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleClick(event, item) }, hAsync("div", { class: "duet-hero-action-icon" }, hAsync("duet-icon", { size: "small", margin: "none", name: item.icon, color: "currentColor", outline: outlineColor })), hAsync("span", null, item.label), item.external && hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), item.external && (hAsync("div", { class: "duet-hero-action-arrow" }, hAsync("duet-icon", { icon: newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" })))))))), this.image &&
13170
13352
  this.variation !== "image" &&
13171
13353
  !campaignOrSection &&
13172
13354
  this.variation !== "product" &&
13173
- this.variation !== "content" && hAsync("div", Object.assign({ key: '6cb23cf63b47de3c8ec26c3089ac5e162c117039', class: "duet-hero-image", style: styles }, bgImgA11yAttrs)), hAsync("slot", { key: '559b443673459389d61eea691ea9c8342f97f240', name: "bottom" }))));
13355
+ this.variation !== "content" && (hAsync("div", { key: 'cfe495f2a5bedb9bd622b3a001533a299477f12d', class: "duet-hero-image" }, hAsync(DuetPicture, Object.assign({ key: '26f3df199d16a059b273c5e8dc568c71ac637d05' }, getPictureSource(imageClass))))), hAsync("slot", { key: 'f8680df361205e9c4f2868f71022e736097002b1', name: "bottom" }))));
13174
13356
  }
13175
13357
  get element() { return getElement(this); }
13176
13358
  static get watchers() { return {
@@ -13207,6 +13389,7 @@ class DuetHero {
13207
13389
  "imageSize": [1, "image-size"],
13208
13390
  "imagePosition": [1, "image-position"],
13209
13391
  "imageAlt": [1, "image-alt"],
13392
+ "sources": [1],
13210
13393
  "variation": [1],
13211
13394
  "back": [8],
13212
13395
  "listItems": [8, "list-items"],
@@ -13338,11 +13521,11 @@ class DuetIcon {
13338
13521
  : {};
13339
13522
  const iconStyles = Object.assign({}, iconRotationStyles);
13340
13523
  const shapeStyle = this.shape === "brand-rotated" ? "duet-icon-shape-brand" : `duet-icon-shape-${this.shape}`;
13341
- return (hAsync(Host, { key: '2a800d3292964b5a1dd5fd454662f690ce9e6b5a', class: {
13524
+ return (hAsync(Host, { key: 'ac454937867acd98e1552f998f09cecb7b6db6f6', class: {
13342
13525
  "duet-m-0": this.margin === "none",
13343
13526
  "duet-icon-has-outline": !!this.outline,
13344
13527
  "duet-icon-has-background": !!this.background,
13345
- } }, hAsync("span", { key: '4d5d3fc155d6d2e4f677d8753c116c82eb865a2c', "aria-hidden": "true", style: styles, class: {
13528
+ } }, hAsync("span", { key: '61bd9c9b857bd54bfa18b71035af646ddfc8b490', "aria-hidden": "true", style: styles, class: {
13346
13529
  "duet-icon": true,
13347
13530
  "duet-theme-turva": this.theme === "turva",
13348
13531
  "duet-theme-default": this.theme === "default",
@@ -13351,7 +13534,7 @@ class DuetIcon {
13351
13534
  [shapeStyle]: true,
13352
13535
  rotated: this.shape === "brand-rotated" && this.theme !== "turva",
13353
13536
  "duet-icon-not-responsive": !this.responsive,
13354
- } }, hAsync("span", { key: '6c79866426237ff75ff36401a9117dca1a68cf19', "aria-hidden": "true", class: { "duet-icon-svg": true, rotated: this.shape === "brand-rotated" && this.theme !== "turva" }, "data-name": this.name, innerHTML: this.svgContent, style: iconStyles }))));
13537
+ } }, hAsync("span", { key: '513e30e9f69a6661e54b5f2a0989eaf14887f533', "aria-hidden": "true", class: { "duet-icon-svg": true, rotated: this.shape === "brand-rotated" && this.theme !== "turva" }, "data-name": this.name, innerHTML: this.svgContent, style: iconStyles }))));
13355
13538
  }
13356
13539
  get element() { return getElement(this); }
13357
13540
  static get watchers() { return {
@@ -13429,11 +13612,11 @@ class DuetIndicator {
13429
13612
  inheritGlobalTheme(this);
13430
13613
  }
13431
13614
  render() {
13432
- return (hAsync(Host, { key: '0513ee5c8cb2770eb10e753901e8db638c665112' }, hAsync("span", { key: '64ec0e8625b9cf03ed41d6cbe6ae9e286f5cd08a', class: {
13615
+ return (hAsync(Host, { key: '329e985ec026dde828ee0e4f896bbbf68054a4ce' }, hAsync("span", { key: '688c53ea00e20e7c2aa612ed6cdaede9a83655f9', class: {
13433
13616
  "duet-indicator": true,
13434
13617
  [`duet-indicator-${this.variation}`]: true,
13435
13618
  "duet-theme-turva": this.theme === "turva",
13436
- } }), hAsync("duet-visually-hidden", { key: 'ae27d7871ca7bbde4e8e62d3c389c4f0c5b17090' }, this.getAccessibleLabel())));
13619
+ } }), hAsync("duet-visually-hidden", { key: '37a42c32af9d6d46946d30239592a4794e16de93' }, this.getAccessibleLabel())));
13437
13620
  }
13438
13621
  get element() { return getElement(this); }
13439
13622
  static get style() { return duetIndicatorCss; }
@@ -13513,7 +13696,7 @@ function cleanValue(input, regex) {
13513
13696
  return newValue;
13514
13697
  }
13515
13698
 
13516
- const duetInputCss = ".duet-internal-label{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-bottom:12px !important;position:relative;z-index:100;display:inline-flex;width:auto;margin-top:8px !important;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:1rem;font-weight:600 !important;line-height:1.25;line-height:1.25;color:rgb(8, 42, 77);text-align:left;word-break:break-word;cursor:default}.duet-internal-label.duet-p-0{padding:0 !important}.duet-internal-label.duet-m-0{margin:0 !important}.duet-internal-label span{font-size:1rem;font-weight:600 !important;word-break:break-word}.duet-internal-label.duet-m-0{margin-bottom:0 !important}.duet-internal-label.duet-small-margin{margin-top:8px !important;margin-bottom:4px !important}.duet-internal-label.duet-has-tooltip{padding-right:48px}@media (min-width: 48em){.duet-internal-label.duet-has-tooltip{padding-right:0}}.duet-internal-label.duet-internal-label-small{font-size:0.875rem}.duet-internal-label.duet-internal-label-small span{font-size:0.875rem}.duet-internal-label.duet-weight-normal{font-weight:400 !important}.duet-internal-label.duet-weight-normal span{font-weight:400 !important}.duet-internal-label.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:rgb(23, 42, 59)}*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{margin-right:16px !important}:host(:last-child),:host(:last-of-type){margin-right:0 !important}:host(.form-distribute:last-of-type:not(:last-child)){margin-right:16px !important}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-bottom:12px !important;display:inline-flex;width:100%;min-width:calc(33.333% - 8px);max-width:100%;vertical-align:bottom;text-align:left}@media (min-width: 36em){:host{width:calc(50% - 16px - 3px)}}:host(.duet-expand){width:100% !important}:host(.duet-m-0){margin:0 !important}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}input[type=time]::-webkit-datetime-edit-fields-wrapper{padding:0}input[type=time]::-webkit-calendar-picker-indicator{display:none}duet-tooltip,::slotted(duet-tooltip){position:relative;top:12px;right:0}@media (min-width: 48em){duet-tooltip,::slotted(duet-tooltip){right:auto}}duet-caption:not(:last-of-type){margin-bottom:0}.duet-input-placeholder{position:absolute;top:-9px;left:9px;z-index:200;display:block;width:auto;max-width:60%;padding:0 0.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:rgb(255, 255, 255)}.duet-input-icon{position:absolute;top:50%;right:16px;z-index:200;width:20px;height:20px;font-size:0;line-height:normal;color:rgb(8, 42, 77);pointer-events:none;transform:translateY(-50%)}.duet-input-container{position:relative;width:100%;height:100%}.duet-input-container.has-clear .duet-input-clear-icon{position:relative;z-index:250}.duet-input-container.has-clear .duet-input-clear-icon button{position:absolute;top:-24px;right:-24px;min-width:48px;min-height:48px;color:rgb(0, 75, 129)}.duet-input-container.has-clear .duet-input-clear-icon button:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva .duet-input-container.has-clear .duet-input-clear-icon button:focus,.duet-input-container.has-clear .duet-input-clear-icon button:focus.duet-theme-turva{outline:2px solid;outline-offset:2px;outline-color:rgba(53, 79, 101, 0.8)}.duet-input-container.has-clear .duet-input-clear-icon button:active{opacity:0.75;transition:none}.duet-input-container.has-clear .duet-input-clear-icon.input-padding-xx-small button{top:-12px}.duet-input-container.has-clear .duet-input-clear-icon.input-padding-x-small button{top:-16px}.duet-input-container.has-clear .duet-input-clear-icon.input-padding-small button{top:-20px}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-single button{top:-48px;right:0}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-single.input-padding-xx-small button{top:-36px}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-single.input-padding-x-small button{top:-40px}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-single.input-padding-small button{top:-44px}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-double button{top:-24px;right:12px}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-double.input-padding-xx-small button{top:-12px}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-double.input-padding-x-small button{top:-16px}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-double.input-padding-small button{top:-20px}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-button button{top:-24px;right:0}.duet-input-container.has-clear.has-icon .duet-input-clear-icon{top:-24px;right:24px}.duet-input-label-container{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between}@media (min-width: 48em){.duet-input-label-container{justify-content:flex-start}}.duet-input{position:relative;z-index:100;display:block !important;width:100% !important;min-width:8rem;max-width:initial !important;height:auto !important;padding:12px 14px !important;margin:initial !important;margin-bottom:initial !important;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:1rem;font-weight:400 !important;font-variant-numeric:tabular-nums;line-height:1.5 !important;color:rgb(8, 42, 77) !important;cursor:initial !important;outline-color:initial !important;background:rgb(255, 255, 255) !important;background-clip:initial !important;border:1px solid rgb(127, 150, 165) !important;border-radius:4px !important;transition:border 150ms ease !important}.duet-input.input-padding-small{padding:8px 10px !important}.duet-input.input-padding-x-small{padding:4px 6px !important}.duet-input.input-padding-xx-small{padding:0px 2px !important}.duet-input.is-number{padding-right:112px !important}.duet-input.is-date{padding-right:64px !important}.duet-input.after-chip{padding-left:8px !important}.has-error .duet-input{outline-offset:-1px;background-color:rgb(255, 240, 243) !important;border-color:rgb(214, 28, 82) !important}.has-error .duet-input+.duet-input-icon{color:rgb(214, 28, 82) !important}.has-icon .duet-input{padding-right:48px !important}.duet-input.align-right{text-align:right}.duet-input::-ms-clear{display:none}.duet-input::-webkit-contacts-auto-fill-button{display:none !important}.duet-input::placeholder{color:rgb(98, 121, 138);opacity:1 !important;transition:color 300ms ease}.duet-input:focus::placeholder{color:rgb(181, 198, 208)}.duet-input[disabled]{color:rgb(98, 121, 138) !important;cursor:not-allowed !important;outline:none !important;background:rgb(228, 236, 239) !important;border-color:rgb(181, 198, 208) !important;opacity:1 !important;-webkit-text-fill-color:rgb(8, 42, 77) !important}.duet-input:hover:not(:disabled):not(:focus){outline:2px solid;outline-color:rgb(127, 150, 165) !important;outline-offset:-1px}.duet-theme-turva .duet-input:hover:not(:disabled):not(:focus),.duet-input:hover:not(:disabled):not(:focus).duet-theme-turva{outline-color:rgb(120, 145, 164) !important}.has-error .duet-input:hover:not(:disabled):not(:focus){outline-offset:-1px;background-color:rgb(255, 240, 243) !important;border-color:rgb(214, 28, 82) !important;outline-width:2px;outline-color:rgb(214, 28, 82) !important}.duet-input:focus{outline:2px solid;outline-color:rgb(0, 119, 179) !important;outline-offset:-1px}.duet-theme-turva .duet-input:focus,.duet-input:focus.duet-theme-turva{outline-color:rgb(23, 42, 59) !important}.has-error .duet-input:focus{outline-offset:-1px;background-color:rgb(255, 240, 243) !important;border-color:rgb(214, 28, 82) !important;outline-width:2px;outline-color:rgb(214, 28, 82) !important;background:rgb(255, 255, 255) !important}.duet-input:focus+.duet-input-icon{color:rgb(0, 119, 179)}.duet-input[type=search]:not(:placeholder-shown):focus+.duet-input-icon{display:none}.duet-input:not(:focus):not(:hover):invalid{outline:none !important}.duet-input[type=number]::-webkit-inner-spin-button,.duet-input[type=number]::-webkit-outer-spin-button,.duet-input[type=time]::-webkit-inner-spin-button,.duet-input[type=time]::-webkit-outer-spin-button{display:none;margin:0;-webkit-appearance:none}.duet-input::-webkit-search-cancel-button{margin-right:-28px}.duet-input-help{display:block;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.25;color:rgb(98, 121, 138);border-radius:4px}.duet-input-help span{display:block;margin-top:8px}.has-error .duet-input-help{color:rgb(214, 28, 82)}.duet-label-hidden label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;border:0;clip:rect(0 0 0 0)}.duet-input-relative{position:relative;width:100%}.duet-input-variation-button,.duet-input-variation-button-left{position:relative;width:100%}.duet-input-variation-button .duet-input-relative,.duet-input-variation-button-left .duet-input-relative{display:flex;flex-direction:row;flex-wrap:nowrap;align-content:center;align-items:center;justify-content:flex-start;width:auto}.duet-input-variation-button .duet-input-relative duet-button,.duet-input-variation-button-left .duet-input-relative duet-button{z-index:250;margin-bottom:0}.duet-input-variation-button-left .duet-input-relative{border-radius:4px}.duet-input-variation-button .duet-input-relative .duet-input{border-right-width:0 !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.duet-input-variation-button-left .duet-input-relative .duet-input{border-left-width:0 !important;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.duet-input-variation-revealable{position:relative;width:100%}.duet-input-variation-revealable ::-ms-reveal{display:none}.duet-input-variation-revealable .duet-input-relative{display:flex;flex-direction:row;flex-wrap:nowrap;align-content:center;align-items:center;justify-content:flex-start;width:auto;outline:initial;border:1px solid rgb(127, 150, 165);border-radius:4px;transition:border 150ms ease}.duet-input-variation-revealable .duet-input-relative duet-button{z-index:250;margin-bottom:0}.duet-input-variation-revealable .duet-input-relative .duet-input{border-width:0 !important}.duet-input-variation-revealable .duet-input-relative .duet-input:focus,.duet-input-variation-revealable .duet-input-relative .duet-input:hover{outline:none !important;border-width:0 !important}.duet-input-variation-revealable.disabled .duet-input-relative{outline:none;background:rgb(245, 248, 250);border-color:rgb(212, 223, 229)}.duet-input-variation-revealable.has-error .duet-input-relative{border-color:rgb(214, 28, 82)}.duet-input-variation-revealable.has-focus .duet-input-relative{outline:2px solid;outline-offset:-1px;outline-color:rgb(62, 84, 102);border-color:rgb(0, 119, 179)}.duet-input-variation-revealable:hover:not(.disabled):not(.has-focus) .duet-input-relative{outline:2px solid;outline-color:rgb(127, 150, 165) !important;outline-offset:-1px}.duet-theme-turva .duet-input-variation-revealable:hover:not(.disabled):not(.has-focus) .duet-input-relative,.duet-input-variation-revealable:hover:not(.disabled):not(.has-focus) .duet-input-relative.duet-theme-turva{outline-color:rgb(120, 145, 164) !important}.duet-input-variation-revealable.has-error:hover:not(.disabled) .duet-input-relative{outline-offset:-1px;background-color:rgb(255, 240, 243) !important;border-color:rgb(214, 28, 82) !important}.duet-input-container.has-chips.has-focus .duet-input-relative{outline:2px solid;outline-color:rgb(0, 119, 179) !important;outline-offset:-1px}.duet-theme-turva .duet-input-container.has-chips.has-focus .duet-input-relative,.duet-input-container.has-chips.has-focus .duet-input-relative.duet-theme-turva{outline-color:rgb(23, 42, 59) !important}.duet-input-container.has-chips:hover:not(:disabled):not(.has-focus) .duet-input-relative{outline:2px solid;outline-color:rgb(127, 150, 165) !important;outline-offset:-1px}.duet-theme-turva .duet-input-container.has-chips:hover:not(:disabled):not(.has-focus) .duet-input-relative,.duet-input-container.has-chips:hover:not(:disabled):not(.has-focus) .duet-input-relative.duet-theme-turva{outline-color:rgb(120, 145, 164) !important}.duet-input-container.has-chips.has-error .duet-input-relative{outline-offset:-1px;background-color:rgb(255, 240, 243) !important;border-color:rgb(214, 28, 82) !important}.duet-input-container.has-chips.has-error.has-focus .duet-input-relative{outline-offset:-1px;background-color:rgb(255, 240, 243) !important;border-color:rgb(214, 28, 82) !important;outline-width:2px;outline-color:rgb(214, 28, 82) !important;background:rgb(255, 255, 255) !important}.duet-input-container.has-chips.has-error:hover:not(:disabled):not(.has-focus) .duet-input-relative{outline-offset:-1px;background-color:rgb(255, 240, 243) !important;border-color:rgb(214, 28, 82) !important;outline-width:2px;outline-color:rgb(214, 28, 82) !important}.duet-input-container.has-chips .duet-input-relative{display:flex;flex-direction:row;flex-wrap:wrap;align-content:center;align-items:center;justify-content:flex-start;width:auto;padding-right:2px;border:1px solid rgb(127, 150, 165);border-radius:4px;transition:border 150ms ease}.duet-input-container.has-chips .duet-input-relative .duet-input{flex-grow:1;flex-basis:4rem;padding-left:0 !important;margin-left:12px !important;border-width:0 !important}.duet-input-container.has-chips .duet-input-relative .duet-input:focus,.duet-input-container.has-chips .duet-input-relative .duet-input:hover{outline:none !important;border-width:0 !important}.duet-theme-turva .duet-input-icon{color:rgb(23, 42, 59)}.duet-theme-turva.duet-input-container.has-clear .duet-input-clear-icon button{color:rgb(8, 42, 77)}.duet-theme-turva.has-error .duet-input+.duet-input-icon{color:rgb(214, 28, 82) !important}.duet-theme-turva:not(.has-error) .duet-input{border-color:rgb(120, 145, 164) !important}.duet-theme-turva .duet-input{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 42, 59) !important}.duet-theme-turva .duet-input[disabled]{color:rgb(95, 122, 143) !important;cursor:not-allowed !important;outline:none !important;background:rgb(228, 233, 237) !important;border-color:rgb(178, 194, 205) !important;opacity:1 !important;-webkit-text-fill-color:rgb(23, 42, 59) !important}.duet-theme-turva .duet-input::placeholder{color:rgb(120, 145, 164)}.duet-theme-turva .duet-input:focus::placeholder{color:rgb(178, 194, 205)}.duet-theme-turva .duet-input:focus+.duet-input-icon{color:rgb(23, 42, 59)}.duet-theme-turva .duet-input-variation-button-left.has-focus .duet-input-relative{border-color:rgb(23, 42, 59)}.duet-theme-turva .duet-input-variation-revealable.has-focus .duet-input-relative{border-color:rgb(23, 42, 59)}.duet-theme-turva .duet-input-help{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(120, 145, 164)}.duet-theme-turva.has-error .duet-input-help{color:rgb(214, 28, 82)}.duet-theme-turva .duet-input-variation-revealable .duet-input-relative{border-color:rgb(120, 145, 164)}.duet-theme-turva.duet-input-variation-revealable.has-error .duet-input-relative{border-color:rgb(214, 28, 82)}.duet-theme-turva.duet-input-variation-revealable.has-focus .duet-input-relative{outline:2px solid;outline-offset:-1px;outline-color:rgb(53, 79, 101);border-color:rgb(23, 42, 59)}.duet-theme-turva .duet-input-container.has-chips.has-focus .duet-input-relative{outline:2px solid;outline-offset:2px;outline-color:rgb(53, 79, 101)}.duet-theme-turva .duet-input-container.has-chips .duet-input-relative{border-color:rgb(120, 145, 164)}";
13699
+ const duetInputCss = ".duet-internal-label{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-bottom:12px !important;position:relative;z-index:100;display:inline-flex;width:auto;margin-top:8px !important;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:1rem;font-weight:600 !important;line-height:1.25;line-height:1.25;color:rgb(8, 42, 77);text-align:left;word-break:break-word;cursor:default}.duet-internal-label.duet-p-0{padding:0 !important}.duet-internal-label.duet-m-0{margin:0 !important}.duet-internal-label span{font-size:1rem;font-weight:600 !important;word-break:break-word}.duet-internal-label.duet-m-0{margin-bottom:0 !important}.duet-internal-label.duet-small-margin{margin-top:8px !important;margin-bottom:4px !important}.duet-internal-label.duet-has-tooltip{padding-right:48px}@media (min-width: 48em){.duet-internal-label.duet-has-tooltip{padding-right:0}}.duet-internal-label.duet-internal-label-small{font-size:0.875rem}.duet-internal-label.duet-internal-label-small span{font-size:0.875rem}.duet-internal-label.duet-weight-normal{font-weight:400 !important}.duet-internal-label.duet-weight-normal span{font-weight:400 !important}.duet-internal-label.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:rgb(23, 42, 59)}*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{margin-right:16px !important}:host(:last-child),:host(:last-of-type){margin-right:0 !important}:host(.form-distribute:last-of-type:not(:last-child)){margin-right:16px !important}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-bottom:12px !important;display:inline-flex;width:100%;min-width:calc(33.333% - 8px);max-width:100%;vertical-align:bottom;text-align:left}@media (min-width: 36em){:host{width:calc(50% - 16px - 3px)}}:host(.duet-expand){width:100% !important}:host(.duet-m-0){margin:0 !important}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}input[type=time]::-webkit-datetime-edit-fields-wrapper{padding:0}input[type=time]::-webkit-calendar-picker-indicator{display:none}duet-tooltip,::slotted(duet-tooltip){position:relative;top:12px;right:0}@media (min-width: 48em){duet-tooltip,::slotted(duet-tooltip){right:auto}}duet-caption:not(:last-of-type){margin-bottom:0}.duet-input-placeholder{position:absolute;top:-9px;left:9px;z-index:200;display:block;width:auto;max-width:60%;padding:0 0.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:rgb(255, 255, 255)}.duet-input-icon{position:absolute;top:50%;right:16px;z-index:200;width:20px;height:20px;font-size:0;line-height:normal;color:rgb(8, 42, 77);pointer-events:none;transform:translateY(-50%)}.duet-input-container{position:relative;width:100%;height:100%}.duet-input-container.has-clear .duet-input-clear-icon{position:relative;z-index:250}.duet-input-container.has-clear .duet-input-clear-icon button{position:absolute;top:-24px;right:-24px;min-width:48px;min-height:48px;color:rgb(0, 75, 129)}.duet-input-container.has-clear .duet-input-clear-icon button:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva .duet-input-container.has-clear .duet-input-clear-icon button:focus,.duet-input-container.has-clear .duet-input-clear-icon button:focus.duet-theme-turva{outline:2px solid;outline-offset:2px;outline-color:rgba(53, 79, 101, 0.8)}.duet-input-container.has-clear .duet-input-clear-icon button:active{opacity:0.75;transition:none}.duet-input-container.has-clear .duet-input-clear-icon.input-padding-xx-small button{top:-12px}.duet-input-container.has-clear .duet-input-clear-icon.input-padding-x-small button{top:-16px}.duet-input-container.has-clear .duet-input-clear-icon.input-padding-small button{top:-20px}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-single button{top:-48px;right:0}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-single.input-padding-xx-small button{top:-36px}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-single.input-padding-x-small button{top:-40px}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-single.input-padding-small button{top:-44px}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-double button{top:-24px;right:12px}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-double.input-padding-xx-small button{top:-12px}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-double.input-padding-x-small button{top:-16px}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-double.input-padding-small button{top:-20px}.duet-input-container.has-clear .duet-input-clear-icon.duet-input-clear-icon-button button{top:-24px;right:0}.duet-input-container.has-clear.has-icon .duet-input-clear-icon{top:-24px;right:24px}.duet-input-label-container{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between}@media (min-width: 48em){.duet-input-label-container{justify-content:flex-start}}.duet-input{position:relative;z-index:100;display:block !important;width:100% !important;min-width:8rem;max-width:initial !important;height:auto !important;padding:12px 14px !important;margin:initial !important;margin-bottom:initial !important;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:1rem;font-weight:400 !important;font-variant-numeric:tabular-nums;line-height:1.5 !important;color:rgb(8, 42, 77) !important;cursor:initial !important;outline-color:initial !important;background:rgb(255, 255, 255) !important;background-clip:initial !important;border:1px solid rgb(127, 150, 165) !important;border-radius:4px !important;transition:border 150ms ease !important}.duet-input.input-padding-small{padding:8px 10px !important}.duet-input.input-padding-x-small{padding:4px 6px !important}.duet-input.input-padding-xx-small{padding:0px 2px !important}.duet-input.is-number{padding-right:112px !important}.duet-input.is-date{padding-right:64px !important}.duet-input.after-chip{padding-left:8px !important}.has-error .duet-input{outline-offset:-1px;background-color:rgb(255, 240, 243) !important;border-color:rgb(214, 28, 82) !important}.has-error .duet-input+.duet-input-icon{color:rgb(214, 28, 82) !important}.has-icon .duet-input{padding-right:48px !important}.duet-input.align-right{text-align:right}.duet-input::-ms-clear{display:none}.duet-input::-webkit-contacts-auto-fill-button{display:none !important}.duet-input::placeholder{color:rgb(98, 121, 138);opacity:1 !important;transition:color 300ms ease}.duet-input:focus::placeholder{color:rgb(181, 198, 208)}.duet-input[disabled]{color:rgb(98, 121, 138) !important;cursor:not-allowed !important;outline:none !important;background:rgb(228, 236, 239) !important;border-color:rgb(181, 198, 208) !important;opacity:1 !important;-webkit-text-fill-color:rgb(8, 42, 77) !important}.duet-input:hover:not(:disabled):not(:focus){outline:2px solid;outline-color:rgb(127, 150, 165) !important;outline-offset:-1px}.duet-theme-turva .duet-input:hover:not(:disabled):not(:focus),.duet-input:hover:not(:disabled):not(:focus).duet-theme-turva{outline-color:rgb(120, 145, 164) !important}.has-error .duet-input:hover:not(:disabled):not(:focus){outline-offset:-1px;background-color:rgb(255, 240, 243) !important;border-color:rgb(214, 28, 82) !important;outline-width:2px;outline-color:rgb(214, 28, 82) !important}.duet-input:focus{outline:2px solid;outline-color:rgb(0, 119, 179) !important;outline-offset:-1px}.duet-theme-turva .duet-input:focus,.duet-input:focus.duet-theme-turva{outline-color:rgb(23, 42, 59) !important}.has-error .duet-input:focus{outline-offset:-1px;background-color:rgb(255, 240, 243) !important;border-color:rgb(214, 28, 82) !important;outline-width:2px;outline-color:rgb(214, 28, 82) !important;background:rgb(255, 255, 255) !important}.duet-input:focus+.duet-input-icon{color:rgb(0, 119, 179)}.duet-input[type=search]:not(:placeholder-shown):focus+.duet-input-icon{display:none}.duet-input:not(:focus):not(:hover):invalid{outline:none !important}.duet-input[type=number]::-webkit-inner-spin-button,.duet-input[type=number]::-webkit-outer-spin-button,.duet-input[type=time]::-webkit-inner-spin-button,.duet-input[type=time]::-webkit-outer-spin-button{display:none;margin:0;-webkit-appearance:none}.duet-input::-webkit-search-cancel-button{margin-right:-28px}.duet-input-help{display:block;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.25;color:rgb(98, 121, 138);border-radius:4px}.duet-input-help span{display:block;margin-top:8px}.has-error .duet-input-help{color:rgb(214, 28, 82)}.duet-label-hidden label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;border:0;clip:rect(0 0 0 0)}.duet-input-relative{position:relative;width:100%}.duet-input-variation-button,.duet-input-variation-button-left{position:relative;width:100%}.duet-input-variation-button .duet-input-relative,.duet-input-variation-button-left .duet-input-relative{display:flex;flex-direction:row;flex-wrap:nowrap;align-content:center;align-items:center;justify-content:flex-start;width:auto}.duet-input-variation-button .duet-input-relative duet-button,.duet-input-variation-button-left .duet-input-relative duet-button{z-index:250;margin-bottom:0}.duet-input-variation-button-left .duet-input-relative{border-radius:4px}.duet-input-variation-button .duet-input-relative .duet-input{border-right-width:0 !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.duet-input-variation-button-left .duet-input-relative .duet-input{border-left-width:0 !important;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.duet-input-variation-revealable{position:relative;width:100%}.duet-input-variation-revealable ::-ms-reveal{display:none}.duet-input-variation-revealable .duet-input-relative{display:flex;flex-direction:row;flex-wrap:nowrap;align-content:center;align-items:center;justify-content:flex-start;width:auto;outline:initial;border:1px solid rgb(127, 150, 165);border-radius:4px;transition:border 150ms ease}.duet-input-variation-revealable .duet-input-relative duet-button{z-index:250;margin-bottom:0}.duet-input-variation-revealable .duet-input-relative .duet-input{border-width:0 !important}.duet-input-variation-revealable .duet-input-relative .duet-input:focus,.duet-input-variation-revealable .duet-input-relative .duet-input:hover{outline:none !important;border-width:0 !important}.duet-input-variation-revealable.disabled .duet-input-relative{outline:none;background:rgb(245, 248, 250);border-color:rgb(212, 223, 229)}.duet-input-variation-revealable.has-error .duet-input-relative{border-color:rgb(214, 28, 82)}.duet-input-variation-revealable.has-focus .duet-input-relative{outline:2px solid;outline-offset:-1px;outline-color:rgb(62, 84, 102);border-color:rgb(0, 119, 179)}.duet-input-variation-revealable:hover:not(.disabled):not(.has-focus) .duet-input-relative{outline:2px solid;outline-color:rgb(127, 150, 165) !important;outline-offset:-1px}.duet-theme-turva .duet-input-variation-revealable:hover:not(.disabled):not(.has-focus) .duet-input-relative,.duet-input-variation-revealable:hover:not(.disabled):not(.has-focus) .duet-input-relative.duet-theme-turva{outline-color:rgb(120, 145, 164) !important}.duet-input-variation-revealable.has-error:hover:not(.disabled) .duet-input-relative{outline-offset:-1px;background-color:rgb(255, 240, 243) !important;border-color:rgb(214, 28, 82) !important}.duet-input-container.has-adornment.has-focus .duet-input-relative,.duet-input-container.has-chips.has-focus .duet-input-relative{outline:2px solid;outline-color:rgb(0, 119, 179) !important;outline-offset:-1px}.duet-theme-turva .duet-input-container.has-adornment.has-focus .duet-input-relative,.duet-input-container.has-adornment.has-focus .duet-input-relative.duet-theme-turva,.duet-theme-turva .duet-input-container.has-chips.has-focus .duet-input-relative,.duet-input-container.has-chips.has-focus .duet-input-relative.duet-theme-turva{outline-color:rgb(23, 42, 59) !important}.duet-input-container.has-adornment:hover:not(:disabled):not(.has-focus) .duet-input-relative,.duet-input-container.has-chips:hover:not(:disabled):not(.has-focus) .duet-input-relative{outline:2px solid;outline-color:rgb(127, 150, 165) !important;outline-offset:-1px}.duet-theme-turva .duet-input-container.has-adornment:hover:not(:disabled):not(.has-focus) .duet-input-relative,.duet-input-container.has-adornment:hover:not(:disabled):not(.has-focus) .duet-input-relative.duet-theme-turva,.duet-theme-turva .duet-input-container.has-chips:hover:not(:disabled):not(.has-focus) .duet-input-relative,.duet-input-container.has-chips:hover:not(:disabled):not(.has-focus) .duet-input-relative.duet-theme-turva{outline-color:rgb(120, 145, 164) !important}.duet-input-container.has-adornment.has-error .duet-input-relative,.duet-input-container.has-chips.has-error .duet-input-relative{outline-offset:-1px;background-color:rgb(255, 240, 243) !important;border-color:rgb(214, 28, 82) !important}.duet-input-container.has-adornment.has-error.has-focus .duet-input-relative,.duet-input-container.has-chips.has-error.has-focus .duet-input-relative{outline-offset:-1px;background-color:rgb(255, 240, 243) !important;border-color:rgb(214, 28, 82) !important;outline-width:2px;outline-color:rgb(214, 28, 82) !important;background:rgb(255, 255, 255) !important}.duet-input-container.has-adornment.has-error:hover:not(:disabled):not(.has-focus) .duet-input-relative,.duet-input-container.has-chips.has-error:hover:not(:disabled):not(.has-focus) .duet-input-relative{outline-offset:-1px;background-color:rgb(255, 240, 243) !important;border-color:rgb(214, 28, 82) !important;outline-width:2px;outline-color:rgb(214, 28, 82) !important}.duet-input-container.has-adornment .duet-input-relative,.duet-input-container.has-chips .duet-input-relative{display:flex;flex-direction:row;flex-wrap:wrap;align-content:center;align-items:center;justify-content:flex-start;width:auto;padding-right:2px;border:1px solid rgb(127, 150, 165);border-radius:4px;transition:border 150ms ease}.duet-input-container.has-adornment .duet-input-relative .duet-input,.duet-input-container.has-chips .duet-input-relative .duet-input{flex-grow:1;flex-basis:4rem;padding-left:0 !important;margin-left:12px !important;border-width:0 !important}.duet-input-container.has-adornment .duet-input-relative .duet-input:focus,.duet-input-container.has-adornment .duet-input-relative .duet-input:hover,.duet-input-container.has-chips .duet-input-relative .duet-input:focus,.duet-input-container.has-chips .duet-input-relative .duet-input:hover{outline:none !important;border-width:0 !important}.duet-input-container.has-adornment .duet-input-relative .duet-input{padding:12px 14px !important;margin:initial !important}.duet-input-container.has-adornment .duet-input-relative .input-adornment{color:rgb(98, 121, 138)}.duet-input-container.has-adornment .duet-input-relative .input-adornment.prefix{padding-left:14px}.duet-input-container.has-adornment .duet-input-relative .input-adornment.suffix{padding-right:14px}.duet-input-container.has-prefix .duet-input-relative .duet-input{padding-left:8px !important}.duet-input-container.has-suffix .duet-input-relative .duet-input{padding-right:8px !important}.duet-theme-turva .duet-input-icon{color:rgb(23, 42, 59)}.duet-theme-turva.duet-input-container.has-clear .duet-input-clear-icon button{color:rgb(8, 42, 77)}.duet-theme-turva.has-error .duet-input+.duet-input-icon{color:rgb(214, 28, 82) !important}.duet-theme-turva:not(.has-error) .duet-input{border-color:rgb(120, 145, 164) !important}.duet-theme-turva .duet-input{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 42, 59) !important}.duet-theme-turva .duet-input[disabled]{color:rgb(95, 122, 143) !important;cursor:not-allowed !important;outline:none !important;background:rgb(228, 233, 237) !important;border-color:rgb(178, 194, 205) !important;opacity:1 !important;-webkit-text-fill-color:rgb(23, 42, 59) !important}.duet-theme-turva .duet-input::placeholder{color:rgb(120, 145, 164)}.duet-theme-turva .duet-input:focus::placeholder{color:rgb(178, 194, 205)}.duet-theme-turva .duet-input:focus+.duet-input-icon{color:rgb(23, 42, 59)}.duet-theme-turva .duet-input-variation-button-left.has-focus .duet-input-relative{border-color:rgb(23, 42, 59)}.duet-theme-turva .duet-input-variation-revealable.has-focus .duet-input-relative{border-color:rgb(23, 42, 59)}.duet-theme-turva .duet-input-help{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(120, 145, 164)}.duet-theme-turva.has-error .duet-input-help{color:rgb(214, 28, 82)}.duet-theme-turva .duet-input-variation-revealable .duet-input-relative{border-color:rgb(120, 145, 164)}.duet-theme-turva.duet-input-variation-revealable.has-error .duet-input-relative{border-color:rgb(214, 28, 82)}.duet-theme-turva.duet-input-variation-revealable.has-focus .duet-input-relative{outline:2px solid;outline-offset:-1px;outline-color:rgb(53, 79, 101);border-color:rgb(23, 42, 59)}.duet-theme-turva .duet-input-container.has-chips.has-focus .duet-input-relative{outline:2px solid;outline-offset:2px;outline-color:rgb(53, 79, 101)}.duet-theme-turva .duet-input-container.has-chips .duet-input-relative{border-color:rgb(120, 145, 164)}";
13517
13700
 
13518
13701
  const icons = {
13519
13702
  search: searchIcon,
@@ -13537,10 +13720,13 @@ class DuetInput {
13537
13720
  this.proxyId = createID("DuetInput");
13538
13721
  this.clearId = createID("DuetInputClear");
13539
13722
  this.labelId = createID("DuetLabel");
13723
+ this.prefixId = createID("DuetInputPrefix");
13724
+ this.suffixId = createID("DuetInputSuffix");
13540
13725
  this.topCaptionId = createID("DuetCaptionTop");
13541
13726
  this.topCaptionPlaceholderId = createID("DuetCaptionPlaceholderTop");
13542
13727
  this.chipCountId = createID("DuetInputChipCount");
13543
13728
  this.errorId = createID("DuetError");
13729
+ this.maxlengthAnnouncementKey = 0;
13544
13730
  this.disallowPatternRegex = null;
13545
13731
  this.clearLabel = {
13546
13732
  en: "Clear",
@@ -13577,6 +13763,11 @@ class DuetInput {
13577
13763
  fi: "valittu",
13578
13764
  sv: "valt",
13579
13765
  };
13766
+ this.maxlengthReachedLabel = {
13767
+ en: "This field has a maximum length of {max} characters. Limit reached.",
13768
+ fi: "Tämän kentän enimmäispituus on {max} merkkiä. Raja on saavutettu.",
13769
+ sv: "Det här fältet har en maximal längd på {max} tecken. Gränsen är nådd.",
13770
+ };
13580
13771
  /**
13581
13772
  * State() variables
13582
13773
  */
@@ -13586,6 +13777,10 @@ class DuetInput {
13586
13777
  */
13587
13778
  this.isFocused = false;
13588
13779
  this._accessiblePopup = undefined;
13780
+ /**
13781
+ * Text announced to screen readers when the maxlength limit is reached.
13782
+ */
13783
+ this.maxlengthAnnouncement = "";
13589
13784
  /**
13590
13785
  * Indicates the id or a string of space seperated ids of a component(s) that describes the input.
13591
13786
  */
@@ -13683,7 +13878,7 @@ class DuetInput {
13683
13878
  */
13684
13879
  this.labelHidden = false;
13685
13880
  /**
13686
- * Enable numeric keyboard for the input.
13881
+ * Enable numeric keyboard for the input. Note that on iOS the numeric keyboard does not contain minus.
13687
13882
  */
13688
13883
  this.numericKeyboard = false;
13689
13884
  /**
@@ -13692,7 +13887,9 @@ class DuetInput {
13692
13887
  */
13693
13888
  this.component = "input";
13694
13889
  /**
13695
- * Enable or disable automatic completion by the browser
13890
+ * Set the type of automatic completion by the browser. If possible use the standard tokens like "name", "given-name",
13891
+ * "family-name", "postal-code", "street-address" etc. The component adds automatically "tel" and "email". If you must
13892
+ * disable autocomplete use "off" (but avoid disabling unless absolutely necessary).
13696
13893
  */
13697
13894
  this.autoComplete = "on";
13698
13895
  /**
@@ -13714,9 +13911,22 @@ class DuetInput {
13714
13911
  * Component event handling.
13715
13912
  */
13716
13913
  this.onInput = (ev) => {
13717
- if (this.maxlength && this.nativeInput.value.length > this.maxlength) {
13914
+ var _a;
13915
+ // In addition to input event, maxlength handling uses also keyDown and paste events as input event may not be
13916
+ // triggered when entry is truncated by the browser.
13917
+ if (this.maxlength) {
13918
+ const wasAtMaxlength = (((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) || 0) >= this.maxlength;
13919
+ const nativeLength = this.nativeInput.value.length;
13718
13920
  // Android doesn't honor maxlength
13719
- this.nativeInput.value = this.nativeInput.value.slice(0, this.maxlength);
13921
+ const inputOverflow = nativeLength > this.maxlength;
13922
+ if (inputOverflow) {
13923
+ this.nativeInput.value = this.nativeInput.value.slice(0, this.maxlength);
13924
+ }
13925
+ const limitJustReached = !wasAtMaxlength && nativeLength === this.maxlength;
13926
+ const limitExceededWhileFull = wasAtMaxlength && inputOverflow;
13927
+ if (limitJustReached || limitExceededWhileFull) {
13928
+ this.handleMaxlengthLimitReached();
13929
+ }
13720
13930
  }
13721
13931
  if (this.disallowPatternRegex) {
13722
13932
  cleanValue(this.nativeInput, this.disallowPatternRegex);
@@ -13762,9 +13972,35 @@ class DuetInput {
13762
13972
  component: "duet-input",
13763
13973
  });
13764
13974
  };
13975
+ this.onInputKeyDown = (ev) => {
13976
+ if (this.maxlength && isCharacterInsertKey(ev) && this.isAtMaxlengthWithoutSelection()) {
13977
+ this.handleMaxlengthLimitReached();
13978
+ }
13979
+ };
13980
+ this.onInputPaste = () => {
13981
+ if (this.maxlength && this.isAtMaxlengthWithoutSelection()) {
13982
+ this.handleMaxlengthLimitReached();
13983
+ }
13984
+ };
13985
+ this.isAtMaxlengthWithoutSelection = () => {
13986
+ const input = this.nativeInput;
13987
+ const inputIsWithoutSelection = input.selectionStart === input.selectionEnd;
13988
+ const inputIsAtMaxlength = input.value.length >= this.maxlength;
13989
+ return inputIsWithoutSelection && inputIsAtMaxlength;
13990
+ };
13991
+ this.handleMaxlengthLimitReached = () => {
13992
+ clearTimeout(this.maxlengthAnnouncementTimeoutId);
13993
+ this.maxlengthAnnouncement = "";
13994
+ this.maxlengthAnnouncementTimeoutId = setTimeout(() => {
13995
+ this.maxlengthAnnouncementKey++;
13996
+ this.maxlengthAnnouncement = this.maxlengthReachedLabel[this.language].replace("{max}", String(this.maxlength));
13997
+ }, 300);
13998
+ };
13765
13999
  /**
13766
14000
  * Private functions
13767
14001
  */
14002
+ // As comma may be used as decimal separator normalize value to have dot before parsing as number
14003
+ this.valueAsNormalizedFloat = () => { var _a; return Number.parseFloat((_a = this.value) === null || _a === void 0 ? void 0 : _a.replace(/,/g, ".")); };
13768
14004
  this.getAriaDescribedBy = () => {
13769
14005
  const describedBy = [];
13770
14006
  if (this.isCaptionVisible && this.topCaptionId) {
@@ -13785,6 +14021,19 @@ class DuetInput {
13785
14021
  }
13786
14022
  return describedBy.length > 0 ? describedBy.join(" ") : null;
13787
14023
  };
14024
+ this.getAriaLabelledBy = () => {
14025
+ const labelledBy = [this.labelId];
14026
+ if (!!this.fieldPrefix) {
14027
+ labelledBy.push(this.prefixId);
14028
+ }
14029
+ if (!!this.fieldSuffix) {
14030
+ labelledBy.push(this.suffixId);
14031
+ }
14032
+ if (!!this.accessibleLabelledBy) {
14033
+ labelledBy.push(this.accessibleLabelledBy);
14034
+ }
14035
+ return labelledBy.join(" ");
14036
+ };
13788
14037
  this.handleClearClick = (event) => {
13789
14038
  const clearing = this.clearInput();
13790
14039
  this.onClear(event);
@@ -13875,7 +14124,31 @@ class DuetInput {
13875
14124
  * This is a proxy for the enclosed native inputs validity
13876
14125
  */
13877
14126
  get validity() {
13878
- return this.nativeInput.validity;
14127
+ var _a, _b;
14128
+ // Copy the value of the native validity state to a proxy object, as native validity is readonly.
14129
+ const validity = {
14130
+ badInput: false,
14131
+ customError: false,
14132
+ patternMismatch: false,
14133
+ rangeOverflow: false,
14134
+ rangeUnderflow: false,
14135
+ stepMismatch: false,
14136
+ tooLong: false,
14137
+ tooShort: false,
14138
+ typeMismatch: false,
14139
+ valid: true,
14140
+ valueMissing: false,
14141
+ };
14142
+ Object.keys(validity).forEach(key => (validity[key] = this.nativeInput.validity[key]));
14143
+ if (typeof this.max !== "undefined" && ((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) && this.max < this.valueAsNormalizedFloat()) {
14144
+ validity.rangeOverflow = true;
14145
+ validity.valid = false;
14146
+ }
14147
+ if (typeof this.min !== "undefined" && ((_b = this.value) === null || _b === void 0 ? void 0 : _b.length) && this.min > this.valueAsNormalizedFloat()) {
14148
+ validity.rangeUnderflow = true;
14149
+ validity.valid = false;
14150
+ }
14151
+ return validity;
13879
14152
  }
13880
14153
  /**
13881
14154
  * @internal
@@ -13890,7 +14163,8 @@ class DuetInput {
13890
14163
  inheritGlobalTheme(this);
13891
14164
  this.disallowedPatternChange();
13892
14165
  this.isCaptionVisible = !!this.caption;
13893
- checkNamedSlotElement(this.element, "tooltip", "duet-tooltip", 1, true);
14166
+ // Accept also slot element so that other components using duet-input can pass their tooltip slots here.
14167
+ checkNamedSlotElement(this.element, "tooltip", "duet-tooltip, slot", 1, true);
13894
14168
  }
13895
14169
  componentDidLoad() {
13896
14170
  if (this.variation === "revealable" && this.nativeInput.form) {
@@ -13997,6 +14271,21 @@ class DuetInput {
13997
14271
  }
13998
14272
  }
13999
14273
  }
14274
+ getAutocomplete() {
14275
+ if (this.type === "password") {
14276
+ return "off";
14277
+ }
14278
+ const tokens = this.autoComplete.split(/\s+/);
14279
+ // If attribute includes "email", e.g. "work email", don't overwrite it
14280
+ if (this.type === "email" && this.autoComplete !== "off" && !tokens.includes("email")) {
14281
+ return "email";
14282
+ }
14283
+ // If attribute includes "tel", e.g. "mobile tel", don't overwrite it
14284
+ if (this.type === "tel" && this.autoComplete !== "off" && !tokens.includes("tel")) {
14285
+ return "tel";
14286
+ }
14287
+ return this.autoComplete;
14288
+ }
14000
14289
  /**
14001
14290
  * Add a chip to the input. Property "chips" must be true.
14002
14291
  */
@@ -14036,7 +14325,7 @@ class DuetInput {
14036
14325
  const identifier = this.identifier || this.inputId;
14037
14326
  const inputProps = {};
14038
14327
  if (this.numericKeyboard) {
14039
- inputProps.inputmode = "numeric";
14328
+ inputProps.inputmode = "decimal";
14040
14329
  }
14041
14330
  // Set validation regexes
14042
14331
  if (this.pattern && this.type !== "tel") {
@@ -14061,7 +14350,7 @@ class DuetInput {
14061
14350
  this.type !== "password" &&
14062
14351
  this.type !== "time" &&
14063
14352
  this.variation !== "button";
14064
- return (hAsync(Host, { key: 'c36aabb598d1ab24aede9cacbbc0f8dfeaf7ff2f', class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" }, onKeyUp: e => this.keyHandler(e) }, this.type === "time" && (hAsync("duet-visually-hidden", { key: 'ee9481c94a8beeeb5b22e5f9f3dc92a96111e3e8', "aria-live": "polite", "aria-atomic": "true" }, selectedTime ? `${this.timeAnnouncement[this.language]} ${selectedTime.toLocaleTimeString()}` : "")), hAsync("div", { key: 'a75cdb69696761e21eb42620bc3162f3ffbe062e', class: {
14353
+ return (hAsync(Host, { key: '1119e8e51f3a490e34665e77ce32ec21f7bc70c7', class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" }, onKeyUp: e => this.keyHandler(e) }, this.type === "time" && (hAsync("duet-visually-hidden", { key: '31afa65dcb1b161f8c5a87c65953a26a552066b8', "aria-live": "polite", "aria-atomic": "true" }, selectedTime ? `${this.timeAnnouncement[this.language]} ${selectedTime.toLocaleTimeString()}` : "")), hAsync("div", { key: '5574afef8c592593193cbf0c99eaf8eaa84dbf11', class: {
14065
14354
  "duet-input-container": true,
14066
14355
  "duet-theme-turva": this.theme === "turva",
14067
14356
  [`duet-input-variation-${this.variation}`]: true,
@@ -14074,12 +14363,15 @@ class DuetInput {
14074
14363
  "has-chips": this.chips,
14075
14364
  "has-clear": this.clear,
14076
14365
  "has-focus": this.isFocused,
14366
+ "has-adornment": !!this.fieldPrefix || !!this.fieldSuffix,
14367
+ "has-prefix": !!this.fieldPrefix,
14368
+ "has-suffix": !!this.fieldSuffix,
14077
14369
  disabled: this.disabled,
14078
- } }, hAsync("div", { key: '84b4ba43c2fbbdf7b390dba0a7f0dc839626b5ed', class: "duet-input-label-container" }, hAsync(DuetInternalLabel, { key: 'a7134e94f657eab2c9c5156a81269712c83ec270', theme: this.theme === "turva" ? "turva" : "default", margin: this.isCaptionVisible ? "small" : "auto", color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: identifier }, this.label), this.tooltip && (hAsync("duet-tooltip", { key: '669a1461aedfebd1c2e66077beda1c298b77458c', class: "duet-input-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label, theme: this.theme === "turva" ? "turva" : "default" }, this.tooltip)), hAsync("slot", { key: 'ad5e55d3a36ade247c1508eeffe9de96df514c51', name: "tooltip" })), this.caption && (hAsync("duet-caption", { key: '5c4bfb71d79efe8be226ba521c95c5d8fbec67de', id: this.topCaptionId, size: "medium" }, this.caption)), hAsync("div", { key: '4dfa6f211f3d00f6906d8e18ea9c4fdcc8ec3877', class: {
14370
+ } }, hAsync("div", { key: 'cd0dfb4e8ef821c84d342fff017da9b3e6938134', class: "duet-input-label-container" }, hAsync(DuetInternalLabel, { key: '7ef9a4e3ccbc5b7ac030ca66912eb0471103ed10', theme: this.theme === "turva" ? "turva" : "default", margin: this.isCaptionVisible ? "small" : "auto", color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: identifier }, this.label), this.tooltip && (hAsync("duet-tooltip", { key: 'f263424aa51a59f4252cad4b4a1347b5986869ae', class: "duet-input-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label, theme: this.theme === "turva" ? "turva" : "default" }, this.tooltip)), hAsync("slot", { key: 'b4afd5ae65bbc03083b81996965cb354d6fd2a35', name: "tooltip" })), this.caption && (hAsync("duet-caption", { key: '1d126824ee2ef4b7a4dae8650363e9da0b58c288', id: this.topCaptionId, size: "medium" }, this.caption)), hAsync("div", { key: 'adb5b8fa3b3de37c96d74fd1b888de75689a3ce0', class: {
14079
14371
  "duet-input-relative": true,
14080
14372
  "duet-theme-turva": this.theme === "turva",
14081
14373
  "has-error": !!this.error,
14082
- } }, this.placeholder && this.echoPlaceholder && (this.value || this.type === "time") && (hAsync("duet-caption", { key: 'f7811efcc2acfa5b01b1efd6d334a35c35350ca1', id: this.topCaptionPlaceholderId, class: "duet-input-placeholder", margin: "none", size: "small" }, this.placeholder)), this.chips && (hAsync("duet-visually-hidden", { key: 'f4c6f4a8974bfca86248b528b05f84d50c73ba4c', id: this.chipCountId }, ", ", `${this.getAllChips().length} ${getLocaleString(this.chipsSelectedDesriptionLabel)}`, ",")), this.variation === "button-left" && hAsync("slot", { key: 'b270e8b1fe5c958c76b9ba82e7c25aedf35ae710', name: "button-left" }), hAsync("input", Object.assign({ key: 'ee3e9844d6fd27bafb895d0f08a2ce2282237024', ref: input => (this.nativeInput = input), onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, type: this.getInputType(), class: {
14374
+ } }, this.placeholder && this.echoPlaceholder && (this.value || this.type === "time") && (hAsync("duet-caption", { key: 'fcadd06bf9e0dc4115c0bd004de23fa5692b03fc', id: this.topCaptionPlaceholderId, class: "duet-input-placeholder", margin: "none", size: "small" }, this.placeholder)), this.chips && (hAsync("duet-visually-hidden", { key: '84a8a1feed5a0895936f5e1d5ee310c6282f1678', id: this.chipCountId }, ", ", `${this.getAllChips().length} ${getLocaleString(this.chipsSelectedDesriptionLabel)}`, ",")), this.variation === "button-left" && hAsync("slot", { key: '90533c1b234e2644eb97317f903abbf04fee8138', name: "button-left" }), this.fieldPrefix && (hAsync("span", { key: '151fd6757766b8c7e86ded73639d87bb32814089', class: "input-adornment prefix", id: this.prefixId }, this.fieldPrefix)), hAsync("input", Object.assign({ key: '06811722717032661d4ba5e3bfa9c2b6196cf082', ref: input => (this.nativeInput = input), onInput: this.onInput, onKeyDown: this.onInputKeyDown, onPaste: this.onInputPaste, onBlur: this.onBlur, onFocus: this.onFocus, type: this.getInputType(), class: {
14083
14375
  "duet-input": true,
14084
14376
  disabled: this.disabled,
14085
14377
  "is-number": this.component === "number",
@@ -14087,17 +14379,17 @@ class DuetInput {
14087
14379
  "after-chip": this.getAllChips().length > 0,
14088
14380
  "align-right": this.inputAlign === "right",
14089
14381
  [`input-padding-${this.inputPadding}`]: true,
14090
- }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": this.accessibleLabelledBy ? `${this.labelId} ${this.accessibleLabelledBy}` : this.labelId, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-expanded": this.accessibleExpanded, "aria-haspopup": this.accessibleHasPopup, "aria-owns": this.accessibleOwns, "aria-describedby": this.getAriaDescribedBy(), placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.type === "password" ? "off" : this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), !this.value && hasInputIcon && (hAsync("div", { key: 'f021ac46e0c9738775a03965e2c3497d80c4dced', class: "duet-input-icon" }, hAsync("duet-icon", { key: '56bff364b7c70d530c3dd809b2a8a2f7fe1fff5b', margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.clear && this.value && (hAsync("div", { key: '7eb63087db85f1095034e2584cf4d1d4b124c82a', class: {
14382
+ }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": this.getAriaLabelledBy(), "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-expanded": this.accessibleExpanded, "aria-haspopup": this.accessibleHasPopup, "aria-owns": this.accessibleOwns, "aria-describedby": this.getAriaDescribedBy(), placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.getAutocomplete(), required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), this.maxlength && (hAsync("duet-visually-hidden", { key: `maxlength-announcement-${this.maxlengthAnnouncementKey}`, "aria-live": "polite", "aria-atomic": "true" }, this.maxlengthAnnouncement)), this.fieldSuffix && (hAsync("span", { key: 'b2d284fc05798f7dab08555f524cabf4f94f0e19', class: "input-adornment suffix", id: this.suffixId }, this.fieldSuffix)), !this.value && hasInputIcon && (hAsync("div", { key: '8364a8a7687b6e37279585edf55da9005673f4df', class: "duet-input-icon" }, hAsync("duet-icon", { key: '1b420da3e76241f1e105ce5ef8b9f40e6490424d', margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.clear && this.value && (hAsync("div", { key: 'c67978258fbf64a22563a8e139b7a7de012bb4ca', class: {
14091
14383
  "duet-input-clear-icon": true,
14092
14384
  "duet-input-clear-icon-single": !hasInputIcon,
14093
14385
  "duet-input-clear-icon-double": !!this.icon,
14094
14386
  "duet-input-clear-icon-button": this.variation === "button",
14095
14387
  [`input-padding-${this.inputPadding}`]: true,
14096
- } }, hAsync("button", { key: '72fb4efe7f5d0ea161c7401acb59f2b20a77adac', onClick: this.handleClearClick, id: this.clearId, "aria-label": this.clearLabel[this.language], "aria-keyshortcuts": "Escape" }, hAsync("duet-icon", { key: 'f9df024692c1be597b37cedc74c8203e8fabb908', margin: "none", size: "medium", name: "action-clear-input", color: "currentColor" })))), this.icon && this.variation !== "button" && (hAsync("div", { key: 'bca090dc2f20e1febe6674059e0a3b22c2d79d2f', class: "duet-input-icon" }, hAsync("duet-icon", { key: '9066e27643ad85bc683cd36a5998e7bd0fcad572', margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.variation === "button" && hAsync("slot", { key: 'c83a2b95a969c7f1c2f7a3915cdfce56d1c525b8', name: "button" }), this.variation === "revealable" && (hAsync("duet-button", { key: '86fc4aaddb775f76d602b699bdc8c811f41f2561', ref: button => (this.togglePasswordRevealedButton = button), onBlur: this.onBlur, onFocus: this.onFocus, onClick: this.togglePasswordRevealed, icon: this.isPasswordRevealed ? "action-hide" : "action-show", accessibleLabel: this.isPasswordRevealed
14388
+ } }, hAsync("button", { key: 'b243244d6d5184c42a9afb93483479a0b07bad7d', onClick: this.handleClearClick, id: this.clearId, "aria-label": this.clearLabel[this.language], "aria-keyshortcuts": "Escape" }, hAsync("duet-icon", { key: '2ff21863005e55dc7a4dc1a16e2e2e40ad7f85cf', margin: "none", size: "medium", name: "action-clear-input", color: "currentColor" })))), this.icon && this.variation !== "button" && (hAsync("div", { key: '7732892f159a6c7c9ad7c89b0031052b1ed45502', class: "duet-input-icon" }, hAsync("duet-icon", { key: '97de6dc8ff0c506db494dc36edc6d0107792c2b9', margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.variation === "button" && hAsync("slot", { key: '5c940caf605e2eaff4db2a36c63548db78f36f41', name: "button" }), this.variation === "revealable" && (hAsync("duet-button", { key: 'caf0a7c8bec4a620e2ca5f897eaabc1814f32c5d', ref: button => (this.togglePasswordRevealedButton = button), onBlur: this.onBlur, onFocus: this.onFocus, onClick: this.togglePasswordRevealed, icon: this.isPasswordRevealed ? "action-hide" : "action-show", accessibleLabel: this.isPasswordRevealed
14097
14389
  ? this.hidePasswordLabel[this.language]
14098
- : this.showPasswordLabel[this.language], margin: "none", variation: "input-button-embedded", fixed: true, iconOnly: true })), this.variation === "revealable" && this.isPasswordRevealed !== undefined && (hAsync("duet-visually-hidden", { key: 'dfa0a59d038af09b5115dae28772c108918154ab' }, hAsync("span", { key: '00408d3c2616c8e1aa64b41503ae7760c1fd60af', "aria-live": "polite" }, this.isPasswordRevealed
14390
+ : this.showPasswordLabel[this.language], margin: "none", variation: "input-button-embedded", fixed: true, iconOnly: true })), this.variation === "revealable" && this.isPasswordRevealed !== undefined && (hAsync("duet-visually-hidden", { key: 'cc394dbd7d28fc9e1cf0a864c67e7e7a6a835d1a' }, hAsync("span", { key: '20033ed28c86634d6faf03180e53cff84def1329', "aria-live": "polite" }, this.isPasswordRevealed
14099
14391
  ? this.passwordShownAriaAnnouncement[this.language]
14100
- : this.passwordHiddenAriaAnnouncement[this.language]))), hAsync("slot", { key: '3b539164f49b311fcdc82ce75cb75d360e148c4b' })), hAsync("span", { key: '2f2f5abff72831b7257d404dfedecb8bea316762', class: "duet-input-help", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && hAsync("span", { key: '63e8da0c2b2638d8af7f0b87f4e00ab5d5b7aa8c', class: "duet-input-error" }, this.error)))));
14392
+ : this.passwordHiddenAriaAnnouncement[this.language]))), hAsync("slot", { key: 'b72c50503fa80fd1ba6764b7b3348bc5d7b2813c' })), hAsync("span", { key: '25790e8c5147bb271fefa6cbce2343287b57c816', class: "duet-input-help", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && hAsync("span", { key: 'c62d261a03ebec492aed9c65a836525e47660cfc', class: "duet-input-error" }, this.error)))));
14101
14393
  }
14102
14394
  get element() { return getElement(this); }
14103
14395
  static get watchers() { return {
@@ -14141,11 +14433,15 @@ class DuetInput {
14141
14433
  "labelWeight": [1025, "label-weight"],
14142
14434
  "error": [513],
14143
14435
  "labelHidden": [4, "label-hidden"],
14436
+ "fieldPrefix": [1, "field-prefix"],
14437
+ "fieldSuffix": [1, "field-suffix"],
14144
14438
  "numericKeyboard": [4, "numeric-keyboard"],
14145
14439
  "name": [1],
14146
14440
  "pattern": [1],
14147
14441
  "maxlength": [2],
14148
14442
  "minlength": [2],
14443
+ "max": [2],
14444
+ "min": [2],
14149
14445
  "placeholder": [1],
14150
14446
  "component": [1],
14151
14447
  "role": [1],
@@ -14161,6 +14457,7 @@ class DuetInput {
14161
14457
  "isPasswordRevealed": [32],
14162
14458
  "isFocused": [32],
14163
14459
  "_accessiblePopup": [32],
14460
+ "maxlengthAnnouncement": [32],
14164
14461
  "setFocus": [64],
14165
14462
  "resetCursor": [64],
14166
14463
  "clearInput": [64],
@@ -14306,24 +14603,24 @@ class DuetLayout {
14306
14603
  * Always the last one in the class.
14307
14604
  */
14308
14605
  render() {
14309
- return (hAsync(Host, { key: '53712da1e22dc258d30906570bf1271624379ed8', class: {
14606
+ return (hAsync(Host, { key: 'c3ba619c0c3088257b425ba8f5022ebef33c1100', class: {
14310
14607
  center: this.center,
14311
14608
  "duet-middle": this.middle,
14312
14609
  "duet-ie": isInternetExplorer(),
14313
- } }, hAsync("div", { key: '80dc2f3b86a02c22c7aebd8802bd332154c4a273', class: { "duet-layout-wrapper": true, "duet-m-0": this.margin === "none" } }, this.hasTop && (hAsync("div", { key: '9f3f4c713d5b921ad78480072e3dcea4d4867d04', class: {
14610
+ } }, hAsync("div", { key: 'd627f63579dfb957bf3abe17191e8a8e943f0aae', class: { "duet-layout-wrapper": true, "duet-m-0": this.margin === "none" } }, this.hasTop && (hAsync("div", { key: '4586ff77f2ef4209020a2401eef63273527a2e27', class: {
14314
14611
  "duet-layout-top": true,
14315
14612
  "duet-center": this.center,
14316
- } }, hAsync("div", { key: '7cd44f76b96b5e2bd6033cc044f08e75a10760ed', class: "duet-layout-top-wrapper" }, hAsync("slot", { key: '7743f1fe659f31925b27a85a970e934506b935e7', name: "top" })))), hAsync("div", { key: '637a68f8376e073f146c63f2c866b6f52722577e', class: {
14613
+ } }, hAsync("div", { key: 'daebb47e73054b59bb0459dc3327e0e60b17ebbe', class: "duet-layout-top-wrapper" }, hAsync("slot", { key: '339fac00b53c0b4f532cfc77d5743217b5f72057', name: "top" })))), hAsync("div", { key: 'bbf287d1f0aa701c40553a426b7a77b0a1c24c17', class: {
14317
14614
  "duet-layout": true,
14318
14615
  "has-sidebar": this.hasSidebar,
14319
14616
  "duet-center": this.center,
14320
14617
  [`padding-${this.paddingBreakpoint}`]: !!this.paddingBreakpoint,
14321
- } }, hAsync("main", { key: 'f6b2682dfb675be08976b23a485cf1a7ad76de0c', class: "duet-main" }, this.hasPageHeading && hAsync("slot", { key: '9ec618959d54d768b880f95e05df0e5aaf76de75', name: "page-heading" }), hAsync("slot", { key: 'b3c960b48d55fb863854fc34e126b1a143b3d194', name: "main" })), this.hasSidebar && (hAsync("aside", { key: '68671aab139ba365d60284909e489a78bd7438d3', class: "duet-sidebar" }, hAsync("div", { key: '60a53e1fa61ccec8fa2b85f20b475c52e016b963', class: {
14618
+ } }, hAsync("main", { key: '0d75aa9aeb65fa61f8e0ff114cee467abe49f1cd', class: "duet-main" }, this.hasPageHeading && hAsync("slot", { key: 'fd0ed7464c54122f1cfbbfbfc40f78d8c9ab41c7', name: "page-heading" }), hAsync("slot", { key: '1004e4007a1d82e22147ddf3a883e8ddc9c7b0dc', name: "main" })), this.hasSidebar && (hAsync("aside", { key: '167c6d2495c8bbc7cd0275f723e0810b9fc311b6', class: "duet-sidebar" }, hAsync("div", { key: 'f0bbcbeb756bf18ba1b678c405c3890fb00ad857', class: {
14322
14619
  "duet-sidebar-container": true,
14323
14620
  "has-tabs": this.tabs,
14324
14621
  sticky: this.sticky,
14325
14622
  [this.stickyDistance]: this.sticky,
14326
- } }, hAsync("slot", { key: 'a6131a1af98bb5cf2c6c808b15cea9e6996143f3', name: "sidebar" }))))))));
14623
+ } }, hAsync("slot", { key: 'b8b30e8b29bb87ea6a0c0891ca5f841d0921f72b', name: "sidebar" }))))))));
14327
14624
  }
14328
14625
  get element() { return getElement(this); }
14329
14626
  static get style() { return duetLayoutCss; }
@@ -14583,10 +14880,10 @@ class DuetLink {
14583
14880
  const Tag = !this.url && this.variation !== "default" ? "button" : "a";
14584
14881
  const role = !this.url && this.variation === "default" ? "button" : null;
14585
14882
  const isButton = Tag === "button";
14586
- return (hAsync(Host, { key: '7fc9958dae390b84feaddc854bf6b039d3bd00a4', class: {
14883
+ return (hAsync(Host, { key: '07cf184d2f321700e665e358f8a0cb988e798da8', class: {
14587
14884
  [`duet-link-${this.variation}`]: true,
14588
14885
  "duet-m-0": this.margin === "none",
14589
- } }, hAsync(Tag, { key: '1d0baa8ee391bbfc51eb30936564d9e7d1a7de97', href: this.url, class: {
14886
+ } }, hAsync(Tag, { key: 'bb416240f5adc73c8eeacbd4ca0524619326a954', href: this.url, class: {
14590
14887
  "duet-link": true,
14591
14888
  "duet-link-is-external": this.external,
14592
14889
  "duet-link-is-download": !!this.download,
@@ -14776,7 +15073,7 @@ class DuetList {
14776
15073
  * Always the last one in the class.
14777
15074
  */
14778
15075
  render() {
14779
- return (hAsync("dl", { key: '82930dea1fe1193f295b5888ed5f06a85693faaa', class: { "duet-list-component": true, "duet-m-0": this.margin === "none" } }, hAsync("slot", { key: '44602efe41782f5dc0221b0fe2dd2ac6dc905ae3' })));
15076
+ return (hAsync("dl", { key: 'c83e43f3d82e32198e0a5d45a0812b8358f6be07', class: { "duet-list-component": true, "duet-m-0": this.margin === "none" } }, hAsync("slot", { key: '7a65328f555edf10f4da02166eebcfcf8b8f68f7' })));
14780
15077
  }
14781
15078
  get element() { return getElement(this); }
14782
15079
  static get watchers() { return {
@@ -14842,7 +15139,7 @@ class DuetListItem {
14842
15139
  * Always the last one in the class.
14843
15140
  */
14844
15141
  render() {
14845
- return (hAsync(Host, { key: 'e4cd01b6b0c03f3d82beba7c85400711e49f6582', class: {
15142
+ return (hAsync(Host, { key: '83029afa5ebc666926eb1572b8ad9a311bdbfcf1', class: {
14846
15143
  "duet-theme-turva": this.theme === "turva",
14847
15144
  "duet-no-stacking": !this.responsive,
14848
15145
  "duet-list-item-breakpoint-x-small": this.breakpoint === "x-small",
@@ -14850,7 +15147,7 @@ class DuetListItem {
14850
15147
  "duet-list-item-breakpoint-medium": this.breakpoint === "medium",
14851
15148
  "duet-list-item-breakpoint-large": this.breakpoint === "large",
14852
15149
  "duet-list-item-breakpoint-x-large": this.breakpoint === "x-large",
14853
- } }, hAsync("dt", { key: '9644bd50dfb2d6b45bd136bedcb6968f9a2675ba' }, hAsync("slot", { key: 'db3550984b29dd4dad07eb4ab7d047652e83ac22', name: "label" })), hAsync("dd", { key: '1e01b0449b667d1de8e9ba3ed9593725c5ce8353' }, hAsync("slot", { key: 'c0662c72ff8ba3c2a13041b741b15ee1f9b0f544', name: "value" }))));
15150
+ } }, hAsync("dt", { key: '884936458d12b95cd553cd4dc4d8a237cd8e5830' }, hAsync("slot", { key: 'b17473caf7b410acf49f8c68f9ae53b3071397d7', name: "label" })), hAsync("dd", { key: 'e5c6aa8b8d8998d500d27493896a288f71861df6' }, hAsync("slot", { key: '7a6a3b223c394bb3376d7734791cfd439076d5f7', name: "value" }))));
14854
15151
  }
14855
15152
  get element() { return getElement(this); }
14856
15153
  static get style() { return duetListItemCss; }
@@ -14988,7 +15285,7 @@ class DuetLogo {
14988
15285
  */
14989
15286
  render() {
14990
15287
  const TagName = this.href ? "a" : "div";
14991
- return (hAsync(Host, { key: '31d7e480f3c9ef37d87d5af511489b235731973c', class: { "duet-m-0": this.margin === "none" } }, hAsync(TagName, { key: 'f280ec89b183ee99be0449f35a824b77aff8a2d0', href: this.href, ref: link => (this.nativeLink = link), "aria-label": this.accessibleLabel, class: {
15288
+ return (hAsync(Host, { key: 'b66ac360589fd13695f735c6c659bc4f94e2375e', class: { "duet-m-0": this.margin === "none" } }, hAsync(TagName, { key: '91a1d72ee9da1ac978938f28eaab541f3dc7a2ce', href: this.href, ref: link => (this.nativeLink = link), "aria-label": this.accessibleLabel, class: {
14992
15289
  "duet-logo": true,
14993
15290
  [this.size]: true,
14994
15291
  "duet-logo-inverse": this.inverse,
@@ -15148,17 +15445,17 @@ class DuetMenuBar {
15148
15445
  render() {
15149
15446
  const slideoutAvailable = document.querySelectorAll("duet-slideout").length > 0;
15150
15447
  const isUsedAsAdditionalHorizontalNav = slideoutAvailable && !this.logo;
15151
- return (hAsync(Host, { key: 'da384aec934b8177658bc5b2ba9126dabe8b44cc' }, hAsync("nav", { key: 'eb7dd8d958e964d1b0e5d2cf96a20a4d0c0c70dc', class: {
15448
+ return (hAsync(Host, { key: '8e72a749ab5f9a2b180ea11670931e4a5f1dfc48' }, hAsync("nav", { key: '13aa3dead3343cbd11debfec1c4e4c7b6d58ea41', class: {
15152
15449
  "duet-menu-bar": true,
15153
15450
  "duet-theme-turva": this.theme === "turva",
15154
15451
  "horizontal-nav": isUsedAsAdditionalHorizontalNav,
15155
15452
  "duet-menu-bar-slim": !this.centerSlotUsed,
15156
15453
  hidden: this.hidden && this.hideOnScroll,
15157
15454
  bottom: this.onBottom,
15158
- }, "aria-label": this.accessibleLabel }, hAsync("div", { key: '4a8a38d9fd5457b716bff3252791d35eb8441aec', class: "top" }), hAsync("div", { key: 'dfe385565d075aba16005d29790111cc51b5a464', class: { container: true, "with-info-text": !!this.logoInfoText && !this.centerSlotUsed }, ref: el => (this.container = el), onScroll: () => this.scrollbarCheck() }, this.logo && (hAsync("div", { key: 'd7fa21e1f8b0f3ea5eeb5eff037790a47c57be22' }, hAsync("duet-logo", { key: '081cd1b58c97e71196ff421dbb7b1ed4f2e2278e', class: "medium", size: "medium", margin: "none", theme: this.theme, href: this.logoHref, accessibleLabel: this.logoLinkAccessibleLabel, onClick: this.handleLogoClick, language: this.language }), hAsync("duet-logo", { key: '41b6ffe971ec6c9ff78c2f79834df3c9dceb3482', class: "large", size: "large", margin: "none", theme: this.theme, href: this.logoHref, accessibleLabel: this.logoLinkAccessibleLabel, onClick: this.handleLogoClick, language: this.language }), hAsync("duet-logo", { key: '16cc7621a8d50d64d63fd7b8af07f074e30a49d0', class: "only-symbol", onlySymbol: true, margin: "none", theme: this.theme, href: this.logoHref, accessibleLabel: this.logoLinkAccessibleLabel, onClick: this.handleLogoClick, language: this.language }), this.logoInfoText && !this.centerSlotUsed && (hAsync("div", { key: '2f0bcec90b8c9f508d95fb31d8ad9904ea7bf652', class: {
15455
+ }, "aria-label": this.accessibleLabel }, hAsync("div", { key: 'f6f5066520f23e2f40105c60550f9ca09a3f3ce4', class: "top" }), hAsync("div", { key: '1bc95be8d4b824e14c1ab97ea7b6131bdf80ae84', class: { container: true, "with-info-text": !!this.logoInfoText && !this.centerSlotUsed }, ref: el => (this.container = el), onScroll: () => this.scrollbarCheck() }, this.logo && (hAsync("div", { key: '1126ebdb087ef0879f0a3367a7c230d1b161e14c' }, hAsync("duet-logo", { key: '770ef75946420cf9122526af88eac7afec069ae2', class: "medium", size: "medium", margin: "none", theme: this.theme, href: this.logoHref, accessibleLabel: this.logoLinkAccessibleLabel, onClick: this.handleLogoClick, language: this.language }), hAsync("duet-logo", { key: '400f1b37fe02584a549d7b20e9a8df46ecfdf1b3', class: "large", size: "large", margin: "none", theme: this.theme, href: this.logoHref, accessibleLabel: this.logoLinkAccessibleLabel, onClick: this.handleLogoClick, language: this.language }), hAsync("duet-logo", { key: '91c920bbb82868d57688e80a8cb8ce9e0862d44a', class: "only-symbol", onlySymbol: true, margin: "none", theme: this.theme, href: this.logoHref, accessibleLabel: this.logoLinkAccessibleLabel, onClick: this.handleLogoClick, language: this.language }), this.logoInfoText && !this.centerSlotUsed && (hAsync("div", { key: 'fffe9b63fe88c88c7513747e8c7c4c6132a09bc3', class: {
15159
15456
  "duet-logo-info-text": true,
15160
15457
  "duet-theme-turva": this.theme === "turva",
15161
- } }, this.logoInfoText)))), hAsync("div", { key: '0630a90a58cfcfdd4255c018db1ea172240b5611', class: "list center", role: "list" }, hAsync("div", { key: '6e9f9d06775216dfa9ec70b2c768d5957ba67f10', class: "more-left", hidden: !this.leftMoreVisible, role: "presentation" }), hAsync("slot", { key: '03f6a07cf3633d2ba2c62b76d40d2f74bba6f366', name: "center" }), hAsync("div", { key: '7baeb903a2656bb33129bac0cf6007fce4604bd1', class: "more-right", hidden: !this.rightMoreVisible, role: "presentation" })), hAsync("div", { key: '8a183192d62d7040c1ab2a8a684d8a7678803436', class: "list right", role: "list" }, hAsync("slot", { key: 'd2f48181bf06824a5901fdc37f7f9eb729460c68', name: "right" }))), hAsync("div", { key: '3b1e931eb638ea04b5a0743d2ab03413ca220a33', class: "bottom" }))));
15458
+ } }, this.logoInfoText)))), hAsync("div", { key: '7f0792cfa41b0056d5cc7cc307664b527d0b5936', class: "list center", role: "list" }, hAsync("div", { key: '0c670a1650d4733e837851a0205225e559bb62ed', class: "more-left", hidden: !this.leftMoreVisible, role: "presentation" }), hAsync("slot", { key: 'ff44edce07857e78676b4dbcf06f078d6974d15b', name: "center" }), hAsync("div", { key: '6b742ff9c5f993a8814689cea374a5befc4c88ec', class: "more-right", hidden: !this.rightMoreVisible, role: "presentation" })), hAsync("div", { key: 'c1fd0a243705d349ff084880a3523c4ebf62d474', class: "list right", role: "list" }, hAsync("slot", { key: '1662a98510c36ad29a273cda970b3b91cc1a48ef', name: "right" }))), hAsync("div", { key: 'baa3b56ef2c6320468a982cc84052b1294638599', class: "bottom" }))));
15162
15459
  }
15163
15460
  get element() { return getElement(this); }
15164
15461
  static get style() { return duetMenuBarCss; }
@@ -15237,10 +15534,10 @@ class DuetMenuBarButton {
15237
15534
  * Always the last one in the class.
15238
15535
  */
15239
15536
  render() {
15240
- return (hAsync(Host, { key: '0e1e537a15d9a7b7d94a2ce24a71281b4757b1d5', role: "listitem", onfocus: () => this.setFocus() }, hAsync("button", { key: 'c7ab5d711a28d54af476fdf133e8f92bce25f020', ref: button => (this.nativeButton = button), class: {
15537
+ return (hAsync(Host, { key: 'e826fdb0b0fb223aea52738971ddbc17f6004833', role: "listitem", onfocus: () => this.setFocus() }, hAsync("button", { key: '350dd3a06df24d5f3a3f3dccb4a4a48b4a43e9f7', ref: button => (this.nativeButton = button), class: {
15241
15538
  "duet-menu-bar-button": true,
15242
15539
  "duet-theme-turva": this.theme === "turva",
15243
- }, "aria-controls": this.accessibleControls, "aria-label": this.accessibleLabel, "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined }, this.icon && (hAsync("duet-icon", { key: '922a6e2fa015b52aac218ce9e803c75a57465310', class: "menu-bar-button-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), hAsync("slot", { key: 'd85350f1fb803be4e524803b0bea4acc62f569fb' }))));
15540
+ }, "aria-controls": this.accessibleControls, "aria-label": this.accessibleLabel, "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined }, this.icon && (hAsync("duet-icon", { key: '96911d1ad50d5b247e27d3e6b5712326434a6354', class: "menu-bar-button-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), hAsync("slot", { key: '004e73cb6a5e6f3126a45d9fa7184f7b424d4f60' }))));
15244
15541
  }
15245
15542
  get element() { return getElement(this); }
15246
15543
  static get style() { return duetMenuBarButtonCss; }
@@ -15330,17 +15627,17 @@ class DuetMenuBarDropdown {
15330
15627
  * Always the last one in the class.
15331
15628
  */
15332
15629
  render() {
15333
- return (hAsync(Host, { key: '549451747b5d958dcac03314e5571631ddb5681c', role: "listitem" }, hAsync("div", { key: '91c7c1f71d878251370fd14fbe8a5f7e53a4d8bd', class: {
15630
+ return (hAsync(Host, { key: 'a8e5a338b3e99161819aca174ed5d7390adcd508', role: "listitem" }, hAsync("div", { key: '3515f7355c3f564bdebbea9a7d1845754ad9d3ce', class: {
15334
15631
  "duet-menu-bar-dropdown": true,
15335
15632
  "duet-theme-turva": this.theme === "turva",
15336
15633
  active: this.open,
15337
15634
  [`duet-menu-bar-dropdown--slot-${this.getVariant()}`]: true,
15338
- } }, hAsync("button", { key: 'a1bc6d43c28b9070c8f351111312cf436b02b3a2', ref: element => (this.button = element), "aria-label": this.accessibleLabel, "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
15635
+ } }, hAsync("button", { key: '8ae1babb7852048ac222167858eeb10f2ef8a3ee', ref: element => (this.button = element), "aria-label": this.accessibleLabel, "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
15339
15636
  active: this.open,
15340
- }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (hAsync("duet-icon", { key: '612895f551ed8c5045b2a5946b3528948fb34468', class: "menu-bar-dropdown-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), hAsync("div", { key: '92d067edbc9fd30ed9113f20153943cfe99030fa', class: "label" }, hAsync("slot", { key: '2dc4b402f56b0e45f4590a563bdbff368bf9e761', name: "label" }), hAsync("duet-icon", { key: '97c55f40d40e52c267bdc2f0edf127c8868b91d2', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { key: '625909f147e2f0d3ac7d74197d787621afd5ad5e', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
15637
+ }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (hAsync("duet-icon", { key: '2d22eaa31070fc91119b0d15fcae8768764b3038', class: "menu-bar-dropdown-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), hAsync("div", { key: 'fa891196c7c3247a4349fc5db8d59e0500754cb9', class: "label" }, hAsync("slot", { key: '59a1658b0e39bae2f94b8583e7ce787118f13221', name: "label" }), hAsync("duet-icon", { key: '31da6e0c50072b0411a7e9c69d79aa810963d0b8', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { key: '9490db9c65cf17be947333aed8562e5a146da13e', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
15341
15638
  items: true,
15342
15639
  hidden: !this.open,
15343
- } }, hAsync("slot", { key: '927e1629164029ae374bf2a0828246865e682f21' })))));
15640
+ } }, hAsync("slot", { key: '31a887188bb39ed4efbe1383940b3b8db7396102' })))));
15344
15641
  }
15345
15642
  get element() { return getElement(this); }
15346
15643
  static get style() { return duetMenuBarDropdownCss; }
@@ -15407,11 +15704,11 @@ class DuetMenuBarDropdownLink {
15407
15704
  * Always the last one in the class.
15408
15705
  */
15409
15706
  render() {
15410
- return (hAsync(Host, { key: '4f66b37f78e3221d96cc0189a2a8592e6b6f8fc6' }, hAsync("a", { key: 'd6ad6af753be198a1601d09e82478a0e1d9ee172', class: {
15707
+ return (hAsync(Host, { key: '9321ae6f770fbc1b00cde317df160db1d32fc53a' }, hAsync("a", { key: '85ef5b95cffcae577699f0a3453b0c3fd24d50e9', class: {
15411
15708
  "duet-menu-bar-dropdown-link": true,
15412
15709
  [`duet-menu-bar-dropdown-link--slot-${this.getVariant()}`]: true,
15413
15710
  "duet-theme-turva": this.theme === "turva",
15414
- }, href: this.href, role: "menuitem", onKeyUp: e => this.handleEscape(e), "aria-label": this.accessibleLabel }, this.icon && (hAsync("duet-icon", { key: '4834a4159934c0525ed9e7b7d6ac28132ba2cf03', theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), hAsync("slot", { key: 'e3f4ac467c7e84ec2c9f0d8ac7f36800a299540f' }))));
15711
+ }, href: this.href, role: "menuitem", onKeyUp: e => this.handleEscape(e), "aria-label": this.accessibleLabel }, this.icon && (hAsync("duet-icon", { key: '374d983fce34f87bf8c7878ede20b9fae712b8cc', theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), hAsync("slot", { key: '26ababe0542732c2fc589340dda968e3bc574caa' }))));
15415
15712
  }
15416
15713
  get element() { return getElement(this); }
15417
15714
  static get style() { return duetMenuBarDropdownLinkCss; }
@@ -15497,11 +15794,11 @@ class DuetMenuBarItem {
15497
15794
  */
15498
15795
  render() {
15499
15796
  const TagName = this.url ? "a" : "button";
15500
- return (hAsync(Host, { key: 'c8f1492389226bb51cdfb54ab5262d21292a19cb', role: "listitem" }, hAsync(TagName, { key: '251da0ca6cb28157cb26ba5f90c770123cebc5c1', target: !this.url ? null : this.external ? "_blank" : "_self", ref: element => (this.itemElement = element), class: {
15797
+ return (hAsync(Host, { key: '19ec1a0c3d191845df0ae30cdb8f9b83c198b79b', role: "listitem" }, hAsync(TagName, { key: '85786500b66990fe9eee940a466ab9cd08eb2103', target: !this.url ? null : this.external ? "_blank" : "_self", ref: element => (this.itemElement = element), class: {
15501
15798
  "duet-menu-bar-item": true,
15502
15799
  "duet-theme-turva": this.theme === "turva",
15503
15800
  active: this.active,
15504
- }, href: this.url, role: `${TagName === "a" ? "link" : "button"}`, "aria-current": this.active ? "true" : "false", "aria-label": (this.url && getAccessibleLinkLabel(this)) || this.accessibleLabel, "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined, rel: this.external ? "noopener" : undefined }, this.leadingIcon && (hAsync("duet-icon", { key: 'bc34c4cc34cd814ec124013da71d619f32986bd7', class: "leading-icon", size: "auto", name: this.leadingIcon, margin: "none", theme: this.theme, color: "currentColor" })), hAsync("slot", { key: 'a913f29ab5fd5e0f3a9aeb2115bae74b83c51a7e' }), (this.trailingIcon || this.external) && (hAsync("duet-icon", { key: 'efb44346bf1cc026263a16f0982981b6420ad298', class: {
15801
+ }, href: this.url, role: `${TagName === "a" ? "link" : "button"}`, "aria-current": this.active ? "true" : "false", "aria-label": (this.url && getAccessibleLinkLabel(this)) || this.accessibleLabel, "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined, rel: this.external ? "noopener" : undefined }, this.leadingIcon && (hAsync("duet-icon", { key: 'ba8faece0464d006590733c1ff8437cdd931ca03', class: "leading-icon", size: "auto", name: this.leadingIcon, margin: "none", theme: this.theme, color: "currentColor" })), hAsync("slot", { key: '80207075bb856dbfecb6a91e0a72b13287751da4' }), (this.trailingIcon || this.external) && (hAsync("duet-icon", { key: '7e04921588a4c306f61b8056c7c0a7b83c2c29f8', class: {
15505
15802
  "trailing-icon": !!this.trailingIcon,
15506
15803
  "trailing-icon-arrow": this.trailingIcon === "action-arrow-down-small",
15507
15804
  "external-icon": !!this.external,
@@ -15566,11 +15863,11 @@ class DuetMenuBarLink {
15566
15863
  * Always the last one in the class.
15567
15864
  */
15568
15865
  render() {
15569
- return (hAsync(Host, { key: '997031f3159b6da185e25915d7241ba645b2b9d0', role: "listitem" }, hAsync("a", { key: '8ef71373a7c481ca8dc93506eb8957c470489c2b', class: {
15866
+ return (hAsync(Host, { key: 'ed2a24c6bdd70f91370a4a70bf22804ce698ca49', role: "listitem" }, hAsync("a", { key: 'f957e2da0344bdd58789bb90151c23b341824d93', class: {
15570
15867
  "duet-menu-bar-link": true,
15571
15868
  "duet-theme-turva": this.theme === "turva",
15572
15869
  active: this.active,
15573
- }, href: this.href, "aria-current": this.active ? "true" : "false", "aria-label": this.accessibleLabel }, this.icon && (hAsync("duet-icon", { key: 'f0439bbfecdf854d05fa818663e7e7e93fffa404', class: "menu-bar-link-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), hAsync("slot", { key: '426c1a3de2829a37aba8d4f30169d71425d81301' }))));
15870
+ }, href: this.href, "aria-current": this.active ? "true" : "false", "aria-label": this.accessibleLabel }, this.icon && (hAsync("duet-icon", { key: 'c6f7c0a4fbc065c7ff132dba57ec468036359582', class: "menu-bar-link-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), hAsync("slot", { key: '73100c0c85e3087896e81c526816b1e92d13b9c3' }))));
15574
15871
  }
15575
15872
  get element() { return getElement(this); }
15576
15873
  static get style() { return duetMenuBarLinkCss; }
@@ -15906,14 +16203,14 @@ class DuetModal {
15906
16203
  var _a, _b;
15907
16204
  const iconColor = postfixTheme("primary", this.theme);
15908
16205
  const closeColor = postfixTheme("secondary", this.theme);
15909
- const closingButton = (hAsync("div", { key: 'fd461f380d0e2fbb5a70ef8f26e48f115b56f89b', class: "duet-modal-close" }, hAsync("duet-button", { key: '9fb5ccf76de515731d82db147700750f6fa60bef', ref: button => (this.buttonEl = button), variation: "plain", accessibleLabel: this.accessibleCloseLabel, color: closeColor, iconSize: "large", icon: "navigation-close", iconOnly: true, margin: "none", theme: this.theme, onClick: ev => this.closeModal(ev), fixed: true })));
15910
- return (hAsync("div", { key: '8c4fc72b13a5323157f7c310116df9130e47cd31', ref: modal => (this.modalEl = modal), "aria-label": (_a = this.accessibleLabel) !== null && _a !== void 0 ? _a : this.heading, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-describedby": this.accessibleDescribedBy, role: this.variation === "loader" ? "alert" : "dialog", "aria-modal": this.isSafariBrowser ? false : true, tabindex: "-1", class: {
16206
+ const closingButton = (hAsync("div", { key: 'ec2c3a88ed4381cdfe04d5e09c6973f50926938b', class: "duet-modal-close" }, hAsync("duet-button", { key: '3ba54ca9d928a311351d7daccfe20c1a94dcb6a3', ref: button => (this.buttonEl = button), variation: "plain", accessibleLabel: this.accessibleCloseLabel, color: closeColor, iconSize: "large", icon: "navigation-close", iconOnly: true, margin: "none", theme: this.theme, onClick: ev => this.closeModal(ev), fixed: true })));
16207
+ return (hAsync("div", { key: '44ad4e8bf6516da0e6350649f8e4cae009f7cf07', ref: modal => (this.modalEl = modal), "aria-label": (_a = this.accessibleLabel) !== null && _a !== void 0 ? _a : this.heading, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-describedby": this.accessibleDescribedBy, role: this.variation === "loader" ? "alert" : "dialog", "aria-modal": this.isSafariBrowser ? false : true, tabindex: "-1", class: {
15911
16208
  "duet-modal-container": true,
15912
16209
  "duet-theme-turva": this.theme === "turva",
15913
16210
  "duet-modal-active": this.open,
15914
16211
  "duet-modal-slide-up": this.variation === "slide-up",
15915
16212
  "duet-modal-has-sticky-header": this.hasStickyHeader,
15916
- } }, hAsync("duet-overlay", { key: 'ebf2ff8efe9f08e8dd44f1d75375a54791b48554', "z-index": "-1", visible: this.open, variation: this.variation === "loader" ? "white" : "default" }), hAsync("div", { key: '095f2c04849d438c73a2277c80d8b2ec63c6fdbc', ref: modalInner => (this.modalInnerEl = modalInner), class: {
16213
+ } }, hAsync("duet-overlay", { key: 'd2eb31d5195cced7a59ca29dbd2e2f0ef84e2655', "z-index": "-1", visible: this.open, variation: this.variation === "loader" ? "white" : "default" }), hAsync("div", { key: '4703b85e9d49409f26720fe00b270370afa97f76', ref: modalInner => (this.modalInnerEl = modalInner), class: {
15917
16214
  "duet-modal-inner": true,
15918
16215
  [this.size]: true,
15919
16216
  "duet-modal-slide-up": this.variation === "slide-up",
@@ -15924,22 +16221,22 @@ class DuetModal {
15924
16221
  this.closeModal(e);
15925
16222
  }
15926
16223
  }
15927
- } }, hAsync("div", { key: '68ca043011c51c1a99856ea8b06497662a60e405', ref: modalContentEl => (this.modalContentEl = modalContentEl), "aria-live": this.accessibleAnnounceChanges === "all" ? "polite" : null, "aria-atomic": this.accessibleAnnounceChanges === "all" ? "true" : null, class: {
16224
+ } }, hAsync("div", { key: 'caa7a84911505b70ffe1e15ea73bd4489eac49e2', ref: modalContentEl => (this.modalContentEl = modalContentEl), "aria-live": this.accessibleAnnounceChanges === "all" ? "polite" : null, "aria-atomic": this.accessibleAnnounceChanges === "all" ? "true" : null, class: {
15928
16225
  "duet-modal": true,
15929
16226
  "duet-modal-has-sticky-header": this.hasStickyHeader,
15930
16227
  [this.size]: true,
15931
16228
  [this.variation]: true,
15932
- } }, this.gutterSize !== "none" && !this.hasStickyHeader && hAsync("duet-spacer", { key: '7a037fda3dcd6a08a7d22cad0e6e28100a1cb574' }), this.hasStickyHeader ? (hAsync("div", { class: "duet-modal-sticky-header" }, closingButton, hAsync("slot", { name: "sticky-header" }))) : (closingButton), hAsync("div", { key: '90380b2213043c4d9d0d69a2488219e15e6ad158', class: {
16229
+ } }, this.gutterSize !== "none" && !this.hasStickyHeader && hAsync("duet-spacer", { key: 'e9d16355dbf2de5937a1a3bf5fa7e27833270238' }), this.hasStickyHeader ? (hAsync("div", { class: "duet-modal-sticky-header" }, closingButton, hAsync("slot", { name: "sticky-header" }))) : (closingButton), hAsync("div", { key: '9d9ef9ea5b47d2107b49066c1d156c886fb6f972', class: {
15933
16230
  "duet-modal-body": true,
15934
16231
  "duet-modal-gutter-none": this.gutterSize === "none",
15935
16232
  "duet-modal-gutter-small": this.gutterSize === "small",
15936
16233
  "duet-modal-gutter-medium": this.gutterSize === "medium",
15937
16234
  "duet-modal-gutter-large": this.gutterSize === "large",
15938
- }, "aria-live": this.accessibleAnnounceChanges === "heading" ? "polite" : null, "aria-atomic": this.accessibleAnnounceChanges === "heading" ? "true" : null }, hAsync("div", { key: 'c2605486cc494359f133ec421a1f66925ec643b7', class: "duet-modal-header" }, hAsync("span", { key: '5ed69dddc69fb34dcaa1a2ebb07682768ec83881', class: "duet-modal-inner-slot-top" }, hAsync("slot", { key: '9e92ea62266e5e454f22d47d48709781127ecc35', name: "top" })), this.icon && hAsync("duet-icon", { key: '366a9d0c83c8a9a38eea87be43053c21c67683b2', name: this.icon, size: "xx-large", color: this.color || iconColor }), this.heading && (hAsync("duet-heading", { key: '3e5cffc154099a45a665f18d7f479fb42fbb1b2d', "visual-level": (_b = this.headingVisualLevel) !== null && _b !== void 0 ? _b : this.headingLevel, level: this.headingLevel, theme: this.theme }, this.heading))), this.variation === "loader" && (hAsync("div", { key: '36eaa02389bb00b2afec0e1fc7672b250808d34f', class: "duet-modal-spinner" }, hAsync("duet-spinner", { key: 'ee98841b09402fb9727a27813a4b49ea9a51cd18', size: "large", color: postfixTheme("primary", this.theme) }))), hAsync("div", { key: 'cdd00ccee49853a90c6765e14478190297dab89f', "aria-live": this.variation === "loader"
16235
+ }, "aria-live": this.accessibleAnnounceChanges === "heading" ? "polite" : null, "aria-atomic": this.accessibleAnnounceChanges === "heading" ? "true" : null }, hAsync("div", { key: 'be0b90e2577c2760b6f95200a917649cd6b35287', class: "duet-modal-header" }, hAsync("span", { key: 'e2dd5ce0f9609e9fc096ad49e9d6d0ee2a01699d', class: "duet-modal-inner-slot-top" }, hAsync("slot", { key: 'dbc67d9fc55310cabc65484b4518b8cadcfef874', name: "top" })), this.icon && hAsync("duet-icon", { key: '095d2b5e9b29cf0a849711b7472d424731d9d36c', name: this.icon, size: "xx-large", color: this.color || iconColor }), this.heading && (hAsync("duet-heading", { key: '3cdcdd876b89be930fb67d715a0873f9305b787b', "visual-level": (_b = this.headingVisualLevel) !== null && _b !== void 0 ? _b : this.headingLevel, level: this.headingLevel, theme: this.theme }, this.heading))), this.variation === "loader" && (hAsync("div", { key: '3d5cd64a2ed94e45180836515083f8885295c4d6', class: "duet-modal-spinner" }, hAsync("duet-spinner", { key: '693a9b5947855ff18c0f3089a3b437ccb543d9d0', size: "large", color: postfixTheme("primary", this.theme) }))), hAsync("div", { key: '9b07821006bf82a6707579789376d42febf652b8', "aria-live": this.variation === "loader"
15939
16236
  ? "assertive"
15940
16237
  : this.accessibleAnnounceChanges === "body"
15941
16238
  ? "polite"
15942
- : null, "aria-atomic": this.accessibleAnnounceChanges === "body" ? "true" : null, class: "duet-modal-inner-slot-default", ref: el => (this.slotContainerEl = el) }, hAsync("slot", { key: 'eec9c0f2f52c6899a30f718b2a3851024513ac6c' })))))));
16239
+ : null, "aria-atomic": this.accessibleAnnounceChanges === "body" ? "true" : null, class: "duet-modal-inner-slot-default", ref: el => (this.slotContainerEl = el) }, hAsync("slot", { key: '0008beb6b6f6bac06c6ce3dddb661157dfedf4e1' })))))));
15943
16240
  }
15944
16241
  get element() { return getElement(this); }
15945
16242
  static get watchers() { return {
@@ -16255,23 +16552,23 @@ class DuetMultiselect {
16255
16552
  */
16256
16553
  render() {
16257
16554
  var _a;
16258
- return (hAsync(Host, { key: 'e7bafb6f7f67fe15832b45d8cdc41dcd7e92dae4', class: {
16555
+ return (hAsync(Host, { key: '4b8d1905f6d83802479254ed818eddc225a07884', class: {
16259
16556
  "duet-m-0": this.margin === "none",
16260
16557
  "duet-expand": this.expand,
16261
- } }, hAsync("div", { key: 'cf9862f8b3e66d9795bd4b7b2f4eca3d9f859f3c', class: {
16558
+ } }, hAsync("div", { key: '5448159c21e1975424169c66faa9442471e97390', class: {
16262
16559
  "duet-multiselect-container": true,
16263
16560
  "duet-label-hidden": this.labelHidden,
16264
16561
  "duet-theme-turva": this.theme === "turva",
16265
16562
  "duet-input-top-caption-shown": this.isCaptionVisible,
16266
16563
  "has-error": !!this.error,
16267
- }, onKeyDown: (e) => this.onMultiselectKeyDown(e) }, hAsync(DuetInternalLabel, { key: '31852687c9ee4e4f63c2f376baa9293f09b3a00f', theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: this.identifier }, this.label), this.tooltip && (hAsync("duet-tooltip", { key: 'ad2331d66bb9f05709613cabac0f07dc36065348', class: "duet-multiselect-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), hAsync("slot", { key: '46122e6d06e90ad528508fd0c1c5c50cea8114a5', name: "tooltip" }), this.caption && (hAsync("duet-caption", { key: '2d7206f213cde3a3352cc140422c1e70d88ee600', id: this.topCaptionId, size: "medium" }, this.caption)), hAsync("div", { key: '3f3a61d30ee5b12e8c553eb0a1b2ca80521b8bd1', class: "duet-multiselect-wrapper" }, hAsync("button", { key: 'b390211b2df1aa3868851d08ddef63cf81e1fa1e', id: this.identifier, ref: el => (this.multiselectElement = el), class: { "duet-multiselect": true, "duet-multiselect-active": this.checkboxesVisible }, tabindex: "0", onClick: () => this.toggleCheckboxes(), onFocus: e => this.onFocus(e), onBlur: e => this.onBlur(e), role: "combobox", "aria-expanded": this.checkboxesVisible ? "true" : "false", "aria-haspopup": "listbox", "aria-labelledby": this.labelId, "aria-describedby": this.getDescribedBy(), "aria-owns": `${this.identifier}-checkboxes`, onKeyDown: (e) => this.onMultiselectInputKeyDown(e), disabled: this.disabled }, hAsync("span", { key: '6c9c680ebc96c84d95b1acc926f20591a4565b65', role: "textbox", "aria-readonly": "true", "aria-multiline": "false", "aria-autocomplete": "none", "aria-controls": `${this.identifier}-checkboxes`, "aria-label": this.placeholderLabel[this.language], class: "duet-multiselect-label" }, this.placeholder), this.value && this.value.length > 0 && (hAsync("span", { key: '8ef490613a38e9fead0de56dee3144478b714127', class: "duet-multiselect-badge" }, this.value.length, hAsync("duet-visually-hidden", { key: '6f83ac83ff72705964aef84d3e36fcb242956d2e' }, this.selectedLangObject[this.language], ",", " ", Array.isArray(this.value) ? this.value.map(item => item.label).join(", ") : ""))), hAsync("svg", { key: 'd525c6e90ddbb4e6b9bc26db22a9acc1806f2c5c', class: { "duet-multiselect-icon": true, "duet-multiselect-icon--rotate": this.checkboxesVisible }, fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, hAsync("path", { key: '7b9323ff55af45a96af4ee68d00fa5eb8a3cc04c', d: "m12 18.999c-.4 0-.776-.156-1.059-.438l-10.721-10.72c-.142-.142-.22-.33-.22-.531 0-.2.078-.389.22-.53.142-.142.33-.22.53-.22s.389.078.53.22l10.72 10.719 10.72-10.719c.142-.142.33-.22.53-.22s.389.078.53.22c.142.142.22.33.22.53s-.078.389-.22.53l-10.72 10.72c-.282.283-.659.439-1.06.439z" }))), hAsync("div", { key: '3ce28709f3fb9e2e0c43f2e584d642fe7b185566', id: `${this.identifier}-checkboxes`, role: "listbox", class: {
16564
+ }, onKeyDown: (e) => this.onMultiselectKeyDown(e) }, hAsync(DuetInternalLabel, { key: '572ae7df62eeb7870c958fa8812a032f685252c1', theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: this.identifier }, this.label), this.tooltip && (hAsync("duet-tooltip", { key: 'd6ce07a6fe3994af5ff7e8639febe7380738853e', class: "duet-multiselect-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), hAsync("slot", { key: 'cabbf0070861de762ff0e7b1fa390fc021c6e56c', name: "tooltip" }), this.caption && (hAsync("duet-caption", { key: '501998a95ac97a8e41aff3f77bb3caef192dcc07', id: this.topCaptionId, size: "medium" }, this.caption)), hAsync("div", { key: 'c32972b8bff8afd700203c2906a1b49b7656555f', class: "duet-multiselect-wrapper" }, hAsync("button", { key: '07e7b36d4264aaff222086f518aeeef2c1f9e7d1', id: this.identifier, ref: el => (this.multiselectElement = el), class: { "duet-multiselect": true, "duet-multiselect-active": this.checkboxesVisible }, tabindex: "0", onClick: () => this.toggleCheckboxes(), onFocus: e => this.onFocus(e), onBlur: e => this.onBlur(e), role: "combobox", "aria-expanded": this.checkboxesVisible ? "true" : "false", "aria-haspopup": "listbox", "aria-labelledby": this.labelId, "aria-describedby": this.getDescribedBy(), "aria-owns": `${this.identifier}-checkboxes`, onKeyDown: (e) => this.onMultiselectInputKeyDown(e), disabled: this.disabled }, hAsync("span", { key: 'aaa61bce02a50eca851f48da7ee461474bbae0f3', role: "textbox", "aria-readonly": "true", "aria-multiline": "false", "aria-autocomplete": "none", "aria-controls": `${this.identifier}-checkboxes`, "aria-label": this.placeholderLabel[this.language], class: "duet-multiselect-label" }, this.placeholder), this.value && this.value.length > 0 && (hAsync("span", { key: 'b869479691f3a394d89f8720efd7868c13f5fbec', class: "duet-multiselect-badge" }, this.value.length, hAsync("duet-visually-hidden", { key: 'fcbb5b6dd4b0dc6f4abae50aec12eb21da92d0f4' }, this.selectedLangObject[this.language], ",", " ", Array.isArray(this.value) ? this.value.map(item => item.label).join(", ") : ""))), hAsync("svg", { key: '68dc4a3ad25722f3a39628147244ce459a17d6c5', class: { "duet-multiselect-icon": true, "duet-multiselect-icon--rotate": this.checkboxesVisible }, fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, hAsync("path", { key: '8aeddd5a385ca37e54869993b90bd1838449d526', d: "m12 18.999c-.4 0-.776-.156-1.059-.438l-10.721-10.72c-.142-.142-.22-.33-.22-.531 0-.2.078-.389.22-.53.142-.142.33-.22.53-.22s.389.078.53.22l10.72 10.719 10.72-10.719c.142-.142.33-.22.53-.22s.389.078.53.22c.142.142.22.33.22.53s-.078.389-.22.53l-10.72 10.72c-.282.283-.659.439-1.06.439z" }))), hAsync("div", { key: 'f46a4bb216b778776acfa1aff5a9867afa236789', id: `${this.identifier}-checkboxes`, role: "listbox", class: {
16268
16565
  "duet-multiselect-checkboxes": true,
16269
16566
  "duet-multiselect-checkboxes-active": this.checkboxesVisible,
16270
- }, "aria-activedescendant": this.activeDescendant, "aria-multiselectable": "true" }, ((_a = this.processedItems) === null || _a === void 0 ? void 0 : _a.length) && this.allControls && (hAsync("div", { key: 'fc635dab9da4efdc971744990b2e67ecf8add18f', class: "duet-multiselect-all-control-buttons" }, hAsync("button", { key: 'c6633f193f708b41108cac277c8d1156a9ee5808', class: "duet-multiselect-select-all", onClick: this.handleSelectAllClick, id: this.getOptionIdentifier(-2), onKeyDown: (e) => this.onCheckboxKeyDown(e, -2) }, this.selectAllLabel[this.language]), hAsync("button", { key: '193d3314537bb45d45981a890fbe569201af3355', class: "duet-multiselect-clear-all", onClick: this.handleClearAllClick, id: this.getOptionIdentifier(-1), onKeyDown: (e) => this.onCheckboxKeyDown(e, -1) }, this.clearAllLabel[this.language]))), this.processedItems &&
16567
+ }, "aria-activedescendant": this.activeDescendant, "aria-multiselectable": "true" }, ((_a = this.processedItems) === null || _a === void 0 ? void 0 : _a.length) && this.allControls && (hAsync("div", { key: '3907f7054436f56ed50866ab0e191c00c2dd17d7', class: "duet-multiselect-all-control-buttons" }, hAsync("button", { key: 'e502215643ea66e08be0b55c3ba1deeed79bdaad', class: "duet-multiselect-select-all", onClick: this.handleSelectAllClick, id: this.getOptionIdentifier(-2), onKeyDown: (e) => this.onCheckboxKeyDown(e, -2) }, this.selectAllLabel[this.language]), hAsync("button", { key: 'a63b642a9e24bc18d88e567f1b6c480f074ad578', class: "duet-multiselect-clear-all", onClick: this.handleClearAllClick, id: this.getOptionIdentifier(-1), onKeyDown: (e) => this.onCheckboxKeyDown(e, -1) }, this.clearAllLabel[this.language]))), this.processedItems &&
16271
16568
  this.processedGroups.map(group => (hAsync("fieldset", null, group.label && hAsync("legend", null, group.label), group.items.map((item, key) => {
16272
16569
  var _a, _b;
16273
16570
  return (hAsync("duet-checkbox", { identifier: this.getOptionIdentifier(key), role: "option", label: item.label, value: item.value, key: item.value, checked: (_a = this.value) === null || _a === void 0 ? void 0 : _a.includes(item), "accessible-selected": ((_b = this.value) === null || _b === void 0 ? void 0 : _b.includes(item)) ? "true" : undefined, disabled: !this.checkboxesVisible || item.disabled, onDuetChange: e => this.toggleCheckbox(e, item), onKeyDown: (e) => this.onCheckboxKeyDown(e, key), theme: this.theme }));
16274
- })))))), hAsync("span", { key: 'b30e788d0beee3756dc076b305352c9831a6f68c', class: "duet-multiselect-help duet-multiselect-error", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && hAsync("span", { key: '7e024019a7f6d8f010a48a83bb4b4770a98e32e4' }, this.error)))));
16571
+ })))))), hAsync("span", { key: '221b275486bef481c990d6625bc92120cd452e83', class: "duet-multiselect-help duet-multiselect-error", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && hAsync("span", { key: '022173402cfe3a2facde3bf6f9ba63c22b68a949' }, this.error)))));
16275
16572
  }
16276
16573
  get element() { return getElement(this); }
16277
16574
  static get watchers() { return {
@@ -16346,7 +16643,7 @@ class DuetNav {
16346
16643
  * Always the last one in the class.
16347
16644
  */
16348
16645
  render() {
16349
- return (hAsync(Host, { key: '524bb027510763efb06f908c78bb6dbc1ff1e24d' }, hAsync("div", { key: '7c86cae3a491c2c568ec09ab7a7dacc935d906be', class: { container: true, sticky: this.sticky } }, hAsync("slot", { key: 'dae33a4dfc1ddd973d4639adc9b711a99bb0256c' }), hAsync("slot", { key: 'ac0da76490e7c39bee65dc53ed368afdecb640a7', name: "mobile" }), hAsync("slot", { key: '5081c449ebbba8d68dec069e18155f8fce9ad87e', name: "desktop" }))));
16646
+ return (hAsync(Host, { key: '5d770ae8af90d4342a6a057ece21ada25ba64f63' }, hAsync("div", { key: 'fe2a1611fec8c6a234c25a13e24d732cc0cf4511', class: { container: true, sticky: this.sticky } }, hAsync("slot", { key: 'c7bad3186de463ebf1a3b1411b299cf59f16df0b' }), hAsync("slot", { key: '77e0e221d53ce3d3addf52cdbfe06e5fa55b38b3', name: "mobile" }), hAsync("slot", { key: '691b0c5b905950d7218633ffedc1094e7b1e7946', name: "desktop" }))));
16350
16647
  }
16351
16648
  get element() { return getElement(this); }
16352
16649
  static get style() { return duetNavCss; }
@@ -16439,11 +16736,11 @@ class DuetNotification {
16439
16736
  return `${indicatorText}${slottedText}${slottedText.endsWith(".") ? "" : "."} ${this.date}`;
16440
16737
  }
16441
16738
  render() {
16442
- return (hAsync("div", { key: '8497858acf685b75adce100af83521ea62dad249', role: "listitem", class: {
16739
+ return (hAsync("div", { key: '457e94b4a6853aa86a9cca92506b7aecc31aebd9', role: "listitem", class: {
16443
16740
  "duet-notification": true,
16444
16741
  "duet-notification-highlight": this.highlight,
16445
16742
  "duet-theme-turva": this.theme === "turva",
16446
- } }, hAsync("a", { key: 'd055bb5cebbf8d33eb35d193d1bb1fa106c5ec49', ref: element => (this.linkElement = element), href: this.url, target: this.external ? "_blank" : "_self", "aria-label": this.getAriaLabelText() }, hAsync("div", { key: '37b18aada4bbdcc07fbae2fb2a379e4ce499d1a2', class: "duet-notification-container" }, hAsync("div", { key: 'd82a6a30c51dcbe9fa55d184f9475ee52824c960', class: "duet-indicator-container" }, this.highlight && (hAsync("duet-indicator", { key: 'ba8cf675f5f79738b621bb60be60e955648f72fb', variation: "new", "accessible-label": this.accessibleLabelUnread }))), hAsync("div", { key: '7616f1c0b61f842cb19959f8a26d972740d4983c', class: "duet-notification-content" }, hAsync("slot", { key: '3d15bf405f3f7e6bb7b699835882720db81c60ac' })), hAsync("div", { key: '479850eacc300888b148101759908b962db1d24a', class: "duet-notification-date" }, this.date)))));
16743
+ } }, hAsync("a", { key: 'e011022f39bd5e719c9cae5ec54b4233f1bf9fb8', ref: element => (this.linkElement = element), href: this.url, target: this.external ? "_blank" : "_self", "aria-label": this.getAriaLabelText() }, hAsync("div", { key: 'e2c33d869adfc549195685ad1bbd1e2d5c4370b2', class: "duet-notification-container" }, hAsync("div", { key: 'e491caeba677f8e78da287b50621e33be6519753', class: "duet-indicator-container" }, this.highlight && (hAsync("duet-indicator", { key: '4cdf556b6b6354da2174ae00af435199aa2dbe94', variation: "new", "accessible-label": this.accessibleLabelUnread }))), hAsync("div", { key: '942680343125bc34098440f5fec8abf5db5fb4ab', class: "duet-notification-content" }, hAsync("slot", { key: '63a85af1051ad93c0569cfead2f104c32f446b7e' })), hAsync("div", { key: '08dcdffb37beef2796ba05ae48a233badf652ef4', class: "duet-notification-date" }, this.date)))));
16447
16744
  }
16448
16745
  get element() { return getElement(this); }
16449
16746
  static get style() { return duetNotificationCss; }
@@ -16590,13 +16887,13 @@ class DuetNotificationDrawer {
16590
16887
  * Always the last one in the class.
16591
16888
  */
16592
16889
  render() {
16593
- return (hAsync("div", { key: '5a100874ee332b5f81a62d4d398273cfb1b039e6', class: {
16890
+ return (hAsync("div", { key: '69b878842a591a528c9c8218abb3dae14e995406', class: {
16594
16891
  "duet-drawer": true,
16595
16892
  "duet-theme-turva": this.theme === "turva",
16596
- }, onKeyDown: this.handleKeyDown }, hAsync("button", { key: '5f4027d95ace3dbcf790932b8fcc55c197acfeec', ref: el => (this.drawerButtonEl = el), type: "button", class: {
16893
+ }, onKeyDown: this.handleKeyDown }, hAsync("button", { key: 'b430067e1fdca09a1c6ac0e162be9e2d5acd434f', ref: el => (this.drawerButtonEl = el), type: "button", class: {
16597
16894
  "duet-drawer-toggle": true,
16598
16895
  "duet-theme-turva": this.theme === "turva",
16599
- }, id: "duet-drawer-toggle", "aria-controls": "duet-drawer-content", "aria-expanded": this.isOpen ? "true" : "false", onClick: this.toggleMenu }, this.icon && (hAsync("div", { key: 'd23738346a3b9c9a977fac31c44686b300f8c3f8', class: "duet-drawer-icon" }, hAsync("duet-icon", { key: '9ce663baf3e178117742894d71342eeb0f306b8a', margin: "none", size: "x-small", name: this.icon, color: "currentColor" }), this.badge && hAsync("duet-indicator", { key: '135c19cacc21c20599e1250c19b2cb9af6ca1edb', variation: "change" }))), hAsync("span", { key: 'cc45c180750b2237fc49015944f664ea23f1c50c', class: "duet-drawer-label" }, this.label), hAsync("div", { key: 'c268d18597783a3fcd307bb07813526d97039ae4', class: "duet-drawer-caret" }, hAsync("duet-icon", { key: '8d34addc1a9e1bbb1d4d9db02873e8ce1ceded11', margin: "none", size: "auto", icon: arrowDownIcon.svg, color: "currentColor" }))), hAsync("div", { key: '1bd28344339dc98c5f9173997921badf217c64c0', id: "duet-drawer-content", class: {
16896
+ }, id: "duet-drawer-toggle", "aria-controls": "duet-drawer-content", "aria-expanded": this.isOpen ? "true" : "false", onClick: this.toggleMenu }, this.icon && (hAsync("div", { key: '55a526c885dc7ea660730e97fdc25fe0943dd2e2', class: "duet-drawer-icon" }, hAsync("duet-icon", { key: '37e3d9b20ed6f54da0a1445a76b68dc4dfa0b308', margin: "none", size: "x-small", name: this.icon, color: "currentColor" }), this.badge && hAsync("duet-indicator", { key: '90c45774b6cf888241d8d82c35380d05692106c6', variation: "change" }))), hAsync("span", { key: '92725e4a7119dbc5050599fefe7a17871b2f6d81', class: "duet-drawer-label" }, this.label), hAsync("div", { key: 'ba9fad66fc02ccf040d048a9d9706fc29b5d31c7', class: "duet-drawer-caret" }, hAsync("duet-icon", { key: '6e631282017345e59c7b7acdf7ccfa713d4a3bd2', margin: "none", size: "auto", icon: arrowDownIcon.svg, color: "currentColor" }))), hAsync("div", { key: '15342aa1db7638af746efb9401483f38f5d34b0f', id: "duet-drawer-content", class: {
16600
16897
  "duet-drawer-content": true,
16601
16898
  "duet-drawer-right": this.direction === "right",
16602
16899
  "duet-drawer-left": this.direction === "left",
@@ -16711,6 +17008,7 @@ function ConvertToEnUS(value, locale, replaceThousands = false) {
16711
17008
  }
16712
17009
  const roundTo = (val, multiple) => Math.round(val / multiple) * multiple;
16713
17010
  const clamp$1 = (val, min, max) => Math.min(Math.max(val, min), max);
17011
+ const isInteger = (val) => val === Math.round(val);
16714
17012
 
16715
17013
  const duetNumberInputCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{margin-right:16px !important}:host(:last-child),:host(:last-of-type){margin-right:0 !important}:host(.form-distribute:last-of-type:not(:last-child)){margin-right:16px !important}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-bottom:12px !important;display:inline-flex;width:100%;min-width:calc(33.333% - 8px);max-width:100%;line-height:1.25;vertical-align:bottom;text-align:left}@media (min-width: 36em){:host{width:calc(50% - 16px - 3px)}}:host(.duet-expand){width:100% !important}:host(.duet-m-0){margin:0 !important}.duet-number-container{position:relative;width:100%}.duet-number-buttons{-webkit-user-select:none;user-select:none;position:absolute;top:1px;right:1px;z-index:200;width:96px;height:calc(100% - 2px)}.duet-number-buttons .duet-number-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:50%;height:100%;text-align:center;-webkit-appearance:none;appearance:none;cursor:pointer;background:transparent}.duet-number-buttons .duet-number-button:focus{outline:0}:host(.user-is-tabbing) .duet-number-buttons .duet-number-button:focus{outline:2px solid;outline-offset:0;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva :host(.user-is-tabbing) .duet-number-buttons .duet-number-button:focus,:host(.user-is-tabbing) .duet-number-buttons .duet-number-button:focus.duet-theme-turva{outline-color:rgba(53, 79, 101, 0.8)}.duet-number-buttons .duet-number-button[aria-disabled=true],.duet-number-buttons .duet-number-button:disabled{pointer-events:none}.duet-number-buttons .duet-number-button[aria-disabled=true] duet-icon,.duet-number-buttons .duet-number-button:disabled duet-icon{opacity:0.4}.duet-number-buttons .duet-number-button:active duet-icon{transform:translateY(1px)}:host(.user-is-tabbing) .duet-number-buttons .duet-number-button:focus{z-index:2}.duet-number-buttons .duet-number-button:first-of-type{border-left:1px solid rgb(181, 198, 208)}.duet-number-buttons .duet-number-button:first-of-type::before{position:absolute;top:0;left:-6px;width:6px;height:100%;content:\"\";background:linear-gradient(to left, rgba(181, 198, 208, 0.2) 0%, rgba(181, 198, 208, 0.2) 1px, rgba(181, 198, 208, 0.1) 1px, rgba(181, 198, 208, 0) 100%)}.duet-number-buttons .duet-number-button:last-of-type{border-top-right-radius:4px;border-bottom-right-radius:4px}.duet-number-buttons .duet-number-button:last-of-type::before{position:absolute;top:20%;left:0;z-index:-1;width:1px;height:60%;content:\"\";background:rgb(212, 223, 229)}:host(.duet-theme-turva) .duet-number-buttons .duet-number-button:first-of-type::before{background:linear-gradient(to left, rgba(178, 194, 205, 0.2) 0%, rgba(178, 194, 205, 0.2) 1px, rgba(178, 194, 205, 0.1) 1px, rgba(178, 194, 205, 0) 100%)}:host(.duet-theme-turva) .duet-number-buttons .duet-number-button:last-of-type::before{background:rgb(212, 221, 226)}";
16716
17014
 
@@ -16851,7 +17149,8 @@ class DuetNumberInput {
16851
17149
  */
16852
17150
  this.tooltip = "";
16853
17151
  /**
16854
- * Step amount.
17152
+ * Step amount. Note that decimal values as step (e.g. 0.01) may produce unexpected results and thus are strongly
17153
+ * discouraged (but for backwards compatibility still accepted).
16855
17154
  */
16856
17155
  this.step = 5000;
16857
17156
  /**
@@ -17003,7 +17302,7 @@ class DuetNumberInput {
17003
17302
  // handle cases where value is not multiple of step
17004
17303
  // e.g. if someone enters 199, with a step of 100, add should go to 200
17005
17304
  // and if someone enters 101, add should also go to 200
17006
- if (newValue % this.step !== 0) {
17305
+ if (isInteger(this.step) && newValue % this.step !== 0) {
17007
17306
  const adjustment = newValue % this.step;
17008
17307
  newValue -= adjustment;
17009
17308
  }
@@ -17026,7 +17325,7 @@ class DuetNumberInput {
17026
17325
  // handle cases where value is not multiple of step
17027
17326
  // if someone enters 199, with a step of 100, subtract should go to 100
17028
17327
  // and if someone enters 101, subtract should also go to 100
17029
- if (newValue % this.step !== 0) {
17328
+ if (isInteger(this.step) && newValue % this.step !== 0) {
17030
17329
  const adjustment = this.step - (newValue % this.step);
17031
17330
  newValue += adjustment;
17032
17331
  }
@@ -17101,15 +17400,15 @@ class DuetNumberInput {
17101
17400
  const identifier = this.identifier || this.inputId;
17102
17401
  const maxlength = `${this.localizeValue(this.max)}${this.getUnitString()}`.length;
17103
17402
  const cleanedValue = !!this.value ? SafeParseFloat(this.value, this.locale) : null;
17104
- return (hAsync(Host, { key: '57eac991277459719dcade2b546edefadcb8871f', class: {
17403
+ return (hAsync(Host, { key: '1e1ec1d4970da103cdd9fbb867e469e414365adb', class: {
17105
17404
  "duet-theme-turva": this.theme === "turva",
17106
17405
  "duet-expand": this.expand,
17107
17406
  "duet-m-0": this.margin === "none",
17108
- } }, hAsync("div", { key: '4d7f3b727a098c85311caf342b8ec3346c355b03', class: "duet-number-container" }, hAsync("duet-input", { key: 'd35dedfc296c7b6f7e02a8a44426a939ba57834f', ref: input => (this.duetInputElement = input), onDuetChange: event => this.handleChange(event), onDuetFocus: this.handleFocus, onDuetBlur: event => this.handleBlur(event), onKeyDown: event => this.handleKeyDown(event), label: this.label, value: this.value ? `${this.value}${this.getUnitString()}` : "", error: this.error, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": cleanedValue != null ? cleanedValue : "", maxlength: maxlength, name: this.name, component: "number", required: this.required, disabled: this.disabled, role: this.role, labelHidden: this.labelHidden, tooltip: this.tooltip, identifier: identifier, theme: this.theme, margin: "none", expand: true, numericKeyboard: true, autoComplete: "off", type: "text", accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleLabelledBy: this.accessibleLabelledBy, accessibleDescription: this.accessibleDescription, accessibleDetails: this.accessibleDetails, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy }, hAsync("slot", { key: 'e5860f54edf1658f5ad57a74f02e287029c1c80a', name: "tooltip" }), hAsync("div", { key: '627ac970632ff026d545f5510ee3444beddcd78f', class: { "duet-number-buttons": true, "duet-no-label": this.labelHidden } }, hAsync("button", { key: '7db5fc9647aa97d03e12889341f4842240ec168a', disabled: this.disabled, "aria-disabled": cleanedValue == null || cleanedValue === this.min ? "true" : "false", class: "duet-number-button duet-number-button-subtract", onClick: this.subtract, type: "button" }, hAsync("duet-visually-hidden", { key: '213bff89b72eab57e824a7ccbdd8cf93176379b0' }, this.accessibleSubtract
17407
+ } }, hAsync("div", { key: '43bfdda224ef424c81d08a5bc5285348124dd6a0', class: "duet-number-container" }, hAsync("duet-input", { key: 'aa962811d9d95fc08a8211f3bdbb94cba87f0924', ref: input => (this.duetInputElement = input), onDuetChange: event => this.handleChange(event), onDuetFocus: this.handleFocus, onDuetBlur: event => this.handleBlur(event), onKeyDown: event => this.handleKeyDown(event), label: this.label, value: this.value ? `${this.value}${this.getUnitString()}` : "", error: this.error, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": cleanedValue != null ? cleanedValue : "", maxlength: maxlength, name: this.name, component: "number", required: this.required, disabled: this.disabled, role: this.role, labelHidden: this.labelHidden, tooltip: this.tooltip, identifier: identifier, theme: this.theme, margin: "none", expand: true, numericKeyboard: true, autoComplete: "off", type: "text", accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleLabelledBy: this.accessibleLabelledBy, accessibleDescription: this.accessibleDescription, accessibleDetails: this.accessibleDetails, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy }, hAsync("slot", { key: 'd0692236e001777d3e384ab54a02449d38e7cd44', name: "tooltip", slot: "tooltip" }), hAsync("div", { key: '493fa102da11525ac2688c4ae163324cd0b244d1', class: { "duet-number-buttons": true, "duet-no-label": this.labelHidden } }, hAsync("button", { key: 'f6cfe72311cd6d5723471f72fa06d3c6173ac0cb', disabled: this.disabled, "aria-disabled": cleanedValue == null || cleanedValue === this.min ? "true" : "false", class: "duet-number-button duet-number-button-subtract", onClick: this.subtract, type: "button" }, hAsync("duet-visually-hidden", { key: 'caea39a259e4ac79fc5c086f92d6205c96bfe081' }, this.accessibleSubtract
17109
17408
  .replace(/\{\s*step\s*\}/, `${this.step}`)
17110
- .replace(/\{\s*unit\s*\}/, `${this.unit}`)), hAsync("duet-icon", { key: '19a80d9db5a8709544dd93813a507dcf0f0f5530', icon: subtractIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })), hAsync("button", { key: '63d32e8db7089552645fed533d4bb537b17ac397', disabled: this.disabled, "aria-disabled": cleanedValue === this.max ? "true" : "false", class: "duet-number-button duet-number-button-add", onClick: this.add, type: "button" }, hAsync("duet-visually-hidden", { key: '9662d147e10aa5b1b71d5d64a299a6fc9b5d376d' }, this.accessibleAdd
17409
+ .replace(/\{\s*unit\s*\}/, `${this.unit}`)), hAsync("duet-icon", { key: 'ba9ad012c760bb989ab3b2d4c12209f4a0c3555d', icon: subtractIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })), hAsync("button", { key: 'f1c5f085b3d18b1f4f48c2a8c59ef8a945d9ee32', disabled: this.disabled, "aria-disabled": cleanedValue === this.max ? "true" : "false", class: "duet-number-button duet-number-button-add", onClick: this.add, type: "button" }, hAsync("duet-visually-hidden", { key: 'ee5a3d12e54e5523cab33865e148455e385e2082' }, this.accessibleAdd
17111
17410
  .replace(/\{\s*step\s*\}/, `${this.step}`)
17112
- .replace(/\{\s*unit\s*\}/, `${this.unit}`)), hAsync("duet-icon", { key: 'f6bd61234faa0d4c46e87d095b777c0d2deb4daf', icon: addIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })))), this.accessibleLiveEnabled && (hAsync("duet-visually-hidden", { key: '77c6dc2c84affba33a53c9875b4baaa77d633280', "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement())))));
17411
+ .replace(/\{\s*unit\s*\}/, `${this.unit}`)), hAsync("duet-icon", { key: '1f2597d788f3738c1ffd0b6a4564b31546238228', icon: addIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })))), this.accessibleLiveEnabled && (hAsync("duet-visually-hidden", { key: '0bc549da309c663646b90e88329a755f0bd96a8a', "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement())))));
17113
17412
  }
17114
17413
  get element() { return getElement(this); }
17115
17414
  static get style() { return duetNumberInputCss; }
@@ -17221,7 +17520,7 @@ class DuetOverlay {
17221
17520
  * Always the last one in the class.
17222
17521
  */
17223
17522
  render() {
17224
- return (hAsync(Host, { key: '022e03bd6245ccf60d2b1f5b2067b68e97722f0f', "aria-hidden": "true" }, hAsync("div", { key: 'b29aabf87beb396113a3bcda0cc6fbdecfabc797', style: { zIndex: this.zIndex }, class: {
17523
+ return (hAsync(Host, { key: 'a962e9115a51fcbb322726c314b96e3dbc92920e', "aria-hidden": "true" }, hAsync("div", { key: '6d648d8dc0e371e27900f612a79dc943e3087005', style: { zIndex: this.zIndex }, class: {
17225
17524
  "duet-overlay": true,
17226
17525
  "duet-theme-turva": this.theme === "turva",
17227
17526
  "keep-stacking-context": this.keepStackingContext,
@@ -17256,22 +17555,32 @@ class DuetOverlay {
17256
17555
  }; }
17257
17556
  }
17258
17557
 
17259
- const duetPageHeadingCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;display:block;width:100%}.duet-page-heading{position:relative;display:block;width:100%;margin:0 auto;overflow:hidden;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(8, 42, 77)}.duet-page-heading.duet-p-0{padding:0 !important}.duet-page-heading.duet-m-0{margin:0 !important}.duet-page-heading.auto{overflow:visible}.duet-page-heading.auto .heading,.duet-page-heading.auto .background{max-width:none}.duet-page-heading.fluid,.duet-page-heading.narrow{padding:0 16px}@media (min-width: 36em){.duet-page-heading.fluid{padding:0 28px}}@media (min-width: 62em){.duet-page-heading.fluid{padding:0 56px}}@media (min-width: 76.25em){.duet-page-heading.fluid{max-width:1110px;padding:0}}.duet-page-heading.narrow{max-width:888px}@media (min-width: 36em){.duet-page-heading.narrow{padding:0 48px}}@media (min-width: 48em){.duet-page-heading.narrow{padding:0 72px}}.duet-page-heading .heading{max-width:744px;padding:48px 90px 16px 0}@media (min-width: 48em){.duet-page-heading .heading{padding:72px 150px 40px 0}}.duet-page-heading:not(.has-icon) .heading{padding-right:0}.duet-page-heading .background{position:absolute;top:0;right:0;left:0;width:100%;max-width:744px;height:104px;margin:0 auto;margin:0 auto}@media (min-width: 48em){.duet-page-heading .background{height:165px}}.duet-page-heading .background .background-mask{position:absolute;top:-20px;right:0;display:block;width:286px;height:331px;pointer-events:none;background-image:url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIxIiBoZWlnaHQ9IjI1NyIgdmlld0JveD0iMCAwIDcyMSAyNTciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yODIwXzY5OTkxKSI+CjxwYXRoIGQ9Ik04MC4xNzA1IDIzLjE4MTVDOTEuOTY5OSAxOC44NjU5IDEwMi44NyAxMS42NTU5IDExMi45MDkgMS41NjQ0OEMxMjMuNzcgLTguMzA1MjcgMTM0LjM4MiAtMTguMjAxMSAxNDQuODI2IC0yOC4xODgyQzE1NS4yNDMgLTM4LjE2MjIgMTY1LjkwOCAtNDguMDg0MSAxNzYuNzQzIC01Ny45Mjc4QzE3OC44MTYgLTU5LjA0OSAxODAuNDk4IC02MC4yODc3IDE4MS43ODggLTYxLjY1NjdDMTgzLjA2NiAtNjMuMDEyNiAxODUuNDY1IC02Mi4yODI1IDE4OS4wMTIgLTU5LjQ3OTNDMTg0LjczNSAtNTEuMTM1IDE4MC43NTkgLTQyLjk2MDIgMTc3LjAxNyAtMzQuOTAyN0MxNzMuMjg4IC0yNi44NDUyIDE2Ny42ODEgLTE5LjEyNjggMTYwLjIxMSAtMTEuNzYwM0MxNTIuNzUzIC00LjM4MDgzIDE0NC45NTYgMy4zMTE1MiAxMzYuODQ3IDExLjM2OUMxMjguNzI0IDE5LjQyNjUgMTIwLjk2NiAyNy4xNDUgMTEzLjQ4MyAzNC40OTg0Qzk3LjQ5OCA0OS44MTggNzkuNjYyIDU2LjAyNDEgNjAuMDAwOCA1My4xNjg4QzQwLjI4NzQgNTAuMzEzNSAyNS41NDE0IDM5LjA3NDcgMTUuNjk3NyAxOS40Nzg2QzMuOTI0NDUgLTIuMzcyOTkgLTEuMjI1NTUgLTI0LjQ3MjQgMC4yNDc3NDMgLTQ2Ljc4MDNDMS4yNTE2NyAtNjcuNDg0NiAzLjQwMjkzIC04Ny43OTc4IDYuODA1ODQgLTEwNy43NzJDMTAuMTk1NyAtMTI3LjczMyAxNS43MTA4IC0xNDcuNDg2IDIzLjMzOCAtMTY3LjA0M0MyNi4zMTA3IC0xNzQuMDMxIDI5LjAwOTUgLTE4MC44NSAzMS40NzM3IC0xODcuNTY0QzMzLjkxMTggLTE5NC4yMjcgMzYuNTMyNCAtMjAwLjY2OCAzOS4yNTc0IC0yMDYuODQ4QzQxLjgxMjggLTIwOS41NzIgNDMuNDY4NiAtMjEyLjEyOCA0NC4xODU3IC0yMTQuNTRDNTMuMDI1NSAtMjI5LjM3NyA2Mi44MyAtMjM3Ljk5NSA3My42Mzg1IC0yNDAuNDMzQzg0LjM5NDggLTI0Mi44NzEgOTguMTM2OSAtMjM5LjgyMSAxMTQuODEyIC0yMzEuMzJDMTI3Ljk0MiAtMjI1LjYwOSAxMzMuMzkyIC0yMTYuMTA1IDEzMS4xNDkgLTIwMi43OTNDMTMwLjE3MSAtMTkwLjgzNyAxMjcuOTk0IC0xNzkuMjU5IDEyNC42MTcgLTE2OC4wMkMxMjAuMDQxIC0xNTIuNzc5IDExNS40MzggLTEzNy41NTEgMTEwLjg0OSAtMTIyLjMyMkMxMDYuMjczIC0xMDcuMDgxIDEwMS4yNzkgLTkxLjk2OTkgOTUuODk0MyAtNzcuMDAyM0M4NS41OTQzIC00OC42MDU3IDc5LjQyNzQgLTE5LjQyNjcgNzcuNDA2NSAxMC41NjA2Qzc3LjcxOTQgMTIuNDEyIDc4LjA0NTMgMTQuMjYzNSA3OC4zNTgzIDE2LjA4ODhDNzguNjcxMiAxNy45NDAyIDc5LjI3MDkgMjAuMyA4MC4xNzA1IDIzLjE5NDRNMTEwLjkxNCAtMjk2Ljc1N0MxMDkuNTQ1IC0yOTguMDM1IDEwNy4zMTYgLTI5OS4zNTIgMTA0LjIzOSAtMzAwLjczNEMxMDEuMTYyIC0zMDIuMDkgOTguMjQxMiAtMzA0LjA1OSA5NS41NDIzIC0zMDYuNjI3QzkwLjA3OTQgLTMxMS43NzcgODYuOTc2MyAtMzE4LjE2NiA4Ni4yMzMyIC0zMjUuODE5Qzg1LjQ2NCAtMzMzLjQ3MiA4Ny4zODA1IC0zNDAuNTUyIDkxLjk2OTkgLTM0Ny4wNThDOTMuMjIxNSAtMzQ4LjQxNCA5NC4xNDcyIC0zNDkuMjM1IDk0LjY4MTggLTM0OS41MjJDOTUuMTkwMyAtMzQ5Ljc5NiA5Ni4xMDI5IC0zNTAuNjA0IDk3LjM5MzcgLTM1MS45OTlDMTA5LjY3NSAtMzU3LjkwNiAxMjIuNDE0IC0zNTYuNjkzIDEzNS42MzQgLTM0OC4zMzZDMTQ2Ljk1MSAtMzQyLjMyNSAxNTIuMDg4IC0zMzMuMzE2IDE1MS4xMzYgLTMyMS4zNkwxNDguMjI5IC0zMTEuNzM4QzE0NC42NjkgLTI5Ny4wNyAxMzUuNTY5IC0yOTEuNTAzIDEyMC45MTQgLTI5NS4wNjJDMTE5LjA1IC0yOTQuNzIzIDExNS43MzggLTI5NS4yOTcgMTEwLjkxNCAtMjk2Ljc0NCIgZmlsbD0iI0Y1RjVGNyIvPgo8cGF0aCBkPSJNMjQyLjc2NyAyMTUuNTE4QzI0NS4wODggMjEzLjU4OCAyNDcuMjc4IDIxMi4xMDIgMjQ5LjM3NyAyMTAuOTY4QzI1MS40NSAyMDkuODU5IDI1My41MzYgMjA4Ljc1MSAyNTUuNjIyIDIwNy42MDRDMjc0LjIyNyAxOTIuMjg0IDI5MC41NzcgMTc3LjE2IDMwNC43MjMgMTYyLjE5M0MzMTUuNjg4IDE0OC45NDYgMzI2LjYxNCAxMzUuODU2IDMzNy40ODggMTIyLjk4N0MzNDguMzYxIDExMC4xMTkgMzU4Ljg4MyA5Ni45Mzc1IDM2OS4wNjYgODMuNDE3MUMzNzYuNDQ1IDczLjQzMDEgMzg0LjU4MSA2My44NjAyIDM5My40NDcgNTQuNzQ2NkM0MDIuMyA0NS42NDYxIDQxMC44MjYgMzYuMjMyNyA0MTkuMDAxIDI2LjQ4MDNDNDIxLjgwNCAyMi45NzMxIDQyNC4yMjkgMjAuMDAwNCA0MjYuMjg5IDE3LjU0OTNDNDI4LjMyMyAxNS4xMjQzIDQzMC41MDEgMTIuOTMzOCA0MzIuODM1IDExLjAxNzNDNDM0LjkwOCA5LjkwOTA2IDQzNi43NDYgOS41ODMwMSA0MzguMzYzIDEwLjA2NTRDNDM5Ljk1MyAxMC41NDc5IDQ0MS43OTIgMTAuMjQ4IDQ0My45MDQgOS4xMTM3MUM0NDMuMTg3IDExLjUxMjcgNDQyLjgyMiAxMy4zOTAzIDQ0Mi44ODcgMTQuNjk0QzQ0Mi45MjYgMTYuMDIzOSA0NDIuMjg3IDE3LjM2NjggNDQxLjAwOSAxOC43MjI3QzQyNC42NDcgNDYuOTYzIDQwNy42ODQgNzIuODE3MyAzOTAuMTIyIDk2LjMxMTdDMzc2LjY0MSAxMTQuOTU2IDM2My4xNDcgMTMyLjkwOSAzNDkuNjM5IDE1MC4yMjRDMzM2LjEwNiAxNjcuNTI1IDMyMi4yMiAxODUuMzYxIDMwNy45NDQgMjAzLjc1OEMzMDEuNTI5IDIxMC41MzcgMjk1LjM4OCAyMTcuMiAyODkuNDk1IDIyMy43MTlDMjgzLjU4OSAyMzAuMjI1IDI3Ny40MzUgMjM2LjkgMjcxLjAyIDI0My42NjdDMjU4LjkyMSAyNTQuODggMjQ0LjQ4OCAyNTkuMjM0IDIyNy43MzQgMjU2Ljc5NkMxOTYuODYgMjUxLjg4MSAxNzYuMDI1IDIzNi44NzQgMTY1LjIxNyAyMTEuNzg5QzE1NC42OTUgMTg4LjU2OCAxNDkuNTMyIDE2Ni41MDggMTQ5LjcwMiAxNDUuNjA4QzE0Ny45NDIgMTEzLjY3OCAxNDguMzA3IDgxLjk0MzggMTUwLjgxIDUwLjQxOEMxNTMuMyAxOC44NzkyIDE1OC4zMiAtMTIuMzIwNyAxNjUuODY5IC00My4yMDc3QzE4MC4xNzIgLTEwNS4yMDMgMTk4LjU2OCAtMTY2LjQwMyAyMjEuMTExIC0yMjYuODA4QzIzMi4wODkgLTI1Ny41MjYgMjQ0LjQyMyAtMjg3LjYxOCAyNTguMSAtMzE3LjA5NkMyNzEuNzc2IC0zNDYuNTc1IDI4Ni4zNzkgLTM3NS41MDcgMzAxLjk3MiAtNDA0LjAwOEMzMTIuOTUgLTQyNS45OSAzMjQuNjMyIC00NDcuMzQ2IDMzNi45NzkgLTQ2OC4wNjNDMzQ5LjMxMyAtNDg4Ljc1NCAzNjIuNDk1IC01MDkuMjI0IDM3Ni40MzIgLTUyOS40NTlDNDAzLjg2NCAtNTY4LjI5OSA0MzQuMTkgLTYwMy42NzEgNDY3LjM5OCAtNjM1LjU3NUM0NzUuNjM4IC02NDIuNjgxIDQ4My45OTUgLTY0OS4zMTcgNDkyLjQwNSAtNjU1LjUxQzUwMC44MjggLTY2MS42NzcgNTEwLjM5NyAtNjY2LjY1OCA1MjEuMTU0IC02NzAuMzk5QzU0NS4yNzQgLTY3Ny45NjEgNTY3LjcxMiAtNjc2Ljg3OSA1ODguMzkxIC02NjcuMTY2QzYwNC43MjcgLTY2MC40NzggNjEzLjY3MSAtNjQ5LjUxMyA2MTUuMjEgLTYzNC4yMTlDNjE3LjU5NiAtNjI0Ljc1NCA2MTguMTk1IC02MTMuNjcxIDYxNi45ODMgLTYwMC45NTlDNjEwLjMyIC01NTguNDgxIDU5Ny44NTYgLTUxNS41MzQgNTc5LjU1MSAtNDcyLjE5NkM1NjUuNDMxIC00MzkuODIzIDU0OS4wODEgLTQwOC43NTMgNTMwLjUyOCAtMzc5LjAwMUM1MTEuOTM2IC0zNDkuMjYxIDQ5Mi42MTQgLTMxOS45NTIgNDcyLjYgLTI5MS4wOTlDNDY1LjQ1NiAtMjgxLjkyIDQ1Ny45NDYgLTI3MS41MDMgNDUwLjEyMyAtMjU5LjkxMkM0MzMuNTc4IC0yMzYuOTc4IDQxNS42MzcgLTIxNS4xMjYgMzk2LjI4OSAtMTk0LjM1N0MzNzYuOTAyIC0xNzMuNTYxIDM1NS44NDUgLTE1NC4zOTYgMzMzLjA2OCAtMTM2LjgyQzMyMC4zODIgLTEyNi42OSAzMTIuNTMzIC0xMTUuMDg2IDMwOS40ODIgLTEwMi4wNDhDMzA0LjE4OSAtODQuNDQ2OCAyOTguOTc0IC02Ny4wNDExIDI5My43OTggLTQ5Ljg0NEMyODguNjIxIC0zMi42NDY5IDI4My43NzEgLTE1LjExMDggMjc5LjI4NiAyLjcxMjFDMjc1LjI3MSAxOC45NzA1IDI3MS4zMDcgMzQuOTgxIDI2Ny40MjIgNTAuODM1MkMyNjMuNTIzIDY2LjY2MzMgMjU5Ljk2NCA4Mi44NDM0IDI1Ni43NyA5OS4zMzY1QzI1My41NDkgMTE1LjgwMyAyNTAuNjgxIDEzMi42MjIgMjQ4LjE1MiAxNDkuNzQxQzI0NS42MDkgMTY2Ljg2IDI0My4xMzIgMTgzLjc5NyAyNDAuNzQ2IDIwMC40OThDMjQxLjA0NiAyMDIuMzM3IDI0MS4zMDcgMjA0LjM5NiAyNDEuNTE1IDIwNi42MTNDMjQxLjY5OCAyMDguODY4IDI0Mi4xMjggMjExLjg0MSAyNDIuNzggMjE1LjUxOE01NjQuMzIyIC02MjIuMDgxQzU2MS43MjggLTYxOS4zNDMgNTU4LjExNiAtNjE2LjA4MyA1NTMuNDg4IC02MTIuMjM3QzU0Mi4yMzYgLTU5OC4xNjkgNTMwLjk1OCAtNTgzLjkwNiA1MTkuNjI4IC01NjkuNDU5QzUwOC4yNTkgLTU1NC45ODcgNDk4LjA1IC01MzkuOTQxIDQ4OS4wMTUgLTUyNC4zNzRDNDU5LjIzNiAtNDc0Ljg2OSA0MzIuNzY5IC00MjMuOTU2IDQwOS42MDEgLTM3MS42MDhDMzg2LjQxOSAtMzE5LjI0OCAzNjUuMTkzIC0yNjUuNDQgMzQ1LjkzNiAtMjEwLjE3MkMzNDUuNzAyIC0yMDkuMzc3IDM0NS43MDIgLTIwOC43MTIgMzQ2LjAxNSAtMjA4LjE5QzM0Ni4yNjIgLTIwNy42NTYgMzQ2LjE4NCAtMjA2LjU4NyAzNDUuNzE1IC0yMDUuMDA5QzM0OS4zNzggLTIwNS42MjIgMzUxLjM2IC0yMDYuMzM5IDM1MS42MDggLTIwNy4xNDdDMzU1LjQ2NyAtMjExLjIxNSAzNTkuNTA5IC0yMTUuMjMxIDM2My43NDYgLTIxOS4xOTRDMzY3Ljk5NyAtMjIzLjE0NSAzNzEuNzY1IC0yMjcuNjgyIDM3NS4wNzYgLTIzMi44MTlDNDAyLjg4NiAtMjY3LjE2MSA0MjguNzE0IC0zMDIuMTQyIDQ1Mi41MzUgLTMzNy43MzZDNDc2LjM2OCAtMzczLjMwMyA0OTguNTMzIC00MTAuNjk2IDUxOS4wNjggLTQ0OS44ODhDNTQzLjg1MyAtNDk3LjM3MiA1NTkuNTc3IC01NDYuNzM0IDU2Ni4yNTIgLTU5Ny45MzRDNTY2LjY0MyAtNjAyLjE4NSA1NjYuOTE3IC02MDYuMDE4IDU2Ny4xIC02MDkuNDZDNTY3LjI0MyAtNjEyLjkwMiA1NjYuMzE3IC02MTcuMSA1NjQuMzM2IC02MjIuMDgxIiBmaWxsPSIjRjVGNUY3Ii8+CjxwYXRoIGQ9Ik02OTYuNTE1IDE4OS4wNjRDNzA0LjYzOCAxODQuMzk2IDcxMi42ODIgMTc5LjYxMSA3MjAuNjg4IDE3NC43MzVWMTM0LjA1N0M2OTcuODE5IDE0OC41MDMgNjczLjgwMyAxNTkuNjM3IDY0OC42MDEgMTY3LjQyMUM2MjIuMDgyIDE3NS42MzUgNTk0LjU1OCAxODAuNjY3IDU2Ni4wMTggMTgyLjU1OEM1NTAuOTIgMTgzLjI2MiA1NDEuMjk4IDE4MS44OTMgNTM3LjEgMTc4LjQzOEM1MzIuODc2IDE3NS4wMDkgNTI5LjA5NSAxNjUuNzUyIDUyNS43NTcgMTUwLjc0NUw1MjMuOTU4IDEzMC41NDlDNTIzLjMzMiAxMTguMTI0IDUyNC43NjYgMTA2Ljc1NSA1MjguMzM5IDk2LjQyODlDNTMxLjg1OSA4Ni4xNTUgNTM2LjEyMiA3NS42MjAzIDU0MS4xMTYgNjQuODc3QzU0NS42MTQgNjQuNDg1OSA1NDkuNTY0IDY0LjM2ODUgNTUzLjAzMiA2NC41MzhDNTU2LjQ3NSA2NC42OTQ1IDU2MC40MzggNjQuNTc3MSA1NjQuOTQ5IDY0LjE3MjlDNTg1Ljg3NSA2NC4zNjg1IDYwNy42MzYgNjEuNzQ3OSA2MzAuMjY5IDU2LjI4NDlDNjUyLjA4MiA1MC42MjY1IDY3MC40IDQxLjI3ODIgNjg1LjI3NyAyOC4yNTMzQzY5NC45MzggMTkuNzc4NiA3MDQuMDI1IDEwLjM3ODMgNzEyLjU2NSAwLjA5MTMwODZINjM5LjUyNkM2MjAuMjU2IDE2Ljk4ODUgNTk2Ljk0NCAyNy40ODQxIDU2OS41MzkgMzEuNDYwN0M1NjcuNjYxIDMxLjc3MzYgNTY2LjM1NyAzMS44MTI3IDU2NS41NzUgMzEuNTY1QzU2NC43NTQgMzEuMzMwMyA1NjMuODI4IDMxLjUxMjggNTYyLjgxMSAzMi4wNDc0QzU2MS45OSAzMS44MTI3IDU2MS42NTEgMzEuNDk5OCA1NjEuNzgxIDMxLjA4MjZDNTYxLjg5OCAzMC42OTE1IDU2MS41NDYgMzAuMzY1NSA1NjAuNzUxIDMwLjEzMDhDNTYwLjk5OSAyOS4zMzU1IDU2MC45MDcgMjguODY2MSA1NjAuNTE2IDI4Ljc2MThDNTYwLjA5OSAyOC42MTg0IDU2MC4wMzQgMjguMTYyIDU2MC4yOTUgMjcuMzUzN0M1NjUuMzc5IDE4LjE3NDkgNTcwLjc3NyA5LjEwMDU1IDU3Ni40MzYgMC4wOTEzMDg2SDQzMC4xNzZDNDI0LjIwNCAxMi42NzMgNDE5LjA1NCAyNS45NDU2IDQxNC44MyAzOS45ODc1QzQwNi40NzMgNjEuOTU2NSA0MDQuMjgyIDgyLjI2OTcgNDA4LjI4NSAxMDAuOTY2QzQxMi4wMTQgMTIwLjQ1OCA0MTguODMzIDEzOC40NjMgNDI4LjcyOCAxNTQuOTgyQzQzOC42MTEgMTcxLjUyOCA0NTIuNDU4IDE4NS4wODcgNDcwLjI1NCAxOTUuN0M0OTAuNzM3IDIwOC44ODEgNTEyLjE0NSAyMTcuNzIxIDUzNC40MDEgMjIyLjI0NUM1NTYuNjQ0IDIyNi43NTcgNTc5Ljg2NSAyMjYuNTA5IDYwNC4xMTUgMjIxLjU2N0M2MDkuNjQzIDIyMC42MTYgNjE1LjI2MyAyMTkuNDY4IDYyMC45MjEgMjE4LjA5OUM2MjYuNTY3IDIxNi43NTYgNjMyLjI3NyAyMTUuMTkyIDYzOC4wNTMgMjEzLjQxOUM2NTkuMDU3IDIwNy41MjUgNjc4LjU2MiAxOTkuMzkgNjk2LjU0MSAxODkuMDc3IiBmaWxsPSIjRjVGNUY3Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMjgyMF82OTk5MSI+CjxyZWN0IHdpZHRoPSI3MjEiIGhlaWdodD0iMjU2Ljg0OCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K\");background-repeat:no-repeat;background-size:contain}@media (min-width: 48em){.duet-page-heading .background .background-mask{top:-40px;width:502px;height:577px}}.duet-page-heading .background .brand-shape{position:absolute;top:-157px;right:-20px;width:185px;height:185px;background:rgb(0, 119, 179);border-radius:20%;mix-blend-mode:normal;opacity:0.2;transform:rotate(7deg)}@media (min-width: 48em){.duet-page-heading .background .brand-shape{top:-280px;right:-40px;width:325px;height:325px}}.duet-page-heading .background .brand-shape.second-shape{top:-182px;right:100px;width:207px;height:207px;background:rgb(11, 114, 136);opacity:0.1}@media (min-width: 48em){.duet-page-heading .background .brand-shape.second-shape{top:-325px;right:200px;width:365px;height:365px}}.duet-page-heading .background .brand-shaped-icon{position:absolute;top:20px;right:16px;display:flex;align-items:center;justify-content:center;width:85px;width:60px;height:85px;height:60px;background:rgba(0, 119, 179, 0.75);border-radius:25%;mix-blend-mode:normal;transform:rotate(7deg)}@media (min-width: 48em){.duet-page-heading .background .brand-shaped-icon{right:36px;width:93px;height:93px}}.duet-page-heading .background .brand-shaped-icon duet-icon{width:60px;height:60px;transform:rotate(-7deg)}@media (min-width: 48em){.duet-page-heading .background .brand-shaped-icon duet-icon{width:75px;height:75px}}.duet-page-heading .progress-indicator{display:flex;flex-direction:row;gap:4px}.duet-page-heading .progress-step{width:100%;height:4px;background-color:rgb(181, 198, 208);border-radius:2px}.duet-page-heading .progress-step.active{background-color:rgb(0, 119, 179)}.duet-page-heading.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:rgb(8, 42, 77)}.duet-page-heading.duet-theme-turva .background .background-mask{background-image:none}.duet-page-heading.duet-theme-turva .brand-shaped-icon{background:rgb(23, 42, 59);border-radius:16%;-webkit-mask-image:none;mask-image:none;transform:rotate(0)}.duet-page-heading.duet-theme-turva .brand-shaped-icon duet-icon{top:0;transform:rotate(0)}.duet-page-heading.duet-theme-turva .progress-step{background-color:rgb(178, 194, 205)}.duet-page-heading.duet-theme-turva .progress-step.active{background-color:rgb(230, 23, 64)}";
17558
+ const duetPageHeadingCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;display:block;width:100%}.duet-page-heading{position:relative;display:block;width:100%;margin:0 auto;overflow:hidden;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(8, 42, 77)}.duet-page-heading.duet-p-0{padding:0 !important}.duet-page-heading.duet-m-0{margin:0 !important}.duet-page-heading.auto{overflow:visible}.duet-page-heading.auto .heading,.duet-page-heading.auto .background{max-width:none}.duet-page-heading.fluid,.duet-page-heading.narrow{padding:0 16px}@media (min-width: 36em){.duet-page-heading.fluid{padding:0 28px}}@media (min-width: 62em){.duet-page-heading.fluid{padding:0 56px}}@media (min-width: 76.25em){.duet-page-heading.fluid{max-width:1110px;padding:0}}.duet-page-heading.narrow{max-width:888px}@media (min-width: 36em){.duet-page-heading.narrow{padding:0 48px}}@media (min-width: 48em){.duet-page-heading.narrow{padding:0 72px}}.duet-page-heading .heading{max-width:744px;padding:48px 90px 16px 0}.duet-page-heading .heading.has-back-button{padding-top:72px}@media (min-width: 48em){.duet-page-heading .heading{padding:72px 150px 40px 0}.duet-page-heading .heading.has-back-button{padding-top:94px}}.duet-page-heading:not(.has-icon) .heading{padding-right:0}.duet-page-heading .background{position:absolute;top:0;right:0;left:0;width:100%;max-width:744px;height:104px;margin:0 auto;margin:0 auto}@media (min-width: 48em){.duet-page-heading .background{height:165px}}.duet-page-heading .background .background-mask{position:absolute;top:-20px;right:0;display:block;width:286px;height:331px;pointer-events:none;background-image:url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIxIiBoZWlnaHQ9IjI1NyIgdmlld0JveD0iMCAwIDcyMSAyNTciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yODIwXzY5OTkxKSI+CjxwYXRoIGQ9Ik04MC4xNzA1IDIzLjE4MTVDOTEuOTY5OSAxOC44NjU5IDEwMi44NyAxMS42NTU5IDExMi45MDkgMS41NjQ0OEMxMjMuNzcgLTguMzA1MjcgMTM0LjM4MiAtMTguMjAxMSAxNDQuODI2IC0yOC4xODgyQzE1NS4yNDMgLTM4LjE2MjIgMTY1LjkwOCAtNDguMDg0MSAxNzYuNzQzIC01Ny45Mjc4QzE3OC44MTYgLTU5LjA0OSAxODAuNDk4IC02MC4yODc3IDE4MS43ODggLTYxLjY1NjdDMTgzLjA2NiAtNjMuMDEyNiAxODUuNDY1IC02Mi4yODI1IDE4OS4wMTIgLTU5LjQ3OTNDMTg0LjczNSAtNTEuMTM1IDE4MC43NTkgLTQyLjk2MDIgMTc3LjAxNyAtMzQuOTAyN0MxNzMuMjg4IC0yNi44NDUyIDE2Ny42ODEgLTE5LjEyNjggMTYwLjIxMSAtMTEuNzYwM0MxNTIuNzUzIC00LjM4MDgzIDE0NC45NTYgMy4zMTE1MiAxMzYuODQ3IDExLjM2OUMxMjguNzI0IDE5LjQyNjUgMTIwLjk2NiAyNy4xNDUgMTEzLjQ4MyAzNC40OTg0Qzk3LjQ5OCA0OS44MTggNzkuNjYyIDU2LjAyNDEgNjAuMDAwOCA1My4xNjg4QzQwLjI4NzQgNTAuMzEzNSAyNS41NDE0IDM5LjA3NDcgMTUuNjk3NyAxOS40Nzg2QzMuOTI0NDUgLTIuMzcyOTkgLTEuMjI1NTUgLTI0LjQ3MjQgMC4yNDc3NDMgLTQ2Ljc4MDNDMS4yNTE2NyAtNjcuNDg0NiAzLjQwMjkzIC04Ny43OTc4IDYuODA1ODQgLTEwNy43NzJDMTAuMTk1NyAtMTI3LjczMyAxNS43MTA4IC0xNDcuNDg2IDIzLjMzOCAtMTY3LjA0M0MyNi4zMTA3IC0xNzQuMDMxIDI5LjAwOTUgLTE4MC44NSAzMS40NzM3IC0xODcuNTY0QzMzLjkxMTggLTE5NC4yMjcgMzYuNTMyNCAtMjAwLjY2OCAzOS4yNTc0IC0yMDYuODQ4QzQxLjgxMjggLTIwOS41NzIgNDMuNDY4NiAtMjEyLjEyOCA0NC4xODU3IC0yMTQuNTRDNTMuMDI1NSAtMjI5LjM3NyA2Mi44MyAtMjM3Ljk5NSA3My42Mzg1IC0yNDAuNDMzQzg0LjM5NDggLTI0Mi44NzEgOTguMTM2OSAtMjM5LjgyMSAxMTQuODEyIC0yMzEuMzJDMTI3Ljk0MiAtMjI1LjYwOSAxMzMuMzkyIC0yMTYuMTA1IDEzMS4xNDkgLTIwMi43OTNDMTMwLjE3MSAtMTkwLjgzNyAxMjcuOTk0IC0xNzkuMjU5IDEyNC42MTcgLTE2OC4wMkMxMjAuMDQxIC0xNTIuNzc5IDExNS40MzggLTEzNy41NTEgMTEwLjg0OSAtMTIyLjMyMkMxMDYuMjczIC0xMDcuMDgxIDEwMS4yNzkgLTkxLjk2OTkgOTUuODk0MyAtNzcuMDAyM0M4NS41OTQzIC00OC42MDU3IDc5LjQyNzQgLTE5LjQyNjcgNzcuNDA2NSAxMC41NjA2Qzc3LjcxOTQgMTIuNDEyIDc4LjA0NTMgMTQuMjYzNSA3OC4zNTgzIDE2LjA4ODhDNzguNjcxMiAxNy45NDAyIDc5LjI3MDkgMjAuMyA4MC4xNzA1IDIzLjE5NDRNMTEwLjkxNCAtMjk2Ljc1N0MxMDkuNTQ1IC0yOTguMDM1IDEwNy4zMTYgLTI5OS4zNTIgMTA0LjIzOSAtMzAwLjczNEMxMDEuMTYyIC0zMDIuMDkgOTguMjQxMiAtMzA0LjA1OSA5NS41NDIzIC0zMDYuNjI3QzkwLjA3OTQgLTMxMS43NzcgODYuOTc2MyAtMzE4LjE2NiA4Ni4yMzMyIC0zMjUuODE5Qzg1LjQ2NCAtMzMzLjQ3MiA4Ny4zODA1IC0zNDAuNTUyIDkxLjk2OTkgLTM0Ny4wNThDOTMuMjIxNSAtMzQ4LjQxNCA5NC4xNDcyIC0zNDkuMjM1IDk0LjY4MTggLTM0OS41MjJDOTUuMTkwMyAtMzQ5Ljc5NiA5Ni4xMDI5IC0zNTAuNjA0IDk3LjM5MzcgLTM1MS45OTlDMTA5LjY3NSAtMzU3LjkwNiAxMjIuNDE0IC0zNTYuNjkzIDEzNS42MzQgLTM0OC4zMzZDMTQ2Ljk1MSAtMzQyLjMyNSAxNTIuMDg4IC0zMzMuMzE2IDE1MS4xMzYgLTMyMS4zNkwxNDguMjI5IC0zMTEuNzM4QzE0NC42NjkgLTI5Ny4wNyAxMzUuNTY5IC0yOTEuNTAzIDEyMC45MTQgLTI5NS4wNjJDMTE5LjA1IC0yOTQuNzIzIDExNS43MzggLTI5NS4yOTcgMTEwLjkxNCAtMjk2Ljc0NCIgZmlsbD0iI0Y1RjVGNyIvPgo8cGF0aCBkPSJNMjQyLjc2NyAyMTUuNTE4QzI0NS4wODggMjEzLjU4OCAyNDcuMjc4IDIxMi4xMDIgMjQ5LjM3NyAyMTAuOTY4QzI1MS40NSAyMDkuODU5IDI1My41MzYgMjA4Ljc1MSAyNTUuNjIyIDIwNy42MDRDMjc0LjIyNyAxOTIuMjg0IDI5MC41NzcgMTc3LjE2IDMwNC43MjMgMTYyLjE5M0MzMTUuNjg4IDE0OC45NDYgMzI2LjYxNCAxMzUuODU2IDMzNy40ODggMTIyLjk4N0MzNDguMzYxIDExMC4xMTkgMzU4Ljg4MyA5Ni45Mzc1IDM2OS4wNjYgODMuNDE3MUMzNzYuNDQ1IDczLjQzMDEgMzg0LjU4MSA2My44NjAyIDM5My40NDcgNTQuNzQ2NkM0MDIuMyA0NS42NDYxIDQxMC44MjYgMzYuMjMyNyA0MTkuMDAxIDI2LjQ4MDNDNDIxLjgwNCAyMi45NzMxIDQyNC4yMjkgMjAuMDAwNCA0MjYuMjg5IDE3LjU0OTNDNDI4LjMyMyAxNS4xMjQzIDQzMC41MDEgMTIuOTMzOCA0MzIuODM1IDExLjAxNzNDNDM0LjkwOCA5LjkwOTA2IDQzNi43NDYgOS41ODMwMSA0MzguMzYzIDEwLjA2NTRDNDM5Ljk1MyAxMC41NDc5IDQ0MS43OTIgMTAuMjQ4IDQ0My45MDQgOS4xMTM3MUM0NDMuMTg3IDExLjUxMjcgNDQyLjgyMiAxMy4zOTAzIDQ0Mi44ODcgMTQuNjk0QzQ0Mi45MjYgMTYuMDIzOSA0NDIuMjg3IDE3LjM2NjggNDQxLjAwOSAxOC43MjI3QzQyNC42NDcgNDYuOTYzIDQwNy42ODQgNzIuODE3MyAzOTAuMTIyIDk2LjMxMTdDMzc2LjY0MSAxMTQuOTU2IDM2My4xNDcgMTMyLjkwOSAzNDkuNjM5IDE1MC4yMjRDMzM2LjEwNiAxNjcuNTI1IDMyMi4yMiAxODUuMzYxIDMwNy45NDQgMjAzLjc1OEMzMDEuNTI5IDIxMC41MzcgMjk1LjM4OCAyMTcuMiAyODkuNDk1IDIyMy43MTlDMjgzLjU4OSAyMzAuMjI1IDI3Ny40MzUgMjM2LjkgMjcxLjAyIDI0My42NjdDMjU4LjkyMSAyNTQuODggMjQ0LjQ4OCAyNTkuMjM0IDIyNy43MzQgMjU2Ljc5NkMxOTYuODYgMjUxLjg4MSAxNzYuMDI1IDIzNi44NzQgMTY1LjIxNyAyMTEuNzg5QzE1NC42OTUgMTg4LjU2OCAxNDkuNTMyIDE2Ni41MDggMTQ5LjcwMiAxNDUuNjA4QzE0Ny45NDIgMTEzLjY3OCAxNDguMzA3IDgxLjk0MzggMTUwLjgxIDUwLjQxOEMxNTMuMyAxOC44NzkyIDE1OC4zMiAtMTIuMzIwNyAxNjUuODY5IC00My4yMDc3QzE4MC4xNzIgLTEwNS4yMDMgMTk4LjU2OCAtMTY2LjQwMyAyMjEuMTExIC0yMjYuODA4QzIzMi4wODkgLTI1Ny41MjYgMjQ0LjQyMyAtMjg3LjYxOCAyNTguMSAtMzE3LjA5NkMyNzEuNzc2IC0zNDYuNTc1IDI4Ni4zNzkgLTM3NS41MDcgMzAxLjk3MiAtNDA0LjAwOEMzMTIuOTUgLTQyNS45OSAzMjQuNjMyIC00NDcuMzQ2IDMzNi45NzkgLTQ2OC4wNjNDMzQ5LjMxMyAtNDg4Ljc1NCAzNjIuNDk1IC01MDkuMjI0IDM3Ni40MzIgLTUyOS40NTlDNDAzLjg2NCAtNTY4LjI5OSA0MzQuMTkgLTYwMy42NzEgNDY3LjM5OCAtNjM1LjU3NUM0NzUuNjM4IC02NDIuNjgxIDQ4My45OTUgLTY0OS4zMTcgNDkyLjQwNSAtNjU1LjUxQzUwMC44MjggLTY2MS42NzcgNTEwLjM5NyAtNjY2LjY1OCA1MjEuMTU0IC02NzAuMzk5QzU0NS4yNzQgLTY3Ny45NjEgNTY3LjcxMiAtNjc2Ljg3OSA1ODguMzkxIC02NjcuMTY2QzYwNC43MjcgLTY2MC40NzggNjEzLjY3MSAtNjQ5LjUxMyA2MTUuMjEgLTYzNC4yMTlDNjE3LjU5NiAtNjI0Ljc1NCA2MTguMTk1IC02MTMuNjcxIDYxNi45ODMgLTYwMC45NTlDNjEwLjMyIC01NTguNDgxIDU5Ny44NTYgLTUxNS41MzQgNTc5LjU1MSAtNDcyLjE5NkM1NjUuNDMxIC00MzkuODIzIDU0OS4wODEgLTQwOC43NTMgNTMwLjUyOCAtMzc5LjAwMUM1MTEuOTM2IC0zNDkuMjYxIDQ5Mi42MTQgLTMxOS45NTIgNDcyLjYgLTI5MS4wOTlDNDY1LjQ1NiAtMjgxLjkyIDQ1Ny45NDYgLTI3MS41MDMgNDUwLjEyMyAtMjU5LjkxMkM0MzMuNTc4IC0yMzYuOTc4IDQxNS42MzcgLTIxNS4xMjYgMzk2LjI4OSAtMTk0LjM1N0MzNzYuOTAyIC0xNzMuNTYxIDM1NS44NDUgLTE1NC4zOTYgMzMzLjA2OCAtMTM2LjgyQzMyMC4zODIgLTEyNi42OSAzMTIuNTMzIC0xMTUuMDg2IDMwOS40ODIgLTEwMi4wNDhDMzA0LjE4OSAtODQuNDQ2OCAyOTguOTc0IC02Ny4wNDExIDI5My43OTggLTQ5Ljg0NEMyODguNjIxIC0zMi42NDY5IDI4My43NzEgLTE1LjExMDggMjc5LjI4NiAyLjcxMjFDMjc1LjI3MSAxOC45NzA1IDI3MS4zMDcgMzQuOTgxIDI2Ny40MjIgNTAuODM1MkMyNjMuNTIzIDY2LjY2MzMgMjU5Ljk2NCA4Mi44NDM0IDI1Ni43NyA5OS4zMzY1QzI1My41NDkgMTE1LjgwMyAyNTAuNjgxIDEzMi42MjIgMjQ4LjE1MiAxNDkuNzQxQzI0NS42MDkgMTY2Ljg2IDI0My4xMzIgMTgzLjc5NyAyNDAuNzQ2IDIwMC40OThDMjQxLjA0NiAyMDIuMzM3IDI0MS4zMDcgMjA0LjM5NiAyNDEuNTE1IDIwNi42MTNDMjQxLjY5OCAyMDguODY4IDI0Mi4xMjggMjExLjg0MSAyNDIuNzggMjE1LjUxOE01NjQuMzIyIC02MjIuMDgxQzU2MS43MjggLTYxOS4zNDMgNTU4LjExNiAtNjE2LjA4MyA1NTMuNDg4IC02MTIuMjM3QzU0Mi4yMzYgLTU5OC4xNjkgNTMwLjk1OCAtNTgzLjkwNiA1MTkuNjI4IC01NjkuNDU5QzUwOC4yNTkgLTU1NC45ODcgNDk4LjA1IC01MzkuOTQxIDQ4OS4wMTUgLTUyNC4zNzRDNDU5LjIzNiAtNDc0Ljg2OSA0MzIuNzY5IC00MjMuOTU2IDQwOS42MDEgLTM3MS42MDhDMzg2LjQxOSAtMzE5LjI0OCAzNjUuMTkzIC0yNjUuNDQgMzQ1LjkzNiAtMjEwLjE3MkMzNDUuNzAyIC0yMDkuMzc3IDM0NS43MDIgLTIwOC43MTIgMzQ2LjAxNSAtMjA4LjE5QzM0Ni4yNjIgLTIwNy42NTYgMzQ2LjE4NCAtMjA2LjU4NyAzNDUuNzE1IC0yMDUuMDA5QzM0OS4zNzggLTIwNS42MjIgMzUxLjM2IC0yMDYuMzM5IDM1MS42MDggLTIwNy4xNDdDMzU1LjQ2NyAtMjExLjIxNSAzNTkuNTA5IC0yMTUuMjMxIDM2My43NDYgLTIxOS4xOTRDMzY3Ljk5NyAtMjIzLjE0NSAzNzEuNzY1IC0yMjcuNjgyIDM3NS4wNzYgLTIzMi44MTlDNDAyLjg4NiAtMjY3LjE2MSA0MjguNzE0IC0zMDIuMTQyIDQ1Mi41MzUgLTMzNy43MzZDNDc2LjM2OCAtMzczLjMwMyA0OTguNTMzIC00MTAuNjk2IDUxOS4wNjggLTQ0OS44ODhDNTQzLjg1MyAtNDk3LjM3MiA1NTkuNTc3IC01NDYuNzM0IDU2Ni4yNTIgLTU5Ny45MzRDNTY2LjY0MyAtNjAyLjE4NSA1NjYuOTE3IC02MDYuMDE4IDU2Ny4xIC02MDkuNDZDNTY3LjI0MyAtNjEyLjkwMiA1NjYuMzE3IC02MTcuMSA1NjQuMzM2IC02MjIuMDgxIiBmaWxsPSIjRjVGNUY3Ii8+CjxwYXRoIGQ9Ik02OTYuNTE1IDE4OS4wNjRDNzA0LjYzOCAxODQuMzk2IDcxMi42ODIgMTc5LjYxMSA3MjAuNjg4IDE3NC43MzVWMTM0LjA1N0M2OTcuODE5IDE0OC41MDMgNjczLjgwMyAxNTkuNjM3IDY0OC42MDEgMTY3LjQyMUM2MjIuMDgyIDE3NS42MzUgNTk0LjU1OCAxODAuNjY3IDU2Ni4wMTggMTgyLjU1OEM1NTAuOTIgMTgzLjI2MiA1NDEuMjk4IDE4MS44OTMgNTM3LjEgMTc4LjQzOEM1MzIuODc2IDE3NS4wMDkgNTI5LjA5NSAxNjUuNzUyIDUyNS43NTcgMTUwLjc0NUw1MjMuOTU4IDEzMC41NDlDNTIzLjMzMiAxMTguMTI0IDUyNC43NjYgMTA2Ljc1NSA1MjguMzM5IDk2LjQyODlDNTMxLjg1OSA4Ni4xNTUgNTM2LjEyMiA3NS42MjAzIDU0MS4xMTYgNjQuODc3QzU0NS42MTQgNjQuNDg1OSA1NDkuNTY0IDY0LjM2ODUgNTUzLjAzMiA2NC41MzhDNTU2LjQ3NSA2NC42OTQ1IDU2MC40MzggNjQuNTc3MSA1NjQuOTQ5IDY0LjE3MjlDNTg1Ljg3NSA2NC4zNjg1IDYwNy42MzYgNjEuNzQ3OSA2MzAuMjY5IDU2LjI4NDlDNjUyLjA4MiA1MC42MjY1IDY3MC40IDQxLjI3ODIgNjg1LjI3NyAyOC4yNTMzQzY5NC45MzggMTkuNzc4NiA3MDQuMDI1IDEwLjM3ODMgNzEyLjU2NSAwLjA5MTMwODZINjM5LjUyNkM2MjAuMjU2IDE2Ljk4ODUgNTk2Ljk0NCAyNy40ODQxIDU2OS41MzkgMzEuNDYwN0M1NjcuNjYxIDMxLjc3MzYgNTY2LjM1NyAzMS44MTI3IDU2NS41NzUgMzEuNTY1QzU2NC43NTQgMzEuMzMwMyA1NjMuODI4IDMxLjUxMjggNTYyLjgxMSAzMi4wNDc0QzU2MS45OSAzMS44MTI3IDU2MS42NTEgMzEuNDk5OCA1NjEuNzgxIDMxLjA4MjZDNTYxLjg5OCAzMC42OTE1IDU2MS41NDYgMzAuMzY1NSA1NjAuNzUxIDMwLjEzMDhDNTYwLjk5OSAyOS4zMzU1IDU2MC45MDcgMjguODY2MSA1NjAuNTE2IDI4Ljc2MThDNTYwLjA5OSAyOC42MTg0IDU2MC4wMzQgMjguMTYyIDU2MC4yOTUgMjcuMzUzN0M1NjUuMzc5IDE4LjE3NDkgNTcwLjc3NyA5LjEwMDU1IDU3Ni40MzYgMC4wOTEzMDg2SDQzMC4xNzZDNDI0LjIwNCAxMi42NzMgNDE5LjA1NCAyNS45NDU2IDQxNC44MyAzOS45ODc1QzQwNi40NzMgNjEuOTU2NSA0MDQuMjgyIDgyLjI2OTcgNDA4LjI4NSAxMDAuOTY2QzQxMi4wMTQgMTIwLjQ1OCA0MTguODMzIDEzOC40NjMgNDI4LjcyOCAxNTQuOTgyQzQzOC42MTEgMTcxLjUyOCA0NTIuNDU4IDE4NS4wODcgNDcwLjI1NCAxOTUuN0M0OTAuNzM3IDIwOC44ODEgNTEyLjE0NSAyMTcuNzIxIDUzNC40MDEgMjIyLjI0NUM1NTYuNjQ0IDIyNi43NTcgNTc5Ljg2NSAyMjYuNTA5IDYwNC4xMTUgMjIxLjU2N0M2MDkuNjQzIDIyMC42MTYgNjE1LjI2MyAyMTkuNDY4IDYyMC45MjEgMjE4LjA5OUM2MjYuNTY3IDIxNi43NTYgNjMyLjI3NyAyMTUuMTkyIDYzOC4wNTMgMjEzLjQxOUM2NTkuMDU3IDIwNy41MjUgNjc4LjU2MiAxOTkuMzkgNjk2LjU0MSAxODkuMDc3IiBmaWxsPSIjRjVGNUY3Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMjgyMF82OTk5MSI+CjxyZWN0IHdpZHRoPSI3MjEiIGhlaWdodD0iMjU2Ljg0OCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K\");background-repeat:no-repeat;background-size:contain}@media (min-width: 48em){.duet-page-heading .background .background-mask{top:-40px;width:502px;height:577px}}.duet-page-heading .background .brand-shape{position:absolute;top:-157px;right:-20px;width:185px;height:185px;background:rgb(0, 119, 179);border-radius:20%;mix-blend-mode:normal;opacity:0.2;transform:rotate(7deg)}@media (min-width: 48em){.duet-page-heading .background .brand-shape{top:-280px;right:-40px;width:325px;height:325px}}.duet-page-heading .background .brand-shape.second-shape{top:-182px;right:100px;width:207px;height:207px;background:rgb(11, 114, 136);opacity:0.1}@media (min-width: 48em){.duet-page-heading .background .brand-shape.second-shape{top:-325px;right:200px;width:365px;height:365px}}.duet-page-heading .background .brand-shaped-icon{position:absolute;top:20px;right:16px;display:flex;align-items:center;justify-content:center;width:85px;width:60px;height:85px;height:60px;background:rgba(0, 119, 179, 0.9);border-radius:25%;mix-blend-mode:normal;transform:rotate(7deg)}.duet-page-heading .background .brand-shaped-icon.secondary-background{background:rgba(8, 42, 77, 0.85)}@media (min-width: 48em){.duet-page-heading .background .brand-shaped-icon{right:36px;width:93px;height:93px}}.duet-page-heading .background .brand-shaped-icon duet-icon{width:60px;height:60px;transform:rotate(-7deg)}@media (min-width: 48em){.duet-page-heading .background .brand-shaped-icon duet-icon{width:75px;height:75px}}.duet-page-heading .progress-indicator{display:flex;flex-direction:row;gap:4px}.duet-page-heading .progress-step{width:100%;height:4px;background-color:rgb(181, 198, 208);border-radius:2px}.duet-page-heading .progress-step.active{background-color:rgb(0, 119, 179)}.duet-page-heading .button-container{position:absolute;top:20px;left:0}@media (min-width: 48em){.duet-page-heading .button-container{top:36px}}.duet-page-heading.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:rgb(8, 42, 77)}.duet-page-heading.duet-theme-turva .background .background-mask{background-image:none}.duet-page-heading.duet-theme-turva .brand-shaped-icon{background:rgb(23, 42, 59);border-radius:16%;-webkit-mask-image:none;mask-image:none;transform:rotate(0)}.duet-page-heading.duet-theme-turva .brand-shaped-icon duet-icon{top:0;transform:rotate(0)}.duet-page-heading.duet-theme-turva .progress-step{background-color:rgb(178, 194, 205)}.duet-page-heading.duet-theme-turva .progress-step.active{background-color:rgb(230, 23, 64)}";
17260
17559
 
17261
17560
  /**
17262
17561
  * @slot heading - This is a slot for heading content.
17562
+ * @slot button - This is a slot for button visually above the heading. Use only variation "plain" button.
17263
17563
  */
17264
17564
  class DuetPageHeading {
17265
17565
  constructor(hostRef) {
17266
17566
  registerInstance(this, hostRef);
17567
+ this.hasButtonSlot = false;
17267
17568
  /**
17268
17569
  * Theme of the hero area.
17269
17570
  */
17270
17571
  this.theme = "";
17572
+ /**
17573
+ * LähiTapiola theme includes a brand shape at the top by default. Set to "none" to omit it. Has no effect for Turva.
17574
+ */
17575
+ this.shape = "auto";
17271
17576
  /**
17272
17577
  * Icon.
17273
17578
  */
17274
17579
  this.icon = "";
17580
+ /**
17581
+ * With LähiTapiola theme the icon can have secondary background instead of default. This has no effect on Turva theme.
17582
+ */
17583
+ this.iconBackground = "default";
17275
17584
  /**
17276
17585
  * Layout.
17277
17586
  * Values narrow and fluid are deprecated.
@@ -17283,6 +17592,8 @@ class DuetPageHeading {
17283
17592
  */
17284
17593
  componentWillLoad() {
17285
17594
  inheritGlobalTheme(this);
17595
+ this.hasButtonSlot = hasSlot(this.element, "button");
17596
+ checkNamedSlotElement(this.element, "button", "duet-button[variation=plain]");
17286
17597
  }
17287
17598
  progressIndicator() {
17288
17599
  return (hAsync("div", { class: "progress-indicator" }, Array.from({ length: Math.ceil(this.progressTotalSteps) }, (_, i) => {
@@ -17299,12 +17610,15 @@ class DuetPageHeading {
17299
17610
  */
17300
17611
  render() {
17301
17612
  const layout = this.layout === "narrow" ? "narrow" : this.layout === "fluid" ? "fluid" : "auto";
17302
- return (hAsync("div", { key: 'f353e792c29cf6a49513529f3a54740bf2894dcc', class: {
17613
+ return (hAsync("div", { key: '52d02a4dce3ed0bfe7d0281e536c14b7d2d7af02', class: {
17303
17614
  "duet-page-heading": true,
17304
17615
  "duet-theme-turva": this.theme === "turva",
17305
17616
  "has-icon": !!this.icon,
17306
17617
  [layout]: true,
17307
- } }, hAsync("div", { key: 'b8a5a752d4557b2ac2ac2bfc1c2e65861d4c0521', class: "background" }, this.theme === "turva" && hAsync("div", { key: 'ff9cbab91c325792d84f24d227d67b5bd2f83401', class: "background-mask" }), this.theme !== "turva" && hAsync("div", { key: 'c697b3df64c3300caccb801818e16e0f82be19b4', class: "brand-shape" }), this.theme !== "turva" && hAsync("div", { key: '86bea79fd3c261f4042b7f55129cf5b3e2bbcc20', class: "brand-shape second-shape" }), this.icon && (hAsync("div", { key: 'f95cb3034647398542c7eac251e3a8ee589fde3c', class: "brand-shaped-icon" }, hAsync("duet-icon", { key: '5ea162f55f426e4fb23d062c42b452f9d02dd8db', background: "none", name: this.icon, margin: "none", size: "auto", responsive: false })))), hAsync("div", { key: 'ca049bcfa7903693dcd81e7053f9c8436f5bc972', class: "heading" }, hAsync("slot", { key: '1f11d60c4883d6a083ab58a3549230893373a4b0', name: "heading" }), this.progressCurrentStep !== undefined && this.progressTotalSteps > 0 && (hAsync("div", { key: '3d192a48b6d2f852c76bb4cca92a6bd260c89b6d' }, hAsync("duet-spacer", { key: 'ae3a5aa598bca7741ddeefb498ad03a00f01ffa1', size: "large" }), hAsync("div", { key: '145b65c13423049136df5afff6d6f0b75fceeff2', role: "presentation" }, this.progressIndicator()))))));
17618
+ } }, hAsync("div", { key: '5b8730f3424abb59a4f112a8cf4f820d3ea18f8b', class: "background" }, this.theme === "turva" && hAsync("div", { key: '38b4170db541d4a236704fb6b27740c33919ef83', class: "background-mask" }), this.theme !== "turva" && this.shape !== "none" && hAsync("div", { key: '4b4724634d1e265f5647dcd33721a98867e8bd60', class: "brand-shape" }), this.theme !== "turva" && this.shape !== "none" && hAsync("div", { key: '26f7bc99f46804ee1102ce912f6ca77d339be248', class: "brand-shape second-shape" }), this.icon && (hAsync("div", { key: '4f2aa62fb0c1db1e07c64e15a089091ec2eab04c', class: {
17619
+ "brand-shaped-icon": true,
17620
+ "secondary-background": this.iconBackground === "secondary" && this.theme !== "turva",
17621
+ } }, hAsync("duet-icon", { key: '0b654e7123f11229e0c685e0b81a46697a02b292', background: "none", name: this.icon, margin: "none", size: "auto", responsive: false })))), hAsync("div", { key: 'b6d28fa2f26538252371352175a8a9bba5cc8957', class: { heading: true, "has-back-button": this.hasButtonSlot } }, hAsync("slot", { key: '283f4783659934a188371693ff2f418b256f43c3', name: "heading" }), this.hasButtonSlot && (hAsync("div", { key: 'bf572a5c8cb71cfb3fba0090e4ca0279b0f9e8f2', class: "button-container" }, hAsync("slot", { key: 'a78e5b2921240203bcd7572825e46b8a49c236cf', name: "button" }))), this.progressCurrentStep !== undefined && this.progressTotalSteps > 0 && (hAsync("div", { key: 'e0d6bae844200dbd0cc4264186c178e9cbcc4c3a' }, hAsync("duet-spacer", { key: '5e02b1d6f9d9ae5133ec857b69da04d73159a213', size: "large" }), hAsync("div", { key: '8b14ec6f1cda71d6a69236e9256faa91519da39e', role: "presentation" }, this.progressIndicator()))))));
17308
17622
  }
17309
17623
  get element() { return getElement(this); }
17310
17624
  static get style() { return duetPageHeadingCss; }
@@ -17313,7 +17627,9 @@ class DuetPageHeading {
17313
17627
  "$tagName$": "duet-page-heading",
17314
17628
  "$members$": {
17315
17629
  "theme": [1025],
17630
+ "shape": [1],
17316
17631
  "icon": [1025],
17632
+ "iconBackground": [1, "icon-background"],
17317
17633
  "layout": [1025],
17318
17634
  "progressCurrentStep": [2, "progress-current-step"],
17319
17635
  "progressTotalSteps": [2, "progress-total-steps"]
@@ -17558,14 +17874,13 @@ class DuetPagination {
17558
17874
  calculatePageTake() {
17559
17875
  this.totalPages = Math.ceil(this.total / this.take);
17560
17876
  }
17561
- //set update current when mouse click on page number
17877
+ // Update current when mouse click on arrow buttons
17562
17878
  async onMouseHandler(e, dir) {
17563
17879
  if (this.disabled) {
17564
17880
  return;
17565
17881
  }
17566
17882
  if (!this.processedPageLinks) {
17567
17883
  e.preventDefault();
17568
- e.stopPropagation();
17569
17884
  this.current = this.current + dir;
17570
17885
  }
17571
17886
  this.emitPageEvent(e);
@@ -17710,32 +18025,32 @@ class DuetPagination {
17710
18025
  * Always the last one in the class.
17711
18026
  */
17712
18027
  render() {
17713
- return (hAsync(Host, { key: '07c38979b231dbf5a56713a66a5b185d4c3e2822', onKeyDown: e => this.onKeyboardDown(e), class: { "duet-theme-turva": this.theme === "turva" } }, hAsync("nav", { key: '128744d916789820fba42f8475d2d2ce86ba42c8', role: "navigation", "aria-labelledby": this.accessibleLabelledBy ? `${this.accessibleLabelledBy} ${this.listId}` : this.listId, "aria-describedby": this.accessibleDescribedBy ? `${this.accessibleDescribedBy} ${this.listId}` : this.listId, "aria-descriptions": this.accessibleDescription, "aria-details": this.accessibleDetails, ref: el => (this.nativeNav = el), "aria-controls": this.ariaControls, class: {
18028
+ return (hAsync(Host, { key: '713861c49972efc0620c9d6425aebc4621c60725', onKeyDown: e => this.onKeyboardDown(e), class: { "duet-theme-turva": this.theme === "turva" } }, hAsync("nav", { key: '26f0be5edcc3d2e83961c40a097e804360ec82e4', role: "navigation", "aria-labelledby": this.accessibleLabelledBy ? `${this.accessibleLabelledBy} ${this.listId}` : this.listId, "aria-describedby": this.accessibleDescribedBy ? `${this.accessibleDescribedBy} ${this.listId}` : this.listId, "aria-descriptions": this.accessibleDescription, "aria-details": this.accessibleDetails, ref: el => (this.nativeNav = el), "aria-controls": this.ariaControls, class: {
17714
18029
  "duet-pagination-nav": true,
17715
18030
  [`duet-pagination-variation-${this.variation}`]: true,
17716
- } }, this.numbersStore !== "" && (hAsync("div", { key: '2666aa8028eb8270455a0fa5cfe4db71cc5a2705', "aria-live": "assertive", "aria-relevant": "text", class: "duet-pagination-overlay", "aria-label": `${this.accessibleLabels.jump_to} ${this.numbersStore}`, part: "navigation-overlay" }, hAsync("duet-badge", { key: '5006048f11b634ac53981dd1de48d24786763bce', theme: this.theme }, "jump to page : ", this.numbersStore))), hAsync("ol", { key: '6359ab5b15062ff7533365dbf693745cd8c20363', id: this.listId, class: {
18031
+ } }, this.numbersStore !== "" && (hAsync("div", { key: 'e048dc669a90234e04206d2e919477c456437171', "aria-live": "assertive", "aria-relevant": "text", class: "duet-pagination-overlay", "aria-label": `${this.accessibleLabels.jump_to} ${this.numbersStore}`, part: "navigation-overlay" }, hAsync("duet-badge", { key: '4cc0ec61a9b412f51a71b90b1ff1f371d20b6b77', theme: this.theme }, "jump to page : ", this.numbersStore))), hAsync("ol", { key: 'a21618609f5e18d5febe55d009164ae2b6104cee', id: this.listId, class: {
17717
18032
  "duet-pagination": true,
17718
18033
  "duet-pagination-is-dimmed": this.numbersStore !== "",
17719
- }, role: "menubar", "aria-label": this.accessibleLabels.pagination_label, "aria-description": this.accessibleLabels.description }, (this.variation === "compact" || this.matchesCompactBreakpoint) && (hAsync("li", { key: '9ed757c34264a5d9b98faf0a497a188720a9496e', class: {
18034
+ }, role: "menubar", "aria-label": this.accessibleLabels.pagination_label, "aria-description": this.accessibleLabels.description }, (this.variation === "compact" || this.matchesCompactBreakpoint) && (hAsync("li", { key: 'f398d058c0ebf2bdab7ab945bed0b4548bbbfe83', class: {
17720
18035
  "duet-pagination-page-button": true,
17721
18036
  "duet-pagination-button-first": true,
17722
- }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { key: 'e5a376e51af5edecd2631bb8b3cf02610545692e', disabled: (this.internalSectionIndex === 0 && this.current <= 1) || this.disabled, "data-direction": "back", accessibleLabel: this.accessibleLabels.first_page, title: this.accessibleLabels.first_page, onClick: e => this.jumpToStart(e), "icon-name": "action-move-to-first", theme: this.theme, url: this.processedPageLinks ? this.processedPageLinks[0] : undefined }))), hAsync("li", { key: '168de5258be5f0f7008e100d4683fc02c3064581', class: {
18037
+ }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { key: '045fb3a76f525bf38592dbd063d786d85ef0aef4', disabled: (this.internalSectionIndex === 0 && this.current <= 1) || this.disabled, "data-direction": "back", accessibleLabel: this.accessibleLabels.first_page, title: this.accessibleLabels.first_page, onClick: e => this.jumpToStart(e), "icon-name": "action-move-to-first", theme: this.theme, url: this.processedPageLinks ? this.processedPageLinks[0] : undefined }))), hAsync("li", { key: 'a34ff449e6b0f6bfdf045751e137d7bbf82745b0', class: {
17723
18038
  "duet-pagination-page-button": true,
17724
18039
  "duet-pagination-button-first": true,
17725
- }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { key: 'af5ba5fa8e2b376f0b27f523283447cf28147a7e', disabled: !!((this.internalSectionIndex === 0 && this.current <= 1) ||
18040
+ }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { key: '499f743f212068efe40d91da50a6a5d3a36b1bb8', disabled: !!((this.internalSectionIndex === 0 && this.current <= 1) ||
17726
18041
  (this.current <= 1 && this.processedPageLinks) ||
17727
- this.disabled), "data-direction": "back", onClick: e => this.onMouseHandler(e, -1), "accessible-label": this.accessibleLabels.previous_page, title: this.accessibleLabels.previous_page, "icon-name": "action-arrow-left-small", theme: this.theme, url: this.processedPageLinks ? this.processedPageLinks[this.current - 2] : undefined })), this.internalSectionIndex !== 0 && this.shouldDisplayNavigation() && (hAsync(Fragment, { key: '7bd37d481400c119a456c8b652eb3d692e5fd494' }, hAsync("li", { key: '4992a1986eb573d5202077e46ad00b6421993d1e', class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, hAsync("duet-button", { key: '508172776a6640e80e3ab8194de2e337a884bff6', disabled: this.disabled, class: "duet-pagination-link duet-pagination-link-jump-back", "center-text": "true", variation: "plain", color: this.theme !== "turva" ? "secondary" : "secondary-turva", margin: "none", accessibleLabel: this.accessibleLabels.first_page, onClick: e => this.jumpToStart(e), theme: this.theme, url: this.processedPageLinks ? this.processedPageLinks[0] : undefined }, hAsync("div", { key: '200db789756b44c9a2f5772d1dd47fb643941a8c', class: "duet-pagination-page-number" }, "1"))), hAsync("li", { key: '671815628d37eb09a768187f86e5626bb83ff4e9', class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, hAsync("duet-button", { key: '10734ac5cb625203ea5bf3aa016b66eb8cc5107d', disabled: this.disabled, class: "duet-pagination-link duet-pagination-link-dots-back", "center-text": "true", color: this.theme !== "turva" ? "secondary" : "secondary-turva", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.prev_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, -1), theme: this.theme }, hAsync("div", { key: '7b995d636201ffbbb4e32c6867304d26cd9deb37', class: "duet-pagination-page-number", "aria-hidden": "true" }, "\u2026"))))), (this.shouldDisplayNavigation() && this.renderPageNumbers()) || this.renderSelect(), (this.internalSectionIndex + 1) * this.visibleItems < this.totalPages &&
17728
- this.shouldDisplayNavigation() && (hAsync(Fragment, { key: '7c4c1587b80070022309e8f809e1a5f1cda1c754' }, (this.internalSectionIndex + 1) * this.visibleItems !== this.totalPages - 1 && (hAsync("li", { key: '7ed7e399d452f10d7950e4900ee99cb122f5f71c', class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, hAsync("duet-button", { key: '034dd1e1d88c51a2fd376dc412ad5c5d181bc24a', disabled: this.disabled, class: "duet-pagination-link duet-pagination-link-dots-forward", "center-text": "true", color: this.theme !== "turva" ? "secondary" : "secondary-turva", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.next_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, 1), theme: this.theme }, hAsync("div", { key: '810bcd10da373edf7e7be89da5fcb36686a1e888', class: "duet-pagination-page-number", "aria-hidden": "true" }, "\u2026")))), hAsync("li", { key: '5e03de6360345650ce6d286ecc553351620028d5', class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, hAsync("duet-button", { key: '3822ccc78f50fd0e6c0eb149a059fb6375c2dd9f', disabled: this.disabled, class: "duet-pagination-link duet-pagination-link-jump-forward", "center-text": "true", color: this.theme !== "turva" ? "secondary" : "secondary-turva", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.last_page, onClick: e => this.jumpToEnd(e), theme: this.theme, url: this.processedPageLinks
18042
+ this.disabled), "data-direction": "back", onClick: e => this.onMouseHandler(e, -1), "accessible-label": this.accessibleLabels.previous_page, title: this.accessibleLabels.previous_page, "icon-name": "action-arrow-left-small", theme: this.theme, url: this.processedPageLinks ? this.processedPageLinks[this.current - 2] : undefined })), this.internalSectionIndex !== 0 && this.shouldDisplayNavigation() && (hAsync(Fragment, { key: '855d343b101d8a4cb531e5534121c32fcebb6537' }, hAsync("li", { key: '87e9bf3c0e7709986f8425c68dcf453e37ecea53', class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, hAsync("duet-button", { key: 'ff073c3fb7001b83e9bd8254b5f0058350681aab', disabled: this.disabled, class: "duet-pagination-link duet-pagination-link-jump-back", "center-text": "true", variation: "plain", color: this.theme !== "turva" ? "secondary" : "secondary-turva", margin: "none", accessibleLabel: this.accessibleLabels.first_page, onClick: e => this.jumpToStart(e), theme: this.theme, url: this.processedPageLinks ? this.processedPageLinks[0] : undefined }, hAsync("div", { key: '2534ef73dffd5a2894f64e37b9b93ef921eeae9b', class: "duet-pagination-page-number" }, "1"))), hAsync("li", { key: '41366d11be98973382389f639c4361fa88b3ee03', class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, hAsync("duet-button", { key: '85acf7a3650a337686849a07b94e3c5ebe3985fc', disabled: this.disabled, class: "duet-pagination-link duet-pagination-link-dots-back", "center-text": "true", color: this.theme !== "turva" ? "secondary" : "secondary-turva", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.prev_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, -1), theme: this.theme }, hAsync("div", { key: '0cb3f15c9fbf047ebd3f42a9ea312e2b7eb7cda5', class: "duet-pagination-page-number", "aria-hidden": "true" }, "\u2026"))))), (this.shouldDisplayNavigation() && this.renderPageNumbers()) || this.renderSelect(), (this.internalSectionIndex + 1) * this.visibleItems < this.totalPages &&
18043
+ this.shouldDisplayNavigation() && (hAsync(Fragment, { key: 'c330810aeb916a70838b5902a945179516c08c2a' }, (this.internalSectionIndex + 1) * this.visibleItems !== this.totalPages - 1 && (hAsync("li", { key: 'e7827136e1d02443b965071e73e678f3db1d5045', class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, hAsync("duet-button", { key: 'ddf79df091880166ff5717d7ad56068afba21e8b', disabled: this.disabled, class: "duet-pagination-link duet-pagination-link-dots-forward", "center-text": "true", color: this.theme !== "turva" ? "secondary" : "secondary-turva", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.next_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, 1), theme: this.theme }, hAsync("div", { key: 'eab0f9616b5a0a283d2cfdfa12de2c0a8e7b4c6a', class: "duet-pagination-page-number", "aria-hidden": "true" }, "\u2026")))), hAsync("li", { key: 'b90fc9f829527d1d0cede68970d1bdbeeb00097c', class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, hAsync("duet-button", { key: 'b842abee7b341e75edbb9242f32febb0fd9027d0', disabled: this.disabled, class: "duet-pagination-link duet-pagination-link-jump-forward", "center-text": "true", color: this.theme !== "turva" ? "secondary" : "secondary-turva", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.last_page, onClick: e => this.jumpToEnd(e), theme: this.theme, url: this.processedPageLinks
17729
18044
  ? this.processedPageLinks[this.processedPageLinks.length - 1]
17730
- : undefined }, hAsync("div", { key: '0ad55ddc86b6b0edec485316998e67153924e760', class: "duet-pagination-page-number" }, this.totalPages))))), hAsync("li", { key: 'fc2a275cd29e3c10162ada93effec7d8b85c4dfc', class: {
18045
+ : undefined }, hAsync("div", { key: '7a39f4ad0995c18ebd0ffbd95b507272b17b5fe9', class: "duet-pagination-page-number" }, this.totalPages))))), hAsync("li", { key: 'ad540cc00840f8452ef0bb93ee6aaa7bdc7b9a9a', class: {
17731
18046
  "duet-pagination-page-button": true,
17732
18047
  "duet-pagination-button-last": true,
17733
- }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { key: '3ff469847711467ad2604371688183007dca39de', disabled: !!((this.current === this.totalPages &&
18048
+ }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { key: 'e4fc05e7c0163974b0929387122200f56b352d7f', disabled: !!((this.current === this.totalPages &&
17734
18049
  this.internalSectionIndex === Math.ceil(this.totalPages / this.visibleItems) - 1) ||
17735
- (this.current === this.totalPages && this.processedPageLinks)) || this.disabled, class: "duet-date-dialog-next", "accessible-label": this.accessibleLabels.next_page, title: this.accessibleLabels.next_page, onClick: e => this.onMouseHandler(e, 1), "icon-name": "action-move-to-next", theme: this.theme, url: this.processedPageLinks ? this.processedPageLinks[this.current] : undefined })), (this.variation === "compact" || this.matchesCompactBreakpoint) && (hAsync("li", { key: '561178af1382559d15b047297d2ce3a1fb757587', class: {
18050
+ (this.current === this.totalPages && this.processedPageLinks)) || this.disabled, class: "duet-date-dialog-next", "accessible-label": this.accessibleLabels.next_page, title: this.accessibleLabels.next_page, onClick: e => this.onMouseHandler(e, 1), "icon-name": "action-move-to-next", theme: this.theme, url: this.processedPageLinks ? this.processedPageLinks[this.current] : undefined })), (this.variation === "compact" || this.matchesCompactBreakpoint) && (hAsync("li", { key: '0f09b068770c1bf14c76d0d2c36e2138fdb3e5af', class: {
17736
18051
  "duet-pagination-page-button": true,
17737
18052
  "duet-pagination-button-last": true,
17738
- }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { key: 'e5a2489a00c27cceb92224b60fa17e301fb2607e', disabled: (this.current === this.totalPages &&
18053
+ }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { key: 'e53ee2acdfdf60f158d51607df8ee61f9af16b25', disabled: (this.current === this.totalPages &&
17739
18054
  this.internalSectionIndex === Math.ceil(this.totalPages / this.visibleItems) - 1) ||
17740
18055
  this.disabled, accessibleLabel: this.accessibleLabels.last_page, title: this.accessibleLabels.last_page, onClick: e => this.jumpToEnd(e), "icon-name": "action-move-to-last", theme: this.theme, url: this.processedPageLinks ? this.processedPageLinks[this.totalPages - 1] : undefined })))))));
17741
18056
  }
@@ -17808,14 +18123,14 @@ class DuetPanel {
17808
18123
  inheritGlobalTheme(this);
17809
18124
  }
17810
18125
  render() {
17811
- return (hAsync(Host, { key: '1de47ce04e9998565d49fc6786654bad4ab27b07', class: { "duet-m-0": this.margin === "none" } }, hAsync("section", { key: 'fbd6b8aa69e37ad67a48b52c65097a1a18ca6c6b', "aria-label": this.accessibleLabel, "aria-labelledby": this.accessibleLabelledBy, "aria-describedby": this.accessibleDescribedBy, class: {
18126
+ return (hAsync(Host, { key: 'c2b446e4eff02ce722d5fc470d9aedcb453e2dd2', class: { "duet-m-0": this.margin === "none" } }, hAsync("section", { key: '1039cfb9fa6e615149ca632ffd85da61d9b00f91', "aria-label": this.accessibleLabel, "aria-labelledby": this.accessibleLabelledBy, "aria-describedby": this.accessibleDescribedBy, class: {
17812
18127
  "duet-panel": true,
17813
18128
  "duet-theme-turva": this.theme === "turva",
17814
18129
  [this.variation.split("-")[0]]: true,
17815
18130
  [this.variation.split("-")[1]]: true,
17816
18131
  [`padding-${this.padding}`]: true,
17817
18132
  border: this.border,
17818
- } }, hAsync("slot", { key: '8309057522fb581d231a752add39db842a9b655b' }))));
18133
+ } }, hAsync("slot", { key: 'c923ad024bfad0670229a5da4ba140f5747549e4' }))));
17819
18134
  }
17820
18135
  get element() { return getElement(this); }
17821
18136
  static get style() { return duetPanelCss; }
@@ -17888,7 +18203,7 @@ class DuetParagraph {
17888
18203
  const color = getColorByName(this.color);
17889
18204
  // aria-describedby is to fix accessibility issue in Chrome where duet-paragraphs
17890
18205
  // are not announced when placed inside duet-modal
17891
- return (hAsync(Host, { key: '4cb0ecf0407180c626d975cfa824d88f54e551d6', "aria-describedby": this.id }, hAsync("p", { key: '2177cf79dc10fdb930b6f4b84af7c49dead27ae3', id: this.id, class: {
18206
+ return (hAsync(Host, { key: 'e1478a81d9627fcff4c00c71d03fc9fe91642bbc', "aria-describedby": this.id }, hAsync("p", { key: '78658b077c0692618bb7d6855bbd6605abd7b13f', id: this.id, class: {
17892
18207
  "duet-paragraph": true,
17893
18208
  "duet-paragraph-small": this.size === "small",
17894
18209
  "duet-paragraph-semi-bold": this.weight === "semi-bold",
@@ -17897,7 +18212,7 @@ class DuetParagraph {
17897
18212
  [this.variation]: true,
17898
18213
  "duet-theme-turva": this.theme === "turva",
17899
18214
  "duet-inherit-color": !this.color && this.inheritingParents.some(p => this.element.closest(p)),
17900
- }, style: { color }, part: "duet-paragraph" }, hAsync("slot", { key: '85e03942b92c85d0ed0dd2d33baefc5995188562' }))));
18215
+ }, style: { color }, part: "duet-paragraph" }, hAsync("slot", { key: '83e026a3225a92a554c68da2eff4c7eb5eab36d5' }))));
17901
18216
  }
17902
18217
  get element() { return getElement(this); }
17903
18218
  static get style() { return duetParagraphCss; }
@@ -19694,6 +20009,11 @@ class DuetPhoneInput {
19694
20009
  fi: "Valitse maatunnus",
19695
20010
  sv: "Välj landskod",
19696
20011
  };
20012
+ this.buttonAriaLabelSelected = {
20013
+ en: "Now selected",
20014
+ fi: "Nyt valittu",
20015
+ sv: "Nu vald",
20016
+ };
19697
20017
  this.language = getLanguage();
19698
20018
  /**
19699
20019
  * Theme of the input.
@@ -19749,6 +20069,11 @@ class DuetPhoneInput {
19749
20069
  * Visually hide the label, but still show it to screen readers.
19750
20070
  */
19751
20071
  this.labelHidden = false;
20072
+ /**
20073
+ * Set the type of automatic completion by the browser. Must include "tel", may also include token "home", "work" or
20074
+ * "mobile". If you must disable automatic completion (not recommended) use "off"
20075
+ */
20076
+ this.autoComplete = "tel";
19752
20077
  /**
19753
20078
  * Display the input in error state along with an error message.
19754
20079
  */
@@ -19961,6 +20286,13 @@ class DuetPhoneInput {
19961
20286
  }
19962
20287
  return this.renderFlag(this.currentCountry.isoCode, true);
19963
20288
  }
20289
+ getAccessibleLabelForButton() {
20290
+ const select = this.buttonAriaLabel[this.language];
20291
+ const selected = this.currentCountry
20292
+ ? ` ${this.buttonAriaLabelSelected[this.language]}, ${this.currentCountry[this.language]}.`
20293
+ : "";
20294
+ return `${select}.${selected}`;
20295
+ }
19964
20296
  render() {
19965
20297
  {
19966
20298
  return;
@@ -19988,6 +20320,7 @@ class DuetPhoneInput {
19988
20320
  "labelHidden": [4, "label-hidden"],
19989
20321
  "caption": [1],
19990
20322
  "name": [1],
20323
+ "autoComplete": [1, "auto-complete"],
19991
20324
  "error": [513],
19992
20325
  "tooltip": [1],
19993
20326
  "maxlength": [2],
@@ -21895,11 +22228,11 @@ class DuetPopupMenuItem {
21895
22228
  };
21896
22229
  // Without the role ternary Safari/iPhone wouldn't announce the label for role menuitem.
21897
22230
  // This is a tradeoff and now Safari announces these items as buttons and links with the label.
21898
- return (hAsync(Host, { key: '8e31b4732e423f363115f217c220217f85a3899a', role: this.accessibleRole === "menuitem" && this.isSafariBrowser ? null : this.accessibleRole }, hAsync(TagName, { key: '5abea3ae0f24951e2f99d2a905e08def59b7d23c', ref: element => (this.itemElement = element), tabIndex: this.accessibleRole === "listitem" ? 0 : -1, onFocus: this.onFocus, onBlur: this.onBlur, role: `${TagName === "a" ? "link" : "button"}`, "aria-label": this.accessibleLabel, class: classes, value: this.value, href: this.url, target: this.external ? "_blank" : undefined, rel: this.external ? "noopener" : undefined, lang: TagName === "button" ? undefined : this.targetLanguage, hreflang: TagName === "button" ? undefined : this.targetLanguage, "aria-current": this.active ? "true" : undefined }, this.leadingIcon && (hAsync("duet-icon", { key: '540354237f8e224355ddb092458c9cfb7e312afe', name: this.leadingIcon, size: "x-small", color: this.leadingIconColor ? this.leadingIconColor : "currentColor", class: "duet-popup-menu-item-leading", margin: "none" })), hAsync("span", { key: 'b8304eae0ef5162910e1875f50737ee9a1a9b22a', class: "duet-popup-menu-item-label" }, hAsync("slot", { key: '68a5948beee5b74d8c2b537e221f4d338398ad08' })), (this.trailingIcon || this.active || (this.url && this.external)) && (hAsync("duet-icon", { key: '0054c8c0f16b760bd4044f2b29911b5dbacc2c70', name: this.url && this.external
22231
+ return (hAsync(Host, { key: 'dc904d95dbb1b0274fcdadcea67ce47aba4d7fe5', role: this.accessibleRole === "menuitem" && this.isSafariBrowser ? null : this.accessibleRole }, hAsync(TagName, { key: 'ee50bbb09eba600e81b860df3102e0a2cd6288f2', ref: element => (this.itemElement = element), tabIndex: this.accessibleRole === "listitem" ? 0 : -1, onFocus: this.onFocus, onBlur: this.onBlur, role: `${TagName === "a" ? "link" : "button"}`, "aria-label": this.accessibleLabel, class: classes, value: this.value, href: this.url, target: this.external ? "_blank" : undefined, rel: this.external ? "noopener" : undefined, lang: TagName === "button" ? undefined : this.targetLanguage, hreflang: TagName === "button" ? undefined : this.targetLanguage, "aria-current": this.active ? "true" : undefined }, this.leadingIcon && (hAsync("duet-icon", { key: '2393da90d783cc2cde59d87a05035d3539009c94', name: this.leadingIcon, size: "x-small", color: this.leadingIconColor ? this.leadingIconColor : "currentColor", class: "duet-popup-menu-item-leading", margin: "none" })), hAsync("span", { key: '3b89e70152736a394a1d783146d7fcf7042af27c', class: "duet-popup-menu-item-label" }, hAsync("slot", { key: '7e2c5bff4d032a76c871b346477c1380d41ac23e' })), (this.trailingIcon || this.active || (this.url && this.external)) && (hAsync("duet-icon", { key: '1307e84b95a9f3f731701377a93275e00b17682e', name: this.url && this.external
21899
22232
  ? newWindowIcon.title
21900
22233
  : this.active
21901
22234
  ? "messaging-checked-small"
21902
- : this.trailingIcon, size: (this.url && this.external) || this.active ? "xx-small" : "x-small", color: "currentColor", class: "duet-popup-menu-item-trailing", margin: "none" })), this.trailingText && hAsync("span", { key: 'b1f655997c830f6d87c4091244628bec97fc0886', class: "duet-popup-menu-item-trailing" }, this.trailingText))));
22235
+ : this.trailingIcon, size: (this.url && this.external) || this.active ? "xx-small" : "x-small", color: "currentColor", class: "duet-popup-menu-item-trailing", margin: "none" })), this.trailingText && hAsync("span", { key: 'ccdd5e50e27621e4c9bddc18ddfb4fa32c5df087', class: "duet-popup-menu-item-trailing" }, this.trailingText))));
21903
22236
  }
21904
22237
  get element() { return getElement(this); }
21905
22238
  static get style() { return duetPopupMenuItemCss; }
@@ -22023,7 +22356,7 @@ class DuetProgress {
22023
22356
  }; }
22024
22357
  }
22025
22358
 
22026
- const duetPromoCardCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-right:4px !important;margin-bottom:2px !important;display:block;width:auto}:host:last-child,:host:last-of-type{margin-right:0 !important}[alignment=form-distribute]>:host:last-of-type:not(:last-child){margin-right:4px !important}:host(.duet-m-0){margin:0 !important}.duet-promo-card{display:flex;flex-direction:column;width:100%;height: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-style:normal;color:rgb(8, 42, 77);text-align:left;border-radius:20px}.duet-promo-card.duet-p-0{padding:0 !important}.duet-promo-card.duet-m-0{margin:0 !important}.duet-promo-card .content-wrapper{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none;border-radius:20px}.duet-promo-card .content-wrapper:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva .duet-promo-card .content-wrapper:focus,.duet-promo-card .content-wrapper:focus.duet-theme-turva{outline:2px solid;outline-offset:2px;outline-color:rgba(53, 79, 101, 0.8)}.duet-promo-card .image{position:relative;width:100%;overflow:hidden;object-fit:cover;border-top-left-radius:20px;border-top-right-radius:20px}.duet-promo-card .content{display:flex;flex-grow:1;flex-direction:column;gap:8px;padding:20px}@media (min-width: 36em){.duet-promo-card .content{padding:28px}}.duet-promo-card .action{display:flex;flex-grow:1;align-items:flex-end;padding-top:16px}.duet-promo-card.no-bg-color .content{padding:20px 0 0}.duet-promo-card.no-bg-color .image{border-radius:16px}.duet-promo-card-link{transition:box-shadow 300ms ease}.duet-promo-card-link:hover{box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(0, 41, 77, 0.1)}::slotted(.duet-heading){margin:inherit !important;font-size:inherit !important;line-height:inherit !important;color:inherit !important}.duet-theme-turva.duet-promo-card{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-theme-turva.duet-promo-card-link:hover{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(117, 117, 117, 0.15)}";
22359
+ const duetPromoCardCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-right:4px !important;margin-bottom:2px !important;display:block;width:auto}:host:last-child,:host:last-of-type{margin-right:0 !important}[alignment=form-distribute]>:host:last-of-type:not(:last-child){margin-right:4px !important}:host(.duet-m-0){margin:0 !important}.duet-promo-card{display:flex;flex-direction:column;width:100%;height: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-style:normal;color:rgb(8, 42, 77);text-align:left;border-radius:20px}.duet-promo-card.duet-p-0{padding:0 !important}.duet-promo-card.duet-m-0{margin:0 !important}.duet-promo-card .content-wrapper{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none;border-radius:20px}.duet-promo-card .content-wrapper:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva .duet-promo-card .content-wrapper:focus,.duet-promo-card .content-wrapper:focus.duet-theme-turva{outline:2px solid;outline-offset:2px;outline-color:rgba(53, 79, 101, 0.8)}.duet-promo-card picture{display:block;width:100%}.duet-promo-card .image{position:relative;width:100%;overflow:hidden;object-fit:cover;border-top-left-radius:20px;border-top-right-radius:20px}.duet-promo-card .content{display:flex;flex-grow:1;flex-direction:column;gap:8px;padding:20px}@media (min-width: 36em){.duet-promo-card .content{padding:28px}}.duet-promo-card .action{display:flex;flex-grow:1;align-items:flex-end;padding-top:16px}.duet-promo-card.no-bg-color .content{padding:20px 0 0}.duet-promo-card.no-bg-color .image{border-radius:16px}.duet-promo-card-link{transition:box-shadow 300ms ease}.duet-promo-card-link:hover{box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(0, 41, 77, 0.1)}::slotted(.duet-heading){margin:inherit !important;font-size:inherit !important;line-height:inherit !important;color:inherit !important}.duet-theme-turva.duet-promo-card{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-theme-turva.duet-promo-card-link:hover{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(117, 117, 117, 0.15)}";
22027
22360
 
22028
22361
  /**
22029
22362
  * @slot pre-heading - Slot for pre-heading content.
@@ -22095,12 +22428,22 @@ class DuetPromoCard {
22095
22428
  backgroundColor: backgroundColor ? backgroundColor : "none",
22096
22429
  };
22097
22430
  const TagName = this.url ? "a" : "div";
22098
- return (hAsync(Host, { key: '95b3ed27ee63d653dd40150704011e9e4ff62977', class: { "duet-m-0": this.margin === "none" } }, hAsync("aside", { key: '0cc3047f13bf8ff3d13c1a4547225ef9075ee72c', class: {
22431
+ const pictureSource = {
22432
+ img: {
22433
+ src: this.image,
22434
+ alt: this.imageAlt || "",
22435
+ loading: "lazy",
22436
+ class: "image",
22437
+ role: this.imageAlt ? undefined : "presentation",
22438
+ },
22439
+ sources: parsePossibleJSON(this.sources),
22440
+ };
22441
+ return (hAsync(Host, { key: '17e585c7caea2ce49b25ea82914c047ff6c82a9a', class: { "duet-m-0": this.margin === "none" } }, hAsync("aside", { key: 'd71249878100984ee82f889d89c9457c730f7662', class: {
22099
22442
  "duet-promo-card": true,
22100
22443
  "duet-theme-turva": this.theme === "turva",
22101
22444
  "no-bg-color": !this.backgroundColor,
22102
22445
  "duet-promo-card-link": !!this.url,
22103
- }, style: bannerStyles }, hAsync(TagName, { key: '88f499f9cfbc42cc77ae3650e25d6a67e249c667', href: this.url, class: { "content-wrapper": true, "duet-theme-turva": this.theme === "turva" }, ref: element => (this.aOrDivElement = element) }, hAsync("img", { key: '3f56c0e11f43fd35a576c2612a01ef57362eb9ce', class: "image", src: this.image, alt: this.imageAlt || "", role: this.imageAlt ? null : "presentation" }), hAsync("div", { key: '67cc5128842bfd7a97e55ab7a39607f15565aa48', class: "content" }, this.hasPreHeadingSlot && (hAsync("div", { key: '6416da999d6c95dbc60c7f4210f00ff7771068a9', class: "pre-heading" }, hAsync("slot", { key: 'f14c79e605bc369bcd622813975bd2e567232e8a', name: "pre-heading" }))), this.hasHeadingSlot && (hAsync("div", { key: '21fc61923698870704efbc02ceb85cb41634fe76', class: "heading" }, hAsync("duet-heading", { key: '4adef65c01b3b1162949e5dddb6c2e722f04376f', theme: this.theme, level: this.hasHeadingSlotNative ? "div" : this.headingLevel, "visual-level": "h3", margin: "none", color: postfixTheme(this.textColor, this.theme) }, hAsync("span", { key: 'b5e3eeb6192b2c4dab608c7b3cb1a7ec271292bb' }, hAsync("slot", { key: '717362196c9449e8eb0cad836a5d1eed094ec621', name: "heading" }))))), this.hasDescriptionSlot && (hAsync("div", { key: '117900bbf76af5ae95917819fb7d2f99d2704f53', class: "description" }, hAsync("duet-paragraph", { key: 'f7ef0a08c527b79980a900706fff2d4d61a28652', theme: this.theme, margin: "none", color: postfixTheme(this.textColor, this.theme) }, hAsync("span", { key: '799ccc75db2f0e75833f50d77f0e1c89ccd8301f' }, hAsync("slot", { key: 'aa8385bab94fd5d120daa6d2040d0b683aaecaa7', name: "description" }))))), this.hasActionSlot && (hAsync("div", { key: '8ec8ce8f1b6b54b29d0b5282cc6fdad63b987125', class: "action" }, hAsync("slot", { key: '63f29b5905fbfebea7e2aa139c2c81b5177d5e4a', name: "action" }))))))));
22446
+ }, style: bannerStyles }, hAsync(TagName, { key: 'c4edfe1d3f7a37846ce57b02390f6c506c2c141b', href: this.url, class: { "content-wrapper": true, "duet-theme-turva": this.theme === "turva" }, ref: element => (this.aOrDivElement = element) }, hAsync(DuetPicture, Object.assign({ key: '4db132f911aa01f941743b55bb6efb8275219bb8' }, pictureSource)), hAsync("div", { key: 'cac0e424e892d37419eac7e2af2b0bd7308b0c39', class: "content" }, this.hasPreHeadingSlot && (hAsync("div", { key: '36a74542f6621186fead0089783ac32a418b3125', class: "pre-heading" }, hAsync("slot", { key: 'd8ecaaa3fe7d32b1d751acd669b6869a2168231f', name: "pre-heading" }))), this.hasHeadingSlot && (hAsync("div", { key: 'ae586b7d14276add01c99296d8fc96844eed3ee2', class: "heading" }, hAsync("duet-heading", { key: '7079249d8751808397889bc332aac7e4bf0beb00', theme: this.theme, level: this.hasHeadingSlotNative ? "div" : this.headingLevel, "visual-level": "h3", margin: "none", color: postfixTheme(this.textColor, this.theme) }, hAsync("span", { key: 'e4211262efe0fc117017355c175487a24dc52485' }, hAsync("slot", { key: 'b0f6196e3cec65f855231d232684e7507f71a972', name: "heading" }))))), this.hasDescriptionSlot && (hAsync("div", { key: 'c3275a5080abb7488022cdb97da68110872fc80e', class: "description" }, hAsync("duet-paragraph", { key: '0232414d087686f41f37fe95cbecda5217250ac0', theme: this.theme, margin: "none", color: postfixTheme(this.textColor, this.theme) }, hAsync("span", { key: '04d9e5329afdbaaec69f7848017ae5489aa671c1' }, hAsync("slot", { key: 'da7bfca8139e63ee663bb426ca6ebdad8fed35cd', name: "description" }))))), this.hasActionSlot && (hAsync("div", { key: '054ddda2d414a26348e684738ebad3042ea292b3', class: "action" }, hAsync("slot", { key: '348682adce3b3f16de045034dccf4daf48edc6ca', name: "action" }))))))));
22104
22447
  }
22105
22448
  get element() { return getElement(this); }
22106
22449
  static get style() { return duetPromoCardCss; }
@@ -22114,6 +22457,7 @@ class DuetPromoCard {
22114
22457
  "textColor": [1, "text-color"],
22115
22458
  "image": [1],
22116
22459
  "imageAlt": [1, "image-alt"],
22460
+ "sources": [1],
22117
22461
  "headingLevel": [1, "heading-level"],
22118
22462
  "url": [1],
22119
22463
  "setFocus": [64]
@@ -22249,9 +22593,6 @@ class DuetRadio {
22249
22593
  /**
22250
22594
  * Component event handling.
22251
22595
  */
22252
- this.onClick = (ev) => {
22253
- ev.stopPropagation();
22254
- };
22255
22596
  this.onChange = (ev) => {
22256
22597
  const input = this.focusableElement;
22257
22598
  const inputChecked = input.checked;
@@ -22309,17 +22650,17 @@ class DuetRadio {
22309
22650
  * Always the last one in the class.
22310
22651
  */
22311
22652
  render() {
22312
- return (hAsync(Host, { key: 'd82b22980816dea2feea2a7180679323b9ced79f', onClick: this.onClick, class: {
22653
+ return (hAsync(Host, { key: '7042b59543dd4cf7627ca41b07a3fee3598c684d', class: {
22313
22654
  vertical: this.groupDirection === "vertical",
22314
22655
  horizontal: this.groupDirection === "horizontal" && !this.groupResponsive,
22315
22656
  "horizontal-responsive": this.groupDirection === "horizontal" && this.groupResponsive,
22316
22657
  "duet-m-0": this.margin === "none",
22317
- } }, hAsync("div", { key: 'bc0933ec6d7215b63dc4db48bb84713cf97228e6', class: { "duet-radio-container": true, "duet-theme-turva": this.theme === "turva" } }, hAsync("slot", { key: '2ccc75feb0fca857df7ab5e0737f9fd8c8321c53', name: "input" }), hAsync("label", { key: '06df8ce9f007519b9254000a75aa3426fc8a9ce7', inert: true, ref: element => (this.labelElement = element), class: {
22658
+ } }, hAsync("div", { key: '39a07c45edaba71d4380c430c48a9f8f2d5e6786', class: { "duet-radio-container": true, "duet-theme-turva": this.theme === "turva" } }, hAsync("slot", { key: '5c3161f12b2def6f54245a063751ba5608fa13fd', name: "input" }), hAsync("label", { key: 'a98ef594efee0f9ef478eb4163c4757dec88b3b4', inert: true, ref: element => (this.labelElement = element), class: {
22318
22659
  "duet-label": true,
22319
22660
  checked: this.checked,
22320
22661
  focus: this.focus,
22321
22662
  disabled: this.disabled || this.groupDisabled,
22322
- } }, hAsync("div", { key: 'ce04270105b4ffd62375ee7048c9cb6d33eaeea9', class: "duet-label-content" }, this.hasLabel ? hAsync("slot", { name: "label" }) : this.label)))));
22663
+ } }, hAsync("div", { key: 'a1293298a68f71ccf0b6bba309bae33ff66932a9', class: "duet-label-content" }, this.hasLabel ? hAsync("slot", { name: "label" }) : this.label)))));
22323
22664
  }
22324
22665
  get element() { return getElement(this); }
22325
22666
  static get style() { return duetRadioCss; }
@@ -22514,7 +22855,7 @@ class DuetRadioGroup {
22514
22855
  * Always the last one in the class.
22515
22856
  */
22516
22857
  render() {
22517
- return (hAsync(Host, { key: 'c9c42e3d578a64ec328ad0b1aad6e9c3906dcc2b', onDuetChange: this.onSelect, class: { horizontal: this.direction === "horizontal" } }, hAsync("duet-fieldset", { key: '6a38b0a95734aea6320ec9bb63cebc7a11279990', label: this.label, labelHidden: this.labelHidden, caption: this.caption, error: this.error, margin: this.margin, theme: this.theme, "accessible-live-error": this.accessibleLiveError }, this.tooltip && (hAsync("duet-tooltip", { key: '3f9d7aa7e79c08a743cd575d5a22542e3f89b26f', slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), hAsync("slot", { key: 'c622de073e75fef4f9bc9d543a2eeb88089192c2', name: "tooltip", slot: "tooltip" }), hAsync("div", { key: 'c8e0fd9234a1960232caf29eeb2066ce93b7702d', class: { "duet-radio-group": true, "duet-no-stacking": !this.responsive } }, hAsync("slot", { key: '095560662ef8689b900364cf1786ec60136b5406' })))));
22858
+ return (hAsync(Host, { key: '02e9f8d2279ba0a17975acd1fbe2a47de0b0ab70', onDuetChange: this.onSelect, class: { horizontal: this.direction === "horizontal" } }, hAsync("duet-fieldset", { key: '47e6bc188d4c4e575d75d36367da122316d96bc0', label: this.label, labelHidden: this.labelHidden, caption: this.caption, error: this.error, margin: this.margin, theme: this.theme, "accessible-live-error": this.accessibleLiveError }, this.tooltip && (hAsync("duet-tooltip", { key: '18d3f763a86f215663b520717b293bf2310a8f6f', slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), hAsync("slot", { key: '0c7ba1f9d7b007e9a7b410270305bfe7c8bb0a11', name: "tooltip", slot: "tooltip" }), hAsync("div", { key: 'a10eb9b3e81d3d8bffb7105380f718da84c61f4b', class: { "duet-radio-group": true, "duet-no-stacking": !this.responsive } }, hAsync("slot", { key: '9010cb8e811a5ee69fb6e03c9d1b44fa92f9c60c' })))));
22518
22859
  }
22519
22860
  get element() { return getElement(this); }
22520
22861
  static get watchers() { return {
@@ -22702,13 +23043,13 @@ class DuetRangeSlider {
22702
23043
  const rangeStyles = {
22703
23044
  background: `-webkit-linear-gradient(left,${active} 0%,${active} ${percentage}%,${inactive} ${percentage}%)`,
22704
23045
  };
22705
- return (hAsync(Host, { key: '8ae2f8b801002f2d7f36a1f6f2c5d9de5e52d480', class: { "duet-m-0": this.margin === "none", "duet-expand": this.expand } }, hAsync("div", { key: '3faa6f6b699d012b9d6ff43f0f5255dee1842fe8', class: {
23046
+ return (hAsync(Host, { key: 'e210a09d9e24ecda74f73465103e52fd0ef3e151', class: { "duet-m-0": this.margin === "none", "duet-expand": this.expand } }, hAsync("div", { key: 'c06f45aec60dddfd2bc63c0c37e985fb4892262c', class: {
22706
23047
  "duet-range-container": true,
22707
23048
  "duet-label-hidden": this.labelHidden,
22708
23049
  "duet-theme-turva": this.theme === "turva",
22709
23050
  "duet-ie": isInternetExplorer(),
22710
23051
  "duet-range-disabled": this.disabled,
22711
- } }, hAsync(DuetInternalLabel, { key: '330e765a6f42437f0ec80c8fd12f02aa9c8f564d', theme: theme, color: this.labelColor, weight: this.labelWeight, margin: "small", for: identifier }, this.label), hAsync("output", { key: '91a85bd1d5816c694a32882bbe3bce178afe76ba', "aria-hidden": "true", htmlFor: identifier, class: "duet-output" }, this.value.toLocaleString(this.locale), this.unit), hAsync("input", { key: '9ccf4115591954ca7123216d7fda90ca24a3a06d', onInput: this.onInput, onChange: this.onChange, ref: input => (this.nativeInput = input), type: "range", min: this.min, max: this.max, step: this.step, value: this.value, style: rangeStyles, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": this.value, "aria-valuetext": `${this.value} ${this.unit}`, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, id: identifier, name: this.name, disabled: this.disabled, required: this.required, class: "duet-range" }))));
23052
+ } }, hAsync(DuetInternalLabel, { key: '3c28b5f14ecf125f07146f93500cfc765e895583', theme: theme, color: this.labelColor, weight: this.labelWeight, margin: "small", for: identifier }, this.label), hAsync("output", { key: 'a87614cb264ff78db2d931ae109f6c982c057c9d', "aria-hidden": "true", htmlFor: identifier, class: "duet-output" }, this.value.toLocaleString(this.locale), this.unit), hAsync("input", { key: 'efeb770492d9fb26cf60c72b9a5dda6de43dc583', onInput: this.onInput, onChange: this.onChange, ref: input => (this.nativeInput = input), type: "range", min: this.min, max: this.max, step: this.step, value: this.value, style: rangeStyles, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": this.value, "aria-valuetext": `${this.value} ${this.unit}`, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, id: identifier, name: this.name, disabled: this.disabled, required: this.required, class: "duet-range" }))));
22712
23053
  }
22713
23054
  get element() { return getElement(this); }
22714
23055
  static get style() { return duetRangeSliderCss; }
@@ -22937,10 +23278,10 @@ class DuetRangeStepper {
22937
23278
  * Always the last one in the class.
22938
23279
  */
22939
23280
  render() {
22940
- return (hAsync("div", { key: '1b5b22965b01d2a7ae85b7339ee8645f8349f4b6', class: {
23281
+ return (hAsync("div", { key: 'adfdba923ae5fd9a6dfba50fe1c4f55e3b87a865', class: {
22941
23282
  "duet-range-stepper": true,
22942
23283
  "duet-theme-turva": this.theme === "turva",
22943
- }, onKeyDown: e => this.onKeyboardDown(e), "aria-controls": this.ariaControls }, hAsync("span", { key: '54b38991bc5f22f1834a911aab5adcb3f5564728', class: "duet-range-step-counter", part: "range-numbers" }, this.generateStepSize()), hAsync("duet-action-button", { key: '1f0e154e3dc32e14ebf7ec696182b11915045b5a', disabled: this.disabled || this.buttonLeftDisabled, class: "duet-range-step-button duet-range-step-minus", onClick: e => this.handleClick(e, -1), id: this.leftBn, "accessible-label": `${this.ariaLabels.previous_increment} ${this.generatePreviousIncrementLabel()}`, ref: el => (this.leftBnRef = el), part: "navigation-arrow", iconName: "action-arrow-left-small", title: "" }), hAsync("duet-action-button", { key: '2531345ee7783cc6b6c2e742abdf6240aea88bb9', disabled: this.disabled || this.buttonRightDisabled, class: "duet-range-step-button duet-range-step-plus", onClick: e => this.handleClick(e, 1), "accessible-label": `${this.ariaLabels.next_increment} ${this.generateNextIncrementLabel()}`, id: this.rightBn, ref: el => (this.rightBnRef = el), part: "navigation-arrow", iconName: "action-arrow-right-small", title: "" })));
23284
+ }, onKeyDown: e => this.onKeyboardDown(e), "aria-controls": this.ariaControls }, hAsync("span", { key: '4377af5c4c12a8fd56b793dc809cfa21aa2e7850', class: "duet-range-step-counter", part: "range-numbers" }, this.generateStepSize()), hAsync("duet-action-button", { key: '02f43f05ea407fd7d55a108dc6656e0f05490dc3', disabled: this.disabled || this.buttonLeftDisabled, class: "duet-range-step-button duet-range-step-minus", onClick: e => this.handleClick(e, -1), id: this.leftBn, "accessible-label": `${this.ariaLabels.previous_increment} ${this.generatePreviousIncrementLabel()}`, ref: el => (this.leftBnRef = el), part: "navigation-arrow", iconName: "action-arrow-left-small", title: "" }), hAsync("duet-action-button", { key: '0b970f02212426d7e73e3fe136f14e2ff3c44879', disabled: this.disabled || this.buttonRightDisabled, class: "duet-range-step-button duet-range-step-plus", onClick: e => this.handleClick(e, 1), "accessible-label": `${this.ariaLabels.next_increment} ${this.generateNextIncrementLabel()}`, id: this.rightBn, ref: el => (this.rightBnRef = el), part: "navigation-arrow", iconName: "action-arrow-right-small", title: "" })));
22944
23285
  }
22945
23286
  get element() { return getElement(this); }
22946
23287
  static get watchers() { return {
@@ -23251,18 +23592,18 @@ class DuetScrollable {
23251
23592
  * Always the last one in the class.
23252
23593
  */
23253
23594
  render() {
23254
- return (hAsync(Host, { key: '2ba4adf585cac6b8a76f8a06f2a46a3339b495e8', class: {
23595
+ return (hAsync(Host, { key: '2f5fa75837cec7537480b0f5eac81c17cb26187e', class: {
23255
23596
  "duet-theme-turva": this.theme === "turva",
23256
23597
  "duet-theme-default": this.theme === "default",
23257
- } }, this.hasCollapseButtonLabelSlot && (hAsync("div", { key: '1bb6dcf18c16906a196f15532d51878f5a14ebfe', class: {
23598
+ } }, this.hasCollapseButtonLabelSlot && (hAsync("div", { key: '5764bbcb0703456241a485b5d588d65a3d1a8ede', class: {
23258
23599
  collapse: true,
23259
23600
  hide: !this.needsScrolling && !this.collapsed,
23260
- } }, hAsync("duet-button", { key: '253b7c6b18e78444e59e7a3df3f66287e67d8d4d', variation: "plain", margin: "none", "center-text": true, onClick: () => this.collapsedOnClick() }, hAsync("slot", { key: '46ee35a09a74308fef543368900ceb78546d2d27', name: "collapse-button-label" })))), hAsync("div", { key: 'fbead3f5a25009528eca77982e0c340139f780dc', class: {
23601
+ } }, hAsync("duet-button", { key: 'f9f251d19c6d1a268b47f92f8b3cd894c95e07f6', variation: "plain", margin: "none", "center-text": true, onClick: () => this.collapsedOnClick() }, hAsync("slot", { key: '50f2782ad08fd6caa181c7eaa25f7feef7c98a2b', name: "collapse-button-label" })))), hAsync("div", { key: '52b2a5731b450693bb4b3a978dbdb2d7f14777d6', class: {
23261
23602
  "duet-scrollable-items": true,
23262
23603
  buttons: this.buttons,
23263
23604
  center: this.center,
23264
23605
  "duet-theme-turva": this.theme === "turva",
23265
- } }, this.buttons && this.renderButton("left"), hAsync("div", { key: 'dc180a9004b8b097bca04412e3412b32949efbdc', class: {
23606
+ } }, this.buttons && this.renderButton("left"), hAsync("div", { key: '8df63d3abb46a93cc86cc38eb801ef6a0843b51b', class: {
23266
23607
  "duet-scrollable-list": true,
23267
23608
  [`duet-scrollable-list--${this.buttonPosition}`]: true,
23268
23609
  [`gap-${this.gap}`]: true,
@@ -23270,7 +23611,7 @@ class DuetScrollable {
23270
23611
  [`duet-overflow-padding--${this.padding}`]: this.padding !== "none",
23271
23612
  [`duet-scrollable-list--${this.buttonPosition}`]: this.buttonPosition === "absolute",
23272
23613
  "duet-scrollable-stretch": this.stretch,
23273
- }, onScroll: () => this.updateScrollButtons(), ref: element => (this.scrollPaneElement = element) }, hAsync("slot", { key: 'a14ae5f86ffc50886753e785bfb795cc706e3f95' })), this.buttons && this.renderButton("right"))));
23614
+ }, onScroll: () => this.updateScrollButtons(), ref: element => (this.scrollPaneElement = element) }, hAsync("slot", { key: '5377464cb77bfd26de8b9cdea7c827e08b0db428' })), this.buttons && this.renderButton("right"))));
23274
23615
  }
23275
23616
  get element() { return getElement(this); }
23276
23617
  static get watchers() { return {
@@ -23330,13 +23671,13 @@ class DuetSectionLayout {
23330
23671
  * Always the last one in the class.
23331
23672
  */
23332
23673
  render() {
23333
- return (hAsync(Host, { key: '1423181d3efb8f77211a81db6dc7a415457b23f4', class: {
23674
+ return (hAsync(Host, { key: '4640f2d203680d402788b83e99eab0612d23d220', class: {
23334
23675
  "duet-middle": this.middle,
23335
23676
  "duet-ie": isInternetExplorer(),
23336
- } }, hAsync("div", { key: '3b08e02d99ce4d269a90522f896ecfb43608c79f', class: { "duet-layout-wrapper": true, "duet-m-0": this.margin === "none" } }, hAsync("div", { key: '1c60dd6abba084bdf4b29b9cb4b6e94d137517e3', class: {
23677
+ } }, hAsync("div", { key: 'df70de3be2c50ec188dc9aab16af90d6c45d6aea', class: { "duet-layout-wrapper": true, "duet-m-0": this.margin === "none" } }, hAsync("div", { key: '6424120aabf584d6b9f0c9e5dacae247f271ae63', class: {
23337
23678
  "duet-layout": true,
23338
23679
  [`padding-${this.paddingBreakpoint}`]: !!this.paddingBreakpoint,
23339
- } }, hAsync("section", { key: 'be58aa5ae79e61f3ba8e2bbadb119d169ab51d59', class: "duet-main" }, hAsync("slot", { key: '43f94baf777b2626fefaa2a85d752f3e4652ed94' }))))));
23680
+ } }, hAsync("section", { key: 'e970057e762239839d30b4d710f4d25cd9b56a2a', class: "duet-main" }, hAsync("slot", { key: '75bc9cc77d08d730e98e956dcec2c4ba15bf6274' }))))));
23340
23681
  }
23341
23682
  get element() { return getElement(this); }
23342
23683
  static get style() { return duetSectionLayoutCss; }
@@ -23549,23 +23890,23 @@ class DuetSelect {
23549
23890
  */
23550
23891
  render() {
23551
23892
  const identifier = this.identifier || this.selectId;
23552
- return (hAsync(Host, { key: '0ddcfe653c975b950d0e354b409ab1d6f262c8e8', class: {
23893
+ return (hAsync(Host, { key: '799e751c3066521f3910c7e2bc2f1b4f01a05f2c', class: {
23553
23894
  "duet-m-0": this.margin === "none",
23554
23895
  "duet-expand": this.expand,
23555
23896
  [`duet-select-variation-${this.variation}`]: true,
23556
- } }, hAsync("div", { key: 'fd9cd25b5741264512afa023ffdaadd5f2c4bf88', class: {
23897
+ } }, hAsync("div", { key: '8ec31867c99664d323116a2d157edf312eb876d9', class: {
23557
23898
  "duet-select-container": true,
23558
23899
  "duet-label-hidden": this.labelHidden,
23559
23900
  "duet-theme-turva": this.theme === "turva",
23560
23901
  [`duet-select-variation-${this.variation}`]: true,
23561
23902
  "duet-input-top-caption-shown": this.isCaptionVisible,
23562
23903
  "has-error": !!this.error,
23563
- } }, hAsync(DuetInternalLabel, { key: 'c3b5c05a907cc0ff12d55f85670fd2ad9f15adf1', theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: identifier }, this.label), this.tooltip && (hAsync("duet-tooltip", { key: '7bc69b0dc20365188e9301bfdd30df1124b18761', direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), hAsync("slot", { key: 'f4bc4ce586c29071d3bc4f20960a404b981203dd', name: "tooltip" }), this.caption && (hAsync("duet-caption", { key: '8465f79cf880f37acabd18e2e1ded29e49bd94ee', id: this.topCaptionId, size: "medium" }, this.caption)), hAsync("div", { key: 'c9d22a8a3ca34ae31b859b8733e0c6745ebbeabf', class: "duet-select-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (hAsync("duet-caption", { key: '1fe97d2769761b8987fe53554bec4a3edd114fd4', id: this.topCaptionPlaceholderId, class: "duet-select-placeholder", size: "small" }, this.placeholder)), hAsync("slot", { key: 'b274666d37f85b37e317908426b60ca1cc8bdfff' }), hAsync("select", { key: '156afda8ad1a3cd37e999c3ef624e3bdf23f3939', ref: select => (this.nativeSelect = select), disabled: this.disabled, name: this.name, id: identifier, role: this.role, "aria-labelledby": this.labelId, "aria-describedby": this.getDescribedBy(), "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, required: this.required }, this.placeholder && (hAsync("option", { key: 'e9a8b64cbab68d12e0769099ecce296305127185', disabled: true, selected: true, value: "" }, this.placeholder)), !this.processedItems ? (hAsync("option", null, "Virhe valintoja ladattaessa. P\u00E4ivit\u00E4 sivu ja kokeile uusiksi.")) : (this.processedItems.map(item => {
23904
+ } }, hAsync(DuetInternalLabel, { key: '9694bfe254e28f6410a09c0a29e8ffe90bcc197a', theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: identifier }, this.label), this.tooltip && (hAsync("duet-tooltip", { key: '8fac7e29561cacaed838f86255b710e12cf1e10c', direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), hAsync("slot", { key: 'c118cf285f1596c85dd059fddfcd2a50fdb48a25', name: "tooltip" }), this.caption && (hAsync("duet-caption", { key: '7876fa88354fffd01170deb8fa2f2e2fcd860fe1', id: this.topCaptionId, size: "medium" }, this.caption)), hAsync("div", { key: '0cbf3b4fcf5157ff3c99be21f90207845dc0a12f', class: "duet-select-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (hAsync("duet-caption", { key: '46c2e4892c502a84b7fa294a4d7dfd89dd365bbe', id: this.topCaptionPlaceholderId, class: "duet-select-placeholder", size: "small" }, this.placeholder)), hAsync("slot", { key: 'c149307dc10d95ac9344429c7cb59afc8e7c8f1c' }), hAsync("select", { key: 'f87920eea326497e41432be046c0a4bc2b881f82', ref: select => (this.nativeSelect = select), disabled: this.disabled, name: this.name, id: identifier, role: this.role, "aria-labelledby": this.labelId, "aria-describedby": this.getDescribedBy(), "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, required: this.required }, this.placeholder && (hAsync("option", { key: '5609b3644ed2101cc3854bce7dcb15f5bcc72c79', disabled: true, selected: true, value: "" }, this.placeholder)), !this.processedItems ? (hAsync("option", null, "Virhe valintoja ladattaessa. P\u00E4ivit\u00E4 sivu ja kokeile uusiksi.")) : (this.processedItems.map(item => {
23564
23905
  return isOptionGroup(item) ? this.renderOptionGroup(item) : this.renderOption(item);
23565
- }))), hAsync("div", { key: 'd81915bb17ca09a4ed1ec49be010590ab526f1bd', class: {
23906
+ }))), hAsync("div", { key: 'b720c0d90de10217e72b8871927fe949302bce19', class: {
23566
23907
  "duet-select": true,
23567
23908
  [`duet-select-variation-${this.variation}`]: true,
23568
- }, "aria-hidden": "true" }, hAsync("span", { key: this.value, class: "duet-select-selected-value" }, this.getSelectedItemLabel()), (this.variation === "default" && (hAsync("svg", { key: 'ba3694a78ef77659a7590e37b5dcba1f45a2b13d', role: "img", class: "duet-select-icon", fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, hAsync("path", { key: 'de4080cef2281d70764f02d5f0218fa4c15e8d0b', d: "m12 18.999c-.4 0-.776-.156-1.059-.438l-10.721-10.72c-.142-.142-.22-.33-.22-.531 0-.2.078-.389.22-.53.142-.142.33-.22.53-.22s.389.078.53.22l10.72 10.719 10.72-10.719c.142-.142.33-.22.53-.22s.389.078.53.22c.142.142.22.33.22.53s-.078.389-.22.53l-10.72 10.72c-.282.283-.659.439-1.06.439z" })))) || (hAsync("duet-icon", { key: '0787be25e87ce14407892b6c6fa020e9eac367f7', theme: this.theme, name: "action-arrow-down-small", color: "currentColor", margin: "none", size: this.variation === "compact" ? "xxx-small" : "xx-small" }))), hAsync("span", { key: '3e6af5e4df0aa4db79dac1274402f56787d90e47', class: "duet-keep-container-height", role: "presention", "aria-hidden": "true" }, "_")), hAsync("span", { key: '29a4602a5757f066eb9827906e3629488da9b492', class: "duet-select-help", id: this.errorId, "aria-live": this.accessibleLiveError, "aria-atomic": "true", "aria-relevant": "additions removals" }, this.error && hAsync("span", { key: '496ed4e875ea72afb3074e2f4da4e2682bc6696c', class: "duet-select-error" }, this.error)))));
23909
+ }, "aria-hidden": "true" }, hAsync("span", { key: this.value, class: "duet-select-selected-value" }, this.getSelectedItemLabel()), (this.variation === "default" && (hAsync("svg", { key: '90a28c7ccb87098d9f4963e4b633f9ed73ce135d', role: "img", class: "duet-select-icon", fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, hAsync("path", { key: 'aaf93f626f11f884d04a8ada7ac4c822859429a1', d: "m12 18.999c-.4 0-.776-.156-1.059-.438l-10.721-10.72c-.142-.142-.22-.33-.22-.531 0-.2.078-.389.22-.53.142-.142.33-.22.53-.22s.389.078.53.22l10.72 10.719 10.72-10.719c.142-.142.33-.22.53-.22s.389.078.53.22c.142.142.22.33.22.53s-.078.389-.22.53l-10.72 10.72c-.282.283-.659.439-1.06.439z" })))) || (hAsync("duet-icon", { key: '2bed857103ccb9dc5f21ef9c161afec22e38d417', theme: this.theme, name: "action-arrow-down-small", color: "currentColor", margin: "none", size: this.variation === "compact" ? "xxx-small" : "xx-small" }))), hAsync("span", { key: 'af52dc23224f33ed088274a5c2561508217ba5df', class: "duet-keep-container-height", role: "presention", "aria-hidden": "true" }, "_")), hAsync("span", { key: '68d71610557182c9be1913478e6177b7a66388ab', class: "duet-select-help", id: this.errorId, "aria-live": this.accessibleLiveError, "aria-atomic": "true", "aria-relevant": "additions removals" }, this.error && hAsync("span", { key: 'e49610ecbba0ae7e275e182bdfc0941d1870cdbb', class: "duet-select-error" }, this.error)))));
23569
23910
  }
23570
23911
  get element() { return getElement(this); }
23571
23912
  static get watchers() { return {
@@ -23645,9 +23986,9 @@ class DuetShapedImage {
23645
23986
  const style = {
23646
23987
  "--rotation": `${this.rotation}deg`,
23647
23988
  };
23648
- return (hAsync(Host, { key: '27f36b3527731cc1d47a65655e150c963b9a23d9', class: { "duet-theme-turva": this.theme === "turva", "duet-m-0": this.margin === "none" } }, hAsync("span", { key: 'b3d7bf5649da0a77e9bee42baab54840e47f9505', class: {
23989
+ return (hAsync(Host, { key: 'bc7cef36e9635c521aaabfc2fb434aeb06162417', class: { "duet-theme-turva": this.theme === "turva", "duet-m-0": this.margin === "none" } }, hAsync("span", { key: 'dee81d6f9a48a4c8f09778feb1629e37ef7e5309', class: {
23649
23990
  "shaped-image": true,
23650
- }, role: "img", "aria-label": this.accessibleLabel, style: style }, hAsync("span", { key: '84fe60ad6ee4fdcc2544b07c5c07a214cf5efb15', class: "shaped-image-mask", role: "presentation" }, hAsync("span", { key: 'edb1df30260d26bb87ef59a97aa031c97e4dce6d', class: "shaped-image-img", role: "presentation", style: { backgroundImage: `url("${this.src}")` } })))));
23991
+ }, role: "img", "aria-label": this.accessibleLabel, style: style }, hAsync("span", { key: 'c585a6c401f0dff23dfa95452fdafc5c1a6a6473', class: "shaped-image-mask", role: "presentation" }, hAsync("span", { key: 'b2d811551b33952948948abb7d5abc4d34a6a129', class: "shaped-image-img", role: "presentation", style: { backgroundImage: `url("${this.src}")` } })))));
23651
23992
  }
23652
23993
  static get style() { return duetShapedImageCss; }
23653
23994
  static get cmpMeta() { return {
@@ -23717,12 +24058,12 @@ class DuetShareChart {
23717
24058
  this.itemsTotalValue = this.items.reduce((total, { value }) => total + value, 0);
23718
24059
  }
23719
24060
  render() {
23720
- return (hAsync(Host, { key: 'c22523d7e91ce5ef59f5553ed847309cc45c9499' }, hAsync("div", { key: '9aa4f2e4c117c5f7c30bce27585c7abc4d5568ea', class: "duet-share-chart-horizontal-bar", role: "presentation" }, this.items
24061
+ return (hAsync(Host, { key: '89abfd2c95426a08eedbb1d09d4394ea0267868b' }, hAsync("div", { key: 'cbdab21514d3ebb70be42df8b110026cc09230e0', class: "duet-share-chart-horizontal-bar", role: "presentation" }, this.items
23721
24062
  .filter(i => !!i.value)
23722
24063
  .map(item => (hAsync("span", { class: "duet-share-chart-share", style: {
23723
24064
  width: `${(item.value / this.itemsTotalValue) * 100}%`,
23724
24065
  backgroundColor: getColorByName(item.color, this.theme),
23725
- } })))), hAsync("ul", { key: '428d17dde9185b071455325d5d2195618f4a0267', class: "duet-share-chart-item-list" }, this.items.map(item => (hAsync("li", { class: { "duet-theme-turva": this.theme === "turva" } }, hAsync("span", { class: "duet-share-chart-item-color", style: { background: getColorByName(item.color, this.theme) } }), hAsync("span", { class: "duet-share-chart-item-text" }, item.text, ":"), hAsync("span", { class: "duet-share-chart-item-value" }, "\u00A0", formatNumber(item.value), "\u00A0", this.unit), this.unit !== "%" && (hAsync("duet-visually-hidden", null, `${formatNumber((item.value / this.itemsTotalValue) * 100, 0)} %`)))))), hAsync("slot", { key: '2f394e013dfe0a533524bef6f0649f57d1c2d957' })));
24066
+ } })))), hAsync("ul", { key: 'b4a9f997fc34340201a694935403f61fae0d7af8', class: "duet-share-chart-item-list" }, this.items.map(item => (hAsync("li", { class: { "duet-theme-turva": this.theme === "turva" } }, hAsync("span", { class: "duet-share-chart-item-color", style: { background: getColorByName(item.color, this.theme) } }), hAsync("span", { class: "duet-share-chart-item-text" }, item.text, ":"), hAsync("span", { class: "duet-share-chart-item-value" }, "\u00A0", formatNumber(item.value), "\u00A0", this.unit), this.unit !== "%" && (hAsync("duet-visually-hidden", null, `${formatNumber((item.value / this.itemsTotalValue) * 100, 0)} %`)))))), hAsync("slot", { key: 'a9cf601d34533e368d69ddc7f40adbc0b9c5b413' })));
23726
24067
  }
23727
24068
  get element() { return getElement(this); }
23728
24069
  static get style() { return duetShareChartCss; }
@@ -23749,7 +24090,7 @@ class DuetShareChartItem {
23749
24090
  this.value = 0;
23750
24091
  }
23751
24092
  render() {
23752
- return (hAsync(Host, { key: 'fb5eafa552f0f72600a3cec4b325ce891073f5bb' }, hAsync("div", { key: 'b982b99b868fee7e0211a9b0dba7306eb2615874', hidden: true }, hAsync("slot", { key: 'e8501789a378faa695408b024dd6d7c83aa3c1c9' }))));
24093
+ return (hAsync(Host, { key: 'aa8f13f668d97b03cbe5aefed617945493e9cb95' }, hAsync("div", { key: '11e8bc3d3a5ac3139982782b8f1eb6b8a3503c7f', hidden: true }, hAsync("slot", { key: '005ad83f4d9dfb8577d850b61772efc58f06abba' }))));
23753
24094
  }
23754
24095
  get element() { return getElement(this); }
23755
24096
  static get cmpMeta() { return {
@@ -23899,12 +24240,12 @@ class DuetShowMore {
23899
24240
  * Always the last one of the class.
23900
24241
  */
23901
24242
  render() {
23902
- return (hAsync(Host, { key: 'a43de6a4bae0a8c38852a11a7b384b7f104ec024' }, hAsync("div", { key: '74f8d429039d38ea1151aeab159f34cfed375df6', class: {
24243
+ return (hAsync(Host, { key: 'd09f18e15e280f4a09bae1d89d8eb471c4b885a3' }, hAsync("div", { key: '949dbbcd73eb37252f098b4bc3e169ec0e3adc5b', class: {
23903
24244
  "duet-show-more": true,
23904
24245
  "duet-theme-turva": this.theme === "turva",
23905
24246
  "duet-m-0": this.margin === "none",
23906
24247
  open: this.open,
23907
- } }, hAsync("div", { key: 'ec6fcb6addd5b4a40b56a5daae3f3a0aeba6d872', ref: ref => (this.contentElement = ref), class: { content: true, "duet-theme-turva": this.theme === "turva" }, id: this.contentId, tabindex: this.open ? "-1" : "" }, hAsync("div", { key: '1c5bb72f5086f835a944bbe4dac71a8d47a77367', class: { "slotted-content": true } }, hAsync("slot", { key: 'e89b3fa40066fc91297a0acca877ecd297ef0a62' }))), hAsync("duet-button", { key: 'b957cad1b16adb85490f6c4e96a739f0038c0bbb', id: this.buttonId, variation: "plain", "accessible-label": this.buttonAriaOpen ? this.showLessAccessibleLabel : this.showMoreAccessibleLabel, "accessible-expanded": this.buttonAriaOpen ? "true" : "false", "accessible-controls": this.contentId, accessiblePressed: this.isSafariBrowser ? this.open : null, onClick: this.handleClick, onKeyDown: this.handleKeyDown, "icon-right": true, icon: this.open ? "action-arrow-up-small" : "action-arrow-down-small", "icon-size": "medium-small", size: "small", margin: this.buttonMargin, padding: this.buttonPadding, theme: this.theme === "turva" ? "turva" : "default" }, hAsync("span", { key: 'a7c76ec6d98b5644601d2caa1d21306fa127fef9' }, this.open ? this.showLessLabel : this.showMoreLabel)))));
24248
+ } }, hAsync("div", { key: '5c78082532033803e3d40d1b855b73eb03b91416', ref: ref => (this.contentElement = ref), class: { content: true, "duet-theme-turva": this.theme === "turva" }, id: this.contentId, tabindex: this.open ? "-1" : "" }, hAsync("div", { key: 'ee8ff8232b890ccc701009ceec3c1949f63c1298', class: { "slotted-content": true } }, hAsync("slot", { key: '8c48e2cf5d3b4c62e03b1ebf3486041f30bd92dd' }))), hAsync("duet-button", { key: 'f310b7cc5c62fd6300054a8147d0b8733ca6dee7', id: this.buttonId, variation: "plain", "accessible-label": this.buttonAriaOpen ? this.showLessAccessibleLabel : this.showMoreAccessibleLabel, "accessible-expanded": this.buttonAriaOpen ? "true" : "false", "accessible-controls": this.contentId, accessiblePressed: this.isSafariBrowser ? this.open : null, onClick: this.handleClick, onKeyDown: this.handleKeyDown, "icon-right": true, icon: this.open ? "action-arrow-up-small" : "action-arrow-down-small", "icon-size": "medium-small", size: "small", margin: this.buttonMargin, padding: this.buttonPadding, theme: this.theme === "turva" ? "turva" : "default" }, hAsync("span", { key: '059e01e1c0ea1424eaac85471b3d4a80258f3aec' }, this.open ? this.showLessLabel : this.showMoreLabel)))));
23908
24249
  }
23909
24250
  get element() { return getElement(this); }
23910
24251
  static get style() { return duetShowMoreCss; }
@@ -24372,7 +24713,13 @@ class DuetSlideout {
24372
24713
  return;
24373
24714
  }
24374
24715
  const path = ev.composedPath();
24375
- if (!path.includes(this.dialog) && !path.includes(this.openButton)) {
24716
+ const isOneTrustClick = path.some(target => {
24717
+ if (!(target instanceof Element)) {
24718
+ return false;
24719
+ }
24720
+ return Boolean(target.closest("[id^='onetrust-']"));
24721
+ });
24722
+ if (!isOneTrustClick && !path.includes(this.dialog) && !path.includes(this.openButton)) {
24376
24723
  this.toggleMenu(ev);
24377
24724
  }
24378
24725
  }
@@ -24425,17 +24772,17 @@ class DuetSlideout {
24425
24772
  };
24426
24773
  const topLevelOpenMenuBarTranslation = getLocaleString(this.topLevelOpenMenuBarLangObject);
24427
24774
  const exitTranslation = getLocaleString(this.exitLangObject);
24428
- return (hAsync(Host, { key: '688c802695368111aeb4c7ce77fe79bf01386c65' }, hAsync("div", { key: '43fbd950e8cc9b7202640ec050473ad333053b21', class: { "duet-slideout": true, "duet-theme-turva": this.theme === "turva" } }, this.modal && hAsync("duet-overlay", { key: '91156175999730330e4acc54a771525321c5b181', visible: this.open, zIndex: "600" }), hAsync("div", { key: 'f319a1ebdf8063f906a73d7c9cf5f374ac5a0006', ref: element => (this.dialog = element), tabindex: "-1", role: "dialog", id: "dialog", "aria-labelledby": "button", "aria-modal": this.isSafariBrowser ? false : true, "aria-flowto": "slot-container", class: {
24775
+ return (hAsync(Host, { key: '0108b967b88b222c02678c818e16c9b7082e565f' }, hAsync("div", { key: 'ede488f0a452f668d8762bf343aac847202eb4db', class: { "duet-slideout": true, "duet-theme-turva": this.theme === "turva" } }, this.modal && hAsync("duet-overlay", { key: '88e7002a39c769781f72cd680f4aabbf8a75a1af', visible: this.open, zIndex: "600" }), hAsync("div", { key: '7f8a29e110f8be3f4575b66f7d374bd27b6e9eaf', ref: element => (this.dialog = element), tabindex: "-1", role: "dialog", id: "dialog", "aria-labelledby": "button", "aria-modal": this.isSafariBrowser ? false : true, "aria-flowto": "slot-container", class: {
24429
24776
  dialog: true,
24430
24777
  hidden: !this.open,
24431
24778
  modal: this.modal,
24432
- }, style: styles }, hAsync(FocusGuard, { key: '4948808956e87089ea34a36fdb38d18dda0e344f', moveFocusTo: this.closeButton }), hAsync("div", { key: 'b92d3796bbfb8710a1caff98a651ae25a0200f70', class: { "top-container": true, "has-sticky-header-slot": this.hasStickyHeaderSlot } }, hAsync("div", { key: '37d6a16746c2dcfddf692c6fea31eccac6dce80b', class: "top" }, hAsync("button", { key: '813ace204147dc026a6984dec194b30c6b65383b', ref: element => (this.closeButton = element), "aria-haspopup": "dialog", "aria-controls": "dialog", "aria-expanded": this.open ? "true" : "false", "aria-label": `${exitTranslation}`, type: "button", class: {
24779
+ }, style: styles }, hAsync(FocusGuard, { key: 'e62a77fddb1231b075f5cd54cd1b882fe7d61976', moveFocusTo: this.closeButton }), hAsync("div", { key: 'e6a1feee906e95af23c3f41c5a0b6871d8196a45', class: { "top-container": true, "has-sticky-header-slot": this.hasStickyHeaderSlot } }, hAsync("div", { key: 'a91a16a339b6c51b7d34d4eb594c318662bf9a8d', class: "top" }, hAsync("button", { key: 'daa5d0a898487a3da98b911c4ca57f5a4608d242', ref: element => (this.closeButton = element), "aria-haspopup": "dialog", "aria-controls": "dialog", "aria-expanded": this.open ? "true" : "false", "aria-label": `${exitTranslation}`, type: "button", class: {
24433
24780
  "slideout-close": true,
24434
24781
  active: this.open,
24435
24782
  "duet-theme-turva": this.theme === "turva",
24436
- }, onClick: this.onClick, inert: this.openPanel }, hAsync("duet-icon", { key: '93577566dd1ab3865aa1e822504020ac2ccea7b8', name: "navigation-close", size: "small", margin: "none", color: "secondary" }))), hAsync("div", { key: '05fd3bd597b67cdb15940ab2ab7192d88039076d', class: "sticky-header" }, hAsync("slot", { key: '18aa41a6860b850a23413df91c17ab157812b074', name: "sticky-header" }))), hAsync("div", { key: 'c556058c1476e48980795e75714d9322d0a83397', id: "slot-container", role: this.accessibleRole, "aria-label": this.openPanel ? topLevelOpenMenuBarTranslation : null, class: {
24783
+ }, onClick: this.onClick, inert: this.openPanel }, hAsync("duet-icon", { key: '85ca78592d2f03801c02b30b2e23ca8153ebf7af', name: "navigation-close", size: "small", margin: "none", color: "secondary" }))), hAsync("div", { key: '9c3b0cb1ca5f6528f62023b180903017fe8e7a08', class: "sticky-header" }, hAsync("slot", { key: '6e09d463fbe87684f26f1bd778b9beaeeb105cae', name: "sticky-header" }))), hAsync("div", { key: 'f8d0792c76b29d516beae014bbc4468b884370c4', id: "slot-container", role: this.accessibleRole, "aria-label": this.openPanel ? topLevelOpenMenuBarTranslation : null, class: {
24437
24784
  items: true,
24438
- } }, hAsync("slot", { key: 'b0b0551fa20865b54092c9dedbe416590bdb6344' })), hAsync(FocusGuard, { key: '3f650d271ea8bb3c029e9d75c7dfba1742a88d3e', moveFocusTo: this.closeButton })))));
24785
+ } }, hAsync("slot", { key: '334688b5dee96e633747c6a8c38f5a5da6677e13' })), hAsync(FocusGuard, { key: '129eea547ce75a8325c6aed5d3bccd6f6b380d9f', moveFocusTo: this.closeButton })))));
24439
24786
  }
24440
24787
  get element() { return getElement(this); }
24441
24788
  static get watchers() { return {
@@ -24505,7 +24852,7 @@ class DuetSlideoutLang {
24505
24852
  */
24506
24853
  render() {
24507
24854
  const langTranslation = getLocaleString(this.chooseLangObject);
24508
- return (hAsync(Host, { key: '8847b4894f616c58b889e51d183c71ec672554fc' }, hAsync("div", { key: '86a6652e67569a898f9aceea571fd656ae22bfa6', class: "duet-slideout-lang", role: "group", "aria-label": langTranslation }, hAsync("duet-icon", { key: '038bdf514daccd3f28a27ad0225f4a46ea84ecea', name: "navigation-language", margin: "none", color: "secondary", size: "small" }), hAsync("slot", { key: '49e912e3e178c2d4c3042c4d9d1ae39991bbef52' }))));
24855
+ return (hAsync(Host, { key: '110365f6f4eb9258855cfc4f936a4953a56f2309' }, hAsync("div", { key: '5553f593915deb08fb2f3cbe1ca6b9271253aabf', class: "duet-slideout-lang", role: "group", "aria-label": langTranslation }, hAsync("duet-icon", { key: '217672b8691657d2854df050f6cb56a794011fcf', name: "navigation-language", margin: "none", color: "secondary", size: "small" }), hAsync("slot", { key: 'c43b3dc4a59d9b0cb5b3a765742b6671ae6f5125' }))));
24509
24856
  }
24510
24857
  get element() { return getElement(this); }
24511
24858
  static get style() { return duetSlideoutLangCss; }
@@ -24595,12 +24942,12 @@ class DuetSlideoutLink {
24595
24942
  * Always the last one in the class.
24596
24943
  */
24597
24944
  render() {
24598
- return (hAsync(Host, { key: 'eca2104ff848dfd3c52bab08c4377d19e374d13d' }, hAsync("a", { key: '9915adbb807d80081d2d791f36926a5b8a6b2a3e', target: !this.href ? null : this.external ? "_blank" : "_self", class: {
24945
+ return (hAsync(Host, { key: 'dc6e16cb08fd3e309601ebfe4bd1b64cdb83fa3c' }, hAsync("a", { key: '565a7243cf494ed6e8ec78435b3b90490dfae422', target: !this.href ? null : this.external ? "_blank" : "_self", class: {
24599
24946
  "duet-slideout-link": true,
24600
24947
  "duet-theme-turva": this.theme === "turva",
24601
24948
  active: this.active,
24602
24949
  [this.size]: true,
24603
- }, href: this.href, "aria-current": this.active ? "true" : "false", lang: this.targetLanguage, hreflang: this.targetLanguage, "aria-label": (this.href && getAccessibleLinkLabel(this)) || this.accessibleLabel, rel: this.external ? "noopener" : undefined }, this.icon && (hAsync("duet-icon", { key: 'eabe8fda17546094fafc6fa4a253e05c63fc1938', name: this.icon, color: "secondary", size: this.menuItem ? "x-small" : "small", margin: "none" })), hAsync("div", { key: '98d30980e7ac325c36be8bb86b788d60cd36831d', class: "label" }, hAsync("span", { key: '7f96584e0ee24069a7cc9afc2649d3a0a7fe8758' }, hAsync("span", { key: '2b844eb1ae6ff0f7215e7979776c673e6f1accfb', class: "label-container" }, hAsync("span", { key: 'd6de09afc6dbb0cfd6855f98e34c6b7b0b2c6421', class: "label-content" }, hAsync("slot", { key: 'ef0c11c80556e88596d115ef534f86cc044362f8' })), this.external && (hAsync("duet-icon", { key: 'ffe4c9d8a90105199e4a79702847705f958adf00', class: "external-icon", theme: this.theme, name: newWindowIcon.title, margin: "none", size: "auto", color: "currentColor" }))), hAsync("slot", { key: 'd329594665a0964175ea0872747342f4e070227d', name: "description" })), this.caret && (hAsync("duet-icon", { key: 'aafabb173724e1a6b736f289a7d76582f03f78c4', name: "action-arrow-right", color: "secondary", size: "x-small", margin: "none" }))))));
24950
+ }, href: this.href, "aria-current": this.active ? "true" : "false", lang: this.targetLanguage, hreflang: this.targetLanguage, "aria-label": (this.href && getAccessibleLinkLabel(this)) || this.accessibleLabel, rel: this.external ? "noopener" : undefined }, this.icon && (hAsync("duet-icon", { key: '61a9ba050ab811c82ec0f824e2235a4fd3c7bc2b', name: this.icon, color: "secondary", size: this.menuItem ? "x-small" : "small", margin: "none" })), hAsync("div", { key: 'f481a2e77aed5fa8e0781be21f7dd3527fc24532', class: "label" }, hAsync("span", { key: '2e1a3676bac5ea9d24198535c3f56a1913485450' }, hAsync("span", { key: 'c6d4fc5cfab9566872f9f7f442b4171f8e9f3849', class: "label-container" }, hAsync("span", { key: '55332c9a4587cdef32f32cd2e740d2e9edcc19b3', class: "label-content" }, hAsync("slot", { key: '94c66169219750becb8d9f068cd2744cb761bf3c' })), this.external && (hAsync("duet-icon", { key: '5208591ea13aa8bf9b7f90ce40cb858de42a173f', class: "external-icon", theme: this.theme, name: newWindowIcon.title, margin: "none", size: "auto", color: "currentColor" }))), hAsync("slot", { key: '44418b62998ee7874f226014f4cdcd47a454a164', name: "description" })), this.caret && (hAsync("duet-icon", { key: '052f984772e360db9890e2d5259bc8687732c00e', name: "action-arrow-right", color: "secondary", size: "x-small", margin: "none" }))))));
24604
24951
  }
24605
24952
  get element() { return getElement(this); }
24606
24953
  static get style() { return duetSlideoutLinkCss; }
@@ -24777,25 +25124,25 @@ class DuetSlideoutPanel {
24777
25124
  };
24778
25125
  const exitTranslation = getLocaleString(this.exitLangObject);
24779
25126
  const backTranslation = getLocaleString(this.backLangObject);
24780
- return (hAsync(Host, { key: '91e1bfb50346e6f0b7d7b93f6d9cb16e84df9297' }, hAsync("div", { key: '80891454e08a69f87d42ca5879c85a7e1eab6d5c', class: {
25127
+ return (hAsync(Host, { key: 'fbd7429209de850f01c9de0266dc72f3b775b356' }, hAsync("div", { key: '4557fd410088b0964d37d559659dc84775f91c25', class: {
24781
25128
  "duet-slideout-panel": true,
24782
25129
  "duet-theme-turva": this.theme === "turva",
24783
25130
  active: this.open,
24784
- } }, this.badge && hAsync("duet-indicator", { key: '2dc9f2f3b5eebbc44158f9c7795ee2e9dadbfeef', variation: "change" }), hAsync("button", { key: '86db5918e585201320c57a8770ab850356bda06b', ref: element => (this.openButton = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-current": this.active ? "true" : "false", id: "button", type: "button", class: {
25131
+ } }, this.badge && hAsync("duet-indicator", { key: '7752c2550f1db28decc53457ffd25543326252cc', variation: "change" }), hAsync("button", { key: 'ae2c1a996d362e9149fa4ca30ffdab94be68d401', ref: element => (this.openButton = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-current": this.active ? "true" : "false", id: "button", type: "button", class: {
24785
25132
  link: true,
24786
25133
  active: this.active,
24787
25134
  "duet-theme-turva": this.theme === "turva",
24788
- }, onClick: this.onClick, inert: this.open }, this.icon && (hAsync("div", { key: '635addd38144863b546edd4d8792a26d4e8dd3c4', class: "duet-slideout-icon" }, hAsync("duet-icon", { key: '3610a7e6ebcdf22fe198e4428538d559599c79c0', name: this.icon, size: "small", margin: "none", color: "secondary" }))), hAsync("span", { key: '9b4d70cc570113c1e667ced944bccae1e4613398', class: "label" }, hAsync("span", { key: '6f16630f451ef9ebd920462cd81df2cf92ab5312', class: { "label-text": true, [this.labelSize]: true } }, hAsync("slot", { key: '80688a824da754215dcbfcd668ff8144880147d1', name: "label" })), hAsync("duet-icon", { key: '205d74fef784d3db602fcccf61ba49dfb5995317', class: "caret", name: "action-arrow-right", margin: "none", size: "x-small", color: "secondary" }))), hAsync("div", { key: '5be9dab7afdb48916100c5bfb8242eb061ba6c96', ref: element => (this.dialog = element), class: {
25135
+ }, onClick: this.onClick, inert: this.open }, this.icon && (hAsync("div", { key: 'cbca67b1ec025b984b94bef89fadc9cc1da7d23f', class: "duet-slideout-icon" }, hAsync("duet-icon", { key: 'b741ec1ced8ffb83a771d8d2594dc53fc03c0f6d', name: this.icon, size: "small", margin: "none", color: "secondary" }))), hAsync("span", { key: 'a1357fa71e1c4a68a9cc68fe44e0b583aa99e6b9', class: "label" }, hAsync("span", { key: '74d6c5d655727bc16f27783ceb6bdb987f0db273', class: { "label-text": true, [this.labelSize]: true } }, hAsync("slot", { key: '59649775a8186f71318b4eb15234c9ab653e4e0a', name: "label" })), hAsync("duet-icon", { key: '4d04a7b2554356e55c9771f626f7ddec2c0d0b6c', class: "caret", name: "action-arrow-right", margin: "none", size: "x-small", color: "secondary" }))), hAsync("div", { key: 'a85b7f26f2c8742f9508fabc33a762814efe2c26', ref: element => (this.dialog = element), class: {
24789
25136
  dialog: true,
24790
25137
  hidden: !this.open,
24791
- }, style: styles }, hAsync(FocusGuard, { key: 'ad7c4a34db3120b40ed51061125f05d69017b342', moveFocusTo: this.closeButton }), hAsync("div", { key: 'af56281cf6a0a4c7355f48d17b66c5495e7982f9', class: { "top-container": true, "has-sticky-header-slot": this.hasStickyHeaderSlot } }, hAsync("div", { key: '676eca91428ce8439e68da74b59a0bc8d393f5a5', class: "top" }, hAsync("button", { key: '2d8f3d984de8ca1efccc191115b7657a455c5ef9', ref: element => (this.closeButton = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-label": `${backTranslation}`, type: "button", class: {
25138
+ }, style: styles }, hAsync(FocusGuard, { key: 'd490bd8e05eba04f62fec39b3adc4a1eccbec6f2', moveFocusTo: this.closeButton }), hAsync("div", { key: 'fe6122ebc2685c788677e117e1d4f5867187f00e', class: { "top-container": true, "has-sticky-header-slot": this.hasStickyHeaderSlot } }, hAsync("div", { key: '4ef75f568f7dba81c6f83a78a3ec3d7bcd752d05', class: "top" }, hAsync("button", { key: '279bc9fa5744a2fa5ca47ac96c668dde6e2b0191', ref: element => (this.closeButton = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-label": `${backTranslation}`, type: "button", class: {
24792
25139
  back: true,
24793
25140
  "duet-theme-turva": this.theme === "turva",
24794
- }, onClick: this.onClick }, hAsync("duet-icon", { key: 'f4d1be2b1157d12fff10e9f84eb7905d93091e79', class: "caret", name: "action-arrow-left", margin: "none", size: "small", color: "secondary" })), hAsync("span", { key: '2e0426bee359ed9f3ccf9f044e9c751924003a5c' }, this.label.innerHTML), hAsync("button", { key: 'f4edf9a9df667475a3c00b214e134bce7d9d7ae9', class: { close: true, "duet-theme-turva": this.theme === "turva" }, type: "button", onClick: this.onCloseClick, "aria-label": `${exitTranslation}` }, hAsync("duet-icon", { key: '548ed5fadb9216137fcdc0762b35454ceb21c8d4', name: "navigation-close", size: "small", margin: "none", color: "secondary" }))), hAsync("div", { key: '923603a20dbab28d51a376a9c252c35e33803880', class: "sticky-header" }, hAsync("slot", { key: '07e15709effbee9950d36f03dd91e73b7e9ab336', name: "sticky-header" }))), hAsync("div", { key: '7e63e1cd014106736bb712c20023f62245e43486', tabindex: "-1", role: "menu",
25141
+ }, onClick: this.onClick }, hAsync("duet-icon", { key: '75687b7eab0a837dd81ad953a94e140c841de384', class: "caret", name: "action-arrow-left", margin: "none", size: "small", color: "secondary" })), hAsync("span", { key: 'f9e44d04288188dfc6d48daf73fa55db5a813800' }, this.label.innerHTML), hAsync("button", { key: 'b545c269d0be2c72fd8b09dbda7774e867965077', class: { close: true, "duet-theme-turva": this.theme === "turva" }, type: "button", onClick: this.onCloseClick, "aria-label": `${exitTranslation}` }, hAsync("duet-icon", { key: '7953b1dc8766021775b78886a787f860a43d5a47', name: "navigation-close", size: "small", margin: "none", color: "secondary" }))), hAsync("div", { key: '1a9ae12c349d77a5fa2431bc4ff4ef67ac7cfb17', class: "sticky-header" }, hAsync("slot", { key: '83ff1bb883c4b4dc691fb66feb4d94d184deb0b1', name: "sticky-header" }))), hAsync("div", { key: 'cfdbea08a5a492608a7c51a114584d225fb9463a', tabindex: "-1", role: "menu",
24795
25142
  //TODO: slideout menu fades out, needs to be instant
24796
25143
  id: "menu", "aria-labelledby": "button", class: {
24797
25144
  items: true,
24798
- } }, hAsync("slot", { key: 'fa18b91a1114433c57ecd566934f505e9fc62cf5' })), hAsync(FocusGuard, { key: '7251452b17bbdfd8978f302bfde0e33991b39465', moveFocusTo: this.closeButton })))));
25145
+ } }, hAsync("slot", { key: 'add52c19cb2d07b884cf89221c7d274e8568a8b9' })), hAsync(FocusGuard, { key: '5edef9782dbb6e21f309050ffde3aefe3fbacbea', moveFocusTo: this.closeButton })))));
24799
25146
  }
24800
25147
  get element() { return getElement(this); }
24801
25148
  static get watchers() { return {
@@ -24876,18 +25223,18 @@ class DuetSlideoutPanelDropdown {
24876
25223
  * Always the last one in the class.
24877
25224
  */
24878
25225
  render() {
24879
- return (hAsync(Host, { key: '74023ff3094ea4e1867ae58690abaa3f338053e7' }, hAsync("div", { key: '0a0de8be47b2d48bc9f0c1564d458af29ee2e05f', class: {
25226
+ return (hAsync(Host, { key: 'd9d5a0fb10d7b741720abfb3a6d2c89d9ef8703c' }, hAsync("div", { key: '28fbb84a7341bbb0eb2943f886ba4ef4f4c2b3f0', class: {
24880
25227
  "duet-slideout-panel-dropdown": true,
24881
25228
  "duet-theme-turva": this.theme === "turva",
24882
25229
  active: this.open,
24883
- } }, hAsync("button", { key: '887b98839351d36434969447057013fd8e7614ed', ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-current": this.active ? "true" : "false", id: "button", type: "button", class: {
25230
+ } }, hAsync("button", { key: 'eb769cad3c4b9c6cd6e55278a2a764ddfac78251', ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-current": this.active ? "true" : "false", id: "button", type: "button", class: {
24884
25231
  active: this.active,
24885
25232
  "duet-theme-turva": this.theme === "turva",
24886
- }, onClick: this.onClick }, this.icon && hAsync("duet-icon", { key: 'a3d25c295dd87dd7d7427c08776e74f93ff06539', name: this.icon, size: "small", margin: "none", color: "secondary" }), hAsync("span", { key: 'f5721ac3bf32dc5d3a02c06c3945169f5191b8bf', class: "label" }, hAsync("slot", { key: '408ea11afbdc9705cf7d972f6173ba5215f06bec', name: "label" }), hAsync("duet-icon", { key: 'eba692bfd3ada8bbfdbe9eb6e51a01054f6f919a', class: "caret", name: "action-arrow-down-small", margin: "none", size: "xx-small", color: "secondary" }))), hAsync("div", { key: '13c263ac376bd1b412ba8c57aec55504da08557d', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
25233
+ }, onClick: this.onClick }, this.icon && hAsync("duet-icon", { key: 'd78b626a5ff04513b4c5f706ffbc897a09d5c6d6', name: this.icon, size: "small", margin: "none", color: "secondary" }), hAsync("span", { key: '4462c0ff6f10990d7c7831038b2aa8216089ad1c', class: "label" }, hAsync("slot", { key: '789471a218c9e6e78f3b6e17290ba28b9310992d', name: "label" }), hAsync("duet-icon", { key: '58a41b48fe383657c7ec09139c31945c6b51d7b1', class: "caret", name: "action-arrow-down-small", margin: "none", size: "xx-small", color: "secondary" }))), hAsync("div", { key: 'b6126db96949f78288a01e35d3b7b266fef58ce8', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
24887
25234
  items: true,
24888
25235
  hidden: !this.open,
24889
25236
  "duet-theme-turva": this.theme === "turva",
24890
- } }, hAsync("slot", { key: 'f582b50dca9e8127b6c4f0b6f9507f74f337ce7d' })))));
25237
+ } }, hAsync("slot", { key: 'df9daef8ce3c9cb1b147c3d4797afce38b454d4a' })))));
24891
25238
  }
24892
25239
  get element() { return getElement(this); }
24893
25240
  static get style() { return duetSlideoutPanelDropdownCss; }
@@ -24931,7 +25278,7 @@ class DuetSpacer {
24931
25278
  * Always the last one in the class.
24932
25279
  */
24933
25280
  render() {
24934
- return (hAsync(Host, { key: 'f2f4fa377c08b91ba94544d234bc8ab55c8b35b5', class: {
25281
+ return (hAsync(Host, { key: 'b494dd7486aac50ad7c79b76b0476a66fb197a89', class: {
24935
25282
  "duet-spacer": true,
24936
25283
  "duet-spacer-xx-small": this.breakpoint === "xx-small",
24937
25284
  "duet-spacer-x-small": this.breakpoint === "x-small",
@@ -24986,7 +25333,7 @@ class DuetSpinner {
24986
25333
  */
24987
25334
  render() {
24988
25335
  const color = !!this.color && this.color === "currentColor" ? "currentColor" : getColorByName(this.color, this.theme);
24989
- return (hAsync(Host, { key: '3bbc28212f0bf2540d28e5c1ed4cedbd263e8116' }, hAsync("div", { key: '34642338087cdd238bf2d2d68f57562b5f675745', class: {
25336
+ return (hAsync(Host, { key: 'f8c4a6b68356300f7738d2c59038d47abdf54124' }, hAsync("div", { key: 'a8aeaf976bec157057a095337bcad89d26eebd8a', class: {
24990
25337
  "duet-spinner": true,
24991
25338
  [this.size]: true,
24992
25339
  "duet-theme-turva": this.theme === "turva",
@@ -25094,11 +25441,11 @@ class DuetStatusIcon {
25094
25441
  }
25095
25442
  }
25096
25443
  render() {
25097
- return (hAsync(Host, { key: 'fe9932329bfad00f4231a2e669de3e74a1cd08cd', class: {
25444
+ return (hAsync(Host, { key: '5ac9742af4e473a663ebf16a972686ae4f68f3a3', class: {
25098
25445
  [`duet-status-icon-${this.getVariation()}`]: true,
25099
25446
  "duet-strong-bg": this.strong,
25100
25447
  "duet-m-0": this.margin === "none",
25101
- } }, hAsync("duet-icon", { key: '8fe84ccddba21b625e955f9a4ab07204eab192bb', icon: this.getIcon(), size: this.size, margin: "none" })));
25448
+ } }, hAsync("duet-icon", { key: 'b0dcc778049ee9d2877e6a27019f288de08693b9', icon: this.getIcon(), size: this.size, margin: "none" })));
25102
25449
  }
25103
25450
  static get style() { return duetStatusIconCss; }
25104
25451
  static get cmpMeta() { return {
@@ -25220,13 +25567,13 @@ class DuetStep {
25220
25567
  * Always the last one in the class.
25221
25568
  */
25222
25569
  render() {
25223
- return (hAsync("div", { key: '3204237f7f65d0f7e40d171da59beae2438d0b73', class: {
25570
+ return (hAsync("div", { key: '37dcde2a09c0e543e37af2938511c4e872d5cae3', class: {
25224
25571
  "duet-step": true,
25225
25572
  [`is-${this.state}`]: true,
25226
25573
  "rounded-top": this.roundedTop,
25227
25574
  "rounded-bottom": this.roundedBottom,
25228
25575
  "duet-theme-turva": this.theme === "turva",
25229
- } }, hAsync("div", { key: '144dc2c4f67e3ab88437ba11dbe665d8d938e998', class: "duet-step-heading", id: this.buttonId, role: this.state !== "current" ? "button" : "region", "aria-current": this.state === "current" ? "step" : undefined, tabindex: this.state !== "current" ? "0" : undefined, "aria-disabled": this.isClickDisabled().toString(), "aria-expanded": (this.state === "current").toString(), "aria-controls": this.contentId, "aria-selected": (this.state === "current").toString(), onClick: this.handleClick, onKeyDown: this.handleKeyDown, ref: element => (this.buttonElement = element) }, hAsync("div", { key: '3a16cbf1b403adb015eafda7d8768e17eae7fb40', "aria-hidden": "true" }, hAsync("div", { key: '8ee2d9f18fcef2d1cdb2ad43cf8a41c5615b4765', class: "duet-step-counter" }, this.renderStepCounter())), hAsync("duet-spacer", { key: '0dd226292f09ae93ba5ca9bde08511982771fe15', direction: "horizontal", size: "large", breakpoint: "small" }), hAsync("duet-spacer", { key: 'd2fea319dfc6db59b1aaba216a913c3a8e9e81e8', direction: "horizontal", size: "medium", breakpoint: "x-small" }), hAsync("div", { key: '7c3dee5bf9df62db35cbe5896551062c482d8b3e' }, hAsync("duet-heading", { key: '27d4325d36f4f0621af0bf633fe3de821822d4bc', theme: this.theme, level: this.headingLevel, visualLevel: "h4", color: this.headingColor(), margin: "none" }, this.heading)), hAsync("duet-spacer", { key: 'f0e367883df25339d1882ebe17ff56c3555d4cd1', direction: "horizontal", size: "large" }), hAsync("div", { key: 'f4313eed84ca3fe24272ce59a59b711169c4c0a8', class: "duet-step-heading-slot" }, hAsync("slot", { key: 'a06a67c70d672288b7ef3f76149561fe5200ed99', name: "heading-content" }))), hAsync("div", { key: '62b81bf1127a74bd5fb1cec4b0aa1e9c706d2038', class: "duet-step-content-wrapper" }, hAsync("div", { key: 'c46f37355b38f10b1dc182108cae7f444025246d', class: "duet-step-content", role: "region", "aria-labelledby": this.buttonId, id: this.contentId }, hAsync("slot", { key: 'f08a916f605a7227add9fdb0bd4f6ede0719ec02' })))));
25576
+ } }, hAsync("div", { key: '60cc26eaba669788bb129ee58c8396455bcbe98e', class: "duet-step-heading", id: this.buttonId, role: this.state !== "current" ? "button" : "region", "aria-current": this.state === "current" ? "step" : undefined, tabindex: this.state !== "current" ? "0" : undefined, "aria-disabled": this.isClickDisabled().toString(), "aria-expanded": (this.state === "current").toString(), "aria-controls": this.contentId, "aria-selected": (this.state === "current").toString(), onClick: this.handleClick, onKeyDown: this.handleKeyDown, ref: element => (this.buttonElement = element) }, hAsync("div", { key: 'd8bf199c1d4708327bc68f2ca7ca34881e606d9d', "aria-hidden": "true" }, hAsync("div", { key: '85d3a85ac2a10d5d890752aca579d63d307b2b40', class: "duet-step-counter" }, this.renderStepCounter())), hAsync("duet-spacer", { key: '601144eff6f14bb9a339f50496acd851426e42f4', direction: "horizontal", size: "large", breakpoint: "small" }), hAsync("duet-spacer", { key: 'cbee8cd26ef8ff6a7da62b4103ca125f2d507563', direction: "horizontal", size: "medium", breakpoint: "x-small" }), hAsync("div", { key: '98021d88fc8448ed6f6a74b933c7bc0fd8f26ec5' }, hAsync("duet-heading", { key: 'fd4de9e77b6d8bc773ca4431344cf97bdfe136be', theme: this.theme, level: this.headingLevel, visualLevel: "h4", color: this.headingColor(), margin: "none" }, this.heading)), hAsync("duet-spacer", { key: '1da55e5c04eca24aa75cc45977ddaa5d0de92020', direction: "horizontal", size: "large" }), hAsync("div", { key: '300dddded08ecc1b218a501076f95f2fd9b8a233', class: "duet-step-heading-slot" }, hAsync("slot", { key: '7a2cabe2f5d9855beb86893c4b9446217ba7725d', name: "heading-content" }))), hAsync("div", { key: 'f1ea6a3b0bc0c6a2572e6912ec674c42432f5f56', class: "duet-step-content-wrapper" }, hAsync("div", { key: '9bd2104be04904785340ecce44e3b91093555aad', class: "duet-step-content", role: "region", "aria-labelledby": this.buttonId, id: this.contentId }, hAsync("slot", { key: 'fa019373955fff315ba8324a011a6cdc64bdadd1' })))));
25230
25577
  }
25231
25578
  get element() { return getElement(this); }
25232
25579
  static get style() { return duetStepCss; }
@@ -25373,7 +25720,7 @@ class DuetStepper {
25373
25720
  * Always the last one in the class.
25374
25721
  */
25375
25722
  render() {
25376
- return (hAsync(Host, { key: 'f135a9f1ddcc6eaa86acdcdc9d11def0ec489b81', class: { "duet-m-0": this.margin === "none" } }, hAsync("div", { key: 'd68ff41042b6582c21d555e3131054278e9eaf1f', class: { "duet-stepper": true, "duet-theme-turva": this.theme === "turva" } }, hAsync("duet-visually-hidden", { key: '21d8af2f8896f0e5f893f041a2f3010ada1e74c9', "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement()), hAsync("slot", { key: 'efe281a3ddce9364e69c5131e7e59e3a9c2bb9d5' }))));
25723
+ return (hAsync(Host, { key: '6f441de1f6aa9336d4981a9727b0a5b79267ce06', class: { "duet-m-0": this.margin === "none" } }, hAsync("div", { key: 'bb37128420e9ec5b31375d46408fa6b201c23a73', class: { "duet-stepper": true, "duet-theme-turva": this.theme === "turva" } }, hAsync("duet-visually-hidden", { key: 'e39cc64f5bcac69f03283de656b47440b8cd6141', "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement()), hAsync("slot", { key: '747ef3274ad5dda720a3632086ae1b240e6f30f8' }))));
25377
25724
  }
25378
25725
  get element() { return getElement(this); }
25379
25726
  static get watchers() { return {
@@ -25527,19 +25874,19 @@ class DuetSubmenuBar {
25527
25874
  * Always the last one in the class.
25528
25875
  */
25529
25876
  render() {
25530
- return (hAsync(Host, { key: '463af77c5ac9d7a775876cfc005df160c5e7fdfa' }, hAsync("nav", { key: 'fcbdbfc332d352007b1122ffa65cd6d13012a559', class: {
25877
+ return (hAsync(Host, { key: '3ff35419759d1a9ad9b6bf47beadc27a1e9b4fd5' }, hAsync("nav", { key: '0c4826d0281672c9c4cd38467846e87300693186', class: {
25531
25878
  "duet-submenu-bar": true,
25532
25879
  "duet-theme-turva": this.theme === "turva",
25533
25880
  hidden: this.hidden,
25534
- }, "aria-label": this.accessibleLabel }, this.hasItems && (hAsync("button", { key: '98fadd59813f2aae19d4cb5d4734d73a98d4bb7e', ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
25881
+ }, "aria-label": this.accessibleLabel }, this.hasItems && (hAsync("button", { key: '686fb5823190f88c99fb23ef6432ac1585f6ee45', ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
25535
25882
  active: this.open,
25536
- }, onClick: this.onClick }, hAsync("span", { key: 'dc38b3df13d3a4d1b4a9c78c53a9fc68b932152e', class: "label" }, hAsync("slot", { key: '128302a4e4c2c6e68d9fd8cb96d1439db8daf800', name: "label" }), hAsync("duet-icon", { key: '0d4d0b35713d68685084568f0f95f1818b8deaca', theme: this.theme, class: "caret", name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" })))), hAsync("div", { key: '7396ba0b29224cfa487e725604ff50dab010cdeb', class: {
25883
+ }, onClick: this.onClick }, hAsync("span", { key: '5f09108a31bcd0f1ddd63396fd305151549aed05', class: "label" }, hAsync("slot", { key: '30e775986f716fbad49c5c6d8470d2fe67e600b4', name: "label" }), hAsync("duet-icon", { key: 'a78cf4548c27b73fcf82844dca0157dbcbf13364', theme: this.theme, class: "caret", name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" })))), hAsync("div", { key: '0194dee3ce095f88700eae27ff5a99868f9078c0', class: {
25537
25884
  "menu-container": true,
25538
25885
  hidden: !this.open,
25539
- }, role: "presentation" }, hAsync("div", { key: '4b5178a06a8933dfb9be60276a1a893158c62aaa', role: this.mobile ? "menu" : null, id: "menu", "aria-labelledby": this.mobile ? "button" : null, "aria-expanded": this.mobile ? (this.open ? "true" : "false") : null, class: {
25886
+ }, role: "presentation" }, hAsync("div", { key: '8a79a253a3d22aa4f5f6d29888ce8ddc4481a495', role: this.mobile ? "menu" : null, id: "menu", "aria-labelledby": this.mobile ? "button" : null, "aria-expanded": this.mobile ? (this.open ? "true" : "false") : null, class: {
25540
25887
  items: true,
25541
25888
  hidden: !this.open,
25542
- }, ref: element => (this.itemsContainer = element) }, hAsync("div", { key: '71ee3de51b625b340635a30fb39292e25ddfc116', class: "list", role: this.mobile ? "presentation" : "list" }, hAsync("slot", { key: '4baa81a1de7c328e826df2f752075a9c4b05af0f' }), hAsync("div", { key: '38b755c720305c3627d82a5e53af380752616396', class: "list-padding" }))), hAsync("duet-overlay", { key: '62afaa179b2175f4c4c6cd56c6773675cffc061c', "keep-stacking-context": true, visible: this.open, "display-device": "not-large", transition: "immediate" })))));
25889
+ }, ref: element => (this.itemsContainer = element) }, hAsync("div", { key: 'abd6d1c3b5be7df89c5e315dda8a2a1261616f01', class: "list", role: this.mobile ? "presentation" : "list" }, hAsync("slot", { key: '45f3b141e48cc834563d75f322a9233fb738e673' }), hAsync("div", { key: '81a672a413497e5e2f5889f8bad070cb7bfd01b7', class: "list-padding" }))), hAsync("duet-overlay", { key: '6a77a27276d5fa07e17f2ca21ec0d62fa1b252f8', "keep-stacking-context": true, visible: this.open, "display-device": "not-large", transition: "immediate" })))));
25543
25890
  }
25544
25891
  get element() { return getElement(this); }
25545
25892
  static get watchers() { return {
@@ -25671,18 +26018,18 @@ class DuetSubmenuBarDropdown {
25671
26018
  * Always the last one in the class.
25672
26019
  */
25673
26020
  render() {
25674
- return (hAsync(Host, { key: 'b08d71c303bbbb5dc488ccb9df3a6606cbcee45f', role: "listitem" }, hAsync("div", { key: 'f27808ba704701f0857e90d8c4474f11f2bd284d', class: {
26021
+ return (hAsync(Host, { key: '9db89f3062b1138f1cbaaacd84a97026ff56c5ff', role: "listitem" }, hAsync("div", { key: '0f9e619dc382e085278c5f36fc978241760b3e70', class: {
25675
26022
  "duet-submenu-bar-dropdown": true,
25676
26023
  "duet-theme-turva": this.theme === "turva",
25677
26024
  open: this.open,
25678
26025
  active: this.active,
25679
- } }, hAsync("button", { key: 'da50cea3b3daea0da483dc01649345a9fcc27d55', ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-current": this.active ? "true" : "false", id: "button", type: "button", class: {
26026
+ } }, hAsync("button", { key: '1ecf4e3ee3775963e103647d5d76c7b4a59d0445', ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-current": this.active ? "true" : "false", id: "button", type: "button", class: {
25680
26027
  open: this.open,
25681
26028
  active: this.active,
25682
- }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (hAsync("duet-icon", { key: '41562541f2cf4bbe9e8d6ccb3214b8fc5b44079f', class: "submenu-bar-dropdown-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), hAsync("div", { key: '8b2782607b3478bc491ce2fa423257d4233968fa', class: "label" }, hAsync("span", { key: '5b22aff9852f284416e15d60b1a262e963ff228e', class: "label-text" }, hAsync("slot", { key: 'aec50191a12adf0fbd6f9e388c2dc09954d21f83', name: "label" })), hAsync("duet-icon", { key: '154795bda221d38ca73b47a86c97da4c6e4d573b', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { key: '574669c2280fa1e7e4d14666f95fbe912a068119', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
26029
+ }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (hAsync("duet-icon", { key: 'a8f70f3768575a3bca672d8918ba83a1077e9603', class: "submenu-bar-dropdown-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), hAsync("div", { key: 'a53417b0ca2642132cf89acfbb1022b593c1a28b', class: "label" }, hAsync("span", { key: '45fca6c9e11c261e27861f263dc2f200e1dfe15a', class: "label-text" }, hAsync("slot", { key: 'cbda020e4fac6600b839cb9c70309914eb80c5eb', name: "label" })), hAsync("duet-icon", { key: 'f4276eaab67b32aec06ce3f1f3b88541ade918f4', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { key: '82c3d5e082beabeb0efc9d240c9d5d921f1b3f45', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
25683
26030
  items: true,
25684
26031
  hidden: !this.open,
25685
- } }, hAsync("slot", { key: '9a69e63aae77e184049ed7d8f7f511d47eca642e' })))));
26032
+ } }, hAsync("slot", { key: '77eaa9506cdf662ffb1d04163e20e1d55d59fec0' })))));
25686
26033
  }
25687
26034
  get element() { return getElement(this); }
25688
26035
  static get style() { return duetSubmenuBarDropdownCss; }
@@ -25751,12 +26098,12 @@ class DuetSubmenuBarDropdownLink {
25751
26098
  * Always the last one in the class.
25752
26099
  */
25753
26100
  render() {
25754
- return (hAsync(Host, { key: '206adf55a559a97afad7c5bc107b46f6a099d8c0' }, hAsync("a", { key: 'a61437b76e1ecd5c7d61b773b0b97fe43c457bc5', class: {
26101
+ return (hAsync(Host, { key: '1f3a52370b17848c34c4e5d67d2ea95e4d7c8132' }, hAsync("a", { key: '5375c770391baab31637c149774f551bef8ebb72', class: {
25755
26102
  "duet-submenu-bar-dropdown-link": true,
25756
26103
  "duet-theme-turva": this.theme === "turva",
25757
26104
  highlight: this.highlight,
25758
26105
  active: this.active,
25759
- }, "aria-current": this.active ? "true" : "false", href: this.href, onKeyUp: e => this.handleEscape(e) }, this.icon && hAsync("duet-icon", { key: '50c64c74c7f21aebcb34252b9a5fbf75c391c0d3', name: this.icon, size: "x-small", margin: "none", color: "currentColor" }), hAsync("span", { key: '0e697759844c9f0255d18fdb41765290f1389581', class: "label-container" }, hAsync("span", { key: '3fafa6fece2c5188ec289dbc6fab760d49c73fb4', class: "label" }, hAsync("slot", { key: '498dacafcd6fa3c3d097e9bcceb9e78c906cc236' })), this.caret && hAsync("duet-icon", { key: 'd7055d84b2cd8de873b0400e7b3434f7670f987a', name: "action-arrow-right-small", size: "xxx-small", margin: "none" })), this.active && (hAsync("duet-icon", { key: '40d559b351fcc4d3f56f26045d065a55b840c740', class: "active-check", name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor" })))));
26106
+ }, "aria-current": this.active ? "true" : "false", href: this.href, onKeyUp: e => this.handleEscape(e) }, this.icon && hAsync("duet-icon", { key: '33cdb0067f000f88f498f6f09e051a9e52a7f08c', name: this.icon, size: "x-small", margin: "none", color: "currentColor" }), hAsync("span", { key: '9f3eef8e19ff33804e27a02abac519eae7511670', class: "label-container" }, hAsync("span", { key: '3d4ca78914093332e94dd1dbad77128afd5c9fa5', class: "label" }, hAsync("slot", { key: 'ee23c1e008fa9921e6338e6970a320dca9153819' })), this.caret && hAsync("duet-icon", { key: 'c584820003432e257e36b9ba412f9b4685503730', name: "action-arrow-right-small", size: "xxx-small", margin: "none" })), this.active && (hAsync("duet-icon", { key: '9e91428c0825aed310abae4214ee7f7fb3f77bf4', class: "active-check", name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor" })))));
25760
26107
  }
25761
26108
  get element() { return getElement(this); }
25762
26109
  static get style() { return duetSubmenuBarDropdownLinkCss; }
@@ -25852,7 +26199,7 @@ class DuetSubmenuBarItem {
25852
26199
  render() {
25853
26200
  const TagName = this.url ? "a" : "button";
25854
26201
  const role = this.url ? "link" : "button";
25855
- return (hAsync(Host, { key: '35be20639e3574ca775aa4b697485c84a1512045', role: "listitem" }, hAsync(TagName, { key: '10e74fbfad350fa687d2ed5c6d5bfa6c3c3b7a08', target: !this.url ? null : this.external ? "_blank" : "_self", ref: element => (this.itemElement = element), class: { "duet-submenu-bar-item": true, "duet-theme-turva": this.theme === "turva", active: this.active }, href: this.url, onKeyUp: e => this.handleEscape(e), "aria-current": this.active ? "true" : "false", "aria-label": (this.url && getAccessibleLinkLabel(this)) || this.accessibleLabel, "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined, role: role, rel: this.external ? "noopener" : undefined }, this.leadingIcon && (hAsync("duet-icon", { key: 'e4de062ea87077cdf5ab2f80a72cb746d10b32e9', class: "leading-icon", theme: this.theme, name: this.leadingIcon, size: "auto", margin: "none", color: "currentColor" })), hAsync("div", { key: '1829e95b6db1e8970ca53e5f8332b0aa97df310a', class: "label" }, hAsync("span", { key: '815b45070604d6a9fc3f875677119480812c448d', class: "label-text" }, hAsync("slot", { key: '195a9798c946491c1ec6318a99b5738e92d68f58' })), (this.trailingIcon || this.external) && (hAsync("duet-icon", { key: '8718695a96ec8294833a18791aeefbe51526308f', class: {
26202
+ return (hAsync(Host, { key: 'c675c500658117f8fa1fe3629f63caf42fa5cfc5', role: "listitem" }, hAsync(TagName, { key: '444e618b383e220a1f564ae17479db6d34f2b195', target: !this.url ? null : this.external ? "_blank" : "_self", ref: element => (this.itemElement = element), class: { "duet-submenu-bar-item": true, "duet-theme-turva": this.theme === "turva", active: this.active }, href: this.url, onKeyUp: e => this.handleEscape(e), "aria-current": this.active ? "true" : "false", "aria-label": (this.url && getAccessibleLinkLabel(this)) || this.accessibleLabel, "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined, role: role, rel: this.external ? "noopener" : undefined }, this.leadingIcon && (hAsync("duet-icon", { key: 'fd9700bf1c3d961a93743de0d869f484553b16bf', class: "leading-icon", theme: this.theme, name: this.leadingIcon, size: "auto", margin: "none", color: "currentColor" })), hAsync("div", { key: '0f4c3625759850d77add064f64408d776f1f46a1', class: "label" }, hAsync("span", { key: 'abda37eff9b40128fcf46e0c81120eaaa5b0e260', class: "label-text" }, hAsync("slot", { key: '2669839ad630664e4c309a77845668a80b6b807d' })), (this.trailingIcon || this.external) && (hAsync("duet-icon", { key: 'fc997b7d0c63d208f6a5e492fea73e1b30c86706', class: {
25856
26203
  "trailing-icon": !!this.trailingIcon,
25857
26204
  "trailing-icon-arrow": this.trailingIcon === "action-arrow-down-small",
25858
26205
  "external-icon": !!this.external,
@@ -25924,7 +26271,7 @@ class DuetSubmenuBarLink {
25924
26271
  * Always the last one in the class.
25925
26272
  */
25926
26273
  render() {
25927
- return (hAsync(Host, { key: '43fe2f21e9f7ce5b2ea4a31fb4ac6f9f76b7dea7', role: "listitem" }, hAsync("a", { key: '78ffb34f6f54b32f8c8401139b23b34a5fe9ef95', class: { "duet-submenu-bar-link": true, "duet-theme-turva": this.theme === "turva", active: this.active }, href: this.href, onKeyUp: e => this.handleEscape(e), "aria-current": this.active ? "true" : "false" }, this.icon && (hAsync("duet-icon", { key: 'c42d8f5d5fe3c4b9d4dbcfe3151a1ee2c7be2ec2', class: "submenu-bar-link-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), hAsync("span", { key: 'a2e72daf94cc2c40ab025e399c949b4f8111bdea', class: "label" }, hAsync("slot", { key: 'a5fb89a7dc0aea64b82a6be83104f8b9971066c8' })))));
26274
+ return (hAsync(Host, { key: 'cee1435399e91c4d88abe58e3172d8093bf58796', role: "listitem" }, hAsync("a", { key: '094e7647704343b0511d58f7856eba9f5449ba0f', class: { "duet-submenu-bar-link": true, "duet-theme-turva": this.theme === "turva", active: this.active }, href: this.href, onKeyUp: e => this.handleEscape(e), "aria-current": this.active ? "true" : "false" }, this.icon && (hAsync("duet-icon", { key: '85b33b8d9609e1962cbac3e9fb57bc648042c4e6', class: "submenu-bar-link-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), hAsync("span", { key: '22bc415cdb1cb8ba85aa0ed47367985443675de8', class: "label" }, hAsync("slot", { key: '2a2a7bdb82c185690ae5b73df3d449716ed80e6c' })))));
25928
26275
  }
25929
26276
  get element() { return getElement(this); }
25930
26277
  static get style() { return duetSubmenuBarLinkCss; }
@@ -26050,7 +26397,7 @@ class DuetTab {
26050
26397
  * Always the last one in the class.
26051
26398
  */
26052
26399
  render() {
26053
- return (hAsync("div", { key: 'a022a330a4f4eef2664a452c8f0df2b84e46c429', ref: element => {
26400
+ return (hAsync("div", { key: 'df1d38a00ae486704755f845444bbb3d99c63017', ref: element => {
26054
26401
  if (!this.contentId) {
26055
26402
  this.tabpanelElement = element;
26056
26403
  }
@@ -26059,7 +26406,7 @@ class DuetTab {
26059
26406
  "duet-tab": true,
26060
26407
  selected: this.selected,
26061
26408
  "has-content-id": !!this.contentId,
26062
- }, "aria-description": this.accessibleDescription, "aria-labelledby": this.accessibleLabelledBy, tabindex: "-1" }, hAsync("slot", { key: 'fcb609d847cf496ada314f386a9b82dab58a7c19' })));
26409
+ }, "aria-description": this.accessibleDescription, "aria-labelledby": this.accessibleLabelledBy, tabindex: "-1" }, hAsync("slot", { key: '31ef9a143a4015fd0fe6eb0ce190dc4b5bbbd582' })));
26063
26410
  }
26064
26411
  get element() { return getElement(this); }
26065
26412
  static get watchers() { return {
@@ -26370,13 +26717,13 @@ class DuetTabGroup {
26370
26717
  [largeBreakpoint]: ["default", "plain", "plain-scrolling"].includes(this.variation) ? true : false,
26371
26718
  "duet-theme-turva": this.theme === "turva",
26372
26719
  }, onClick: () => this.onTabSelect(index), onKeyDown: ev => this.handleKeyDown(ev) }, this.variation === "checked" ? (hAsync("div", { class: { "checked-tab-content": true, "stackable-checked-tab-content": this.tabs.length <= 3 } }, hAsync("div", { class: { "checked-tab-description": true, "stackable-description": this.tabs.length <= 3 } }, hAsync("p", null, element.label), hAsync("p", { class: { "tab-caption": true, selected: element.selected } }, element.caption)), hAsync("div", { class: { "stackable-checkmark": this.tabs.length <= 3 } }, hAsync("duet-checkmark", { theme: this.theme, checked: element.selected, type: "radio", "presentation-only": true, center: true })))) : (element.label), element.indicator && (hAsync("duet-indicator", { variation: element.indicator, "accessible-label": element.indicatorAccessibleLabel })))));
26373
- return (hAsync("div", { key: 'e2033f2294825d4208922a3705030fdc4410248c', class: {
26720
+ return (hAsync("div", { key: '417e3a0eb99cdf3d6df636586be7435cad2144ac', class: {
26374
26721
  "duet-tab-group": true,
26375
26722
  "duet-theme-turva": this.theme === "turva",
26376
26723
  [variationClass]: true,
26377
26724
  "duet-tab-plain-scrolling": this.variation === "plain-scrolling",
26378
26725
  "duet-tab-group-scrolls": true,
26379
- }, "aria-label": this.accessibleLabel }, hAsync("div", { key: 'e296d279b91e3412d4bb11410eb7b752208828ba', role: "tablist", class: {
26726
+ }, "aria-label": this.accessibleLabel }, hAsync("div", { key: 'da12d48bcbb77d4e88ca34c63ee54c63db53eacd', role: "tablist", class: {
26380
26727
  "duet-m-0": this.margin === "none" || this.variation === "checked",
26381
26728
  "duet-tab-group-tabs": true,
26382
26729
  "duet-tab-group-hidden": this.tabs.length > 3 && !isSwipeScrollable,
@@ -26387,11 +26734,11 @@ class DuetTabGroup {
26387
26734
  } }, this.variation === "checked" ? (buttons) : (hAsync("div", { class: {
26388
26735
  "duet-tab-group-scrollable-wrapper": true,
26389
26736
  "duet-tab-group-fill-space-wrapper": this.fillSpace && this.variation === "default",
26390
- } }, this.fillSpace && !this.stretch && this.variation === "default" && (hAsync("div", { class: "duet-scrollable-stretch-overlay" }, hAsync("div", { class: "background" }), hAsync("div", { class: "border" }))), hAsync("duet-scrollable", { selected: this.selected, identifier: this.identifier, gap: ["default", "plain", "plain-scrolling"].includes(this.variation) ? "none" : "large", buttonPosition: this.variation === "default" ? "absolute" : "relative", center: this.isCentered() ? this.isCentered() : this.element.style.textAlign == "center", theme: this.theme, stretch: this.stretch }, buttons)))), hAsync("div", { key: '58eaf09f8633b86c594a0cd2662f6bbfa0a160ec', class: {
26737
+ } }, this.fillSpace && !this.stretch && this.variation === "default" && (hAsync("div", { class: "duet-scrollable-stretch-overlay" }, hAsync("div", { class: "background" }), hAsync("div", { class: "border" }))), hAsync("duet-scrollable", { selected: this.selected, identifier: this.identifier, gap: ["default", "plain", "plain-scrolling"].includes(this.variation) ? "none" : "large", buttonPosition: this.variation === "default" ? "absolute" : "relative", center: this.isCentered() ? this.isCentered() : this.element.style.textAlign == "center", theme: this.theme, stretch: this.stretch }, buttons)))), hAsync("div", { key: '25e346444619db75d262e11a84acdfaaafa2257c', class: {
26391
26738
  "duet-tab-group-content": true,
26392
26739
  "duet-m-0": this.margin === "none",
26393
26740
  "checked-group-content": this.variation === "checked",
26394
- } }, hAsync("slot", { key: '45359a79c82f0c35f1a5502c2ecb8af934ad9248' }))));
26741
+ } }, hAsync("slot", { key: 'c63f225ca6cd084bb78f4f3bcc046d21c9d47e0a' }))));
26395
26742
  }
26396
26743
  get element() { return getElement(this); }
26397
26744
  static get style() { return duetTabGroupCss; }
@@ -26497,7 +26844,7 @@ duet-table {
26497
26844
  th {
26498
26845
  font-weight: ${fontWeightSemiBold};
26499
26846
  line-height: ${lineHeightSmall};
26500
- color: ${colorGrayDarker};
26847
+ color: ${colorForegroundSecondary};
26501
26848
  text-align: left;
26502
26849
  }
26503
26850
 
@@ -26649,7 +26996,7 @@ duet-table {
26649
26996
  }
26650
26997
  }
26651
26998
 
26652
-
26999
+
26653
27000
 
26654
27001
  tbody th {
26655
27002
  padding-top: calc(${spaceLarge} * 2) !important;
@@ -26835,7 +27182,7 @@ duet-table {
26835
27182
  }
26836
27183
  }
26837
27184
  }
26838
-
27185
+
26839
27186
  duet-table.duet-theme-turva table {
26840
27187
  font-family: ${fontFamilyTextTurva};
26841
27188
  }
@@ -26845,7 +27192,7 @@ duet-table.duet-theme-turva td {
26845
27192
  }
26846
27193
 
26847
27194
  duet-table.duet-theme-turva th {
26848
- color: ${colorGrayDarkTurva};
27195
+ color: ${colorForegroundSecondaryTurva};
26849
27196
  }
26850
27197
 
26851
27198
  duet-table.duet-theme-turva tbody th {
@@ -27041,7 +27388,7 @@ class DuetTable {
27041
27388
  }
27042
27389
  }
27043
27390
  render() {
27044
- return (hAsync(Host, { key: '02ed0a7f4b3c7504b0f6df2ee9e923f5afbca106', class: {
27391
+ return (hAsync(Host, { key: '968bf1e9fea756e09fd9c3c26596fcf857ad8a61', class: {
27045
27392
  [`duet-table-${this.variation}`]: true,
27046
27393
  "duet-table-flattened": !this.matchesBreakpoint,
27047
27394
  // sticky only valid when in regular table layout
@@ -27050,7 +27397,7 @@ class DuetTable {
27050
27397
  "duet-m-0": this.margin === "none",
27051
27398
  "duet-theme-turva": this.theme === "turva",
27052
27399
  "duet-table-hide-head-visually": this.hideHeadVisually,
27053
- } }, hAsync("slot", { key: '946a620f959caf19dc712844d81ebc345870757d' })));
27400
+ } }, hAsync("slot", { key: 'ccde2e16ca1aea0af30556faad3207a61a8219d0' })));
27054
27401
  }
27055
27402
  get element() { return getElement(this); }
27056
27403
  static get watchers() { return {
@@ -27313,17 +27660,17 @@ class DuetTextarea {
27313
27660
  */
27314
27661
  render() {
27315
27662
  const identifier = this.identifier || this.textareaId;
27316
- return (hAsync(Host, { key: '05f3a128ed669c1c1ca8c0a2a18b3e031b324813', class: {
27663
+ return (hAsync(Host, { key: 'a84e87889b86103cfb25a6fb62d5ae9fc921dde3', class: {
27317
27664
  "duet-m-0": this.margin === "none",
27318
27665
  "duet-has-counter": this.counter && !this.error,
27319
27666
  "duet-expand": this.expand,
27320
- } }, hAsync("div", { key: 'cdd7bcb109c16962d31337146fe774bc7efb248c', class: {
27667
+ } }, hAsync("div", { key: '1cac0725d91c47a8539a3a915e033ff98dbcefeb', class: {
27321
27668
  "duet-textarea-container": true,
27322
27669
  "duet-theme-turva": this.theme === "turva",
27323
27670
  "duet-label-hidden": this.labelHidden,
27324
27671
  "duet-input-top-caption-shown": this.isCaptionVisible,
27325
27672
  "has-error": !!this.error,
27326
- } }, hAsync(DuetInternalLabel, { key: '9577e3a46d2b1344744377fbada4ad5328482faa', theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, margin: this.isCaptionVisible ? "small" : "auto", color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: identifier }, this.label), this.tooltip && (hAsync("duet-tooltip", { key: 'c7dfb100492fda0d4b0520a94817a21ff6f7b2f4', direction: this.tooltipDirection, accessibleInputLabel: this.label, theme: this.theme === "turva" ? "turva" : "default" }, this.tooltip)), hAsync("slot", { key: '73d669dcf81bec021dd60d536bcc868a1219493b', name: "tooltip" }), this.caption && (hAsync("duet-caption", { key: '87e9b7e449ab45c533471f0e4a55a56a2886938b', id: this.topCaptionId, size: "medium", theme: this.theme === "turva" ? "turva" : "default" }, this.caption)), hAsync("div", { key: '3d776d906f0c1aaec10060fea52ed11aed6cae20', class: "duet-textarea-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (hAsync("duet-caption", { key: 'c11be289c215a5a4a2487cffcbd3c154e266b506', id: this.topCaptionPlaceholderId, class: "duet-textarea-placeholder", size: "small" }, this.placeholder)), hAsync("textarea", { key: '20ad68b533a7f0ff28ab8d4834eb8d98640b80fa', onInput: this.handleInput, onChange: this.handleChange, onBlur: this.handleBlur, onFocus: this.handleFocus, ref: input => (this.nativeInput = input), class: { "duet-textarea": true, disabled: this.disabled }, value: this.value, disabled: this.disabled, "aria-labelledby": this.accessibleLabelledBy ? `${this.labelId} ${this.accessibleLabelledBy}` : this.labelId, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.getDescribedBy(), "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, placeholder: this.placeholder, spellcheck: "false", required: this.required, rows: this.rows, minlength: this.minlength, maxlength: this.maxlength, role: this.role, name: this.name, id: identifier })), hAsync("duet-grid", { key: '97abd3da766e5639bfe79bf20bb8ba0d8445cdfe', alignment: "stretch" }, hAsync("duet-grid-item", { key: 'fcfe43263013ccb1df5f6b4ad99ba412d224ed87', margin: "none", fill: true }, hAsync("div", { key: '88a02d777a98f50bf1827da24cd1b8e41826714f', class: "duet-textarea-help duet-textarea-error", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && hAsync("span", { key: '626befd06c4ce9ee080962e223e6b0b5c90a52ee' }, this.error))), hAsync("duet-grid-item", { key: '58e2571ae0fc52c2488b64aedfb26c722a90be48', margin: "none", class: "duet-character-count-caption" }, this.counter && hAsync(CharacterCount, { key: '3a0ae7aefb6b52348a252b49cf166139cb1b4e27', theme: this.theme, value: this.value, maxlength: this.maxlength }))), this.counter && this.maxlength && (hAsync("duet-visually-hidden", { key: '146f69804cf6df2efcd04212e8853fdf15524f77', id: this.characterCountId, class: "visually-hidden-counter", "aria-live": "polite" }, this.visuallyHiddenCounterText)))));
27673
+ } }, hAsync(DuetInternalLabel, { key: '902dadd1b95a410ed378ce38e71644138e3aae28', theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, margin: this.isCaptionVisible ? "small" : "auto", color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: identifier }, this.label), this.tooltip && (hAsync("duet-tooltip", { key: 'db32f6f507a45acaeb0c1a5128544855ae8e0e31', direction: this.tooltipDirection, accessibleInputLabel: this.label, theme: this.theme === "turva" ? "turva" : "default" }, this.tooltip)), hAsync("slot", { key: '40464ec1d95d3880de8197f5780865cdff77233d', name: "tooltip" }), this.caption && (hAsync("duet-caption", { key: '818b2b3294cca406e31397dfb2a77110891bd4ee', id: this.topCaptionId, size: "medium", theme: this.theme === "turva" ? "turva" : "default" }, this.caption)), hAsync("div", { key: '515635119956e32aba3bf1949f183bd37dcbbf63', class: "duet-textarea-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (hAsync("duet-caption", { key: '040fe7c9caaa720aa2b2ae9124252da85d083ceb', id: this.topCaptionPlaceholderId, class: "duet-textarea-placeholder", size: "small" }, this.placeholder)), hAsync("textarea", { key: '39f181d89675a7c0cdd6a0492108c61aa8a66779', onInput: this.handleInput, onChange: this.handleChange, onBlur: this.handleBlur, onFocus: this.handleFocus, ref: input => (this.nativeInput = input), class: { "duet-textarea": true, disabled: this.disabled }, value: this.value, disabled: this.disabled, "aria-labelledby": this.accessibleLabelledBy ? `${this.labelId} ${this.accessibleLabelledBy}` : this.labelId, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.getDescribedBy(), "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, placeholder: this.placeholder, spellcheck: "false", required: this.required, rows: this.rows, minlength: this.minlength, maxlength: this.maxlength, role: this.role, name: this.name, id: identifier })), hAsync("duet-grid", { key: '4cefb97e18df23468e25743c4f62e4df7e5d9257', alignment: "stretch" }, hAsync("duet-grid-item", { key: 'bb2d8ca91b5478ceb814090fe1c24e48704f5747', margin: "none", fill: true }, hAsync("div", { key: '208c4ddda91e2b97459815079c7b9a552366d4ab', class: "duet-textarea-help duet-textarea-error", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && hAsync("span", { key: '9957ee1bbb21233d09e116992fa88f14185f043a' }, this.error))), hAsync("duet-grid-item", { key: '99713afc0205b671f95297e3991ed28a55a73b73', margin: "none", class: "duet-character-count-caption" }, this.counter && hAsync(CharacterCount, { key: '855bec2958e7aa564ec9ca5958881ad1d597fd2b', theme: this.theme, value: this.value, maxlength: this.maxlength }))), this.counter && this.maxlength && (hAsync("duet-visually-hidden", { key: 'd76477f0c64de79265740ae7a6bb251bdba9dd0f', id: this.characterCountId, class: "visually-hidden-counter", "aria-live": "polite" }, this.visuallyHiddenCounterText)))));
27327
27674
  }
27328
27675
  get element() { return getElement(this); }
27329
27676
  static get watchers() { return {
@@ -27492,11 +27839,11 @@ class DuetToggle {
27492
27839
  */
27493
27840
  render() {
27494
27841
  const identifier = this.identifier || this.toggleId;
27495
- return (hAsync(Host, { key: '59feea89498c2b31bdeb767328bffb2d92c81856', onClick: this.disabled || this.loading ? undefined : this.onClick, class: {
27842
+ return (hAsync(Host, { key: 'ba421a50fdc02e229fa28f85ff056b7871a49622', onClick: this.disabled || this.loading ? undefined : this.onClick, class: {
27496
27843
  "duet-m-0": this.margin === "none",
27497
27844
  "duet-toggle-is-disabled": this.disabled,
27498
27845
  "duet-toggle-is-loading": this.loading,
27499
- } }, hAsync("div", { key: '7d66f262fd726f6552ccc0b4fcf7d65f79168bec', class: {
27846
+ } }, hAsync("div", { key: '81bcd7c487268f6f79e227a5964049c31c50537e', class: {
27500
27847
  "duet-toggle": true,
27501
27848
  "duet-theme-turva": this.theme === "turva",
27502
27849
  "duet-side-label": this.labelPosition !== "top",
@@ -27504,7 +27851,7 @@ class DuetToggle {
27504
27851
  "duet-label-hidden": this.labelHidden,
27505
27852
  "duet-toggle-is-disabled": this.disabled,
27506
27853
  "duet-toggle-is-loading": this.loading,
27507
- } }, hAsync(DuetInternalLabel, { key: 'b51094e9ff80a2d2d38d62207031e882e22c6594', theme: this.theme, color: this.labelColor, weight: this.labelWeight, for: identifier, margin: this.labelPosition === "top" ? "auto" : "none" }, this.label), hAsync("div", { key: 'e43214898c9e9db3cdbff5a9bebb6a4123a1f60a', class: "duet-switch" }, hAsync("input", { key: 'e7c74dafd11c4afc1bee288239f0e7fd3a07259d', type: "checkbox", value: this.value, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, id: identifier, role: this.role, name: this.name, checked: this.checked, required: this.required, disabled: this.disabled || this.loading, ref: input => (this.nativeInput = input) }), hAsync("div", { key: 'a44ada35c0d948eb093047aa5ebbfbdcd06d8da2', class: { "duet-slider": true, "duet-theme-turva": this.theme === "turva" } }), this.loading && hAsync("duet-spinner", { key: '8e3400e0d490ca097597adb600b7a6560593c4f8', color: "primary" }))), this.loading && (hAsync("duet-visually-hidden", { key: '8cf3c405c4765f07b0e96359f88e527d0070be46', "aria-live": "polite" }, this.accessibleLabelLoading || DuetStringsLoadingDefaults[getLanguage()])), this.loadingComplete && (hAsync("duet-visually-hidden", { key: '5738bb3897bc0b07ef73299a6d12901c8c8be40c', "aria-live": "polite" }, this.accessibleLabelComplete || DuetStringsCompleteDefaults[getLanguage()]))));
27854
+ } }, hAsync(DuetInternalLabel, { key: '9a9c911786434d7324b8e88a8d908102a433b4f6', theme: this.theme, color: this.labelColor, weight: this.labelWeight, for: identifier, margin: this.labelPosition === "top" ? "auto" : "none" }, this.label), hAsync("div", { key: 'de416640cd8c34241f9f8f014c71f0ec664a16a7', class: "duet-switch" }, hAsync("input", { key: 'd420b3d44b53e0daf276c9a7cabde816bff13fa2', type: "checkbox", value: this.value, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, id: identifier, role: this.role, name: this.name, checked: this.checked, required: this.required, disabled: this.disabled || this.loading, ref: input => (this.nativeInput = input) }), hAsync("div", { key: '5def29eef95fba6e68134ce1c9061404bd390760', class: { "duet-slider": true, "duet-theme-turva": this.theme === "turva" } }), this.loading && hAsync("duet-spinner", { key: '1bf177270fc0d8e66aae450110abe9ca2340c156', color: "primary" }))), this.loading && (hAsync("duet-visually-hidden", { key: '101bf2c1752bbd1a263128aa1501b63938fee3d3', "aria-live": "polite" }, this.accessibleLabelLoading || DuetStringsLoadingDefaults[getLanguage()])), this.loadingComplete && (hAsync("duet-visually-hidden", { key: 'd1e8b6bf58b301f82fee88b83a5591e146a16d86', "aria-live": "polite" }, this.accessibleLabelComplete || DuetStringsCompleteDefaults[getLanguage()]))));
27508
27855
  }
27509
27856
  get element() { return getElement(this); }
27510
27857
  static get watchers() { return {
@@ -27585,11 +27932,11 @@ class DuetToolbar {
27585
27932
  : this.variation === "secondary"
27586
27933
  ? "secondary"
27587
27934
  : "default";
27588
- return (hAsync(Host, { key: '2434866ef0b95d7b07a2248edc89a4f473d9ecc6' }, hAsync("nav", { key: '9938a3cd11e5230013027cb613c8aa81f95e5bf7', class: {
27935
+ return (hAsync(Host, { key: '810537e117ab39b71cb7722178846736f3cb0b85' }, hAsync("nav", { key: '12bad772d5ab1ff3e4adfca687da6c4d46ce93f0', class: {
27589
27936
  "duet-toolbar": true,
27590
27937
  "duet-theme-turva": this.theme === "turva",
27591
27938
  [variation]: true,
27592
- }, "aria-label": this.accessibleLabel }, hAsync("div", { key: '9c915e9ffe872ec9b253bf9c7b7ca58ac5c39bee', class: "container" }, hAsync("div", { key: '7a1ce3f543e9b908638de889a1b6b8270f73d830', class: "list", role: "list" }, hAsync("slot", { key: '396f255c2694dbff16ae2f2584be49e4f5d4fdf5', name: "left" })), hAsync("div", { key: '975122519f64947d2fc01d8a5c9fa63c3052097a', class: "list", role: "list" }, hAsync("slot", { key: '8d070c2c7e5a168d7c426df35a4b742a95696383', name: "right" }))))));
27939
+ }, "aria-label": this.accessibleLabel }, hAsync("div", { key: 'c4dc60b980cfaa54fed8a7578a766e9f7fe01825', class: "container" }, hAsync("div", { key: 'cc4af5be82d76864f8160d04419533a13223fa28', class: "list", role: "list" }, hAsync("slot", { key: 'e23afafe23ac2a9d8025e2239421e4a3c033d667', name: "left" })), hAsync("div", { key: '28bc42be2ee3cbfda1a9645ad8b66e8dec71977b', class: "list", role: "list" }, hAsync("slot", { key: '2f304cb81562a3bd030d5d2398a0516a6491d4e5', name: "right" }))))));
27593
27940
  }
27594
27941
  get element() { return getElement(this); }
27595
27942
  static get style() { return duetToolbarCss; }
@@ -27670,18 +28017,18 @@ class DuetToolbarDropdown {
27670
28017
  itemsAlign = this.element.parentElement.getAttribute("slot") === "left" ? "right" : "left";
27671
28018
  }
27672
28019
  const variation = this.variation === "negative" ? "negative" : "white";
27673
- return (hAsync(Host, { key: '7af8e188b72d1dd79f3445c543736d3c18d694e4', role: "listitem" }, hAsync("div", { key: '128c0412da716469ad79877951bf5b81f7987515', class: {
28020
+ return (hAsync(Host, { key: '537cb902a5fa3e679997e4e794d3335d0400caf6', role: "listitem" }, hAsync("div", { key: '8ff38e056a74dcd7a30e1ab09bfa7b757e0e224f', class: {
27674
28021
  "duet-toolbar-dropdown": true,
27675
28022
  "duet-theme-turva": this.theme === "turva",
27676
28023
  [itemsAlign]: true,
27677
28024
  [variation]: true,
27678
- } }, hAsync("button", { key: 'efc3cbf2c159c3b8a528e8ee58312bc9546b561e', ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-current": this.active ? "true" : "false", "aria-label": this.accessibleLabel, id: "button", type: "button", class: {
28025
+ } }, hAsync("button", { key: 'ed4415937f60d79cdff2794e8d0c9e32e2144ada', ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-current": this.active ? "true" : "false", "aria-label": this.accessibleLabel, id: "button", type: "button", class: {
27679
28026
  active: this.active,
27680
28027
  open: this.open,
27681
- }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (hAsync("duet-icon", { key: '502ded69ce168a1de15bd937aa8c1995f2b5df88', theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), hAsync("span", { key: '8c4851a8137ab50f524c9d24618f612834f38669', class: "label" }, hAsync("slot", { key: 'eebb0b4107c2060e48b334f35cff1458fc7b4d7c', name: "label" }), hAsync("duet-icon", { key: '961bcc314c446a4b85ae1259b67d5566a0dd0656', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { key: '843d1e28eb1a821021ff4e6c96269bb437980de7', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
28028
+ }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (hAsync("duet-icon", { key: '9b594c5aa508947d9cfe551cb9c9add1bcc95a7f', theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), hAsync("span", { key: '3f23e7a0c570956fbcaff50417cc79869b04c122', class: "label" }, hAsync("slot", { key: '51bdc6f723e217d090f4b611eaac211611e952e6', name: "label" }), hAsync("duet-icon", { key: 'e3ffbfb325327902cc56f9684f879164f4b3a659', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { key: 'dfcc391bafb75c326a62c89ac9d4221508e00efd', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
27682
28029
  items: true,
27683
28030
  hidden: !this.open,
27684
- } }, hAsync("slot", { key: '60c2a9af5229e10192605b60f2aaf8d65e136d42' })))));
28031
+ } }, hAsync("slot", { key: '946f25dc7587b757fbdb11125b9aade9501c6d91' })))));
27685
28032
  }
27686
28033
  get element() { return getElement(this); }
27687
28034
  static get style() { return duetToolbarDropdownCss; }
@@ -27747,11 +28094,11 @@ class DuetToolbarDropdownLink {
27747
28094
  * Always the last one in the class.
27748
28095
  */
27749
28096
  render() {
27750
- return (hAsync(Host, { key: '34a5369d2806e4474bbb32400d5563fddcc3590a' }, hAsync("a", { key: 'b16d10c8be40329d90136c486d568fb9511524d7', class: {
28097
+ return (hAsync(Host, { key: '5503edc925ef9f59d266699d49f280d803d96b1a' }, hAsync("a", { key: '78cfd5795087aa0668130fcd1aef9af8f6afe74d', class: {
27751
28098
  "duet-toolbar-dropdown-link": true,
27752
28099
  "duet-theme-turva": this.theme === "turva",
27753
28100
  active: this.active,
27754
- }, href: this.href, lang: this.targetLanguage, hreflang: this.targetLanguage, role: "link menuitem", "aria-label": this.accessibleLabel, "aria-current": this.active ? "true" : "false", onKeyUp: e => this.handleEscape(e) }, this.icon && hAsync("duet-icon", { key: 'cce54b8721ad1d017e32ac331ebcc54d53fbd88c', name: this.icon, size: "x-small", margin: "none" }), hAsync("span", { key: '515f4c68a3917e3403e59f938fc2a2ba296e1f63', class: "label" }, hAsync("slot", { key: '43e7eddd00dc07766e9842a4070f09e908021551' })), this.active && (hAsync("duet-icon", { key: 'e69da314290045e523944a6d3554158627151d48', name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor" })))));
28101
+ }, href: this.href, lang: this.targetLanguage, hreflang: this.targetLanguage, role: "link menuitem", "aria-label": this.accessibleLabel, "aria-current": this.active ? "true" : "false", onKeyUp: e => this.handleEscape(e) }, this.icon && hAsync("duet-icon", { key: '94cbf93524f24784189c22358378e2c0c21d6cc6', name: this.icon, size: "x-small", margin: "none" }), hAsync("span", { key: '61d5272e3b2670262dabd167c898f160b9c3c751', class: "label" }, hAsync("slot", { key: 'ce66bfda77a5f5e8292b1b05a3aac6e55f37a43b' })), this.active && (hAsync("duet-icon", { key: 'b6ae3a0972462f8034fceda49f652477849c555d', name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor" })))));
27755
28102
  }
27756
28103
  get element() { return getElement(this); }
27757
28104
  static get style() { return duetToolbarDropdownLinkCss; }
@@ -27854,17 +28201,17 @@ class DuetToolbarItem {
27854
28201
  : this.variation === "secondary"
27855
28202
  ? "secondary"
27856
28203
  : "default";
27857
- return (hAsync(Host, { key: 'f36d0228f8546f61bd7f1a21fc94bbfacb229270', role: "listitem" }, this.badge && hAsync("duet-indicator", { key: 'a46dc8ea7f76a4f8c76664dc4e1ad56941028a10', variation: "change" }), hAsync(TagName, { key: 'e488df937c34dadf25be1f2beacfe29161ba73cf', target: !this.url ? null : this.external ? "_blank" : "_self", ref: element => (this.itemElement = element), class: {
28204
+ return (hAsync(Host, { key: '862f45e9efe5b3b54645c3a9627456ab5f723263', role: "listitem" }, this.badge && hAsync("duet-indicator", { key: '29d7bdff76bcf999e4ecff6e3eedd10e006bc968', variation: "change" }), hAsync(TagName, { key: 'b3c0820e95170ce048b75d7e02a2f2e6b7264301', target: !this.url ? null : this.external ? "_blank" : "_self", ref: element => (this.itemElement = element), class: {
27858
28205
  "duet-toolbar-item": true,
27859
28206
  "duet-theme-turva": this.theme === "turva",
27860
28207
  active: this.active,
27861
28208
  [variation]: true,
27862
- }, href: this.url, role: `${TagName === "a" ? "link" : "button"}`, "aria-current": this.active ? "true" : "false", "aria-label": (this.url && getAccessibleLinkLabel(this)) || this.accessibleLabel, "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined, rel: this.external ? "noopener" : undefined }, this.leadingIcon && (hAsync("div", { key: 'fb792acb4d635caf2dbe6d6b34eb7ca0257c6425', class: "duet-toolbar-icon" }, hAsync("duet-icon", { key: '7aeb14377fab6bbba397bdcb85942bc7f9026f99', size: "x-small", name: this.leadingIcon, margin: "none", theme: this.theme, color: "currentColor" }), this.badge && hAsync("div", { key: 'f2a6ed7704a7d21782c32fe02f1d768203a0e543', class: "duet-toolbar-badge" }))), hAsync("slot", { key: 'c5f8d0d4644d68d9ae8bae97f3b26d9cb7ff2693' }), (this.trailingIcon || (this.url && this.external)) && (hAsync("div", { key: '1258c07b9515853adcc3461d186240ba86fdc491', class: "duet-toolbar-icon" }, hAsync("duet-icon", { key: '3472d1724fb3d148dd2ac58a964db4ab2ae7908e', class: {
28209
+ }, href: this.url, role: `${TagName === "a" ? "link" : "button"}`, "aria-current": this.active ? "true" : "false", "aria-label": (this.url && getAccessibleLinkLabel(this)) || this.accessibleLabel, "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined, rel: this.external ? "noopener" : undefined }, this.leadingIcon && (hAsync("div", { key: '52d2726d3619462ac9fa1ed0b3444675a3965d6d', class: "duet-toolbar-icon" }, hAsync("duet-icon", { key: 'f4cf50d1e5dddaaf3cebd50a4271ebb8060d2aaa', size: "x-small", name: this.leadingIcon, margin: "none", theme: this.theme, color: "currentColor" }), this.badge && hAsync("div", { key: '545d508631827013ae6062243f7cd07e37361f1f', class: "duet-toolbar-badge" }))), hAsync("slot", { key: 'ccf3f266976067a8dcfaeb78310ea0e9e4b740cc' }), (this.trailingIcon || (this.url && this.external)) && (hAsync("div", { key: 'f589e763aa5474a3a0dfcfbada1672d3fbb0862a', class: "duet-toolbar-icon" }, hAsync("duet-icon", { key: '288b80450871df0f784182e1f0802cfbad4daeed', class: {
27863
28210
  "trailing-icon": !!this.trailingIcon,
27864
28211
  "trailing-icon-arrow": this.trailingIcon === "action-arrow-down-small",
27865
28212
  "external-icon": !!(this.url && this.external),
27866
28213
  rotate: this.trailingIcon === "action-arrow-down-small" && this.accessibleExpanded,
27867
- }, theme: this.theme, name: this.trailingIcon ? this.trailingIcon : this.url && this.external ? newWindowIcon.title : "", margin: "none", size: "auto", color: "currentColor" }), this.badge && this.trailingIcon !== "action-arrow-down-small" && hAsync("div", { key: 'df9aa0697ed176678be4f45596c3276da1218a33', class: "duet-toolbar-badge" }))))));
28214
+ }, theme: this.theme, name: this.trailingIcon ? this.trailingIcon : this.url && this.external ? newWindowIcon.title : "", margin: "none", size: "auto", color: "currentColor" }), this.badge && this.trailingIcon !== "action-arrow-down-small" && hAsync("div", { key: '7853154ae4ebb785a34b1de3ce36d7b1a23f304b', class: "duet-toolbar-badge" }))))));
27868
28215
  }
27869
28216
  get element() { return getElement(this); }
27870
28217
  static get style() { return duetToolbarItemCss; }
@@ -27931,12 +28278,12 @@ class DuetToolbarLink {
27931
28278
  */
27932
28279
  render() {
27933
28280
  const variation = this.variation === "negative" ? "negative" : "white";
27934
- return (hAsync(Host, { key: '37bc6a6543039418aa1450349f23f7eba45adadb', role: "listitem" }, hAsync("a", { key: '55cc4a44d00c2d228ab14686063417d471beec5d', class: {
28281
+ return (hAsync(Host, { key: '07041c0aec0959d4d85042618c07a5c6c5e7a80a', role: "listitem" }, hAsync("a", { key: '5c422ec1435313ecad17c03eafaecdb42444c847', class: {
27935
28282
  "duet-toolbar-link": true,
27936
28283
  "duet-theme-turva": this.theme === "turva",
27937
28284
  active: this.active,
27938
28285
  [variation]: true,
27939
- }, href: this.href, "aria-current": this.active ? "true" : "false", "aria-label": this.accessibleLabel }, this.icon && (hAsync("duet-icon", { key: '363fec506c3668d762b5a706b720f4ab8efb0bb5', size: "x-small", name: this.icon, margin: "none", theme: this.theme, color: "currentColor" })), hAsync("slot", { key: '086cbb4a926a01fcee0ce4d7ca417ad031c60110' }))));
28286
+ }, href: this.href, "aria-current": this.active ? "true" : "false", "aria-label": this.accessibleLabel }, this.icon && (hAsync("duet-icon", { key: '4a127553bf1f1e27ebb5787f7b736cc7a80cf9fe', size: "x-small", name: this.icon, margin: "none", theme: this.theme, color: "currentColor" })), hAsync("slot", { key: '97573b5159185b7aae35dc962560e707de1a28b2' }))));
27940
28287
  }
27941
28288
  get element() { return getElement(this); }
27942
28289
  static get style() { return duetToolbarLinkCss; }
@@ -28114,9 +28461,13 @@ class DuetTooltip {
28114
28461
  // Not closing via this.closeTooltip() as it calls this.updatePlacement() causing an infinite loop
28115
28462
  this.active = false;
28116
28463
  }
28117
- const position = await computePosition(this.buttonEl, this.popupElement, {
28464
+ const middleware = [flip(), shift({ padding: 5 }), arrow({ element: this.arrowEl })];
28465
+ if (this.badgeElement) {
28466
+ middleware.unshift(offset(10));
28467
+ }
28468
+ const position = await computePosition(this.badgeElement || this.buttonEl, this.popupElement, {
28118
28469
  placement,
28119
- middleware: [flip(), shift({ padding: 5 }), arrow({ element: this.arrowEl })],
28470
+ middleware,
28120
28471
  });
28121
28472
  this.tooltipY = position.y;
28122
28473
  this.tooltipX = position.x;
@@ -28124,6 +28475,12 @@ class DuetTooltip {
28124
28475
  this.arrowY = (_a = position.middlewareData.arrow) === null || _a === void 0 ? void 0 : _a.y;
28125
28476
  this.arrowX = (_b = position.middlewareData.arrow) === null || _b === void 0 ? void 0 : _b.x;
28126
28477
  };
28478
+ this.badgeClick = (ev) => {
28479
+ if (ev.composedPath().includes(this.buttonEl)) {
28480
+ return;
28481
+ }
28482
+ this.buttonEl.click();
28483
+ };
28127
28484
  }
28128
28485
  /**
28129
28486
  * Component lifecycle events.
@@ -28156,9 +28513,16 @@ class DuetTooltip {
28156
28513
  if (this.firstRender) {
28157
28514
  this.firstRender = false;
28158
28515
  }
28516
+ if (this.badgeElement) {
28517
+ this.badgeElement.removeEventListener("click", this.badgeClick);
28518
+ this.badgeElement.addEventListener("click", this.badgeClick);
28519
+ }
28159
28520
  }
28160
28521
  disconnectedCallback() {
28161
28522
  disconnectLanguageChangeObserver(this);
28523
+ if (this.badgeElement) {
28524
+ this.badgeElement.removeEventListener("click", this.badgeClick);
28525
+ }
28162
28526
  }
28163
28527
  handleDocumentClick(e) {
28164
28528
  if (!this.active) {
@@ -28221,6 +28585,7 @@ class DuetTooltip {
28221
28585
  "positionHorizontal": [513, "position-horizontal"],
28222
28586
  "active": [1540],
28223
28587
  "negative": [4],
28588
+ "badgeElement": [16, "badge-element"],
28224
28589
  "placement": [32],
28225
28590
  "tooltipY": [32],
28226
28591
  "tooltipX": [32],
@@ -28235,7 +28600,7 @@ class DuetTooltip {
28235
28600
  }; }
28236
28601
  }
28237
28602
 
28238
- const duetTooltipButtonCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}.duet-tooltip-button{z-index:100;display:inline-block;align-items:center;justify-content:center;min-width:48px;height:48px;padding:0 !important;margin-right:-12px;line-height:normal !important;color:rgb(0, 119, 179);white-space:nowrap;cursor:pointer;background:transparent !important;border-radius:4px}.duet-tooltip-button:focus{outline:0}:host(.user-is-tabbing) .duet-tooltip-button:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva :host(.user-is-tabbing) .duet-tooltip-button:focus,:host(.user-is-tabbing) .duet-tooltip-button:focus.duet-theme-turva{outline-color:rgba(53, 79, 101, 0.8)}.duet-tooltip-button.duet-tooltip-button-negative{color:rgb(255, 255, 255)}.duet-tooltip-button:hover{color:rgb(0, 75, 129)}.duet-tooltip-button:hover.duet-tooltip-button-negative{color:rgb(255, 255, 255)}.duet-tooltip-button:focus,:host(.user-is-tabbing) .duet-tooltip-button:focus{background:transparent !important}.duet-tooltip-button svg{width:20px;height:20px;pointer-events:none}.duet-tooltip-button-has-label{margin-right:0}.duet-tooltip-label{position:relative;z-index:100;display:inline-block;max-width:calc(100% - 30px);margin-left:12px !important;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:1rem;font-weight:600;line-height:1.25;vertical-align:top;text-align:left;white-space:normal}.duet-tooltip-button.duet-theme-turva{color:rgb(230, 23, 64)}.duet-tooltip-button.duet-theme-turva:hover{color:rgb(230, 23, 64)}.duet-theme-turva .duet-tooltip-label{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}";
28603
+ const duetTooltipButtonCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}.duet-tooltip-button{z-index:100;display:inline-block;align-items:center;justify-content:center;min-width:48px;height:48px;padding:0 !important;margin-right:-12px;line-height:normal !important;color:rgb(0, 119, 179);white-space:nowrap;cursor:pointer;background:transparent !important;border-radius:4px}.duet-tooltip-button:focus{outline:0}:host(.user-is-tabbing) .duet-tooltip-button:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva :host(.user-is-tabbing) .duet-tooltip-button:focus,:host(.user-is-tabbing) .duet-tooltip-button:focus.duet-theme-turva{outline-color:rgba(53, 79, 101, 0.8)}.duet-tooltip-button.duet-tooltip-button-negative{color:rgb(255, 255, 255)}.duet-tooltip-button:hover{color:rgb(0, 75, 129)}.duet-tooltip-button:hover.duet-tooltip-button-negative{color:rgb(255, 255, 255)}.duet-tooltip-button:focus,:host(.user-is-tabbing) .duet-tooltip-button:focus{background:transparent !important}.duet-tooltip-button svg{width:20px;height:20px;pointer-events:none}.duet-tooltip-button.duet-tooltip-button-in-badge{width:16px;min-width:16px;height:16px;color:inherit}.duet-tooltip-button.duet-tooltip-button-in-badge:focus{outline:0 !important}.duet-tooltip-button.duet-tooltip-button-in-badge svg{width:12px;height:12px}.duet-tooltip-button-has-label{margin-right:0}.duet-tooltip-label{position:relative;z-index:100;display:inline-block;max-width:calc(100% - 30px);margin-left:12px !important;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:1rem;font-weight:600;line-height:1.25;vertical-align:top;text-align:left;white-space:normal}.duet-theme-turva.duet-tooltip-button{color:rgb(230, 23, 64)}.duet-theme-turva.duet-tooltip-button:hover{color:rgb(230, 23, 64)}.duet-theme-turva.duet-tooltip-button.duet-tooltip-button-in-badge{color:inherit}.duet-theme-turva .duet-tooltip-label{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}";
28239
28604
 
28240
28605
  /**
28241
28606
  * @internal
@@ -28247,6 +28612,7 @@ class DuetTooltipButton {
28247
28612
  this.label = "";
28248
28613
  this.theme = "";
28249
28614
  this.negative = false;
28615
+ this.inBadge = false;
28250
28616
  }
28251
28617
  /**
28252
28618
  * Component lifecycle events.
@@ -28270,13 +28636,14 @@ class DuetTooltipButton {
28270
28636
  * Always the last one in the class.
28271
28637
  */
28272
28638
  render() {
28273
- const visuallyHidden = hAsync("duet-visually-hidden", { key: 'bf8e82beb39bca3f67c6ffcdbaf684671f551ffa' }, this.accessibleLabel);
28274
- return (hAsync(Host, { key: 'c014d004ab6a355f122447e806b5c12f62aba277' }, hAsync("button", { key: 'eda0bd6c55287d8ac393c2af3f65cbb910cd8c50', ref: el => (this.buttonElement = el), "aria-controls": this.tooltipId, "aria-expanded": this.active ? "true" : "false", type: "button", class: {
28639
+ const visuallyHidden = hAsync("duet-visually-hidden", { key: '0feec5f01a66092aeb84f7d046b784dc3751530b' }, this.accessibleLabel);
28640
+ return (hAsync(Host, { key: 'db94478bf79285a1393bb6c9f670a9e866c30bec' }, hAsync("button", { key: 'c3799f4bd23520384035f33845c6ddf0c1675b2b', ref: el => (this.buttonElement = el), "aria-controls": this.tooltipId, "aria-expanded": this.active ? "true" : "false", type: "button", class: {
28275
28641
  "duet-tooltip-button": true,
28276
28642
  "duet-tooltip-button-has-label": !!this.label,
28277
28643
  "duet-theme-turva": this.theme === "turva",
28278
28644
  "duet-tooltip-button-negative": this.negative,
28279
- } }, hAsync("svg", { key: 'f6d4082627cb5a653bdd3668cc899bb885d204a1', "aria-hidden": "true", role: "img", fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, hAsync("path", { key: '21df01e868e6f304a33a50d4ac2442d6f43376aa', d: "m13.5 17.25c-1.241 0-2.25-1.009-2.25-2.25v-3.75h-.75c-.414 0-.75-.336-.75-.75s.336-.75.75-.75h.75c.827 0 1.5.673 1.5 1.5v3.75c0 .414.336.75.75.75h.75c.414 0 .75.336.75.75s-.336.75-.75.75z" }), hAsync("circle", { key: 'ba4e4c5cb1bf9f5e91e5ab8746485ca140b9a597', cx: "11.625", cy: "7.125", r: "1.125" }), hAsync("path", { key: '0a3e24ec139b2442be22ebc85c663c891a050c08', d: "m12 24c-6.617 0-12-5.383-12-12s5.383-12 12-12 12 5.383 12 12-5.383 12-12 12zm0-22.5c-5.79 0-10.5 4.71-10.5 10.5s4.71 10.5 10.5 10.5 10.5-4.71 10.5-10.5-4.71-10.5-10.5-10.5z" })), this.label ? (hAsync("span", { class: "duet-tooltip-label" }, this.label, visuallyHidden)) : (visuallyHidden))));
28645
+ "duet-tooltip-button-in-badge": this.inBadge,
28646
+ } }, hAsync("svg", { key: 'cd8ae6afbe8856114e6acfd5f238ccdef96bf5ec', "aria-hidden": "true", role: "img", fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, hAsync("path", { key: 'ee341df24b231902d95a09634d155f1f3f90bd0c', d: "m13.5 17.25c-1.241 0-2.25-1.009-2.25-2.25v-3.75h-.75c-.414 0-.75-.336-.75-.75s.336-.75.75-.75h.75c.827 0 1.5.673 1.5 1.5v3.75c0 .414.336.75.75.75h.75c.414 0 .75.336.75.75s-.336.75-.75.75z" }), hAsync("circle", { key: '5b0878e6e0b20c1bb40f14578cf8e75597b27bb1', cx: "11.625", cy: "7.125", r: "1.125" }), hAsync("path", { key: '85e8d046ab8d8de4eebb29c345d0a706484c3a0d', d: "m12 24c-6.617 0-12-5.383-12-12s5.383-12 12-12 12 5.383 12 12-5.383 12-12 12zm0-22.5c-5.79 0-10.5 4.71-10.5 10.5s4.71 10.5 10.5 10.5 10.5-4.71 10.5-10.5-4.71-10.5-10.5-10.5z" })), this.label ? (hAsync("span", { class: "duet-tooltip-label" }, this.label, visuallyHidden)) : (visuallyHidden))));
28280
28647
  }
28281
28648
  get element() { return getElement(this); }
28282
28649
  static get style() { return duetTooltipButtonCss; }
@@ -28290,6 +28657,7 @@ class DuetTooltipButton {
28290
28657
  "negative": [4],
28291
28658
  "active": [4],
28292
28659
  "tooltipId": [1, "tooltip-id"],
28660
+ "inBadge": [4, "in-badge"],
28293
28661
  "setFocus": [64]
28294
28662
  },
28295
28663
  "$listeners$": undefined,
@@ -28298,7 +28666,7 @@ class DuetTooltipButton {
28298
28666
  }; }
28299
28667
  }
28300
28668
 
28301
- const duetTooltipPopupCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;position:absolute;z-index:950}.duet-tooltip{position:relative;visibility:hidden;width:282px;min-height:48px;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.25;color:rgb(8, 42, 77);background:rgb(255, 255, 255);border:1px solid rgb(212, 223, 229);border-radius:4px;box-shadow:0 2px 10px 0 rgba(0, 41, 77, 0.07);opacity:0;transform-origin:100% 100%;transition:300ms ease}.duet-tooltip .arrow{position:absolute;width:22px;height:22px;pointer-events:none}.duet-tooltip .arrow.bottom,.duet-tooltip .arrow.bottom-start,.duet-tooltip .arrow.bottom-end{top:-20px}.duet-tooltip .arrow-container{position:relative;left:4px;width:100%;height:100%;pointer-events:none}.duet-tooltip .arrow-container::after{position:absolute;z-index:200;width:0;height:0;pointer-events:none;content:\"\"}.duet-tooltip .arrow-container::before{position:absolute;z-index:100;width:0;height:0;pointer-events:none;content:\"\"}.duet-tooltip .arrow-container.top::after,.duet-tooltip .arrow-container.top-start::after,.duet-tooltip .arrow-container.top-end::after{bottom:2px;left:2px;border:10px solid transparent;border-top:10px solid rgb(255, 255, 255)}.duet-tooltip .arrow-container.top::before,.duet-tooltip .arrow-container.top-start::before,.duet-tooltip .arrow-container.top-end::before{bottom:-1px;left:1px;border:11px solid transparent;border-top:11px solid rgb(212, 223, 229)}.duet-tooltip .arrow-container.bottom::after,.duet-tooltip .arrow-container.bottom-start::after,.duet-tooltip .arrow-container.bottom-end::after{bottom:1px;left:2px;border:10px solid transparent;border-bottom:10px solid rgb(255, 255, 255)}.duet-tooltip .arrow-container.bottom::before,.duet-tooltip .arrow-container.bottom-start::before,.duet-tooltip .arrow-container.bottom-end::before{bottom:1px;left:1px;border:11px solid transparent;border-bottom:11px solid rgb(212, 223, 229)}.duet-tooltip.duet-tooltip-has-label{right:auto !important;left:0;width:282px !important;transform-origin:0 0 !important}.duet-tooltip.duet-tooltip-active{visibility:visible;opacity:1;transition-property:transform, opacity}.duet-tooltip-content-area{padding:20px !important;width:100%;padding-right:25px !important;overflow-y:auto;-webkit-hyphens:auto;hyphens:auto;border-radius:4px;-webkit-overflow-scrolling:touch}.duet-tooltip-content-area:focus{outline:0}:host(.user-is-tabbing) .duet-tooltip-content-area:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva :host(.user-is-tabbing) .duet-tooltip-content-area:focus,:host(.user-is-tabbing) .duet-tooltip-content-area:focus.duet-theme-turva{outline-color:rgba(53, 79, 101, 0.8)}.duet-tooltip-content-area::-webkit-scrollbar{width:4px}.duet-tooltip-content-area::-webkit-scrollbar-track{border-radius:4px}.duet-tooltip-content-area::-webkit-scrollbar-thumb{background:rgb(212, 223, 229);border-radius:4px}.duet-tooltip-close{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:17px;height:17px;min-height:0 !important;padding:0 !important;margin:0 !important;line-height:normal;color:rgb(8, 42, 77);-webkit-appearance:none;appearance:none;cursor:pointer;background:rgb(245, 248, 250);border-radius:50%}.duet-tooltip-close:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva .duet-tooltip-close:focus,.duet-tooltip-close:focus.duet-theme-turva{outline:2px solid;outline-offset:2px;outline-color:rgba(53, 79, 101, 0.8)}.duet-theme-turva .duet-tooltip-close{color:rgb(23, 42, 59)}.duet-theme-turva.duet-tooltip.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:rgb(23, 42, 59);border-color:rgb(212, 221, 226);box-shadow:0 2px 10px 0 rgba(117, 117, 117, 0.13)}.duet-theme-turva.duet-tooltip .arrow-container.top::before,.duet-theme-turva.duet-tooltip .arrow-container.top-start::before,.duet-theme-turva.duet-tooltip .arrow-container.top-end::before{border-top:11px solid rgb(212, 221, 226)}.duet-theme-turva.duet-tooltip .arrow-container.bottom::before,.duet-theme-turva.duet-tooltip .arrow-container.bottom-start::before,.duet-theme-turva.duet-tooltip .arrow-container.bottom-end::before{border-bottom:11px solid rgb(212, 221, 226)}.duet-theme-turva .duet-tooltip-content-area::-webkit-scrollbar-thumb{background:rgb(212, 221, 226)}.duet-theme-turva .duet-tooltip-close{color:rgb(23, 42, 59)}";
28669
+ const duetTooltipPopupCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0}:host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;position:absolute;z-index:950}.duet-tooltip{position:relative;visibility:hidden;width:282px;min-height:48px;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.25;color:rgb(8, 42, 77);background:rgb(255, 255, 255);border:1px solid rgb(212, 223, 229);border-radius:4px;box-shadow:0 2px 10px 0 rgba(0, 41, 77, 0.07);opacity:0;transform-origin:100% 100%;transition:300ms ease}.duet-tooltip .arrow{position:absolute;width:22px;height:22px;pointer-events:none}.duet-tooltip .arrow.bottom,.duet-tooltip .arrow.bottom-start,.duet-tooltip .arrow.bottom-end{top:-21px}.duet-tooltip .arrow-container{position:relative;left:4px;width:100%;height:100%;pointer-events:none}.duet-tooltip .arrow-container::after{position:absolute;z-index:200;width:0;height:0;pointer-events:none;content:\"\"}.duet-tooltip .arrow-container::before{position:absolute;z-index:100;width:0;height:0;pointer-events:none;content:\"\"}.duet-tooltip .arrow-container.top::after,.duet-tooltip .arrow-container.top-start::after,.duet-tooltip .arrow-container.top-end::after{bottom:2px;left:2px;border:10px solid transparent;border-top:10px solid rgb(255, 255, 255)}.duet-tooltip .arrow-container.top::before,.duet-tooltip .arrow-container.top-start::before,.duet-tooltip .arrow-container.top-end::before{bottom:-1px;left:1px;border:11px solid transparent;border-top:11px solid rgb(212, 223, 229)}.duet-tooltip .arrow-container.bottom::after,.duet-tooltip .arrow-container.bottom-start::after,.duet-tooltip .arrow-container.bottom-end::after{bottom:1px;left:2px;border:10px solid transparent;border-bottom:10px solid rgb(255, 255, 255)}.duet-tooltip .arrow-container.bottom::before,.duet-tooltip .arrow-container.bottom-start::before,.duet-tooltip .arrow-container.bottom-end::before{bottom:1px;left:1px;border:11px solid transparent;border-bottom:11px solid rgb(212, 223, 229)}.duet-tooltip.duet-tooltip-has-label{right:auto !important;left:0;width:282px !important;transform-origin:0 0 !important}.duet-tooltip.duet-tooltip-active{visibility:visible;opacity:1;transition-property:transform, opacity}.duet-tooltip-content-area{padding:20px !important;width:100%;padding-right:25px !important;overflow-y:auto;-webkit-hyphens:auto;hyphens:auto;border-radius:4px;-webkit-overflow-scrolling:touch}.duet-tooltip-content-area:focus{outline:0}:host(.user-is-tabbing) .duet-tooltip-content-area:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva :host(.user-is-tabbing) .duet-tooltip-content-area:focus,:host(.user-is-tabbing) .duet-tooltip-content-area:focus.duet-theme-turva{outline-color:rgba(53, 79, 101, 0.8)}.duet-tooltip-content-area::-webkit-scrollbar{width:4px}.duet-tooltip-content-area::-webkit-scrollbar-track{border-radius:4px}.duet-tooltip-content-area::-webkit-scrollbar-thumb{background:rgb(212, 223, 229);border-radius:4px}.duet-tooltip-close{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:17px;height:17px;min-height:0 !important;padding:0 !important;margin:0 !important;line-height:normal;color:rgb(8, 42, 77);-webkit-appearance:none;appearance:none;cursor:pointer;background:rgb(245, 248, 250);border-radius:50%}.duet-tooltip-close:focus{outline:2px solid;outline-offset:2px;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva .duet-tooltip-close:focus,.duet-tooltip-close:focus.duet-theme-turva{outline:2px solid;outline-offset:2px;outline-color:rgba(53, 79, 101, 0.8)}.duet-theme-turva .duet-tooltip-close{color:rgb(23, 42, 59)}.duet-theme-turva.duet-tooltip.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:rgb(23, 42, 59);border-color:rgb(212, 221, 226);box-shadow:0 2px 10px 0 rgba(117, 117, 117, 0.13)}.duet-theme-turva.duet-tooltip .arrow-container.top::before,.duet-theme-turva.duet-tooltip .arrow-container.top-start::before,.duet-theme-turva.duet-tooltip .arrow-container.top-end::before{border-top:11px solid rgb(212, 221, 226)}.duet-theme-turva.duet-tooltip .arrow-container.bottom::before,.duet-theme-turva.duet-tooltip .arrow-container.bottom-start::before,.duet-theme-turva.duet-tooltip .arrow-container.bottom-end::before{border-bottom:11px solid rgb(212, 221, 226)}.duet-theme-turva .duet-tooltip-content-area::-webkit-scrollbar-thumb{background:rgb(212, 221, 226)}.duet-theme-turva .duet-tooltip-close{color:rgb(23, 42, 59)}";
28302
28670
 
28303
28671
  /**
28304
28672
  * @internal
@@ -28341,14 +28709,14 @@ class DuetTooltipPopup {
28341
28709
  this.contentEl.focus();
28342
28710
  }
28343
28711
  render() {
28344
- return (hAsync(Host, { key: '63f303082985a668ae51759122ae462ae25404e0' }, hAsync("div", { key: 'e3da6a6995872c70fb5d690ea87cf240240a2d0d', class: {
28712
+ return (hAsync(Host, { key: '9deff2cfd70a65940c7ab5ccb4e0ef20f8242205' }, hAsync("div", { key: 'f602ad4390d1a2c739dd40ae286cb4f681b7c0d3', class: {
28345
28713
  "duet-tooltip": true,
28346
28714
  "duet-theme-turva": this.theme === "turva",
28347
28715
  "duet-tooltip-active": this.active === true,
28348
- } }, hAsync(FocusGuard, { key: '428ef9ad1157017747e93d3b0f6b45e6dd4d8854', moveFocusTo: this.buttonEl }), hAsync("div", { key: 'cf4af07ba0054be6658c5724c7552854b3471472', ref: element => (this.contentEl = element), class: {
28716
+ } }, hAsync(FocusGuard, { key: '636c36bd6510ea79aafc2b00cafe8554f0b13293', moveFocusTo: this.buttonEl }), hAsync("div", { key: '0b7bc86af9aee1f48ace5549ff30a0b613c9441e', ref: element => (this.contentEl = element), class: {
28349
28717
  "duet-tooltip-content-area": true,
28350
28718
  "duet-theme-turva": this.theme === "turva",
28351
- }, tabindex: -1, id: this.tooltipId }, hAsync("slot", { key: '3d21605221e8f16c59a2a62790dfce1a9cd15ea5' })), hAsync("div", { key: 'e2e7ae6376f8dd497ef19ff673f22b699f8a55e6', ref: element => (this.arrowEl = element), class: { arrow: true, [this.placement]: true }, style: this.arrowStyles }, hAsync("div", { key: '0bd6b8b42c5e1b2b6eaf89c19a5ad2a968f3e541', class: { "arrow-container": true, [this.placement]: true } })), hAsync("button", { key: '1b7be53d18b09050af7fc192f65c2e9e01ec62a8', type: "button", class: "duet-tooltip-close", onClick: this.handleCloseClick, ref: el => (this.buttonEl = el) }, hAsync("duet-icon", { key: '91636953a64d83fc88e888dab06b1ca482f47dd4', name: "navigation-close-small", margin: "none", color: "currentColor", size: "xxx-small" }), hAsync("duet-visually-hidden", { key: '487a4c4b37a1891f07f203bb5cf22f8dc999c8e5' }, this.accessibleCloseLabel)), hAsync(FocusGuard, { key: 'cd18c3c009967eca235de7d7d5e9f7208692bb56', moveFocusTo: this.contentEl }))));
28719
+ }, tabindex: -1, id: this.tooltipId }, hAsync("slot", { key: 'f7d35e94bca2a7d45eb37b1dfa98bb95003e601d' })), hAsync("div", { key: 'd34a92246923a554c6fa9997b6f5cc81033cfb93', ref: element => (this.arrowEl = element), class: { arrow: true, [this.placement]: true }, style: this.arrowStyles }, hAsync("div", { key: 'd77b4f9b62211f1bc657143a42be59009b30b74f', class: { "arrow-container": true, [this.placement]: true } })), hAsync("button", { key: '0c24b8f406b74f4ffc3334b53319ca43404236c3', type: "button", class: "duet-tooltip-close", onClick: this.handleCloseClick, ref: el => (this.buttonEl = el) }, hAsync("duet-icon", { key: '313ebabda3b0c3720434e6b620c23d65b5d9cecd', name: "navigation-close-small", margin: "none", color: "currentColor", size: "xxx-small" }), hAsync("duet-visually-hidden", { key: 'f494b2c6cef9b38a872153474cc5880dbc07e9e4' }, this.accessibleCloseLabel)), hAsync(FocusGuard, { key: 'a12f546822ce65cf3c23fde365389dcdf01952e9', moveFocusTo: this.contentEl }))));
28352
28720
  }
28353
28721
  get element() { return getElement(this); }
28354
28722
  static get style() { return duetTooltipPopupCss; }
@@ -28497,14 +28865,14 @@ class DuetTray {
28497
28865
  * Always the last one in the class.
28498
28866
  */
28499
28867
  render() {
28500
- return (hAsync("div", { key: 'f214ce1bc33434f910d47ad3eb6c32f9def079a6', class: {
28868
+ return (hAsync("div", { key: 'b61dd691c3f9aa656b3561879fa32316b75d32a8', class: {
28501
28869
  "duet-tray": true,
28502
28870
  "duet-tray-is-active": this.active,
28503
28871
  "duet-tray-is-hidden": this.hiddenState,
28504
28872
  "duet-tray-is-responsive": this.responsive,
28505
28873
  "duet-theme-turva": this.theme === "turva",
28506
28874
  "duet-tray-is-expandable": this.hasAdditionalContent,
28507
- } }, hAsync("div", { key: '4b233933831bb971fdfcbcfeb1a45a24376c9334', class: "duet-tray-default-content", role: "status" }, hAsync("slot", { key: 'dd4e32bc8ac1287203ae396fe8c21184971ed452' })), this.hasAdditionalContent && (hAsync(Fragment, { key: '978f4eac8618d6e6806c2b949e61555881739314' }, hAsync("button", { key: '733c5973d36830c6c93d80e74d943f89d6cc02ea', "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 } }, hAsync("duet-icon", { key: '84843a2d3b1481545f27f6dd15854e7382f712ea', name: "action-arrow-down", size: "small", color: "currentColor", margin: "none" }), hAsync("duet-visually-hidden", { key: 'c071fa18c128c620dd838dd8a0d6fce553bb60aa' }, this.expanded ? this.accessibleCloseLabel : this.accessibleOpenLabel)), hAsync("div", { key: '85ae38a4a6b17d8acec9bbd7948eba44ed6bf28c', id: this.expandableId, class: { "duet-tray-expandable": true, active: this.expanded } }, hAsync("div", { key: '3cf4e3889f982c47287b962430c62596aad7f81c', class: "duet-tray-expandable-content" }, hAsync("slot", { key: 'ea85e6c58ed79bc61d885f859d296ec9a6a590d3', name: "additional" })))))));
28875
+ } }, hAsync("div", { key: '03161a80eb3c11cd5825830827633be3b0ff13e0', class: "duet-tray-default-content", role: "status" }, hAsync("slot", { key: 'b8f6995244f5d395cd8ee53923466dac43158c56' })), this.hasAdditionalContent && (hAsync(Fragment, { key: 'e6698c1b607ce8531a07b0aecb5c21e43eb1675e' }, hAsync("button", { key: 'c22d5dd724b08d03dee467e88d5a567a4ab38813', "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 } }, hAsync("duet-icon", { key: '40ecef7b962408021a3366de1622f67274c043bd', name: "action-arrow-down", size: "small", color: "currentColor", margin: "none" }), hAsync("duet-visually-hidden", { key: 'fae082943ef437bac9e8cf627f5591376d32f135' }, this.expanded ? this.accessibleCloseLabel : this.accessibleOpenLabel)), hAsync("div", { key: '90b5db0741a93877341df58d3d940ed2d5e4abcc', id: this.expandableId, class: { "duet-tray-expandable": true, active: this.expanded } }, hAsync("div", { key: '8d4c2d660ce015567c2b1af4a1830df54e2687a5', class: "duet-tray-expandable-content" }, hAsync("slot", { key: '3dd3fe954e0304e64b64bf7d19a3ca8d481b547f', name: "additional" })))))));
28508
28876
  }
28509
28877
  get element() { return getElement(this); }
28510
28878
  static get style() { return duetTrayCss; }
@@ -29819,10 +30187,10 @@ class DuetUpload {
29819
30187
  this.externalUploadButton.accessibleLabel = `${this.externalUploadButton.innerText}. ${caption}`;
29820
30188
  }
29821
30189
  // @ts-ignore
29822
- return (hAsync(Host, { key: '855e27e55645747625669bf080e6f65423b9bbf0', class: { "duet-m-0": this.margin === "none" } }, hAsync("duet-fieldset", { key: '89d6b1b88260ccb7ffa2f4a3130fdf74d904e048', "label-heading-level": this.headerHeadingLevel, "label-hidden": this.hideHeader, label: this.label }, hAsync("slot", { key: '10b9cdc44bd94871f538a9299ea6252f4375a864', name: "header" }), !this.files.size && (hAsync("duet-empty-state", { key: '924905b1aafa76175b93f12dd6e7d7ac8ac5b5e3', id: this.labelId, part: this.identifier ? `${this.identifier}-empty-state` : "duet-upload-empty-state", icon: "messaging-attachment" }, hAsync("duet-paragraph", { key: 'f744c2afdb520cd0e69a15c0a942f6ecd8e30b75', margin: "none" }, this.fileListEmpty))), !!this.files.size && hAsync("slot", { key: 'da55dafcb732e24b895185995040decfe40382c6', name: "fileheader" }), !!this.files.size && (hAsync("duet-upload-aria-status", { key: '199e78733f262f857124540bbd055e7c6cbcaf6a', 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.renderUploadedItems(), !!this.files.size && hAsync("slot", { key: 'd6327694548a1ee39188af3935c67d0a6eaead79', name: "filefooter" }), hAsync("slot", { key: '718e1e5d1f7041d2d596ada75a717942b74999f6', name: "uploadfooter" }), this.captionOnBottom && (hAsync("duet-caption", { key: 'd15f3fd09b07de11dc1f725bc9ee344889b6445f', margin: "none", size: "small" }, hAsync("div", { key: '1e4e1c3a29338fa3339cd2de701ba3c776c1166a', class: "upload-bottom-caption" }, caption))), hAsync("slot", { key: '90f1e8de4c8359df2b8dded1bf5211857ce48a79', name: "afterfooter" }), !this.hideButton && (hAsync(Fragment, { key: '431fb04536068eefdf974fc34f89f56e712674c9' }, hAsync("duet-spacer", { key: 'c98d3f3e0f06d17b1b86ab40486a663ef8c6a75e', size: "large" }), hAsync("duet-button", { key: '1f057848bdacb5e69ef63e2bfdc81e216271f455', id: this.buttonId, onClick: this.startUpload, "accessible-controls": identifier, disabled: this.fileMaxReached, "accessible-label": this.accessibleButtonLabel || `${this.buttonLabel}. ${caption}`, "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))), (this.fileMaxReached ||
30190
+ return (hAsync(Host, { key: '56a66fb13e2d5b1e975502e6c02e0374b464dab1', class: { "duet-m-0": this.margin === "none" } }, hAsync("duet-fieldset", { key: '402d0cd0bfc53a1fd6d981227186277cf58ef428', "label-heading-level": this.headerHeadingLevel, "label-hidden": this.hideHeader, label: this.label }, hAsync("slot", { key: '2e9c7748bbd2e39175cb19e2d3fa2a6c5b5e0d90', name: "header" }), !this.files.size && (hAsync("duet-empty-state", { key: 'a7c200b271571a9758bbc92c91d0c0d761a8383f', id: this.labelId, part: this.identifier ? `${this.identifier}-empty-state` : "duet-upload-empty-state", icon: "messaging-attachment" }, hAsync("duet-paragraph", { key: '5bd08aa838e2b2fe41c7cda3895dea43ad14cdc2', margin: "none" }, this.fileListEmpty))), !!this.files.size && hAsync("slot", { key: '1e874d98480606d31435b4e8c18e78b5562d5af3', name: "fileheader" }), !!this.files.size && (hAsync("duet-upload-aria-status", { key: '2093949b2d42328009e91051a6c8e2cd3c8d66cb', 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.renderUploadedItems(), !!this.files.size && hAsync("slot", { key: '7f5376e608450c72e17e44360074667501fab26f', name: "filefooter" }), hAsync("slot", { key: '0786ed3f222fea600dbe962f9fc8567de54fc612', name: "uploadfooter" }), this.captionOnBottom && (hAsync("duet-caption", { key: 'c2a67358020739bb490e36f573fd9bf7f60cbb48', margin: "none", size: "small" }, hAsync("div", { key: 'fdd83feb31ce19b351e40e28005c3081d69e0a6c', class: "upload-bottom-caption" }, caption))), hAsync("slot", { key: 'bf1265497a10a890adc43104eebf251f1876cc32', name: "afterfooter" }), !this.hideButton && (hAsync(Fragment, { key: '3e1d242d5a44cac89bf099556b2323a249d615b4' }, hAsync("duet-spacer", { key: '664591d6c28c59f626e14e691fcdc9434c37a23b', size: "large" }), hAsync("duet-button", { key: 'b688f7277f2d77bcc7bac03bb357b6a71302b1bf', id: this.buttonId, onClick: this.startUpload, "accessible-controls": identifier, disabled: this.fileMaxReached, "accessible-label": this.accessibleButtonLabel || `${this.buttonLabel}. ${caption}`, "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))), (this.fileMaxReached ||
29823
30191
  this.bytesMaxReached ||
29824
30192
  this.filesToUploadExceedsLimit ||
29825
- this.filesToUploadTotalSizeIsAboveMax) && (hAsync(Fragment, { key: '8169162805d7ec3a093344e09a4bd9241c1b9c58' }, hAsync("duet-spacer", { key: '0f6500a4ada6c4b3c73f6524bf224ee1d79f0ae6', size: "medium" }), hAsync("duet-alert", { key: '8bbc63eb777fa98ff0f797d970d66835ac6155a5', part: this.identifier ? `${this.identifier}-error-notification` : "duet-upload-error-notification" }, this.fileMaxReached && getI18nError("duet-upload-301", this.errorCodes), this.bytesMaxReached && getI18nError("duet-upload-202", this.errorCodes), this.filesToUploadExceedsLimit && getI18nError("duet-upload-302", this.errorCodes), this.filesToUploadTotalSizeIsAboveMax && getI18nError("duet-upload-203", this.errorCodes)))), hAsync("duet-visually-hidden", { key: '5fb70459ca757cc24041ce6e01414165ba6497b5', "aria-hidden": "true" }, hAsync("input", { key: '808b15c23e12cf691f85e48e1a03106409b81565', ref: input => {
30193
+ this.filesToUploadTotalSizeIsAboveMax) && (hAsync(Fragment, { key: '1d525d949fe3b1f16cbad102b17ccb1662b6ebda' }, hAsync("duet-spacer", { key: '0f9192d41feeb38243181a24cd8282f88f1c8615', size: "medium" }), hAsync("duet-alert", { key: '6ff272d122f622205262c116a25a99dc889ffa6f', part: this.identifier ? `${this.identifier}-error-notification` : "duet-upload-error-notification" }, this.fileMaxReached && getI18nError("duet-upload-301", this.errorCodes), this.bytesMaxReached && getI18nError("duet-upload-202", this.errorCodes), this.filesToUploadExceedsLimit && getI18nError("duet-upload-302", this.errorCodes), this.filesToUploadTotalSizeIsAboveMax && getI18nError("duet-upload-203", this.errorCodes)))), hAsync("duet-visually-hidden", { key: '9c819c3fa17b4954699fe60bd343ff32188ae5da', "aria-hidden": "true" }, hAsync("input", { key: 'bb9d9c02d82c35b46c9ed91a8f7340aeb6f69fb1', ref: input => {
29826
30194
  this.nativeInput = input;
29827
30195
  }, accept: !this.limitSelection ? undefined : `${this.allowedMimetypes},${this.allowedExtensions}`, onBlur: this.onBlur, onFocus: this.onFocus, onChange: e => this.onChange(e), type: "file", class: {
29828
30196
  "duet-upload": true,
@@ -30164,7 +30532,7 @@ class DuetUploadAriaStatus {
30164
30532
  * Always the last one in the class.
30165
30533
  */
30166
30534
  render() {
30167
- return (hAsync(Host, { key: 'dfba0ccef69bd34b3c4f8980caa95375ed480f83', role: "status", "aria-live": "assertive", "aria-atomic": "true", "aria-relevant": "all" }, hAsync("duet-visually-hidden", { key: '20bd47d50fbc2097aae0656ffb367299284ff441' }, this.statusMessage)));
30535
+ return (hAsync(Host, { key: '5287943c19687aeea0e9b06a40e5650ff04cac6d', role: "status", "aria-live": "assertive", "aria-atomic": "true", "aria-relevant": "all" }, hAsync("duet-visually-hidden", { key: '642e4b4e31d449ef0fb6ad1ec988d6e5d175f179' }, this.statusMessage)));
30168
30536
  }
30169
30537
  get element() { return getElement(this); }
30170
30538
  static get watchers() { return {
@@ -30240,7 +30608,7 @@ let DuetUploadItem$1 = class DuetUploadItem {
30240
30608
  inheritGlobalTheme(this);
30241
30609
  }
30242
30610
  render() {
30243
- return (hAsync(Host, { key: '96ed40ea2f9ae846c2ad9654c04511e312933fcd' }, hAsync("duet-visually-hidden", { key: '2092c91fbf71c47a422748e27741c8a2695d4d5f', "aria-hidden": "true" }, hAsync("input", { key: '1e83b554493c852b23e14bd801f8c48a42c8790e', ref: input => {
30611
+ return (hAsync(Host, { key: 'f17176210e5f0675eb847b4d9d60594a226e3dab' }, hAsync("duet-visually-hidden", { key: '3a0eef27ad35e9348f9047f8ad2dcf13c5a9ad76', "aria-hidden": "true" }, hAsync("input", { key: '4c67d86c2f388fbd4e2914013b0611e973a24e35', ref: input => {
30244
30612
  this.nativeInput = input;
30245
30613
  }, type: "file", class: {
30246
30614
  "duet-upload": true,
@@ -30344,9 +30712,9 @@ class DuetUploadItem {
30344
30712
  const { uid, meta, item } = this.data;
30345
30713
  const Badges = meta && meta.badges ? (hAsync("span", null, meta.badges.map(badgeText => (hAsync("duet-badge", { color: "primary" }, badgeText))))) : undefined;
30346
30714
  const actionDescription = `${meta && meta.badges ? meta.badges.join(",") : ""} ${item.name}`;
30347
- return (hAsync("div", { key: 'af4b480a7c50c90ebf35c2744a0c6d301c026ee9', class: {
30715
+ return (hAsync("div", { key: 'a1edd9a770aa019bd6604d67b2cd4fc5ec1ff7a1', class: {
30348
30716
  "upload-item-row": true,
30349
- } }, this.showCategory && (hAsync("div", { key: '4717379f9f4b5848066dd29975972f19b46e2ca2', class: "item-categories" }, hAsync("duet-heading", { key: '629de4c001a31d3ac9e509f4d8c4e48453b861bb', class: "heading", color: "color-secondary", level: "h6", weight: "semibold" }, getLocaleString(this.categoryLabel)), Badges)), hAsync("div", { key: '0bab4d7664d6f2032dac1ea95b2b608297ab4d2a', class: { "item-name": true, "no-category": !this.showCategory } }, !!this.label && (hAsync("duet-heading", { key: '65d2a44a4b4b3353766658557242ad53c357236e', class: "heading", color: "color-secondary", level: "h6", weight: "semibold" }, getLocaleString(this.label))), this.getFileNameLine()), hAsync("div", { key: '5e5cce5f36a34f4b24c21a1055874ba9bc59493b', class: "item-actions" }, this.actions.map(actionItem => {
30717
+ } }, this.showCategory && (hAsync("div", { key: '2e74eca5c89a77975cba75685acbdb4f517da81c', class: "item-categories" }, hAsync("duet-heading", { key: '90dc1251073ef07085b355c82f17f7f6aa5aff72', class: "heading", color: "color-secondary", level: "h6", weight: "semibold" }, getLocaleString(this.categoryLabel)), Badges)), hAsync("div", { key: '75ab96c30689b58829224123ac875d567f882b47', class: { "item-name": true, "no-category": !this.showCategory } }, !!this.label && (hAsync("duet-heading", { key: '52b7124f793247f2b4d55873c4c47f8d2682660b', class: "heading", color: "color-secondary", level: "h6", weight: "semibold" }, getLocaleString(this.label))), this.getFileNameLine()), hAsync("div", { key: '2430a9c7e24ea14056ba78c3ddd672cbc86bae40', class: "item-actions" }, this.actions.map(actionItem => {
30350
30718
  return (hAsync("duet-action-button", { actionMeta: Object.assign({}, meta || {}), actionId: uid || null, actionName: actionItem.name, theme: this.theme, iconName: actionItem.icon, iconColor: actionItem.color, iconSize: actionItem.size, background: actionItem.background, "accessible-label": `${actionDescription} ${getLocaleString(actionItem.label)} `, accessibleTitle: this.getActionButtonTitle(actionItem), ref: button => (this.actionButton = button) }));
30351
30719
  }))));
30352
30720
  }
@@ -30386,7 +30754,7 @@ class DuetVisuallyHidden {
30386
30754
  * Always the last one in the class.
30387
30755
  */
30388
30756
  render() {
30389
- return (hAsync(Host, { key: '0b6d7c8ffd99088d9679558cf45fd682f17754b8', class: "duet-visually-hidden" }, hAsync("slot", { key: 'a1fd4a31404091a50c989a4ccbe6ea9b8233fa73' })));
30757
+ return (hAsync(Host, { key: '4404c44b59f635d9165c960341fbdd957d8f451c', class: "duet-visually-hidden" }, hAsync("slot", { key: 'caa2aef6f4faf8ca34300b885d2de0772e272ad3' })));
30390
30758
  }
30391
30759
  get element() { return getElement(this); }
30392
30760
  static get style() { return duetVisuallyHiddenCss; }