@duetds/components 10.5.0 → 10.7.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 (479) hide show
  1. package/hydrate/index.js +658 -282
  2. package/hydrate/index.mjs +658 -282
  3. package/lib/cjs/{a11y-utils-DaAO4N9d.js → a11y-utils-DmCjy3Q3.js} +1 -1
  4. package/lib/cjs/{app-globals-CHNvdfQj.js → app-globals-D1tikFob.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 +7 -7
  8. package/lib/cjs/duet-banner.cjs.entry.js +17 -18
  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 +8 -8
  12. package/lib/cjs/duet-callout.cjs.entry.js +5 -5
  13. package/lib/cjs/duet-caption_4.cjs.entry.js +11 -11
  14. package/lib/cjs/duet-card.cjs.entry.js +22 -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 +28 -12
  18. package/lib/cjs/duet-choice_2.cjs.entry.js +7 -7
  19. package/lib/cjs/duet-collapsible.cjs.entry.js +4 -4
  20. package/lib/cjs/duet-combobox.cjs.entry.js +7 -17
  21. package/lib/cjs/duet-contact-card.cjs.entry.js +18 -7
  22. package/lib/cjs/duet-cookie-consent.cjs.entry.js +3 -3
  23. package/lib/cjs/duet-date-picker.cjs.entry.js +127 -14
  24. package/lib/cjs/duet-divider_2.cjs.entry.js +5 -5
  25. package/lib/cjs/duet-editable-table_3.cjs.entry.js +15 -15
  26. package/lib/cjs/duet-empty-state.cjs.entry.js +2 -2
  27. package/lib/cjs/duet-fieldset.cjs.entry.js +6 -6
  28. package/lib/cjs/duet-file-chooser.cjs.entry.js +2 -2
  29. package/lib/cjs/duet-footer.cjs.entry.js +5 -5
  30. package/lib/cjs/duet-grid_2.cjs.entry.js +12 -8
  31. package/lib/cjs/duet-header_2.cjs.entry.js +7 -7
  32. package/lib/cjs/duet-hero.cjs.entry.js +27 -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 +70 -18
  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 +9 -9
  49. package/lib/cjs/duet-overlay.cjs.entry.js +3 -3
  50. package/lib/cjs/duet-page-heading.cjs.entry.js +6 -6
  51. package/lib/cjs/duet-pagination_2.cjs.entry.js +19 -19
  52. package/lib/cjs/duet-panel.cjs.entry.js +4 -4
  53. package/lib/cjs/duet-phone-input.cjs.entry.js +11 -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 -7
  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-teaser.cjs.entry.js +110 -0
  79. package/lib/cjs/duet-textarea.cjs.entry.js +8 -8
  80. package/lib/cjs/duet-toggle.cjs.entry.js +9 -9
  81. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +5 -5
  82. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +7 -7
  83. package/lib/cjs/duet-toolbar-item.cjs.entry.js +8 -8
  84. package/lib/cjs/duet-toolbar-link.cjs.entry.js +4 -4
  85. package/lib/cjs/duet-toolbar.cjs.entry.js +4 -4
  86. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +10 -10
  87. package/lib/cjs/duet-tooltip.cjs.entry.js +5 -5
  88. package/lib/cjs/duet-tray.cjs.entry.js +7 -7
  89. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +2 -2
  90. package/lib/cjs/duet-upload-item.cjs.entry.js +6 -6
  91. package/lib/cjs/duet-visually-hidden.cjs.entry.js +2 -2
  92. package/lib/cjs/duet.cjs.js +3 -3
  93. package/lib/cjs/{errorcodes.utils-Dkf_MfrJ.js → errorcodes.utils-Di-nO8ua.js} +1 -1
  94. package/lib/cjs/{focus-utils-BuGg0Oha.js → focus-utils-uEO1pi2O.js} +1 -1
  95. package/lib/cjs/{index-ZxE6MB5V.js → index-BGRMvA4R.js} +13 -9
  96. package/lib/cjs/{keyboard-utils-D9UlHbik.js → keyboard-utils-DibQafwg.js} +2 -0
  97. package/lib/cjs/{label-CpPOBfjS.js → label-CwgdRt0Q.js} +1 -1
  98. package/lib/cjs/{language-utils-C7Z0KYg-.js → language-utils-CrB5zNlc.js} +1 -1
  99. package/lib/cjs/loader.cjs.js +3 -3
  100. package/lib/cjs/picture-utils-CZhgDlXJ.js +20 -0
  101. package/lib/cjs/{slot-utils-BXdHT3A1.js → slot-utils-4v5bqyQh.js} +1 -1
  102. package/lib/cjs/{themeable-component-CIDaln0Z.js → themeable-component-I4SEm6nQ.js} +1 -1
  103. package/lib/cjs/{token-utils-DY3-olMV.js → token-utils-ZISdNshf.js} +1 -1
  104. package/lib/cjs/{tokens.module-CTbvyezn.js → tokens.module-CGRpZaa1.js} +2 -1
  105. package/lib/collection/collection-manifest.json +1 -0
  106. package/lib/collection/components/duet-action-button/duet-action-button.js +2 -2
  107. package/lib/collection/components/duet-alert/duet-alert.js +1 -1
  108. package/lib/collection/components/duet-badge/duet-badge.js +2 -2
  109. package/lib/collection/components/duet-banner/duet-banner.css +12 -0
  110. package/lib/collection/components/duet-banner/duet-banner.js +51 -7
  111. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +4 -4
  112. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +2 -2
  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 +63 -7
  118. package/lib/collection/components/duet-checkbox/duet-checkbox.js +3 -3
  119. package/lib/collection/components/duet-chip/duet-chip.js +53 -17
  120. package/lib/collection/components/duet-choice/duet-checkmark.js +2 -2
  121. package/lib/collection/components/duet-choice/duet-choice.js +3 -3
  122. package/lib/collection/components/duet-choice-group/duet-choice-group.js +2 -2
  123. package/lib/collection/components/duet-collapsible/duet-collapsible.js +3 -3
  124. package/lib/collection/components/duet-combobox/duet-combobox.js +4 -16
  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 +58 -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 +100 -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 +1 -1
  134. package/lib/collection/components/duet-editable-table/duet-editable-table.js +5 -5
  135. package/lib/collection/components/duet-empty-state/duet-empty-state.js +3 -3
  136. package/lib/collection/components/duet-fieldset/duet-fieldset.js +3 -3
  137. package/lib/collection/components/duet-file-chooser/duet-file-chooser.js +1 -1
  138. package/lib/collection/components/duet-footer/duet-footer.js +7 -7
  139. package/lib/collection/components/duet-grid/duet-grid.css +22 -0
  140. package/lib/collection/components/duet-grid/duet-grid.js +17 -8
  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 +1 -1
  144. package/lib/collection/components/duet-hero/duet-hero.css +235 -144
  145. package/lib/collection/components/duet-hero/duet-hero.js +72 -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.js +73 -20
  149. package/lib/collection/components/duet-label/duet-label.js +2 -2
  150. package/lib/collection/components/duet-layout/duet-layout.js +6 -6
  151. package/lib/collection/components/duet-link/duet-link.js +2 -2
  152. package/lib/collection/components/duet-list/duet-list.js +4 -4
  153. package/lib/collection/components/duet-list-item/duet-list-item.js +2 -2
  154. package/lib/collection/components/duet-logo/duet-logo.js +2 -2
  155. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +4 -4
  156. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +2 -2
  157. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +4 -4
  158. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +2 -2
  159. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.js +2 -2
  160. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +2 -2
  161. package/lib/collection/components/duet-modal/duet-modal.js +11 -11
  162. package/lib/collection/components/duet-multiselect/duet-multiselect.js +11 -11
  163. package/lib/collection/components/duet-nav/duet-nav.js +1 -1
  164. package/lib/collection/components/duet-notification/duet-notification.js +2 -2
  165. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +4 -4
  166. package/lib/collection/components/duet-number-input/duet-number-input.js +8 -8
  167. package/lib/collection/components/duet-overlay/duet-overlay.js +2 -2
  168. package/lib/collection/components/duet-page-heading/duet-page-heading.js +3 -3
  169. package/lib/collection/components/duet-pagination/duet-pagination.js +13 -13
  170. package/lib/collection/components/duet-panel/duet-panel.js +3 -3
  171. package/lib/collection/components/duet-paragraph/duet-paragraph.js +5 -5
  172. package/lib/collection/components/duet-phone-input/duet-phone-input.js +30 -5
  173. package/lib/collection/components/duet-popup-menu/duet-popup-menu.js +1 -1
  174. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +4 -4
  175. package/lib/collection/components/duet-promo-card/duet-promo-card.css +4 -0
  176. package/lib/collection/components/duet-promo-card/duet-promo-card.js +58 -2
  177. package/lib/collection/components/duet-radio/duet-radio.js +6 -6
  178. package/lib/collection/components/duet-radio-group/duet-radio-group.js +1 -1
  179. package/lib/collection/components/duet-range-slider/duet-range-slider.js +4 -4
  180. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +3 -3
  181. package/lib/collection/components/duet-scrollable/duet-scrollable.js +5 -5
  182. package/lib/collection/components/duet-section-layout/duet-section-layout.js +3 -3
  183. package/lib/collection/components/duet-select/duet-select.js +10 -10
  184. package/lib/collection/components/duet-shaped-image/duet-shaped-image.js +2 -2
  185. package/lib/collection/components/duet-share-chart/duet-share-chart.js +2 -2
  186. package/lib/collection/components/duet-share-chart-item/duet-share-chart-item.js +1 -1
  187. package/lib/collection/components/duet-show-more/duet-show-more.js +3 -3
  188. package/lib/collection/components/duet-slideout/duet-slideout.js +12 -6
  189. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +1 -1
  190. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +2 -2
  191. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +6 -6
  192. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +4 -4
  193. package/lib/collection/components/duet-spacer/duet-spacer.js +3 -3
  194. package/lib/collection/components/duet-spinner/duet-spinner.js +2 -2
  195. package/lib/collection/components/duet-status-icon/duet-status-icon.js +2 -2
  196. package/lib/collection/components/duet-step/duet-step.js +4 -4
  197. package/lib/collection/components/duet-stepper/duet-stepper.js +2 -2
  198. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +5 -5
  199. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +4 -4
  200. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +2 -2
  201. package/lib/collection/components/duet-submenu-bar-item/duet-submenu-bar-item.js +1 -1
  202. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +1 -1
  203. package/lib/collection/components/duet-tab/duet-tab.js +2 -2
  204. package/lib/collection/components/duet-tab-group/duet-tab-group.js +9 -9
  205. package/lib/collection/components/duet-table/duet-table-styles.js +5 -5
  206. package/lib/collection/components/duet-table/duet-table.js +2 -2
  207. package/lib/collection/components/duet-teaser/duet-teaser.css +127 -0
  208. package/lib/collection/components/duet-teaser/duet-teaser.js +462 -0
  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.js +3 -3
  217. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +3 -3
  218. package/lib/collection/components/duet-tooltip/duet-tooltip.js +1 -1
  219. package/lib/collection/components/duet-tray/duet-tray.js +2 -2
  220. package/lib/collection/components/duet-upload/duet-upload.js +16 -16
  221. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +1 -1
  222. package/lib/collection/components/duet-upload-item/duet-upload-item.js +4 -4
  223. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +1 -1
  224. package/lib/collection/utils/keyboard-utils.js +1 -0
  225. package/lib/collection/utils/picture-utils.js +6 -1
  226. package/lib/duet/duet.esm.js +1 -1
  227. package/lib/duet/{p-61ec0e1c.entry.js → p-017873ec.entry.js} +1 -1
  228. package/lib/duet/{p-b1326cbb.entry.js → p-047af1e2.entry.js} +1 -1
  229. package/lib/duet/{p-516397ba.entry.js → p-058fcc72.entry.js} +1 -1
  230. package/lib/duet/p-05a6360b.entry.js +4 -0
  231. package/lib/duet/p-05b5ef84.entry.js +4 -0
  232. package/lib/duet/{p-6ef683d5.entry.js → p-07d43c60.entry.js} +1 -1
  233. package/lib/duet/{p-52beb436.entry.js → p-0ab559fb.entry.js} +1 -1
  234. package/lib/duet/{p-fe829b53.entry.js → p-0acf9bcf.entry.js} +1 -1
  235. package/lib/duet/{p-d3baa815.entry.js → p-0c42cc61.entry.js} +1 -1
  236. package/lib/duet/{p-443af533.entry.js → p-0df7094e.entry.js} +1 -1
  237. package/lib/duet/p-10baba94.entry.js +4 -0
  238. package/lib/duet/{p-30108edc.entry.js → p-1358a396.entry.js} +1 -1
  239. package/lib/duet/{p-70961edb.entry.js → p-1498e4a8.entry.js} +1 -1
  240. package/lib/duet/p-16d5dd2c.entry.js +4 -0
  241. package/lib/duet/p-1ec31f22.entry.js +4 -0
  242. package/lib/duet/{p-d6f0afa5.entry.js → p-2013545d.entry.js} +1 -1
  243. package/lib/duet/p-2265c46a.entry.js +4 -0
  244. package/lib/duet/{p-f040706c.entry.js → p-2394b3cd.entry.js} +1 -1
  245. package/lib/duet/{p-d779fe42.entry.js → p-2b17c517.entry.js} +1 -1
  246. package/lib/duet/{p-c54be349.entry.js → p-2f0f3a4a.entry.js} +1 -1
  247. package/lib/duet/{p-a9104184.entry.js → p-3ce04abc.entry.js} +1 -1
  248. package/lib/duet/{p-dedf6a32.entry.js → p-420df0aa.entry.js} +1 -1
  249. package/lib/duet/{p-c216e746.entry.js → p-430fad4e.entry.js} +1 -1
  250. package/lib/duet/p-453001ea.entry.js +4 -0
  251. package/lib/duet/{p-fa13ffe9.entry.js → p-4695398d.entry.js} +1 -1
  252. package/lib/duet/p-4bc7198d.entry.js +4 -0
  253. package/lib/duet/p-4e028274.entry.js +4 -0
  254. package/lib/duet/{p-8b0dfbd7.entry.js → p-5be103d0.entry.js} +1 -1
  255. package/lib/duet/{p-407f7f03.entry.js → p-5e5b6dc7.entry.js} +1 -1
  256. package/lib/duet/{p-42ec7305.entry.js → p-5fc88879.entry.js} +1 -1
  257. package/lib/duet/{p-e08dce92.entry.js → p-6865e880.entry.js} +1 -1
  258. package/lib/duet/{p-cb6c4158.entry.js → p-68a9ffb5.entry.js} +1 -1
  259. package/lib/duet/{p-b747f6e9.entry.js → p-69bcb076.entry.js} +1 -1
  260. package/lib/duet/p-71da8fbe.entry.js +4 -0
  261. package/lib/duet/{p-20a8ef81.entry.js → p-76e2c659.entry.js} +1 -1
  262. package/lib/duet/{p-74aac967.entry.js → p-7f5387dd.entry.js} +1 -1
  263. package/lib/duet/{p-110c7572.entry.js → p-84ed366e.entry.js} +1 -1
  264. package/lib/duet/{p-a8876b3d.entry.js → p-868647de.entry.js} +1 -1
  265. package/lib/duet/{p-a483117e.entry.js → p-8ad4bb4c.entry.js} +1 -1
  266. package/lib/duet/{p-3690576a.entry.js → p-8b9ffff4.entry.js} +1 -1
  267. package/lib/duet/{p-461d4089.entry.js → p-8da66626.entry.js} +1 -1
  268. package/lib/duet/{p-9ae7aaef.entry.js → p-8ea85c31.entry.js} +1 -1
  269. package/lib/duet/p-940a87e7.entry.js +4 -0
  270. package/lib/duet/{p-268b3066.entry.js → p-99550717.entry.js} +1 -1
  271. package/lib/duet/{p-8ace1eb4.entry.js → p-9987420d.entry.js} +1 -1
  272. package/lib/duet/{p-833802f9.entry.js → p-9d41df85.entry.js} +1 -1
  273. package/lib/duet/{p-3f7afd87.entry.js → p-9dee0205.entry.js} +1 -1
  274. package/lib/duet/{p-CFqvB5PA.js → p-B0XOGsB6.js} +1 -1
  275. package/lib/duet/p-B44ykle6.js +4 -0
  276. package/lib/duet/{p-R3pTP2Oy.js → p-B5SMAn1G.js} +1 -1
  277. package/lib/duet/p-BAiGBGTO.js +4 -0
  278. package/lib/duet/p-BWz_ChlU.js +4 -0
  279. package/lib/duet/p-BaefVzkx.js +4 -0
  280. package/lib/duet/{p-B8-N_qjs.js → p-Bnup2-sN.js} +1 -1
  281. package/lib/duet/p-C6rGA5IU.js +4 -0
  282. package/lib/duet/p-D4MpGrUR.js +5 -0
  283. package/lib/duet/p-DSNAI2Lx.js +4 -0
  284. package/lib/duet/{p-D2ly4TZR.js → p-DYmL1tSl.js} +1 -1
  285. package/lib/duet/{p-C5Yfx2kd.js → p-DtprEjjN.js} +1 -1
  286. package/lib/duet/{p-38973524.entry.js → p-a2106abd.entry.js} +1 -1
  287. package/lib/duet/p-a2a2f775.entry.js +4 -0
  288. package/lib/duet/{p-3277233e.entry.js → p-a2f7ef35.entry.js} +1 -1
  289. package/lib/duet/{p-829db926.entry.js → p-a62e6d8d.entry.js} +1 -1
  290. package/lib/duet/{p-40fa7371.entry.js → p-a6dc8c7d.entry.js} +1 -1
  291. package/lib/duet/{p-02d8e844.entry.js → p-a944ffff.entry.js} +1 -1
  292. package/lib/duet/{p-4b7f1244.entry.js → p-aebcf484.entry.js} +1 -1
  293. package/lib/duet/{p-bdbf0fae.entry.js → p-b2f0905a.entry.js} +1 -1
  294. package/lib/duet/p-b3a7ef62.entry.js +4 -0
  295. package/lib/duet/{p-70612314.entry.js → p-b4a1c719.entry.js} +1 -1
  296. package/lib/duet/p-b5204ec2.entry.js +4 -0
  297. package/lib/duet/{p-8012c7bc.entry.js → p-b58cfa18.entry.js} +1 -1
  298. package/lib/duet/{p-2dd7d75e.entry.js → p-b69946d4.entry.js} +1 -1
  299. package/lib/duet/{p-317e81f3.entry.js → p-b7351bfd.entry.js} +1 -1
  300. package/lib/duet/{p-3b2fba0f.entry.js → p-b7bb7472.entry.js} +1 -1
  301. package/lib/duet/{p-d3b5c997.entry.js → p-b9e97305.entry.js} +1 -1
  302. package/lib/duet/p-bb7fa0cf.entry.js +4 -0
  303. package/lib/duet/p-bef7eed7.entry.js +4 -0
  304. package/lib/duet/p-bffae8f6.entry.js +4 -0
  305. package/lib/duet/{p-c1afac0d.entry.js → p-c26e2123.entry.js} +1 -1
  306. package/lib/duet/{p-e7f2359a.entry.js → p-c49a72ad.entry.js} +1 -1
  307. package/lib/duet/{p-1da7703d.entry.js → p-c5c63d0f.entry.js} +1 -1
  308. package/lib/duet/{p-43e076b5.entry.js → p-c9a12663.entry.js} +1 -1
  309. package/lib/duet/{p-a5177d32.entry.js → p-ccaf5c28.entry.js} +1 -1
  310. package/lib/duet/{p-7fd39204.entry.js → p-d78923f9.entry.js} +1 -1
  311. package/lib/duet/p-d8383f1a.entry.js +4 -0
  312. package/lib/duet/{p-3f35fce3.entry.js → p-e3d91f53.entry.js} +1 -1
  313. package/lib/duet/p-e78af675.entry.js +4 -0
  314. package/lib/duet/{p-9e1a59d1.entry.js → p-e9a7215b.entry.js} +1 -1
  315. package/lib/duet/p-ebe55a34.entry.js +4 -0
  316. package/lib/duet/{p-efa4eecc.entry.js → p-ef340dc6.entry.js} +1 -1
  317. package/lib/duet/{p-317a1fc0.entry.js → p-f17438c7.entry.js} +1 -1
  318. package/lib/duet/{p-7353ee4c.entry.js → p-f264879d.entry.js} +1 -1
  319. package/lib/duet/p-f61ebeb1.entry.js +4 -0
  320. package/lib/duet/p-f647f09e.entry.js +4 -0
  321. package/lib/duet/p-f89da74c.entry.js +4 -0
  322. package/lib/duet/{p-2f8a47e2.entry.js → p-f959ca52.entry.js} +1 -1
  323. package/lib/duet/{p-19863cdf.entry.js → p-fb0f6212.entry.js} +1 -1
  324. package/lib/duet/p-fb59f80d.entry.js +4 -0
  325. package/lib/duet/{p-7eea47d5.entry.js → p-feae1702.entry.js} +1 -1
  326. package/lib/duet/p-kkZE1C6Z.js +4 -0
  327. package/lib/esm/{a11y-utils-ChN5Nhxh.js → a11y-utils-DZqe1lDK.js} +1 -1
  328. package/lib/esm/{app-globals-4kCk2rkO.js → app-globals-Byl9AdI1.js} +1 -1
  329. package/lib/esm/duet-action-button.entry.js +6 -6
  330. package/lib/esm/duet-alert.entry.js +4 -4
  331. package/lib/esm/duet-badge.entry.js +7 -7
  332. package/lib/esm/duet-banner.entry.js +17 -18
  333. package/lib/esm/duet-breadcrumb.entry.js +7 -7
  334. package/lib/esm/duet-breadcrumbs.entry.js +7 -7
  335. package/lib/esm/duet-button_2.entry.js +8 -8
  336. package/lib/esm/duet-callout.entry.js +5 -5
  337. package/lib/esm/duet-caption_4.entry.js +11 -11
  338. package/lib/esm/duet-card.entry.js +23 -11
  339. package/lib/esm/duet-checkbox.entry.js +3 -3
  340. package/lib/esm/duet-checkmark.entry.js +4 -4
  341. package/lib/esm/duet-chip.entry.js +28 -12
  342. package/lib/esm/duet-choice_2.entry.js +7 -7
  343. package/lib/esm/duet-collapsible.entry.js +4 -4
  344. package/lib/esm/duet-combobox.entry.js +7 -17
  345. package/lib/esm/duet-contact-card.entry.js +18 -7
  346. package/lib/esm/duet-cookie-consent.entry.js +3 -3
  347. package/lib/esm/duet-date-picker.entry.js +127 -14
  348. package/lib/esm/duet-divider_2.entry.js +5 -5
  349. package/lib/esm/duet-editable-table_3.entry.js +15 -15
  350. package/lib/esm/duet-empty-state.entry.js +2 -2
  351. package/lib/esm/duet-fieldset.entry.js +6 -6
  352. package/lib/esm/duet-file-chooser.entry.js +2 -2
  353. package/lib/esm/duet-footer.entry.js +5 -5
  354. package/lib/esm/duet-grid_2.entry.js +12 -8
  355. package/lib/esm/duet-header_2.entry.js +7 -7
  356. package/lib/esm/duet-hero.entry.js +27 -21
  357. package/lib/esm/duet-icon.entry.js +7 -7
  358. package/lib/esm/duet-indicator.entry.js +5 -5
  359. package/lib/esm/duet-input_2.entry.js +70 -18
  360. package/lib/esm/duet-layout.entry.js +7 -7
  361. package/lib/esm/duet-list_2.entry.js +5 -5
  362. package/lib/esm/duet-menu-bar-button.entry.js +4 -4
  363. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +5 -5
  364. package/lib/esm/duet-menu-bar-dropdown.entry.js +7 -7
  365. package/lib/esm/duet-menu-bar-item.entry.js +7 -7
  366. package/lib/esm/duet-menu-bar-link.entry.js +4 -4
  367. package/lib/esm/duet-menu-bar.entry.js +6 -6
  368. package/lib/esm/duet-modal.entry.js +15 -15
  369. package/lib/esm/duet-multiselect.entry.js +11 -11
  370. package/lib/esm/duet-nav.entry.js +3 -3
  371. package/lib/esm/duet-notification_2.entry.js +10 -10
  372. package/lib/esm/duet-number-input.entry.js +9 -9
  373. package/lib/esm/duet-overlay.entry.js +3 -3
  374. package/lib/esm/duet-page-heading.entry.js +6 -6
  375. package/lib/esm/duet-pagination_2.entry.js +19 -19
  376. package/lib/esm/duet-panel.entry.js +4 -4
  377. package/lib/esm/duet-phone-input.entry.js +11 -6
  378. package/lib/esm/duet-popup-menu_2.entry.js +10 -10
  379. package/lib/esm/duet-progress.entry.js +3 -3
  380. package/lib/esm/duet-promo-card.entry.js +20 -8
  381. package/lib/esm/duet-radio_2.entry.js +7 -7
  382. package/lib/esm/duet-range-slider.entry.js +8 -8
  383. package/lib/esm/duet-scrollable_3.entry.js +18 -18
  384. package/lib/esm/duet-section-layout.entry.js +4 -4
  385. package/lib/esm/duet-select.entry.js +9 -9
  386. package/lib/esm/duet-shaped-image.entry.js +4 -4
  387. package/lib/esm/duet-share-chart-item.entry.js +2 -2
  388. package/lib/esm/duet-share-chart.entry.js +8 -8
  389. package/lib/esm/duet-show-more.entry.js +6 -6
  390. package/lib/esm/duet-slideout-lang.entry.js +4 -4
  391. package/lib/esm/duet-slideout-link.entry.js +7 -7
  392. package/lib/esm/duet-slideout-panel-dropdown.entry.js +6 -6
  393. package/lib/esm/duet-slideout-panel.entry.js +13 -13
  394. package/lib/esm/duet-slideout.entry.js +20 -14
  395. package/lib/esm/duet-status-icon.entry.js +3 -3
  396. package/lib/esm/duet-step_2.entry.js +7 -7
  397. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +5 -5
  398. package/lib/esm/duet-submenu-bar-dropdown.entry.js +7 -7
  399. package/lib/esm/duet-submenu-bar-item.entry.js +7 -7
  400. package/lib/esm/duet-submenu-bar-link.entry.js +4 -4
  401. package/lib/esm/duet-submenu-bar.entry.js +7 -7
  402. package/lib/esm/duet-teaser.entry.js +108 -0
  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 +10 -10
  411. package/lib/esm/duet-tooltip.entry.js +5 -5
  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-DuFCu_27.js → errorcodes.utils-KA3z1KuW.js} +1 -1
  418. package/lib/esm/{focus-utils-CFswdkeD.js → focus-utils-id9x3opi.js} +1 -1
  419. package/lib/esm/{index-B2cboDWM.js → index-D4MpGrUR.js} +13 -9
  420. package/lib/esm/{keyboard-utils-Db8rvjPI.js → keyboard-utils-BaefVzkx.js} +2 -1
  421. package/lib/esm/{label-CJxIWUOT.js → label-Caev3m-F.js} +1 -1
  422. package/lib/esm/{language-utils-C4M4ASkT.js → language-utils-DTyUbpD-.js} +1 -1
  423. package/lib/esm/loader.js +4 -4
  424. package/lib/esm/picture-utils-4PMNZDR2.js +18 -0
  425. package/lib/esm/{slot-utils--sNK1DNn.js → slot-utils-BhEk4zKY.js} +1 -1
  426. package/lib/esm/{themeable-component-BBi3552X.js → themeable-component-B_d7Klmd.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-banner/duet-banner.d.ts +10 -1
  430. package/lib/types/components/duet-button/duet-button.d.ts +1 -1
  431. package/lib/types/components/duet-card/duet-card.d.ts +10 -0
  432. package/lib/types/components/duet-chip/duet-chip.d.ts +15 -8
  433. package/lib/types/components/duet-combobox/duet-combobox.d.ts +0 -1
  434. package/lib/types/components/duet-contact-card/duet-contact-card.d.ts +10 -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-grid/duet-grid.d.ts +2 -1
  441. package/lib/types/components/duet-hero/duet-hero.d.ts +10 -0
  442. package/lib/types/components/duet-input/duet-input.d.ts +11 -0
  443. package/lib/types/components/duet-phone-input/duet-phone-input.d.ts +5 -0
  444. package/lib/types/components/duet-promo-card/duet-promo-card.d.ts +11 -0
  445. package/lib/types/components/duet-teaser/duet-teaser.d.ts +93 -0
  446. package/lib/types/components.d.ts +291 -14
  447. package/lib/types/utils/keyboard-utils.d.ts +1 -0
  448. package/lib/types/utils/picture-utils.d.ts +4 -0
  449. package/package.json +5 -5
  450. package/lib/duet/p-06297bd8.entry.js +0 -4
  451. package/lib/duet/p-0c04f9f5.entry.js +0 -4
  452. package/lib/duet/p-18a8ea12.entry.js +0 -4
  453. package/lib/duet/p-1bca9931.entry.js +0 -4
  454. package/lib/duet/p-3f3c6e64.entry.js +0 -4
  455. package/lib/duet/p-4af6a8ed.entry.js +0 -4
  456. package/lib/duet/p-5284c707.entry.js +0 -4
  457. package/lib/duet/p-5c9f443c.entry.js +0 -4
  458. package/lib/duet/p-5f5f72d4.entry.js +0 -4
  459. package/lib/duet/p-5lFzA17H.js +0 -4
  460. package/lib/duet/p-6b469225.entry.js +0 -4
  461. package/lib/duet/p-7294c37d.entry.js +0 -4
  462. package/lib/duet/p-72b504ef.entry.js +0 -4
  463. package/lib/duet/p-734249e0.entry.js +0 -4
  464. package/lib/duet/p-7c08fd87.entry.js +0 -4
  465. package/lib/duet/p-83238bf3.entry.js +0 -4
  466. package/lib/duet/p-86ffd3cb.entry.js +0 -4
  467. package/lib/duet/p-871620d3.entry.js +0 -4
  468. package/lib/duet/p-93ff8fe4.entry.js +0 -4
  469. package/lib/duet/p-9c9811ba.entry.js +0 -4
  470. package/lib/duet/p-B2cboDWM.js +0 -5
  471. package/lib/duet/p-BzYmwX5_.js +0 -4
  472. package/lib/duet/p-Cg4m_WHe.js +0 -4
  473. package/lib/duet/p-DEzE2U5T.js +0 -4
  474. package/lib/duet/p-Db8rvjPI.js +0 -4
  475. package/lib/duet/p-a068c086.entry.js +0 -4
  476. package/lib/duet/p-c2026c6b.entry.js +0 -4
  477. package/lib/duet/p-cbcee3e2.entry.js +0 -4
  478. package/lib/duet/p-d5f90dbc.entry.js +0 -4
  479. package/lib/duet/p-s8EL6NG5.js +0 -4
package/hydrate/index.js CHANGED
@@ -3491,6 +3491,7 @@ const isQuestionKey = (e) => e.key === "?";
3491
3491
  const isEnterKey = (e) => e.key === "Enter";
3492
3492
  const isKeyboardClick = (e) => isEnterKey(e) || isSpaceKey(e);
3493
3493
  const isNumber = (e) => e.key >= "0" && e.key <= "9";
3494
+ const isCharacterInsertKey = (e) => e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey;
3494
3495
  /**
3495
3496
  * Component instances that have subscribed to tabbing change.
3496
3497
  */
@@ -5271,13 +5272,13 @@ class DuetBadge {
5271
5272
  */
5272
5273
  render() {
5273
5274
  const backgroundClass = `background-${this.background}`;
5274
- return (hAsync(Host, { key: '03d5a24faf4335689dd2e6bc3dfb75550f453021', class: { "duet-m-0": this.margin === "none" } }, hAsync("span", { key: '0c455e8ff4ff40445fe06c19dd4774a81c6e00e7', class: {
5275
+ return (hAsync(Host, { key: 'a9dd6cafb9dd266a641efe7b3f5d3786c9e0d970', class: { "duet-m-0": this.margin === "none" } }, hAsync("span", { key: '3dc22a694e2540a4799bd9befe11453b30efff98', class: {
5275
5276
  "duet-badge": true,
5276
5277
  [this.variation]: true,
5277
5278
  [backgroundClass]: true,
5278
5279
  "has-tooltip": !!this.tooltip || this.hasTooltipSlot,
5279
5280
  "duet-theme-turva": this.theme === "turva",
5280
- } }, hAsync("duet-visually-hidden", { key: '397c683fb66c3302277c9fbbecc867a193e7ccdb' }, this.getVariationLabel()), hAsync("slot", { key: '3d4764656e3ee91de6d9f5f85088aaf433602365' }), (this.tooltip || this.hasTooltipSlot) && (hAsync("span", { key: '4b14897ec382b55bd71402976bdf549c241ac64f', class: "tooltip-wrap" }, !this.hasTooltipSlot && (hAsync("duet-tooltip", { key: '68e5e4bf3191f4143271fdaaa9201882c089cea6', "accessible-about-label": this.getBadgeText(), badgeElement: this.element }, this.tooltip)), hAsync("slot", { key: '1103f4673c24886644bf5550bb6feb85856ff7d0', name: "tooltip" }))))));
5281
+ } }, hAsync("duet-visually-hidden", { key: '2673764baf37610bce6a8378375f785eb4404fc6' }, this.getVariationLabel()), hAsync("slot", { key: 'ec85b8d3cbd2699867de7cfee681074bee1087c5' }), (this.tooltip || this.hasTooltipSlot) && (hAsync("span", { key: '4c62025c3b875c583fd8fbb78ae1f3fd41dafa40', class: "tooltip-wrap" }, !this.hasTooltipSlot && (hAsync("duet-tooltip", { key: '80883a763c0c24851c1641d75982c7b4616a79b4', "accessible-about-label": this.getBadgeText(), badgeElement: this.element }, this.tooltip)), hAsync("slot", { key: '4d82577d088190c59b6f067dc8dc3cbd473ea73b', name: "tooltip" }))))));
5281
5282
  }
5282
5283
  get element() { return getElement(this); }
5283
5284
  static get style() { return duetBadgeCss; }
@@ -5298,13 +5299,18 @@ class DuetBadge {
5298
5299
  }
5299
5300
 
5300
5301
  const DuetPicture = ({ img, sources }) => {
5302
+ const imgAttrs = Object.assign({}, img);
5303
+ if (!img.alt) {
5304
+ imgAttrs.alt = "";
5305
+ imgAttrs.role = "presentation";
5306
+ }
5301
5307
  return (hAsync("picture", null,
5302
5308
  sources &&
5303
5309
  sources.map(source => (hAsync("source", { srcSet: source.srcset, media: source.media, type: source.type, sizes: source.sizes }))),
5304
- hAsync("img", Object.assign({}, img))));
5310
+ hAsync("img", Object.assign({}, imgAttrs))));
5305
5311
  };
5306
5312
 
5307
- 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}";
5313
+ 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}";
5308
5314
 
5309
5315
  /**
5310
5316
  * @slot heading - Slot for heading content. Only span should be used in this slot.
@@ -5347,6 +5353,11 @@ class DuetBanner {
5347
5353
  * Image. Example image is 512x341;
5348
5354
  */
5349
5355
  this.image = "";
5356
+ /**
5357
+ * Will the image cover the whole image area (possibly getting cropped), or will it be contained without any
5358
+ * cropping (possibly not filling the whole area).
5359
+ */
5360
+ this.imageFit = "cover";
5350
5361
  /**
5351
5362
  * Icon.
5352
5363
  */
@@ -5429,20 +5440,20 @@ class DuetBanner {
5429
5440
  img: {
5430
5441
  src: this.image,
5431
5442
  alt: this.imageAlt || "",
5432
- loading: "lazy",
5433
- class: "image",
5434
- role: this.imageAlt ? undefined : "presentation",
5443
+ loading: this.imagePriority === "high" ? "eager" : "lazy",
5444
+ fetchpriority: this.imagePriority,
5445
+ class: `image ${this.imageFit}`,
5435
5446
  },
5436
5447
  sources: parsePossibleJSON(this.sources),
5437
5448
  };
5438
- return (hAsync(Host, { key: '6c5c51b5270034eca60358d32acf69b0b87cfe37', class: { "duet-m-0": this.margin === "none" } }, hAsync("aside", { key: 'd3357af952f4d21a284a3c07a4840be8c9d96671', class: {
5449
+ return (hAsync(Host, { key: '021aafd46f614c2d52ccd2d014574a7a095e2883', class: { "duet-m-0": this.margin === "none" } }, hAsync("aside", { key: 'ea207c896e6b1624a27d4b6ceb79836ab152f207', class: {
5439
5450
  "duet-banner": true,
5440
5451
  "duet-theme-turva": this.theme === "turva",
5441
5452
  [this.currentSize]: true,
5442
5453
  "size-medium": this.size === "medium" || this.size === "large",
5443
5454
  "size-large": this.size === "large",
5444
5455
  "no-image": !this.image,
5445
- }, 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" })))))));
5456
+ }, style: bannerStyles }, hAsync("div", { key: '525c58ab8a5aaa6cf08bab777f9ea3dd071f75ec', class: "visual" }, hAsync("div", { key: '89b977717483d9ffcedeae98f7d2a36263b0f3d3', class: "image-container" }, this.image && hAsync(DuetPicture, Object.assign({ key: '7f1d73ce70cf6687500eef1d0fc546e4bdbb6ea5' }, pictureSource))), 1 > 2, this.imageFit !== "contain" && hAsync("div", { key: '9cb97c2fefe6058b2d1c9b0e1a0c517d732c8b3f', style: bannerStyles, class: "brand-shape" })), hAsync("div", { key: '2674a03efa17932dd1654e18a72115646a806fd3', class: "content" }, this.hasHeadingSlot && (hAsync("div", { key: '9de6d6fe0940b868b74205ff45c48986776c67a7', class: "heading" }, hAsync("duet-heading", { key: 'dca384f371f65d7f40e59c97603ffde9536c10ae', 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: 'e5f9d70b35eb5e3507cc9c4ae78554debd08f7c7' }, hAsync("slot", { key: '26d9d93896e0f095112db72501c8c9de765eba16', name: "heading" }))))), this.hasDescriptionSlot && (hAsync("div", { key: '1a82c4532fa9862d0207675f89308ee8cd071302', class: "description", style: { color } }, hAsync("slot", { key: '78febb3eca846bffd9555b8114c9ecaf33e55433', name: "description" }))), this.hasActionSlot && (hAsync("div", { key: '2f25d1c449e2ff59bbd41d39da665e1a8822a7a2', class: "action" }, hAsync("slot", { key: '2951e812095eaf2e55a40575e6948e83bfd27b2a', name: "action" })))))));
5446
5457
  }
5447
5458
  get element() { return getElement(this); }
5448
5459
  static get style() { return duetBannerCss; }
@@ -5459,6 +5470,8 @@ class DuetBanner {
5459
5470
  "size": [1025],
5460
5471
  "image": [1],
5461
5472
  "imageAlt": [1, "image-alt"],
5473
+ "imageFit": [1, "image-fit"],
5474
+ "imagePriority": [1, "image-priority"],
5462
5475
  "sources": [1],
5463
5476
  "icon": [1],
5464
5477
  "headingLevel": [1, "heading-level"],
@@ -5529,15 +5542,15 @@ class DuetBreadcrumb {
5529
5542
  */
5530
5543
  render() {
5531
5544
  const Tag = this.href ? "a" : "span";
5532
- return (hAsync(Host, { key: '941cfe85ceb3fa1921b6afe71d2885f36a071966', role: "listitem" }, hAsync("div", { key: '30ae1fd0a1a013d6fc7e2c318248c1c6eec5bbe5', class: "container" }, this.icon === "arrow-right-small-icon" && (hAsync("duet-icon", { key: '074eaae1ca2fa2797b8eba7a1354b0d815b1936d', class: "duet-breadrumbs-arrow", size: "auto", icon: arrowRightSmallIcon.svg, margin: "none", color: "currentColor" })), hAsync(Tag, { key: 'a69cd43b3f81311c55e245d1e292315cf885a972', class: {
5545
+ return (hAsync(Host, { key: '2b795c0f87ac80750f5b839cf8d1ec385e367787', role: "listitem" }, hAsync("div", { key: 'ee8b861d332f77b124246663ddcfef6a17b3716a', class: "container" }, this.icon === "arrow-right-small-icon" && (hAsync("duet-icon", { key: '4755193fc62139b5e2badbf61d60ec4ee864320e', class: "duet-breadrumbs-arrow", size: "auto", icon: arrowRightSmallIcon.svg, margin: "none", color: "currentColor" })), hAsync(Tag, { key: '454b059fa473bb373414fbc150fcd977e09f6640', class: {
5533
5546
  "duet-breadcrumb": true,
5534
5547
  "duet-theme-turva": this.theme === "turva",
5535
5548
  "icon-only": this.icon && !this.hasSlottedContent,
5536
5549
  }, href: this.href || undefined, "aria-label": this.accessibleLabel || this.element.textContent, "aria-current": this.href ? undefined : "page" }, this.icon !== "arrow-right-small-icon" &&
5537
5550
  this.icon && [
5538
- hAsync("duet-icon", { key: 'bb4d4379b6b38d5f5a8a8852a3e8ae320b72a48a', size: this.iconSize, name: this.icon, margin: "none", color: "currentColor" }),
5539
- this.hasSlottedContent && hAsync("duet-spacer", { key: '72e99845589045f22bfd119623a79c3f0206b812', size: "x-small", direction: "horizontal" }),
5540
- ], hAsync("slot", { key: '3190e7c4331c2856b71b54a5bdf6232b332dfa00' })))));
5551
+ hAsync("duet-icon", { key: 'd1aed8186f26f44d47ee81b56822c34185d84f0b', size: this.iconSize, name: this.icon, margin: "none", color: "currentColor" }),
5552
+ this.hasSlottedContent && hAsync("duet-spacer", { key: '59450e94c94574264b094fbf9f2e95210a2fcd6c', size: "x-small", direction: "horizontal" }),
5553
+ ], hAsync("slot", { key: 'c59924405c9e92ba9b9f97f199483ede43340d75' })))));
5541
5554
  }
5542
5555
  get element() { return getElement(this); }
5543
5556
  static get style() { return duetBreadcrumbCss; }
@@ -5605,11 +5618,11 @@ class DuetBreadcrumbs {
5605
5618
  */
5606
5619
  render() {
5607
5620
  const color = getColorByName(this.color);
5608
- return (hAsync(Host, { key: 'c98b2354a647046cdf36b9fc042a825d59f69016' }, hAsync("nav", { key: 'e5b3ab730c684343f6f7b551e3a90e4f804c33e4', "aria-label": this.breadcrumbsAriaLabel, class: {
5621
+ return (hAsync(Host, { key: 'ab03b4aa8bcf48ddeff80051a517ecf300237412' }, hAsync("nav", { key: '1d5340bff7dd6a6d9a1274f7828b95e03bf4a286', "aria-label": this.breadcrumbsAriaLabel, class: {
5609
5622
  "duet-breadcrumbs": true,
5610
5623
  "duet-theme-turva": this.theme === "turva",
5611
5624
  [this.variation]: true,
5612
- } }, hAsync("div", { key: 'f31d96c0db9cd1c376cb303d8ecf24327d9c530e', class: "container" }, hAsync("div", { key: '94307d00ca67a2caf0783be3dfd2ebe7568dc21f', role: "list", class: "list", style: { color } }, hAsync("slot", { key: '1a5f46b90a2b35c16992b4af7766bcbd4d7925f2' })), hAsync("div", { key: '15d920594f56343f362d726da3a4a8d87edb10d7', class: "bottom-border bottom-border--container" })), hAsync("div", { key: '7bc1ccc417e8d621909d06bf2933ddd97ee6dbcc', class: "bottom-border bottom-border--nav" }))));
5625
+ } }, hAsync("div", { key: '60f82a58dbb43c750705c5ed6474bf5ba12d430e', class: "container" }, hAsync("div", { key: '101eba23f14489d117dc44c147538b706407ec49', role: "list", class: "list", style: { color } }, hAsync("slot", { key: '5880a8ee0defaffd580df6b65637c293f142f65d' })), hAsync("div", { key: '5f2d386090b2e1a53cc327e976da14b33fe59c09', class: "bottom-border bottom-border--container" })), hAsync("div", { key: '1bd939603a8c00a99060b3bb6dbdfa157efa0b41', class: "bottom-border bottom-border--nav" }))));
5613
5626
  }
5614
5627
  get element() { return getElement(this); }
5615
5628
  static get style() { return duetBreadcrumbsCss; }
@@ -5690,7 +5703,7 @@ class DuetButton {
5690
5703
  */
5691
5704
  this.expand = false;
5692
5705
  /**
5693
- * Keep the button fixed width even on mobile viewports.
5706
+ * Keep the button fixed width even on mobile viewports. Fixed width is always used for variation plain.
5694
5707
  */
5695
5708
  this.fixed = false;
5696
5709
  /**
@@ -5943,7 +5956,7 @@ class DuetButton {
5943
5956
  "duet-m-0": this.margin === "none",
5944
5957
  "duet-small": this.size === "small",
5945
5958
  "duet-x-small": this.size === "x-small",
5946
- "duet-fixed": this.fixed,
5959
+ "duet-fixed": this.fixed || this.variation === "plain",
5947
5960
  "duet-expand": this.expand,
5948
5961
  [this.variation]: true,
5949
5962
  "input-button": (_b = this.variation) === null || _b === void 0 ? void 0 : _b.startsWith("input-button"),
@@ -6045,11 +6058,11 @@ class DuetCallout {
6045
6058
  <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"/>
6046
6059
  </svg>
6047
6060
  `;
6048
- return (hAsync(Host, { key: 'b082df5828c66c540240a355c2143bdc97cdeda2' }, hAsync("div", { key: '318c40bc242a649eb1e74191703e77ef9f567dac', class: {
6061
+ return (hAsync(Host, { key: 'd3e96c80e032ccbcd8acf8a4f3b8d8d358548786' }, hAsync("div", { key: 'b6caf5e67fcb292b3bf73dc0b9bf27fd06be5590', class: {
6049
6062
  "duet-callout": true,
6050
6063
  "duet-theme-turva": this.theme === "turva",
6051
6064
  "duet-m-0": this.margin === "none",
6052
- } }, hAsync("figure", { key: '4c7ff23d3c646e8e37452488aba5b9a28344625f', class: "container" }, hAsync("duet-icon", { key: 'd5234359ce6513b20a552366603498b7dc5729f5', 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: '67ab9a0d89f6abff523b8ca16a20c2a67865b86a' }, hAsync("slot", { key: 'fc4670a439f114411b42ce3dcd8ef7f365fa650c' })), this.hasAuthorSlot && (hAsync("figcaption", { key: '9d1b92d3229bef3447e7b5590efc766d4efb2ad6', class: "author" }, hAsync("span", { key: '5310ad556c87706338d0a75058107d2e4d1fe241' }, "\u2014 "), hAsync("slot", { key: 'f7281f1633a536bd242831e952ca1bc240b98b1c', name: "author" })))))));
6065
+ } }, hAsync("figure", { key: '0b1740d79f890107d1ed0f48b2d0bc9904a6c6c4', class: "container" }, hAsync("duet-icon", { key: 'fc90c293c0008e13b6b7355e4ab32a09d23aaf5e', 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: 'a9de71b59c2208091da32a2e9c0acb2fe121d7f7' }, hAsync("slot", { key: '45e54b298e547f5a1dd2f33abf07f48a1bfbea84' })), this.hasAuthorSlot && (hAsync("figcaption", { key: 'f495d161f2993d6cfe240cbd7fe583b447b65186', class: "author" }, hAsync("span", { key: '95b14fcee9c5ed6bbaf04f1711348164a07bf592' }, "\u2014 "), hAsync("slot", { key: '1371283e50a2b7580799984ad815542ccb9e87db', name: "author" })))))));
6053
6066
  }
6054
6067
  get element() { return getElement(this); }
6055
6068
  static get style() { return duetCalloutCss; }
@@ -6137,7 +6150,7 @@ function requireActionArrowUp () {
6137
6150
  var actionArrowUpExports = requireActionArrowUp();
6138
6151
  var arrowUpIcon = /*@__PURE__*/getDefaultExportFromCjs(actionArrowUpExports);
6139
6152
 
6140
- 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)}";
6153
+ 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)}";
6141
6154
 
6142
6155
  /**
6143
6156
  * @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.
@@ -6282,10 +6295,21 @@ class DuetCard {
6282
6295
  const styles = {
6283
6296
  backgroundColor: getColorByName(this.background),
6284
6297
  };
6285
- return (hAsync(Host, { key: '526da1b920f1be4a18d200ab81bc1951649cf3b2', class: {
6298
+ const pictureSource = {
6299
+ img: {
6300
+ src: this.image,
6301
+ alt: this.imageAlt || "",
6302
+ loading: this.imagePriority === "high" ? "eager" : "lazy",
6303
+ fetchpriority: this.imagePriority,
6304
+ class: "duet-card-image",
6305
+ role: this.imageAlt ? undefined : "presentation",
6306
+ },
6307
+ sources: parsePossibleJSON(this.sources),
6308
+ };
6309
+ return (hAsync(Host, { key: 'e665c5842a71a942c9098bb06045587327958776', class: {
6286
6310
  "duet-m-0": this.margin === "none",
6287
6311
  "duet-card-info": this.variation === "info",
6288
- } }, hAsync(TagName, { key: '1cfae581c87423ea9d466fd39084b28505b01a77', href: this.url, style: styles, ref: card => (this.nativeCard = card), "aria-label": this.accessibleLabel, class: {
6312
+ } }, hAsync(TagName, { key: '10722ae1c42744e1924df0a38313eb68acb8a4b1', href: this.url, style: styles, ref: card => (this.nativeCard = card), "aria-label": this.accessibleLabel, class: {
6289
6313
  "duet-card": true,
6290
6314
  [this.padding]: true,
6291
6315
  [this.variation]: true,
@@ -6295,7 +6319,7 @@ class DuetCard {
6295
6319
  "duet-card-has-bg": this.background !== "gray-lightest",
6296
6320
  "duet-card-has-icon": !!this.icon,
6297
6321
  "duet-card-collapsed": this.collapsible && !this.open,
6298
- } }, 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" })))))));
6322
+ } }, this.image && (hAsync("div", { key: 'a9a0b21ac68624cba6b3bfb9c0e8d3d87597cfe0', class: "duet-card-image-mask" }, hAsync(DuetPicture, Object.assign({ key: 'efa16a802e16d5be73243c2c1e2c2bd7fe49839b' }, pictureSource)))), (this.heading || this.hasHeadingSlot) && this.renderHeading(), hAsync("div", { key: 'a6ea5db0ad9150e7e5a4dd59ae42bb1c6603aac3', class: "duet-card-content", id: this.cardId }, hAsync("slot", { key: '33a498070a2b68d6361247afe7bd12c440abad6b' }), this.hasFooter && (hAsync("div", { key: 'f2ddb3f3e200fcab419911d5023831019cc4e9e3', class: "duet-card-footer" }, hAsync("slot", { key: 'ac749be2398980321f3cfe4f6b3b679cd2803be0', name: "footer" })))))));
6299
6323
  }
6300
6324
  get element() { return getElement(this); }
6301
6325
  static get style() { return duetCardCss; }
@@ -6315,6 +6339,8 @@ class DuetCard {
6315
6339
  "iconColor": [513, "icon-color"],
6316
6340
  "image": [1],
6317
6341
  "imageAlt": [1, "image-alt"],
6342
+ "imagePriority": [1, "image-priority"],
6343
+ "sources": [1],
6318
6344
  "background": [1],
6319
6345
  "padding": [1],
6320
6346
  "margin": [1],
@@ -6556,11 +6582,11 @@ class DuetCheckmark {
6556
6582
  inheritGlobalTheme(this);
6557
6583
  }
6558
6584
  render() {
6559
- return (hAsync(Host, { key: '77d8d9cfa205def19022cd899ab98eb36007d2e2', class: { "duet-theme-turva": this.theme === "turva" } }, hAsync("div", { key: 'b93b32d626ceca01d12390209e700eef8665fd8b', role: this.presentationOnly ? "presentation" : null, class: { checked: this.checked } }, hAsync("div", { key: 'fa4d7323cf416248275604e05b261bc1f542ea6e', class: {
6585
+ return (hAsync(Host, { key: '599968da32eca61083a4709ce013889772213f97', class: { "duet-theme-turva": this.theme === "turva" } }, hAsync("div", { key: '57f28c3d631c55101a557422617bbd4507ccd2cc', role: this.presentationOnly ? "presentation" : null, class: { checked: this.checked } }, hAsync("div", { key: '6dcd9490f08a532578bd12aa808e40ff5014597d', class: {
6560
6586
  "duet-checkmark-container": true,
6561
6587
  center: this.center,
6562
6588
  "duet-checkmark-radio": this.type === "radio",
6563
- } }, this.checked && hAsync("div", { key: 'd2a988ecdd6f5d41ce318365966515ff92c252c6', class: "duet-checkmark" })))));
6589
+ } }, this.checked && hAsync("div", { key: '8c27e1f31cf9e1625838308435b62ac73421d350', class: "duet-checkmark" })))));
6564
6590
  }
6565
6591
  static get style() { return duetCheckmarkCss; }
6566
6592
  static get cmpMeta() { return {
@@ -6608,9 +6634,11 @@ class DuetChip {
6608
6634
  /**
6609
6635
  * Variation of the chip.
6610
6636
  * Button should be used to present a list of actions or suggestions. It behaves like a button and must be used
6611
- * together with a click handler. Filter acts like a checkbox, it can be toggled on or off, and it should be
6612
- * used with a value. Input represents items input by the user, and the chip can be removed with a click.
6613
- * Radio behaves like a radio button, it can be toggled on or off, and it should be used with a value and name.
6637
+ * together with a click handler. Filter acts like a checkbox, it can be toggled on or off, and it should be used with
6638
+ * a value. Filter can also be used with a popup-menu - then the initial text describes the type of category of
6639
+ * filtering, and the selection from the popup-menu sets the filter value. Input represents items input by the user,
6640
+ * 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,
6641
+ * and it should be used with a value and name.
6614
6642
  */
6615
6643
  this.variation = "button";
6616
6644
  /**
@@ -6644,6 +6672,10 @@ class DuetChip {
6644
6672
  * Use this property to add an aria-haspopup attribute.
6645
6673
  */
6646
6674
  this.accessiblePopup = "false";
6675
+ /**
6676
+ * Indicates the id or a string of space seperated ids of a component(s) that describes the input.
6677
+ */
6678
+ this.accessibleDescribedBy = "";
6647
6679
  this.enforceNoDisabledSelected = () => {
6648
6680
  if (this.disabled && this.checked) {
6649
6681
  console.error("Duet error: pre-selected chip may not be disabled");
@@ -6675,6 +6707,9 @@ class DuetChip {
6675
6707
  radioInput.value = this.value;
6676
6708
  radioInput.checked = this.checked;
6677
6709
  radioInput.ariaLabel = this.element.textContent;
6710
+ if (!!this.accessibleDescribedBy) {
6711
+ radioInput.setAttribute("aria-describedby", this.accessibleDescribedBy);
6712
+ }
6678
6713
  if (slotInput) {
6679
6714
  this.radioInputListenersRemove(radioInput);
6680
6715
  }
@@ -6684,13 +6719,15 @@ class DuetChip {
6684
6719
  this.radioInputListenersAdd(radioInput);
6685
6720
  this.focusableElement = radioInput;
6686
6721
  };
6722
+ this.originalFilterChipText = "";
6723
+ this.originalFilterChipValue = "";
6687
6724
  this.popupSetUp = () => {
6688
6725
  const popup = document.querySelector(`duet-popup-menu#${this.popup}`);
6689
6726
  if (popup) {
6690
6727
  this.popupElement = popup;
6691
6728
  popup.controller = this.element;
6692
- const originalText = this.element.textContent;
6693
- const originalValue = this.value;
6729
+ this.originalFilterChipText = this.element.textContent;
6730
+ this.originalFilterChipValue = this.value;
6694
6731
  if (!popup.id) {
6695
6732
  popup.id = "popup-menu";
6696
6733
  }
@@ -6715,8 +6752,8 @@ class DuetChip {
6715
6752
  }
6716
6753
  else {
6717
6754
  clearActive();
6718
- this.element.textContent = originalText;
6719
- this.value = originalValue;
6755
+ this.element.textContent = this.originalFilterChipText;
6756
+ this.value = this.originalFilterChipValue;
6720
6757
  this.checked = false;
6721
6758
  }
6722
6759
  this.emitChange(evt);
@@ -6867,6 +6904,11 @@ class DuetChip {
6867
6904
  getAccessibleInputChipLabel() {
6868
6905
  return `${this.element.textContent}${this.selected ? ` (${getLocaleString(this.selectedForDeletionLabels)}) ` : ""},`;
6869
6906
  }
6907
+ getAccessibleFilterLabel() {
6908
+ return this.value !== this.originalFilterChipValue
6909
+ ? `${this.originalFilterChipText}: ${this.element.textContent}`
6910
+ : undefined;
6911
+ }
6870
6912
  /**
6871
6913
  * Sets focus. Use this method instead of the global focus().
6872
6914
  */
@@ -6911,7 +6953,7 @@ class DuetChip {
6911
6953
  onBlur: this.onBlur,
6912
6954
  ref: el => (this.focusableElement = el),
6913
6955
  };
6914
- return (hAsync(Host, { key: 'ebc8f8cba112ee9f682c22ba09f04b05968d4ba2', class: { [this.variation]: true } }, this.variation === "button" && (hAsync("span", { key: '6bf0c0545a457d2917df074d7d263e12e07e3255', class: classes }, hAsync("button", Object.assign({ key: '51780aa4be42824dd17784e59b17ff23cdca4ea1', 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: '52036fee728f26c3b21701d9ed870caf45e9295f', class: "duet-chip-icon-container" }, this.icon && (hAsync("duet-icon", { key: '7ef322e3c74ca552fb91a03d1d4d7cbba4b325e3', name: this.icon, size: "x-small", margin: "none", color: "currentColor" }))), hAsync("slot", { key: 'b781a521f1dc02c0c7b0792309d4fb730acc5c2d' })))), this.variation === "input" && (hAsync("span", { key: 'c997bfd1f27de93629210b953c9788bdf754538f', class: classes, "aria-label": this.getAccessibleInputChipLabel() }, hAsync("button", Object.assign({ key: 'c1ff3d503dda53884a42637460d048a27fe0d40e', 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: '73d0e2250e46b6bdd1ffd65f9879e7c9d90da448', class: "duet-chip-icon-container" }, this.icon && (hAsync("duet-icon", { key: 'f5353d825977fb008fb2d71fe796a2c6f4720181', name: this.icon, size: "x-small", margin: "none", color: "currentColor" }))), hAsync("slot", { key: '2932e26e6266957b80953b2ce275d580466e47ba' })), hAsync("button", { key: '248c016d99211ec7893a1cc74f7ecd268d44d343', 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: '6172cedf507d0e6f69ea39ce8fa6a4e21b714d11', name: "activity-close", size: "xx-small", margin: "none", color: "currentColor" })))), this.variation === "filter" && (hAsync("span", { key: '8c7b88c4c077b7bd4afd0c7bdf36d01f9c9092ae', class: classes }, hAsync("input", Object.assign({ key: 'b97c5cba016483f506521d00100f022160f48680', "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: 'cc082e72c8f2a782f4bfd44afc35daea973c6b08', htmlFor: identifier }, this.icon && (hAsync("span", { key: 'a453948d4d0507fe5dbd080f573d83356f95f35c', class: "duet-chip-icon-container" }, hAsync("duet-icon", { key: '4545c9c75f4ac311e19d9932328eb7e6d8318ac9', name: this.icon, size: this.size === "large" ? "small" : "x-small", margin: "none", color: "currentColor" }), hAsync("duet-icon", { key: '2dd3e4bc69e6efd4138ba8b74a5fddf52394416f', name: "messaging-checked-small", size: this.size === "large" ? "x-small" : "xx-small", margin: "none", color: "currentColor", class: "check-mark" }))), hAsync("slot", { key: '5367a32b3b34e7c67412bd0a0dfa9ace24636687' }), this.popupElement && (hAsync("span", { key: 'edad2d024ba464eea661cd1990629633438b6ba0', class: "duet-chip-popup-disclosure" }, hAsync("duet-icon", { key: 'aa76a07f9446fea95dc61660c92c5bee645f27d4', name: "action-arrow-down-small", size: this.size === "large" ? "xx-small" : "xxx-small", margin: "none", color: "currentColor" })))))), this.variation === "radio" && (hAsync("span", { key: '97fe2aee42e9823b794acaeda3df724470c4c832', class: classes }, hAsync("slot", { key: 'f820fe5d09ff67433693698dd9d60848535cab8a', name: "input" }), hAsync("label", { key: '0953b3248cc1c8f6fa46f2684f7fc465bfd0a412', htmlFor: identifier }, this.icon && (hAsync("span", { key: '25e66d3992af529de900ead65488bf64a4c12650', class: "duet-chip-icon-container" }, hAsync("duet-icon", { key: '731d3562a51b7c231d8142c7b0ec8d95675439ab', name: this.icon, size: this.size === "large" ? "small" : "x-small", margin: "none", color: "currentColor" }), hAsync("duet-icon", { key: '9b041e11ab55414369bcd45962c31263129fd5b6', name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor", class: "check-mark" }))), hAsync("slot", { key: '9a9dd5c4ba7e327a2df00f24bb272f61a4061d65' }))))));
6956
+ 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' }))))));
6915
6957
  }
6916
6958
  get element() { return getElement(this); }
6917
6959
  static get watchers() { return {
@@ -6937,6 +6979,7 @@ class DuetChip {
6937
6979
  "disabled": [4],
6938
6980
  "accessibleExpanded": [1540, "accessible-expanded"],
6939
6981
  "accessiblePopup": [1537, "accessible-popup"],
6982
+ "accessibleDescribedBy": [1, "accessible-described-by"],
6940
6983
  "focus": [32],
6941
6984
  "popupElement": [32],
6942
6985
  "popupOpen": [32],
@@ -7604,14 +7647,14 @@ class DuetChoiceGroup {
7604
7647
  * Always the last one in the class.
7605
7648
  */
7606
7649
  render() {
7607
- return (hAsync(Host, { key: '94d0ad93557a1487328291dec3786b2a54809a33', onDuetChange: this.onSelect, onDuetChoiceReady: this.onChoiceReady, class: {
7650
+ return (hAsync(Host, { key: 'd310a51e8554b474adaaa10b91392effcac7e189', onDuetChange: this.onSelect, onDuetChoiceReady: this.onChoiceReady, class: {
7608
7651
  horizontal: this.direction === "horizontal",
7609
7652
  "duet-choice-group-breakpoint-x-small": this.responsive && this.breakpoint === "x-small",
7610
7653
  "duet-choice-group-breakpoint-small": this.responsive && this.breakpoint === "small",
7611
7654
  "duet-choice-group-breakpoint-medium": this.responsive && this.breakpoint === "medium",
7612
7655
  "duet-choice-group-breakpoint-large": this.responsive && this.breakpoint === "large",
7613
7656
  "duet-choice-group-breakpoint-x-large": this.responsive && this.breakpoint === "x-large",
7614
- } }, hAsync("duet-fieldset", { key: '21ef6afa85bf7d3dddc001aae2583adbd3dee304', 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: '5ff31a8282e6e7eace9d2bb035d325af2d073fea', slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), hAsync("slot", { key: '8e9b7d9abb95cd49f4bbc5fa9a694c2691a32c7d', name: "tooltip", slot: "tooltip" }), hAsync("div", { key: 'be989adb0d4a5794d0132a3ee00979cf1bf79bd9', class: { [this.choiceGroupName]: true, "duet-no-stacking": !this.responsive } }, hAsync("slot", { key: '725c965b94dd5e8555d9e2e450ac6d61e74cefb6' })))));
7657
+ } }, hAsync("duet-fieldset", { key: 'a107c1b68c3227d3236020bb9721218f1be052fd', 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: '0e45f60e7b2ebe7f30f0f87216bbcc176244f80a', slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), hAsync("slot", { key: 'd129fc812d0be8450b08588910c30be0b4db8a02', name: "tooltip", slot: "tooltip" }), hAsync("div", { key: 'e2ca5fd41342dd4b38442fbb718f2a06c1ba3237', class: { [this.choiceGroupName]: true, "duet-no-stacking": !this.responsive } }, hAsync("slot", { key: '12f74fdf5360122b6d5fef83495ba68dede524da' })))));
7615
7658
  }
7616
7659
  get element() { return getElement(this); }
7617
7660
  static get watchers() { return {
@@ -9156,7 +9199,7 @@ class DuetCombobox {
9156
9199
  if (!this.force && !this.multiple && this.selectedItems.size > 0 && newValue !== this.getSelectedItemLabel()) {
9157
9200
  this.selectedItems.clear();
9158
9201
  }
9159
- if (!this.force && !this.multiple && newValue === "") {
9202
+ if (!this.multiple && newValue === "") {
9160
9203
  this.value = undefined;
9161
9204
  }
9162
9205
  this.listOpen = String(newValue).length >= this.minCharacters && ((_a = this.getFilteredItems()) === null || _a === void 0 ? void 0 : _a.length) > 0;
@@ -9264,15 +9307,6 @@ class DuetCombobox {
9264
9307
  }
9265
9308
  this.activeItemAnnouncement = "";
9266
9309
  }
9267
- inputValueHandler() {
9268
- setTimeout(async () => {
9269
- const label = await this.getSelectedItemLabel();
9270
- if (this.input.value == "" && label) {
9271
- this.input.value = "";
9272
- this.value = undefined;
9273
- }
9274
- }, 200);
9275
- }
9276
9310
  handleDocumentClick(e) {
9277
9311
  //we want to remove all user text if they have NOT selected from the dropdown
9278
9312
  const path = e.composedPath();
@@ -9626,7 +9660,6 @@ class DuetCombobox {
9626
9660
  static get watchers() { return {
9627
9661
  "listOpen": ["popupMenuOpenHandler", "processListOpenChange"],
9628
9662
  "activeItem": ["activeItemHandler"],
9629
- "inputValue": ["inputValueHandler"],
9630
9663
  "items": ["processItems"],
9631
9664
  "value": ["processValue"]
9632
9665
  }; }
@@ -9663,7 +9696,7 @@ class DuetCombobox {
9663
9696
  }; }
9664
9697
  }
9665
9698
 
9666
- 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)}";
9667
9700
 
9668
9701
  class DuetContactCard {
9669
9702
  constructor(hostRef) {
@@ -9709,10 +9742,20 @@ class DuetContactCard {
9709
9742
  render() {
9710
9743
  const isTurva = this.theme === "turva";
9711
9744
  const theme = isTurva ? "turva" : "default";
9712
- return (hAsync(Host, { key: '6cf20cb225b22fbb826b136c3909234684d30e3d', class: { "duet-m-0": this.margin === "none" } }, hAsync("div", { key: '24e57cbe34b4d01ff024fe8128d3168b61e61af6', class: {
9745
+ const pictureSource = {
9746
+ img: {
9747
+ src: this.image,
9748
+ alt: this.name || "",
9749
+ loading: this.imagePriority === "high" ? "eager" : "lazy",
9750
+ fetchpriority: this.imagePriority,
9751
+ class: "image",
9752
+ },
9753
+ sources: parsePossibleJSON(this.sources),
9754
+ };
9755
+ return (hAsync(Host, { key: 'e33b5a9345cc0e38336978b22b5a5e833bb03bb9', class: { "duet-m-0": this.margin === "none" } }, hAsync("div", { key: '836de470febdb6a96d024a08f55a25a62392b350', class: {
9713
9756
  "duet-contact-card": true,
9714
9757
  "duet-theme-turva": this.theme === "turva",
9715
- }, role: "group", "aria-label": this.name }, this.image ? hAsync("img", { class: "image", src: this.image, alt: this.name }) : hAsync("div", null), hAsync("div", { key: 'f3c40c440d2d9dd97e3c1e24817d60e62f6347f0' }, this.name && (hAsync("duet-heading", { key: 'cde7a70f10cfdd45e801c9ef923e116b2ee12e42', class: "name", level: "h3", margin: "none", theme: theme }, this.name)), this.description && (hAsync("duet-paragraph", { key: '1c855114d2101701a8b39f75fe8b2ae76d5ffe57', class: "description", margin: "none", theme: theme }, this.description)), this.email && (hAsync("div", { key: 'b552b0f0de5e16059e77ee518e2087d24a2171c4', class: "email" }, hAsync("duet-icon", { key: '2048a5cb8e29d7d664c984c72031cdfd1894e0a6', name: "navigation-message", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), hAsync("duet-link", { key: '6e2a9b632e0fb1df3efd51dc66d6df1891eaa3a1', url: `mailto:${this.email}`, accessibleLabel: `Email: ${this.email}`, theme: theme }, this.email))), this.phone && (hAsync("div", { key: '1a263f67d1844f9c2ba334ba24ebc32d9faf4b86', class: "phone" }, hAsync("duet-icon", { key: 'dab3c18ed7f4c092aa8644ef6d9a915854c9e33d', name: "form-tel", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), hAsync("duet-link", { key: '68c6b2ff4480300f563b7d8d65fb4d47160fcd8b', url: `tel:${this.phone}`, accessibleLabel: `${this.phoneLabel[this.language]}: ${this.phone}`, theme: theme }, this.phone)))), this.buttonUrl && this.buttonText && (hAsync("div", { key: '70288a25480b39a333831a129def567c99f202b7', class: "call-to-action" }, hAsync("duet-button", { key: 'c5fccd74b8b2b6b4917b464c5e723c657e326bb0', variation: "default", icon: this.buttonIcon, fixed: true, margin: "none", url: this.buttonUrl, theme: theme }, this.buttonText))), hAsync("div", { key: '9fd8e574534d15aa89eaac786c257586a6f9f845' }), hAsync("slot", { key: 'ab0fa1cc3232c70441d441e4c673b8b562ffbe92' }))));
9758
+ }, role: "group", "aria-label": this.name }, this.image ? hAsync(DuetPicture, Object.assign({}, pictureSource)) : hAsync("div", null), hAsync("div", { key: '7b0b31acf238f0b6c8a8579bc22f5f819fa794a3' }, this.name && (hAsync("duet-heading", { key: '03c95063f1c164feeee6d7ffec8050e76a863065', class: "name", level: "h3", margin: "none", theme: theme }, this.name)), this.description && (hAsync("duet-paragraph", { key: '35343cc1d650f5f6f83d1c98db2e7d5d8df32232', class: "description", margin: "none", theme: theme }, this.description)), this.email && (hAsync("div", { key: 'a4565eeb9a17b36e5cb086f4a7a071f7da471958', class: "email" }, hAsync("duet-icon", { key: '622531d9bba0fb9991aa5d15577d906aa637fb97', name: "navigation-message", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), hAsync("duet-link", { key: 'dc454c0170ea57a3e9e9a1c891cda1852c20330c', url: `mailto:${this.email}`, accessibleLabel: `Email: ${this.email}`, theme: theme }, this.email))), this.phone && (hAsync("div", { key: '8df6d3ba05579ea713093fb7a254c85ea2827f17', class: "phone" }, hAsync("duet-icon", { key: 'c0551285cbe9b64e23ca131cbc6be05efab7bbe1', name: "form-tel", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), hAsync("duet-link", { key: 'd3f01bfb37c0120280514925cb386a75f660ee26', url: `tel:${this.phone}`, accessibleLabel: `${this.phoneLabel[this.language]}: ${this.phone}`, theme: theme }, this.phone)))), this.buttonUrl && this.buttonText && (hAsync("div", { key: 'df56d1a6ac897401fa74b40da6f163908dedd2db', class: "call-to-action" }, hAsync("duet-button", { key: 'be684b20bf8f7f976cc2b8934b10650c09dc824d', variation: "default", icon: this.buttonIcon, fixed: true, margin: "none", url: this.buttonUrl, theme: theme }, this.buttonText))), hAsync("div", { key: 'c1719ef0b401fd6d6a189a68ad61a6339f1299c9' }), hAsync("slot", { key: '59366556e70ea407134c67f51da830cab886171d' }))));
9716
9759
  }
9717
9760
  get element() { return getElement(this); }
9718
9761
  static get style() { return duetContactCardCss; }
@@ -9723,6 +9766,8 @@ class DuetContactCard {
9723
9766
  "theme": [1025],
9724
9767
  "margin": [1],
9725
9768
  "image": [1025],
9769
+ "imagePriority": [1, "image-priority"],
9770
+ "sources": [1],
9726
9771
  "name": [1025],
9727
9772
  "description": [1025],
9728
9773
  "email": [1025],
@@ -10092,6 +10137,13 @@ function setYear(date, year) {
10092
10137
  d.setFullYear(year);
10093
10138
  return d;
10094
10139
  }
10140
+ /**
10141
+ * Check if date falls on a Saturday or Sunday
10142
+ */
10143
+ function isWeekend(date) {
10144
+ const day = date.getDay();
10145
+ return day === 0 || day === 6;
10146
+ }
10095
10147
  /**
10096
10148
  * Check if date is within a min and max
10097
10149
  */
@@ -10155,6 +10207,88 @@ const DatePickerDay = ({ focusedDay, today, day, language, onDaySelect, onKeyboa
10155
10207
  hAsync("span", { class: { "duet-date-table-button": true, outside: isOutsideRange, disabled: isDisabled, today: isToday } }, day.getDate())));
10156
10208
  };
10157
10209
 
10210
+ const holidaysByYear = new Map();
10211
+ /**
10212
+ * Calculate the date of Easter Sunday for a given year using the
10213
+ * Meeus/Jones/Butcher Gregorian algorithm.
10214
+ */
10215
+ function getEasterSunday(year) {
10216
+ const a = year % 19;
10217
+ const b = Math.floor(year / 100);
10218
+ const c = year % 100;
10219
+ const d = Math.floor(b / 4);
10220
+ const e = b % 4;
10221
+ const f = Math.floor((b + 8) / 25);
10222
+ const g = Math.floor((b - f + 1) / 3);
10223
+ const h = (19 * a + b - d - g + 15) % 30;
10224
+ const i = Math.floor(c / 4);
10225
+ const k = c % 4;
10226
+ const l = (32 + 2 * e + 2 * i - h - k) % 7;
10227
+ const m = Math.floor((a + 11 * h + 22 * l) / 451);
10228
+ const monthAndDay = h + l - 7 * m + 114;
10229
+ const month = Math.floor(monthAndDay / 31);
10230
+ const day = (monthAndDay % 31) + 1;
10231
+ return new Date(year, month - 1, day);
10232
+ }
10233
+ /**
10234
+ * Midsummer Eve is the Friday falling between 19 and 25 June (inclusive).
10235
+ */
10236
+ function getMidsummerEve(year) {
10237
+ for (let day = 19; day <= 25; day++) {
10238
+ const date = new Date(year, 5, day);
10239
+ if (date.getDay() === 5) {
10240
+ return date;
10241
+ }
10242
+ }
10243
+ }
10244
+ /**
10245
+ * Finnish bank holidays for a given year, as published by the Bank of Finland:
10246
+ * https://www.suomenpankki.fi/en/money-and-payments/bank-holidays/
10247
+ */
10248
+ function getFinnishBankHolidays(year) {
10249
+ if (holidaysByYear.has(year)) {
10250
+ return holidaysByYear.get(year);
10251
+ }
10252
+ const easterSunday = getEasterSunday(year);
10253
+ const holidays = [
10254
+ new Date(year, 0, 1), // New Year's Day
10255
+ new Date(year, 0, 6), // Epiphany
10256
+ addDays(easterSunday, -2), // Good Friday
10257
+ addDays(easterSunday, 1), // Easter Monday
10258
+ new Date(year, 4, 1), // May Day
10259
+ addDays(easterSunday, 39), // Ascension Day
10260
+ getMidsummerEve(year), // Midsummer Eve
10261
+ new Date(year, 11, 6), // Independence Day
10262
+ new Date(year, 11, 24), // Christmas Eve
10263
+ new Date(year, 11, 25), // Christmas Day
10264
+ new Date(year, 11, 26), // Boxing Day
10265
+ ];
10266
+ holidaysByYear.set(year, holidays);
10267
+ return holidays;
10268
+ }
10269
+ function isFinnishBankHoliday(date) {
10270
+ return getFinnishBankHolidays(date.getFullYear()).some(holiday => isEqual(holiday, date));
10271
+ }
10272
+
10273
+ function parseDisallowedDates(disallowedDates) {
10274
+ if (!disallowedDates) {
10275
+ return [];
10276
+ }
10277
+ return Array.isArray(disallowedDates) ? disallowedDates : disallowedDates.split(",").map(date => date.trim());
10278
+ }
10279
+ /**
10280
+ * Check if a date is disallowed by any of the given weekend/bank-holiday/explicit-date rules
10281
+ */
10282
+ function isDateDisallowed(date, options) {
10283
+ if (options.disallowWeekends && isWeekend(date)) {
10284
+ return true;
10285
+ }
10286
+ if (options.disallowBankHolidays && isFinnishBankHoliday(date)) {
10287
+ return true;
10288
+ }
10289
+ return parseDisallowedDates(options.disallowedDates).some(isoDate => isEqual(parseISODate(isoDate), date));
10290
+ }
10291
+
10158
10292
  /**
10159
10293
  * Creates an array representing an inclusive numeric range.
10160
10294
  * `from` must be less than `to`
@@ -10214,7 +10348,7 @@ function createShortcuts(shortcuts) {
10214
10348
  };
10215
10349
  }
10216
10350
 
10217
- const DatePickerMonth = ({ selectedDate, focusedDate, labelledById, theme, language, min, max, onDateSelect, onKeyboardNavigation, focusedDayRef, onFocusEnter, onFocusExit, }) => {
10351
+ const DatePickerMonth = ({ selectedDate, focusedDate, labelledById, theme, language, min, max, disallowWeekends, disallowBankHolidays, disallowedDates, onDateSelect, onKeyboardNavigation, focusedDayRef, onFocusEnter, onFocusExit, }) => {
10218
10352
  const { dayLabels } = i18n$2[language];
10219
10353
  const today = new Date();
10220
10354
  const days = getViewOfMonth(focusedDate);
@@ -10232,7 +10366,8 @@ const DatePickerMonth = ({ selectedDate, focusedDate, labelledById, theme, langu
10232
10366
  hAsync("thead", null,
10233
10367
  hAsync("tr", null, dayLabels.map(label => (hAsync("th", { scope: "col" },
10234
10368
  hAsync("span", { "aria-hidden": "true" }, label.substr(0, 2))))))),
10235
- 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 => {
10369
+ 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) &&
10370
+ !isDateDisallowed(day, { disallowWeekends, disallowBankHolidays, disallowedDates }), isSelected: isEqual(day, selectedDate), onDaySelect: onDateSelect, onKeyboardNavigation: onKeyboardNavigation, ref: el => {
10236
10371
  if (el && isEqual(day, focusedDate)) {
10237
10372
  focusedDayRef(el);
10238
10373
  }
@@ -10278,6 +10413,11 @@ class DuetDatePicker {
10278
10413
  fi: "Päivämäärä vaaditaan",
10279
10414
  sv: "Datum krävs",
10280
10415
  },
10416
+ customError: {
10417
+ en: "Date not allowed",
10418
+ fi: "Päivämäärä ei sallittu",
10419
+ sv: "Datum inte tillåtet",
10420
+ },
10281
10421
  };
10282
10422
  this.open = false;
10283
10423
  this.focusedDay = new Date();
@@ -10386,6 +10526,19 @@ class DuetDatePicker {
10386
10526
  * This setting can be used alone or together with the min property.
10387
10527
  */
10388
10528
  this.max = "";
10529
+ /**
10530
+ * Disallow selecting Saturdays and Sundays.
10531
+ */
10532
+ this.disallowWeekends = false;
10533
+ /**
10534
+ * Disallow selecting Finnish bank holidays, including Easter-based dates and Midsummer Eve.
10535
+ */
10536
+ this.disallowBankHolidays = false;
10537
+ /**
10538
+ * Disallow selecting specific dates. Accepts an array of ISO-8601 (YYYY-MM-DD) dates,
10539
+ * or a comma-separated string of the same when set as an HTML attribute.
10540
+ */
10541
+ this.disallowedDates = [];
10389
10542
  /**
10390
10543
  * Increment to add to years, defaults to 10 for simplicity, if you need a larger selectionspace you can set it to 100
10391
10544
  */
@@ -10488,7 +10641,7 @@ class DuetDatePicker {
10488
10641
  this.handleDaySelect = (_event, day) => {
10489
10642
  const min = parseISODate(this.min);
10490
10643
  const max = parseISODate(this.max);
10491
- if (inRange(day, min, max)) {
10644
+ if (inRange(day, min, max) && !isDateDisallowed(day, this)) {
10492
10645
  this.setValue(day);
10493
10646
  this.hide();
10494
10647
  }
@@ -10509,6 +10662,7 @@ class DuetDatePicker {
10509
10662
  * This offers information relating to the current validity of the component.
10510
10663
  * It follow as closely as possible the behaviour of the native date input.
10511
10664
  * Useful properties to inspect are badInput, valueMissing, rangeOverflow, rangeUnderflow.
10665
+ * For disallowed dates property customError is set true.
10512
10666
  */
10513
10667
  get validity() {
10514
10668
  this.determineValidity();
@@ -10632,9 +10786,10 @@ class DuetDatePicker {
10632
10786
  const valueMissing = !valueAsDate && this.required;
10633
10787
  const rangeOverflow = valueAsDate ? !inRange(valueAsDate, null, parseISODate(this.max)) : false;
10634
10788
  const rangeUnderflow = valueAsDate ? !inRange(valueAsDate, parseISODate(this.min)) : false;
10789
+ const customError = valueAsDate ? isDateDisallowed(valueAsDate, this) : false;
10635
10790
  this._validity = {
10636
10791
  patternMismatch: false,
10637
- customError: false,
10792
+ customError,
10638
10793
  stepMismatch: false,
10639
10794
  tooLong: false,
10640
10795
  tooShort: false,
@@ -10643,7 +10798,7 @@ class DuetDatePicker {
10643
10798
  rangeUnderflow,
10644
10799
  rangeOverflow,
10645
10800
  valueMissing,
10646
- valid: !(valueMissing || badInput || rangeUnderflow || rangeOverflow),
10801
+ valid: !(valueMissing || badInput || rangeUnderflow || rangeOverflow || customError),
10647
10802
  };
10648
10803
  if (this._validity.valid) {
10649
10804
  this.error = "";
@@ -10706,13 +10861,13 @@ class DuetDatePicker {
10706
10861
  if (maxDate) {
10707
10862
  maxYear = Math.min(maxYear, maxDate.getFullYear());
10708
10863
  }
10709
- return (hAsync(Host, { key: 'bc53156f31fd151a978be4cb494d89811177d2de', class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" } }, hAsync("div", { key: 'bd85feeae1d997447181347f131cf0eaa309af93', class: "duet-date" }, hAsync(DatePickerInput, { key: '0e22a10646a9df5c2dee41047df08e8df6b63872', 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: 'c4575f4c809d00307b254756d1c00e5d65520b03', class: {
10864
+ 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: {
10710
10865
  "duet-theme-turva": this.theme === "turva",
10711
10866
  "duet-date-dialog": true,
10712
10867
  left: this.direction === "left",
10713
10868
  error: !!this.error,
10714
10869
  active: this.open,
10715
- }, 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: '73718663a16c1f4f18625a0e9b5e12c4d84e2862', visible: this.open, "display-device": "x-small" }), hAsync(FocusGuard, { key: '55795dff1697ed625725a441813c2837b9180ca4', moveFocusTo: this.focusedDayNode }), hAsync("div", { key: '4575c14cab6890c2ed93f14cc269495f4e6112c6', class: "duet-date-dialog-wrapper", onKeyDown: this.handleEscKey, ref: element => (this.dialogWrapperNode = element) }, hAsync("duet-visually-hidden", { key: '64ec3d2f1809490ebfe3dd1e04bd332fd603010a', "aria-live": "polite" }, text.keyboardInstruction), hAsync("div", { key: 'b5545e0104ad9a0bc9f99ff3a725752595a0ffa6', class: "duet-date-dialog-mobile-header" }, hAsync(DuetInternalLabel, { key: '73d2c0aa481b994ce191816304e1867f461aa7d7', margin: "none" }, this.label), hAsync("button", { key: 'c7483c8e743830ff8a21c2127897b43e45b57d8b', class: "duet-date-picker-close", ref: element => (this.closeButtonNode = element), onClick: () => this.hide(), type: "button" }, hAsync("duet-icon", { key: 'b2b8fd08895e8a5b0de42af39fb3e8b4810314e7', name: "navigation-close-small", margin: "none", color: "currentColor", size: "xx-small" }), hAsync("duet-visually-hidden", { key: '9238a95c2b5266055844e593ba8ab6349d9d033f' }, text.closeLabel))), hAsync("div", { key: '3f68135c40899e3de9f9546ebdace84fbe831141', class: "duet-date-dialog-header" }, hAsync("div", { key: '5cc6d3e6a2665e29091147f86fe44339af33327c', class: "duet-date-dialog-dropdowns" }, hAsync("duet-visually-hidden", { key: '5bf35b2c9736d2d110344b92942f13be850d644b' }, hAsync("h2", { key: '95391f17e2c907733fe1c3d567678d236e369fdc', id: this.dialogLabelId, "aria-live": "polite", "aria-atomic": "true" }, text.monthLabels[focusedMonth], " ", this.focusedDay.getFullYear())), hAsync("duet-visually-hidden", { key: 'a356aafd4ce51cf91cbc363297645efa79da42e3' }, hAsync("label", { key: 'd806131d0e348f3743726e47daeb580baaec91a2', htmlFor: this.monthSelectId }, text.monthSelectLabel)), hAsync("div", { key: '5e4a84de81c95b6c62dc03de1c805f472377805c', class: "duet-date-dialog-select" }, hAsync("select", { key: 'aa66520799ef32c4dfe30506cdbeb4f01000055e', 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: '8bf72353d282a2c82f0e64e1a752a17dbcd6423b', class: "duet-date-dialog-select-label", "aria-hidden": "true" }, hAsync("span", { key: '1b9a7f95c0007b30117782c962311c54244228a3' }, text.monthLabelsShort[focusedMonth]), hAsync("duet-icon", { key: 'a234a84604cb1f87ee8c382b7d886e00a13cd913', name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" }))), hAsync("duet-visually-hidden", { key: 'f41e59ff6c32248ea057f4547ef6bf24688423e1' }, hAsync("label", { key: '10ea1d3b43b673950054ad36abe59688971843d0', htmlFor: this.yearSelectId }, text.yearSelectLabel)), hAsync("div", { key: 'b7cd16b90fb5126189de4648b99c6634c15bc5a2', class: "duet-date-dialog-select" }, hAsync("select", { key: '852475517a751519016dcc2c14023b9f1850b0d9', 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: '426ab30bd0268b659253d8b9dcd375b7da1952dd', class: "duet-date-dialog-select-label", "aria-hidden": "true" }, hAsync("span", { key: '55b9cc0f5e60cd6ad666e58c2724865216d1c635' }, this.focusedDay.getFullYear()), hAsync("duet-icon", { key: 'b28ab73ebb1ca7fac93ee3c52d696fa65f2bef29', name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" })))), hAsync("div", { key: 'eee0f191f6b409674d0ef2b7383d6ab45c316d7c', class: "duet-date-dialog-buttons" }, hAsync("duet-action-button", { key: '5a4c05b83e76b2740f71fe7e2d94602e16aa0219', 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: '0d4117fdd8511135bede66b13c8177d7105b567f', 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: 'ac47f9d6b83fa994e5137a45c300db313dd70701', 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: '9727a0dab133694bd4b2ef008adec00439040b8b', moveFocusTo: this.closeButtonNode }))));
10870
+ }, 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 }))));
10716
10871
  }
10717
10872
  get element() { return getElement(this); }
10718
10873
  static get watchers() { return {
@@ -10720,7 +10875,10 @@ class DuetDatePicker {
10720
10875
  "max": ["updateValidity"],
10721
10876
  "value": ["updateValidity", "updateInternalValue"],
10722
10877
  "required": ["updateValidity"],
10723
- "inputValue": ["updateValidity"]
10878
+ "inputValue": ["updateValidity"],
10879
+ "disallowWeekends": ["updateValidity"],
10880
+ "disallowBankHolidays": ["updateValidity"],
10881
+ "disallowedDates": ["updateValidity"]
10724
10882
  }; }
10725
10883
  static get style() { return duetDatePickerCss; }
10726
10884
  static get cmpMeta() { return {
@@ -10754,6 +10912,9 @@ class DuetDatePicker {
10754
10912
  "value": [1537],
10755
10913
  "min": [1],
10756
10914
  "max": [1],
10915
+ "disallowWeekends": [4, "disallow-weekends"],
10916
+ "disallowBankHolidays": [4, "disallow-bank-holidays"],
10917
+ "disallowedDates": [1, "disallowed-dates"],
10757
10918
  "incrementYears": [2, "increment"],
10758
10919
  "validity": [2064],
10759
10920
  "accessibleLiveError": [1, "accessible-live-error"],
@@ -11233,20 +11394,20 @@ class DuetFieldset {
11233
11394
  * Always the last one in the class.
11234
11395
  */
11235
11396
  render() {
11236
- return (hAsync(Host, { key: 'ac0f503ac6d41953e774ad46b418c8ea39ff4708', class: { "duet-m-0": this.margin === "none" } }, hAsync("fieldset", { key: 'b564273ca16fac8fbb500ab8bfc9dff72e579770', "aria-labelledby": this.labelId, "aria-describedby": this.error ? this.errorId : null,
11397
+ return (hAsync(Host, { key: '6b5e616dee35539f33f740844d8cb031480e7034', class: { "duet-m-0": this.margin === "none" } }, hAsync("fieldset", { key: 'b9847559a5f6d043d40cf13941b02abcafcd4826', "aria-labelledby": this.labelId, "aria-describedby": this.error ? this.errorId : null,
11237
11398
  // NVDA and VoiceOver do not yet support aria-errormessage
11238
11399
  // once they do, we can remove errors from the aria-describedby
11239
11400
  // aria-errormessage={this.error ? this.errorId : null}
11240
11401
  class: {
11241
11402
  "duet-fieldset": true,
11242
11403
  "duet-theme-turva": this.theme === "turva",
11243
- } }, hAsync("legend", { key: '607df92d8f78aaad01e4c80e33c17da55a52e20f', id: this.labelId }, hAsync(this.labelHeadingLevel, { key: '33cee42411e380076885a046790cb8006088c5ed' }, this.label), this.caption && hAsync("span", { key: '52c809bbe842c11a84e7d1a5c3083bfe92472d36' }, this.caption)), hAsync("div", { key: 'aa297b27900d3a28a48bf8102b75e900896393ff', class: {
11404
+ } }, hAsync("legend", { key: '00db725af6a81cc39f9812b6ad907e14099e640b', id: this.labelId }, hAsync(this.labelHeadingLevel, { key: 'e790c1bb2136af773035d687afa1af037f965174' }, this.label), this.caption && hAsync("span", { key: '94cfa68d4e1bc683b16749e06667ad9fa13a84c6' }, this.caption)), hAsync("div", { key: 'f7fbe98556ff25593ef84788b28a95a684a923e6', class: {
11244
11405
  "duet-legend-wrapper": true,
11245
11406
  "duet-legend-has-caption": !!this.caption,
11246
11407
  "duet-legend-has-tooltip": this.hasTooltip,
11247
11408
  "duet-legend-hidden": this.labelHidden,
11248
11409
  "duet-legend-compact": this.compactLabel,
11249
- } }, hAsync("div", { key: '3af22b271c143a074adee18554408291e3faa660', class: "duet-fieldset-label" }, hAsync("span", { key: '939a883743e233ba83e8ff3328b18842b0c4eae4', "aria-hidden": "true" }, this.label), hAsync("slot", { key: '822892f650b6c0f733cc58a1aee1654e21d1f1f6', onSlotchange: this.checkHasTooltip, name: "tooltip" })), this.caption && (hAsync("div", { key: 'bc40348b978fc775d1007cdf3949e95d4d3b54e0', class: "duet-fieldset-caption", "aria-hidden": "true" }, hAsync("duet-caption", { key: '3119b1a7963015c24d6324d5de47fc53cdfd748e', theme: this.theme, margin: "none" }, this.caption)))), hAsync("slot", { key: 'fa922540a117205680098064372a70aefc0953ae' }), hAsync("span", { key: 'ad8d4d59379d7a9f89e618754d46404eb5c3c664', 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: 'c36abae3849393120d72e3781305cb2ce88b384c', class: { "duet-m-0": this.lastItemIsChip } }, this.error)))));
11410
+ } }, hAsync("div", { key: '1ed3c1d5c1e394cc84c6b38d05d6dae5c81025de', class: "duet-fieldset-label" }, hAsync("span", { key: '0a004664043ce7eecc9a0a12383342f4d6bd7b46', "aria-hidden": "true" }, this.label), hAsync("slot", { key: '3e1c56c60ca7a1b343aa25d3e63609ddcfef2822', onSlotchange: this.checkHasTooltip, name: "tooltip" })), this.caption && (hAsync("div", { key: '8b165ea6688eb0a0c179fe76c583990d357e99d6', class: "duet-fieldset-caption", "aria-hidden": "true" }, hAsync("duet-caption", { key: 'b54388620f28ecef14c0da6d4e8d27ed9b16de78', theme: this.theme, margin: "none" }, this.caption)))), hAsync("slot", { key: '41fa24ea72a9f4318bb6dd183fb0a464ed45d8ca' }), hAsync("span", { key: '6569844fd76312f12b64a7864f35e6f4637110db', 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: 'cef4273c56dff02051a14435d02d975131d4c4a4', class: { "duet-m-0": this.lastItemIsChip } }, this.error)))));
11250
11411
  }
11251
11412
  get element() { return getElement(this); }
11252
11413
  static get style() { return duetFieldsetCss; }
@@ -11486,11 +11647,12 @@ class DuetFooter {
11486
11647
  }; }
11487
11648
  }
11488
11649
 
11489
- const duetGridCss = ":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}\n\n:host(.duet-grid-variation-flex) {\n display: flex !important;\n flex-direction: column !important;\n align-items: flex-start !important;\n justify-content: flex-start !important;\n width: 100%;\n max-width: 100%;\n height: auto;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-breakpoint-x-small) {\n flex-direction: row !important;\n}\n@media (max-width: 22.5em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-x-small) {\n flex-direction: column !important;\n }\n}\n\n:host(.duet-grid-variation-flex.duet-grid-breakpoint-x-small.duet-grid-row-reverse) {\n flex-direction: row-reverse !important;\n}\n\n@media (min-width: 36em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-small) {\n flex-direction: row !important;\n }\n}\n\n@media (min-width: 36em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-small.duet-grid-row-reverse) {\n flex-direction: row-reverse !important;\n }\n}\n\n@media (min-width: 48em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-medium) {\n flex-direction: row !important;\n }\n}\n\n@media (min-width: 48em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-medium.duet-grid-row-reverse) {\n flex-direction: row-reverse !important;\n }\n}\n\n@media (min-width: 62em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-large) {\n flex-direction: row !important;\n }\n}\n\n@media (min-width: 62em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-large.duet-grid-row-reverse) {\n flex-direction: row-reverse !important;\n }\n}\n\n@media (min-width: 64.0625em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-x-large) {\n flex-direction: row !important;\n }\n}\n\n@media (min-width: 64.0625em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-x-large.duet-grid-row-reverse) {\n flex-direction: row-reverse !important;\n }\n}\n\n:host(.duet-grid-variation-flex.duet-grid-wrap) {\n flex-wrap: wrap !important;\n}\n\n:host(.duet-grid-variation-flex.duet-no-stacking) {\n flex-direction: row !important;\n}\n\n:host(.duet-grid-variation-flex.duet-no-stacking.duet-grid-row-reverse) {\n flex-direction: row-reverse !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-x-small) {\n flex-direction: column !important;\n}\n@media (max-width: 35.9375em) {\n :host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-x-small) {\n flex-direction: column !important;\n }\n}\n\n:host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-small) {\n flex-direction: column !important;\n}\n@media (min-width: 36em) {\n :host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-small) {\n flex-direction: column !important;\n }\n}\n\n:host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-medium) {\n flex-direction: column !important;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-medium) {\n flex-direction: column !important;\n }\n}\n\n:host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-large) {\n flex-direction: column !important;\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-large) {\n flex-direction: column !important;\n }\n}\n\n:host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-x-large) {\n flex-direction: column !important;\n}\n@media (min-width: 64.0625em) {\n :host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-x-large) {\n flex-direction: column !important;\n }\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-top.duet-no-stacking) {\n align-items: flex-start !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-bottom.duet-no-stacking) {\n align-items: flex-end !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-center.duet-no-stacking) {\n align-items: center !important;\n}\n\n.duet-grid-align-stretch.duet-no-stacking {\n align-items: stretch !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-baseline.duet-no-stacking) {\n align-items: baseline !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-top.duet-grid-breakpoint-x-small) {\n align-items: flex-start !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-bottom.duet-grid-breakpoint-x-small) {\n align-items: flex-end !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-center.duet-grid-breakpoint-x-small) {\n align-items: center !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-stretch.duet-grid-breakpoint-x-small) {\n align-items: stretch !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-baseline.duet-grid-breakpoint-x-small) {\n align-items: baseline !important;\n}\n\n@media (min-width: 36em) {\n :host(.duet-grid-variation-flex.duet-grid-align-top.duet-grid-breakpoint-small) {\n align-items: flex-start !important;\n }\n}\n\n@media (min-width: 36em) {\n :host(.duet-grid-variation-flex.duet-grid-align-bottom.duet-grid-breakpoint-small) {\n align-items: flex-end !important;\n }\n}\n\n@media (min-width: 36em) {\n :host(.duet-grid-variation-flex.duet-grid-align-center.duet-grid-breakpoint-small) {\n align-items: center !important;\n }\n}\n\n@media (min-width: 36em) {\n :host(.duet-grid-variation-flex.duet-grid-align-stretch.duet-grid-breakpoint-small) {\n align-items: stretch !important;\n }\n}\n\n@media (min-width: 36em) {\n :host(.duet-grid-variation-flex.duet-grid-align-baseline.duet-grid-breakpoint-small) {\n align-items: baseline !important;\n }\n}\n\n@media (min-width: 48em) {\n :host(.duet-grid-variation-flex.duet-grid-align-top.duet-grid-breakpoint-medium) {\n align-items: flex-start !important;\n }\n}\n\n@media (min-width: 48em) {\n :host(.duet-grid-variation-flex.duet-grid-align-bottom.duet-grid-breakpoint-medium) {\n align-items: flex-end !important;\n }\n}\n\n@media (min-width: 48em) {\n :host(.duet-grid-variation-flex.duet-grid-align-center.duet-grid-breakpoint-medium) {\n align-items: center !important;\n }\n}\n\n@media (min-width: 48em) {\n :host(.duet-grid-variation-flex.duet-grid-align-stretch.duet-grid-breakpoint-medium) {\n align-items: stretch !important;\n }\n}\n\n@media (min-width: 48em) {\n :host(.duet-grid-variation-flex.duet-grid-align-baseline.duet-grid-breakpoint-medium) {\n align-items: baseline !important;\n }\n}\n\n@media (min-width: 62em) {\n :host(.duet-grid-variation-flex.duet-grid-align-top.duet-grid-breakpoint-large) {\n align-items: flex-start !important;\n }\n}\n\n@media (min-width: 62em) {\n :host(.duet-grid-variation-flex.duet-grid-align-bottom.duet-grid-breakpoint-large) {\n align-items: flex-end !important;\n }\n}\n\n@media (min-width: 62em) {\n :host(.duet-grid-variation-flex.duet-grid-align-center.duet-grid-breakpoint-large) {\n align-items: center !important;\n }\n}\n\n@media (min-width: 62em) {\n :host(.duet-grid-variation-flex.duet-grid-align-stretch.duet-grid-breakpoint-large) {\n align-items: stretch !important;\n }\n}\n\n@media (min-width: 62em) {\n :host(.duet-grid-variation-flex.duet-grid-align-baseline.duet-grid-breakpoint-large) {\n align-items: baseline !important;\n }\n}\n\n@media (min-width: 64.0625em) {\n :host(.duet-grid-variation-flex.duet-grid-align-top.duet-grid-breakpoint-x-large) {\n align-items: flex-start !important;\n }\n}\n\n@media (min-width: 64.0625em) {\n :host(.duet-grid-variation-flex.duet-grid-align-bottom.duet-grid-breakpoint-x-large) {\n align-items: flex-end !important;\n }\n}\n\n@media (min-width: 64.0625em) {\n :host(.duet-grid-variation-flex.duet-grid-align-center.duet-grid-breakpoint-x-large) {\n align-items: center !important;\n }\n}\n\n@media (min-width: 64.0625em) {\n :host(.duet-grid-variation-flex.duet-grid-align-stretch.duet-grid-breakpoint-x-large) {\n align-items: stretch !important;\n }\n}\n\n@media (min-width: 64.0625em) {\n :host(.duet-grid-variation-flex.duet-grid-align-baseline.duet-grid-breakpoint-x-large) {\n align-items: baseline !important;\n }\n}\n\n:host(.duet-grid-variation-flex.duet-grid-distribution-left) {\n justify-content: flex-start !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-distribution-right) {\n justify-content: flex-end !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-distribution-center) {\n justify-content: center !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-distribution-between) {\n justify-content: space-between !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-distribution-around) {\n justify-content: space-around !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-distribution-evenly) {\n justify-content: space-evenly !important;\n}\n\n@media (max-width: 35.9375em) {\n :host(.duet-grid-variation-flex.duet-grid-mobile-left) {\n align-items: flex-start !important;\n justify-content: flex-start !important;\n text-align: left !important;\n }\n}\n\n@media (max-width: 35.9375em) {\n :host(.duet-grid-variation-flex.duet-grid-mobile-center) {\n align-items: center !important;\n justify-content: center !important;\n text-align: center !important;\n }\n :host(.duet-grid-variation-flex.duet-grid-mobile-center) * {\n text-align: center !important;\n }\n}\n\n@media (max-width: 35.9375em) {\n :host(.duet-grid-variation-flex.duet-grid-mobile-right) {\n align-items: flex-end !important;\n justify-content: flex-end !important;\n text-align: right !important;\n }\n :host(.duet-grid-variation-flex.duet-grid-mobile-right) * {\n text-align: right !important;\n }\n}\n\n:host(.duet-grid-variation-grid) {\n display: grid;\n grid-template-rows: repeat(1, 1fr);\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 16px;\n align-items: flex-start;\n justify-content: center;\n padding: 0 20px;\n container-type: inline-size;\n overflow-x: clip;\n}\n@media (min-width: 36em) {\n :host(.duet-grid-variation-grid) {\n gap: 24px;\n padding: 0 40px;\n }\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid) {\n grid-template-columns: repeat(8, 55px);\n gap: 24px 32px;\n padding: 0;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid) {\n grid-template-columns: repeat(12, minmax(0, 1fr));\n padding: 0 64px;\n }\n}\n@media (min-width: 76.25em) {\n :host(.duet-grid-variation-grid) {\n grid-template-columns: repeat(12, 55px);\n gap: 40px;\n padding: 0;\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-no-row-gap) {\n row-gap: 0;\n}\n\n:host(.duet-grid-variation-grid.duet-grid-no-column-gap) {\n column-gap: 0;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-no-column-gap) {\n grid-template-columns: repeat(8, 83px);\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-no-column-gap) {\n grid-template-columns: repeat(12, minmax(0, 1fr));\n }\n}\n@media (min-width: 76.25em) {\n :host(.duet-grid-variation-grid.duet-grid-no-column-gap) {\n grid-template-columns: repeat(12, 91.6666666667px);\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-small) ::slotted(*) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-small) ::slotted(*) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-small) ::slotted(*) {\n grid-column: 3/span 8;\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-medium) ::slotted(*) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-medium) ::slotted(*) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-medium) ::slotted(*) {\n grid-column: 2/span 10;\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-large) ::slotted(*) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-large) ::slotted(*) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-large) ::slotted(*) {\n grid-column: 1/span 12;\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-sidebar-right) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-sidebar-right) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-sidebar-right) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 8;\n }\n}\n:host(.duet-grid-variation-grid.duet-grid-template-sidebar-right) ::slotted(:nth-child(even)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-sidebar-right) ::slotted(:nth-child(even)) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-sidebar-right) ::slotted(:nth-child(even)) {\n grid-column: 9/span 4;\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-sidebar-left) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-sidebar-left) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-sidebar-left) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 4;\n }\n}\n:host(.duet-grid-variation-grid.duet-grid-template-sidebar-left) ::slotted(:nth-child(even)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-sidebar-left) ::slotted(:nth-child(even)) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-sidebar-left) ::slotted(:nth-child(even)) {\n grid-column: 5/span 8;\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-two-columns) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-two-columns) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 4;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-two-columns) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 6;\n }\n}\n:host(.duet-grid-variation-grid.duet-grid-template-two-columns) ::slotted(:nth-child(even)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-two-columns) ::slotted(:nth-child(even)) {\n grid-column: 5/span 4;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-two-columns) ::slotted(:nth-child(even)) {\n grid-column: 7/span 6;\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+1)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+1)) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+1)) {\n grid-column: 1/span 4;\n }\n}\n:host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+2)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+2)) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+2)) {\n grid-column: 5/span 4;\n }\n}\n:host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+3)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+3)) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+3)) {\n grid-column: 9/span 4;\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-button-grid) {\n grid-template-columns: minmax(0, 1fr);\n gap: 12px;\n padding: 0;\n}\n@media (min-width: 36em) {\n :host(.duet-grid-variation-grid.duet-grid-template-button-grid) {\n gap: 16px;\n }\n}\n@container (min-width: 664px) {\n :host(.duet-grid-variation-grid.duet-grid-template-button-grid) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n@container (min-width: 1100px) {\n :host(.duet-grid-variation-grid.duet-grid-template-button-grid) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n}";
11650
+ const duetGridCss = ":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}\n\n:host(.duet-grid-variation-flex) {\n display: flex !important;\n flex-direction: column !important;\n align-items: flex-start !important;\n justify-content: flex-start !important;\n width: 100%;\n max-width: 100%;\n height: auto;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-breakpoint-x-small) {\n flex-direction: row !important;\n}\n@media (max-width: 22.5em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-x-small) {\n flex-direction: column !important;\n }\n}\n\n:host(.duet-grid-variation-flex.duet-grid-breakpoint-x-small.duet-grid-row-reverse) {\n flex-direction: row-reverse !important;\n}\n\n@media (min-width: 36em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-small) {\n flex-direction: row !important;\n }\n}\n\n@media (min-width: 36em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-small.duet-grid-row-reverse) {\n flex-direction: row-reverse !important;\n }\n}\n\n@media (min-width: 48em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-medium) {\n flex-direction: row !important;\n }\n}\n\n@media (min-width: 48em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-medium.duet-grid-row-reverse) {\n flex-direction: row-reverse !important;\n }\n}\n\n@media (min-width: 62em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-large) {\n flex-direction: row !important;\n }\n}\n\n@media (min-width: 62em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-large.duet-grid-row-reverse) {\n flex-direction: row-reverse !important;\n }\n}\n\n@media (min-width: 64.0625em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-x-large) {\n flex-direction: row !important;\n }\n}\n\n@media (min-width: 64.0625em) {\n :host(.duet-grid-variation-flex.duet-grid-breakpoint-x-large.duet-grid-row-reverse) {\n flex-direction: row-reverse !important;\n }\n}\n\n:host(.duet-grid-variation-flex.duet-grid-wrap) {\n flex-wrap: wrap !important;\n}\n\n:host(.duet-grid-variation-flex.duet-no-stacking) {\n flex-direction: row !important;\n}\n\n:host(.duet-grid-variation-flex.duet-no-stacking.duet-grid-row-reverse) {\n flex-direction: row-reverse !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-x-small) {\n flex-direction: column !important;\n}\n@media (max-width: 35.9375em) {\n :host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-x-small) {\n flex-direction: column !important;\n }\n}\n\n:host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-small) {\n flex-direction: column !important;\n}\n@media (min-width: 36em) {\n :host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-small) {\n flex-direction: column !important;\n }\n}\n\n:host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-medium) {\n flex-direction: column !important;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-medium) {\n flex-direction: column !important;\n }\n}\n\n:host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-large) {\n flex-direction: column !important;\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-large) {\n flex-direction: column !important;\n }\n}\n\n:host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-x-large) {\n flex-direction: column !important;\n}\n@media (min-width: 64.0625em) {\n :host(.duet-grid-variation-flex.duet-grid-direction-vertical.duet-grid-breakpoint-x-large) {\n flex-direction: column !important;\n }\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-top.duet-no-stacking) {\n align-items: flex-start !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-bottom.duet-no-stacking) {\n align-items: flex-end !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-center.duet-no-stacking) {\n align-items: center !important;\n}\n\n.duet-grid-align-stretch.duet-no-stacking {\n align-items: stretch !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-baseline.duet-no-stacking) {\n align-items: baseline !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-top.duet-grid-breakpoint-x-small) {\n align-items: flex-start !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-bottom.duet-grid-breakpoint-x-small) {\n align-items: flex-end !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-center.duet-grid-breakpoint-x-small) {\n align-items: center !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-stretch.duet-grid-breakpoint-x-small) {\n align-items: stretch !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-align-baseline.duet-grid-breakpoint-x-small) {\n align-items: baseline !important;\n}\n\n@media (min-width: 36em) {\n :host(.duet-grid-variation-flex.duet-grid-align-top.duet-grid-breakpoint-small) {\n align-items: flex-start !important;\n }\n}\n\n@media (min-width: 36em) {\n :host(.duet-grid-variation-flex.duet-grid-align-bottom.duet-grid-breakpoint-small) {\n align-items: flex-end !important;\n }\n}\n\n@media (min-width: 36em) {\n :host(.duet-grid-variation-flex.duet-grid-align-center.duet-grid-breakpoint-small) {\n align-items: center !important;\n }\n}\n\n@media (min-width: 36em) {\n :host(.duet-grid-variation-flex.duet-grid-align-stretch.duet-grid-breakpoint-small) {\n align-items: stretch !important;\n }\n}\n\n@media (min-width: 36em) {\n :host(.duet-grid-variation-flex.duet-grid-align-baseline.duet-grid-breakpoint-small) {\n align-items: baseline !important;\n }\n}\n\n@media (min-width: 48em) {\n :host(.duet-grid-variation-flex.duet-grid-align-top.duet-grid-breakpoint-medium) {\n align-items: flex-start !important;\n }\n}\n\n@media (min-width: 48em) {\n :host(.duet-grid-variation-flex.duet-grid-align-bottom.duet-grid-breakpoint-medium) {\n align-items: flex-end !important;\n }\n}\n\n@media (min-width: 48em) {\n :host(.duet-grid-variation-flex.duet-grid-align-center.duet-grid-breakpoint-medium) {\n align-items: center !important;\n }\n}\n\n@media (min-width: 48em) {\n :host(.duet-grid-variation-flex.duet-grid-align-stretch.duet-grid-breakpoint-medium) {\n align-items: stretch !important;\n }\n}\n\n@media (min-width: 48em) {\n :host(.duet-grid-variation-flex.duet-grid-align-baseline.duet-grid-breakpoint-medium) {\n align-items: baseline !important;\n }\n}\n\n@media (min-width: 62em) {\n :host(.duet-grid-variation-flex.duet-grid-align-top.duet-grid-breakpoint-large) {\n align-items: flex-start !important;\n }\n}\n\n@media (min-width: 62em) {\n :host(.duet-grid-variation-flex.duet-grid-align-bottom.duet-grid-breakpoint-large) {\n align-items: flex-end !important;\n }\n}\n\n@media (min-width: 62em) {\n :host(.duet-grid-variation-flex.duet-grid-align-center.duet-grid-breakpoint-large) {\n align-items: center !important;\n }\n}\n\n@media (min-width: 62em) {\n :host(.duet-grid-variation-flex.duet-grid-align-stretch.duet-grid-breakpoint-large) {\n align-items: stretch !important;\n }\n}\n\n@media (min-width: 62em) {\n :host(.duet-grid-variation-flex.duet-grid-align-baseline.duet-grid-breakpoint-large) {\n align-items: baseline !important;\n }\n}\n\n@media (min-width: 64.0625em) {\n :host(.duet-grid-variation-flex.duet-grid-align-top.duet-grid-breakpoint-x-large) {\n align-items: flex-start !important;\n }\n}\n\n@media (min-width: 64.0625em) {\n :host(.duet-grid-variation-flex.duet-grid-align-bottom.duet-grid-breakpoint-x-large) {\n align-items: flex-end !important;\n }\n}\n\n@media (min-width: 64.0625em) {\n :host(.duet-grid-variation-flex.duet-grid-align-center.duet-grid-breakpoint-x-large) {\n align-items: center !important;\n }\n}\n\n@media (min-width: 64.0625em) {\n :host(.duet-grid-variation-flex.duet-grid-align-stretch.duet-grid-breakpoint-x-large) {\n align-items: stretch !important;\n }\n}\n\n@media (min-width: 64.0625em) {\n :host(.duet-grid-variation-flex.duet-grid-align-baseline.duet-grid-breakpoint-x-large) {\n align-items: baseline !important;\n }\n}\n\n:host(.duet-grid-variation-flex.duet-grid-distribution-left) {\n justify-content: flex-start !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-distribution-right) {\n justify-content: flex-end !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-distribution-center) {\n justify-content: center !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-distribution-between) {\n justify-content: space-between !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-distribution-around) {\n justify-content: space-around !important;\n}\n\n:host(.duet-grid-variation-flex.duet-grid-distribution-evenly) {\n justify-content: space-evenly !important;\n}\n\n@media (max-width: 35.9375em) {\n :host(.duet-grid-variation-flex.duet-grid-mobile-left) {\n align-items: flex-start !important;\n justify-content: flex-start !important;\n text-align: left !important;\n }\n}\n\n@media (max-width: 35.9375em) {\n :host(.duet-grid-variation-flex.duet-grid-mobile-center) {\n align-items: center !important;\n justify-content: center !important;\n text-align: center !important;\n }\n :host(.duet-grid-variation-flex.duet-grid-mobile-center) * {\n text-align: center !important;\n }\n}\n\n@media (max-width: 35.9375em) {\n :host(.duet-grid-variation-flex.duet-grid-mobile-right) {\n align-items: flex-end !important;\n justify-content: flex-end !important;\n text-align: right !important;\n }\n :host(.duet-grid-variation-flex.duet-grid-mobile-right) * {\n text-align: right !important;\n }\n}\n\n:host(.duet-grid-variation-grid) {\n display: grid;\n grid-template-rows: repeat(1, 1fr);\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 16px;\n align-items: flex-start;\n justify-content: center;\n padding: 0 20px;\n container-type: inline-size;\n overflow-x: clip;\n}\n@media (min-width: 36em) {\n :host(.duet-grid-variation-grid) {\n gap: 24px;\n padding: 0 40px;\n }\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid) {\n grid-template-columns: repeat(8, 55px);\n gap: 24px 32px;\n padding: 0;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid) {\n grid-template-columns: repeat(12, minmax(0, 1fr));\n padding: 0 64px;\n }\n}\n@media (min-width: 76.25em) {\n :host(.duet-grid-variation-grid) {\n grid-template-columns: repeat(12, 55px);\n gap: 40px;\n padding: 0;\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-no-row-gap) {\n row-gap: 0;\n}\n\n:host(.duet-grid-variation-grid.duet-grid-no-column-gap) {\n column-gap: 0;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-no-column-gap) {\n grid-template-columns: repeat(8, 83px);\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-no-column-gap) {\n grid-template-columns: repeat(12, minmax(0, 1fr));\n }\n}\n@media (min-width: 76.25em) {\n :host(.duet-grid-variation-grid.duet-grid-no-column-gap) {\n grid-template-columns: repeat(12, 91.6666666667px);\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-small) ::slotted(*) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-small) ::slotted(*) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-small) ::slotted(*) {\n grid-column: 3/span 8;\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-medium) ::slotted(*) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-medium) ::slotted(*) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-medium) ::slotted(*) {\n grid-column: 2/span 10;\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-large) ::slotted(*) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-large) ::slotted(*) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-large) ::slotted(*) {\n grid-column: 1/span 12;\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-sidebar-right) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-sidebar-right) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-sidebar-right) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 8;\n }\n}\n:host(.duet-grid-variation-grid.duet-grid-template-sidebar-right) ::slotted(:nth-child(even)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-sidebar-right) ::slotted(:nth-child(even)) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-sidebar-right) ::slotted(:nth-child(even)) {\n grid-column: 9/span 4;\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-sidebar-left) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-sidebar-left) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-sidebar-left) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 4;\n }\n}\n:host(.duet-grid-variation-grid.duet-grid-template-sidebar-left) ::slotted(:nth-child(even)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-sidebar-left) ::slotted(:nth-child(even)) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-sidebar-left) ::slotted(:nth-child(even)) {\n grid-column: 5/span 8;\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-two-columns) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-two-columns) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 4;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-two-columns) ::slotted(:nth-child(odd)) {\n grid-column: 1/span 6;\n }\n}\n:host(.duet-grid-variation-grid.duet-grid-template-two-columns) ::slotted(:nth-child(even)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-two-columns) ::slotted(:nth-child(even)) {\n grid-column: 5/span 4;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-two-columns) ::slotted(:nth-child(even)) {\n grid-column: 7/span 6;\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+1)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+1)) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+1)) {\n grid-column: 1/span 4;\n }\n}\n:host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+2)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+2)) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+2)) {\n grid-column: 5/span 4;\n }\n}\n:host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+3)) {\n grid-column: 1/span 4;\n}\n@media (min-width: 48em) {\n :host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+3)) {\n grid-column: 1/span 8;\n }\n}\n@media (min-width: 62em) {\n :host(.duet-grid-variation-grid.duet-grid-template-three-columns) ::slotted(:nth-child(3n+3)) {\n grid-column: 9/span 4;\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-button-grid) {\n grid-template-columns: minmax(0, 1fr);\n gap: 12px;\n padding: 0;\n}\n@media (min-width: 36em) {\n :host(.duet-grid-variation-grid.duet-grid-template-button-grid) {\n gap: 16px;\n }\n}\n@container (min-width: 664px) {\n :host(.duet-grid-variation-grid.duet-grid-template-button-grid) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n@container (min-width: 1100px) {\n :host(.duet-grid-variation-grid.duet-grid-template-button-grid) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n}\n\n:host(.duet-grid-variation-grid.duet-grid-template-teaser) {\n grid-template-columns: minmax(0, 540px);\n gap: 40px;\n padding: 0;\n}\n@container (min-width: 720px) {\n :host(.duet-grid-variation-grid.duet-grid-template-teaser) {\n grid-template-columns: repeat(2, minmax(0, 540px));\n }\n}\n@container (min-width: 1100px) {\n :host(.duet-grid-variation-grid.duet-grid-template-teaser) {\n grid-template-columns: repeat(3, minmax(0, 540px));\n }\n}\n\n@container (min-width: 1100px) {\n :host(.duet-grid-variation-grid.duet-grid-template-teaser.duet-grid-direct-children-4) {\n grid-template-columns: repeat(2, minmax(0, 540px));\n }\n}";
11490
11651
 
11491
11652
  class DuetGrid {
11492
11653
  constructor(hostRef) {
11493
11654
  registerInstance(this, hostRef);
11655
+ this.directChildCount = 0;
11494
11656
  /**
11495
11657
  * Enable or disable the automatic responsive behaviour of the grid component.
11496
11658
  * Setting this option to "true" makes sure that contents are stacked vertically
@@ -11589,7 +11751,9 @@ class DuetGrid {
11589
11751
  return Array.from(this.element.children );
11590
11752
  }
11591
11753
  async updateGridItems() {
11592
- const items = this.getDirectChildren().filter(child => child.tagName.toLowerCase() === "duet-grid-item");
11754
+ const children = this.getDirectChildren();
11755
+ this.directChildCount = children.length;
11756
+ const items = children.filter(child => child.tagName.toLowerCase() === "duet-grid-item");
11593
11757
  items.forEach(item => {
11594
11758
  item.responsive = this.responsive;
11595
11759
  item.breakpoint = this.breakpoint;
@@ -11676,7 +11840,7 @@ class DuetGrid {
11676
11840
  * Always the last one in the class.
11677
11841
  */
11678
11842
  render() {
11679
- return (hAsync(Host, { key: 'e64260236eda4217a2cb10444342c33d243da8cf', class: {
11843
+ return (hAsync(Host, { key: 'af6ceb11c84216f03b1dda1c12f3ae224b5c4874', class: {
11680
11844
  "duet-grid": true,
11681
11845
  "duet-no-stacking": !this.responsive,
11682
11846
  "duet-grid-align-top": this.alignment === "top", // flex-start
@@ -11703,9 +11867,10 @@ class DuetGrid {
11703
11867
  "duet-grid-row-reverse": this.rowReverse,
11704
11868
  [`duet-grid-variation-${this.gridTemplate ? "grid" : "flex"}`]: true,
11705
11869
  [`duet-grid-template-${this.gridTemplate}`]: true,
11870
+ [`duet-grid-direct-children-${this.directChildCount}`]: true,
11706
11871
  "duet-grid-no-row-gap": this.gridTemplateGap.startsWith("none") && this.gridTemplate !== "button-grid",
11707
11872
  "duet-grid-no-column-gap": this.gridTemplateGap.endsWith("none") && this.gridTemplate !== "button-grid",
11708
- } }, hAsync("slot", { key: '1cb11ce3685bf5043dfa3e36e6a0ff3653106b54' })));
11873
+ } }, hAsync("slot", { key: 'c000cfdac55f96a2f4698668e48b13f1e6829ccc' })));
11709
11874
  }
11710
11875
  get element() { return getElement(this); }
11711
11876
  static get watchers() { return {
@@ -11727,7 +11892,8 @@ class DuetGrid {
11727
11892
  "distribution": [1],
11728
11893
  "mobile": [1],
11729
11894
  "gridTemplate": [1, "grid-template"],
11730
- "gridTemplateGap": [1, "grid-template-gap"]
11895
+ "gridTemplateGap": [1, "grid-template-gap"],
11896
+ "directChildCount": [32]
11731
11897
  },
11732
11898
  "$listeners$": undefined,
11733
11899
  "$lazyBundleId$": "-",
@@ -11788,7 +11954,7 @@ class DuetGridItem {
11788
11954
  * Always the last one in the class.
11789
11955
  */
11790
11956
  render() {
11791
- return (hAsync(Host, { key: '59b2546565c78716d981db97ba3a66b9f4b06104', style: {
11957
+ return (hAsync(Host, { key: '1a1bfed712a2b3acd4f87bd37bb4b22e06521056', style: {
11792
11958
  "min-width": this.minWidth,
11793
11959
  "max-width": this.maxWidth,
11794
11960
  }, class: {
@@ -11805,7 +11971,7 @@ class DuetGridItem {
11805
11971
  "duet-grid-item-br-medium": this.breakpoint === "medium",
11806
11972
  "duet-grid-item-br-large": this.breakpoint === "large",
11807
11973
  "duet-grid-item-br-x-large": this.breakpoint === "x-large",
11808
- } }, hAsync("slot", { key: '78c0ca977366f49a62d91c19e42b7140455c0e7e' })));
11974
+ } }, hAsync("slot", { key: '11a8e27d181731baadfceaafef6de847fd3fd081' })));
11809
11975
  }
11810
11976
  get element() { return getElement(this); }
11811
11977
  static get style() { return duetGridItemCss; }
@@ -12884,7 +13050,7 @@ class DuetHeading {
12884
13050
  }; }
12885
13051
  }
12886
13052
 
12887
- 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)}";
13053
+ 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-theme-turva.duet-hero-light,.duet-hero.duet-theme-turva.duet-hero-with-image{color:rgb(23, 42, 59);background-image:linear-gradient(rgb(253, 247, 242), #fefbf9)}.duet-hero.duet-theme-turva.duet-hero-light::before,.duet-hero.duet-theme-turva.duet-hero-with-image::before{background-image:linear-gradient(#fefbf9, rgb(255, 255, 255))}.duet-hero.duet-theme-turva.duet-hero-gray{background:rgb(245, 246, 247)}.duet-hero.duet-theme-turva.duet-hero-campaign,.duet-hero.duet-theme-turva.duet-hero-section{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-theme-turva.duet-hero-campaign .brand-shape,.duet-hero.duet-theme-turva.duet-hero-section .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-theme-turva.duet-hero-campaign .brand-shape,.duet-hero.duet-theme-turva.duet-hero-section .brand-shape{top:143px;left:-30px;width:450px;height:450px}}@media (min-width: 36em){.duet-hero.duet-theme-turva.duet-hero-campaign .brand-shape,.duet-hero.duet-theme-turva.duet-hero-section .brand-shape{top:180px;left:0;width:550px;height:550px}}@media (min-width: 48em){.duet-hero.duet-theme-turva.duet-hero-campaign .brand-shape,.duet-hero.duet-theme-turva.duet-hero-section .brand-shape{top:220px;width:712.18px;height:712.18px}}@media (min-width: 62em){.duet-hero.duet-theme-turva.duet-hero-campaign .brand-shape,.duet-hero.duet-theme-turva.duet-hero-section .brand-shape{top:230px}}@media (min-width: 76.25em){.duet-hero.duet-theme-turva.duet-hero-campaign .brand-shape,.duet-hero.duet-theme-turva.duet-hero-section .brand-shape{top:260px}}@media (min-width: 106.25em){.duet-hero.duet-theme-turva.duet-hero-campaign .brand-shape,.duet-hero.duet-theme-turva.duet-hero-section .brand-shape{top:290px}}.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-text duet-paragraph{width:98%}@media (min-width: 22.5em){.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-text duet-paragraph{width:90%}}@media (min-width: 25em){.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-text duet-paragraph{width:78%}}@media (min-width: 30em){.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-text duet-paragraph{width:66%}}@media (min-width: 36em){.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-text duet-paragraph{width:65%}}@media (min-width: 48em){.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-text duet-paragraph{width:70%}}@media (min-width: 62em){.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-text .duet-hero-subheading,.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-text duet-paragraph,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-text .duet-hero-subheading,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-text duet-paragraph{width:52%}}.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-heading{margin-bottom:2rem}@media (min-width: 22.5em){.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-heading{margin-bottom:2rem}}@media (min-width: 36em){.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-heading{margin-bottom:4rem}}@media (min-width: 48em){.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-heading{margin-bottom:6rem}}@media (min-width: 62em){.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-heading{margin-bottom:7rem}}@media (min-width: 76.25em){.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-heading{margin-bottom:8rem}}@media (min-width: 106.25em){.duet-hero.duet-theme-turva.duet-hero-campaign .duet-hero-heading,.duet-hero.duet-theme-turva.duet-hero-section .duet-hero-heading{margin-botton:9rem}}.duet-hero.duet-theme-turva.duet-hero-campaign .background-area .brand-shape,.duet-hero.duet-theme-turva.duet-hero-section .background-area .brand-shape{left:0;background-color:rgb(255, 255, 255);border-radius:24px;mask-image:none}.duet-hero.duet-theme-turva.duet-hero-product{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-theme-turva.duet-hero-product{flex-direction:row-reverse;gap:40px;padding-top:72px;padding-right:56px;padding-left:56px}}@media (min-width: 76.25em){.duet-hero.duet-theme-turva.duet-hero-product{max-width:1110px;padding-right:0;padding-left:0}}.duet-hero.duet-theme-turva.duet-hero-product .background-area{position:relative;height:auto;overflow:visible}.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.narrow,.duet-hero.duet-theme-turva.duet-hero-product .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-theme-turva.duet-hero-product .background-area .background-container.narrow,.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.fluid{height:250px;aspect-ratio:auto}}@media (min-width: 48em){.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.narrow,.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.fluid{padding-right:28px;padding-left:28px}}@media (min-width: 62em){.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.narrow,.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.fluid{height:auto;aspect-ratio:53/32;padding-right:0;padding-left:0}}.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.narrow .background,.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.fluid .background{position:relative;top:auto;height:100%}.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.narrow .background .background-mask,.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.fluid .background .background-mask{display:none;background-image:none}.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.narrow .background .brand-shaped-image,.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.fluid .background .brand-shaped-image{position:static;width:100%;height:100%;border-radius:0;mask-image:none}.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.narrow .background .brand-shaped-image .brand-shaped-image-bg,.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.fluid .background .brand-shaped-image .brand-shaped-image-bg{position:static;width:100%;height:100%;transform:none}.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.narrow .background .brand-shaped-image .brand-shaped-image-bg picture,.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.fluid .background .brand-shaped-image .brand-shaped-image-bg picture{display:block;width:100%;height:100%}.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.narrow .background .brand-shaped-image .brand-shaped-image-bg img,.duet-hero.duet-theme-turva.duet-hero-product .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%;transform:none}@media (min-width: 48em){.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.narrow .background .brand-shaped-image,.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.fluid .background .brand-shaped-image{border-radius:0 0 12px 12px}}@media (min-width: 62em){.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.narrow .background .brand-shaped-image,.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.fluid .background .brand-shaped-image{border-radius:12px}}.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.narrow .background .brand-shaped-icon,.duet-hero.duet-theme-turva.duet-hero-product .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-theme-turva.duet-hero-product .background-area .background-container.narrow .background .brand-shaped-icon duet-icon,.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.fluid .background .brand-shaped-icon duet-icon{top:0;width:62px;height:62px}@media (min-width: 36em){.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.narrow .background .brand-shaped-icon,.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.fluid .background .brand-shaped-icon{right:40px;bottom:-24px;padding:8px}.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.narrow .background .brand-shaped-icon duet-icon,.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.fluid .background .brand-shaped-icon duet-icon{width:80px;height:80px}}@media (min-width: 48em){.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.narrow .background .brand-shaped-icon,.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.fluid .background .brand-shaped-icon{right:68px}}@media (min-width: 62em){.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.narrow .background .brand-shaped-icon,.duet-hero.duet-theme-turva.duet-hero-product .background-area .background-container.fluid .background .brand-shaped-icon{right:40px}}.duet-hero.duet-theme-turva.duet-hero-product .duet-hero-wrapper .duet-hero-text{width:100%}@media (min-width: 48em){.duet-hero.duet-theme-turva.duet-hero-product .duet-hero-wrapper{margin-top:28px}}@media (min-width: 62em){.duet-hero.duet-theme-turva.duet-hero-product .duet-hero-wrapper{padding:0}}.duet-hero.duet-theme-turva.duet-hero-content{padding:0;margin:20px auto;background:rgb(255, 255, 255)}.duet-hero.duet-theme-turva.duet-hero-content .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-theme-turva.duet-hero-content .background-mask{left:181px}}.duet-hero.duet-theme-turva.duet-hero-content .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-theme-turva.duet-hero-content .brand-shaped-image{top:-230px;width:687px;height:637px}}.duet-hero.duet-theme-turva.duet-hero-content .brand-shaped-image .brand-shaped-image-bg{width:600px;height:280px;transform:translate(-50%, 0)}@media (min-width: 48em){.duet-hero.duet-theme-turva.duet-hero-content .brand-shaped-image .brand-shaped-image-bg{width:733px;height:413px}}.duet-hero.duet-theme-turva.duet-hero-content.duet-hero-narrow .background-area{max-width:888px}@media (min-width: 36em){.duet-hero.duet-theme-turva.duet-hero-content.duet-hero-narrow .background-area{padding:0 48px}}@media (min-width: 48em){.duet-hero.duet-theme-turva.duet-hero-content.duet-hero-narrow .background-area{padding:0 72px}}.duet-hero.duet-theme-turva.duet-hero-content .background-area{position:static;padding:0 16px;margin:0 auto}@media (min-width: 36em){.duet-hero.duet-theme-turva.duet-hero-content .background-area{padding:0 28px}}@media (min-width: 62em){.duet-hero.duet-theme-turva.duet-hero-content .background-area{padding:0 56px}}@media (min-width: 76.25em){.duet-hero.duet-theme-turva.duet-hero-content .background-area{max-width:1110px;padding:0}}.duet-hero.duet-theme-turva.duet-hero-content .background-area .background{position:static;height:auto}.duet-hero.duet-theme-turva.duet-hero-content .background-area .background .background-mask{display:none;background-image:none}.duet-hero.duet-theme-turva.duet-hero-content .background-area .background .brand-shaped-image{position:static;width:auto;height:auto}.duet-hero.duet-theme-turva.duet-hero-content .background-area .background .brand-shaped-image .brand-shaped-image-wrapper{width:auto;height:auto}.duet-hero.duet-theme-turva.duet-hero-content .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-theme-turva.duet-hero-content .background-area .background .brand-shaped-image .brand-shaped-image-bg picture{display:block;width:100%;height:100%}.duet-hero.duet-theme-turva.duet-hero-content .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-theme-turva.duet-hero-content .brand-shaped-image{border-radius:12px;mask-image:none}.duet-hero.duet-theme-turva.duet-hero-content .duet-hero-wrapper{margin-top:28px}@media (min-width: 48em){.duet-hero.duet-theme-turva.duet-hero-content .duet-hero-wrapper{margin-top:36px}}.duet-hero.duet-theme-turva.duet-hero-with-image{padding-top:0}.duet-hero.duet-theme-turva.duet-hero-with-image .duet-hero-image-mask{margin:0}@media screen and (min-width: 1450px){.duet-hero.duet-theme-turva.duet-hero-with-image .duet-hero-image-mask{transform:translateX(108%)}}@media (min-width: 48em){.duet-hero.duet-theme-turva.duet-hero-with-image{padding-top:48px}}@media (min-width: 62em){.duet-hero.duet-theme-turva.duet-hero-with-image{padding-top:72px}}.duet-hero.duet-theme-turva.duet-hero-with-image .duet-hero-image-wrapper{top:0;height:auto;aspect-ratio:16/10;padding-bottom:0;margin:36px auto;border-radius:16px;transform:none}@media screen and (min-width: 440px){.duet-hero.duet-theme-turva.duet-hero-with-image .duet-hero-image-wrapper{width:80%}}@media (min-width: 48em){.duet-hero.duet-theme-turva.duet-hero-with-image .duet-hero-image-wrapper{margin-top:0}}@media (min-width: 62em){.duet-hero.duet-theme-turva.duet-hero-with-image .duet-hero-image-wrapper{top:72px;right:-80px;width:536px}}@media (min-width: 76.25em){.duet-hero.duet-theme-turva.duet-hero-with-image .duet-hero-image-wrapper{right:-60px;width:650px}}@media screen and (min-width: 1450px){.duet-hero.duet-theme-turva.duet-hero-with-image .duet-hero-image-wrapper{right:0}}.duet-hero.duet-theme-turva.duet-hero-with-image .duet-hero-image-wrapper .duet-hero-image{top:0;left:0;width:100%;height:100%;transform:none}.duet-hero.duet-theme-turva .duet-hero-wrapper{position:static;margin-top:0}.duet-hero.duet-theme-turva .duet-hero-link{color:rgb(230, 23, 64)}.duet-hero.duet-theme-turva .duet-hero-link:hover .duet-hero-action-arrow{color:rgb(140, 0, 30) !important}.duet-hero.duet-theme-turva .duet-hero-action-arrow{color:rgb(230, 23, 64)}";
12888
13054
 
12889
13055
  /**
12890
13056
  * @part duet-hero - piercing selector for styling the hero container
@@ -13010,6 +13176,11 @@ class DuetHero {
13010
13176
  * Image position.
13011
13177
  */
13012
13178
  this.imagePosition = "auto";
13179
+ /**
13180
+ * Make the image load with higher or lower priority. Value "high" sets the img's attributes fetchpriority and loading to
13181
+ * "high" and "eager", while value "low" sets those attributes to "low" and "lazy"
13182
+ */
13183
+ this.imagePriority = "high";
13013
13184
  /**
13014
13185
  * Style variation of the hero area.
13015
13186
  */
@@ -13118,17 +13289,17 @@ class DuetHero {
13118
13289
  const campaignOrSection = this.variation === "campaign" || this.variation === "section";
13119
13290
  const imageSizeIsCover = this.imageSize === "cover";
13120
13291
  const imagePositionIsCenter = this.imagePosition === "center";
13121
- const styles = {
13122
- backgroundImage: `url(${this.image})`,
13123
- backgroundSize: imageSizeIsCover ? "cover" : null,
13124
- backgroundPosition: imagePositionIsCenter ? "center" : null,
13125
- };
13126
- const bgImgA11yAttrs = this.image && this.imageAlt
13127
- ? {
13128
- role: "img",
13129
- ["aria-label"]: this.imageAlt,
13130
- }
13131
- : {};
13292
+ const imageClass = `${imageSizeIsCover ? "cover" : ""} ${imagePositionIsCenter ? "center" : ""}`.trim();
13293
+ const getPictureSource = (className) => ({
13294
+ img: {
13295
+ src: this.image,
13296
+ alt: this.imageAlt || "",
13297
+ loading: this.imagePriority === "low" ? "lazy" : "eager",
13298
+ fetchpriority: this.imagePriority,
13299
+ class: className || "",
13300
+ },
13301
+ sources: parsePossibleJSON(this.sources),
13302
+ });
13132
13303
  const buttonStyles = {
13133
13304
  transform: "translateX(-8px)",
13134
13305
  };
@@ -13165,7 +13336,7 @@ class DuetHero {
13165
13336
  outlineColor = "color-primary-turva";
13166
13337
  }
13167
13338
  }
13168
- return (hAsync("div", { key: 'c9ddbcc16c2911a20e497cd8aa384fa5c07d33aa', role: "region", class: {
13339
+ return (hAsync("div", { key: 'dfdf7ff48804ea8afc843f2901dae041929c9266', role: "region", class: {
13169
13340
  "duet-hero": true,
13170
13341
  "duet-theme-turva": this.theme === "turva",
13171
13342
  "duet-has-category-icon": !!this.categoryIcon,
@@ -13183,17 +13354,17 @@ class DuetHero {
13183
13354
  "duet-hero-text-center": this.variation !== "product" && ((this.textCenter && !this.leftAlign) || campaignOrSection),
13184
13355
  "duet-hero-left-align": this.variation === "product" || (this.leftAlign && !campaignOrSection),
13185
13356
  "duet-hero-narrow": this.layout === "narrow",
13186
- }, part: "duet-hero" }, campaignOrSection && this.image && (hAsync("div", { key: 'a11039ca72275168553d2bba06cd909229dc1925', class: "background-area" }, hAsync("div", { key: 'a21ad76654ac39c2fa21795f1cca235dc92e6404', class: "background-container" }, hAsync("div", { key: '12d3583034b68b6fb747c749c0449146c40cb471', class: "background" }, hAsync("img", { key: '8961eadf230127f3783efad4c48be759c4657e2a', class: `${imageSizeIsCover ? "cover" : ""} ${imagePositionIsCenter ? "center" : ""}`, src: this.image, alt: this.imageAlt || "", role: this.imageAlt ? null : "presentation" })), hAsync("div", { key: 'bdfeab66795ec39e3f0383d9c2ef713733eb1a87', class: "brand-shape" })))), this.variation === "product" && this.image && (hAsync("div", { key: 'f08f6d3f621e7dac9a46f1942d87a6ec8cc8afa1', class: { "background-area": true, [this.layout]: true } }, hAsync("div", { key: 'dcb0f245be411d836d24d7adb5c98b82841d6038', class: { "background-container": true, [this.layout]: true } }, hAsync("div", { key: 'a5c5eccc8dcf20d10c7be435873c815eaf0713e2', class: { background: true, [this.layout]: true } }, hAsync("div", { key: '358763fb7ceea2e54bb6d5249a3b4281de220758', class: { "background-mask": true, [this.layout]: true } }), this.theme !== "turva" && hAsync("div", { key: 'a11b4ea782b4e6887ec4d6573188adeec90577b1', class: { "brand-shape": true, [this.layout]: true } }), hAsync("div", { key: '7afb89a0beb1d7675c33fcc831880c8126f1299a', class: { "brand-shaped-image": true, [this.layout]: true } }, hAsync("div", { key: 'd9f4649e3eb88d062cbde9eb311f195357f67d5d', class: { "brand-shaped-image-wrapper": true, [this.layout]: true } }, hAsync("div", Object.assign({ key: 'e75eeac505d3b021f0a7de2c195b9846b77c7c17', class: { "brand-shaped-image-bg": true, [this.layout]: true }, style: styles }, bgImgA11yAttrs)))), this.categoryIcon && (hAsync("div", { key: '3c7d8d8ef1ccb2a63c0cde7ce064adb3ac49ba9a', class: { "brand-shaped-icon": true, [this.layout]: true } }, hAsync("duet-icon", { key: '23ff81f55a6f02a5fee73f17ea54a96cee164b85', class: { [this.layout]: true }, background: "none", name: this.categoryIcon, margin: "none", size: "auto", responsive: false }))))))), this.variation === "content" && this.image && (hAsync("div", { key: 'd1d02c374a68c1b68fb2f9d848e5a7c357b5a220', class: "background-area" }, hAsync("div", { key: '9f53455c7fca9008387d26b0dfc89c104076c248', class: "background" }, hAsync("div", { key: '80d50fdf1c366ac730e88fff3d59f10f725f66bb', class: "background-mask" }), this.theme !== "turva" && hAsync("div", { key: 'b079b624311717908bb1e1c37a0c56ad560ed44e', class: "brand-shape" }), hAsync("div", { key: '247c5196610c63556bf2f66e2d8334d9cce8bdfa', class: "brand-shaped-image" }, hAsync("div", { key: 'a83da29f05f36125276f4e74096648b30a8e9898', class: "brand-shaped-image-wrapper" }, hAsync("div", Object.assign({ key: '150f6775a489981cbeaa8aa03f188f165d48aee0', class: "brand-shaped-image-bg", style: styles }, bgImgA11yAttrs))))))), hAsync("div", { key: '558787b0fd8e59329b907d7dda223526d14b632d', class: { "duet-hero-wrapper": true, [this.layout]: true } }, this.image && this.variation === "image" && (hAsync("div", { key: '12abfe5fb1240e186528ecbc2119c0797480e77f', class: "duet-hero-image-mask" }, hAsync("div", { key: '0592878e99fd51f01ce16c2bf2ac1ae44c4636a1', class: "duet-hero-image-wrapper" }, hAsync("div", Object.assign({ key: 'd7a6838d0f589bb56ea831375e8a6237fe3c4bf2', class: "duet-hero-image", style: styles }, bgImgA11yAttrs))))), (this.variation === "gray" || this.variation === "light" || this.variation === "minimal") &&
13187
- this.processedBack && (hAsync("div", { key: 'dbef4d7459000d59a63deb5834086f5e607f8a0a', class: "duet-hero-back" }, hAsync("duet-button", { key: '19481b475ec5fa1a83ee3d94d6170e823d80e5ae', 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, {
13357
+ }, part: "duet-hero" }, campaignOrSection && this.image && (hAsync("div", { key: '38e648e7447b8db00a773ff4025d68500401f7bc', class: "background-area" }, hAsync("div", { key: '803534bf55dc7737cd41ec1d75fbed052334a19a', class: "background-container" }, hAsync("div", { key: '27d0577a3993d7eaa767812700ff290986535b20', class: "background" }, hAsync(DuetPicture, Object.assign({ key: '6cc4a5648f7466ed44125cd22e35a6eeb725b18a' }, getPictureSource(imageClass)))), hAsync("div", { key: '76a95c713cd90761ea2d670389183e2c04a97a80', class: "brand-shape" })))), this.variation === "product" && this.image && (hAsync("div", { key: 'c436973c44f7d497a70a96a51eb0f96be6eda95a', class: { "background-area": true, [this.layout]: true } }, hAsync("div", { key: 'e5a17290d952644ba521a4b3976387456f650cd4', class: { "background-container": true, [this.layout]: true } }, hAsync("div", { key: '8fdf828e65411a86393e096d8f3b6415076d97e0', class: { background: true, [this.layout]: true } }, hAsync("div", { key: '0ada9a2b55d78b2774063d099cb03a8e09693584', class: { "background-mask": true, [this.layout]: true } }), this.theme !== "turva" && hAsync("div", { key: 'b24d91804b31920da022285d0565667c8e92997e', class: { "brand-shape": true, [this.layout]: true } }), hAsync("div", { key: '226619d3d283b31fa7e8caadaf49473a170abb3a', class: { "brand-shaped-image": true, [this.layout]: true } }, hAsync("div", { key: '0a0415ca70e98b277bf151f28e1f4f1639338fa6', class: { "brand-shaped-image-wrapper": true, [this.layout]: true } }, hAsync("div", { key: 'c866eb1fa36ab6cc43e8839669069046c2faae60', class: { "brand-shaped-image-bg": true, [this.layout]: true } }, hAsync(DuetPicture, Object.assign({ key: 'a98b41e51c70043f55128a19718911f321b7527f' }, getPictureSource()))))), this.categoryIcon && (hAsync("div", { key: '0d3b0c0428a32d2df977a6ac63be04ed6a7f72c6', class: { "brand-shaped-icon": true, [this.layout]: true } }, hAsync("duet-icon", { key: '7af6dee3ca69df4b1d8e87830636ec18ad3a40b7', class: { [this.layout]: true }, background: "none", name: this.categoryIcon, margin: "none", size: "auto", responsive: false }))))))), this.variation === "content" && this.image && (hAsync("div", { key: '20bd7ce2aca1d5062f0f0e1f4889a97ec308b1d9', class: "background-area" }, hAsync("div", { key: '1847e876158decc257b4445501d1bb8e208ddb0e', class: "background" }, hAsync("div", { key: '236489bc1fff1be4cf44d267dfbb5c3bcb119dad', class: "background-mask" }), this.theme !== "turva" && hAsync("div", { key: '3c1e73a037c1ec3b129caaac2a689bf60ce62710', class: "brand-shape" }), hAsync("div", { key: '9cfc2c3b6f5022d863fd6c869ffda7e0df51e013', class: "brand-shaped-image" }, hAsync("div", { key: '8471e4f399016fb37f5f5e46f8bab0865179c6a3', class: "brand-shaped-image-wrapper" }, hAsync("div", { key: '68bfcd1b748c5f7d0b3661152a489707f12024ac', class: "brand-shaped-image-bg" }, hAsync(DuetPicture, Object.assign({ key: '78a267d0198018669353675e01ad0ca70491b36f' }, getPictureSource())))))))), hAsync("div", { key: '4ab0bf9e9dee5b6889db6cc396cd304eda1bd870', class: { "duet-hero-wrapper": true, [this.layout]: true } }, this.image && this.variation === "image" && (hAsync("div", { key: '208c46264f1ea0ce04845324a68cf5848ad95535', class: "duet-hero-image-mask" }, hAsync("div", { key: 'b95a0b0a8840c5835a4e9668bd9481fcd9bfa87b', class: "duet-hero-image-wrapper" }, hAsync("div", { key: '04633cc8d3020b921c42551a5e065bc942540fcc', class: "duet-hero-image" }, hAsync(DuetPicture, Object.assign({ key: '7415ca53535a1295d42eb2b29cc6dbe7a93a04ae' }, getPictureSource(imageClass))))))), (this.variation === "gray" || this.variation === "light" || this.variation === "minimal") &&
13358
+ this.processedBack && (hAsync("div", { key: '59cbdb9c4195074e03310b65a88b4bafd74f9916', class: "duet-hero-back" }, hAsync("duet-button", { key: 'ce17a681e39b9ad5c21edec2472175919f68b02f', 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, {
13188
13359
  label: this.processedBack.label,
13189
13360
  href: this.processedBack.href,
13190
13361
  id: this.processedBack.id,
13191
13362
  analyticsId: this.processedBack.analyticsId,
13192
- }) }, this.processedBack.label))), (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (hAsync("duet-icon", { key: 'f1afc26bae892d9ae01824cae17226859bcb2156', class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })), hAsync("div", { key: '8ce3263c60dc312e31098663adadec75d34c9e0e', class: { "duet-hero-text": true }, part: "duet-hero-text" }, (this.preHeading || this.hasPreHeadingSlot) && (hAsync("duet-paragraph", { key: 'a9faf36bb7d72156356b527ef585f4db2f07885f', 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: '10e35d0acadfbe28c7c3c9a5725190c00cc35214', name: "badge" }), (this.heading || this.hasHeadingSlot) && (hAsync("duet-heading", { key: 'd289ee15b7e8ae4e821195252e132ba6dfd4bb13', 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: '66f747db21ef3d390d01c78ff7b05879a4d435c5', 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: 'a61351c8a3463e0d7b3881d4ed2eb430a4d708f8', name: "subheading" }))), this.description && (hAsync("duet-paragraph", { key: '5e17ebff3513457595a670b8b180ad4c900bb5ac', theme: this.theme, color: textColor, variation: "intro" }, this.description)), (this.variation === "gray" || this.variation === "minimal") && this.processedListItems && (hAsync("duet-list", { key: '7cb299e23a2062bdf5a7831891b9a3590ad51ad5', 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: '132f4b0f22736d84217d2ef92fb137bb37ae1bfa', 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: 'ba4d8449b00fe95aa8e9e2b4c0f43143e851c44f' })), (this.variation === "gray" || this.variation === "minimal") && this.processedActions && (hAsync("div", { key: 'da7c7c2652fe88ee7a097e696e56c301d8d813b9', 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 &&
13363
+ }) }, this.processedBack.label))), (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (hAsync("duet-icon", { key: '191763dfcef22bcd3ccd7b8ac096ae6446de2d98', class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })), hAsync("div", { key: '7ee11a778839f281ce31673e60f4923ff223e3ac', class: { "duet-hero-text": true }, part: "duet-hero-text" }, (this.preHeading || this.hasPreHeadingSlot) && (hAsync("duet-paragraph", { key: '7d7f43ba3e592cbad30f8f28000ff361209bf443', 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: 'e73727e5aa7fad6aaaceabcf6f81c6572f0a15a9', name: "badge" }), (this.heading || this.hasHeadingSlot) && (hAsync("duet-heading", { key: '5884aecc75704d8dccc6c709a6768ddd578c4dde', 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: '763778e5026dbfa90ef3e68f0f1b7d037043b88d', 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: '9588038687bc9dfcb10a04b5e5cdaa6e3ef253de', name: "subheading" }))), this.description && (hAsync("duet-paragraph", { key: 'f0d60545403dfcc453d79aa1bfdd5582b876ae49', theme: this.theme, color: textColor, variation: "intro" }, this.description)), (this.variation === "gray" || this.variation === "minimal") && this.processedListItems && (hAsync("duet-list", { key: '7006a276c36ca7001df5c93d6fc3e792f8a07169', 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: '2954e77b3dde7b49573c25f1566d5f820c1dea3b', 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: '87703efb26e4376a71a692aa444988dacbf45d68' })), (this.variation === "gray" || this.variation === "minimal") && this.processedActions && (hAsync("div", { key: '92123389406d8b37e76d0305fb7a2e1d194ce1d4', 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 &&
13193
13364
  this.variation !== "image" &&
13194
13365
  !campaignOrSection &&
13195
13366
  this.variation !== "product" &&
13196
- this.variation !== "content" && hAsync("div", Object.assign({ key: 'b02c3a2b4e9722c7fc64b62e708c2d69d668b5a7', class: "duet-hero-image", style: styles }, bgImgA11yAttrs)), hAsync("slot", { key: 'a8869163ed1e35a8987e126305221199705f4a88', name: "bottom" }))));
13367
+ this.variation !== "content" && (hAsync("div", { key: 'cd09b6b83414a647857f014ddd08f9b49b4d122a', class: "duet-hero-image" }, hAsync(DuetPicture, Object.assign({ key: '68b91f0d9db476f3aa31c63b2a04465705e61658' }, getPictureSource(imageClass))))), hAsync("slot", { key: '8f23feb29e40591b85303a1864fb5736274b7596', name: "bottom" }))));
13197
13368
  }
13198
13369
  get element() { return getElement(this); }
13199
13370
  static get watchers() { return {
@@ -13230,6 +13401,8 @@ class DuetHero {
13230
13401
  "imageSize": [1, "image-size"],
13231
13402
  "imagePosition": [1, "image-position"],
13232
13403
  "imageAlt": [1, "image-alt"],
13404
+ "imagePriority": [1, "image-priority"],
13405
+ "sources": [1],
13233
13406
  "variation": [1],
13234
13407
  "back": [8],
13235
13408
  "listItems": [8, "list-items"],
@@ -13361,11 +13534,11 @@ class DuetIcon {
13361
13534
  : {};
13362
13535
  const iconStyles = Object.assign({}, iconRotationStyles);
13363
13536
  const shapeStyle = this.shape === "brand-rotated" ? "duet-icon-shape-brand" : `duet-icon-shape-${this.shape}`;
13364
- return (hAsync(Host, { key: 'f6a74ccabd59055d22eec3654bde9c81fd4a9ce3', class: {
13537
+ return (hAsync(Host, { key: '4165c86903dae730023be910be36389c7151045d', class: {
13365
13538
  "duet-m-0": this.margin === "none",
13366
13539
  "duet-icon-has-outline": !!this.outline,
13367
13540
  "duet-icon-has-background": !!this.background,
13368
- } }, hAsync("span", { key: 'f2ea10e9ec8459d5a5995781e193c6d8df7fb1ef', "aria-hidden": "true", style: styles, class: {
13541
+ } }, hAsync("span", { key: '9efda9e15441290db9c499f59fc3f4feed86e5b2', "aria-hidden": "true", style: styles, class: {
13369
13542
  "duet-icon": true,
13370
13543
  "duet-theme-turva": this.theme === "turva",
13371
13544
  "duet-theme-default": this.theme === "default",
@@ -13374,7 +13547,7 @@ class DuetIcon {
13374
13547
  [shapeStyle]: true,
13375
13548
  rotated: this.shape === "brand-rotated" && this.theme !== "turva",
13376
13549
  "duet-icon-not-responsive": !this.responsive,
13377
- } }, hAsync("span", { key: '3d93b31d1831fa77b71a5f574a38d838636c7757', "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 }))));
13550
+ } }, hAsync("span", { key: 'a59c6e8741e859747f51863e7677de1f95e71b29', "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 }))));
13378
13551
  }
13379
13552
  get element() { return getElement(this); }
13380
13553
  static get watchers() { return {
@@ -13452,11 +13625,11 @@ class DuetIndicator {
13452
13625
  inheritGlobalTheme(this);
13453
13626
  }
13454
13627
  render() {
13455
- return (hAsync(Host, { key: '6c412435545134515ed6bb4eb8f5e1ec8701dce7' }, hAsync("span", { key: 'f7c0f6b5019c3d9abcd01b8da701ad123910b5b3', class: {
13628
+ return (hAsync(Host, { key: '329e985ec026dde828ee0e4f896bbbf68054a4ce' }, hAsync("span", { key: '688c53ea00e20e7c2aa612ed6cdaede9a83655f9', class: {
13456
13629
  "duet-indicator": true,
13457
13630
  [`duet-indicator-${this.variation}`]: true,
13458
13631
  "duet-theme-turva": this.theme === "turva",
13459
- } }), hAsync("duet-visually-hidden", { key: 'c4ceeb86a4ab008a251f1ce9f4f6271c3fab73ef' }, this.getAccessibleLabel())));
13632
+ } }), hAsync("duet-visually-hidden", { key: '37a42c32af9d6d46946d30239592a4794e16de93' }, this.getAccessibleLabel())));
13460
13633
  }
13461
13634
  get element() { return getElement(this); }
13462
13635
  static get style() { return duetIndicatorCss; }
@@ -13566,6 +13739,7 @@ class DuetInput {
13566
13739
  this.topCaptionPlaceholderId = createID("DuetCaptionPlaceholderTop");
13567
13740
  this.chipCountId = createID("DuetInputChipCount");
13568
13741
  this.errorId = createID("DuetError");
13742
+ this.maxlengthAnnouncementKey = 0;
13569
13743
  this.disallowPatternRegex = null;
13570
13744
  this.clearLabel = {
13571
13745
  en: "Clear",
@@ -13602,6 +13776,11 @@ class DuetInput {
13602
13776
  fi: "valittu",
13603
13777
  sv: "valt",
13604
13778
  };
13779
+ this.maxlengthReachedLabel = {
13780
+ en: "This field has a maximum length of {max} characters. Limit reached.",
13781
+ fi: "Tämän kentän enimmäispituus on {max} merkkiä. Raja on saavutettu.",
13782
+ sv: "Det här fältet har en maximal längd på {max} tecken. Gränsen är nådd.",
13783
+ };
13605
13784
  /**
13606
13785
  * State() variables
13607
13786
  */
@@ -13611,6 +13790,10 @@ class DuetInput {
13611
13790
  */
13612
13791
  this.isFocused = false;
13613
13792
  this._accessiblePopup = undefined;
13793
+ /**
13794
+ * Text announced to screen readers when the maxlength limit is reached.
13795
+ */
13796
+ this.maxlengthAnnouncement = "";
13614
13797
  /**
13615
13798
  * Indicates the id or a string of space seperated ids of a component(s) that describes the input.
13616
13799
  */
@@ -13741,9 +13924,22 @@ class DuetInput {
13741
13924
  * Component event handling.
13742
13925
  */
13743
13926
  this.onInput = (ev) => {
13744
- if (this.maxlength && this.nativeInput.value.length > this.maxlength) {
13927
+ var _a;
13928
+ // In addition to input event, maxlength handling uses also keyDown and paste events as input event may not be
13929
+ // triggered when entry is truncated by the browser.
13930
+ if (this.maxlength) {
13931
+ const wasAtMaxlength = (((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) || 0) >= this.maxlength;
13932
+ const nativeLength = this.nativeInput.value.length;
13745
13933
  // Android doesn't honor maxlength
13746
- this.nativeInput.value = this.nativeInput.value.slice(0, this.maxlength);
13934
+ const inputOverflow = nativeLength > this.maxlength;
13935
+ if (inputOverflow) {
13936
+ this.nativeInput.value = this.nativeInput.value.slice(0, this.maxlength);
13937
+ }
13938
+ const limitJustReached = !wasAtMaxlength && nativeLength === this.maxlength;
13939
+ const limitExceededWhileFull = wasAtMaxlength && inputOverflow;
13940
+ if (limitJustReached || limitExceededWhileFull) {
13941
+ this.handleMaxlengthLimitReached();
13942
+ }
13747
13943
  }
13748
13944
  if (this.disallowPatternRegex) {
13749
13945
  cleanValue(this.nativeInput, this.disallowPatternRegex);
@@ -13789,6 +13985,30 @@ class DuetInput {
13789
13985
  component: "duet-input",
13790
13986
  });
13791
13987
  };
13988
+ this.onInputKeyDown = (ev) => {
13989
+ if (this.maxlength && isCharacterInsertKey(ev) && this.isAtMaxlengthWithoutSelection()) {
13990
+ this.handleMaxlengthLimitReached();
13991
+ }
13992
+ };
13993
+ this.onInputPaste = () => {
13994
+ if (this.maxlength && this.isAtMaxlengthWithoutSelection()) {
13995
+ this.handleMaxlengthLimitReached();
13996
+ }
13997
+ };
13998
+ this.isAtMaxlengthWithoutSelection = () => {
13999
+ const input = this.nativeInput;
14000
+ const inputIsWithoutSelection = input.selectionStart === input.selectionEnd;
14001
+ const inputIsAtMaxlength = input.value.length >= this.maxlength;
14002
+ return inputIsWithoutSelection && inputIsAtMaxlength;
14003
+ };
14004
+ this.handleMaxlengthLimitReached = () => {
14005
+ clearTimeout(this.maxlengthAnnouncementTimeoutId);
14006
+ this.maxlengthAnnouncement = "";
14007
+ this.maxlengthAnnouncementTimeoutId = setTimeout(() => {
14008
+ this.maxlengthAnnouncementKey++;
14009
+ this.maxlengthAnnouncement = this.maxlengthReachedLabel[this.language].replace("{max}", String(this.maxlength));
14010
+ }, 300);
14011
+ };
13792
14012
  /**
13793
14013
  * Private functions
13794
14014
  */
@@ -14068,10 +14288,15 @@ class DuetInput {
14068
14288
  if (this.type === "password") {
14069
14289
  return "off";
14070
14290
  }
14291
+ const tokens = this.autoComplete.split(/\s+/);
14071
14292
  // If attribute includes "email", e.g. "work email", don't overwrite it
14072
- if (this.type === "email" && this.autoComplete !== "off" && !this.autoComplete.includes("email")) {
14293
+ if (this.type === "email" && this.autoComplete !== "off" && !tokens.includes("email")) {
14073
14294
  return "email";
14074
14295
  }
14296
+ // If attribute includes "tel", e.g. "mobile tel", don't overwrite it
14297
+ if (this.type === "tel" && this.autoComplete !== "off" && !tokens.includes("tel")) {
14298
+ return "tel";
14299
+ }
14075
14300
  return this.autoComplete;
14076
14301
  }
14077
14302
  /**
@@ -14138,7 +14363,7 @@ class DuetInput {
14138
14363
  this.type !== "password" &&
14139
14364
  this.type !== "time" &&
14140
14365
  this.variation !== "button";
14141
- return (hAsync(Host, { key: '776ea6ee90a20ff356574b64890a7b98d9947e6c', class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" }, onKeyUp: e => this.keyHandler(e) }, this.type === "time" && (hAsync("duet-visually-hidden", { key: 'a56addb34f4bcf57a59e060921e3dacab36a98b7', "aria-live": "polite", "aria-atomic": "true" }, selectedTime ? `${this.timeAnnouncement[this.language]} ${selectedTime.toLocaleTimeString()}` : "")), hAsync("div", { key: '04447fa85e1470adbfc2307f7b2fd5758454e0b7', class: {
14366
+ 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: {
14142
14367
  "duet-input-container": true,
14143
14368
  "duet-theme-turva": this.theme === "turva",
14144
14369
  [`duet-input-variation-${this.variation}`]: true,
@@ -14155,11 +14380,11 @@ class DuetInput {
14155
14380
  "has-prefix": !!this.fieldPrefix,
14156
14381
  "has-suffix": !!this.fieldSuffix,
14157
14382
  disabled: this.disabled,
14158
- } }, hAsync("div", { key: 'f5f3de4654fac36f5ffb7e0302ffccb56263728a', class: "duet-input-label-container" }, hAsync(DuetInternalLabel, { key: '566d4df4f7cfe09b50f4aedaf342cef70e7fc80a', 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: '7560dd36ade42746228061727b2fb2b38dce7ed6', class: "duet-input-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label, theme: this.theme === "turva" ? "turva" : "default" }, this.tooltip)), hAsync("slot", { key: '9b8a15f4f79269696a24c9fd989186f95dfc1e62', name: "tooltip" })), this.caption && (hAsync("duet-caption", { key: 'c425ac21ec5942adfe5a4e48ae20080ab661bf4d', id: this.topCaptionId, size: "medium" }, this.caption)), hAsync("div", { key: 'ac98b112529396687ec21a938c55ce1b3d86f091', class: {
14383
+ } }, 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: {
14159
14384
  "duet-input-relative": true,
14160
14385
  "duet-theme-turva": this.theme === "turva",
14161
14386
  "has-error": !!this.error,
14162
- } }, this.placeholder && this.echoPlaceholder && (this.value || this.type === "time") && (hAsync("duet-caption", { key: 'db332864c2b97112aa2b9347da3d6c2468f77b0b', id: this.topCaptionPlaceholderId, class: "duet-input-placeholder", margin: "none", size: "small" }, this.placeholder)), this.chips && (hAsync("duet-visually-hidden", { key: 'e92de63c87071f00143ee9db06c94361970b704a', id: this.chipCountId }, ", ", `${this.getAllChips().length} ${getLocaleString(this.chipsSelectedDesriptionLabel)}`, ",")), this.variation === "button-left" && hAsync("slot", { key: '274e2fe6a604c30aa879ac72a33154f1fb3c8fc9', name: "button-left" }), this.fieldPrefix && (hAsync("span", { key: '2bd5154e89d13c7562283684a3087c3c48481fb9', class: "input-adornment prefix", id: this.prefixId }, this.fieldPrefix)), hAsync("input", Object.assign({ key: '0b77d2e90b3acdb1452d73ad2a736e924200009a', ref: input => (this.nativeInput = input), onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, type: this.getInputType(), class: {
14387
+ } }, 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: {
14163
14388
  "duet-input": true,
14164
14389
  disabled: this.disabled,
14165
14390
  "is-number": this.component === "number",
@@ -14167,17 +14392,17 @@ class DuetInput {
14167
14392
  "after-chip": this.getAllChips().length > 0,
14168
14393
  "align-right": this.inputAlign === "right",
14169
14394
  [`input-padding-${this.inputPadding}`]: true,
14170
- }, 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.fieldSuffix && (hAsync("span", { key: '00f86f44a74b91127a1c11b696b51983d62a7c28', class: "input-adornment suffix", id: this.suffixId }, this.fieldSuffix)), !this.value && hasInputIcon && (hAsync("div", { key: 'f1d531cc26ab9de06b90e38a4b790069fe920d88', class: "duet-input-icon" }, hAsync("duet-icon", { key: 'fb14ea462e583a24e6bbd0337666dfa4ef9c9a1a', margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.clear && this.value && (hAsync("div", { key: 'f2e415cb5d8c5eaa0bbb1bb0cad942d8a976e9a5', class: {
14395
+ }, 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: {
14171
14396
  "duet-input-clear-icon": true,
14172
14397
  "duet-input-clear-icon-single": !hasInputIcon,
14173
14398
  "duet-input-clear-icon-double": !!this.icon,
14174
14399
  "duet-input-clear-icon-button": this.variation === "button",
14175
14400
  [`input-padding-${this.inputPadding}`]: true,
14176
- } }, hAsync("button", { key: '7046a5f2c94bf429f4fc46dd4a9d590171975f04', onClick: this.handleClearClick, id: this.clearId, "aria-label": this.clearLabel[this.language], "aria-keyshortcuts": "Escape" }, hAsync("duet-icon", { key: 'd33b0603197b14c98b4b8d76773f0c2325d365a9', margin: "none", size: "medium", name: "action-clear-input", color: "currentColor" })))), this.icon && this.variation !== "button" && (hAsync("div", { key: 'f5b6861e2cd8f9affe011fc08700092296ef50c8', class: "duet-input-icon" }, hAsync("duet-icon", { key: 'af0f1a819e505da950eec079950eb2a6c13c5254', margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.variation === "button" && hAsync("slot", { key: 'db2a27e9e1683615a207b34f63a2981e0bbfe3e8', name: "button" }), this.variation === "revealable" && (hAsync("duet-button", { key: 'f2c727cd4f07ea799ad033e737f490d14a285ded', ref: button => (this.togglePasswordRevealedButton = button), onBlur: this.onBlur, onFocus: this.onFocus, onClick: this.togglePasswordRevealed, icon: this.isPasswordRevealed ? "action-hide" : "action-show", accessibleLabel: this.isPasswordRevealed
14401
+ } }, 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
14177
14402
  ? this.hidePasswordLabel[this.language]
14178
- : 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: 'd240447d7431097c99bd50fa6241a48d87b48ae0' }, hAsync("span", { key: '47d29c787f119d0dae23436a69b192855b7bca63', "aria-live": "polite" }, this.isPasswordRevealed
14403
+ : 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
14179
14404
  ? this.passwordShownAriaAnnouncement[this.language]
14180
- : this.passwordHiddenAriaAnnouncement[this.language]))), hAsync("slot", { key: 'cd872ef0355479149e3b926e98e33ebccc1d0faa' })), hAsync("span", { key: 'bbbbc5e7b7b1ddd8064bdda229ad110686075dd2', class: "duet-input-help", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && hAsync("span", { key: '91876b01063f2de6147210b06daad0e5a3c71b3c', class: "duet-input-error" }, this.error)))));
14405
+ : 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)))));
14181
14406
  }
14182
14407
  get element() { return getElement(this); }
14183
14408
  static get watchers() { return {
@@ -14245,6 +14470,7 @@ class DuetInput {
14245
14470
  "isPasswordRevealed": [32],
14246
14471
  "isFocused": [32],
14247
14472
  "_accessiblePopup": [32],
14473
+ "maxlengthAnnouncement": [32],
14248
14474
  "setFocus": [64],
14249
14475
  "resetCursor": [64],
14250
14476
  "clearInput": [64],
@@ -14390,24 +14616,24 @@ class DuetLayout {
14390
14616
  * Always the last one in the class.
14391
14617
  */
14392
14618
  render() {
14393
- return (hAsync(Host, { key: '7796cda5c4db65768c100838b80382b318b3ac73', class: {
14619
+ return (hAsync(Host, { key: 'c3ba619c0c3088257b425ba8f5022ebef33c1100', class: {
14394
14620
  center: this.center,
14395
14621
  "duet-middle": this.middle,
14396
14622
  "duet-ie": isInternetExplorer(),
14397
- } }, hAsync("div", { key: '1b4f06b0ccaf2a93e30cb57085b3260c9d138d1f', class: { "duet-layout-wrapper": true, "duet-m-0": this.margin === "none" } }, this.hasTop && (hAsync("div", { key: '9b64258743ef0f5802e2853b2251788fc3c7f02d', class: {
14623
+ } }, hAsync("div", { key: 'd627f63579dfb957bf3abe17191e8a8e943f0aae', class: { "duet-layout-wrapper": true, "duet-m-0": this.margin === "none" } }, this.hasTop && (hAsync("div", { key: '4586ff77f2ef4209020a2401eef63273527a2e27', class: {
14398
14624
  "duet-layout-top": true,
14399
14625
  "duet-center": this.center,
14400
- } }, hAsync("div", { key: '8de64147ed6cd7c0942f5f477da01c1ee4a8a0ce', class: "duet-layout-top-wrapper" }, hAsync("slot", { key: '5b3dcec144e1e7a7707f52b18b8b1dc1d3cb13e7', name: "top" })))), hAsync("div", { key: '57ef787cdd754a6749f76ce151ed15bb779b110b', class: {
14626
+ } }, hAsync("div", { key: 'daebb47e73054b59bb0459dc3327e0e60b17ebbe', class: "duet-layout-top-wrapper" }, hAsync("slot", { key: '339fac00b53c0b4f532cfc77d5743217b5f72057', name: "top" })))), hAsync("div", { key: 'bbf287d1f0aa701c40553a426b7a77b0a1c24c17', class: {
14401
14627
  "duet-layout": true,
14402
14628
  "has-sidebar": this.hasSidebar,
14403
14629
  "duet-center": this.center,
14404
14630
  [`padding-${this.paddingBreakpoint}`]: !!this.paddingBreakpoint,
14405
- } }, hAsync("main", { key: '11712887cb73595787e00eb4ae51be583e222d69', class: "duet-main" }, this.hasPageHeading && hAsync("slot", { key: '024128c99761e9ce2df803f1a7af98da0bb39d48', name: "page-heading" }), hAsync("slot", { key: '5ec1793d46d607633b527d9497e9c160f1879f4a', name: "main" })), this.hasSidebar && (hAsync("aside", { key: 'c68315f8b323267fabd94fb2f45fa29294c6e17a', class: "duet-sidebar" }, hAsync("div", { key: '5222f4a3bc1b36710f1efc85cd09c31cd676d661', class: {
14631
+ } }, 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: {
14406
14632
  "duet-sidebar-container": true,
14407
14633
  "has-tabs": this.tabs,
14408
14634
  sticky: this.sticky,
14409
14635
  [this.stickyDistance]: this.sticky,
14410
- } }, hAsync("slot", { key: '2c51db0affb26210fbbf38b7776d66f64c530f6f', name: "sidebar" }))))))));
14636
+ } }, hAsync("slot", { key: 'b8b30e8b29bb87ea6a0c0891ca5f841d0921f72b', name: "sidebar" }))))))));
14411
14637
  }
14412
14638
  get element() { return getElement(this); }
14413
14639
  static get style() { return duetLayoutCss; }
@@ -14667,10 +14893,10 @@ class DuetLink {
14667
14893
  const Tag = !this.url && this.variation !== "default" ? "button" : "a";
14668
14894
  const role = !this.url && this.variation === "default" ? "button" : null;
14669
14895
  const isButton = Tag === "button";
14670
- return (hAsync(Host, { key: '63ea212c967fed116f28d316bf7b4dc6f7bed88d', class: {
14896
+ return (hAsync(Host, { key: '1cac563de2598ea4f66a666a8e9ba85d74ef4d29', class: {
14671
14897
  [`duet-link-${this.variation}`]: true,
14672
14898
  "duet-m-0": this.margin === "none",
14673
- } }, hAsync(Tag, { key: 'c799db0446fbca186340c781f23ccecaf58e4336', href: this.url, class: {
14899
+ } }, hAsync(Tag, { key: '0ff450feb862488c1bfaf626a234559904f301a1', href: this.url, class: {
14674
14900
  "duet-link": true,
14675
14901
  "duet-link-is-external": this.external,
14676
14902
  "duet-link-is-download": !!this.download,
@@ -14860,7 +15086,7 @@ class DuetList {
14860
15086
  * Always the last one in the class.
14861
15087
  */
14862
15088
  render() {
14863
- return (hAsync("dl", { key: '8b5a83409655ee3c79b0d076851d5f35ac038766', class: { "duet-list-component": true, "duet-m-0": this.margin === "none" } }, hAsync("slot", { key: 'f9e3dfbf22a5055c0ee910c4347f2d69b7971d59' })));
15089
+ return (hAsync("dl", { key: 'c83e43f3d82e32198e0a5d45a0812b8358f6be07', class: { "duet-list-component": true, "duet-m-0": this.margin === "none" } }, hAsync("slot", { key: '7a65328f555edf10f4da02166eebcfcf8b8f68f7' })));
14864
15090
  }
14865
15091
  get element() { return getElement(this); }
14866
15092
  static get watchers() { return {
@@ -14926,7 +15152,7 @@ class DuetListItem {
14926
15152
  * Always the last one in the class.
14927
15153
  */
14928
15154
  render() {
14929
- return (hAsync(Host, { key: '2fc646c6ec771484ba741b13db4e05af02190613', class: {
15155
+ return (hAsync(Host, { key: 'b7809fbe9217be4d6986d8124e5d6739e8e5c506', class: {
14930
15156
  "duet-theme-turva": this.theme === "turva",
14931
15157
  "duet-no-stacking": !this.responsive,
14932
15158
  "duet-list-item-breakpoint-x-small": this.breakpoint === "x-small",
@@ -14934,7 +15160,7 @@ class DuetListItem {
14934
15160
  "duet-list-item-breakpoint-medium": this.breakpoint === "medium",
14935
15161
  "duet-list-item-breakpoint-large": this.breakpoint === "large",
14936
15162
  "duet-list-item-breakpoint-x-large": this.breakpoint === "x-large",
14937
- } }, hAsync("dt", { key: 'a6f04cd679b723dec94b73f49a1f01e765cc2c2c' }, hAsync("slot", { key: '3406e6b4499bc4e1ccbb65c8c20861a940058120', name: "label" })), hAsync("dd", { key: '12904de4492dd50e266c323d2d038a514e4ed4f1' }, hAsync("slot", { key: '1b5922436da8b77d4687c2fe55e7f58c5af37647', name: "value" }))));
15163
+ } }, hAsync("dt", { key: 'b359df218ae6b2e1240b125d8d81a3555f57b33f' }, hAsync("slot", { key: '778f57296c84f300810462d15a42eeed8a1ac03a', name: "label" })), hAsync("dd", { key: 'f28fc64caa353dbc6e042a094ebad697146a0ffa' }, hAsync("slot", { key: '734ef1bfe403082bc681b151d842e45c4341d3cb', name: "value" }))));
14938
15164
  }
14939
15165
  get element() { return getElement(this); }
14940
15166
  static get style() { return duetListItemCss; }
@@ -15072,7 +15298,7 @@ class DuetLogo {
15072
15298
  */
15073
15299
  render() {
15074
15300
  const TagName = this.href ? "a" : "div";
15075
- return (hAsync(Host, { key: 'e210c4ffcf033bc1f53fb90ae2d1a9c98c8f61f6', class: { "duet-m-0": this.margin === "none" } }, hAsync(TagName, { key: 'cabf21f4898aab94d08a9de35222313124a6645c', href: this.href, ref: link => (this.nativeLink = link), "aria-label": this.accessibleLabel, class: {
15301
+ 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: {
15076
15302
  "duet-logo": true,
15077
15303
  [this.size]: true,
15078
15304
  "duet-logo-inverse": this.inverse,
@@ -15232,17 +15458,17 @@ class DuetMenuBar {
15232
15458
  render() {
15233
15459
  const slideoutAvailable = document.querySelectorAll("duet-slideout").length > 0;
15234
15460
  const isUsedAsAdditionalHorizontalNav = slideoutAvailable && !this.logo;
15235
- return (hAsync(Host, { key: '0ebf784bb990ec8bd12412e38dd2ba2a78fb52b7' }, hAsync("nav", { key: '64c163dbdfb5179dae0026489a795e2834141a8a', class: {
15461
+ return (hAsync(Host, { key: '8e72a749ab5f9a2b180ea11670931e4a5f1dfc48' }, hAsync("nav", { key: '13aa3dead3343cbd11debfec1c4e4c7b6d58ea41', class: {
15236
15462
  "duet-menu-bar": true,
15237
15463
  "duet-theme-turva": this.theme === "turva",
15238
15464
  "horizontal-nav": isUsedAsAdditionalHorizontalNav,
15239
15465
  "duet-menu-bar-slim": !this.centerSlotUsed,
15240
15466
  hidden: this.hidden && this.hideOnScroll,
15241
15467
  bottom: this.onBottom,
15242
- }, "aria-label": this.accessibleLabel }, hAsync("div", { key: 'f98ccc695bc530e42a1301dfd641cc370657db84', class: "top" }), hAsync("div", { key: 'd642b8235270592ef2fe2f8a0e09efc1f7c6642a', class: { container: true, "with-info-text": !!this.logoInfoText && !this.centerSlotUsed }, ref: el => (this.container = el), onScroll: () => this.scrollbarCheck() }, this.logo && (hAsync("div", { key: '0af4e7323cad0bd980ed583c1fca8d84d8bb91e5' }, hAsync("duet-logo", { key: 'f6c4faec9956d31df570be2e37dcff785eb716e3', 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: 'b32ee7cfe7ffdffe9daadb6a3e134fbd8f1a979a', 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: '2051733dc6d65e369f731cc2060cc7ffd64433a9', 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: '3e4aabaf4fe328670b3c0aac894219ed8d8948b8', class: {
15468
+ }, "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: {
15243
15469
  "duet-logo-info-text": true,
15244
15470
  "duet-theme-turva": this.theme === "turva",
15245
- } }, this.logoInfoText)))), hAsync("div", { key: '69a656950f585ea5a403c2cbef0fe43a187c3fb9', class: "list center", role: "list" }, hAsync("div", { key: 'c09b81f8d1445a9a6e160a17e8b2ae8385e48c32', class: "more-left", hidden: !this.leftMoreVisible, role: "presentation" }), hAsync("slot", { key: '73b85aa0012107a492b4193248889d19dc4f0284', name: "center" }), hAsync("div", { key: 'd63135139588f5edde15aa4fe06db312f81c2d16', class: "more-right", hidden: !this.rightMoreVisible, role: "presentation" })), hAsync("div", { key: '2e226edcf43265cfe66c6d593b852e22bc0b184c', class: "list right", role: "list" }, hAsync("slot", { key: 'ff09b9aca19634847dec1ae050e29378cffee6eb', name: "right" }))), hAsync("div", { key: '037e499130954d66e9a319da25bbf134fa53acec', class: "bottom" }))));
15471
+ } }, 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" }))));
15246
15472
  }
15247
15473
  get element() { return getElement(this); }
15248
15474
  static get style() { return duetMenuBarCss; }
@@ -15321,10 +15547,10 @@ class DuetMenuBarButton {
15321
15547
  * Always the last one in the class.
15322
15548
  */
15323
15549
  render() {
15324
- return (hAsync(Host, { key: '27fb2c633e88b04b7397830d15c881240d29a91b', role: "listitem", onfocus: () => this.setFocus() }, hAsync("button", { key: '29791cfd8473dc9407238460bcb1e169f183f074', ref: button => (this.nativeButton = button), class: {
15550
+ return (hAsync(Host, { key: 'c3137b7868b438a2d3f0769ecfcd876c39b6b762', role: "listitem", onfocus: () => this.setFocus() }, hAsync("button", { key: '2a1b919990d487b374479d4d71ab1ab271c52d63', ref: button => (this.nativeButton = button), class: {
15325
15551
  "duet-menu-bar-button": true,
15326
15552
  "duet-theme-turva": this.theme === "turva",
15327
- }, "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: 'e037dac1385bef39b070602ba5bfb278470a49dd', class: "menu-bar-button-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), hAsync("slot", { key: '95fd0aef38328dece2756ceed18c904c0c447d76' }))));
15553
+ }, "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: 'ccf0897bfd45251012c0e9f66d492cd2c51521f8', class: "menu-bar-button-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), hAsync("slot", { key: '1d5c21e0880c7cac3313ada7623ba81e2eea9bdf' }))));
15328
15554
  }
15329
15555
  get element() { return getElement(this); }
15330
15556
  static get style() { return duetMenuBarButtonCss; }
@@ -15414,17 +15640,17 @@ class DuetMenuBarDropdown {
15414
15640
  * Always the last one in the class.
15415
15641
  */
15416
15642
  render() {
15417
- return (hAsync(Host, { key: 'c46c77a3b37d72d4f026c5027a8bed6dc33621c5', role: "listitem" }, hAsync("div", { key: 'bed24491075bfc2c5dcf225c5262a1af76e7a34f', class: {
15643
+ return (hAsync(Host, { key: '7c841d8d215853a62a92f5730eed29b2b7552e5f', role: "listitem" }, hAsync("div", { key: '7021c554d6aafa114e225ebd328c9d1aa400a82f', class: {
15418
15644
  "duet-menu-bar-dropdown": true,
15419
15645
  "duet-theme-turva": this.theme === "turva",
15420
15646
  active: this.open,
15421
15647
  [`duet-menu-bar-dropdown--slot-${this.getVariant()}`]: true,
15422
- } }, hAsync("button", { key: 'bee18f72f97fe86364cdf6afa685602feea7f694', 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: {
15648
+ } }, hAsync("button", { key: 'ed8b6ec296f51a222f37a11a9f979df8efb83525', 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: {
15423
15649
  active: this.open,
15424
- }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (hAsync("duet-icon", { key: '9b5beb13681712fe262c14ba74de6b30ab481dff', class: "menu-bar-dropdown-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), hAsync("div", { key: 'debea3ea41d1b4358dbf774b54558d8921b92006', class: "label" }, hAsync("slot", { key: 'fffcc54cdfb0032577c066e374c3465eafac3206', name: "label" }), hAsync("duet-icon", { key: 'a36c591292ca2c2b445e04f53721f788a4005934', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { key: '3794aa5366239e4db4286303ef75f30778e3b911', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
15650
+ }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (hAsync("duet-icon", { key: '0cb68c07d1b89f968757595fde07aff18be326a3', class: "menu-bar-dropdown-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), hAsync("div", { key: '014d839c7407fe48b8139e8d5b4b61fff7e2f9de', class: "label" }, hAsync("slot", { key: '45f00327bfdb72f879469ef815cf73f044d331d0', name: "label" }), hAsync("duet-icon", { key: 'fc550998f3a736271007766634b153838849de45', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { key: 'fbb77489a38cdd3c7e6edb70659898600db01a14', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
15425
15651
  items: true,
15426
15652
  hidden: !this.open,
15427
- } }, hAsync("slot", { key: '4a0657ee88ab885d6e177b654e0e9231d0027ec1' })))));
15653
+ } }, hAsync("slot", { key: 'f943770b922349bf805d0aaaadf47e70d0db10d4' })))));
15428
15654
  }
15429
15655
  get element() { return getElement(this); }
15430
15656
  static get style() { return duetMenuBarDropdownCss; }
@@ -15491,11 +15717,11 @@ class DuetMenuBarDropdownLink {
15491
15717
  * Always the last one in the class.
15492
15718
  */
15493
15719
  render() {
15494
- return (hAsync(Host, { key: '44c02bb0c92ca03579e70dc6f79178099f38de61' }, hAsync("a", { key: '26b45ac19043800a070894afec67517d051b6ccc', class: {
15720
+ return (hAsync(Host, { key: '9aec16ee648442b0ffb731e612cc0a051f849e06' }, hAsync("a", { key: 'a879395faece3c5211eea56c497c45908969889d', class: {
15495
15721
  "duet-menu-bar-dropdown-link": true,
15496
15722
  [`duet-menu-bar-dropdown-link--slot-${this.getVariant()}`]: true,
15497
15723
  "duet-theme-turva": this.theme === "turva",
15498
- }, href: this.href, role: "menuitem", onKeyUp: e => this.handleEscape(e), "aria-label": this.accessibleLabel }, this.icon && (hAsync("duet-icon", { key: '4d481450931bbf089d2f6d5ee7076aca7c3978f1', theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), hAsync("slot", { key: 'b47043814429787c833949bac92bae95b2001419' }))));
15724
+ }, href: this.href, role: "menuitem", onKeyUp: e => this.handleEscape(e), "aria-label": this.accessibleLabel }, this.icon && (hAsync("duet-icon", { key: '2e6bed63404ffa961753c38929f9726240d8daf2', theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), hAsync("slot", { key: 'eecdd8e7217d2eaf1d08438b17a18a3a377b8332' }))));
15499
15725
  }
15500
15726
  get element() { return getElement(this); }
15501
15727
  static get style() { return duetMenuBarDropdownLinkCss; }
@@ -15581,11 +15807,11 @@ class DuetMenuBarItem {
15581
15807
  */
15582
15808
  render() {
15583
15809
  const TagName = this.url ? "a" : "button";
15584
- return (hAsync(Host, { key: '9feca792c6d12ed05344d17db4a5076ad037994e', role: "listitem" }, hAsync(TagName, { key: '5ab6813f5290c5f323713e6015a46330089d555a', target: !this.url ? null : this.external ? "_blank" : "_self", ref: element => (this.itemElement = element), class: {
15810
+ return (hAsync(Host, { key: '132d5bd2465b0d1d847c544579ff69c5229faf9a', role: "listitem" }, hAsync(TagName, { key: '486539812ce02259d1ee5e1366aa019371e59e5c', target: !this.url ? null : this.external ? "_blank" : "_self", ref: element => (this.itemElement = element), class: {
15585
15811
  "duet-menu-bar-item": true,
15586
15812
  "duet-theme-turva": this.theme === "turva",
15587
15813
  active: this.active,
15588
- }, 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: '7b6541e7b7cab53fedf815feebc683b9f122e323', class: "leading-icon", size: "auto", name: this.leadingIcon, margin: "none", theme: this.theme, color: "currentColor" })), hAsync("slot", { key: 'ab89cf87285d10e52798cd123c404acb69d6bf91' }), (this.trailingIcon || this.external) && (hAsync("duet-icon", { key: '6bc587bed959b634caf6b25db7f3374ed538151c', class: {
15814
+ }, 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: '9b6d8d303debd7037dde3c8af5780e937a180ed9', class: "leading-icon", size: "auto", name: this.leadingIcon, margin: "none", theme: this.theme, color: "currentColor" })), hAsync("slot", { key: 'd7a37a3a78860c03d9d0876f29382dbb066accf1' }), (this.trailingIcon || this.external) && (hAsync("duet-icon", { key: 'd0d12aa8778d8be71cb4323758932176c6fb48c7', class: {
15589
15815
  "trailing-icon": !!this.trailingIcon,
15590
15816
  "trailing-icon-arrow": this.trailingIcon === "action-arrow-down-small",
15591
15817
  "external-icon": !!this.external,
@@ -15650,11 +15876,11 @@ class DuetMenuBarLink {
15650
15876
  * Always the last one in the class.
15651
15877
  */
15652
15878
  render() {
15653
- return (hAsync(Host, { key: '044fd632f4ea61ecd3bbbb77e3c2d0eda50f16a4', role: "listitem" }, hAsync("a", { key: 'b910e6d15c696910ab231b49facb9cd3250d66c4', class: {
15879
+ return (hAsync(Host, { key: '858334fb783a2f4df99678148750056417235872', role: "listitem" }, hAsync("a", { key: '7429380cb4dd0764af78fb92f6036edcbc503fcb', class: {
15654
15880
  "duet-menu-bar-link": true,
15655
15881
  "duet-theme-turva": this.theme === "turva",
15656
15882
  active: this.active,
15657
- }, href: this.href, "aria-current": this.active ? "true" : "false", "aria-label": this.accessibleLabel }, this.icon && (hAsync("duet-icon", { key: '46ede326e61111856df4318b018a4128b7743658', class: "menu-bar-link-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), hAsync("slot", { key: '774a0d744c12e5d43783123c2d07d450a0ad0472' }))));
15883
+ }, href: this.href, "aria-current": this.active ? "true" : "false", "aria-label": this.accessibleLabel }, this.icon && (hAsync("duet-icon", { key: 'cbcbea291b31e18a928e0bc5ba3d9fade0a5be18', class: "menu-bar-link-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), hAsync("slot", { key: 'e3bdab3464edebc3009bb50436c82a94700b68e6' }))));
15658
15884
  }
15659
15885
  get element() { return getElement(this); }
15660
15886
  static get style() { return duetMenuBarLinkCss; }
@@ -15990,14 +16216,14 @@ class DuetModal {
15990
16216
  var _a, _b;
15991
16217
  const iconColor = postfixTheme("primary", this.theme);
15992
16218
  const closeColor = postfixTheme("secondary", this.theme);
15993
- const closingButton = (hAsync("div", { key: 'b61aef40272ef152a04b32009608462e6edbef70', class: "duet-modal-close" }, hAsync("duet-button", { key: '33eaf633dc95c400fc36c3d3c492ab09d4669eb5', 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 })));
15994
- return (hAsync("div", { key: '90cf02b79031ce0131f2dec7e4d92557de03678f', 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: {
16219
+ 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 })));
16220
+ 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: {
15995
16221
  "duet-modal-container": true,
15996
16222
  "duet-theme-turva": this.theme === "turva",
15997
16223
  "duet-modal-active": this.open,
15998
16224
  "duet-modal-slide-up": this.variation === "slide-up",
15999
16225
  "duet-modal-has-sticky-header": this.hasStickyHeader,
16000
- } }, hAsync("duet-overlay", { key: '8a3e89ba3597519bb8db927cf22e104ae4673de6', "z-index": "-1", visible: this.open, variation: this.variation === "loader" ? "white" : "default" }), hAsync("div", { key: 'b6bb8c2df5b032e0c0ac71938735caa11ad2533f', ref: modalInner => (this.modalInnerEl = modalInner), class: {
16226
+ } }, 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: {
16001
16227
  "duet-modal-inner": true,
16002
16228
  [this.size]: true,
16003
16229
  "duet-modal-slide-up": this.variation === "slide-up",
@@ -16008,22 +16234,22 @@ class DuetModal {
16008
16234
  this.closeModal(e);
16009
16235
  }
16010
16236
  }
16011
- } }, hAsync("div", { key: '155d1d6da0f2606cb31ef316f097852d7cdb7025', ref: modalContentEl => (this.modalContentEl = modalContentEl), "aria-live": this.accessibleAnnounceChanges === "all" ? "polite" : null, "aria-atomic": this.accessibleAnnounceChanges === "all" ? "true" : null, class: {
16237
+ } }, hAsync("div", { key: 'caa7a84911505b70ffe1e15ea73bd4489eac49e2', ref: modalContentEl => (this.modalContentEl = modalContentEl), "aria-live": this.accessibleAnnounceChanges === "all" ? "polite" : null, "aria-atomic": this.accessibleAnnounceChanges === "all" ? "true" : null, class: {
16012
16238
  "duet-modal": true,
16013
16239
  "duet-modal-has-sticky-header": this.hasStickyHeader,
16014
16240
  [this.size]: true,
16015
16241
  [this.variation]: true,
16016
- } }, this.gutterSize !== "none" && !this.hasStickyHeader && hAsync("duet-spacer", { key: 'acb1064c87210fd405931e54f517a74fffd1f838' }), this.hasStickyHeader ? (hAsync("div", { class: "duet-modal-sticky-header" }, closingButton, hAsync("slot", { name: "sticky-header" }))) : (closingButton), hAsync("div", { key: '602e0ef7ab4dcfb571b492b000d9287583462376', class: {
16242
+ } }, 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: {
16017
16243
  "duet-modal-body": true,
16018
16244
  "duet-modal-gutter-none": this.gutterSize === "none",
16019
16245
  "duet-modal-gutter-small": this.gutterSize === "small",
16020
16246
  "duet-modal-gutter-medium": this.gutterSize === "medium",
16021
16247
  "duet-modal-gutter-large": this.gutterSize === "large",
16022
- }, "aria-live": this.accessibleAnnounceChanges === "heading" ? "polite" : null, "aria-atomic": this.accessibleAnnounceChanges === "heading" ? "true" : null }, hAsync("div", { key: '17b2404b57b5a363c9e75a3c1d0c803805c9f124', class: "duet-modal-header" }, hAsync("span", { key: 'aad3dc7341703d4b5e1820e5560086a09ea01d73', class: "duet-modal-inner-slot-top" }, hAsync("slot", { key: 'f2704ee80a6a925a0ac2dba6f7ca5ffb66725d5c', name: "top" })), this.icon && hAsync("duet-icon", { key: '127d2a74dcecbc31a452318d8b491b8b720ed69d', name: this.icon, size: "xx-large", color: this.color || iconColor }), this.heading && (hAsync("duet-heading", { key: 'f7c9cd02320985bb5ede9e1bb87415349986e62c', "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: 'e6078337de87fc1f449347b1b8164a03b397efc9', class: "duet-modal-spinner" }, hAsync("duet-spinner", { key: '08ded544a2c7cd799d0492beacd599df3b7be785', size: "large", color: postfixTheme("primary", this.theme) }))), hAsync("div", { key: 'bf23f204e215b36e9a0ebf752e52d850d5b62e24', "aria-live": this.variation === "loader"
16248
+ }, "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"
16023
16249
  ? "assertive"
16024
16250
  : this.accessibleAnnounceChanges === "body"
16025
16251
  ? "polite"
16026
- : null, "aria-atomic": this.accessibleAnnounceChanges === "body" ? "true" : null, class: "duet-modal-inner-slot-default", ref: el => (this.slotContainerEl = el) }, hAsync("slot", { key: 'a9cae84bfc443ad938f202e5760a5dbae540bc84' })))))));
16252
+ : null, "aria-atomic": this.accessibleAnnounceChanges === "body" ? "true" : null, class: "duet-modal-inner-slot-default", ref: el => (this.slotContainerEl = el) }, hAsync("slot", { key: '0008beb6b6f6bac06c6ce3dddb661157dfedf4e1' })))))));
16027
16253
  }
16028
16254
  get element() { return getElement(this); }
16029
16255
  static get watchers() { return {
@@ -16339,23 +16565,23 @@ class DuetMultiselect {
16339
16565
  */
16340
16566
  render() {
16341
16567
  var _a;
16342
- return (hAsync(Host, { key: '2347a9fc6542af294322242041d6881e7d46705a', class: {
16568
+ return (hAsync(Host, { key: '4b8d1905f6d83802479254ed818eddc225a07884', class: {
16343
16569
  "duet-m-0": this.margin === "none",
16344
16570
  "duet-expand": this.expand,
16345
- } }, hAsync("div", { key: '956a141db6a505bace52938e5fe4806494f45159', class: {
16571
+ } }, hAsync("div", { key: '5448159c21e1975424169c66faa9442471e97390', class: {
16346
16572
  "duet-multiselect-container": true,
16347
16573
  "duet-label-hidden": this.labelHidden,
16348
16574
  "duet-theme-turva": this.theme === "turva",
16349
16575
  "duet-input-top-caption-shown": this.isCaptionVisible,
16350
16576
  "has-error": !!this.error,
16351
- }, onKeyDown: (e) => this.onMultiselectKeyDown(e) }, hAsync(DuetInternalLabel, { key: '2f23d51d3671879786ba1407b56ae3222f9a5bf5', 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: '85a8c563721a63f0a34cce7cc459dd18d6280194', class: "duet-multiselect-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), hAsync("slot", { key: '56a2689eeda397d20a42b167ddb099b920107e26', name: "tooltip" }), this.caption && (hAsync("duet-caption", { key: '0c8e2c9a01b16cd4dcfa46d4e9ad7a656d5a3c74', id: this.topCaptionId, size: "medium" }, this.caption)), hAsync("div", { key: '4436df38933bbd41698bd155d710c0d2216d1f6d', class: "duet-multiselect-wrapper" }, hAsync("button", { key: '99022f18da86f4373ff64c74a52dace5a2bd7d60', 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: 'e64ce99653325421f0618ad642a840e4b0cd3695', 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: 'ead81f383496a853979310009d9899727eca2585', class: "duet-multiselect-badge" }, this.value.length, hAsync("duet-visually-hidden", { key: '34142a17a4b013c56292dff2eb224f6544afa95e' }, this.selectedLangObject[this.language], ",", " ", Array.isArray(this.value) ? this.value.map(item => item.label).join(", ") : ""))), hAsync("svg", { key: '0608e4eb2995dcc8f02a1c92c35b5cbf545f7ad5', 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: '0b9a5d56df9e428d036f77c886fce63855aeae12', 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: 'ae5eb2b331307f54eeab1c6728f289dcda6b3f27', id: `${this.identifier}-checkboxes`, role: "listbox", class: {
16577
+ }, 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: {
16352
16578
  "duet-multiselect-checkboxes": true,
16353
16579
  "duet-multiselect-checkboxes-active": this.checkboxesVisible,
16354
- }, "aria-activedescendant": this.activeDescendant, "aria-multiselectable": "true" }, ((_a = this.processedItems) === null || _a === void 0 ? void 0 : _a.length) && this.allControls && (hAsync("div", { key: 'd5883b8ebe1c051efd79ddb1f79dc78e5fddeb47', class: "duet-multiselect-all-control-buttons" }, hAsync("button", { key: '24482082ed2715da5f7c57cce55e2c68da043f07', 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: '5c900fa9f95cf21ca22c498212ec6cbd72e23139', class: "duet-multiselect-clear-all", onClick: this.handleClearAllClick, id: this.getOptionIdentifier(-1), onKeyDown: (e) => this.onCheckboxKeyDown(e, -1) }, this.clearAllLabel[this.language]))), this.processedItems &&
16580
+ }, "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 &&
16355
16581
  this.processedGroups.map(group => (hAsync("fieldset", null, group.label && hAsync("legend", null, group.label), group.items.map((item, key) => {
16356
16582
  var _a, _b;
16357
16583
  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 }));
16358
- })))))), hAsync("span", { key: '733dfa1e852f5b450de3e11e7d9bd9516c1c6284', 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: '4535a77dbbb418ceb1c63d423e390324f5d0f18d' }, this.error)))));
16584
+ })))))), 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)))));
16359
16585
  }
16360
16586
  get element() { return getElement(this); }
16361
16587
  static get watchers() { return {
@@ -16430,7 +16656,7 @@ class DuetNav {
16430
16656
  * Always the last one in the class.
16431
16657
  */
16432
16658
  render() {
16433
- return (hAsync(Host, { key: '7e22b4d7023564579ca7e937ea9b3e1c41383217' }, hAsync("div", { key: 'cbd604f24c3d48b16771529aaf84590fbe2c349e', class: { container: true, sticky: this.sticky } }, hAsync("slot", { key: '6d354508134cf4f829922e1d12b9163ed8796753' }), hAsync("slot", { key: '2cde080603a8252ec4015dedd7166b3d3c59b945', name: "mobile" }), hAsync("slot", { key: '9654b2dfc61dbbb9833a8b5df624bdb92adadc15', name: "desktop" }))));
16659
+ return (hAsync(Host, { key: 'cfe229a2c9358cf42d3de731743f9294662d104f' }, hAsync("div", { key: 'aa379a4209ebe14ffd066b760e1649bf1e70d5de', class: { container: true, sticky: this.sticky } }, hAsync("slot", { key: '75a8a41301126ff2702908d3d60077afc8dd466f' }), hAsync("slot", { key: '5c2b378bc0a9258e1e6de5776b5395cdbfeb4625', name: "mobile" }), hAsync("slot", { key: '457a685985e8dda33bfd158e4caa497816aec4e8', name: "desktop" }))));
16434
16660
  }
16435
16661
  get element() { return getElement(this); }
16436
16662
  static get style() { return duetNavCss; }
@@ -16523,11 +16749,11 @@ class DuetNotification {
16523
16749
  return `${indicatorText}${slottedText}${slottedText.endsWith(".") ? "" : "."} ${this.date}`;
16524
16750
  }
16525
16751
  render() {
16526
- return (hAsync("div", { key: '0c265034a28ae5591df26cf2603ab3d045b45478', role: "listitem", class: {
16752
+ return (hAsync("div", { key: 'e116ef2939b8668fc7279240fdf496f47517525b', role: "listitem", class: {
16527
16753
  "duet-notification": true,
16528
16754
  "duet-notification-highlight": this.highlight,
16529
16755
  "duet-theme-turva": this.theme === "turva",
16530
- } }, hAsync("a", { key: '8f26b04ba38b69dcb86b0ab8b6820ad63453c831', ref: element => (this.linkElement = element), href: this.url, target: this.external ? "_blank" : "_self", "aria-label": this.getAriaLabelText() }, hAsync("div", { key: 'e573dfed62263051b2841cb36cfe1b3c00db8e50', class: "duet-notification-container" }, hAsync("div", { key: '0e4d1b7fec55b7c69043f3beebefff071f2d1e04', class: "duet-indicator-container" }, this.highlight && (hAsync("duet-indicator", { key: 'e9086498a4ef7534f5a68956dad0a811486b41b1', variation: "new", "accessible-label": this.accessibleLabelUnread }))), hAsync("div", { key: 'd02944064c8c7842fb5556f2eadef2fc11aad3bd', class: "duet-notification-content" }, hAsync("slot", { key: 'f4de0aed88ff1f2545d2d630c299fa7e73e62a67' })), hAsync("div", { key: '8486cd8ac2797612ceae89c720b184c3e2f52805', class: "duet-notification-date" }, this.date)))));
16756
+ } }, hAsync("a", { key: 'ac7b3f44a84463a437c6954d034b535dffcbc978', ref: element => (this.linkElement = element), href: this.url, target: this.external ? "_blank" : "_self", "aria-label": this.getAriaLabelText() }, hAsync("div", { key: '42276fe951fbbabbf6ff6b3f2051d11157890e2a', class: "duet-notification-container" }, hAsync("div", { key: '56dcb28c55e3881f6d3db4e19b92bd31bc414172', class: "duet-indicator-container" }, this.highlight && (hAsync("duet-indicator", { key: 'fd07536d88807026f7b41ab30ad85ea3e1af6032', variation: "new", "accessible-label": this.accessibleLabelUnread }))), hAsync("div", { key: 'e3daee0b1da9007ccf0338e2c093e46eec357331', class: "duet-notification-content" }, hAsync("slot", { key: '9bdcdf46004eac0eeabf90599190a403420e255b' })), hAsync("div", { key: '2b8ac8c2a2ee2552011334bb902fcf179359641c', class: "duet-notification-date" }, this.date)))));
16531
16757
  }
16532
16758
  get element() { return getElement(this); }
16533
16759
  static get style() { return duetNotificationCss; }
@@ -16674,13 +16900,13 @@ class DuetNotificationDrawer {
16674
16900
  * Always the last one in the class.
16675
16901
  */
16676
16902
  render() {
16677
- return (hAsync("div", { key: '8e97a8e6a2058296cc10026f42860f3bb895b2a3', class: {
16903
+ return (hAsync("div", { key: '69b878842a591a528c9c8218abb3dae14e995406', class: {
16678
16904
  "duet-drawer": true,
16679
16905
  "duet-theme-turva": this.theme === "turva",
16680
- }, onKeyDown: this.handleKeyDown }, hAsync("button", { key: 'b13ac8ee8dab57c43589f2a07ce1c3093aa19b8c', ref: el => (this.drawerButtonEl = el), type: "button", class: {
16906
+ }, onKeyDown: this.handleKeyDown }, hAsync("button", { key: 'b430067e1fdca09a1c6ac0e162be9e2d5acd434f', ref: el => (this.drawerButtonEl = el), type: "button", class: {
16681
16907
  "duet-drawer-toggle": true,
16682
16908
  "duet-theme-turva": this.theme === "turva",
16683
- }, id: "duet-drawer-toggle", "aria-controls": "duet-drawer-content", "aria-expanded": this.isOpen ? "true" : "false", onClick: this.toggleMenu }, this.icon && (hAsync("div", { key: 'bd4969fcb3d1f150d6a90b6c51a30c6be85edc75', class: "duet-drawer-icon" }, hAsync("duet-icon", { key: 'd5ff03e6dc3d7149488ec7c2de6377ee31ddbd16', margin: "none", size: "x-small", name: this.icon, color: "currentColor" }), this.badge && hAsync("duet-indicator", { key: 'f79d92d82b2d2d60b4df0e272d0d394d61fd63db', variation: "change" }))), hAsync("span", { key: '1199f0cd40d583e1c01df562f08bcf60b4698526', class: "duet-drawer-label" }, this.label), hAsync("div", { key: '2e37bb3393dbae08571b683c09b674d7bc3e1e86', class: "duet-drawer-caret" }, hAsync("duet-icon", { key: 'ec6d5078dfdfe96c112b9116518cfd0a61d03852', margin: "none", size: "auto", icon: arrowDownIcon.svg, color: "currentColor" }))), hAsync("div", { key: 'c09a322633b12ba12e6cc18a9bec6a8a96590dc2', id: "duet-drawer-content", class: {
16909
+ }, 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: {
16684
16910
  "duet-drawer-content": true,
16685
16911
  "duet-drawer-right": this.direction === "right",
16686
16912
  "duet-drawer-left": this.direction === "left",
@@ -17187,15 +17413,15 @@ class DuetNumberInput {
17187
17413
  const identifier = this.identifier || this.inputId;
17188
17414
  const maxlength = `${this.localizeValue(this.max)}${this.getUnitString()}`.length;
17189
17415
  const cleanedValue = !!this.value ? SafeParseFloat(this.value, this.locale) : null;
17190
- return (hAsync(Host, { key: '81daee26177116322c1048713a28d09d8a36afe3', class: {
17416
+ return (hAsync(Host, { key: '1e1ec1d4970da103cdd9fbb867e469e414365adb', class: {
17191
17417
  "duet-theme-turva": this.theme === "turva",
17192
17418
  "duet-expand": this.expand,
17193
17419
  "duet-m-0": this.margin === "none",
17194
- } }, hAsync("div", { key: 'f7ff1854e40887b3b3aa14be2d350c23ec364c7a', class: "duet-number-container" }, hAsync("duet-input", { key: 'a05dd4922337179d6fbc1b84cc0fbcd1c168f508', 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: '45828645242ce4779aeae9368f0631de124e855b', name: "tooltip", slot: "tooltip" }), hAsync("div", { key: '229d18fbba76520c64109a4300dec29378432aac', class: { "duet-number-buttons": true, "duet-no-label": this.labelHidden } }, hAsync("button", { key: '49918d06cee7e8878266d3f3ed9295d9fbf31102', 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: '894e200f0b7ee004486e07d5a7f4c59640066da3' }, this.accessibleSubtract
17420
+ } }, 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
17195
17421
  .replace(/\{\s*step\s*\}/, `${this.step}`)
17196
- .replace(/\{\s*unit\s*\}/, `${this.unit}`)), hAsync("duet-icon", { key: 'eee91808ec61039f59fd9c7df8fba1c7f0c558cd', icon: subtractIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })), hAsync("button", { key: 'f146b62278677f506fa9c047bcf759432e3bd6c9', 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: '8f0efec2146187d6b3781d635c8445ee3673f032' }, this.accessibleAdd
17422
+ .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
17197
17423
  .replace(/\{\s*step\s*\}/, `${this.step}`)
17198
- .replace(/\{\s*unit\s*\}/, `${this.unit}`)), hAsync("duet-icon", { key: '12e8a56782a15e7788e7a087a46aff0535991517', icon: addIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })))), this.accessibleLiveEnabled && (hAsync("duet-visually-hidden", { key: 'cd675e89f9f78297f98bf0ec110d0013ccf0354b', "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement())))));
17424
+ .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())))));
17199
17425
  }
17200
17426
  get element() { return getElement(this); }
17201
17427
  static get style() { return duetNumberInputCss; }
@@ -17307,7 +17533,7 @@ class DuetOverlay {
17307
17533
  * Always the last one in the class.
17308
17534
  */
17309
17535
  render() {
17310
- return (hAsync(Host, { key: 'd947da491d318a4bb83befcfc756e140c9531881', "aria-hidden": "true" }, hAsync("div", { key: 'afaa04313e1d9cb640378e12084495ffb3d35409', style: { zIndex: this.zIndex }, class: {
17536
+ return (hAsync(Host, { key: 'a962e9115a51fcbb322726c314b96e3dbc92920e', "aria-hidden": "true" }, hAsync("div", { key: '6d648d8dc0e371e27900f612a79dc943e3087005', style: { zIndex: this.zIndex }, class: {
17311
17537
  "duet-overlay": true,
17312
17538
  "duet-theme-turva": this.theme === "turva",
17313
17539
  "keep-stacking-context": this.keepStackingContext,
@@ -17397,15 +17623,15 @@ class DuetPageHeading {
17397
17623
  */
17398
17624
  render() {
17399
17625
  const layout = this.layout === "narrow" ? "narrow" : this.layout === "fluid" ? "fluid" : "auto";
17400
- return (hAsync("div", { key: 'ea4be735731e17f47330bab5ecb5e9d65795a539', class: {
17626
+ return (hAsync("div", { key: '3328f3fe2eae32ac303bd225286f8cb120ab61c4', class: {
17401
17627
  "duet-page-heading": true,
17402
17628
  "duet-theme-turva": this.theme === "turva",
17403
17629
  "has-icon": !!this.icon,
17404
17630
  [layout]: true,
17405
- } }, hAsync("div", { key: 'e159d4b2942446b90f8e09a492f57a6fa974d51f', class: "background" }, this.theme === "turva" && hAsync("div", { key: '4f268e0c0adead476a918f94a41e9c6bd6fbe40e', class: "background-mask" }), this.theme !== "turva" && this.shape !== "none" && hAsync("div", { key: 'daf14331254bc8f0b5181e0a803f0057f169e629', class: "brand-shape" }), this.theme !== "turva" && this.shape !== "none" && hAsync("div", { key: 'a663ecceca1b90420088f692cb8bda12d579537d', class: "brand-shape second-shape" }), this.icon && (hAsync("div", { key: '9ea7885cc662e52f2df4d8a42557797280ba3ca3', class: {
17631
+ } }, hAsync("div", { key: '6004c4cad41df3235c35028e22b99687822834a3', class: "background" }, this.theme === "turva" && hAsync("div", { key: '96c29409898ad2d9e17f7a239de51564edeb6c3d', class: "background-mask" }), this.theme !== "turva" && this.shape !== "none" && hAsync("div", { key: '98927459ce052f21595e04456755f717bef082eb', class: "brand-shape" }), this.theme !== "turva" && this.shape !== "none" && hAsync("div", { key: '227a5d17a08578a3be98c62f2d70462b5c4b8b46', class: "brand-shape second-shape" }), this.icon && (hAsync("div", { key: '63df03a73b3f9fed6a2da169909fc3d9f66d5626', class: {
17406
17632
  "brand-shaped-icon": true,
17407
17633
  "secondary-background": this.iconBackground === "secondary" && this.theme !== "turva",
17408
- } }, hAsync("duet-icon", { key: '7edd9a52e8a515d9b946db7d3fdb95fa62ffa058', background: "none", name: this.icon, margin: "none", size: "auto", responsive: false })))), hAsync("div", { key: '85a7494fc13886d24677ee09bf86ccca61ee31cd', class: { heading: true, "has-back-button": this.hasButtonSlot } }, hAsync("slot", { key: '8c25416fc8f80c50830e36a2e2b1f47b609d0798', name: "heading" }), this.hasButtonSlot && (hAsync("div", { key: '198528161f296ee1a0bfedbd1e567dde1b552783', class: "button-container" }, hAsync("slot", { key: 'effe866326f9b75d678775a643d1e05f266b36fa', name: "button" }))), this.progressCurrentStep !== undefined && this.progressTotalSteps > 0 && (hAsync("div", { key: 'ab91a8ea60a18ad94a053b4d0e1ac1259cd1fbb9' }, hAsync("duet-spacer", { key: '6f8e47579eeb1a2b3450dab080fb93ec8ad9a2da', size: "large" }), hAsync("div", { key: '0602fe82a2bbf284687559d342c8b6589070f196', role: "presentation" }, this.progressIndicator()))))));
17634
+ } }, hAsync("duet-icon", { key: '37acbb96cb330205c3ebe49a067ac13aed9e41e4', background: "none", name: this.icon, margin: "none", size: "auto", responsive: false })))), hAsync("div", { key: '1e1418a1f8d795ea22ef9d109a492df7e02c18da', class: { heading: true, "has-back-button": this.hasButtonSlot } }, hAsync("slot", { key: 'd6b003c8333758e02039e2d9c34fc14e4a29d8e5', name: "heading" }), this.hasButtonSlot && (hAsync("div", { key: 'e41431ef7cd5f5fabebe5f0a6bd8130b1fd7e127', class: "button-container" }, hAsync("slot", { key: 'c04b5938d41a029b7e6eed4024a6c09790f5cc71', name: "button" }))), this.progressCurrentStep !== undefined && this.progressTotalSteps > 0 && (hAsync("div", { key: 'ee4a64fc94e17fdeb0cfc4885412d6cef97582e3' }, hAsync("duet-spacer", { key: '5c39c12f1ed87439b8c8273b4c919f865fda45af', size: "large" }), hAsync("div", { key: '7174a3aa5f24863cdb4b4a194f1003610fdb9ae8', role: "presentation" }, this.progressIndicator()))))));
17409
17635
  }
17410
17636
  get element() { return getElement(this); }
17411
17637
  static get style() { return duetPageHeadingCss; }
@@ -17812,32 +18038,32 @@ class DuetPagination {
17812
18038
  * Always the last one in the class.
17813
18039
  */
17814
18040
  render() {
17815
- return (hAsync(Host, { key: '7aae3263adf71d77b03be07c9ad260a4f4754159', onKeyDown: e => this.onKeyboardDown(e), class: { "duet-theme-turva": this.theme === "turva" } }, hAsync("nav", { key: 'ad020bd94ffb14b4b41fe139ab7e377deeeead12', 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: {
18041
+ 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: {
17816
18042
  "duet-pagination-nav": true,
17817
18043
  [`duet-pagination-variation-${this.variation}`]: true,
17818
- } }, this.numbersStore !== "" && (hAsync("div", { key: '599cfcdc99c0f726f838efb59a5d18def811fec3', "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: '2376939fe48f1501856eabe413317653defbb0e0', theme: this.theme }, "jump to page : ", this.numbersStore))), hAsync("ol", { key: '0763fd9a3261cded9a37c556ee63d55fea0beec5', id: this.listId, class: {
18044
+ } }, 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: {
17819
18045
  "duet-pagination": true,
17820
18046
  "duet-pagination-is-dimmed": this.numbersStore !== "",
17821
- }, role: "menubar", "aria-label": this.accessibleLabels.pagination_label, "aria-description": this.accessibleLabels.description }, (this.variation === "compact" || this.matchesCompactBreakpoint) && (hAsync("li", { key: 'b9779196cb93bee395de3583880280c988db2891', class: {
18047
+ }, role: "menubar", "aria-label": this.accessibleLabels.pagination_label, "aria-description": this.accessibleLabels.description }, (this.variation === "compact" || this.matchesCompactBreakpoint) && (hAsync("li", { key: 'f398d058c0ebf2bdab7ab945bed0b4548bbbfe83', class: {
17822
18048
  "duet-pagination-page-button": true,
17823
18049
  "duet-pagination-button-first": true,
17824
- }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { key: 'fb1e5c5aa1262fa16b1723ec810757d830f62738', 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: '90fbdfd8f5c54e45a73e354771a2f3661467b1bb', class: {
18050
+ }, 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: {
17825
18051
  "duet-pagination-page-button": true,
17826
18052
  "duet-pagination-button-first": true,
17827
- }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { key: '93ebdbe18cdfca563aa5e6dc12a4a4fd6f68f639', disabled: !!((this.internalSectionIndex === 0 && this.current <= 1) ||
18053
+ }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { key: '499f743f212068efe40d91da50a6a5d3a36b1bb8', disabled: !!((this.internalSectionIndex === 0 && this.current <= 1) ||
17828
18054
  (this.current <= 1 && this.processedPageLinks) ||
17829
- 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: '8b2dbe89ac7c1684e82ee77a43f0f2ca8d9b89a8' }, hAsync("li", { key: '4f3ebacb88d1f21b2f358d443328bd59eec10264', class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, hAsync("duet-button", { key: 'ab65423e15d3a7cbd4c4fddf42f976e3c0ba9ea2', 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: '469b36535535c82356ae0aa5bb58dd1771d47dd2', class: "duet-pagination-page-number" }, "1"))), hAsync("li", { key: '222dcd79d07ae767593df35766d0ebb1686e16ee', class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, hAsync("duet-button", { key: 'cf4ec1ba0cb36a0c2cd00b8a388f472a58a2e326', 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: '4a9496ccdfdc6475a581a76b618897cd8e81c175', class: "duet-pagination-page-number", "aria-hidden": "true" }, "\u2026"))))), (this.shouldDisplayNavigation() && this.renderPageNumbers()) || this.renderSelect(), (this.internalSectionIndex + 1) * this.visibleItems < this.totalPages &&
17830
- this.shouldDisplayNavigation() && (hAsync(Fragment, { key: '7168d8184d99f05d1ceb390687004810f43cf957' }, (this.internalSectionIndex + 1) * this.visibleItems !== this.totalPages - 1 && (hAsync("li", { key: 'f2497085cb58ccb9c65db6f9699ff4b0d45e881d', class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, hAsync("duet-button", { key: '9eb3a7eb684367f52a0bb31681402cf357b41493', 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: '30e54f85dc44e0ab900c5ee84e1e581658fa625e', class: "duet-pagination-page-number", "aria-hidden": "true" }, "\u2026")))), hAsync("li", { key: '86a7ea35747c42719c394062da51a74f147a8f0e', class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, hAsync("duet-button", { key: '136b42193fd165e8845aa55cbbfdc4c2234063ec', 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
18055
+ 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 &&
18056
+ 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
17831
18057
  ? this.processedPageLinks[this.processedPageLinks.length - 1]
17832
- : undefined }, hAsync("div", { key: '84e6618b71439ceea94b5be66dfc9ca935dee2df', class: "duet-pagination-page-number" }, this.totalPages))))), hAsync("li", { key: '5cc6fc85a3cc763f9b5bb3f5bd7c2383e273f09d', class: {
18058
+ : undefined }, hAsync("div", { key: '7a39f4ad0995c18ebd0ffbd95b507272b17b5fe9', class: "duet-pagination-page-number" }, this.totalPages))))), hAsync("li", { key: 'ad540cc00840f8452ef0bb93ee6aaa7bdc7b9a9a', class: {
17833
18059
  "duet-pagination-page-button": true,
17834
18060
  "duet-pagination-button-last": true,
17835
- }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { key: 'd84bd849c47769f4863cb38218e8851e7ff88291', disabled: !!((this.current === this.totalPages &&
18061
+ }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { key: 'e4fc05e7c0163974b0929387122200f56b352d7f', disabled: !!((this.current === this.totalPages &&
17836
18062
  this.internalSectionIndex === Math.ceil(this.totalPages / this.visibleItems) - 1) ||
17837
- (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: '339d7f334ac903a87caa8699b31761b411a50c9d', class: {
18063
+ (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: {
17838
18064
  "duet-pagination-page-button": true,
17839
18065
  "duet-pagination-button-last": true,
17840
- }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { key: '3179b9a09fec7d31c2830b91a6958dfa2cdad21f', disabled: (this.current === this.totalPages &&
18066
+ }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { key: 'e53ee2acdfdf60f158d51607df8ee61f9af16b25', disabled: (this.current === this.totalPages &&
17841
18067
  this.internalSectionIndex === Math.ceil(this.totalPages / this.visibleItems) - 1) ||
17842
18068
  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 })))))));
17843
18069
  }
@@ -17910,14 +18136,14 @@ class DuetPanel {
17910
18136
  inheritGlobalTheme(this);
17911
18137
  }
17912
18138
  render() {
17913
- return (hAsync(Host, { key: 'f245a3e1001c22a202f3568c3bb787d0733d6d06', class: { "duet-m-0": this.margin === "none" } }, hAsync("section", { key: '8a2b28280d033811f77acd9160442b740f998394', "aria-label": this.accessibleLabel, "aria-labelledby": this.accessibleLabelledBy, "aria-describedby": this.accessibleDescribedBy, class: {
18139
+ 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: {
17914
18140
  "duet-panel": true,
17915
18141
  "duet-theme-turva": this.theme === "turva",
17916
18142
  [this.variation.split("-")[0]]: true,
17917
18143
  [this.variation.split("-")[1]]: true,
17918
18144
  [`padding-${this.padding}`]: true,
17919
18145
  border: this.border,
17920
- } }, hAsync("slot", { key: '9d8fedee8a1747268476e62d802987401074f89f' }))));
18146
+ } }, hAsync("slot", { key: 'c923ad024bfad0670229a5da4ba140f5747549e4' }))));
17921
18147
  }
17922
18148
  get element() { return getElement(this); }
17923
18149
  static get style() { return duetPanelCss; }
@@ -17990,7 +18216,7 @@ class DuetParagraph {
17990
18216
  const color = getColorByName(this.color);
17991
18217
  // aria-describedby is to fix accessibility issue in Chrome where duet-paragraphs
17992
18218
  // are not announced when placed inside duet-modal
17993
- return (hAsync(Host, { key: 'c9571d612085644c30e1f218b12682df1c290b0c', "aria-describedby": this.id }, hAsync("p", { key: 'bd24c521e2c48f5cc8bd221b94e21f6fe4cd6f8d', id: this.id, class: {
18219
+ return (hAsync(Host, { key: 'e1478a81d9627fcff4c00c71d03fc9fe91642bbc', "aria-describedby": this.id }, hAsync("p", { key: '78658b077c0692618bb7d6855bbd6605abd7b13f', id: this.id, class: {
17994
18220
  "duet-paragraph": true,
17995
18221
  "duet-paragraph-small": this.size === "small",
17996
18222
  "duet-paragraph-semi-bold": this.weight === "semi-bold",
@@ -17999,7 +18225,7 @@ class DuetParagraph {
17999
18225
  [this.variation]: true,
18000
18226
  "duet-theme-turva": this.theme === "turva",
18001
18227
  "duet-inherit-color": !this.color && this.inheritingParents.some(p => this.element.closest(p)),
18002
- }, style: { color }, part: "duet-paragraph" }, hAsync("slot", { key: '8b9f20872deb8cdc33aa95afdde6e492aa2d21d9' }))));
18228
+ }, style: { color }, part: "duet-paragraph" }, hAsync("slot", { key: '83e026a3225a92a554c68da2eff4c7eb5eab36d5' }))));
18003
18229
  }
18004
18230
  get element() { return getElement(this); }
18005
18231
  static get style() { return duetParagraphCss; }
@@ -19856,6 +20082,11 @@ class DuetPhoneInput {
19856
20082
  * Visually hide the label, but still show it to screen readers.
19857
20083
  */
19858
20084
  this.labelHidden = false;
20085
+ /**
20086
+ * Set the type of automatic completion by the browser. Must include "tel", may also include token "home", "work" or
20087
+ * "mobile". If you must disable automatic completion (not recommended) use "off"
20088
+ */
20089
+ this.autoComplete = "tel";
19859
20090
  /**
19860
20091
  * Display the input in error state along with an error message.
19861
20092
  */
@@ -20102,6 +20333,7 @@ class DuetPhoneInput {
20102
20333
  "labelHidden": [4, "label-hidden"],
20103
20334
  "caption": [1],
20104
20335
  "name": [1],
20336
+ "autoComplete": [1, "auto-complete"],
20105
20337
  "error": [513],
20106
20338
  "tooltip": [1],
20107
20339
  "maxlength": [2],
@@ -22009,11 +22241,11 @@ class DuetPopupMenuItem {
22009
22241
  };
22010
22242
  // Without the role ternary Safari/iPhone wouldn't announce the label for role menuitem.
22011
22243
  // This is a tradeoff and now Safari announces these items as buttons and links with the label.
22012
- return (hAsync(Host, { key: 'e4d908ef580f7a4b7f6c73b005df3024376394cf', role: this.accessibleRole === "menuitem" && this.isSafariBrowser ? null : this.accessibleRole }, hAsync(TagName, { key: '9a8c95e7192879c5ef1d7c8bd8b4a1af4042f4bf', 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: '7483b06d6477b2901f37bc6ac5d0c73c74fcc0ac', name: this.leadingIcon, size: "x-small", color: this.leadingIconColor ? this.leadingIconColor : "currentColor", class: "duet-popup-menu-item-leading", margin: "none" })), hAsync("span", { key: '29946d960923b123aab68ac401922cb29aaa4cd8', class: "duet-popup-menu-item-label" }, hAsync("slot", { key: '9994e35a66c58296c3af45cd40f477bc23f460f8' })), (this.trailingIcon || this.active || (this.url && this.external)) && (hAsync("duet-icon", { key: '29a0b6a25a8376d41f5279bebebd208e65ce4640', name: this.url && this.external
22244
+ 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
22013
22245
  ? newWindowIcon.title
22014
22246
  : this.active
22015
22247
  ? "messaging-checked-small"
22016
- : 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: '6d6c1681d4e0551b89bd15d461d14d583fd12b93', class: "duet-popup-menu-item-trailing" }, this.trailingText))));
22248
+ : 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))));
22017
22249
  }
22018
22250
  get element() { return getElement(this); }
22019
22251
  static get style() { return duetPopupMenuItemCss; }
@@ -22137,7 +22369,7 @@ class DuetProgress {
22137
22369
  }; }
22138
22370
  }
22139
22371
 
22140
- 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)}";
22372
+ 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)}";
22141
22373
 
22142
22374
  /**
22143
22375
  * @slot pre-heading - Slot for pre-heading content.
@@ -22209,12 +22441,22 @@ class DuetPromoCard {
22209
22441
  backgroundColor: backgroundColor ? backgroundColor : "none",
22210
22442
  };
22211
22443
  const TagName = this.url ? "a" : "div";
22212
- return (hAsync(Host, { key: '15914a069765b4badeec5e42bc0c4be98528f197', class: { "duet-m-0": this.margin === "none" } }, hAsync("aside", { key: '3c097de3be0174444157d849d6d7352d60e8b4fc', class: {
22444
+ const pictureSource = {
22445
+ img: {
22446
+ src: this.image,
22447
+ alt: this.imageAlt || "",
22448
+ loading: this.imagePriority === "high" ? "eager" : "lazy",
22449
+ fetchpriority: this.imagePriority,
22450
+ class: "image",
22451
+ },
22452
+ sources: parsePossibleJSON(this.sources),
22453
+ };
22454
+ return (hAsync(Host, { key: '97dab264c5d107592d20f0f417be8f19afe3d8fd', class: { "duet-m-0": this.margin === "none" } }, hAsync("aside", { key: 'c45359578b2b47d473998c61c848da71b70c800d', class: {
22213
22455
  "duet-promo-card": true,
22214
22456
  "duet-theme-turva": this.theme === "turva",
22215
22457
  "no-bg-color": !this.backgroundColor,
22216
22458
  "duet-promo-card-link": !!this.url,
22217
- }, style: bannerStyles }, hAsync(TagName, { key: '5510d811615bbb7a172f03b40aaf4062073cb7f2', href: this.url, class: { "content-wrapper": true, "duet-theme-turva": this.theme === "turva" }, ref: element => (this.aOrDivElement = element) }, hAsync("img", { key: 'bc7545b847d9d9e71d0be0572fcbc999ee6c80c3', class: "image", src: this.image, alt: this.imageAlt || "", role: this.imageAlt ? null : "presentation" }), hAsync("div", { key: '82dc0d7269104f81e37d47c5b48f0d43b9000434', class: "content" }, this.hasPreHeadingSlot && (hAsync("div", { key: 'de1578879478be3a3f9cc115acb46a19446110a8', class: "pre-heading" }, hAsync("slot", { key: '08cd0e79ddf0fd865a244147adbe208c8fa3f9fa', name: "pre-heading" }))), this.hasHeadingSlot && (hAsync("div", { key: 'f2317874c4af8c13e932f3eb87b371f1d1b57237', class: "heading" }, hAsync("duet-heading", { key: '250310892874b2a50739c52399ea26e9c1d551f1', theme: this.theme, level: this.hasHeadingSlotNative ? "div" : this.headingLevel, "visual-level": "h3", margin: "none", color: postfixTheme(this.textColor, this.theme) }, hAsync("span", { key: 'b07fc7401b5246d73a9685ce0c3ed066de23d72f' }, hAsync("slot", { key: '8de2f4b07d14e7eee8f0c8babef852ae187fc134', name: "heading" }))))), this.hasDescriptionSlot && (hAsync("div", { key: 'ddf9ce95776e1bd3c55e9dff3d0d116681f61896', class: "description" }, hAsync("duet-paragraph", { key: '1decf80a64e37486c1475437c34894025ae0f021', theme: this.theme, margin: "none", color: postfixTheme(this.textColor, this.theme) }, hAsync("span", { key: 'db6124d5ef91014ccbc9693880921dde31157030' }, hAsync("slot", { key: 'fe4c6a624551185cd748d69a451006710ed08558', name: "description" }))))), this.hasActionSlot && (hAsync("div", { key: '4386f1dadb0f8311fa9c21c7a47a872a08ab2b63', class: "action" }, hAsync("slot", { key: 'c5f4a3ce3b4ca1fdad040b95d883ec74f9a93904', name: "action" }))))))));
22459
+ }, style: bannerStyles }, hAsync(TagName, { key: 'ef88f3802caf987b1f4507d4666e4c1e995c03ed', href: this.url, class: { "content-wrapper": true, "duet-theme-turva": this.theme === "turva" }, ref: element => (this.aOrDivElement = element) }, hAsync(DuetPicture, Object.assign({ key: '56569975e0e19da32854f893faa7735b8ad02aed' }, pictureSource)), hAsync("div", { key: '2f7457dfc83c5d90fb9bab5db26a4785d48af1c1', class: "content" }, this.hasPreHeadingSlot && (hAsync("div", { key: '2219e5e9347de718cd7a1d7d647e8309ee650831', class: "pre-heading" }, hAsync("slot", { key: 'd5da5a114026a15e4dcbef0017a9e4e626f1f4dd', name: "pre-heading" }))), this.hasHeadingSlot && (hAsync("div", { key: 'c3c9d6e2cde6750417e55cd568e92c2c6e1e794f', class: "heading" }, hAsync("duet-heading", { key: '30369ab97d1b23ebb0efd58498f088663a7fd77f', theme: this.theme, level: this.hasHeadingSlotNative ? "div" : this.headingLevel, "visual-level": "h3", margin: "none", color: postfixTheme(this.textColor, this.theme) }, hAsync("span", { key: '697f670a938866d937aed46cf361e3fb038047b9' }, hAsync("slot", { key: '20d4d9b0ebccd08a2c3058284bbe6ab7cf5631b6', name: "heading" }))))), this.hasDescriptionSlot && (hAsync("div", { key: '6336dc1b21d5e7e2280000db82489ef2ebce379d', class: "description" }, hAsync("duet-paragraph", { key: '1d5200f1d385d5600a4db1aafc9ff8f8adfc0945', theme: this.theme, margin: "none", color: postfixTheme(this.textColor, this.theme) }, hAsync("span", { key: 'a814b4225fc2b5882542079a92057a5aa4be8a25' }, hAsync("slot", { key: '8dfe422bb5fa8a28be96b4a61a02c00d53158dca', name: "description" }))))), this.hasActionSlot && (hAsync("div", { key: '37b653137388b4a43968de02eb65a4b9907c3022', class: "action" }, hAsync("slot", { key: '594172da1335d25e8856e4d7f8db3543a82a8f2e', name: "action" }))))))));
22218
22460
  }
22219
22461
  get element() { return getElement(this); }
22220
22462
  static get style() { return duetPromoCardCss; }
@@ -22228,6 +22470,8 @@ class DuetPromoCard {
22228
22470
  "textColor": [1, "text-color"],
22229
22471
  "image": [1],
22230
22472
  "imageAlt": [1, "image-alt"],
22473
+ "imagePriority": [1, "image-priority"],
22474
+ "sources": [1],
22231
22475
  "headingLevel": [1, "heading-level"],
22232
22476
  "url": [1],
22233
22477
  "setFocus": [64]
@@ -22420,17 +22664,17 @@ class DuetRadio {
22420
22664
  * Always the last one in the class.
22421
22665
  */
22422
22666
  render() {
22423
- return (hAsync(Host, { key: '538a0bdaa3132fcfbd68a8f970f1dc9b8c2f1198', class: {
22667
+ return (hAsync(Host, { key: '7042b59543dd4cf7627ca41b07a3fee3598c684d', class: {
22424
22668
  vertical: this.groupDirection === "vertical",
22425
22669
  horizontal: this.groupDirection === "horizontal" && !this.groupResponsive,
22426
22670
  "horizontal-responsive": this.groupDirection === "horizontal" && this.groupResponsive,
22427
22671
  "duet-m-0": this.margin === "none",
22428
- } }, hAsync("div", { key: '0e11d68ec02df3163c3dc1524cff2bbff950a496', class: { "duet-radio-container": true, "duet-theme-turva": this.theme === "turva" } }, hAsync("slot", { key: 'fdf09172f67232d5b2a689b1f1368bb5da931319', name: "input" }), hAsync("label", { key: '516d9ba003ab05b3f7069b46ecfd471df3e4de3e', inert: true, ref: element => (this.labelElement = element), class: {
22672
+ } }, 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: {
22429
22673
  "duet-label": true,
22430
22674
  checked: this.checked,
22431
22675
  focus: this.focus,
22432
22676
  disabled: this.disabled || this.groupDisabled,
22433
- } }, hAsync("div", { key: 'b525b0a79e22eeb0b4fa8bdfdb854733d66acf2b', class: "duet-label-content" }, this.hasLabel ? hAsync("slot", { name: "label" }) : this.label)))));
22677
+ } }, hAsync("div", { key: 'a1293298a68f71ccf0b6bba309bae33ff66932a9', class: "duet-label-content" }, this.hasLabel ? hAsync("slot", { name: "label" }) : this.label)))));
22434
22678
  }
22435
22679
  get element() { return getElement(this); }
22436
22680
  static get style() { return duetRadioCss; }
@@ -22625,7 +22869,7 @@ class DuetRadioGroup {
22625
22869
  * Always the last one in the class.
22626
22870
  */
22627
22871
  render() {
22628
- return (hAsync(Host, { key: 'bcae2d75b5843767deb9fc0900ee68751331a011', onDuetChange: this.onSelect, class: { horizontal: this.direction === "horizontal" } }, hAsync("duet-fieldset", { key: '41c1b4a25bef2baac49fc5abef7713582a2e8f1b', 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: 'af6c3a5dca20b7665e51bd0bf20923779bfd09bb', slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), hAsync("slot", { key: '6e970de16b4e67c79ab27d45a223ec5989dfb51e', name: "tooltip", slot: "tooltip" }), hAsync("div", { key: '4b6385af491f148c5122dd990db0ef05ae8c7c6f', class: { "duet-radio-group": true, "duet-no-stacking": !this.responsive } }, hAsync("slot", { key: '4d79f47f0f3ab231307045a4c3bfbff89df1b75d' })))));
22872
+ return (hAsync(Host, { key: 'efd5c1575bcaa27689fda3d887405f1f8c89d40b', onDuetChange: this.onSelect, class: { horizontal: this.direction === "horizontal" } }, hAsync("duet-fieldset", { key: 'e7a49a48e778e7536ec79e4dd3f6cc1657c38f39', 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: 'bb72a0c834b31079cd07c6894c98192f346876a7', slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), hAsync("slot", { key: '8e0657188162e21abc47f50b341776e83b358476', name: "tooltip", slot: "tooltip" }), hAsync("div", { key: '800d524204ac076c087cdd7916077613b454475d', class: { "duet-radio-group": true, "duet-no-stacking": !this.responsive } }, hAsync("slot", { key: '265f7219a181ecc24adf1708a1dd3e2d69b23253' })))));
22629
22873
  }
22630
22874
  get element() { return getElement(this); }
22631
22875
  static get watchers() { return {
@@ -22813,13 +23057,13 @@ class DuetRangeSlider {
22813
23057
  const rangeStyles = {
22814
23058
  background: `-webkit-linear-gradient(left,${active} 0%,${active} ${percentage}%,${inactive} ${percentage}%)`,
22815
23059
  };
22816
- return (hAsync(Host, { key: '140a9aa52dabb7c79226006b962df8988b32d11a', class: { "duet-m-0": this.margin === "none", "duet-expand": this.expand } }, hAsync("div", { key: '57c79380ecfdc00894e732406b9f461d673a7511', class: {
23060
+ return (hAsync(Host, { key: 'e210a09d9e24ecda74f73465103e52fd0ef3e151', class: { "duet-m-0": this.margin === "none", "duet-expand": this.expand } }, hAsync("div", { key: 'c06f45aec60dddfd2bc63c0c37e985fb4892262c', class: {
22817
23061
  "duet-range-container": true,
22818
23062
  "duet-label-hidden": this.labelHidden,
22819
23063
  "duet-theme-turva": this.theme === "turva",
22820
23064
  "duet-ie": isInternetExplorer(),
22821
23065
  "duet-range-disabled": this.disabled,
22822
- } }, hAsync(DuetInternalLabel, { key: '0bd37479e4b671590fd4dd0b63cd3750ca08ebdc', theme: theme, color: this.labelColor, weight: this.labelWeight, margin: "small", for: identifier }, this.label), hAsync("output", { key: '5e4d188ee952a06e3e25e06ec2d946563aed1ad8', "aria-hidden": "true", htmlFor: identifier, class: "duet-output" }, this.value.toLocaleString(this.locale), this.unit), hAsync("input", { key: '5929028f235380be743b2937b400c4100b42640e', 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" }))));
23066
+ } }, 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" }))));
22823
23067
  }
22824
23068
  get element() { return getElement(this); }
22825
23069
  static get style() { return duetRangeSliderCss; }
@@ -23048,10 +23292,10 @@ class DuetRangeStepper {
23048
23292
  * Always the last one in the class.
23049
23293
  */
23050
23294
  render() {
23051
- return (hAsync("div", { key: '7a19673ab541ea98696cdf665d1f37b8ac025f80', class: {
23295
+ return (hAsync("div", { key: 'adfdba923ae5fd9a6dfba50fe1c4f55e3b87a865', class: {
23052
23296
  "duet-range-stepper": true,
23053
23297
  "duet-theme-turva": this.theme === "turva",
23054
- }, onKeyDown: e => this.onKeyboardDown(e), "aria-controls": this.ariaControls }, hAsync("span", { key: 'c26de19d4c0bdae85dbaa9c5d0c4dca7118cbd59', class: "duet-range-step-counter", part: "range-numbers" }, this.generateStepSize()), hAsync("duet-action-button", { key: '780c748f25da231b4d32473c2404737516dea44c', 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: '2883d256e795c2357edcfdd7515bc3242f754698', 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: "" })));
23298
+ }, 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: "" })));
23055
23299
  }
23056
23300
  get element() { return getElement(this); }
23057
23301
  static get watchers() { return {
@@ -23362,18 +23606,18 @@ class DuetScrollable {
23362
23606
  * Always the last one in the class.
23363
23607
  */
23364
23608
  render() {
23365
- return (hAsync(Host, { key: '8df51170513077145592d25caa62ba1ad2e85321', class: {
23609
+ return (hAsync(Host, { key: 'e4fcbff642e107e2d34afda150b6d018d9495bfa', class: {
23366
23610
  "duet-theme-turva": this.theme === "turva",
23367
23611
  "duet-theme-default": this.theme === "default",
23368
- } }, this.hasCollapseButtonLabelSlot && (hAsync("div", { key: 'eb436b00c138655bb63089831b85d1e9bb320aae', class: {
23612
+ } }, this.hasCollapseButtonLabelSlot && (hAsync("div", { key: '0812bcf7ea5189d289b2802404f7a5b72f84e914', class: {
23369
23613
  collapse: true,
23370
23614
  hide: !this.needsScrolling && !this.collapsed,
23371
- } }, hAsync("duet-button", { key: '7ee25c87ce3da3160b9ceb73730715becad219bf', variation: "plain", margin: "none", "center-text": true, onClick: () => this.collapsedOnClick() }, hAsync("slot", { key: 'bf4e7d6a981c5544251df380c5b4eef49545fd01', name: "collapse-button-label" })))), hAsync("div", { key: 'cd9bea12be8aecb83efce14f2ee153896f64c7cd', class: {
23615
+ } }, hAsync("duet-button", { key: 'b800fd6f995333456428d33f3bd879d998e69161', variation: "plain", margin: "none", "center-text": true, onClick: () => this.collapsedOnClick() }, hAsync("slot", { key: '28a8ddf0c43d1fc83562f90222107add5742c568', name: "collapse-button-label" })))), hAsync("div", { key: 'd8dbfd839185724f0c731fd05fc7318edd55f8ef', class: {
23372
23616
  "duet-scrollable-items": true,
23373
23617
  buttons: this.buttons,
23374
23618
  center: this.center,
23375
23619
  "duet-theme-turva": this.theme === "turva",
23376
- } }, this.buttons && this.renderButton("left"), hAsync("div", { key: '243fe2e1dab3b9eae761f971dbc92eb0a14baa9e', class: {
23620
+ } }, this.buttons && this.renderButton("left"), hAsync("div", { key: '52896f20aa1556374ae606865b9baa3d26e5f309', class: {
23377
23621
  "duet-scrollable-list": true,
23378
23622
  [`duet-scrollable-list--${this.buttonPosition}`]: true,
23379
23623
  [`gap-${this.gap}`]: true,
@@ -23381,7 +23625,7 @@ class DuetScrollable {
23381
23625
  [`duet-overflow-padding--${this.padding}`]: this.padding !== "none",
23382
23626
  [`duet-scrollable-list--${this.buttonPosition}`]: this.buttonPosition === "absolute",
23383
23627
  "duet-scrollable-stretch": this.stretch,
23384
- }, onScroll: () => this.updateScrollButtons(), ref: element => (this.scrollPaneElement = element) }, hAsync("slot", { key: '5e49e03f90b17bbb89b5b4f5ea55d6bbd93ec53e' })), this.buttons && this.renderButton("right"))));
23628
+ }, onScroll: () => this.updateScrollButtons(), ref: element => (this.scrollPaneElement = element) }, hAsync("slot", { key: '033251e2116f215b006650c265e0f28b51b4255c' })), this.buttons && this.renderButton("right"))));
23385
23629
  }
23386
23630
  get element() { return getElement(this); }
23387
23631
  static get watchers() { return {
@@ -23441,13 +23685,13 @@ class DuetSectionLayout {
23441
23685
  * Always the last one in the class.
23442
23686
  */
23443
23687
  render() {
23444
- return (hAsync(Host, { key: '675bb0f1357f695ee2d80ae2a0a33f375191aaec', class: {
23688
+ return (hAsync(Host, { key: '5a776657b9c39546b9e60e4437f56e15cefca547', class: {
23445
23689
  "duet-middle": this.middle,
23446
23690
  "duet-ie": isInternetExplorer(),
23447
- } }, hAsync("div", { key: 'cfa957d4604cbb8a0a824633dd4bf8c17cd144ae', class: { "duet-layout-wrapper": true, "duet-m-0": this.margin === "none" } }, hAsync("div", { key: 'afe01f3fb8d78adf63965e56f4aa1bbece5a50f3', class: {
23691
+ } }, hAsync("div", { key: '31100845e191b0057e10ec7e1cffe3b4f4b4f1b7', class: { "duet-layout-wrapper": true, "duet-m-0": this.margin === "none" } }, hAsync("div", { key: '2e9d933ca7deecedc04f5ed2f23ad181e408d130', class: {
23448
23692
  "duet-layout": true,
23449
23693
  [`padding-${this.paddingBreakpoint}`]: !!this.paddingBreakpoint,
23450
- } }, hAsync("section", { key: 'a749242dc5645d0c22f8d3db2b3f798f1cb864f1', class: "duet-main" }, hAsync("slot", { key: 'fc73c99e0e9750dcfe65ab40e4affc2f1fe1dd9e' }))))));
23694
+ } }, hAsync("section", { key: '6b78add4081f704f1aad60bd587101060ae3fe01', class: "duet-main" }, hAsync("slot", { key: '50949eaf1466fdc6c3e9687085eecf0f91a88a38' }))))));
23451
23695
  }
23452
23696
  get element() { return getElement(this); }
23453
23697
  static get style() { return duetSectionLayoutCss; }
@@ -23660,23 +23904,23 @@ class DuetSelect {
23660
23904
  */
23661
23905
  render() {
23662
23906
  const identifier = this.identifier || this.selectId;
23663
- return (hAsync(Host, { key: '6bbba69df6d714d95582b920dcd6704e872c1fef', class: {
23907
+ return (hAsync(Host, { key: '799e751c3066521f3910c7e2bc2f1b4f01a05f2c', class: {
23664
23908
  "duet-m-0": this.margin === "none",
23665
23909
  "duet-expand": this.expand,
23666
23910
  [`duet-select-variation-${this.variation}`]: true,
23667
- } }, hAsync("div", { key: '9c89cfab0838693f6ae93ed0c6999196ed046018', class: {
23911
+ } }, hAsync("div", { key: '8ec31867c99664d323116a2d157edf312eb876d9', class: {
23668
23912
  "duet-select-container": true,
23669
23913
  "duet-label-hidden": this.labelHidden,
23670
23914
  "duet-theme-turva": this.theme === "turva",
23671
23915
  [`duet-select-variation-${this.variation}`]: true,
23672
23916
  "duet-input-top-caption-shown": this.isCaptionVisible,
23673
23917
  "has-error": !!this.error,
23674
- } }, hAsync(DuetInternalLabel, { key: 'bb1b08004476e4c91a526e189d59b26c06628f0d', 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: '242f060046569b43a16a590fc61ac16fa7dd182b', direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), hAsync("slot", { key: '7ebd1a36c092a298330bb5de020c67977c33607c', name: "tooltip" }), this.caption && (hAsync("duet-caption", { key: 'a53a8b9a16ef888449c6f544c0dd649c9e871d28', id: this.topCaptionId, size: "medium" }, this.caption)), hAsync("div", { key: 'c706535ed2ab42090d1fa1a7ecaea348dd1bbb43', class: "duet-select-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (hAsync("duet-caption", { key: 'c2252184677717fb9dc1174d804fc961ece7b7df', id: this.topCaptionPlaceholderId, class: "duet-select-placeholder", size: "small" }, this.placeholder)), hAsync("slot", { key: '3998a6027e75a35f26a2806b2f763cacd93d352a' }), hAsync("select", { key: 'eeea5188dac3f4ffa04f16f73b00422ef8fe00df', 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: 'cfd9f517dbf8ce0c71191bf6e1223f0e8685a29f', 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 => {
23918
+ } }, 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 => {
23675
23919
  return isOptionGroup(item) ? this.renderOptionGroup(item) : this.renderOption(item);
23676
- }))), hAsync("div", { key: '96657339d7fb34f8978eda641539e72dec7b224a', class: {
23920
+ }))), hAsync("div", { key: 'b720c0d90de10217e72b8871927fe949302bce19', class: {
23677
23921
  "duet-select": true,
23678
23922
  [`duet-select-variation-${this.variation}`]: true,
23679
- }, "aria-hidden": "true" }, hAsync("span", { key: this.value, class: "duet-select-selected-value" }, this.getSelectedItemLabel()), (this.variation === "default" && (hAsync("svg", { key: '11f2c494a1a3194d9e59f314bac8db237f8344b5', role: "img", class: "duet-select-icon", fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, hAsync("path", { key: '27492e3b9f53ec44100bbbe780f4aa464d4a9263', 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: '3586a25ad9cb318b6565d17786f7e426f46d7768', theme: this.theme, name: "action-arrow-down-small", color: "currentColor", margin: "none", size: this.variation === "compact" ? "xxx-small" : "xx-small" }))), hAsync("span", { key: 'ebd9af0776d3462414fff4ad4df8af165f6ac4b6', class: "duet-keep-container-height", role: "presention", "aria-hidden": "true" }, "_")), hAsync("span", { key: 'b9644fc1fbb467bfc7312029141323b743be8d30', class: "duet-select-help", id: this.errorId, "aria-live": this.accessibleLiveError, "aria-atomic": "true", "aria-relevant": "additions removals" }, this.error && hAsync("span", { key: '572d61055aac43567212efc7c2ded45999d2d386', class: "duet-select-error" }, this.error)))));
23923
+ }, "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)))));
23680
23924
  }
23681
23925
  get element() { return getElement(this); }
23682
23926
  static get watchers() { return {
@@ -23756,9 +24000,9 @@ class DuetShapedImage {
23756
24000
  const style = {
23757
24001
  "--rotation": `${this.rotation}deg`,
23758
24002
  };
23759
- return (hAsync(Host, { key: '020b3d5e11c9cbc503711861dd206686d799a4e3', class: { "duet-theme-turva": this.theme === "turva", "duet-m-0": this.margin === "none" } }, hAsync("span", { key: '296b4c2f04267b0d782923ae2e68d4ef6cb0561f', class: {
24003
+ return (hAsync(Host, { key: 'ef370d616b1e83aa0015053fd55534fe9a927593', class: { "duet-theme-turva": this.theme === "turva", "duet-m-0": this.margin === "none" } }, hAsync("span", { key: '7ea96cb888a313aeb8a2b7f2a7c5a0c6d9ac2880', class: {
23760
24004
  "shaped-image": true,
23761
- }, role: "img", "aria-label": this.accessibleLabel, style: style }, hAsync("span", { key: '7dc1daa1ef4e816a866dbe1f9106d27d79ba0f80', class: "shaped-image-mask", role: "presentation" }, hAsync("span", { key: '3471561d23efb71e7ffbd03964a87fc79b4a1630', class: "shaped-image-img", role: "presentation", style: { backgroundImage: `url("${this.src}")` } })))));
24005
+ }, role: "img", "aria-label": this.accessibleLabel, style: style }, hAsync("span", { key: '2330f5b57f2ca912e048426bd1c2d105a264335d', class: "shaped-image-mask", role: "presentation" }, hAsync("span", { key: 'fbcf988fc8fdb69899e9598ebb7549f14174d478', class: "shaped-image-img", role: "presentation", style: { backgroundImage: `url("${this.src}")` } })))));
23762
24006
  }
23763
24007
  static get style() { return duetShapedImageCss; }
23764
24008
  static get cmpMeta() { return {
@@ -23828,12 +24072,12 @@ class DuetShareChart {
23828
24072
  this.itemsTotalValue = this.items.reduce((total, { value }) => total + value, 0);
23829
24073
  }
23830
24074
  render() {
23831
- return (hAsync(Host, { key: '76dcdb711e01b723ebfc6a7ac917640566d3c519' }, hAsync("div", { key: '0e33db2ae8dbd50fcca75bfc44780e47f540b35c', class: "duet-share-chart-horizontal-bar", role: "presentation" }, this.items
24075
+ return (hAsync(Host, { key: 'ba78b52814e18d4a98cf429a006a3363c004fae2' }, hAsync("div", { key: '545e5ae574e55f8f516c28b2611386306667dc08', class: "duet-share-chart-horizontal-bar", role: "presentation" }, this.items
23832
24076
  .filter(i => !!i.value)
23833
24077
  .map(item => (hAsync("span", { class: "duet-share-chart-share", style: {
23834
24078
  width: `${(item.value / this.itemsTotalValue) * 100}%`,
23835
24079
  backgroundColor: getColorByName(item.color, this.theme),
23836
- } })))), hAsync("ul", { key: 'af7cc163b43b67f726f90a32bd8bebb172a65ddd', 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: '4648ee2e833c07161de6ceb6179678b978e07741' })));
24080
+ } })))), hAsync("ul", { key: '84ded0fa2267a1187feda3ac3d0774b8628532ce', 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: '5657cc260498b721b27387d03a650a677498b872' })));
23837
24081
  }
23838
24082
  get element() { return getElement(this); }
23839
24083
  static get style() { return duetShareChartCss; }
@@ -23860,7 +24104,7 @@ class DuetShareChartItem {
23860
24104
  this.value = 0;
23861
24105
  }
23862
24106
  render() {
23863
- return (hAsync(Host, { key: '5b9263e8f4daf50f566738052822cc63a935d7a6' }, hAsync("div", { key: 'd79e1ab4daabd5fd6dc314a33c7608c1cdd8c3f2', hidden: true }, hAsync("slot", { key: 'e9ff46324b7dea7138cfcce138d57c08c851626f' }))));
24107
+ return (hAsync(Host, { key: '7dae91f324815ceba5f573b93a8aba6a992c424c' }, hAsync("div", { key: 'd5ded78fcdcd3f050a3215eb3b65e8a3a7dcb8e7', hidden: true }, hAsync("slot", { key: '4c892c9c3a1f162e54e7cdbc1c812657402f95be' }))));
23864
24108
  }
23865
24109
  get element() { return getElement(this); }
23866
24110
  static get cmpMeta() { return {
@@ -24010,12 +24254,12 @@ class DuetShowMore {
24010
24254
  * Always the last one of the class.
24011
24255
  */
24012
24256
  render() {
24013
- return (hAsync(Host, { key: '63b3a492707e1a57c1611b073e6b663f3b3f5550' }, hAsync("div", { key: '663d694dedf732ed665fdd22ac8bfbb609aa4ba2', class: {
24257
+ return (hAsync(Host, { key: 'd09f18e15e280f4a09bae1d89d8eb471c4b885a3' }, hAsync("div", { key: '949dbbcd73eb37252f098b4bc3e169ec0e3adc5b', class: {
24014
24258
  "duet-show-more": true,
24015
24259
  "duet-theme-turva": this.theme === "turva",
24016
24260
  "duet-m-0": this.margin === "none",
24017
24261
  open: this.open,
24018
- } }, hAsync("div", { key: '035ca78df910e7b4c7266e94ce54011f73197274', ref: ref => (this.contentElement = ref), class: { content: true, "duet-theme-turva": this.theme === "turva" }, id: this.contentId, tabindex: this.open ? "-1" : "" }, hAsync("div", { key: '6a41aea8c1bd21d5112e1d0fadb83de9c25b99a2', class: { "slotted-content": true } }, hAsync("slot", { key: '7cbe45659e187d12579f798c9019be8aa6c40c83' }))), hAsync("duet-button", { key: 'fb2e655522a81a79a288db8a6ba720e3ada41a5d', 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: '5cb30295ce5968c5d7a87185652db0640ab42839' }, this.open ? this.showLessLabel : this.showMoreLabel)))));
24262
+ } }, 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)))));
24019
24263
  }
24020
24264
  get element() { return getElement(this); }
24021
24265
  static get style() { return duetShowMoreCss; }
@@ -24483,7 +24727,13 @@ class DuetSlideout {
24483
24727
  return;
24484
24728
  }
24485
24729
  const path = ev.composedPath();
24486
- if (!path.includes(this.dialog) && !path.includes(this.openButton)) {
24730
+ const isOneTrustClick = path.some(target => {
24731
+ if (!(target instanceof Element)) {
24732
+ return false;
24733
+ }
24734
+ return Boolean(target.closest("[id^='onetrust-']"));
24735
+ });
24736
+ if (!isOneTrustClick && !path.includes(this.dialog) && !path.includes(this.openButton)) {
24487
24737
  this.toggleMenu(ev);
24488
24738
  }
24489
24739
  }
@@ -24536,17 +24786,17 @@ class DuetSlideout {
24536
24786
  };
24537
24787
  const topLevelOpenMenuBarTranslation = getLocaleString(this.topLevelOpenMenuBarLangObject);
24538
24788
  const exitTranslation = getLocaleString(this.exitLangObject);
24539
- return (hAsync(Host, { key: '4967e4765890d5a1fc428a6da2917e5423728b8f' }, hAsync("div", { key: '019469e0d6a0b7115a2739d19c4db7643912ed0d', class: { "duet-slideout": true, "duet-theme-turva": this.theme === "turva" } }, this.modal && hAsync("duet-overlay", { key: '1ab0ab05de7bef08b4f9907c3588c4ae1b27a1d6', visible: this.open, zIndex: "600" }), hAsync("div", { key: 'a36de0bbaa226512b8fc62ec92912b0d9ea48fbe', 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: {
24789
+ 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: {
24540
24790
  dialog: true,
24541
24791
  hidden: !this.open,
24542
24792
  modal: this.modal,
24543
- }, style: styles }, hAsync(FocusGuard, { key: 'f8cd5d6bf0a93a2ec39783b9660a7fe7d666f631', moveFocusTo: this.closeButton }), hAsync("div", { key: '4599d8a89db4503856c93ae476044d0f8b58a6e8', class: { "top-container": true, "has-sticky-header-slot": this.hasStickyHeaderSlot } }, hAsync("div", { key: '3b9e1c5b2de674864a0570a94eaccc0d2b1fd444', class: "top" }, hAsync("button", { key: '8c68434c8e735aee3a92cbd41dcdfdfdaabda9d3', ref: element => (this.closeButton = element), "aria-haspopup": "dialog", "aria-controls": "dialog", "aria-expanded": this.open ? "true" : "false", "aria-label": `${exitTranslation}`, type: "button", class: {
24793
+ }, 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: {
24544
24794
  "slideout-close": true,
24545
24795
  active: this.open,
24546
24796
  "duet-theme-turva": this.theme === "turva",
24547
- }, onClick: this.onClick, inert: this.openPanel }, hAsync("duet-icon", { key: 'a65c83b73256734cf30bb76d70a585f7396e91e7', name: "navigation-close", size: "small", margin: "none", color: "secondary" }))), hAsync("div", { key: '2cd42bbba1aae10f8ea951af29fd111ffc145ecc', class: "sticky-header" }, hAsync("slot", { key: 'c0c2c759bf1f9190a5bcb845d868210801792553', name: "sticky-header" }))), hAsync("div", { key: '9da45e60847db54c0ed5baf6e87d8526c54db02c', id: "slot-container", role: this.accessibleRole, "aria-label": this.openPanel ? topLevelOpenMenuBarTranslation : null, class: {
24797
+ }, 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: {
24548
24798
  items: true,
24549
- } }, hAsync("slot", { key: '812379a9042a1a79781f4378a0c2b256676d12d8' })), hAsync(FocusGuard, { key: 'a2aeac2c61dbc0b9839144613d999de4dc8edb36', moveFocusTo: this.closeButton })))));
24799
+ } }, hAsync("slot", { key: '334688b5dee96e633747c6a8c38f5a5da6677e13' })), hAsync(FocusGuard, { key: '129eea547ce75a8325c6aed5d3bccd6f6b380d9f', moveFocusTo: this.closeButton })))));
24550
24800
  }
24551
24801
  get element() { return getElement(this); }
24552
24802
  static get watchers() { return {
@@ -24616,7 +24866,7 @@ class DuetSlideoutLang {
24616
24866
  */
24617
24867
  render() {
24618
24868
  const langTranslation = getLocaleString(this.chooseLangObject);
24619
- return (hAsync(Host, { key: '34f0930dcf8021c6864fb605ea004dc58e6b8c9b' }, hAsync("div", { key: '9433641622ace86c08d679f5de5a06c065bc24cd', class: "duet-slideout-lang", role: "group", "aria-label": langTranslation }, hAsync("duet-icon", { key: 'bc6f8729f8011ff306198f5e6a6c050145199d03', name: "navigation-language", margin: "none", color: "secondary", size: "small" }), hAsync("slot", { key: 'a1608d54cdb7ec066e5757e46ec943db0aeb3eed' }))));
24869
+ return (hAsync(Host, { key: 'fb16f7ca32c1c5b70c7cb19b34d39e0de068a71d' }, hAsync("div", { key: 'fe1252db925d2af57a4dc783d777dbdf691994b5', class: "duet-slideout-lang", role: "group", "aria-label": langTranslation }, hAsync("duet-icon", { key: 'a4597bafb6db9221e482610d9283c992aa42cca9', name: "navigation-language", margin: "none", color: "secondary", size: "small" }), hAsync("slot", { key: 'df424707a999430019c6cd6853b58ea0d55d2463' }))));
24620
24870
  }
24621
24871
  get element() { return getElement(this); }
24622
24872
  static get style() { return duetSlideoutLangCss; }
@@ -24706,12 +24956,12 @@ class DuetSlideoutLink {
24706
24956
  * Always the last one in the class.
24707
24957
  */
24708
24958
  render() {
24709
- return (hAsync(Host, { key: '8af50d9b7ac2dff34a22383644c26bc271feb186' }, hAsync("a", { key: '2331800cc3a3541998250f6e0d77989311da783d', target: !this.href ? null : this.external ? "_blank" : "_self", class: {
24959
+ return (hAsync(Host, { key: '71791bded96b7d6edf41608fc4d9c492741ddbce' }, hAsync("a", { key: '9c8645e7357b0e6a0d5f4407f82f96c6f42aea5a', target: !this.href ? null : this.external ? "_blank" : "_self", class: {
24710
24960
  "duet-slideout-link": true,
24711
24961
  "duet-theme-turva": this.theme === "turva",
24712
24962
  active: this.active,
24713
24963
  [this.size]: true,
24714
- }, 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: 'ce90f34daf34e3fad2b5ad7b3b5e37dad9c1fd20', name: this.icon, color: "secondary", size: this.menuItem ? "x-small" : "small", margin: "none" })), hAsync("div", { key: 'a5fc2cc4c2a7c166b57b529ff62d133775b8dc51', class: "label" }, hAsync("span", { key: '49dc50b3f9fccbca74e22a2a62d8b8037484f386' }, hAsync("span", { key: '732a205ac37b15f4f242c827b90600ff15194c74', class: "label-container" }, hAsync("span", { key: 'cc338ec61125f8695556d8ecc08d9d75d2ded84e', class: "label-content" }, hAsync("slot", { key: '9eacab150163fb2dba6e373a4a3b8ca05346916d' })), this.external && (hAsync("duet-icon", { key: '6420a54645299ae8b19bfcc8626a929b6cc4f5cb', class: "external-icon", theme: this.theme, name: newWindowIcon.title, margin: "none", size: "auto", color: "currentColor" }))), hAsync("slot", { key: '9546111ca2eb2084ee09d4d48ad60eae283fad70', name: "description" })), this.caret && (hAsync("duet-icon", { key: '8d9d92137460efafad759509121e6dae57165a72', name: "action-arrow-right", color: "secondary", size: "x-small", margin: "none" }))))));
24964
+ }, 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: '8f76be0cc20b53561e9f1bbd954a8e19e1bf98a3', name: this.icon, color: "secondary", size: this.menuItem ? "x-small" : "small", margin: "none" })), hAsync("div", { key: 'f1e91400ccba4abe58478161a5123dac9e006554', class: "label" }, hAsync("span", { key: 'c93d3f5220ce1ac55c83985bb1df18511bba18a4' }, hAsync("span", { key: 'af6eba590285a896e6f4b9f9d87db82beb0ef9dd', class: "label-container" }, hAsync("span", { key: '62e6519e6f026941b5ac4f8cc65e638d11512002', class: "label-content" }, hAsync("slot", { key: 'fe67fbd9819d698956bfd3595ebd70e2d03536d8' })), this.external && (hAsync("duet-icon", { key: '56d97a47dc264cf28c0b4b08efa53751ea6c8537', class: "external-icon", theme: this.theme, name: newWindowIcon.title, margin: "none", size: "auto", color: "currentColor" }))), hAsync("slot", { key: '88c0508cea00310b08cfb79fe23d7f1e07c44305', name: "description" })), this.caret && (hAsync("duet-icon", { key: '186cd9ee20d9c4302e115c857ebcbc0493289870', name: "action-arrow-right", color: "secondary", size: "x-small", margin: "none" }))))));
24715
24965
  }
24716
24966
  get element() { return getElement(this); }
24717
24967
  static get style() { return duetSlideoutLinkCss; }
@@ -24888,25 +25138,25 @@ class DuetSlideoutPanel {
24888
25138
  };
24889
25139
  const exitTranslation = getLocaleString(this.exitLangObject);
24890
25140
  const backTranslation = getLocaleString(this.backLangObject);
24891
- return (hAsync(Host, { key: '8a4dddd16156e7e26f2d90d27e4135baef9d7f7f' }, hAsync("div", { key: 'cfed35efbcbf9502380c2b19e452447d64c0590a', class: {
25141
+ return (hAsync(Host, { key: 'e178d050a7d1b05d109805a292a393556fdc8185' }, hAsync("div", { key: '6c79968641b06a29f67e2ee641f45ff9523fef0d', class: {
24892
25142
  "duet-slideout-panel": true,
24893
25143
  "duet-theme-turva": this.theme === "turva",
24894
25144
  active: this.open,
24895
- } }, this.badge && hAsync("duet-indicator", { key: '4a1de84e3b6ea4ffb2a1e01631f0a1739771e13e', variation: "change" }), hAsync("button", { key: '0663a7f9b6b1f5f779313be946f44fb0c8e00504', 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: {
25145
+ } }, this.badge && hAsync("duet-indicator", { key: '3a621eee3a9e3c82817f57fcaaf685f6697607d1', variation: "change" }), hAsync("button", { key: 'e09accc15fcea78b7dfe5587e82991d0cff908e9', 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: {
24896
25146
  link: true,
24897
25147
  active: this.active,
24898
25148
  "duet-theme-turva": this.theme === "turva",
24899
- }, onClick: this.onClick, inert: this.open }, this.icon && (hAsync("div", { key: '871f1fcb5709c43089b627de26a80a8a7eecd519', class: "duet-slideout-icon" }, hAsync("duet-icon", { key: 'f1666ba453de11810cc1b1a5ce9d45faed10c193', name: this.icon, size: "small", margin: "none", color: "secondary" }))), hAsync("span", { key: '051ce78454689a7a379a9abd4a75e9a6495afcfa', class: "label" }, hAsync("span", { key: 'a22d205208a777b52b62e0d116a5db0998e3a79d', class: { "label-text": true, [this.labelSize]: true } }, hAsync("slot", { key: '6b817eb49b69b5fe02cd3355fa045fad80bc7692', name: "label" })), hAsync("duet-icon", { key: '0b397ce8f1de51dd50007ab3311e5ad59a7aa428', class: "caret", name: "action-arrow-right", margin: "none", size: "x-small", color: "secondary" }))), hAsync("div", { key: 'c7665a664268fbd5c4d01e152788ea70445814b8', ref: element => (this.dialog = element), class: {
25149
+ }, onClick: this.onClick, inert: this.open }, this.icon && (hAsync("div", { key: 'f0ad586caf516ba48ad9dc622717cd26963877ec', class: "duet-slideout-icon" }, hAsync("duet-icon", { key: '0b215b49365a40d3ea430879b67ac194ecea6030', name: this.icon, size: "small", margin: "none", color: "secondary" }))), hAsync("span", { key: 'ee8744b33869fa9843cc2ee305b6e3044260adb5', class: "label" }, hAsync("span", { key: '1bd04fd656e987c3805b01032d110fe6fc2caa29', class: { "label-text": true, [this.labelSize]: true } }, hAsync("slot", { key: '93765e7360ebcf9109e6967b06adccfc2edac5b9', name: "label" })), hAsync("duet-icon", { key: 'bfe90da7a1c9f29b695d3c5ffbea797903ca1ddb', class: "caret", name: "action-arrow-right", margin: "none", size: "x-small", color: "secondary" }))), hAsync("div", { key: 'fe3bf0c1c3af57d903d4e06f904dcdd531d4f703', ref: element => (this.dialog = element), class: {
24900
25150
  dialog: true,
24901
25151
  hidden: !this.open,
24902
- }, style: styles }, hAsync(FocusGuard, { key: 'c05cc6d5b0da41bedee7978f01d6f7c90ecfcf43', moveFocusTo: this.closeButton }), hAsync("div", { key: '8ba7873500abd185fe735632b574279157c8a707', class: { "top-container": true, "has-sticky-header-slot": this.hasStickyHeaderSlot } }, hAsync("div", { key: '042cbf7c5c36e7a477a64ef184452817030a1fe9', class: "top" }, hAsync("button", { key: 'f327d356b8de850e432f515a4c1a6dc9e003d6f8', ref: element => (this.closeButton = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-label": `${backTranslation}`, type: "button", class: {
25152
+ }, style: styles }, hAsync(FocusGuard, { key: '379e1ff56a13ccc13d288a973907700cef490a18', moveFocusTo: this.closeButton }), hAsync("div", { key: '39ac4d2d35871298e8c66c0601a063ea93842ce6', class: { "top-container": true, "has-sticky-header-slot": this.hasStickyHeaderSlot } }, hAsync("div", { key: '2efa0a702a7f820938802f843dbfb26290875184', class: "top" }, hAsync("button", { key: '61fe6909d29eb82186b3330fa845902ddb4ef052', ref: element => (this.closeButton = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-label": `${backTranslation}`, type: "button", class: {
24903
25153
  back: true,
24904
25154
  "duet-theme-turva": this.theme === "turva",
24905
- }, onClick: this.onClick }, hAsync("duet-icon", { key: '504fac50c5194735f7da38fd9034f28a39418192', class: "caret", name: "action-arrow-left", margin: "none", size: "small", color: "secondary" })), hAsync("span", { key: '274ca7fdd2c19790c60a7652a7733b41589709d0' }, this.label.innerHTML), hAsync("button", { key: '8aadd95055653e4125015bde99188315d0c2e8cc', class: { close: true, "duet-theme-turva": this.theme === "turva" }, type: "button", onClick: this.onCloseClick, "aria-label": `${exitTranslation}` }, hAsync("duet-icon", { key: '183d96aae0264a7b83f1aa77bdfb63778f173c74', name: "navigation-close", size: "small", margin: "none", color: "secondary" }))), hAsync("div", { key: '7861b5f725b0711c2b7cd7509c8a9a413e28564b', class: "sticky-header" }, hAsync("slot", { key: '2c16e97d5eb0d661158a567b6a07fb89ef1414f2', name: "sticky-header" }))), hAsync("div", { key: 'd6e922e2a37b2ab0ae519dda40afb32d5b56e554', tabindex: "-1", role: "menu",
25155
+ }, onClick: this.onClick }, hAsync("duet-icon", { key: '9d7aeca2c733cbf7493a6baa370734f5bea1d2e4', class: "caret", name: "action-arrow-left", margin: "none", size: "small", color: "secondary" })), hAsync("span", { key: 'cc5ae783e309097773eba3215e89e77fbeeec5bf' }, this.label.innerHTML), hAsync("button", { key: '664a157c39f96f3ff3a4be09d43165a9399c7e7d', class: { close: true, "duet-theme-turva": this.theme === "turva" }, type: "button", onClick: this.onCloseClick, "aria-label": `${exitTranslation}` }, hAsync("duet-icon", { key: 'e72d12534a4f2fdcbcd81cd611e581e36c47f921', name: "navigation-close", size: "small", margin: "none", color: "secondary" }))), hAsync("div", { key: '16891dafb3ef15b8c555d7a20eb3a3737b6169a0', class: "sticky-header" }, hAsync("slot", { key: 'b852b6aba1b4f0f617a1b58ca4986c3dcd0d1eca', name: "sticky-header" }))), hAsync("div", { key: '1ff351ecda603ac948d65acceaff49feb3c850e2', tabindex: "-1", role: "menu",
24906
25156
  //TODO: slideout menu fades out, needs to be instant
24907
25157
  id: "menu", "aria-labelledby": "button", class: {
24908
25158
  items: true,
24909
- } }, hAsync("slot", { key: 'af607556495101c55d23a7365f7ad3e661f7fc23' })), hAsync(FocusGuard, { key: 'f2f4d91ef8062f83bbd6099bedccff41d4a144ab', moveFocusTo: this.closeButton })))));
25159
+ } }, hAsync("slot", { key: 'f39b7e0202e0b6553dbb402be4678659161d749a' })), hAsync(FocusGuard, { key: '7ea263ade3d868218bdfa507129b238c2caaf8a3', moveFocusTo: this.closeButton })))));
24910
25160
  }
24911
25161
  get element() { return getElement(this); }
24912
25162
  static get watchers() { return {
@@ -24987,18 +25237,18 @@ class DuetSlideoutPanelDropdown {
24987
25237
  * Always the last one in the class.
24988
25238
  */
24989
25239
  render() {
24990
- return (hAsync(Host, { key: 'f64a64dc68d8df8aebfa507aa995894eb65bb2ce' }, hAsync("div", { key: '18fe7e1d42915f5c5363c5eb95e86db85b214049', class: {
25240
+ return (hAsync(Host, { key: '6731d76d5bb4f77aec9aada9825967e260d0f041' }, hAsync("div", { key: 'd746d29ae7d36c11330934d76cbabc3169bf5e61', class: {
24991
25241
  "duet-slideout-panel-dropdown": true,
24992
25242
  "duet-theme-turva": this.theme === "turva",
24993
25243
  active: this.open,
24994
- } }, hAsync("button", { key: '06555319532a4a266c061fd1d9c37170c8f9fce0', 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: {
25244
+ } }, hAsync("button", { key: '4660cdc322f09987348f760e910e0ae5ae9562e5', 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: {
24995
25245
  active: this.active,
24996
25246
  "duet-theme-turva": this.theme === "turva",
24997
- }, onClick: this.onClick }, this.icon && hAsync("duet-icon", { key: '0ea9ceb0e10517319ada16db751234cd3f620d69', name: this.icon, size: "small", margin: "none", color: "secondary" }), hAsync("span", { key: 'd2fc1e1e76b6cde371078a56be4f463fa2592ab2', class: "label" }, hAsync("slot", { key: 'e24116c6f0faf563303c6cfb862c635b5b46852b', name: "label" }), hAsync("duet-icon", { key: '8cd1fdb85c9b4c70767c962dd87e4363f79cb384', class: "caret", name: "action-arrow-down-small", margin: "none", size: "xx-small", color: "secondary" }))), hAsync("div", { key: 'ff90c4f48368c6020919db5272954fbeaf25bcbd', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
25247
+ }, onClick: this.onClick }, this.icon && hAsync("duet-icon", { key: '54984e4a5f9911c893403034cd705197b05e0a0a', name: this.icon, size: "small", margin: "none", color: "secondary" }), hAsync("span", { key: 'e7c0afa8e83039615cd6541c8a96ac4d07227883', class: "label" }, hAsync("slot", { key: '15b1c44212b96cfba8106d79484df27cb6b72d98', name: "label" }), hAsync("duet-icon", { key: 'fdf3569a5ffc27ca16256dbb5ed697dabc6c6084', class: "caret", name: "action-arrow-down-small", margin: "none", size: "xx-small", color: "secondary" }))), hAsync("div", { key: 'a33d7c18c02689a09b66f6b2ae626ff691a36d64', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
24998
25248
  items: true,
24999
25249
  hidden: !this.open,
25000
25250
  "duet-theme-turva": this.theme === "turva",
25001
- } }, hAsync("slot", { key: '7e267c038e415f115df54d5b9ff2c7354614a9ec' })))));
25251
+ } }, hAsync("slot", { key: 'b187d077c28702f134241dd0d63ca52dedfec7b5' })))));
25002
25252
  }
25003
25253
  get element() { return getElement(this); }
25004
25254
  static get style() { return duetSlideoutPanelDropdownCss; }
@@ -25042,7 +25292,7 @@ class DuetSpacer {
25042
25292
  * Always the last one in the class.
25043
25293
  */
25044
25294
  render() {
25045
- return (hAsync(Host, { key: '76988a79c56144ea938670ea5a369478d5cbbb9d', class: {
25295
+ return (hAsync(Host, { key: 'b494dd7486aac50ad7c79b76b0476a66fb197a89', class: {
25046
25296
  "duet-spacer": true,
25047
25297
  "duet-spacer-xx-small": this.breakpoint === "xx-small",
25048
25298
  "duet-spacer-x-small": this.breakpoint === "x-small",
@@ -25097,7 +25347,7 @@ class DuetSpinner {
25097
25347
  */
25098
25348
  render() {
25099
25349
  const color = !!this.color && this.color === "currentColor" ? "currentColor" : getColorByName(this.color, this.theme);
25100
- return (hAsync(Host, { key: '61675c5a2a19edc0eba1be2f591f2bde7a7ab8fd' }, hAsync("div", { key: 'cf612fe4fe85f35a7019913136249169aa74163c', class: {
25350
+ return (hAsync(Host, { key: 'f8c4a6b68356300f7738d2c59038d47abdf54124' }, hAsync("div", { key: 'a8aeaf976bec157057a095337bcad89d26eebd8a', class: {
25101
25351
  "duet-spinner": true,
25102
25352
  [this.size]: true,
25103
25353
  "duet-theme-turva": this.theme === "turva",
@@ -25205,11 +25455,11 @@ class DuetStatusIcon {
25205
25455
  }
25206
25456
  }
25207
25457
  render() {
25208
- return (hAsync(Host, { key: '66f1b0519e8fcb4b025f2e1b64963c25b78b0ce1', class: {
25458
+ return (hAsync(Host, { key: '2ed8b9396a6fc4051299df605b5293b4ad851f10', class: {
25209
25459
  [`duet-status-icon-${this.getVariation()}`]: true,
25210
25460
  "duet-strong-bg": this.strong,
25211
25461
  "duet-m-0": this.margin === "none",
25212
- } }, hAsync("duet-icon", { key: '91b2d72ca3e85296b48e4cec8c9c5908c4025649', icon: this.getIcon(), size: this.size, margin: "none" })));
25462
+ } }, hAsync("duet-icon", { key: '01f92fdcfbb79c7bb32ea0dae0251bfad3f8f867', icon: this.getIcon(), size: this.size, margin: "none" })));
25213
25463
  }
25214
25464
  static get style() { return duetStatusIconCss; }
25215
25465
  static get cmpMeta() { return {
@@ -25331,13 +25581,13 @@ class DuetStep {
25331
25581
  * Always the last one in the class.
25332
25582
  */
25333
25583
  render() {
25334
- return (hAsync("div", { key: 'feada3a7c7ec6780e79afdb23123316ab540f4b6', class: {
25584
+ return (hAsync("div", { key: '37dcde2a09c0e543e37af2938511c4e872d5cae3', class: {
25335
25585
  "duet-step": true,
25336
25586
  [`is-${this.state}`]: true,
25337
25587
  "rounded-top": this.roundedTop,
25338
25588
  "rounded-bottom": this.roundedBottom,
25339
25589
  "duet-theme-turva": this.theme === "turva",
25340
- } }, hAsync("div", { key: 'db476849907739144958c523a74ff59d4fa02cb6', 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: '50c87080ab159d3c3b21291b364ec76ff0fa3a93', "aria-hidden": "true" }, hAsync("div", { key: '42a157140c2377439884f0af12b4248dec9bfd34', class: "duet-step-counter" }, this.renderStepCounter())), hAsync("duet-spacer", { key: '94aa9e260262de0b9cea9d2fa2c47eb10faded9f', direction: "horizontal", size: "large", breakpoint: "small" }), hAsync("duet-spacer", { key: 'a03e66e47f83ca929b0df04debceb86a2a689b40', direction: "horizontal", size: "medium", breakpoint: "x-small" }), hAsync("div", { key: 'e4da79ec72dc0e986030cd3254f07d0313a7fb47' }, hAsync("duet-heading", { key: '74b1068c7b0625bc4252c62882e596f44205a458', theme: this.theme, level: this.headingLevel, visualLevel: "h4", color: this.headingColor(), margin: "none" }, this.heading)), hAsync("duet-spacer", { key: '3d65d8674ce6b54a17bfa9c355dbf1bb6ab6b4a4', direction: "horizontal", size: "large" }), hAsync("div", { key: 'a17bc89f352a7160004d00a64aa650614fad31e9', class: "duet-step-heading-slot" }, hAsync("slot", { key: '01a89d91a83a2a60e32d88d408a75895f3c68df2', name: "heading-content" }))), hAsync("div", { key: '730bd661a145a1c84f6b475671343f578195454e', class: "duet-step-content-wrapper" }, hAsync("div", { key: 'a95661b180820900e0064b370e62db765a05fcff', class: "duet-step-content", role: "region", "aria-labelledby": this.buttonId, id: this.contentId }, hAsync("slot", { key: 'af8b9819618629683931e6a11e89011e5de7e427' })))));
25590
+ } }, 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' })))));
25341
25591
  }
25342
25592
  get element() { return getElement(this); }
25343
25593
  static get style() { return duetStepCss; }
@@ -25484,7 +25734,7 @@ class DuetStepper {
25484
25734
  * Always the last one in the class.
25485
25735
  */
25486
25736
  render() {
25487
- return (hAsync(Host, { key: '8a749ceb402c16d72935d15c496ca811cd50b957', class: { "duet-m-0": this.margin === "none" } }, hAsync("div", { key: '6aac613a7d6f22aea18a8da6971fdba169e6fa1f', class: { "duet-stepper": true, "duet-theme-turva": this.theme === "turva" } }, hAsync("duet-visually-hidden", { key: '329b1de26e25748913712e9f6c02890ac3aa1431', "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement()), hAsync("slot", { key: 'a7346309c44aad2e5ab18fe0ac6d8d73af8b29f5' }))));
25737
+ 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' }))));
25488
25738
  }
25489
25739
  get element() { return getElement(this); }
25490
25740
  static get watchers() { return {
@@ -25638,19 +25888,19 @@ class DuetSubmenuBar {
25638
25888
  * Always the last one in the class.
25639
25889
  */
25640
25890
  render() {
25641
- return (hAsync(Host, { key: 'd3c7f13bd97536a6c8fc957eeff995a11cd700f1' }, hAsync("nav", { key: '33d3db0a43395d1211e77d348ab5cc1200d55f16', class: {
25891
+ return (hAsync(Host, { key: 'f4def1bd42afddbfd791262c81fa4cb6b53aa0bf' }, hAsync("nav", { key: '0c99d3101944026ef30ecb17cc15036c7a49f69f', class: {
25642
25892
  "duet-submenu-bar": true,
25643
25893
  "duet-theme-turva": this.theme === "turva",
25644
25894
  hidden: this.hidden,
25645
- }, "aria-label": this.accessibleLabel }, this.hasItems && (hAsync("button", { key: '5d58b7f7a4f45d64f55533a007972a0fe334dbc8', ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
25895
+ }, "aria-label": this.accessibleLabel }, this.hasItems && (hAsync("button", { key: 'b06a70d212f178d944b069955af8d3c3eaf2dcd3', ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
25646
25896
  active: this.open,
25647
- }, onClick: this.onClick }, hAsync("span", { key: 'b63c704252ae0abd39443445c66f0e8d33962bab', class: "label" }, hAsync("slot", { key: '66bcb4983acd319a25ddd403c53cc0eff6a100a4', name: "label" }), hAsync("duet-icon", { key: '139459aa15d1fd051c14e53ed86927cafdb82a96', theme: this.theme, class: "caret", name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" })))), hAsync("div", { key: 'cac6ef2a388f1b6dad1673e3d7198b48fe5ae5d4', class: {
25897
+ }, onClick: this.onClick }, hAsync("span", { key: '7915c6c4efaaec0625dad9fc232fe7037bc136ff', class: "label" }, hAsync("slot", { key: '3ba013e59bd0e392c3648611266ecbb405d4a831', name: "label" }), hAsync("duet-icon", { key: '72d21eb9586a7a21b50db832903217462dc7b24d', theme: this.theme, class: "caret", name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" })))), hAsync("div", { key: 'f8e0d135231fc961dd80f795c1d82d9d7906da6e', class: {
25648
25898
  "menu-container": true,
25649
25899
  hidden: !this.open,
25650
- }, role: "presentation" }, hAsync("div", { key: 'cbd1192338ae183ad463075d7081ec224704d59a', role: this.mobile ? "menu" : null, id: "menu", "aria-labelledby": this.mobile ? "button" : null, "aria-expanded": this.mobile ? (this.open ? "true" : "false") : null, class: {
25900
+ }, role: "presentation" }, hAsync("div", { key: '6975ea468c45d4be064e96565773c0266b38e7ab', role: this.mobile ? "menu" : null, id: "menu", "aria-labelledby": this.mobile ? "button" : null, "aria-expanded": this.mobile ? (this.open ? "true" : "false") : null, class: {
25651
25901
  items: true,
25652
25902
  hidden: !this.open,
25653
- }, ref: element => (this.itemsContainer = element) }, hAsync("div", { key: '1ed2556ebc4900043e6943cd26405739e933799a', class: "list", role: this.mobile ? "presentation" : "list" }, hAsync("slot", { key: '3dca8078e8bebb973a96a1a727610ae5fa903db8' }), hAsync("div", { key: 'a4cbdb268b4a92530189e6e212b4b8bd7c2a92e2', class: "list-padding" }))), hAsync("duet-overlay", { key: 'b954f6be12e9613c2ef6d464034205874cba6f98', "keep-stacking-context": true, visible: this.open, "display-device": "not-large", transition: "immediate" })))));
25903
+ }, ref: element => (this.itemsContainer = element) }, hAsync("div", { key: '0c037e643939277845dd75e4f98eb83c2ed41f99', class: "list", role: this.mobile ? "presentation" : "list" }, hAsync("slot", { key: 'c0d94264c8cd5824c1c45df63bf5eb67897e2700' }), hAsync("div", { key: '64bcd133e88697445e17abbf4dabf2ea4ed40fd0', class: "list-padding" }))), hAsync("duet-overlay", { key: 'dedf8c34bcca605bb8ba3895930d66c7bfaafe6a', "keep-stacking-context": true, visible: this.open, "display-device": "not-large", transition: "immediate" })))));
25654
25904
  }
25655
25905
  get element() { return getElement(this); }
25656
25906
  static get watchers() { return {
@@ -25782,18 +26032,18 @@ class DuetSubmenuBarDropdown {
25782
26032
  * Always the last one in the class.
25783
26033
  */
25784
26034
  render() {
25785
- return (hAsync(Host, { key: 'b6cb68f4a7f9031d91d1ee24dd9d2c9362ac6725', role: "listitem" }, hAsync("div", { key: '7e96c76557c1d6e73b30ebca3306a894febcc82c', class: {
26035
+ return (hAsync(Host, { key: 'bcb3f683de71c0bc8b9c87f8c3bc7ef5600c6fa0', role: "listitem" }, hAsync("div", { key: 'ec440dbd58f7aa8a152d1e6517801ffffb4795a6', class: {
25786
26036
  "duet-submenu-bar-dropdown": true,
25787
26037
  "duet-theme-turva": this.theme === "turva",
25788
26038
  open: this.open,
25789
26039
  active: this.active,
25790
- } }, hAsync("button", { key: '7b67d1dcae40e2b849bd6510b40564232c0d5ef1', 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: {
26040
+ } }, hAsync("button", { key: 'f67b293a2fd28a3c0e3e062461de2890beb6f174', 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: {
25791
26041
  open: this.open,
25792
26042
  active: this.active,
25793
- }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (hAsync("duet-icon", { key: '7930a2bb5271755d5bef2033ab4d26e0a1066a3e', class: "submenu-bar-dropdown-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), hAsync("div", { key: '421394660c70b14303e7a1ac02077fa2b738122c', class: "label" }, hAsync("span", { key: '0faf06b99e50e65a857da85c547a4faced3ca773', class: "label-text" }, hAsync("slot", { key: 'b1d4f70cfb107ff5dd4babcd7d0da42d2e979f56', name: "label" })), hAsync("duet-icon", { key: 'e240873040259a28f6d5aa3a86600114627e2a97', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { key: '6336348bb6bc7f8cd5630bdbbd3f36920b6ebe5a', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
26043
+ }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (hAsync("duet-icon", { key: '10bfe310933a9f989ae31ded0cbced2a0a14db8a', class: "submenu-bar-dropdown-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), hAsync("div", { key: '3c53621e7555e4df6a62ac41cfacb19dbc2630b9', class: "label" }, hAsync("span", { key: '60cd09a846746be5d50c9851d1a2d3d66a61682e', class: "label-text" }, hAsync("slot", { key: '0a0ad898618514d5b4f510d6be7e3c0074a86af1', name: "label" })), hAsync("duet-icon", { key: '69a6d28eba4f72b06c035cd529553ae16da14253', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { key: 'f5889cb60d5f244d99e8e5cce9486388166e4034', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
25794
26044
  items: true,
25795
26045
  hidden: !this.open,
25796
- } }, hAsync("slot", { key: '1f3bd9f1dabf44b36839eb121c965ead3e3c66fa' })))));
26046
+ } }, hAsync("slot", { key: '48c26d5ac4af48cc2a0811966278d49b315723f3' })))));
25797
26047
  }
25798
26048
  get element() { return getElement(this); }
25799
26049
  static get style() { return duetSubmenuBarDropdownCss; }
@@ -25862,12 +26112,12 @@ class DuetSubmenuBarDropdownLink {
25862
26112
  * Always the last one in the class.
25863
26113
  */
25864
26114
  render() {
25865
- return (hAsync(Host, { key: 'd7f1a1d392bb3537d252a930db732bb9a062aa1a' }, hAsync("a", { key: 'f29d863d04d3fb1a4bdced3ca6f4c474dfdf686b', class: {
26115
+ return (hAsync(Host, { key: '4576334bddababcad4705978843a1ae08e34e72d' }, hAsync("a", { key: '8e115648050ee9bde7d9fffb9dc3b895b0c46cc3', class: {
25866
26116
  "duet-submenu-bar-dropdown-link": true,
25867
26117
  "duet-theme-turva": this.theme === "turva",
25868
26118
  highlight: this.highlight,
25869
26119
  active: this.active,
25870
- }, "aria-current": this.active ? "true" : "false", href: this.href, onKeyUp: e => this.handleEscape(e) }, this.icon && hAsync("duet-icon", { key: 'e971fcc188cd3bd8165992bf590ca2eab7ac36d2', name: this.icon, size: "x-small", margin: "none", color: "currentColor" }), hAsync("span", { key: '0098384100989c6ce00468717181578c80d39577', class: "label-container" }, hAsync("span", { key: '7a7114ef344ebe12bbbf1a86aa1adc93f6877f1b', class: "label" }, hAsync("slot", { key: 'c5ffaea2de58f7b00416bd02d103063278951d6c' })), this.caret && hAsync("duet-icon", { key: 'e0c832ffb658a7561ddc817f5b5af9aa70780bea', name: "action-arrow-right-small", size: "xxx-small", margin: "none" })), this.active && (hAsync("duet-icon", { key: 'f178e2e11a936dba6e05987d34fd3ba6a9d2ad02', class: "active-check", name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor" })))));
26120
+ }, "aria-current": this.active ? "true" : "false", href: this.href, onKeyUp: e => this.handleEscape(e) }, this.icon && hAsync("duet-icon", { key: '3cb691c70dea145bcd829655518d1e2da8ec4a48', name: this.icon, size: "x-small", margin: "none", color: "currentColor" }), hAsync("span", { key: 'd68d5f69f86de6ea467ea7acd2e6901950846c4c', class: "label-container" }, hAsync("span", { key: '4d40b23d4ca997fa9261b19f36934c678f0f67d6', class: "label" }, hAsync("slot", { key: 'adf85ab136a5ddbac43131933ebd5863274562e7' })), this.caret && hAsync("duet-icon", { key: 'c766790219038e9fc9b8bfe3454f5641020965ac', name: "action-arrow-right-small", size: "xxx-small", margin: "none" })), this.active && (hAsync("duet-icon", { key: '75759a4e4dd6032b73cf12fa7630b33f995e7499', class: "active-check", name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor" })))));
25871
26121
  }
25872
26122
  get element() { return getElement(this); }
25873
26123
  static get style() { return duetSubmenuBarDropdownLinkCss; }
@@ -25963,7 +26213,7 @@ class DuetSubmenuBarItem {
25963
26213
  render() {
25964
26214
  const TagName = this.url ? "a" : "button";
25965
26215
  const role = this.url ? "link" : "button";
25966
- return (hAsync(Host, { key: '003100904b0f93856bed193bd01dc1e376b06e6f', role: "listitem" }, hAsync(TagName, { key: 'f16847c6d388d57dca985f6a6ddb9b0d6e1c6157', 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: '71b069df0ff1d797f2992b865e6ccbae58ac88d4', class: "leading-icon", theme: this.theme, name: this.leadingIcon, size: "auto", margin: "none", color: "currentColor" })), hAsync("div", { key: 'ff67a89fe841a2be286bffe807a171854cfe2c1f', class: "label" }, hAsync("span", { key: '527aa1d31d10d8b327c62d283882e4c5dda3d362', class: "label-text" }, hAsync("slot", { key: 'd13184e6dc0881e5596c8c9ad59031db71300f33' })), (this.trailingIcon || this.external) && (hAsync("duet-icon", { key: '6f1a65c84496095f3fb339ba17f0a80ff9550b03', class: {
26216
+ return (hAsync(Host, { key: 'de4d2352d792c0adffd35bc86e9450b970bf8b0b', role: "listitem" }, hAsync(TagName, { key: 'd07f89e5b67f9898e7ad18385c29956226bbd875', 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: '0355e7d2be9da67841b162371e4c22bed4a58bf8', class: "leading-icon", theme: this.theme, name: this.leadingIcon, size: "auto", margin: "none", color: "currentColor" })), hAsync("div", { key: 'c6cb759071a39f0ef8d86fcc657aabc6c174f6a8', class: "label" }, hAsync("span", { key: '35b683122ff7739979a3c10ea756df2e0becccfe', class: "label-text" }, hAsync("slot", { key: '530d2eec823596ae1a6c9148684a500bd48ebfae' })), (this.trailingIcon || this.external) && (hAsync("duet-icon", { key: '95d91c2031615a6960ae2d476a92034f37cd5e7f', class: {
25967
26217
  "trailing-icon": !!this.trailingIcon,
25968
26218
  "trailing-icon-arrow": this.trailingIcon === "action-arrow-down-small",
25969
26219
  "external-icon": !!this.external,
@@ -26035,7 +26285,7 @@ class DuetSubmenuBarLink {
26035
26285
  * Always the last one in the class.
26036
26286
  */
26037
26287
  render() {
26038
- return (hAsync(Host, { key: '0b8ab66aa806a5cda83d91b525f0df8f06d594de', role: "listitem" }, hAsync("a", { key: '6afed3047487660b7f969cd5064b985899a86797', 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: '2c2b94f00eb0428a73255667ed7d320fa81bac1f', class: "submenu-bar-link-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), hAsync("span", { key: '98e5c15c559592573613071d617fc46cf2b8d6f5', class: "label" }, hAsync("slot", { key: 'b99c0f46131d490d6aa540d646fc7750c255c4b4' })))));
26288
+ return (hAsync(Host, { key: 'f21f33d16d3f1e5435db17e9cd84b5c6be8b9a27', role: "listitem" }, hAsync("a", { key: 'd0a5cbf0af61c71728e231fe37161b3771d32239', 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: '62d39b5711cb99bbe1e6a5116d365926cbb7a00e', class: "submenu-bar-link-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), hAsync("span", { key: '0c4fad2999da91f0c87910c43f30c028482581ca', class: "label" }, hAsync("slot", { key: '9f803721b07edf060c3a0c3c65190f8205ab0422' })))));
26039
26289
  }
26040
26290
  get element() { return getElement(this); }
26041
26291
  static get style() { return duetSubmenuBarLinkCss; }
@@ -26161,7 +26411,7 @@ class DuetTab {
26161
26411
  * Always the last one in the class.
26162
26412
  */
26163
26413
  render() {
26164
- return (hAsync("div", { key: '12b8133d0bbf92a085f5c39db06ad4f61be77770', ref: element => {
26414
+ return (hAsync("div", { key: '91c006415c8db98625168cc1509f085f9f25424e', ref: element => {
26165
26415
  if (!this.contentId) {
26166
26416
  this.tabpanelElement = element;
26167
26417
  }
@@ -26170,7 +26420,7 @@ class DuetTab {
26170
26420
  "duet-tab": true,
26171
26421
  selected: this.selected,
26172
26422
  "has-content-id": !!this.contentId,
26173
- }, "aria-description": this.accessibleDescription, "aria-labelledby": this.accessibleLabelledBy, tabindex: "-1" }, hAsync("slot", { key: 'f4d601ccf9017d30770ea9eaaf5873b32fcab605' })));
26423
+ }, "aria-description": this.accessibleDescription, "aria-labelledby": this.accessibleLabelledBy, tabindex: "-1" }, hAsync("slot", { key: 'cbcb9eb3c000e67f2aa896af7159101672c5c8af' })));
26174
26424
  }
26175
26425
  get element() { return getElement(this); }
26176
26426
  static get watchers() { return {
@@ -26481,13 +26731,13 @@ class DuetTabGroup {
26481
26731
  [largeBreakpoint]: ["default", "plain", "plain-scrolling"].includes(this.variation) ? true : false,
26482
26732
  "duet-theme-turva": this.theme === "turva",
26483
26733
  }, 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 })))));
26484
- return (hAsync("div", { key: '9662897bf265783e330558b8a1b463729026b044', class: {
26734
+ return (hAsync("div", { key: '417e3a0eb99cdf3d6df636586be7435cad2144ac', class: {
26485
26735
  "duet-tab-group": true,
26486
26736
  "duet-theme-turva": this.theme === "turva",
26487
26737
  [variationClass]: true,
26488
26738
  "duet-tab-plain-scrolling": this.variation === "plain-scrolling",
26489
26739
  "duet-tab-group-scrolls": true,
26490
- }, "aria-label": this.accessibleLabel }, hAsync("div", { key: 'bbeef489c8be2a79c22b7fb355a431fada517c63', role: "tablist", class: {
26740
+ }, "aria-label": this.accessibleLabel }, hAsync("div", { key: 'da12d48bcbb77d4e88ca34c63ee54c63db53eacd', role: "tablist", class: {
26491
26741
  "duet-m-0": this.margin === "none" || this.variation === "checked",
26492
26742
  "duet-tab-group-tabs": true,
26493
26743
  "duet-tab-group-hidden": this.tabs.length > 3 && !isSwipeScrollable,
@@ -26498,11 +26748,11 @@ class DuetTabGroup {
26498
26748
  } }, this.variation === "checked" ? (buttons) : (hAsync("div", { class: {
26499
26749
  "duet-tab-group-scrollable-wrapper": true,
26500
26750
  "duet-tab-group-fill-space-wrapper": this.fillSpace && this.variation === "default",
26501
- } }, 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: '48bc3f8b5d1ec742e59db454a6b1649e29b7605e', class: {
26751
+ } }, 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: {
26502
26752
  "duet-tab-group-content": true,
26503
26753
  "duet-m-0": this.margin === "none",
26504
26754
  "checked-group-content": this.variation === "checked",
26505
- } }, hAsync("slot", { key: 'b6af6d77ff36c34028e664664c71ed391a54066b' }))));
26755
+ } }, hAsync("slot", { key: 'c63f225ca6cd084bb78f4f3bcc046d21c9d47e0a' }))));
26506
26756
  }
26507
26757
  get element() { return getElement(this); }
26508
26758
  static get style() { return duetTabGroupCss; }
@@ -26608,7 +26858,7 @@ duet-table {
26608
26858
  th {
26609
26859
  font-weight: ${fontWeightSemiBold};
26610
26860
  line-height: ${lineHeightSmall};
26611
- color: ${colorGrayDarker};
26861
+ color: ${colorForegroundSecondary};
26612
26862
  text-align: left;
26613
26863
  }
26614
26864
 
@@ -26760,7 +27010,7 @@ duet-table {
26760
27010
  }
26761
27011
  }
26762
27012
 
26763
-
27013
+
26764
27014
 
26765
27015
  tbody th {
26766
27016
  padding-top: calc(${spaceLarge} * 2) !important;
@@ -26946,7 +27196,7 @@ duet-table {
26946
27196
  }
26947
27197
  }
26948
27198
  }
26949
-
27199
+
26950
27200
  duet-table.duet-theme-turva table {
26951
27201
  font-family: ${fontFamilyTextTurva};
26952
27202
  }
@@ -26956,7 +27206,7 @@ duet-table.duet-theme-turva td {
26956
27206
  }
26957
27207
 
26958
27208
  duet-table.duet-theme-turva th {
26959
- color: ${colorGrayDarkTurva};
27209
+ color: ${colorForegroundSecondaryTurva};
26960
27210
  }
26961
27211
 
26962
27212
  duet-table.duet-theme-turva tbody th {
@@ -27152,7 +27402,7 @@ class DuetTable {
27152
27402
  }
27153
27403
  }
27154
27404
  render() {
27155
- return (hAsync(Host, { key: '9f1704f22fc4624b02f78c7aef30b43a788ce295', class: {
27405
+ return (hAsync(Host, { key: '1dee35eb36b222e57e85e68f730b6460a8b9e63c', class: {
27156
27406
  [`duet-table-${this.variation}`]: true,
27157
27407
  "duet-table-flattened": !this.matchesBreakpoint,
27158
27408
  // sticky only valid when in regular table layout
@@ -27161,7 +27411,7 @@ class DuetTable {
27161
27411
  "duet-m-0": this.margin === "none",
27162
27412
  "duet-theme-turva": this.theme === "turva",
27163
27413
  "duet-table-hide-head-visually": this.hideHeadVisually,
27164
- } }, hAsync("slot", { key: '110acd28c9af7e36e6be318cfc5ad44251b72d32' })));
27414
+ } }, hAsync("slot", { key: '933771b95dbc033acc97acf8396d23e2fa5e7651' })));
27165
27415
  }
27166
27416
  get element() { return getElement(this); }
27167
27417
  static get watchers() { return {
@@ -27187,6 +27437,131 @@ class DuetTable {
27187
27437
  }; }
27188
27438
  }
27189
27439
 
27440
+ const duetTeaserCss = "*,\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 display: block;\n width: auto;\n container-type: inline-size;\n}\n\n.duet-teaser {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n border-radius: 16px;\n}\n.duet-teaser .image-wrap,\n.duet-teaser .icon-wrap {\n margin-bottom: 16px;\n}\n.duet-teaser .image-wrap {\n display: inline-block;\n overflow: hidden;\n border-radius: 16px;\n}\n.duet-teaser .image-wrap .duet-teaser-image {\n display: block;\n width: 100%;\n aspect-ratio: 16/10;\n object-fit: cover;\n}\n.duet-teaser .icon-wrap .duet-teaser-icon {\n display: block;\n width: 30px;\n width: 62px;\n height: 30px;\n height: 62px;\n}\n@container (width > 450px) {\n .duet-teaser .icon-wrap .duet-teaser-icon {\n width: 36px;\n width: 76px;\n height: 36px;\n height: 76px;\n }\n}\n.duet-teaser ::slotted(.teaser-heading) {\n margin: 0 0 1rem 0;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1.25;\n}\n.duet-teaser ::slotted(.teaser-heading-h5) {\n font-size: 1.25rem;\n font-weight: 600;\n line-height: 1.25;\n}\n.duet-teaser .duet-teaser-body {\n display: flex;\n flex-direction: column;\n}\n.duet-teaser .duet-teaser-body .duet-teaser-meta {\n order: -1;\n padding-top: 8px;\n}\n.duet-teaser.duet-teaser-link {\n text-decoration: none;\n}\n.duet-teaser.duet-teaser-link:focus {\n outline: 2px solid;\n outline-offset: 2px;\n outline-color: rgba(0, 119, 179, 0.8);\n}\n.duet-theme-turva .duet-teaser.duet-teaser-link:focus, .duet-teaser.duet-teaser-link:focus.duet-theme-turva {\n outline: 2px solid;\n outline-offset: 2px;\n outline-color: rgba(53, 79, 101, 0.8);\n}\n.duet-teaser.duet-teaser-link .image-wrap {\n display: inline-block;\n overflow: hidden;\n}\n.duet-teaser.duet-teaser-link .image-wrap img {\n transition: transform 300ms ease;\n}\n.duet-teaser.duet-teaser-link ::slotted(.teaser-heading) {\n color: rgb(0, 75, 129);\n}\n.duet-teaser.duet-teaser-link:hover .teaser-heading {\n color: rgb(0, 97, 155);\n}\n.duet-teaser.duet-teaser-link:hover .image-wrap img {\n transform: scale(1.1);\n transition: transform 300ms ease;\n}\n.duet-teaser.duet-teaser-link:hover ::slotted(.teaser-heading) {\n color: rgb(0, 97, 155);\n text-decoration: underline;\n}\n\n.duet-theme-turva.duet-teaser {\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}\n.duet-theme-turva.duet-teaser-link ::slotted(.teaser-heading) {\n color: rgb(140, 0, 30);\n}\n.duet-theme-turva.duet-teaser-link:hover ::slotted(.teaser-heading) {\n color: rgb(185, 3, 41);\n}";
27441
+
27442
+ const LONG_HEADING_LENGTH = 60;
27443
+ /**
27444
+ * @slot links - Slot for links or buttons related to the teaser. Only default duet-link and plain duet-button components should be used in this slot. Not rendered when the `url` property is set.
27445
+ */
27446
+ class DuetTeaser {
27447
+ constructor(hostRef) {
27448
+ registerInstance(this, hostRef);
27449
+ /**
27450
+ * Theme.
27451
+ */
27452
+ this.theme = "";
27453
+ /**
27454
+ * The actual heading level used in the HTML markup.
27455
+ */
27456
+ this.headingLevel = "h3";
27457
+ /**
27458
+ * Controls the visual size of the heading. Headings longer than 60 characters
27459
+ * always use "h5" visually, regardless of this setting.
27460
+ */
27461
+ this.headingVisualLevel = "h3";
27462
+ /**
27463
+ * Background color for the icon
27464
+ */
27465
+ this.iconBackground = "color-background-accent-secondary";
27466
+ /**
27467
+ * Color for the icon
27468
+ */
27469
+ this.iconColor = "color-foreground-accent-secondary";
27470
+ /**
27471
+ * Creates/updates the actual heading element as a light DOM child of the
27472
+ * host, slotted into the "heading" slot.
27473
+ */
27474
+ this.headingSetUp = () => {
27475
+ const existing = this.element.querySelector(":scope > [slot='heading']");
27476
+ if (!this.heading) {
27477
+ existing === null || existing === void 0 ? void 0 : existing.remove();
27478
+ return;
27479
+ }
27480
+ const tagMatches = (existing === null || existing === void 0 ? void 0 : existing.tagName.toLowerCase()) === this.headingLevel;
27481
+ const headingElement = tagMatches ? existing : document.createElement(this.headingLevel);
27482
+ headingElement.slot = "heading";
27483
+ headingElement.textContent = this.heading;
27484
+ headingElement.className = `teaser-heading teaser-heading-${this.getHeadingVisualLevel()}`;
27485
+ if (!tagMatches) {
27486
+ existing === null || existing === void 0 ? void 0 : existing.remove();
27487
+ this.element.appendChild(headingElement);
27488
+ }
27489
+ };
27490
+ }
27491
+ /**
27492
+ * Component lifecycle events.
27493
+ */
27494
+ componentWillLoad() {
27495
+ inheritGlobalTheme(this);
27496
+ this.hasLinksSlot = hasSlot(this.element, "links");
27497
+ checkNamedSlotElement(this.element, "links", "duet-link[variation=default],duet-link:not([variation]),duet-button[variation=plain]", 0, true);
27498
+ }
27499
+ componentDidRender() {
27500
+ this.headingSetUp();
27501
+ }
27502
+ /**
27503
+ * Sets focus on underlying a element.
27504
+ * Available only when url attribute is used.
27505
+ * Use this method instead of the native `focus()`.
27506
+ */
27507
+ async setFocus(options) {
27508
+ if (this.url && this.aOrDivElement) {
27509
+ this.aOrDivElement.focus(options);
27510
+ }
27511
+ }
27512
+ getHeadingVisualLevel() {
27513
+ return this.heading && this.heading.length > LONG_HEADING_LENGTH ? "h5" : this.headingVisualLevel;
27514
+ }
27515
+ /**
27516
+ * render() function
27517
+ * Always the last one of the class.
27518
+ */
27519
+ render() {
27520
+ const TagName = this.url ? "a" : "div";
27521
+ const pictureSource = {
27522
+ img: {
27523
+ src: this.image,
27524
+ alt: this.imageAlt || "",
27525
+ loading: this.imagePriority === "high" ? "eager" : "lazy",
27526
+ fetchpriority: this.imagePriority,
27527
+ class: "duet-teaser-image",
27528
+ },
27529
+ sources: parsePossibleJSON(this.sources),
27530
+ };
27531
+ return (hAsync(Host, { key: 'e65b22becf6cc35870584bb5d4984a5c92c52f80' }, hAsync(TagName, { key: '39bab1e7a6e59414e18110a6513634c4da99dbe6', href: this.url, class: {
27532
+ "duet-teaser": true,
27533
+ "duet-theme-turva": this.theme === "turva",
27534
+ "duet-teaser-link": !!this.url,
27535
+ }, ref: element => (this.aOrDivElement = element) }, this.image ? (hAsync("div", { class: "image-wrap" }, hAsync(DuetPicture, Object.assign({}, pictureSource)))) : (this.icon && (hAsync("div", { class: "icon-wrap" }, hAsync("duet-icon", { class: "duet-teaser-icon", shape: "brand", color: this.iconColor, background: this.iconBackground, name: this.icon, margin: "none" })))), hAsync("div", { key: '985108c747576fb8fa5e522402ad6518d471a8c5', class: "duet-teaser-body" }, this.heading && (hAsync("div", { key: '2c49e6b10827a31060a9a0263d20648835008aa0' }, hAsync("slot", { key: '4f4470ff29f50d5b4deaa6b1e28593156c4d5b06', name: "heading" }))), this.meta && (hAsync("duet-paragraph", { key: '86b2aca7b9b6345e14bb0e21d1e92bda158288c4', class: "duet-teaser-meta", margin: "none" }, this.meta)), this.description && hAsync("duet-paragraph", { key: '1a4979c9fcc3e6b75724a8cf031a401d47992d43' }, this.description), !this.url && this.hasLinksSlot && (hAsync("duet-grid", { key: 'f5d445c279ed382840cc879bf84317d329b060a4', direction: "vertical" }, hAsync("slot", { key: '259f34f776ea59e48904321663fd54d864aa4dc0', name: "links" })))))));
27536
+ }
27537
+ get element() { return getElement(this); }
27538
+ static get style() { return duetTeaserCss; }
27539
+ static get cmpMeta() { return {
27540
+ "$flags$": 265,
27541
+ "$tagName$": "duet-teaser",
27542
+ "$members$": {
27543
+ "theme": [1025],
27544
+ "heading": [1],
27545
+ "headingLevel": [1, "heading-level"],
27546
+ "headingVisualLevel": [1, "heading-visual-level"],
27547
+ "description": [1],
27548
+ "meta": [1],
27549
+ "url": [1],
27550
+ "image": [1],
27551
+ "imageAlt": [1, "image-alt"],
27552
+ "imagePriority": [1, "image-priority"],
27553
+ "sources": [1],
27554
+ "icon": [1],
27555
+ "iconBackground": [1, "icon-background"],
27556
+ "iconColor": [1, "icon-color"],
27557
+ "setFocus": [64]
27558
+ },
27559
+ "$listeners$": undefined,
27560
+ "$lazyBundleId$": "-",
27561
+ "$attrsToReflect$": []
27562
+ }; }
27563
+ }
27564
+
27190
27565
  const duetTextareaCss = ".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{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;margin-right:16px !important;margin-bottom:12px !important;display:block;width:100%;max-width:100%;text-align:left}:host:last-child,:host:last-of-type{margin-right:0 !important}[alignment=form-distribute]>:host:last-of-type:not(:last-child){margin-right:16px !important}@media (min-width: 36em){:host{width:calc(50% - 16px - 3px)}:host.duet-expand{width:100% !important}}:host(.duet-m-0){margin:0 !important}duet-tooltip,::slotted(duet-tooltip){position:absolute;top:12px;right:0}@media (min-width: 48em){duet-tooltip,::slotted(duet-tooltip){position:relative;top:4px;right:auto}}.duet-textarea-container{position:relative;width:100%;height:100%}.duet-textarea-container .duet-input-top-caption{display:none}.duet-textarea-container.duet-input-top-caption-shown .duet-input-top-caption{display:flex !important}.duet-textarea-wrapper{position:relative}.duet-textarea-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-textarea{padding:15px !important;position:relative;z-index:100;display:block;width:100%;min-width:8rem;min-height:160px;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;font-variant-numeric:tabular-nums;line-height:1.25;color:rgb(8, 42, 77);resize:vertical;background:rgb(255, 255, 255);border:1px solid rgb(127, 150, 165);border-radius:4px}.duet-textarea:focus{outline:2px solid;outline-offset:0;outline-color:rgba(0, 119, 179, 0.8)}.duet-theme-turva .duet-textarea:focus,.duet-textarea:focus.duet-theme-turva{outline:2px solid;outline-offset:0;outline-color:rgba(53, 79, 101, 0.8)}.has-error .duet-textarea{outline-offset:-1px;background-color:rgb(255, 240, 243) !important;border-color:rgb(214, 28, 82) !important}.duet-textarea[rows]{min-height:auto}.duet-textarea::placeholder{color:rgb(98, 121, 138);opacity:1 !important}.duet-textarea:focus::placeholder{color:rgb(181, 198, 208)}.duet-textarea[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-textarea[disabled]::placeholder{color:rgb(8, 42, 77);opacity:1 !important}.duet-textarea:hover:not(:disabled):not(:focus){outline:2px solid;outline-color:rgb(127, 150, 165) !important;outline-offset:-1px}.duet-theme-turva .duet-textarea:hover:not(:disabled):not(:focus),.duet-textarea:hover:not(:disabled):not(:focus).duet-theme-turva{outline-color:rgb(120, 145, 164) !important}.has-error .duet-textarea: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-textarea:focus{outline:2px solid;outline-color:rgb(0, 119, 179) !important;outline-offset:-1px}.duet-theme-turva .duet-textarea:focus,.duet-textarea:focus.duet-theme-turva{outline-color:rgb(23, 42, 59) !important}.has-error .duet-textarea: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-textarea:not(:focus):not(:hover):invalid{outline:none}.duet-textarea-help{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;line-height:1.25}.duet-textarea-help span{display:block;margin-top:8px}.has-error .duet-textarea-help{color:rgb(214, 28, 82)}.duet-label-hidden .duet-internal-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;border:0;clip:rect(0 0 0 0)}.duet-character-count{display:block;margin:8px 0 0 auto}.duet-theme-turva .duet-textarea{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(120, 145, 164)}.duet-theme-turva .duet-textarea::placeholder{color:rgb(120, 145, 164)}.duet-theme-turva .duet-textarea:focus{border-color:rgb(23, 42, 59)}.duet-theme-turva .duet-textarea:focus::placeholder{color:rgb(178, 194, 205)}.duet-theme-turva .duet-textarea[disabled]::placeholder{color:rgb(23, 42, 59)}.duet-theme-turva .duet-textarea[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.has-error .duet-textarea-help{color:rgb(214, 28, 82)}.duet-theme-turva .duet-textarea-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)}";
27191
27566
 
27192
27567
  const CharacterCount = ({ value, maxlength, theme }) => {
@@ -27424,17 +27799,17 @@ class DuetTextarea {
27424
27799
  */
27425
27800
  render() {
27426
27801
  const identifier = this.identifier || this.textareaId;
27427
- return (hAsync(Host, { key: '211eee926b033df681bfa181f836ac43a4c0ba09', class: {
27802
+ return (hAsync(Host, { key: 'c645b374c5569d125e844312777f69b913951785', class: {
27428
27803
  "duet-m-0": this.margin === "none",
27429
27804
  "duet-has-counter": this.counter && !this.error,
27430
27805
  "duet-expand": this.expand,
27431
- } }, hAsync("div", { key: 'cfcf260b9fd091276f51e09091a33ff4c3a83d08', class: {
27806
+ } }, hAsync("div", { key: '5c57fd8c8f91750d834147fa416e8cda82dcf025', class: {
27432
27807
  "duet-textarea-container": true,
27433
27808
  "duet-theme-turva": this.theme === "turva",
27434
27809
  "duet-label-hidden": this.labelHidden,
27435
27810
  "duet-input-top-caption-shown": this.isCaptionVisible,
27436
27811
  "has-error": !!this.error,
27437
- } }, hAsync(DuetInternalLabel, { key: 'c76014369a86887fda60254a033d25a7b7e1bfb5', 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: '9abca81aad0578f879a60f7ad3c3c9c4bf802844', direction: this.tooltipDirection, accessibleInputLabel: this.label, theme: this.theme === "turva" ? "turva" : "default" }, this.tooltip)), hAsync("slot", { key: '121037f9cfc26ca53cacec00d649deb6bc27f9df', name: "tooltip" }), this.caption && (hAsync("duet-caption", { key: '591ea1c34b2d913e57339154963abca7250306c2', id: this.topCaptionId, size: "medium", theme: this.theme === "turva" ? "turva" : "default" }, this.caption)), hAsync("div", { key: '76180b11f3d1a22ead10da74a5859ad834692b23', class: "duet-textarea-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (hAsync("duet-caption", { key: '45421d1cb662348a134379db56d11fc5d596258e', id: this.topCaptionPlaceholderId, class: "duet-textarea-placeholder", size: "small" }, this.placeholder)), hAsync("textarea", { key: '90db389f0d9db7978f0e89549b32256a7f7e2bac', 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: '87dd339097470f80dd947f348c77b116bc4e03dc', alignment: "stretch" }, hAsync("duet-grid-item", { key: 'e262e22da2fb8ebeef06d26a7ba8745c6847ea17', margin: "none", fill: true }, hAsync("div", { key: 'bf6617b4e6cbdd0acdf6d8e0e10a93c06b74cdc1', 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: 'ff43fd8b7d10d76a7277ffefed9ad8cfc382e126' }, this.error))), hAsync("duet-grid-item", { key: 'e282c9a57669043a61480a74d9f8e4706f91c9fa', margin: "none", class: "duet-character-count-caption" }, this.counter && hAsync(CharacterCount, { key: 'bdc58d108462478349be98a5a082fc3a77a617eb', theme: this.theme, value: this.value, maxlength: this.maxlength }))), this.counter && this.maxlength && (hAsync("duet-visually-hidden", { key: '07ff710ca4335176c57f2131b257e727bf5f15d7', id: this.characterCountId, class: "visually-hidden-counter", "aria-live": "polite" }, this.visuallyHiddenCounterText)))));
27812
+ } }, hAsync(DuetInternalLabel, { key: '7cf923d382d2623fa18ec9ad084275e2b9792ebf', 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: '09a04a79bc4f13351c51ffca8332d863c7d22280', direction: this.tooltipDirection, accessibleInputLabel: this.label, theme: this.theme === "turva" ? "turva" : "default" }, this.tooltip)), hAsync("slot", { key: 'f46daf8b99a53de5e5164f0f9f357ae91e1aa586', name: "tooltip" }), this.caption && (hAsync("duet-caption", { key: 'a2b9079234a7ec3b9b793e7912bcd4c8addc9e70', id: this.topCaptionId, size: "medium", theme: this.theme === "turva" ? "turva" : "default" }, this.caption)), hAsync("div", { key: '7f68db3beca35abb4fb53fa1056d99857e1e8316', class: "duet-textarea-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (hAsync("duet-caption", { key: '250b6e1eb6abbb79f71e176c1c241cb1fa3da18f', id: this.topCaptionPlaceholderId, class: "duet-textarea-placeholder", size: "small" }, this.placeholder)), hAsync("textarea", { key: 'c50e5d4e25d0a499cd6a1bfc03cbc546d92a3b74', 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: '20b668af694a652ea88adc161052fbff65517eb5', alignment: "stretch" }, hAsync("duet-grid-item", { key: 'b795843db0959cc83c8724dbd587debd68f58594', margin: "none", fill: true }, hAsync("div", { key: 'ab3999585663d8d1081fe39b43a35933af7ca9b8', 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: '4ad7dbac61a6398ec4f8459449162d002030f29e' }, this.error))), hAsync("duet-grid-item", { key: '25e2bb115dada7a5b0baaa58efcad756c3cdfc30', margin: "none", class: "duet-character-count-caption" }, this.counter && hAsync(CharacterCount, { key: '3e68a56f36758415be927efbc10cf267ec4d414e', theme: this.theme, value: this.value, maxlength: this.maxlength }))), this.counter && this.maxlength && (hAsync("duet-visually-hidden", { key: '7af4e00427232548222397a4439f2e71a54ac586', id: this.characterCountId, class: "visually-hidden-counter", "aria-live": "polite" }, this.visuallyHiddenCounterText)))));
27438
27813
  }
27439
27814
  get element() { return getElement(this); }
27440
27815
  static get watchers() { return {
@@ -27603,11 +27978,11 @@ class DuetToggle {
27603
27978
  */
27604
27979
  render() {
27605
27980
  const identifier = this.identifier || this.toggleId;
27606
- return (hAsync(Host, { key: '89f3936593f8ca70269c76f52de881f4de9cbf0a', onClick: this.disabled || this.loading ? undefined : this.onClick, class: {
27981
+ return (hAsync(Host, { key: '8e33f58775179856fa30813d64699b5fd99d8340', onClick: this.disabled || this.loading ? undefined : this.onClick, class: {
27607
27982
  "duet-m-0": this.margin === "none",
27608
27983
  "duet-toggle-is-disabled": this.disabled,
27609
27984
  "duet-toggle-is-loading": this.loading,
27610
- } }, hAsync("div", { key: '601e3dae811479b1295d3c1ed6f83c03dba12540', class: {
27985
+ } }, hAsync("div", { key: '814cdf2738bbf743e689d706d00999d2476474a9', class: {
27611
27986
  "duet-toggle": true,
27612
27987
  "duet-theme-turva": this.theme === "turva",
27613
27988
  "duet-side-label": this.labelPosition !== "top",
@@ -27615,7 +27990,7 @@ class DuetToggle {
27615
27990
  "duet-label-hidden": this.labelHidden,
27616
27991
  "duet-toggle-is-disabled": this.disabled,
27617
27992
  "duet-toggle-is-loading": this.loading,
27618
- } }, hAsync(DuetInternalLabel, { key: 'be5948b0ebcadfc14210f34cca8eeb1fccb06502', theme: this.theme, color: this.labelColor, weight: this.labelWeight, for: identifier, margin: this.labelPosition === "top" ? "auto" : "none" }, this.label), hAsync("div", { key: '3f8647b2608163e46f15301079fcc8b122ac3c33', class: "duet-switch" }, hAsync("input", { key: '42a3b6cddb829fb45229d8369771656883036973', 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: '91479d3cf87e7a3740a50a79a79c1f677e6f8112', class: { "duet-slider": true, "duet-theme-turva": this.theme === "turva" } }), this.loading && hAsync("duet-spinner", { key: '84e0a5c60ce9330f5e4f528e27071ffcd74d1663', color: "primary" }))), this.loading && (hAsync("duet-visually-hidden", { key: '6899d3cb49f592f7fa15aa7b3878678f0c9a3225', "aria-live": "polite" }, this.accessibleLabelLoading || DuetStringsLoadingDefaults[getLanguage()])), this.loadingComplete && (hAsync("duet-visually-hidden", { key: '3ea3bee89470aae2c080774a208a8b47f90599d2', "aria-live": "polite" }, this.accessibleLabelComplete || DuetStringsCompleteDefaults[getLanguage()]))));
27993
+ } }, hAsync(DuetInternalLabel, { key: '48309fafb420e187486b8de7eef212f614008295', theme: this.theme, color: this.labelColor, weight: this.labelWeight, for: identifier, margin: this.labelPosition === "top" ? "auto" : "none" }, this.label), hAsync("div", { key: 'b4f62f86018a7bb7f34a450175ad996c63059ed3', class: "duet-switch" }, hAsync("input", { key: '8c314ffe85e67fa4740ef3bb6357c17e4fc2659a', 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: '6e55a2738a881cf60ab6699e2e8e1fc0026362a3', class: { "duet-slider": true, "duet-theme-turva": this.theme === "turva" } }), this.loading && hAsync("duet-spinner", { key: '1ae23364dffc828696a3591fab7e48832a18653a', color: "primary" }))), this.loading && (hAsync("duet-visually-hidden", { key: 'a4f566fbcdb66615228cf9fc16056378cc41eda3', "aria-live": "polite" }, this.accessibleLabelLoading || DuetStringsLoadingDefaults[getLanguage()])), this.loadingComplete && (hAsync("duet-visually-hidden", { key: 'db35c9a6927a435ed193f696e8a775f74b7d47cb', "aria-live": "polite" }, this.accessibleLabelComplete || DuetStringsCompleteDefaults[getLanguage()]))));
27619
27994
  }
27620
27995
  get element() { return getElement(this); }
27621
27996
  static get watchers() { return {
@@ -27696,11 +28071,11 @@ class DuetToolbar {
27696
28071
  : this.variation === "secondary"
27697
28072
  ? "secondary"
27698
28073
  : "default";
27699
- return (hAsync(Host, { key: '61e98006169a65d7bbb6625d7451f91f668e35c0' }, hAsync("nav", { key: '82ab3b6e4e0c48b63a0fd35070954c2a5a20a354', class: {
28074
+ return (hAsync(Host, { key: 'a4427ddcb41378eb22a7ef7f077c9fdf1d290880' }, hAsync("nav", { key: '255a4f21a692c5a1231d619f33a73bfece27de9c', class: {
27700
28075
  "duet-toolbar": true,
27701
28076
  "duet-theme-turva": this.theme === "turva",
27702
28077
  [variation]: true,
27703
- }, "aria-label": this.accessibleLabel }, hAsync("div", { key: '8e5732502152fea0b6440dde585f097993cab4ae', class: "container" }, hAsync("div", { key: 'cfbafa235559cb745df699aa2525ec9b0b0e71cf', class: "list", role: "list" }, hAsync("slot", { key: 'cdf08194cf629b6b753f660c3450dfc0528b78a4', name: "left" })), hAsync("div", { key: '7138e57d143210886eb9b7cdd29e836f35011700', class: "list", role: "list" }, hAsync("slot", { key: '08a8dcaa7bc56cffdf52f5fc5f043b6e44e4efff', name: "right" }))))));
28078
+ }, "aria-label": this.accessibleLabel }, hAsync("div", { key: 'ac3f72269798fe1d29734ed2848149b1f3197815', class: "container" }, hAsync("div", { key: '01fd28d4455b94221b7664475f7f8d948851b1ae', class: "list", role: "list" }, hAsync("slot", { key: '51d7c5144022b4d1e580a9d33e9fff683e06e537', name: "left" })), hAsync("div", { key: '2fd278a57422a9751f84a4faedbb26cfd8a6095c', class: "list", role: "list" }, hAsync("slot", { key: '0e7197b5ed23a575b00e3c5dca361da1b1dfbfb0', name: "right" }))))));
27704
28079
  }
27705
28080
  get element() { return getElement(this); }
27706
28081
  static get style() { return duetToolbarCss; }
@@ -27781,18 +28156,18 @@ class DuetToolbarDropdown {
27781
28156
  itemsAlign = this.element.parentElement.getAttribute("slot") === "left" ? "right" : "left";
27782
28157
  }
27783
28158
  const variation = this.variation === "negative" ? "negative" : "white";
27784
- return (hAsync(Host, { key: '22cb35015320274acce981985df55799665b713a', role: "listitem" }, hAsync("div", { key: '466adb2c4849f05177cfe4a50f7ac1faa08949ba', class: {
28159
+ return (hAsync(Host, { key: '260d43c3c36ccc6473ada8644b3cdd6a59ae12b8', role: "listitem" }, hAsync("div", { key: 'cd8bcc17284e41d498018e7a0f8bc202b263c27c', class: {
27785
28160
  "duet-toolbar-dropdown": true,
27786
28161
  "duet-theme-turva": this.theme === "turva",
27787
28162
  [itemsAlign]: true,
27788
28163
  [variation]: true,
27789
- } }, hAsync("button", { key: 'dc93624c73cce00736c82811b784ae313e15dd77', 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: {
28164
+ } }, hAsync("button", { key: '8a4052995f9e9c148b96254b173ea8cad339b9b5', 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: {
27790
28165
  active: this.active,
27791
28166
  open: this.open,
27792
- }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (hAsync("duet-icon", { key: '5f01f840acddd63571251a53b8e5f948ab9f4e9c', theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), hAsync("span", { key: '9bb302d4f43dffd773318d9e51efdac336fca57d', class: "label" }, hAsync("slot", { key: '98ca0e3de14cf72a8744842709e29715940cf9ef', name: "label" }), hAsync("duet-icon", { key: '8cbb044036478aeebb855d566b46180344a42b6f', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { key: 'b3599e83b70469818f63333ff6b6379ee73d55c0', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
28167
+ }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (hAsync("duet-icon", { key: 'cc9305e0cab43bdddd6b29985921bc0e3ac6f2cc', theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), hAsync("span", { key: 'bfa1bcc44a13762c3c7ed54b788ac83e4f9eaf36', class: "label" }, hAsync("slot", { key: 'bb0fca1e6dd3a2bedb48f3cc737847fa92f4f887', name: "label" }), hAsync("duet-icon", { key: '8a4ebc94bf7951dcab09cd91c77858559020da81', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { key: '95fbfa1b864246ce99b84ca5a99832683d0cfea3', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
27793
28168
  items: true,
27794
28169
  hidden: !this.open,
27795
- } }, hAsync("slot", { key: '28830c7ce0bb0900d77074989dd4f239158ae5b4' })))));
28170
+ } }, hAsync("slot", { key: '029b14e34e87faf198b6d77b234d40c9579d72f7' })))));
27796
28171
  }
27797
28172
  get element() { return getElement(this); }
27798
28173
  static get style() { return duetToolbarDropdownCss; }
@@ -27858,11 +28233,11 @@ class DuetToolbarDropdownLink {
27858
28233
  * Always the last one in the class.
27859
28234
  */
27860
28235
  render() {
27861
- return (hAsync(Host, { key: '3e2d19344c30c5f4aaa61b8ba843140145f9472e' }, hAsync("a", { key: '1c6b82c5be15bb9aae1591a3ad4b677a933f42d5', class: {
28236
+ return (hAsync(Host, { key: 'b00b4ee6b05837bd3221558d4031e19655e78c2d' }, hAsync("a", { key: '4bc395b03ce0515b092b261364b0461838ce5cbc', class: {
27862
28237
  "duet-toolbar-dropdown-link": true,
27863
28238
  "duet-theme-turva": this.theme === "turva",
27864
28239
  active: this.active,
27865
- }, 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: '77cb536dcca7ad1a91b58af50a9ba02709f9cbf9', name: this.icon, size: "x-small", margin: "none" }), hAsync("span", { key: '2dafae9c60150889a0d75f3b87e8744d8d236095', class: "label" }, hAsync("slot", { key: '08c22e9d5dee73d3398843901654cfd78505f5b4' })), this.active && (hAsync("duet-icon", { key: '0a99a17b4854ea9d34a86f762c3651e8ef018bd7', name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor" })))));
28240
+ }, 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: 'f8d7e0d960179596c5ee99525bfbd9ee2bdc5509', name: this.icon, size: "x-small", margin: "none" }), hAsync("span", { key: '6713e5f3ad08944baddaa01c8264293861d2aae2', class: "label" }, hAsync("slot", { key: 'd64f498eb934e4e40c3851eff2565412bfdad6d0' })), this.active && (hAsync("duet-icon", { key: '454ecd536a2b3643e93b7373fa5c9820a33cecdf', name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor" })))));
27866
28241
  }
27867
28242
  get element() { return getElement(this); }
27868
28243
  static get style() { return duetToolbarDropdownLinkCss; }
@@ -27965,17 +28340,17 @@ class DuetToolbarItem {
27965
28340
  : this.variation === "secondary"
27966
28341
  ? "secondary"
27967
28342
  : "default";
27968
- return (hAsync(Host, { key: 'c3b26e4d4e56b5fcb57e2d2ca8d1a4a80932ede0', role: "listitem" }, this.badge && hAsync("duet-indicator", { key: 'a4d75c4424e5dead88857241566a903d66c5dda4', variation: "change" }), hAsync(TagName, { key: '77679eaaff1b154f672efb08e66f0ad292db0f8f', target: !this.url ? null : this.external ? "_blank" : "_self", ref: element => (this.itemElement = element), class: {
28343
+ return (hAsync(Host, { key: '96487fd2e42789280cf1dc0538ff07b0f1f79264', role: "listitem" }, this.badge && hAsync("duet-indicator", { key: '5bfd9faa52039e80c72afce6d477602c5b6e3f8e', variation: "change" }), hAsync(TagName, { key: 'b5c8b5ac1cfe6549946e9820a2dd540490c606da', target: !this.url ? null : this.external ? "_blank" : "_self", ref: element => (this.itemElement = element), class: {
27969
28344
  "duet-toolbar-item": true,
27970
28345
  "duet-theme-turva": this.theme === "turva",
27971
28346
  active: this.active,
27972
28347
  [variation]: true,
27973
- }, 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: '6c72cdc06b33d97ddecbea15e5691761629cbd1d', class: "duet-toolbar-icon" }, hAsync("duet-icon", { key: '9ad57ebb409bafcb728b0e1c8f7aea4a226ff685', size: "x-small", name: this.leadingIcon, margin: "none", theme: this.theme, color: "currentColor" }), this.badge && hAsync("div", { key: 'fd35055e936b2ec542013846a21ae65f5a713d40', class: "duet-toolbar-badge" }))), hAsync("slot", { key: '4b83ed066d92cdebc3a1bd555881cdc66e65874c' }), (this.trailingIcon || (this.url && this.external)) && (hAsync("div", { key: '613e202f68cb843af58cbfdc8a416c8305dc02de', class: "duet-toolbar-icon" }, hAsync("duet-icon", { key: 'a124e6d2a3235c867451110766122664707939b5', class: {
28348
+ }, 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: '082cebef94f34c57a5617891c46e05cfc59f3c2c', class: "duet-toolbar-icon" }, hAsync("duet-icon", { key: '802fab1146fc2154f1c80e097e10464507548e5f', size: "x-small", name: this.leadingIcon, margin: "none", theme: this.theme, color: "currentColor" }), this.badge && hAsync("div", { key: 'a484198c098521fd9e8745ac234f6dbc231f029c', class: "duet-toolbar-badge" }))), hAsync("slot", { key: '0993265ee4d23c17f425ee776ec9c14cb6454308' }), (this.trailingIcon || (this.url && this.external)) && (hAsync("div", { key: '90af7cbc5f00e4dc859cde8ae0d1166b358f097e', class: "duet-toolbar-icon" }, hAsync("duet-icon", { key: 'd2df808e4c985501fbd5bb96946f2d9c20a2b116', class: {
27974
28349
  "trailing-icon": !!this.trailingIcon,
27975
28350
  "trailing-icon-arrow": this.trailingIcon === "action-arrow-down-small",
27976
28351
  "external-icon": !!(this.url && this.external),
27977
28352
  rotate: this.trailingIcon === "action-arrow-down-small" && this.accessibleExpanded,
27978
- }, 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: '22150daad32a8e7a5d4ec06e62d78caf4c822232', class: "duet-toolbar-badge" }))))));
28353
+ }, 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: 'e9b4919435ccd37e9906c033822de9195c57d73e', class: "duet-toolbar-badge" }))))));
27979
28354
  }
27980
28355
  get element() { return getElement(this); }
27981
28356
  static get style() { return duetToolbarItemCss; }
@@ -28042,12 +28417,12 @@ class DuetToolbarLink {
28042
28417
  */
28043
28418
  render() {
28044
28419
  const variation = this.variation === "negative" ? "negative" : "white";
28045
- return (hAsync(Host, { key: 'd5a11257db70c563cd2b15b062b11fc221b88c51', role: "listitem" }, hAsync("a", { key: 'a104104ad8ad87083e0329f3c7c70d175b2b23c6', class: {
28420
+ return (hAsync(Host, { key: 'f932af82492da79cb86e7c40bbb887e7228489eb', role: "listitem" }, hAsync("a", { key: 'ad12f0ddfa37ebe9be01756fd35696a00687a736', class: {
28046
28421
  "duet-toolbar-link": true,
28047
28422
  "duet-theme-turva": this.theme === "turva",
28048
28423
  active: this.active,
28049
28424
  [variation]: true,
28050
- }, href: this.href, "aria-current": this.active ? "true" : "false", "aria-label": this.accessibleLabel }, this.icon && (hAsync("duet-icon", { key: '592cc3e8546dfc89ed53a591c367c4f88d18abea', size: "x-small", name: this.icon, margin: "none", theme: this.theme, color: "currentColor" })), hAsync("slot", { key: '2ce50e32cb75f09a50ca4dafdcbc7e94aea500c3' }))));
28425
+ }, href: this.href, "aria-current": this.active ? "true" : "false", "aria-label": this.accessibleLabel }, this.icon && (hAsync("duet-icon", { key: '143aac785a87f5989758021a4aa61a1794e9bada', size: "x-small", name: this.icon, margin: "none", theme: this.theme, color: "currentColor" })), hAsync("slot", { key: '9e6764f6a433cd437e0d248a09f87727cf9799cf' }))));
28051
28426
  }
28052
28427
  get element() { return getElement(this); }
28053
28428
  static get style() { return duetToolbarLinkCss; }
@@ -28400,14 +28775,14 @@ class DuetTooltipButton {
28400
28775
  * Always the last one in the class.
28401
28776
  */
28402
28777
  render() {
28403
- const visuallyHidden = hAsync("duet-visually-hidden", { key: 'ded762f4e7856c8f1c4d095463a406e98f7b82f0' }, this.accessibleLabel);
28404
- return (hAsync(Host, { key: '6711d2a89b2dc210baf333a0c0023e78b7d5697f' }, hAsync("button", { key: '1d9e860f68303cbe9f78df1b29643d27d266168c', ref: el => (this.buttonElement = el), "aria-controls": this.tooltipId, "aria-expanded": this.active ? "true" : "false", type: "button", class: {
28778
+ const visuallyHidden = hAsync("duet-visually-hidden", { key: 'a1f134eb2b35ec5fa474cec67587058e0cf9aad1' }, this.accessibleLabel);
28779
+ return (hAsync(Host, { key: '5f14833c83030b15a1f9377e2dd3a4fcfe9551fe' }, hAsync("button", { key: '330df985e0ade31c2dbdba3b7d0149742c77b02d', ref: el => (this.buttonElement = el), "aria-controls": this.tooltipId, "aria-expanded": this.active ? "true" : "false", type: "button", class: {
28405
28780
  "duet-tooltip-button": true,
28406
28781
  "duet-tooltip-button-has-label": !!this.label,
28407
28782
  "duet-theme-turva": this.theme === "turva",
28408
28783
  "duet-tooltip-button-negative": this.negative,
28409
28784
  "duet-tooltip-button-in-badge": this.inBadge,
28410
- } }, hAsync("svg", { key: 'c9891f25e887b6d7a7a4abac4df3a70e4ddf384a', "aria-hidden": "true", role: "img", fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, hAsync("path", { key: '9bd8e387ee6d5a371c80a5f2804661463b044875', 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: '438bd9ee6f284ee38e3dab022b945fce9f1623ed', cx: "11.625", cy: "7.125", r: "1.125" }), hAsync("path", { key: '210feefcda3be6b66e077942f3e55129a2492277', 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))));
28785
+ } }, hAsync("svg", { key: 'f2d13cb590a885f19398aa5668d3bff5fbdcd5de', "aria-hidden": "true", role: "img", fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, hAsync("path", { key: '3f7d2c195567d326319cd30f84c3b62aab028f30', 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: '393be8809c4fa503e1638a5b424a6f55d1c4358a', cx: "11.625", cy: "7.125", r: "1.125" }), hAsync("path", { key: '92977962b50e4f53fa9d2b3f3df9febae0f70256', 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))));
28411
28786
  }
28412
28787
  get element() { return getElement(this); }
28413
28788
  static get style() { return duetTooltipButtonCss; }
@@ -28473,14 +28848,14 @@ class DuetTooltipPopup {
28473
28848
  this.contentEl.focus();
28474
28849
  }
28475
28850
  render() {
28476
- return (hAsync(Host, { key: '29d3de91254dc1a869484f580648311e15f56b30' }, hAsync("div", { key: '662564b5f5fc5f057084ca43fbe0d5d63fa2dc9f', class: {
28851
+ return (hAsync(Host, { key: '678752dd505719576a22fb62106bb57ea1b6854a' }, hAsync("div", { key: 'fc85219c32e7013c66aa895c96e0da3141e8dfca', class: {
28477
28852
  "duet-tooltip": true,
28478
28853
  "duet-theme-turva": this.theme === "turva",
28479
28854
  "duet-tooltip-active": this.active === true,
28480
- } }, hAsync(FocusGuard, { key: '92e046c9658d3e58aa005493211c2e80b7f6d4e9', moveFocusTo: this.buttonEl }), hAsync("div", { key: '13dec9440e718fa77cb153d95cc85767b363b560', ref: element => (this.contentEl = element), class: {
28855
+ } }, hAsync(FocusGuard, { key: '4b35fea7062e07b744028e60d97f0093e1f1630f', moveFocusTo: this.buttonEl }), hAsync("div", { key: '7ca1e5455df1d7759f3b885ea6e3b2ef65b4ad25', ref: element => (this.contentEl = element), class: {
28481
28856
  "duet-tooltip-content-area": true,
28482
28857
  "duet-theme-turva": this.theme === "turva",
28483
- }, tabindex: -1, id: this.tooltipId }, hAsync("slot", { key: '2b64af48cdfa6caeed19a5f2d013b46d99e4bfde' })), hAsync("div", { key: '77032302c1bef1d1b58194dfae5cc3f4e53a2bd4', ref: element => (this.arrowEl = element), class: { arrow: true, [this.placement]: true }, style: this.arrowStyles }, hAsync("div", { key: '5cf2ad060245b552eacc2cb4baf7d23bd167fefa', class: { "arrow-container": true, [this.placement]: true } })), hAsync("button", { key: 'd2c072d73e9c1830d9dda8cbdddcabb926741a58', type: "button", class: "duet-tooltip-close", onClick: this.handleCloseClick, ref: el => (this.buttonEl = el) }, hAsync("duet-icon", { key: '3139344fdf52410ea53e3fd84fc2c464c446e696', name: "navigation-close-small", margin: "none", color: "currentColor", size: "xxx-small" }), hAsync("duet-visually-hidden", { key: '45770929e752f3292cfb55a302c4bbb788ae7d52' }, this.accessibleCloseLabel)), hAsync(FocusGuard, { key: 'b88bd4a634b78548fb910db91e2b3263cb7e5bd2', moveFocusTo: this.contentEl }))));
28858
+ }, tabindex: -1, id: this.tooltipId }, hAsync("slot", { key: 'e9ca64614c0b10767772a29260a50a1ad3c98638' })), hAsync("div", { key: '672fb0df64ac13f3b6608738bca0310ee679f663', ref: element => (this.arrowEl = element), class: { arrow: true, [this.placement]: true }, style: this.arrowStyles }, hAsync("div", { key: '8c7013f5eeb4d74ab615abb0cc08c4de67555fa8', class: { "arrow-container": true, [this.placement]: true } })), hAsync("button", { key: '691ad59b5485fe06bec6f2716f833f096c3a4339', type: "button", class: "duet-tooltip-close", onClick: this.handleCloseClick, ref: el => (this.buttonEl = el) }, hAsync("duet-icon", { key: '33e72bd58a21e087218081bd41f2dc5a678569fa', name: "navigation-close-small", margin: "none", color: "currentColor", size: "xxx-small" }), hAsync("duet-visually-hidden", { key: '6c331c361ff9e653466ac2e1b99531f1d0eb7ec4' }, this.accessibleCloseLabel)), hAsync(FocusGuard, { key: '8c3297577babe082e650f8e75b2713fac2a2c377', moveFocusTo: this.contentEl }))));
28484
28859
  }
28485
28860
  get element() { return getElement(this); }
28486
28861
  static get style() { return duetTooltipPopupCss; }
@@ -28629,14 +29004,14 @@ class DuetTray {
28629
29004
  * Always the last one in the class.
28630
29005
  */
28631
29006
  render() {
28632
- return (hAsync("div", { key: '62e6d87f9a5ff9a959bd15fea1a0b6d4f2f78018', class: {
29007
+ return (hAsync("div", { key: '0838308a751d5bd344d9dcf549972c164bc486d3', class: {
28633
29008
  "duet-tray": true,
28634
29009
  "duet-tray-is-active": this.active,
28635
29010
  "duet-tray-is-hidden": this.hiddenState,
28636
29011
  "duet-tray-is-responsive": this.responsive,
28637
29012
  "duet-theme-turva": this.theme === "turva",
28638
29013
  "duet-tray-is-expandable": this.hasAdditionalContent,
28639
- } }, hAsync("div", { key: 'f1c78227de8998333acf857905e95c6d6be25937', class: "duet-tray-default-content", role: "status" }, hAsync("slot", { key: 'd7748f81620cd98c5a8b35a18e344302d756a0a0' })), this.hasAdditionalContent && (hAsync(Fragment, { key: 'f87597291a46075ceda6d114fe67ffa1df52870b' }, hAsync("button", { key: '2886b0325718e16d0c904fa327ceb3d8c318d7bf', "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: 'afe046c5fc6baf22268fe063cd0c6d2bd0e661ea', name: "action-arrow-down", size: "small", color: "currentColor", margin: "none" }), hAsync("duet-visually-hidden", { key: '44c04a86d76063ef62ecd3544f25a09a1d6901dc' }, this.expanded ? this.accessibleCloseLabel : this.accessibleOpenLabel)), hAsync("div", { key: '89aa1e7d332a1d8aa649eaff0c798bfaf6349964', id: this.expandableId, class: { "duet-tray-expandable": true, active: this.expanded } }, hAsync("div", { key: 'ad9f9814c60e70a8a19a0872d3006fcdd4d36f62', class: "duet-tray-expandable-content" }, hAsync("slot", { key: 'd319a5002fb41dbd3f7d036c881a064a5f2dd832', name: "additional" })))))));
29014
+ } }, hAsync("div", { key: '53974066f858b18963305b8765ae22d268a46df3', class: "duet-tray-default-content", role: "status" }, hAsync("slot", { key: 'be7397d2f73ae4147ca097c7567c4fe10b59b2e8' })), this.hasAdditionalContent && (hAsync(Fragment, { key: 'c698de98aa274785a9287095f9a2b19a1e3707a4' }, hAsync("button", { key: '7b0a76ccba8af4c2e3851cbbbf9dd3e2de73a674', "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: 'abf622b92b58b146b03f6717670dc1bd6de3c1fd', name: "action-arrow-down", size: "small", color: "currentColor", margin: "none" }), hAsync("duet-visually-hidden", { key: '3d191e5254f83b0500fd3d15f6ff578efa264da7' }, this.expanded ? this.accessibleCloseLabel : this.accessibleOpenLabel)), hAsync("div", { key: 'd82fa1ac499869d855de59b7855e2375fd811b80', id: this.expandableId, class: { "duet-tray-expandable": true, active: this.expanded } }, hAsync("div", { key: '62b911579dc9e0013bd7e57f1ba4f77098cc7b33', class: "duet-tray-expandable-content" }, hAsync("slot", { key: 'c16585065375ed05c264abd6b15c0f02482d9c81', name: "additional" })))))));
28640
29015
  }
28641
29016
  get element() { return getElement(this); }
28642
29017
  static get style() { return duetTrayCss; }
@@ -29951,10 +30326,10 @@ class DuetUpload {
29951
30326
  this.externalUploadButton.accessibleLabel = `${this.externalUploadButton.innerText}. ${caption}`;
29952
30327
  }
29953
30328
  // @ts-ignore
29954
- return (hAsync(Host, { key: 'fe296e7a1f173e1f9d106725647de568270f7381', class: { "duet-m-0": this.margin === "none" } }, hAsync("duet-fieldset", { key: '72451c8e8021c8efdbef350e92d5d00db671f5eb', "label-heading-level": this.headerHeadingLevel, "label-hidden": this.hideHeader, label: this.label }, hAsync("slot", { key: '120762b8d74276d518b1a4aa5ebc9267bb821b86', name: "header" }), !this.files.size && (hAsync("duet-empty-state", { key: '7d1685f051c1607ed5984f21ca0306cffb135f9c', id: this.labelId, part: this.identifier ? `${this.identifier}-empty-state` : "duet-upload-empty-state", icon: "messaging-attachment" }, hAsync("duet-paragraph", { key: '4341d78e97e8842976517a9427dad1fb79f15600', margin: "none" }, this.fileListEmpty))), !!this.files.size && hAsync("slot", { key: 'ebd5fcbee689a2d69689a66da5770057f959e05b', name: "fileheader" }), !!this.files.size && (hAsync("duet-upload-aria-status", { key: 'da8d067ccff2b9de4ef7036d28538c3e1a99813a', 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: '72fb36ce235d388cf811d0b1e2689e673f166aee', name: "filefooter" }), hAsync("slot", { key: '1f0f3dc31f01636b94567622dc365a743bb9c555', name: "uploadfooter" }), this.captionOnBottom && (hAsync("duet-caption", { key: '071ab836a62ea4c49ab66af59eebf8fd8e6ac0a1', margin: "none", size: "small" }, hAsync("div", { key: '8cb3bbe8afe46260ee01de1ccfec1171ad7d15b3', class: "upload-bottom-caption" }, caption))), hAsync("slot", { key: '6ccb7bba76d874455cb6c6e4cde19fb4f3118c84', name: "afterfooter" }), !this.hideButton && (hAsync(Fragment, { key: 'fb69a17ce2cd8ab89382b3a88aaf11c3ec5111d3' }, hAsync("duet-spacer", { key: 'd12382964296660b0138d5e7cb23119d9ba51315', size: "large" }), hAsync("duet-button", { key: '585b1a6670caf0810ea89a1dc930b4cb7a45c09a', 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 ||
30329
+ return (hAsync(Host, { key: '18e9b69e6b294624c3caa4197ac3064ad377edb4', class: { "duet-m-0": this.margin === "none" } }, hAsync("duet-fieldset", { key: '54bea5df88e753afe0765f709639c895c83182f7', "label-heading-level": this.headerHeadingLevel, "label-hidden": this.hideHeader, label: this.label }, hAsync("slot", { key: '6eb5775f80ab5f44f44e3d14140348b86e8f7739', name: "header" }), !this.files.size && (hAsync("duet-empty-state", { key: '63e7bbc89678d80abdc5a85b7e90db25af8f2063', id: this.labelId, part: this.identifier ? `${this.identifier}-empty-state` : "duet-upload-empty-state", icon: "messaging-attachment" }, hAsync("duet-paragraph", { key: 'cabd4d22d34a0c59af38028a68b9aa9da78e648e', margin: "none" }, this.fileListEmpty))), !!this.files.size && hAsync("slot", { key: 'a8c8852e2552939af25edd121979d38dd98014ed', name: "fileheader" }), !!this.files.size && (hAsync("duet-upload-aria-status", { key: '29a21718b2bb28697aa159e663226899bec68b74', 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: '3c0b11350cf2bd0dfbbb4436841c0fb255a696ba', name: "filefooter" }), hAsync("slot", { key: 'ace089c7e46c8c7e3d495f53c796494c5102d800', name: "uploadfooter" }), this.captionOnBottom && (hAsync("duet-caption", { key: '46dee1a0c5ede802dbbaa757ead7758153b02333', margin: "none", size: "small" }, hAsync("div", { key: 'bf5885654a9a43b388484b906392f88d1519d4ef', class: "upload-bottom-caption" }, caption))), hAsync("slot", { key: 'aa6f54876cbc89d68f1c199b41032967b8fdc0a7', name: "afterfooter" }), !this.hideButton && (hAsync(Fragment, { key: '0c26de4c43da284d32d022f94c7ffdc70744971a' }, hAsync("duet-spacer", { key: 'a89ce9a25c0ca6c15c74162224e8f229f4f4d28c', size: "large" }), hAsync("duet-button", { key: '4bcc0ede230f033b84f1acba6c6f2c29704d5477', 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 ||
29955
30330
  this.bytesMaxReached ||
29956
30331
  this.filesToUploadExceedsLimit ||
29957
- this.filesToUploadTotalSizeIsAboveMax) && (hAsync(Fragment, { key: '2c6faea7f05f92b8156afb6125ed218230d03a9b' }, hAsync("duet-spacer", { key: '0a03717e16ad6080343f46e9cea6235fe7c95fb3', size: "medium" }), hAsync("duet-alert", { key: '6e455df241d9c0371a4ac45e9d7f11f9d5b2469a', 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: '0dcf57e2b593b8b4581b9516300d7fcf93a94ded', "aria-hidden": "true" }, hAsync("input", { key: '8c8089792d4049c26b827d1b543bd9ddaaba326b', ref: input => {
30332
+ this.filesToUploadTotalSizeIsAboveMax) && (hAsync(Fragment, { key: 'b63c5090df58fbeeb81d21c2962e2e4bf374475c' }, hAsync("duet-spacer", { key: '23665cef847c4e6a4b5f892a4fb680efb7a5ac3a', size: "medium" }), hAsync("duet-alert", { key: '05ac7cfb41b89c78833aef892eb63ace7cde0424', 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: 'ce48b9cd57df20b21e7d1e6e82a6fb36ccfa0bb8', "aria-hidden": "true" }, hAsync("input", { key: '5c6545180d5327d5790327897478dacade1df102', ref: input => {
29958
30333
  this.nativeInput = input;
29959
30334
  }, accept: !this.limitSelection ? undefined : `${this.allowedMimetypes},${this.allowedExtensions}`, onBlur: this.onBlur, onFocus: this.onFocus, onChange: e => this.onChange(e), type: "file", class: {
29960
30335
  "duet-upload": true,
@@ -30296,7 +30671,7 @@ class DuetUploadAriaStatus {
30296
30671
  * Always the last one in the class.
30297
30672
  */
30298
30673
  render() {
30299
- return (hAsync(Host, { key: '8da58752d98bfb8c52ddcd1d48112711fd2ea5c6', role: "status", "aria-live": "assertive", "aria-atomic": "true", "aria-relevant": "all" }, hAsync("duet-visually-hidden", { key: '78ecb9ee37907bdbdb174bf58b75af88b2edfbd1' }, this.statusMessage)));
30674
+ return (hAsync(Host, { key: '9c5fda7baf87f2da5f17457f7cef35de49d7e9ba', role: "status", "aria-live": "assertive", "aria-atomic": "true", "aria-relevant": "all" }, hAsync("duet-visually-hidden", { key: '46fa9e08ae5a48ae3033846cb67e0c57f319d51e' }, this.statusMessage)));
30300
30675
  }
30301
30676
  get element() { return getElement(this); }
30302
30677
  static get watchers() { return {
@@ -30476,9 +30851,9 @@ class DuetUploadItem {
30476
30851
  const { uid, meta, item } = this.data;
30477
30852
  const Badges = meta && meta.badges ? (hAsync("span", null, meta.badges.map(badgeText => (hAsync("duet-badge", { color: "primary" }, badgeText))))) : undefined;
30478
30853
  const actionDescription = `${meta && meta.badges ? meta.badges.join(",") : ""} ${item.name}`;
30479
- return (hAsync("div", { key: '6ce0c4b0b64b9726755ba74c037759bfa90d0a1a', class: {
30854
+ return (hAsync("div", { key: '1e8a7b12404ac8539c77b5a1b93c062e3f586464', class: {
30480
30855
  "upload-item-row": true,
30481
- } }, this.showCategory && (hAsync("div", { key: 'a54b15975dfb0b72019838f7b77009c974b9e4bf', class: "item-categories" }, hAsync("duet-heading", { key: '1f71cfd6a0573e176e7874fa14005afc36d7a885', class: "heading", color: "color-secondary", level: "h6", weight: "semibold" }, getLocaleString(this.categoryLabel)), Badges)), hAsync("div", { key: '5788235ef6265f08adbc17020fccb8fa8ba5bb77', class: { "item-name": true, "no-category": !this.showCategory } }, !!this.label && (hAsync("duet-heading", { key: '43235e4073c7cb9c3b81c9efd2c58c3938c5503c', class: "heading", color: "color-secondary", level: "h6", weight: "semibold" }, getLocaleString(this.label))), this.getFileNameLine()), hAsync("div", { key: '5d69daba599aec48c4a98ca0f1543a9dbbead4b3', class: "item-actions" }, this.actions.map(actionItem => {
30856
+ } }, this.showCategory && (hAsync("div", { key: '362a940d6d61fb4bceb8f994cc1fac5bc1d9d0fb', class: "item-categories" }, hAsync("duet-heading", { key: '57d3573e6094316e98327ff4ddf7782ff624e6bb', class: "heading", color: "color-secondary", level: "h6", weight: "semibold" }, getLocaleString(this.categoryLabel)), Badges)), hAsync("div", { key: '7e7bd71276e64ff416542e1ebf0db39659d863ef', class: { "item-name": true, "no-category": !this.showCategory } }, !!this.label && (hAsync("duet-heading", { key: '8647031137125b3d66db9ea1d29237eb9d4a782a', class: "heading", color: "color-secondary", level: "h6", weight: "semibold" }, getLocaleString(this.label))), this.getFileNameLine()), hAsync("div", { key: 'a5f5fd7dfe122082e97378b9cae8f0196a99b5e8', class: "item-actions" }, this.actions.map(actionItem => {
30482
30857
  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) }));
30483
30858
  }))));
30484
30859
  }
@@ -30518,7 +30893,7 @@ class DuetVisuallyHidden {
30518
30893
  * Always the last one in the class.
30519
30894
  */
30520
30895
  render() {
30521
- return (hAsync(Host, { key: 'ef47dba78565c8af97e21ac63b93ca377c20f0dc', class: "duet-visually-hidden" }, hAsync("slot", { key: '228e005804125169d172ba680bed0f6955aa13a0' })));
30896
+ return (hAsync(Host, { key: '29e733429b9aa2454e094a667e28c97eeb489d9e', class: "duet-visually-hidden" }, hAsync("slot", { key: '73596a3d050b4f00d6a3261070811062a91a2519' })));
30522
30897
  }
30523
30898
  get element() { return getElement(this); }
30524
30899
  static get style() { return duetVisuallyHiddenCss; }
@@ -30623,6 +30998,7 @@ registerComponents([
30623
30998
  DuetTab,
30624
30999
  DuetTabGroup,
30625
31000
  DuetTable,
31001
+ DuetTeaser,
30626
31002
  DuetTextarea,
30627
31003
  DuetToggle,
30628
31004
  DuetToolbar,