@duetds/components 8.0.1 → 8.0.3

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 (699) hide show
  1. package/hydrate/index.js +67 -17
  2. package/lib/cjs/{common-strings-17770d7a.js → common-strings-86913e94.js} +6 -0
  3. package/lib/cjs/duet-action-button.cjs.entry.js +1 -1
  4. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-banner.cjs.entry.js +15 -2
  7. package/lib/cjs/duet-breadcrumb.cjs.entry.js +2 -2
  8. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  9. package/lib/cjs/duet-button_2.cjs.entry.js +31 -9
  10. package/lib/cjs/duet-callout.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-caption_4.cjs.entry.js +2 -2
  12. package/lib/cjs/duet-card.cjs.entry.js +1 -1
  13. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-checkmark.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-chip.cjs.entry.js +1 -1
  16. package/lib/cjs/duet-choice_2.cjs.entry.js +4 -3
  17. package/lib/cjs/duet-collapsible.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-combobox.cjs.entry.js +2 -2
  19. package/lib/cjs/duet-contact-card.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  22. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-editable-table_3.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-footer.cjs.entry.js +2 -2
  27. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-header_2.cjs.entry.js +2 -2
  29. package/lib/cjs/duet-hero.cjs.entry.js +2 -2
  30. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-input_2.cjs.entry.js +1 -1
  32. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-menu-bar.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  40. package/lib/cjs/duet-multiselect.cjs.entry.js +7 -2
  41. package/lib/cjs/duet-nav.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  44. package/lib/cjs/duet-page-heading.cjs.entry.js +1 -1
  45. package/lib/cjs/duet-pagination_2.cjs.entry.js +1 -1
  46. package/lib/cjs/duet-popup-menu-item.cjs.entry.js +1 -1
  47. package/lib/cjs/duet-popup-menu.cjs.entry.js +1 -1
  48. package/lib/cjs/duet-progress.cjs.entry.js +2 -2
  49. package/lib/cjs/duet-promo-card.cjs.entry.js +1 -1
  50. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  51. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  52. package/lib/cjs/duet-scrollable_3.cjs.entry.js +4 -3
  53. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  54. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  55. package/lib/cjs/duet-shaped-image.cjs.entry.js +1 -1
  56. package/lib/cjs/duet-show-more.cjs.entry.js +2 -2
  57. package/lib/cjs/duet-slideout-lang.cjs.entry.js +1 -1
  58. package/lib/cjs/duet-slideout-link.cjs.entry.js +1 -1
  59. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +1 -1
  60. package/lib/cjs/duet-slideout-panel.cjs.entry.js +2 -2
  61. package/lib/cjs/duet-slideout.cjs.entry.js +2 -2
  62. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  63. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +2 -2
  64. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +1 -1
  65. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +1 -1
  66. package/lib/cjs/duet-submenu-bar.cjs.entry.js +2 -2
  67. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  68. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  69. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +1 -1
  70. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +1 -1
  71. package/lib/cjs/duet-toolbar-link.cjs.entry.js +1 -1
  72. package/lib/cjs/duet-toolbar.cjs.entry.js +1 -1
  73. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +2 -2
  74. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  75. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  76. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  77. package/lib/cjs/duet-upload-item.cjs.entry.js +1 -1
  78. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  79. package/lib/cjs/duet.cjs.js +2 -2
  80. package/lib/cjs/{focus-utils-66656094.js → focus-utils-04f168fd.js} +1 -1
  81. package/lib/cjs/{index-780310fa.js → index-b9ee6ca5.js} +1 -1
  82. package/lib/cjs/loader.cjs.js +2 -2
  83. package/lib/collection/common-strings.js +5 -0
  84. package/lib/collection/components/duet-action-button/duet-action-button.a11y.e2e.js +13 -0
  85. package/lib/collection/components/duet-action-button/duet-action-button.js +2 -2
  86. package/lib/collection/components/duet-alert/duet-alert.a11y.e2e.js +20 -0
  87. package/lib/collection/components/duet-alert/duet-alert.js +1 -1
  88. package/lib/collection/components/duet-badge/duet-badge.a11y.e2e.js +20 -0
  89. package/lib/collection/components/duet-banner/duet-banner.a11y.e2e.js +34 -0
  90. package/lib/collection/components/duet-banner/duet-banner.js +31 -1
  91. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.css +2 -0
  92. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.a11y.e2e.js +17 -0
  93. package/lib/collection/components/duet-button/duet-button.a11y.e2e.js +48 -0
  94. package/lib/collection/components/duet-button/duet-button.js +83 -13
  95. package/lib/collection/components/duet-callout/duet-callout.a11y.e2e.js +17 -0
  96. package/lib/collection/components/duet-caption/duet-caption.a11y.e2e.js +13 -0
  97. package/lib/collection/components/duet-caption/duet-caption.js +1 -1
  98. package/lib/collection/components/duet-card/duet-card.a11y.e2e.js +29 -0
  99. package/lib/collection/components/duet-card/duet-card.js +3 -3
  100. package/lib/collection/components/duet-checkbox/duet-checkbox.a11y.e2e.js +20 -0
  101. package/lib/collection/components/duet-checkbox/duet-checkbox.js +4 -4
  102. package/lib/collection/components/duet-chip/duet-chip.a11y.e2e.js +25 -0
  103. package/lib/collection/components/duet-chip/duet-chip.js +4 -4
  104. package/lib/collection/components/duet-choice/duet-choice.a11y.e2e.js +79 -0
  105. package/lib/collection/components/duet-choice/duet-choice.js +4 -3
  106. package/lib/collection/components/duet-choice-group/duet-choice-group.a11y.e2e.js +17 -0
  107. package/lib/collection/components/duet-collapsible/duet-collapsible.a11y.e2e.js +24 -0
  108. package/lib/collection/components/duet-collapsible/duet-collapsible.js +3 -3
  109. package/lib/collection/components/duet-combobox/duet-combobox.a11y.e2e.js +17 -0
  110. package/lib/collection/components/duet-combobox/duet-combobox.js +4 -4
  111. package/lib/collection/components/duet-contact-card/duet-contact-card.a11y.e2e.js +36 -0
  112. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.a11y.e2e.js +16 -0
  113. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.js +1 -1
  114. package/lib/collection/components/duet-date-picker/duet-date-picker.a11y.e2e.js +13 -0
  115. package/lib/collection/components/duet-date-picker/duet-date-picker.js +5 -5
  116. package/lib/collection/components/duet-divider/duet-divider.a11y.e2e.js +13 -0
  117. package/lib/collection/components/duet-divider/duet-divider.js +1 -1
  118. package/lib/collection/components/duet-editable-table/duet-editable-table.a11y.e2e.js +202 -0
  119. package/lib/collection/components/duet-editable-table/duet-editable-table.js +5 -5
  120. package/lib/collection/components/duet-empty-state/duet-empty-state.a11y.e2e.js +15 -0
  121. package/lib/collection/components/duet-empty-state/duet-empty-state.js +1 -1
  122. package/lib/collection/components/duet-fieldset/duet-fieldset.a11y.e2e.js +17 -0
  123. package/lib/collection/components/duet-footer/duet-footer.a11y.e2e.js +22 -0
  124. package/lib/collection/components/duet-footer/duet-footer.js +7 -7
  125. package/lib/collection/components/duet-grid/duet-grid.a11y.e2e.js +17 -0
  126. package/lib/collection/components/duet-grid/duet-grid.js +3 -3
  127. package/lib/collection/components/duet-header/duet-header.a11y.e2e.js +42 -0
  128. package/lib/collection/components/duet-header/duet-header.js +15 -15
  129. package/lib/collection/components/duet-heading/duet-heading.a11y.e2e.js +13 -0
  130. package/lib/collection/components/duet-heading/duet-heading.js +1 -1
  131. package/lib/collection/components/duet-hero/duet-hero.a11y.e2e.js +70 -0
  132. package/lib/collection/components/duet-hero/duet-hero.js +5 -5
  133. package/lib/collection/components/duet-icon/duet-icon.a11y.e2e.js +13 -0
  134. package/lib/collection/components/duet-icon/duet-icon.js +1 -1
  135. package/lib/collection/components/duet-input/duet-input.a11y.e2e.js +33 -0
  136. package/lib/collection/components/duet-input/duet-input.js +9 -9
  137. package/lib/collection/components/duet-label/duet-label.a11y.e2e.js +14 -0
  138. package/lib/collection/components/duet-label/duet-label.js +2 -2
  139. package/lib/collection/components/duet-layout/duet-layout.a11y.e2e.js +18 -0
  140. package/lib/collection/components/duet-layout/duet-layout.js +1 -1
  141. package/lib/collection/components/duet-link/duet-link.a11y.e2e.js +39 -0
  142. package/lib/collection/components/duet-list/duet-list.a11y.e2e.js +30 -0
  143. package/lib/collection/components/duet-list/duet-list.js +3 -3
  144. package/lib/collection/components/duet-logo/duet-logo.a11y.e2e.js +13 -0
  145. package/lib/collection/components/duet-logo/duet-logo.js +1 -1
  146. package/lib/collection/components/duet-menu-bar/duet-menu-bar.a11y.e2e.js +27 -0
  147. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +1 -1
  148. package/lib/collection/components/duet-modal/duet-modal.a11y.e2e.js +49 -0
  149. package/lib/collection/components/duet-modal/duet-modal.js +3 -3
  150. package/lib/collection/components/duet-multiselect/duet-multiselect.a11y.e2e.js +22 -0
  151. package/lib/collection/components/duet-multiselect/duet-multiselect.js +11 -6
  152. package/lib/collection/components/duet-notification/duet-notification.a11y.e2e.js +20 -0
  153. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.a11y.e2e.js +28 -0
  154. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +1 -1
  155. package/lib/collection/components/duet-number-input/duet-number-input.a11y.e2e.js +14 -0
  156. package/lib/collection/components/duet-number-input/duet-number-input.js +5 -5
  157. package/lib/collection/components/duet-page-heading/duet-page-heading.a11y.e2e.js +15 -0
  158. package/lib/collection/components/duet-pagination/duet-pagination.a11y.e2e.js +36 -0
  159. package/lib/collection/components/duet-pagination/duet-pagination.js +2 -2
  160. package/lib/collection/components/duet-paragraph/duet-paragraph.a11y.e2e.js +18 -0
  161. package/lib/collection/components/duet-paragraph/duet-paragraph.js +3 -3
  162. package/lib/collection/components/duet-popup-menu/duet-popup-menu.a11y.e2e.js +27 -0
  163. package/lib/collection/components/duet-popup-menu/duet-popup-menu.js +1 -1
  164. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +2 -2
  165. package/lib/collection/components/duet-progress/duet-progress.a11y.e2e.js +17 -0
  166. package/lib/collection/components/duet-progress/duet-progress.js +1 -1
  167. package/lib/collection/components/duet-promo-card/duet-promo-card.a11y.e2e.js +43 -0
  168. package/lib/collection/components/duet-radio/duet-radio.a11y.e2e.js +13 -0
  169. package/lib/collection/components/duet-radio/duet-radio.js +4 -4
  170. package/lib/collection/components/duet-radio-group/duet-radio-group.a11y.e2e.js +36 -0
  171. package/lib/collection/components/duet-range-slider/duet-range-slider.a11y.e2e.js +14 -0
  172. package/lib/collection/components/duet-range-slider/duet-range-slider.js +2 -2
  173. package/lib/collection/components/duet-range-stepper/duet-range-stepper.a11y.e2e.js +13 -0
  174. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +1 -1
  175. package/lib/collection/components/duet-scrollable/duet-scrollable.a11y.e2e.js +17 -0
  176. package/lib/collection/components/duet-section-layout/duet-section-layout.a11y.e2e.js +18 -0
  177. package/lib/collection/components/duet-select/duet-select.a11y.e2e.js +45 -0
  178. package/lib/collection/components/duet-select/duet-select.js +6 -6
  179. package/lib/collection/components/duet-shaped-image/duet-shaped-image.a11y.e2e.js +20 -0
  180. package/lib/collection/components/duet-show-more/duet-show-more.a11y.e2e.js +13 -0
  181. package/lib/collection/components/duet-show-more/duet-show-more.css +1 -1
  182. package/lib/collection/components/duet-show-more/duet-show-more.js +1 -1
  183. package/lib/collection/components/duet-slideout/duet-slideout.a11y.e2e.js +47 -0
  184. package/lib/collection/components/duet-slideout/duet-slideout.js +1 -1
  185. package/lib/collection/components/duet-spacer/duet-spacer.a11y.e2e.js +13 -0
  186. package/lib/collection/components/duet-spacer/duet-spacer.js +2 -2
  187. package/lib/collection/components/duet-spinner/duet-spinner.a11y.e2e.js +13 -0
  188. package/lib/collection/components/duet-spinner/duet-spinner.js +1 -1
  189. package/lib/collection/components/duet-step/duet-step.js +2 -2
  190. package/lib/collection/components/duet-stepper/duet-stepper.a11y.e2e.js +26 -0
  191. package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
  192. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.a11y.e2e.js +21 -0
  193. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +1 -1
  194. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.css +2 -1
  195. package/lib/collection/components/duet-tab/duet-tab.js +20 -1
  196. package/lib/collection/components/duet-tab-group/duet-tab-group.a11y.e2e.js +20 -0
  197. package/lib/collection/components/duet-tab-group/duet-tab-group.js +6 -6
  198. package/lib/collection/components/duet-table/duet-table.a11y.e2e.js +35 -0
  199. package/lib/collection/components/duet-textarea/duet-textarea.a11y.e2e.js +28 -0
  200. package/lib/collection/components/duet-textarea/duet-textarea.js +5 -5
  201. package/lib/collection/components/duet-toggle/duet-toggle.a11y.e2e.js +13 -0
  202. package/lib/collection/components/duet-toggle/duet-toggle.js +2 -2
  203. package/lib/collection/components/duet-toolbar/duet-toolbar.a11y.e2e.js +31 -0
  204. package/lib/collection/components/duet-tooltip/duet-tooltip.a11y.e2e.js +34 -0
  205. package/lib/collection/components/duet-tooltip/duet-tooltip.js +1 -1
  206. package/lib/collection/components/duet-tray/duet-tray.a11y.e2e.js +22 -0
  207. package/lib/collection/components/duet-upload/duet-upload.js +14 -14
  208. package/lib/collection/components/duet-upload-item/duet-upload-item.js +1 -1
  209. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.a11y.e2e.js +15 -0
  210. package/lib/collection/utils/axe-core-utils.js +37 -0
  211. package/lib/collection/utils/picture-utils.js +8 -0
  212. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  213. package/lib/dist-custom-elements/duet-alert.js +1 -1
  214. package/lib/dist-custom-elements/duet-badge.js +1 -1
  215. package/lib/dist-custom-elements/duet-banner.js +21 -6
  216. package/lib/dist-custom-elements/duet-breadcrumb.js +3 -3
  217. package/lib/dist-custom-elements/duet-breadcrumbs.js +1 -1
  218. package/lib/dist-custom-elements/duet-button.js +1 -1
  219. package/lib/dist-custom-elements/duet-callout.js +3 -3
  220. package/lib/dist-custom-elements/duet-caption.js +1 -1
  221. package/lib/dist-custom-elements/duet-card.js +3 -3
  222. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  223. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  224. package/lib/dist-custom-elements/duet-chip.js +2 -2
  225. package/lib/dist-custom-elements/duet-choice-group.js +8 -8
  226. package/lib/dist-custom-elements/duet-choice.js +7 -6
  227. package/lib/dist-custom-elements/duet-collapsible.js +2 -2
  228. package/lib/dist-custom-elements/duet-combobox.js +3 -3
  229. package/lib/dist-custom-elements/duet-contact-card.js +8 -8
  230. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  231. package/lib/dist-custom-elements/duet-date-picker.js +12 -12
  232. package/lib/dist-custom-elements/duet-divider.js +1 -1
  233. package/lib/dist-custom-elements/duet-editable-table.js +7 -7
  234. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  235. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  236. package/lib/dist-custom-elements/duet-footer.js +5 -5
  237. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  238. package/lib/dist-custom-elements/duet-grid.js +1 -1
  239. package/lib/dist-custom-elements/duet-header.js +9 -9
  240. package/lib/dist-custom-elements/duet-heading.js +1 -1
  241. package/lib/dist-custom-elements/duet-hero.js +10 -10
  242. package/lib/dist-custom-elements/duet-icon.js +1 -1
  243. package/lib/dist-custom-elements/duet-input.js +1 -1
  244. package/lib/dist-custom-elements/duet-label.js +1 -1
  245. package/lib/dist-custom-elements/duet-layout.js +1 -1
  246. package/lib/dist-custom-elements/duet-link.js +1 -1
  247. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  248. package/lib/dist-custom-elements/duet-list.js +1 -1
  249. package/lib/dist-custom-elements/duet-logo.js +1 -1
  250. package/lib/dist-custom-elements/duet-menu-bar-button.js +2 -2
  251. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +2 -2
  252. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +2 -2
  253. package/lib/dist-custom-elements/duet-menu-bar-link.js +2 -2
  254. package/lib/dist-custom-elements/duet-menu-bar.js +2 -2
  255. package/lib/dist-custom-elements/duet-modal.js +7 -7
  256. package/lib/dist-custom-elements/duet-multiselect.js +16 -11
  257. package/lib/dist-custom-elements/duet-nav.js +1 -1
  258. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  259. package/lib/dist-custom-elements/duet-notification.js +2 -2
  260. package/lib/dist-custom-elements/duet-number-input.js +11 -11
  261. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  262. package/lib/dist-custom-elements/duet-pagination.js +13 -13
  263. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  264. package/lib/dist-custom-elements/duet-popup-menu-item.js +2 -2
  265. package/lib/dist-custom-elements/duet-popup-menu.js +1 -1
  266. package/lib/dist-custom-elements/duet-progress.js +1 -1
  267. package/lib/dist-custom-elements/duet-promo-card.js +3 -3
  268. package/lib/dist-custom-elements/duet-radio-group.js +8 -8
  269. package/lib/dist-custom-elements/duet-radio.js +1 -1
  270. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  271. package/lib/dist-custom-elements/duet-range-stepper.js +4 -4
  272. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  273. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  274. package/lib/dist-custom-elements/duet-select.js +1 -1
  275. package/lib/dist-custom-elements/duet-shaped-image.js +1 -1
  276. package/lib/dist-custom-elements/duet-show-more.js +6 -6
  277. package/lib/dist-custom-elements/duet-slideout-lang.js +2 -2
  278. package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
  279. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  280. package/lib/dist-custom-elements/duet-slideout-panel.js +2 -2
  281. package/lib/dist-custom-elements/duet-slideout.js +2 -2
  282. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  283. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  284. package/lib/dist-custom-elements/duet-step.js +4 -4
  285. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  286. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +3 -3
  287. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +2 -2
  288. package/lib/dist-custom-elements/duet-submenu-bar-link.js +2 -2
  289. package/lib/dist-custom-elements/duet-submenu-bar.js +3 -3
  290. package/lib/dist-custom-elements/duet-tab-group.js +14 -14
  291. package/lib/dist-custom-elements/duet-tab.js +5 -3
  292. package/lib/dist-custom-elements/duet-table.js +1 -1
  293. package/lib/dist-custom-elements/duet-textarea.js +10 -10
  294. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  295. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -2
  296. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +2 -2
  297. package/lib/dist-custom-elements/duet-toolbar-link.js +2 -2
  298. package/lib/dist-custom-elements/duet-toolbar.js +1 -1
  299. package/lib/dist-custom-elements/duet-tooltip-button.js +1 -1
  300. package/lib/dist-custom-elements/duet-tooltip-popup.js +1 -1
  301. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  302. package/lib/dist-custom-elements/duet-tray.js +3 -3
  303. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  304. package/lib/dist-custom-elements/duet-upload-item.js +1 -1
  305. package/lib/dist-custom-elements/duet-upload.js +18 -18
  306. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  307. package/lib/dist-custom-elements/index.js +1 -1
  308. package/lib/dist-custom-elements/{p-c7ea14ec.js → p-16b97666.js} +2 -2
  309. package/lib/dist-custom-elements/{p-6ff46c61.js → p-1a0d1104.js} +4 -4
  310. package/lib/dist-custom-elements/{p-c1dbca09.js → p-1b63a427.js} +1 -1
  311. package/lib/{esm/common-strings-71f2aabd.js → dist-custom-elements/p-274d11e3.js} +6 -1
  312. package/lib/dist-custom-elements/{p-27b6b841.js → p-27c98907.js} +10 -10
  313. package/lib/dist-custom-elements/{p-84b16bb8.js → p-423d3f0d.js} +3 -3
  314. package/lib/dist-custom-elements/{p-fc4ebd31.js → p-46d172ad.js} +8 -8
  315. package/lib/dist-custom-elements/{p-4d08c451.js → p-60f6b2e8.js} +3 -3
  316. package/lib/dist-custom-elements/{p-a83c5173.js → p-647197d2.js} +10 -10
  317. package/lib/dist-custom-elements/{p-3f89073c.js → p-6c228574.js} +2 -2
  318. package/lib/dist-custom-elements/{p-bcbac220.js → p-71f948ca.js} +1 -1
  319. package/lib/dist-custom-elements/{p-d07915a3.js → p-73858765.js} +3 -3
  320. package/lib/dist-custom-elements/{p-90e44a58.js → p-77dc878e.js} +36 -12
  321. package/lib/dist-custom-elements/{p-234dc8f4.js → p-7b7d919c.js} +5 -5
  322. package/lib/dist-custom-elements/{p-0e5f0ede.js → p-7f09da03.js} +5 -5
  323. package/lib/dist-custom-elements/{p-231bc5cf.js → p-84065d73.js} +1 -1
  324. package/lib/dist-custom-elements/{p-56b461b4.js → p-85817780.js} +1 -1
  325. package/lib/dist-custom-elements/{p-51734de9.js → p-8ba450f0.js} +1 -1
  326. package/lib/dist-custom-elements/{p-1b3c4813.js → p-8c68da59.js} +1 -1
  327. package/lib/dist-custom-elements/{p-fd70481d.js → p-90901592.js} +1 -1
  328. package/lib/dist-custom-elements/{p-75cec87c.js → p-960c3c51.js} +1 -1
  329. package/lib/dist-custom-elements/{p-63964ed8.js → p-970d143f.js} +1 -1
  330. package/lib/dist-custom-elements/{p-8011ee9c.js → p-99b8d96d.js} +1 -1
  331. package/lib/dist-custom-elements/{p-8ef3a8fb.js → p-a62138f2.js} +1 -1
  332. package/lib/dist-custom-elements/{p-af5b70e1.js → p-a6a02d26.js} +1 -1
  333. package/lib/dist-custom-elements/{p-df3b4525.js → p-a7c46306.js} +1 -1
  334. package/lib/dist-custom-elements/{p-9cea78e2.js → p-b1795ede.js} +1 -1
  335. package/lib/dist-custom-elements/{p-3d3afaae.js → p-c230fe39.js} +2 -2
  336. package/lib/dist-custom-elements/{p-c524c1ec.js → p-d547ac90.js} +2 -2
  337. package/lib/dist-custom-elements/{p-62698106.js → p-e31a9266.js} +5 -5
  338. package/lib/dist-custom-elements/{p-790b4d17.js → p-e3b1a969.js} +1 -1
  339. package/lib/dist-custom-elements/{p-ccc0525b.js → p-e6ce939c.js} +1 -1
  340. package/lib/dist-custom-elements/{p-63cffcb6.js → p-ebfb1ccd.js} +1 -1
  341. package/lib/dist-custom-elements/{p-412f4846.js → p-f12d5ad9.js} +1 -1
  342. package/lib/dist-custom-elements/{p-e28c315a.js → p-fc76a9f3.js} +1 -1
  343. package/lib/duet/duet.esm.js +1 -1
  344. package/lib/duet/duet.js +1 -1
  345. package/lib/duet/{p-7203d6cb.entry.js → p-01bd8000.entry.js} +1 -1
  346. package/lib/duet/{p-e688c3c4.entry.js → p-05ddb8d7.entry.js} +1 -1
  347. package/lib/duet/{p-c13939be.system.entry.js → p-08bcd57d.system.entry.js} +1 -1
  348. package/lib/duet/{p-2a516c43.entry.js → p-0a6ee84e.entry.js} +1 -1
  349. package/lib/duet/{p-9cb61776.entry.js → p-0b59eb11.entry.js} +1 -1
  350. package/lib/duet/{p-285a8d84.system.entry.js → p-0bb30bf2.system.entry.js} +1 -1
  351. package/lib/duet/{p-b8316660.system.entry.js → p-0c3e3891.system.entry.js} +1 -1
  352. package/lib/duet/{p-01c4e0d2.system.entry.js → p-0c4459c0.system.entry.js} +1 -1
  353. package/lib/duet/{p-ae66d0e5.system.entry.js → p-0c708a6b.system.entry.js} +1 -1
  354. package/lib/duet/{p-30edd295.entry.js → p-0d22fa04.entry.js} +1 -1
  355. package/lib/duet/{p-9ce0052c.js → p-115e5a74.js} +1 -1
  356. package/lib/duet/{p-22314e6f.entry.js → p-11d78956.entry.js} +1 -1
  357. package/lib/duet/{p-4ab967fd.system.entry.js → p-11e4884c.system.entry.js} +1 -1
  358. package/lib/duet/{p-1890ca14.entry.js → p-1298b261.entry.js} +1 -1
  359. package/lib/duet/{p-33cc5b2c.entry.js → p-140f3e19.entry.js} +1 -1
  360. package/lib/duet/{p-b2f8e521.entry.js → p-14c30d34.entry.js} +1 -1
  361. package/lib/duet/{p-9fc50bee.entry.js → p-15aa743e.entry.js} +1 -1
  362. package/lib/duet/p-17392944.entry.js +4 -0
  363. package/lib/duet/{p-6293ca6a.system.entry.js → p-1910a63b.system.entry.js} +1 -1
  364. package/lib/duet/{p-7fe5178e.entry.js → p-1bbf5a2c.entry.js} +1 -1
  365. package/lib/duet/{p-3dda03c8.entry.js → p-1d0d7d5d.entry.js} +1 -1
  366. package/lib/duet/{p-2a53dac8.system.entry.js → p-1fccc372.system.entry.js} +1 -1
  367. package/lib/duet/{p-98e5fa0d.system.entry.js → p-2126a190.system.entry.js} +1 -1
  368. package/lib/duet/{p-9b09f1b5.system.entry.js → p-24c831ec.system.entry.js} +1 -1
  369. package/lib/duet/{p-dade978b.js → p-274d11e3.js} +1 -1
  370. package/lib/duet/{p-dc41c018.system.entry.js → p-2b419553.system.entry.js} +1 -1
  371. package/lib/duet/p-2d4fcd47.entry.js +4 -0
  372. package/lib/duet/{p-f1e6e170.system.entry.js → p-2e6d11c7.system.entry.js} +1 -1
  373. package/lib/duet/{p-420e65a0.entry.js → p-2e719260.entry.js} +1 -1
  374. package/lib/duet/{p-22b174e8.system.entry.js → p-2ea486ae.system.entry.js} +1 -1
  375. package/lib/duet/{p-534d9d99.system.entry.js → p-30eadd8b.system.entry.js} +1 -1
  376. package/lib/duet/{p-cc24ad5f.entry.js → p-32ee4f34.entry.js} +1 -1
  377. package/lib/duet/{p-9eb36ef5.entry.js → p-37961e05.entry.js} +1 -1
  378. package/lib/duet/{p-7cddf7fa.entry.js → p-396e0025.entry.js} +1 -1
  379. package/lib/duet/{p-1c2973e8.system.entry.js → p-397aa011.system.entry.js} +1 -1
  380. package/lib/duet/{p-d07d1962.entry.js → p-39bd9bac.entry.js} +1 -1
  381. package/lib/duet/p-39d9f25b.system.entry.js +4 -0
  382. package/lib/duet/{p-6067c883.system.entry.js → p-3b06e609.system.entry.js} +1 -1
  383. package/lib/duet/{p-88230b5a.entry.js → p-3b11f97a.entry.js} +1 -1
  384. package/lib/duet/{p-0006b5d9.entry.js → p-3e79b617.entry.js} +1 -1
  385. package/lib/duet/{p-831ca78f.entry.js → p-3ec8ee39.entry.js} +1 -1
  386. package/lib/duet/{p-492a0843.js → p-41363488.js} +1 -1
  387. package/lib/duet/{p-ece4676f.entry.js → p-42e2d141.entry.js} +1 -1
  388. package/lib/duet/{p-baa7d58a.system.entry.js → p-436745f1.system.entry.js} +1 -1
  389. package/lib/duet/{p-529dba15.entry.js → p-46a8594c.entry.js} +1 -1
  390. package/lib/duet/{p-8b2ffad1.entry.js → p-47b62443.entry.js} +1 -1
  391. package/lib/duet/{p-9f85c0bf.system.entry.js → p-4901f740.system.entry.js} +1 -1
  392. package/lib/duet/{p-3211edb9.entry.js → p-4e870704.entry.js} +1 -1
  393. package/lib/duet/{p-c4fed7fe.system.entry.js → p-4f2f039c.system.entry.js} +1 -1
  394. package/lib/duet/{p-73da97b9.entry.js → p-5053b084.entry.js} +1 -1
  395. package/lib/duet/{p-3693a90c.entry.js → p-5317f4fb.entry.js} +1 -1
  396. package/lib/duet/{p-7cf19325.entry.js → p-546d7868.entry.js} +1 -1
  397. package/lib/duet/{p-2a9df44f.system.entry.js → p-55eb8c7c.system.entry.js} +1 -1
  398. package/lib/duet/{p-4e1d0e08.system.entry.js → p-569be9eb.system.entry.js} +1 -1
  399. package/lib/duet/{p-9b3ba990.system.entry.js → p-58d1b520.system.entry.js} +1 -1
  400. package/lib/duet/{p-c957baf0.entry.js → p-58e07a25.entry.js} +1 -1
  401. package/lib/duet/{p-dbaf4a89.system.entry.js → p-5f914bd7.system.entry.js} +1 -1
  402. package/lib/duet/{p-cca3beb8.entry.js → p-5fe520fd.entry.js} +1 -1
  403. package/lib/duet/{p-ad312a9c.entry.js → p-5fed0e82.entry.js} +1 -1
  404. package/lib/duet/{p-e8576d91.system.entry.js → p-603a7942.system.entry.js} +1 -1
  405. package/lib/duet/{p-48f614e6.entry.js → p-62839e24.entry.js} +1 -1
  406. package/lib/duet/{p-84f90698.entry.js → p-63370211.entry.js} +1 -1
  407. package/lib/duet/{p-c0203a7d.entry.js → p-638f7d0e.entry.js} +1 -1
  408. package/lib/duet/{p-b0b1e787.entry.js → p-64790718.entry.js} +1 -1
  409. package/lib/duet/{p-8a13b5d6.entry.js → p-64bc0173.entry.js} +1 -1
  410. package/lib/duet/{p-4304a53a.entry.js → p-664e856a.entry.js} +1 -1
  411. package/lib/duet/{p-ebe8a749.system.entry.js → p-6c405b4d.system.entry.js} +1 -1
  412. package/lib/duet/{p-5601c1da.system.entry.js → p-6ed45a15.system.entry.js} +1 -1
  413. package/lib/duet/{p-5e7523e0.system.entry.js → p-70192ee4.system.entry.js} +1 -1
  414. package/lib/duet/{p-39137beb.system.entry.js → p-706cd2e1.system.entry.js} +1 -1
  415. package/lib/duet/{p-1401e524.entry.js → p-70c4fd04.entry.js} +1 -1
  416. package/lib/duet/{p-6e768325.system.entry.js → p-71d6578b.system.entry.js} +1 -1
  417. package/lib/duet/{p-373cf5f3.system.entry.js → p-736fce63.system.entry.js} +1 -1
  418. package/lib/duet/{p-55282c06.system.entry.js → p-744f44b4.system.entry.js} +1 -1
  419. package/lib/duet/{p-d753f503.entry.js → p-74d79e97.entry.js} +1 -1
  420. package/lib/duet/{p-c04ac986.system.entry.js → p-755dd4ac.system.entry.js} +1 -1
  421. package/lib/duet/{p-2fa09b22.entry.js → p-7751209d.entry.js} +1 -1
  422. package/lib/duet/{p-55e6fe9c.system.entry.js → p-78408872.system.entry.js} +1 -1
  423. package/lib/duet/{p-60fe7ed5.system.entry.js → p-79dc49af.system.entry.js} +1 -1
  424. package/lib/duet/{p-da637f8e.entry.js → p-7a02ef0d.entry.js} +1 -1
  425. package/lib/duet/{p-23521d15.system.entry.js → p-7a2b0683.system.entry.js} +1 -1
  426. package/lib/duet/{p-322093c6.entry.js → p-7aaf227f.entry.js} +1 -1
  427. package/lib/duet/{p-4a8b9bdf.system.entry.js → p-7e5e362d.system.entry.js} +1 -1
  428. package/lib/duet/{p-b889959f.system.entry.js → p-7f13b214.system.entry.js} +1 -1
  429. package/lib/duet/{p-bdc404b2.entry.js → p-8010d152.entry.js} +1 -1
  430. package/lib/duet/{p-c4c9407e.system.entry.js → p-80dfb88c.system.entry.js} +1 -1
  431. package/lib/duet/{p-26fb144f.system.entry.js → p-81829412.system.entry.js} +1 -1
  432. package/lib/duet/{p-0425a615.system.entry.js → p-851868b5.system.entry.js} +1 -1
  433. package/lib/duet/{p-8e377844.system.entry.js → p-8864ba0e.system.entry.js} +1 -1
  434. package/lib/duet/p-88a50491.system.js +4 -0
  435. package/lib/duet/{p-15d8afcf.system.entry.js → p-88e789b9.system.entry.js} +1 -1
  436. package/lib/duet/{p-a7805231.entry.js → p-891c5ca1.entry.js} +1 -1
  437. package/lib/duet/{p-69872085.system.entry.js → p-8a3cca2a.system.entry.js} +1 -1
  438. package/lib/duet/p-8aae2ee1.entry.js +4 -0
  439. package/lib/duet/{p-350046fd.entry.js → p-8db7ccfd.entry.js} +1 -1
  440. package/lib/duet/{p-cf02575f.entry.js → p-8ee612f4.entry.js} +1 -1
  441. package/lib/duet/{p-fb053036.system.entry.js → p-8f191365.system.entry.js} +1 -1
  442. package/lib/duet/{p-e236d0ff.entry.js → p-90c87945.entry.js} +1 -1
  443. package/lib/duet/{p-bc09f943.system.entry.js → p-915e638f.system.entry.js} +1 -1
  444. package/lib/duet/{p-8d5dc152.entry.js → p-93a9d03f.entry.js} +1 -1
  445. package/lib/duet/{p-2fb4b111.entry.js → p-9594405f.entry.js} +1 -1
  446. package/lib/duet/{p-4192854d.entry.js → p-9664f656.entry.js} +1 -1
  447. package/lib/duet/{p-6021aa8f.system.entry.js → p-971fe383.system.entry.js} +1 -1
  448. package/lib/duet/p-97ccb6b2.entry.js +4 -0
  449. package/lib/duet/{p-a06f5f46.entry.js → p-9d445004.entry.js} +1 -1
  450. package/lib/duet/{p-8fac4d6c.entry.js → p-9ff169a8.entry.js} +1 -1
  451. package/lib/duet/{p-eaad83ee.system.entry.js → p-9ff3ef1a.system.entry.js} +1 -1
  452. package/lib/duet/{p-0d20f3d9.entry.js → p-a1d72dc5.entry.js} +1 -1
  453. package/lib/duet/{p-31ec5b52.entry.js → p-a3fd3b97.entry.js} +1 -1
  454. package/lib/duet/p-a43c1a0f.entry.js +4 -0
  455. package/lib/duet/{p-04bfa236.system.entry.js → p-a494f7d2.system.entry.js} +1 -1
  456. package/lib/duet/{p-9cd21d82.entry.js → p-a8a32775.entry.js} +1 -1
  457. package/lib/duet/{p-872cccb9.system.entry.js → p-a923e368.system.entry.js} +1 -1
  458. package/lib/duet/{p-cfe7c37d.system.entry.js → p-a9a50440.system.entry.js} +1 -1
  459. package/lib/duet/{p-d6ee5caf.system.entry.js → p-ae3622ce.system.entry.js} +1 -1
  460. package/lib/duet/{p-a0877282.entry.js → p-ae652505.entry.js} +1 -1
  461. package/lib/duet/{p-603e4997.entry.js → p-b9434c17.entry.js} +1 -1
  462. package/lib/duet/{p-e10a1e54.system.entry.js → p-c0e476fd.system.entry.js} +1 -1
  463. package/lib/duet/{p-8a547ca4.entry.js → p-c409a1dc.entry.js} +1 -1
  464. package/lib/duet/{p-e1be2e2e.entry.js → p-c6e4ebf0.entry.js} +1 -1
  465. package/lib/duet/{p-f28c33ac.system.entry.js → p-c7303568.system.entry.js} +1 -1
  466. package/lib/duet/{p-e00e4eb8.system.js → p-c7b04440.system.js} +1 -1
  467. package/lib/duet/p-c8e267bc.entry.js +4 -0
  468. package/lib/duet/{p-6c06e5b0.entry.js → p-c918ea31.entry.js} +1 -1
  469. package/lib/duet/{p-94a20b1a.system.entry.js → p-c99cc796.system.entry.js} +1 -1
  470. package/lib/duet/p-cadf7c9b.entry.js +4 -0
  471. package/lib/duet/p-cb1cf88a.system.entry.js +4 -0
  472. package/lib/duet/{p-47f0b173.system.entry.js → p-cc104f41.system.entry.js} +2 -2
  473. package/lib/duet/{p-3a8cad7a.system.entry.js → p-cc434423.system.entry.js} +1 -1
  474. package/lib/duet/{p-24428e35.entry.js → p-ce1d649d.entry.js} +1 -1
  475. package/lib/duet/{p-060eb471.system.entry.js → p-d1914efd.system.entry.js} +1 -1
  476. package/lib/duet/{p-9b38ad5b.entry.js → p-d22d1465.entry.js} +1 -1
  477. package/lib/duet/{p-bb2af2fc.system.entry.js → p-d2f6423e.system.entry.js} +1 -1
  478. package/lib/duet/p-d325c3d3.system.entry.js +4 -0
  479. package/lib/duet/{p-c097b169.system.entry.js → p-d39e2edb.system.entry.js} +1 -1
  480. package/lib/duet/{p-162561e0.system.entry.js → p-d8e41f55.system.entry.js} +1 -1
  481. package/lib/duet/{p-cd04c25a.system.entry.js → p-d8e56dcd.system.entry.js} +2 -2
  482. package/lib/duet/{p-fb87c349.system.entry.js → p-d9b3b34a.system.entry.js} +1 -1
  483. package/lib/duet/{p-0e9e970f.system.entry.js → p-db8b2380.system.entry.js} +1 -1
  484. package/lib/duet/{p-5996094c.system.entry.js → p-dbbd3a11.system.entry.js} +1 -1
  485. package/lib/duet/p-dbf5bd13.entry.js +4 -0
  486. package/lib/duet/p-dc059577.system.js +4 -0
  487. package/lib/duet/{p-9c8c1646.entry.js → p-dfb08a79.entry.js} +1 -1
  488. package/lib/duet/{p-6363c2ae.system.entry.js → p-e0887380.system.entry.js} +1 -1
  489. package/lib/duet/{p-96d97ff0.system.entry.js → p-e5a4b88c.system.entry.js} +1 -1
  490. package/lib/duet/{p-617c0967.entry.js → p-e90a1481.entry.js} +1 -1
  491. package/lib/duet/{p-33553884.entry.js → p-ec0fadf9.entry.js} +1 -1
  492. package/lib/duet/{p-7d4d0926.entry.js → p-ef8efbf5.entry.js} +1 -1
  493. package/lib/duet/{p-f824f485.entry.js → p-f0023574.entry.js} +1 -1
  494. package/lib/duet/{p-75be7414.system.entry.js → p-f04338dd.system.entry.js} +1 -1
  495. package/lib/duet/p-f36029aa.system.entry.js +4 -0
  496. package/lib/duet/{p-e897df9f.system.entry.js → p-f448c5da.system.entry.js} +1 -1
  497. package/lib/duet/{p-2a23687b.system.entry.js → p-f765b6a6.system.entry.js} +1 -1
  498. package/lib/duet/{p-902df276.entry.js → p-f7c032a2.entry.js} +1 -1
  499. package/lib/duet/p-f7f200b1.system.entry.js +4 -0
  500. package/lib/duet/{p-cc150a23.entry.js → p-fbefd879.entry.js} +1 -1
  501. package/lib/duet/{p-59b7a0b4.system.entry.js → p-fc57622c.system.entry.js} +1 -1
  502. package/lib/duet/p-fd4c42f8.system.js +4 -0
  503. package/lib/duet/{p-d3fbfb45.system.entry.js → p-ff3660d4.system.entry.js} +1 -1
  504. package/lib/{dist-custom-elements/p-dade978b.js → esm/common-strings-c0ac5a0b.js} +6 -1
  505. package/lib/esm/duet-action-button.entry.js +1 -1
  506. package/lib/esm/duet-alert.entry.js +1 -1
  507. package/lib/esm/duet-badge.entry.js +1 -1
  508. package/lib/esm/duet-banner.entry.js +15 -2
  509. package/lib/esm/duet-breadcrumb.entry.js +2 -2
  510. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  511. package/lib/esm/duet-button_2.entry.js +31 -9
  512. package/lib/esm/duet-callout.entry.js +1 -1
  513. package/lib/esm/duet-caption_4.entry.js +2 -2
  514. package/lib/esm/duet-card.entry.js +1 -1
  515. package/lib/esm/duet-checkbox.entry.js +1 -1
  516. package/lib/esm/duet-checkmark.entry.js +1 -1
  517. package/lib/esm/duet-chip.entry.js +1 -1
  518. package/lib/esm/duet-choice_2.entry.js +4 -3
  519. package/lib/esm/duet-collapsible.entry.js +1 -1
  520. package/lib/esm/duet-combobox.entry.js +2 -2
  521. package/lib/esm/duet-contact-card.entry.js +1 -1
  522. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  523. package/lib/esm/duet-date-picker.entry.js +2 -2
  524. package/lib/esm/duet-divider_2.entry.js +1 -1
  525. package/lib/esm/duet-editable-table_3.entry.js +1 -1
  526. package/lib/esm/duet-empty-state.entry.js +1 -1
  527. package/lib/esm/duet-fieldset.entry.js +1 -1
  528. package/lib/esm/duet-footer.entry.js +2 -2
  529. package/lib/esm/duet-grid_2.entry.js +1 -1
  530. package/lib/esm/duet-header_2.entry.js +2 -2
  531. package/lib/esm/duet-hero.entry.js +2 -2
  532. package/lib/esm/duet-icon.entry.js +1 -1
  533. package/lib/esm/duet-input_2.entry.js +1 -1
  534. package/lib/esm/duet-layout.entry.js +1 -1
  535. package/lib/esm/duet-list_2.entry.js +1 -1
  536. package/lib/esm/duet-menu-bar-button.entry.js +1 -1
  537. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +1 -1
  538. package/lib/esm/duet-menu-bar-dropdown.entry.js +1 -1
  539. package/lib/esm/duet-menu-bar-link.entry.js +1 -1
  540. package/lib/esm/duet-menu-bar.entry.js +1 -1
  541. package/lib/esm/duet-modal.entry.js +2 -2
  542. package/lib/esm/duet-multiselect.entry.js +7 -2
  543. package/lib/esm/duet-nav.entry.js +1 -1
  544. package/lib/esm/duet-notification_2.entry.js +1 -1
  545. package/lib/esm/duet-number-input.entry.js +1 -1
  546. package/lib/esm/duet-page-heading.entry.js +1 -1
  547. package/lib/esm/duet-pagination_2.entry.js +1 -1
  548. package/lib/esm/duet-popup-menu-item.entry.js +1 -1
  549. package/lib/esm/duet-popup-menu.entry.js +1 -1
  550. package/lib/esm/duet-progress.entry.js +2 -2
  551. package/lib/esm/duet-promo-card.entry.js +1 -1
  552. package/lib/esm/duet-radio_2.entry.js +1 -1
  553. package/lib/esm/duet-range-slider.entry.js +1 -1
  554. package/lib/esm/duet-scrollable_3.entry.js +4 -3
  555. package/lib/esm/duet-section-layout.entry.js +1 -1
  556. package/lib/esm/duet-select.entry.js +1 -1
  557. package/lib/esm/duet-shaped-image.entry.js +1 -1
  558. package/lib/esm/duet-show-more.entry.js +2 -2
  559. package/lib/esm/duet-slideout-lang.entry.js +1 -1
  560. package/lib/esm/duet-slideout-link.entry.js +1 -1
  561. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  562. package/lib/esm/duet-slideout-panel.entry.js +2 -2
  563. package/lib/esm/duet-slideout.entry.js +2 -2
  564. package/lib/esm/duet-step_2.entry.js +1 -1
  565. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +2 -2
  566. package/lib/esm/duet-submenu-bar-dropdown.entry.js +1 -1
  567. package/lib/esm/duet-submenu-bar-link.entry.js +1 -1
  568. package/lib/esm/duet-submenu-bar.entry.js +2 -2
  569. package/lib/esm/duet-textarea.entry.js +1 -1
  570. package/lib/esm/duet-toggle.entry.js +1 -1
  571. package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -1
  572. package/lib/esm/duet-toolbar-dropdown.entry.js +1 -1
  573. package/lib/esm/duet-toolbar-link.entry.js +1 -1
  574. package/lib/esm/duet-toolbar.entry.js +1 -1
  575. package/lib/esm/duet-tooltip-button_2.entry.js +2 -2
  576. package/lib/esm/duet-tooltip.entry.js +1 -1
  577. package/lib/esm/duet-tray.entry.js +1 -1
  578. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  579. package/lib/esm/duet-upload-item.entry.js +1 -1
  580. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  581. package/lib/esm/duet.js +3 -3
  582. package/lib/esm/{focus-utils-35cd2abd.js → focus-utils-03333699.js} +1 -1
  583. package/lib/esm/{index-932c38d8.js → index-c3bd1656.js} +1 -1
  584. package/lib/esm/loader.js +3 -3
  585. package/lib/esm-es5/common-strings-c0ac5a0b.js +4 -0
  586. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  587. package/lib/esm-es5/duet-alert.entry.js +1 -1
  588. package/lib/esm-es5/duet-badge.entry.js +1 -1
  589. package/lib/esm-es5/duet-banner.entry.js +1 -1
  590. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  591. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  592. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  593. package/lib/esm-es5/duet-callout.entry.js +1 -1
  594. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  595. package/lib/esm-es5/duet-card.entry.js +1 -1
  596. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  597. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  598. package/lib/esm-es5/duet-chip.entry.js +1 -1
  599. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  600. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  601. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  602. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  603. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  604. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  605. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  606. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  607. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  608. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  609. package/lib/esm-es5/duet-footer.entry.js +1 -1
  610. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  611. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  612. package/lib/esm-es5/duet-hero.entry.js +1 -1
  613. package/lib/esm-es5/duet-icon.entry.js +1 -1
  614. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  615. package/lib/esm-es5/duet-layout.entry.js +1 -1
  616. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  617. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  618. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  619. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  620. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  621. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  622. package/lib/esm-es5/duet-modal.entry.js +1 -1
  623. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  624. package/lib/esm-es5/duet-nav.entry.js +1 -1
  625. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  626. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  627. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  628. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  629. package/lib/esm-es5/duet-popup-menu-item.entry.js +1 -1
  630. package/lib/esm-es5/duet-popup-menu.entry.js +1 -1
  631. package/lib/esm-es5/duet-progress.entry.js +1 -1
  632. package/lib/esm-es5/duet-promo-card.entry.js +1 -1
  633. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  634. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  635. package/lib/esm-es5/duet-scrollable_3.entry.js +2 -2
  636. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  637. package/lib/esm-es5/duet-select.entry.js +1 -1
  638. package/lib/esm-es5/duet-shaped-image.entry.js +1 -1
  639. package/lib/esm-es5/duet-show-more.entry.js +1 -1
  640. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  641. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  642. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  643. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  644. package/lib/esm-es5/duet-slideout.entry.js +1 -1
  645. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  646. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  647. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  648. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  649. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  650. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  651. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  652. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  653. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  654. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  655. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  656. package/lib/esm-es5/duet-tooltip-button_2.entry.js +1 -1
  657. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  658. package/lib/esm-es5/duet-tray.entry.js +1 -1
  659. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  660. package/lib/esm-es5/duet-upload-item.entry.js +1 -1
  661. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  662. package/lib/esm-es5/duet.js +1 -1
  663. package/lib/esm-es5/{focus-utils-35cd2abd.js → focus-utils-03333699.js} +1 -1
  664. package/lib/esm-es5/{index-932c38d8.js → index-c3bd1656.js} +1 -1
  665. package/lib/esm-es5/loader.js +1 -1
  666. package/lib/types/common-strings.d.ts +1 -0
  667. package/lib/types/components/duet-banner/duet-banner.d.ts +6 -0
  668. package/lib/types/components/duet-button/duet-button.d.ts +12 -0
  669. package/lib/types/components/duet-checkbox/duet-checkbox.d.ts +1 -1
  670. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +1 -1
  671. package/lib/types/components/duet-input/duet-input.d.ts +1 -1
  672. package/lib/types/components/duet-multiselect/duet-multiselect.d.ts +1 -0
  673. package/lib/types/components/duet-number-input/duet-number-input.d.ts +1 -1
  674. package/lib/types/components/duet-radio/duet-radio.d.ts +1 -1
  675. package/lib/types/components/duet-select/duet-select.d.ts +1 -1
  676. package/lib/types/components/duet-tab/duet-tab.d.ts +4 -0
  677. package/lib/types/components/duet-textarea/duet-textarea.d.ts +1 -1
  678. package/lib/types/components/duet-toggle/duet-toggle.d.ts +1 -1
  679. package/lib/types/components.d.ts +54 -16
  680. package/lib/types/utils/axe-core-utils.d.ts +9 -0
  681. package/lib/types/utils/picture-utils.d.ts +18 -0
  682. package/package.json +6 -5
  683. package/lib/duet/p-09dd7425.system.entry.js +0 -4
  684. package/lib/duet/p-35f81ca4.system.js +0 -4
  685. package/lib/duet/p-36b36a8e.system.js +0 -4
  686. package/lib/duet/p-485afe87.system.entry.js +0 -4
  687. package/lib/duet/p-519f358f.entry.js +0 -4
  688. package/lib/duet/p-5a98ec00.system.entry.js +0 -4
  689. package/lib/duet/p-63529b85.system.js +0 -4
  690. package/lib/duet/p-70b70b24.system.entry.js +0 -4
  691. package/lib/duet/p-80c3e3a1.entry.js +0 -4
  692. package/lib/duet/p-85a502fd.system.entry.js +0 -4
  693. package/lib/duet/p-86b2e848.entry.js +0 -4
  694. package/lib/duet/p-a91e4da0.entry.js +0 -4
  695. package/lib/duet/p-b189b25a.entry.js +0 -4
  696. package/lib/duet/p-dff82aea.entry.js +0 -4
  697. package/lib/duet/p-e0211391.entry.js +0 -4
  698. package/lib/duet/p-fe5ad66e.entry.js +0 -4
  699. package/lib/esm-es5/common-strings-71f2aabd.js +0 -4
package/hydrate/index.js CHANGED
@@ -6932,6 +6932,13 @@ class DuetBadge {
6932
6932
  }; }
6933
6933
  }
6934
6934
 
6935
+ const DuetPicture = ({ img, sources }) => {
6936
+ return (hAsync("picture", null,
6937
+ sources &&
6938
+ sources.map(source => (hAsync("source", { srcSet: source.srcset, media: source.media, type: source.type, sizes: source.sizes }))),
6939
+ hAsync("img", Object.assign({}, img))));
6940
+ };
6941
+
6935
6942
  const duetBannerCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-banner,*.sc-duet-banner::after,*.sc-duet-banner::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-banner-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:4px !important;margin-bottom:2px !important;display:block;width:auto}/*!@:host:last-child, :host:last-of-type*/.sc-duet-banner-h:last-child,.sc-duet-banner-h:last-of-type{margin-right:0 !important}/*!@:host(.duet-m-0)*/.duet-m-0.sc-duet-banner-h{margin:0 !important}/*!@.duet-banner*/.duet-banner.sc-duet-banner{display:grid;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;text-align:left;border-radius:24px}/*!@.duet-banner.duet-p-0*/.duet-banner.duet-p-0.sc-duet-banner{padding:0 !important}/*!@.duet-banner.duet-m-0*/.duet-banner.duet-m-0.sc-duet-banner{margin:0 !important}/*!@.duet-banner .visual*/.duet-banner.sc-duet-banner .visual.sc-duet-banner{position:relative;overflow:hidden;border-top-left-radius:24px;border-top-right-radius:24px}/*!@.duet-banner .visual .image-container*/.duet-banner.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{position:relative;width:400px;height:400px;overflow:hidden;border-radius:20%;transform:rotate(7deg)}/*!@.duet-banner .visual .image*/.duet-banner.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{position:relative;top:20px;width:100%;height:100%;transform:rotate(-7deg);object-fit:cover}/*!@.duet-banner .visual .icon*/.duet-banner.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{position:absolute}/*!@.duet-banner .content*/.duet-banner.sc-duet-banner .content.sc-duet-banner{display:flex;flex-direction:column;gap:8px;padding:0 20px 36px}/*!@.duet-banner .action*/.duet-banner.sc-duet-banner .action.sc-duet-banner{display:flex;flex-direction:column;flex-grow:1;align-items:flex-start;justify-content:flex-end;padding-top:16px}/*!@.duet-banner.small*/.duet-banner.small.sc-duet-banner{grid-template-rows:335px 1fr;max-width:335px}/*!@.duet-banner.small .visual*/.duet-banner.small.sc-duet-banner .visual.sc-duet-banner{border-top-left-radius:24px;border-top-right-radius:24px}/*!@.duet-banner.small .visual .image-container*/.duet-banner.small.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-130px;left:-40px}/*!@.duet-banner.small .visual .icon*/.duet-banner.small.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:30px;left:15px}/*!@.duet-banner.large*/.duet-banner.large.sc-duet-banner{grid-template-rows:none;grid-template-columns:50% 50%;min-width:900px;max-width:1112px;height:320px;max-height:none}/*!@.duet-banner.large .visual*/.duet-banner.large.sc-duet-banner .visual.sc-duet-banner{border-top-left-radius:24px;border-bottom-left-radius:24px}/*!@.duet-banner.large .visual .image-container*/.duet-banner.large.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-30px;left:-30px}/*!@.duet-banner.large .visual .image*/.duet-banner.large.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:-15px;left:30px}/*!@.duet-banner.large .visual .icon*/.duet-banner.large.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{top:40px;bottom:auto;left:335px}/*!@.duet-banner.large .content*/.duet-banner.large.sc-duet-banner .content.sc-duet-banner{align-items:flex-start;justify-content:center;padding:0 72px 0 0}/*!@.duet-banner.large .action*/.duet-banner.large.sc-duet-banner .action.sc-duet-banner{flex-grow:0}/*!@.duet-banner.auto*/.duet-banner.auto.sc-duet-banner{grid-template-rows:335px 1fr;max-width:335px}/*!@.duet-banner.auto .visual*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner{border-top-left-radius:24px;border-top-right-radius:24px}/*!@.duet-banner.auto .visual .image-container*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-130px;left:-40px}/*!@.duet-banner.auto .visual .icon*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:30px;left:15px}@media (min-width: 62em){/*!@.duet-banner.auto*/.duet-banner.auto.sc-duet-banner{grid-template-rows:none;grid-template-columns:50% 50%;min-width:900px;max-width:1112px;height:320px;max-height:none}/*!@.duet-banner.auto .visual*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner{border-top-left-radius:24px;border-bottom-left-radius:24px}/*!@.duet-banner.auto .visual .image-container*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-30px;left:-30px}/*!@.duet-banner.auto .visual .image*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:-15px;left:30px}/*!@.duet-banner.auto .visual .icon*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{top:40px;bottom:auto;left:335px}/*!@.duet-banner.auto .content*/.duet-banner.auto.sc-duet-banner .content.sc-duet-banner{align-items:flex-start;justify-content:center;padding:0 72px 0 0}/*!@.duet-banner.auto .action*/.duet-banner.auto.sc-duet-banner .action.sc-duet-banner{flex-grow:0}}/*!@.duet-banner.duet-theme-turva*/.duet-banner.duet-theme-turva.sc-duet-banner{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-banner.duet-theme-turva .visual .image-container*/.duet-banner.duet-theme-turva.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{width:526px;height:456px;transform:none;-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\");-webkit-mask-repeat:no-repeat;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-repeat:no-repeat}/*!@.duet-banner.duet-theme-turva .visual .image*/.duet-banner.duet-theme-turva.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{transform:none}/*!@.duet-banner.duet-theme-turva.small .visual .image-container*/.duet-banner.duet-theme-turva.small.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-164px;left:-147px}/*!@.duet-banner.duet-theme-turva.small .visual .image*/.duet-banner.duet-theme-turva.small.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:0;left:0}/*!@.duet-banner.duet-theme-turva.small .visual .icon*/.duet-banner.duet-theme-turva.small.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:15px}/*!@.duet-banner.duet-theme-turva.large .visual .image-container*/.duet-banner.duet-theme-turva.large.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-54.923px;left:-147px}/*!@.duet-banner.duet-theme-turva.large .visual .image*/.duet-banner.duet-theme-turva.large.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:0;left:0}/*!@.duet-banner.duet-theme-turva.large .visual .icon*/.duet-banner.duet-theme-turva.large.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:auto;left:295px}/*!@.duet-banner.duet-theme-turva.auto .visual .image-container*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-164px;left:-147px}/*!@.duet-banner.duet-theme-turva.auto .visual .image*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:0;left:0}/*!@.duet-banner.duet-theme-turva.auto .visual .icon*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:15px}@media (min-width: 62em){/*!@.duet-banner.duet-theme-turva.auto .visual .image-container*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-54.923px;left:-147px}/*!@.duet-banner.duet-theme-turva.auto .visual .image*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:0;left:0}/*!@.duet-banner.duet-theme-turva.auto .visual .icon*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:auto;left:295px}}";
6936
6943
 
6937
6944
  class DuetBanner {
@@ -6945,6 +6952,7 @@ class DuetBanner {
6945
6952
  this.textColor = "secondary";
6946
6953
  this.size = "auto";
6947
6954
  this.image = "";
6955
+ this.sources = undefined;
6948
6956
  this.icon = "";
6949
6957
  this.headingLevel = "h2";
6950
6958
  }
@@ -6967,11 +6975,15 @@ class DuetBanner {
6967
6975
  const bannerStyles = {
6968
6976
  backgroundColor,
6969
6977
  };
6978
+ const pictureSource = {
6979
+ img: { src: this.image, alt: "", loading: "lazy", class: "image", role: "presentation" },
6980
+ sources: parsePossibleJSON(this.sources),
6981
+ };
6970
6982
  return (hAsync(Host, { class: { "duet-m-0": this.margin === "none" } }, hAsync("aside", { class: {
6971
6983
  "duet-banner": true,
6972
6984
  "duet-theme-turva": this.theme === "turva",
6973
6985
  [this.size]: true,
6974
- }, style: bannerStyles }, hAsync("div", { class: "visual" }, hAsync("div", { class: "image-container" }, hAsync("img", { class: "image", src: this.image, alt: "", role: "presentation" })), this.icon && (hAsync("duet-icon", { theme: this.theme, class: "icon", name: this.icon, shape: "brand", size: "xx-large", color: this.iconColor, background: this.iconBackgroundColor, "background-rotation": "7", "background-opacity": "0.85", margin: "none" }))), hAsync("div", { class: "content" }, this.hasHeadingSlot && (hAsync("div", { class: "heading" }, hAsync("duet-heading", { theme: this.theme, level: this.headingLevel, "visual-level": "h2", margin: "none", color: this.textColor }, hAsync("slot", { name: "heading" })))), this.hasDescriptionSlot && (hAsync("div", { class: "description" }, hAsync("duet-paragraph", { theme: this.theme, margin: "none", color: this.textColor }, hAsync("slot", { name: "description" })))), this.hasActionSlot && (hAsync("div", { class: "action" }, hAsync("slot", { name: "action" })))))));
6986
+ }, style: bannerStyles }, hAsync("div", { class: "visual" }, hAsync("div", { class: "image-container" }, this.image && hAsync(DuetPicture, Object.assign({}, pictureSource))), this.icon && (hAsync("duet-icon", { theme: this.theme, class: "icon", name: this.icon, shape: "brand", size: "xx-large", color: this.iconColor, background: this.iconBackgroundColor, "background-rotation": "7", "background-opacity": "0.85", margin: "none" }))), hAsync("div", { class: "content" }, this.hasHeadingSlot && (hAsync("div", { class: "heading" }, hAsync("duet-heading", { theme: this.theme, level: this.headingLevel, "visual-level": "h2", margin: "none", color: this.textColor }, hAsync("slot", { name: "heading" })))), this.hasDescriptionSlot && (hAsync("div", { class: "description" }, hAsync("duet-paragraph", { theme: this.theme, margin: "none", color: this.textColor }, hAsync("slot", { name: "description" })))), this.hasActionSlot && (hAsync("div", { class: "action" }, hAsync("slot", { name: "action" })))))));
6975
6987
  }
6976
6988
  get element() { return getElement(this); }
6977
6989
  static get style() { return duetBannerCss; }
@@ -6987,6 +6999,7 @@ class DuetBanner {
6987
6999
  "textColor": [1, "text-color"],
6988
7000
  "size": [1],
6989
7001
  "image": [1],
7002
+ "sources": [1],
6990
7003
  "icon": [1],
6991
7004
  "headingLevel": [1, "heading-level"]
6992
7005
  },
@@ -6998,7 +7011,7 @@ class DuetBanner {
6998
7011
 
6999
7012
  var actionArrowRightSmall={"title":"action-arrow-right-small","tags":"action arrow right small caret","svg":"<svg fill=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\"><path d=\"M19.5 12a2.3 2.3 0 0 1-.78 1.729L7.568 23.54a1.847 1.847 0 0 1-2.439-2.773l9.752-8.579a.25.25 0 0 0 0-.376L5.129 3.233A1.847 1.847 0 0 1 7.568.46l11.148 9.808A2.31 2.31 0 0 1 19.5 12z\"/></svg>"};
7000
7013
 
7001
- const duetBreadcrumbCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-breadcrumb,*.sc-duet-breadcrumb::after,*.sc-duet-breadcrumb::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-breadcrumb-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:list-item;width:auto}/*!@.container*/.container.sc-duet-breadcrumb{display:flex;gap:8px;align-items:center}/*!@.hide*/.hide.sc-duet-breadcrumb{display:none}/*!@.duet-breadrumbs-arrow*/.duet-breadrumbs-arrow.sc-duet-breadcrumb{display:block;align-items:center;justify-content:center;width:0.375rem;height:0.375rem}/*!@.duet-breadcrumb*/.duet-breadcrumb.sc-duet-breadcrumb{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:100%;font-size:0.875rem;font-weight:inherit;line-height:1.25;color:inherit;text-decoration:none}/*!@.duet-breadcrumb:focus*/.duet-breadcrumb.sc-duet-breadcrumb:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-breadcrumb:focus*/.user-is-tabbing.sc-duet-breadcrumb-h .duet-breadcrumb.sc-duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-breadcrumb.duet-theme-turva:focus*/.user-is-tabbing.sc-duet-breadcrumb-h .duet-breadcrumb.duet-theme-turva.sc-duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}";
7014
+ const duetBreadcrumbCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-breadcrumb,*.sc-duet-breadcrumb::after,*.sc-duet-breadcrumb::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-breadcrumb-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:list-item;width:auto}/*!@.container*/.container.sc-duet-breadcrumb{display:flex;gap:8px;align-items:center}/*!@.hide*/.hide.sc-duet-breadcrumb{display:none}/*!@.duet-breadrumbs-arrow*/.duet-breadrumbs-arrow.sc-duet-breadcrumb{display:block;align-items:center;justify-content:center;width:0.375rem;min-width:0.375rem;height:0.375rem;min-height:0.375rem}/*!@.duet-breadcrumb*/.duet-breadcrumb.sc-duet-breadcrumb{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:100%;font-size:0.875rem;font-weight:inherit;line-height:1.25;color:inherit;text-decoration:none}/*!@.duet-breadcrumb:focus*/.duet-breadcrumb.sc-duet-breadcrumb:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-breadcrumb:focus*/.user-is-tabbing.sc-duet-breadcrumb-h .duet-breadcrumb.sc-duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-breadcrumb.duet-theme-turva:focus*/.user-is-tabbing.sc-duet-breadcrumb-h .duet-breadcrumb.duet-theme-turva.sc-duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}";
7002
7015
 
7003
7016
  class DuetBreadcrumb {
7004
7017
  constructor(hostRef) {
@@ -7119,6 +7132,11 @@ const DuetStringsExternalDefaults = {
7119
7132
  sv: "Öppnas i nytt fönster",
7120
7133
  en: "Opens in a new window",
7121
7134
  };
7135
+ const DuetStringsLoadingDefaults = {
7136
+ fi: "Ladataan",
7137
+ sv: "Lastning",
7138
+ en: "Loading…",
7139
+ };
7122
7140
 
7123
7141
  const duetButtonCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-button,*.sc-duet-button::after,*.sc-duet-button::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-button-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}/*!@:host:last-child, :host:last-of-type*/.sc-duet-button-h:last-child,.sc-duet-button-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){/*!@:host*/.sc-duet-button-h{width:100%}}/*!@:host(.input-button)*/.input-button.sc-duet-button-h{z-index:250}/*!@:host(.duet-small)*/.duet-small.sc-duet-button-h{margin-right:2px !important;margin-bottom:8px !important}/*!@:host(.duet-small):last-child, :host(.duet-small):last-of-type*/.duet-small.sc-duet-button-h:last-child,.duet-small.sc-duet-button-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){/*!@:host(.duet-small)*/.duet-small.sc-duet-button-h{width:auto}}/*!@:host(.duet-expand)*/.duet-expand.sc-duet-button-h{width:100% !important}/*!@:host(.duet-m-0)*/.duet-m-0.sc-duet-button-h{margin:0 !important}/*!@:host(.duet-fixed)*/.duet-fixed.sc-duet-button-h{width:auto !important}/*!@:host(:last-child)*/.sc-duet-button-h:last-child{margin-right:0 !important}/*!@.duet-button-container*/.duet-button-container.sc-duet-button{position:relative;width:100%}/*!@.duet-button*/.duet-button.sc-duet-button{padding:14px 27px 15px !important;-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:rgb(0, 119, 179) !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:2px;border-radius:20rem;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, box-shadow 300ms ease}/*!@.duet-button.duet-p-0*/.duet-button.duet-p-0.sc-duet-button{padding:0 !important}/*!@.duet-button.duet-m-0*/.duet-button.duet-m-0.sc-duet-button{margin:0 !important}/*!@.duet-button:focus*/.duet-button.sc-duet-button:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@.duet-theme-turva .duet-button:focus, .duet-button:focus.duet-theme-turva*/.duet-theme-turva.sc-duet-button .duet-button.sc-duet-button:focus,.duet-button.sc-duet-button:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-button:not(.input-button-primary, .input-button-secondary, .input-button-embedded)*/.duet-button.sc-duet-button:not(.input-button-primary,.input-button-secondary.sc-duet-button,.input-button-embedded).sc-duet-button{font-variant-numeric:tabular-nums}/*!@.duet-button.duet-button-text-center*/.duet-button.duet-button-text-center.sc-duet-button{text-align:center !important}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only)*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only){padding:9px 19px 10px !important;min-width:48px;font-size:0.875rem}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only).plain*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only).plain{padding-right:0 !important;padding-left:0 !important}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only).duet-p-0*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only).duet-p-0{padding:0 !important}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only).icon{padding-left:48px !important}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}/*!@.duet-theme-turva .duet-button*/.duet-theme-turva.sc-duet-button .duet-button.sc-duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(198, 12, 48) !important}/*!@.duet-button .duet-button-contents*/.duet-button.sc-duet-button .duet-button-contents.sc-duet-button{position:relative;display:inline-block;margin:0 auto;pointer-events:none}/*!@.duet-button.duet-no-wrap*/.duet-button.duet-no-wrap.sc-duet-button{white-space:nowrap}/*!@.duet-button.icon*/.duet-button.icon.sc-duet-button{padding-left:52px !important}/*!@.duet-button.icon-right*/.duet-button.icon-right.sc-duet-button{padding-right:52px !important;padding-left:28px !important}/*!@.duet-button svg*/.duet-button.sc-duet-button svg.sc-duet-button{width:100%;min-width:100%;fill:currentColor}/*!@.duet-button .duet-button-icon*/.duet-button.sc-duet-button .duet-button-icon.sc-duet-button{position:absolute;top:50%;left:-28px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 !important;transform:translateY(-50%)}/*!@.duet-button .duet-button-icon duet-icon*/.duet-button.sc-duet-button .duet-button-icon.sc-duet-button duet-icon.sc-duet-button{width:16px;height:16px}/*!@.duet-button .duet-button-icon.right*/.duet-button.sc-duet-button .duet-button-icon.right.sc-duet-button{right:-28px;left:auto}/*!@.duet-button .duet-button-icon.large*/.duet-button.sc-duet-button .duet-button-icon.large.sc-duet-button{left:-32px;width:20px;height:20px}/*!@.duet-button .duet-button-icon.large duet-icon*/.duet-button.sc-duet-button .duet-button-icon.large.sc-duet-button duet-icon.sc-duet-button{width:20px;height:20px}/*!@.duet-button .duet-button-icon.large.right*/.duet-button.sc-duet-button .duet-button-icon.large.right.sc-duet-button{right:-32px;left:auto}/*!@.duet-button .duet-button-icon.medium-small*/.duet-button.sc-duet-button .duet-button-icon.medium-small.sc-duet-button{left:-16px;width:10px;height:10px;padding-top:1px}/*!@.duet-button .duet-button-icon.medium-small duet-icon*/.duet-button.sc-duet-button .duet-button-icon.medium-small.sc-duet-button duet-icon.sc-duet-button{width:10px;height:10px}/*!@.duet-button .duet-button-icon.medium-small.right*/.duet-button.sc-duet-button .duet-button-icon.medium-small.right.sc-duet-button{right:-16px;left:auto}/*!@.duet-button .duet-button-icon.small*/.duet-button.sc-duet-button .duet-button-icon.small.sc-duet-button{left:-16px;width:7px;height:7px}/*!@.duet-button .duet-button-icon.small duet-icon*/.duet-button.sc-duet-button .duet-button-icon.small.sc-duet-button duet-icon.sc-duet-button{width:7px;height:7px}/*!@.duet-button .duet-button-icon.small.right*/.duet-button.sc-duet-button .duet-button-icon.small.right.sc-duet-button{right:-16px;left:auto}/*!@.duet-button:active:not([disabled])*/.duet-button.sc-duet-button:active:not([disabled]){opacity:0.75;transition:none}/*!@.duet-button.default*/.duet-button.default.sc-duet-button{border-color:rgb(225, 227, 230)}/*!@.duet-theme-turva .duet-button.default*/.duet-theme-turva.sc-duet-button .duet-button.default.sc-duet-button{color:rgb(198, 12, 48) !important;border-color:rgb(228, 228, 230)}/*!@.duet-button.default:hover*/.duet-button.default.sc-duet-button:hover{border-color:rgb(0, 119, 179)}/*!@.duet-theme-turva .duet-button.default:hover*/.duet-theme-turva.sc-duet-button .duet-button.default.sc-duet-button:hover{border-color:rgb(198, 12, 48)}/*!@.duet-button.default.duet-button-negative*/.duet-button.default.duet-button-negative.sc-duet-button{background-color:rgb(255, 255, 255)}/*!@.duet-theme-turva .duet-button.default.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.default.duet-button-negative.sc-duet-button{background-color:rgb(228, 228, 230) !important}/*!@.duet-button.default.duet-button-negative:hover*/.duet-button.default.duet-button-negative.sc-duet-button:hover{color:rgb(0, 119, 179) !important;border-color:rgb(0, 119, 179)}/*!@.duet-theme-turva .duet-button.default.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.default.duet-button-negative.sc-duet-button:hover{color:rgb(198, 12, 48) !important;border-color:rgb(198, 12, 48)}/*!@.duet-button.primary, .duet-button.input-button-primary*/.duet-button.primary.sc-duet-button,.duet-button.input-button-primary.sc-duet-button{color:rgb(255, 255, 255) !important;background:rgb(0, 119, 179);border-color:rgb(0, 119, 179)}/*!@.duet-theme-turva .duet-button.primary, .duet-theme-turva .duet-button.input-button-primary*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.input-button-primary.sc-duet-button{color:rgb(255, 255, 255) !important;background:rgb(198, 12, 48);border-color:rgb(198, 12, 48)}/*!@.duet-button.primary:hover, .duet-button.input-button-primary:hover*/.duet-button.primary.sc-duet-button:hover,.duet-button.input-button-primary.sc-duet-button:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px 0 rgba(34, 34, 34, 0.1)}/*!@.duet-theme-turva .duet-button.primary:hover, .duet-theme-turva .duet-button.input-button-primary:hover*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.input-button-primary.sc-duet-button:hover{background:rgb(148, 9, 37);border-color:rgb(148, 9, 37)}/*!@.duet-button.primary:focus, .duet-button.input-button-primary:focus*/.duet-button.primary.sc-duet-button:focus,.duet-button.input-button-primary.sc-duet-button:focus{outline:0;box-shadow:0 0 0 1px #fff, 0 0 0 4px rgba(0, 119, 179, 0.75)}/*!@.duet-theme-turva .duet-button.primary:focus, .duet-theme-turva .duet-button.input-button-primary:focus*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button:focus,.duet-theme-turva.sc-duet-button .duet-button.input-button-primary.sc-duet-button:focus{box-shadow:0 0 0 1px #fff, 0 0 0 4px rgba(23, 28, 58, 0.75)}/*!@.duet-button.secondary, .duet-button.input-button-secondary, .duet-button.input-button-embedded*/.duet-button.secondary.sc-duet-button,.duet-button.input-button-secondary.sc-duet-button,.duet-button.input-button-embedded.sc-duet-button{color:rgb(0, 41, 77) !important;background:transparent;border-color:rgb(0, 41, 77)}/*!@.duet-theme-turva .duet-button.secondary, .duet-theme-turva .duet-button.input-button-secondary, .duet-theme-turva .duet-button.input-button-embedded*/.duet-theme-turva.sc-duet-button .duet-button.secondary.sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.input-button-secondary.sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.input-button-embedded.sc-duet-button{color:rgb(23, 28, 58) !important;border-color:rgb(23, 28, 58)}/*!@.duet-button.secondary:hover, .duet-button.input-button-secondary:hover, .duet-button.input-button-embedded:hover*/.duet-button.secondary.sc-duet-button:hover,.duet-button.input-button-secondary.sc-duet-button:hover,.duet-button.input-button-embedded.sc-duet-button:hover{color:rgb(0, 119, 179) !important;border-color:rgb(0, 119, 179)}/*!@.duet-theme-turva .duet-button.secondary:hover, .duet-theme-turva .duet-button.input-button-secondary:hover, .duet-theme-turva .duet-button.input-button-embedded:hover*/.duet-theme-turva.sc-duet-button .duet-button.secondary.sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.input-button-secondary.sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.input-button-embedded.sc-duet-button:hover{color:rgb(198, 12, 48) !important;border-color:rgb(198, 12, 48)}/*!@.duet-button.secondary.duet-button-negative, .duet-button.input-button-secondary.duet-button-negative, .duet-button.input-button-embedded.duet-button-negative*/.duet-button.secondary.duet-button-negative.sc-duet-button,.duet-button.input-button-secondary.duet-button-negative.sc-duet-button,.duet-button.input-button-embedded.duet-button-negative.sc-duet-button{color:rgb(225, 227, 230) !important;border-color:rgb(255, 255, 255)}/*!@.duet-theme-turva .duet-button.secondary.duet-button-negative, .duet-theme-turva .duet-button.input-button-secondary.duet-button-negative, .duet-theme-turva .duet-button.input-button-embedded.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.secondary.duet-button-negative.sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.input-button-secondary.duet-button-negative.sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.input-button-embedded.duet-button-negative.sc-duet-button{color:rgb(228, 228, 230) !important}/*!@.duet-button.secondary.duet-button-negative:hover, .duet-button.input-button-secondary.duet-button-negative:hover, .duet-button.input-button-embedded.duet-button-negative:hover*/.duet-button.secondary.duet-button-negative.sc-duet-button:hover,.duet-button.input-button-secondary.duet-button-negative.sc-duet-button:hover,.duet-button.input-button-embedded.duet-button-negative.sc-duet-button:hover{color:rgb(0, 119, 179) !important;border-color:rgb(0, 119, 179)}/*!@.duet-theme-turva .duet-button.secondary.duet-button-negative:hover, .duet-theme-turva .duet-button.input-button-secondary.duet-button-negative:hover, .duet-theme-turva .duet-button.input-button-embedded.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.secondary.duet-button-negative.sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.input-button-secondary.duet-button-negative.sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.input-button-embedded.duet-button-negative.sc-duet-button:hover{color:rgb(198, 12, 48) !important;border-color:rgb(198, 12, 48)}/*!@.duet-button.input-button-embedded*/.duet-button.input-button-embedded.sc-duet-button{width:40px;min-width:40px !important;min-height:40px !important;margin:4px !important;border-width:0 !important;border-radius:4px !important}/*!@.duet-button.negative*/.duet-button.negative.sc-duet-button{color:rgb(0, 41, 77) !important;background:rgb(255, 255, 255);border-color:rgb(255, 255, 255)}/*!@.duet-theme-turva .duet-button.negative*/.duet-theme-turva.sc-duet-button .duet-button.negative.sc-duet-button{color:rgb(23, 28, 58) !important}/*!@.duet-button.negative:hover*/.duet-button.negative.sc-duet-button:hover{color:rgb(255, 255, 255) !important;background:transparent;border-color:rgb(255, 255, 255)}/*!@.duet-button.negative:focus*/.duet-button.negative.sc-duet-button:focus{outline:0;box-shadow:0 0 0 1px #00294d, 0 0 0 4px rgba(255, 255, 255, 0.7)}/*!@.duet-theme-turva .duet-button.negative:focus*/.duet-theme-turva.sc-duet-button .duet-button.negative.sc-duet-button:focus{box-shadow:0 0 0 1px #0077b3, 0 0 0 4px rgba(255, 255, 255, 0.7)}/*!@.duet-button.destructive-primary*/.duet-button.destructive-primary.sc-duet-button{color:rgb(255, 255, 255) !important;background:rgb(222, 35, 98);border-color:rgb(222, 35, 98)}/*!@.duet-theme-turva .duet-button.destructive-primary*/.duet-theme-turva.sc-duet-button .duet-button.destructive-primary.sc-duet-button{color:rgb(255, 255, 255) !important;background:rgb(224, 42, 13);border-color:rgb(224, 42, 13)}/*!@.duet-button.destructive-primary:hover*/.duet-button.destructive-primary.sc-duet-button:hover{background:#b21c4e;border-color:#b21c4e;box-shadow:0 4px 20px 0 rgba(34, 34, 34, 0.1)}/*!@.duet-theme-turva .duet-button.destructive-primary:hover*/.duet-theme-turva.sc-duet-button .duet-button.destructive-primary.sc-duet-button:hover{background:#b3220a}/*!@.duet-button.destructive, .duet-button.destructive-secondary*/.duet-button.destructive.sc-duet-button,.duet-button.destructive-secondary.sc-duet-button{color:rgb(222, 35, 98) !important;background:rgb(255, 255, 255);border-color:rgb(222, 35, 98)}/*!@.duet-theme-turva .duet-button.destructive, .duet-theme-turva .duet-button.destructive-secondary*/.duet-theme-turva.sc-duet-button .duet-button.destructive.sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.destructive-secondary.sc-duet-button{color:rgb(224, 42, 13) !important;background:rgb(255, 255, 255);border-color:rgb(224, 42, 13)}/*!@.duet-button.destructive:hover, .duet-button.destructive-secondary:hover*/.duet-button.destructive.sc-duet-button:hover,.duet-button.destructive-secondary.sc-duet-button:hover{color:rgb(255, 255, 255) !important;background:#b21c4e;border-color:#b21c4e}/*!@.duet-theme-turva .duet-button.destructive:hover, .duet-theme-turva .duet-button.destructive-secondary:hover*/.duet-theme-turva.sc-duet-button .duet-button.destructive.sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.destructive-secondary.sc-duet-button:hover{color:rgb(255, 255, 255) !important;background:#b3220a;border-color:#b3220a}/*!@.duet-button.plain*/.duet-button.plain.sc-duet-button{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}/*!@.duet-theme-turva .duet-button.plain*/.duet-theme-turva.sc-duet-button .duet-button.plain.sc-duet-button{color:rgb(198, 12, 48) !important;background:transparent;border-color:transparent}/*!@.duet-button.plain.icon*/.duet-button.plain.icon.sc-duet-button{padding-left:20px !important}/*!@.duet-button.plain.icon.icon-right*/.duet-button.plain.icon.icon-right.sc-duet-button{padding-right:20px !important;padding-left:0 !important}/*!@.duet-button.plain.icon.small*/.duet-button.plain.icon.small.sc-duet-button{padding-left:20px !important}/*!@.duet-button.plain.icon.small.icon-right*/.duet-button.plain.icon.small.icon-right.sc-duet-button{padding-right:20px !important;padding-left:0 !important}/*!@.duet-button.plain.icon.medium-small*/.duet-button.plain.icon.medium-small.sc-duet-button{padding-left:20px !important}/*!@.duet-button.plain.icon.medium-small.icon-right*/.duet-button.plain.icon.medium-small.icon-right.sc-duet-button{padding-right:20px !important;padding-left:0 !important}/*!@.duet-button.plain.icon.medium*/.duet-button.plain.icon.medium.sc-duet-button{padding-left:24px !important}/*!@.duet-button.plain.icon.medium.icon-right*/.duet-button.plain.icon.medium.icon-right.sc-duet-button{padding-right:24px !important;padding-left:0 !important}/*!@.duet-button.plain.icon.large*/.duet-button.plain.icon.large.sc-duet-button{padding-left:30px !important}/*!@.duet-button.plain.icon.large.icon-right*/.duet-button.plain.icon.large.icon-right.sc-duet-button{padding-right:30px !important;padding-left:0 !important}/*!@.duet-button.plain .duet-button-icon.left*/.duet-button.plain.sc-duet-button .duet-button-icon.left.sc-duet-button{left:-16.6666666667px !important}/*!@.duet-button.plain .duet-button-icon.left.medium*/.duet-button.plain.sc-duet-button .duet-button-icon.left.medium.sc-duet-button{left:-24px !important}/*!@.duet-button.plain .duet-button-icon.left.large*/.duet-button.plain.sc-duet-button .duet-button-icon.left.large.sc-duet-button{left:-30px !important}/*!@.duet-button.plain .duet-button-icon.right*/.duet-button.plain.sc-duet-button .duet-button-icon.right.sc-duet-button{right:-16.6666666667px !important}/*!@.duet-button.plain .duet-button-icon.right.medium*/.duet-button.plain.sc-duet-button .duet-button-icon.right.medium.sc-duet-button{right:-24px !important}/*!@.duet-button.plain .duet-button-icon.right.large*/.duet-button.plain.sc-duet-button .duet-button-icon.right.large.sc-duet-button{right:-30px !important}/*!@.duet-button.plain[disabled]*/.duet-button.plain[disabled].sc-duet-button{color:rgb(101, 119, 135) !important;cursor:not-allowed;background:transparent !important;border-color:transparent !important}/*!@.duet-theme-turva .duet-button.plain[disabled]*/.duet-theme-turva.sc-duet-button .duet-button.plain[disabled].sc-duet-button{color:transparent !important;cursor:not-allowed;background:transparent !important;border-color:rgb(228, 228, 230) !important}/*!@.duet-button.plain:hover*/.duet-button.plain.sc-duet-button:hover{color:rgb(0, 77, 128) !important;background:transparent !important}/*!@.duet-theme-turva .duet-button.plain:hover*/.duet-theme-turva.sc-duet-button .duet-button.plain.sc-duet-button:hover{color:rgb(148, 9, 37) !important}/*!@.duet-button.plain.duet-button-negative*/.duet-button.plain.duet-button-negative.sc-duet-button{color:rgb(255, 255, 255) !important}/*!@.duet-theme-turva .duet-button.plain.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.plain.duet-button-negative.sc-duet-button{color:rgb(228, 228, 230) !important}/*!@.duet-button.plain.duet-button-negative:hover*/.duet-button.plain.duet-button-negative.sc-duet-button:hover{color:rgb(0, 119, 179) !important}/*!@.duet-theme-turva .duet-button.plain.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.plain.duet-button-negative.sc-duet-button:hover{color:rgb(198, 12, 48) !important}/*!@.duet-button.duet-button-icon-only*/.duet-button.duet-button-icon-only.sc-duet-button{min-width:48px;min-height:48px;padding:0 !important}/*!@.duet-button.duet-button-icon-only .duet-button-contents*/.duet-button.duet-button-icon-only.sc-duet-button .duet-button-contents.sc-duet-button{position:static}/*!@.duet-button.duet-button-icon-only .duet-button-icon.left.large,\n.duet-button.duet-button-icon-only .duet-button-icon.left.medium,\n.duet-button.duet-button-icon-only .duet-button-icon.left.small*/.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.large.sc-duet-button,.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.medium.sc-duet-button,.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.small.sc-duet-button{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}/*!@.duet-button.duet-button.input-button-primary, .duet-button.duet-button.input-button-secondary, .duet-button.duet-button.input-button-embedded*/.duet-button.duet-button.input-button-primary.sc-duet-button,.duet-button.duet-button.input-button-secondary.sc-duet-button,.duet-button.duet-button.input-button-embedded.sc-duet-button{box-sizing:content-box;min-width:48px;min-height:48px;padding:0 !important;border-width:1px;border-top-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:0}/*!@.duet-button.duet-button.input-button-primary .duet-button-contents, .duet-button.duet-button.input-button-secondary .duet-button-contents, .duet-button.duet-button.input-button-embedded .duet-button-contents*/.duet-button.duet-button.input-button-primary.sc-duet-button .duet-button-contents.sc-duet-button,.duet-button.duet-button.input-button-secondary.sc-duet-button .duet-button-contents.sc-duet-button,.duet-button.duet-button.input-button-embedded.sc-duet-button .duet-button-contents.sc-duet-button{position:static}/*!@.duet-button.duet-button.input-button-primary .duet-button-icon.left.large,\n.duet-button.duet-button.input-button-primary .duet-button-icon.left.medium,\n.duet-button.duet-button.input-button-primary .duet-button-icon.left.small, .duet-button.duet-button.input-button-secondary .duet-button-icon.left.large,\n.duet-button.duet-button.input-button-secondary .duet-button-icon.left.medium,\n.duet-button.duet-button.input-button-secondary .duet-button-icon.left.small, .duet-button.duet-button.input-button-embedded .duet-button-icon.left.large,\n.duet-button.duet-button.input-button-embedded .duet-button-icon.left.medium,\n.duet-button.duet-button.input-button-embedded .duet-button-icon.left.small*/.duet-button.duet-button.input-button-primary.sc-duet-button .duet-button-icon.left.large.sc-duet-button,.duet-button.duet-button.input-button-primary.sc-duet-button .duet-button-icon.left.medium.sc-duet-button,.duet-button.duet-button.input-button-primary.sc-duet-button .duet-button-icon.left.small.sc-duet-button,.duet-button.duet-button.input-button-secondary.sc-duet-button .duet-button-icon.left.large.sc-duet-button,.duet-button.duet-button.input-button-secondary.sc-duet-button .duet-button-icon.left.medium.sc-duet-button,.duet-button.duet-button.input-button-secondary.sc-duet-button .duet-button-icon.left.small.sc-duet-button,.duet-button.duet-button.input-button-embedded.sc-duet-button .duet-button-icon.left.large.sc-duet-button,.duet-button.duet-button.input-button-embedded.sc-duet-button .duet-button-icon.left.medium.sc-duet-button,.duet-button.duet-button.input-button-embedded.sc-duet-button .duet-button-icon.left.small.sc-duet-button{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}/*!@.duet-button.duet-button.input-button-embedded*/.duet-button.duet-button.input-button-embedded.sc-duet-button{border-left-width:0}/*!@.duet-button.square*/.duet-button.square.sc-duet-button{width:48px !important;min-width:auto !important;height:48px !important;padding:0 !important;font-size:1.25rem;border-color:rgb(225, 227, 230);border-width:1px;border-radius:8px}/*!@.duet-button.square.duet-button-is-small*/.duet-button.square.duet-button-is-small.sc-duet-button{width:28px !important;height:28px !important;padding:0 !important;font-size:1rem}/*!@.duet-button.square.duet-button-negative*/.duet-button.square.duet-button-negative.sc-duet-button{color:rgb(255, 255, 255) !important;background:rgb(0, 119, 179);border-color:rgb(0, 119, 179)}/*!@.duet-theme-turva .duet-button.square.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.square.duet-button-negative.sc-duet-button{color:rgb(255, 255, 255) !important;background:rgb(198, 12, 48);border-color:rgb(198, 12, 48)}/*!@.duet-theme-turva .duet-button.square*/.duet-theme-turva.sc-duet-button .duet-button.square.sc-duet-button{border-color:rgb(228, 228, 230)}/*!@.duet-button[disabled], .duet-button[disabled]:hover, .duet-button.duet-button-negative[disabled], .duet-button.duet-button-negative[disabled]:hover*/.duet-button[disabled].sc-duet-button,.duet-button[disabled].sc-duet-button:hover,.duet-button.duet-button-negative[disabled].sc-duet-button,.duet-button.duet-button-negative[disabled].sc-duet-button:hover{color:rgb(101, 119, 135) !important;cursor:not-allowed;background:rgb(225, 227, 230) !important;border-color:rgb(225, 227, 230) !important;box-shadow:none !important}/*!@.duet-theme-turva .duet-button[disabled], .duet-theme-turva .duet-button[disabled]:hover, .duet-theme-turva .duet-button.duet-button-negative [disabled], .duet-theme-turva .duet-button.duet-button-negative [disabled]:hover*/.duet-theme-turva.sc-duet-button .duet-button[disabled].sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button[disabled].sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.duet-button-negative.sc-duet-button [disabled].sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.duet-button-negative.sc-duet-button [disabled].sc-duet-button:hover{color:rgb(116, 116, 117) !important;cursor:not-allowed;background:rgb(228, 228, 230) !important;border-color:rgb(228, 228, 230) !important}/*!@.duet-button-is-loading.primary, .duet-button-is-loading.input-button-primary*/.duet-button-is-loading.primary.sc-duet-button,.duet-button-is-loading.input-button-primary.sc-duet-button{color:rgb(255, 255, 255)}/*!@.duet-button-is-loading.default*/.duet-button-is-loading.default.sc-duet-button{color:rgb(0, 119, 179)}/*!@.duet-button-is-loading.default.duet-theme-turva*/.duet-button-is-loading.default.duet-theme-turva.sc-duet-button{color:rgb(198, 12, 48)}/*!@.duet-button-is-loading .duet-button-contents*/.duet-button-is-loading.sc-duet-button .duet-button-contents.sc-duet-button{visibility:hidden;opacity:0}";
7124
7142
 
@@ -7176,6 +7194,8 @@ class DuetButton {
7176
7194
  this.language = getLanguage();
7177
7195
  this.accessibleLabelExternalDefaults = DuetStringsExternalDefaults;
7178
7196
  this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults);
7197
+ this.accessibleLabelLoadingDefaults = DuetStringsLoadingDefaults;
7198
+ this.accessibleLabelLoading = getLocaleString(this.accessibleLabelLoadingDefaults);
7179
7199
  this.icon = "";
7180
7200
  this.color = "";
7181
7201
  this.iconRight = false;
@@ -7197,10 +7217,16 @@ class DuetButton {
7197
7217
  this.proxyButton = document.createElement("button");
7198
7218
  this.proxyButton.style.display = "none";
7199
7219
  this.syncToProxyButton();
7200
- connectLanguageChangeObserver(this, {
7201
- prop: "accessibleLabelExternal",
7202
- defaults: "accessibleLabelExternalDefaults",
7203
- });
7220
+ connectLanguageChangeObserver(this, [
7221
+ {
7222
+ prop: "accessibleLabelExternal",
7223
+ defaults: "accessibleLabelExternalDefaults",
7224
+ },
7225
+ {
7226
+ prop: "accessibleLabelLoading",
7227
+ defaults: "accessibleLabelLoadingDefaults",
7228
+ },
7229
+ ]);
7204
7230
  if (!this.url && this.element.closest("form")) {
7205
7231
  this.element.insertAdjacentElement("beforebegin", this.proxyButton);
7206
7232
  }
@@ -7230,6 +7256,20 @@ class DuetButton {
7230
7256
  getButtonType() {
7231
7257
  return this.submit ? "submit" : "button";
7232
7258
  }
7259
+ getButtonIconSize() {
7260
+ switch (this.iconSize) {
7261
+ case "small":
7262
+ return "small";
7263
+ case "medium-small":
7264
+ return "medium-small";
7265
+ case "medium":
7266
+ return "medium";
7267
+ case "large":
7268
+ return "large";
7269
+ default:
7270
+ return "medium";
7271
+ }
7272
+ }
7233
7273
  /**
7234
7274
  * Sets focus on the specified `duet-button`. Use this method instead of the global
7235
7275
  * `button.focus()`.
@@ -7253,7 +7293,7 @@ class DuetButton {
7253
7293
  "duet-button-icon": true,
7254
7294
  left: !iconRight,
7255
7295
  right: iconRight,
7256
- [this.iconSize]: true,
7296
+ [this.getButtonIconSize()]: true,
7257
7297
  } }, hAsync("duet-icon", { size: "auto", margin: "none", name: icon, color: "currentColor" }))), hAsync("slot", null)));
7258
7298
  const commonProps = {
7259
7299
  onFocus: this.onFocus,
@@ -7273,7 +7313,7 @@ class DuetButton {
7273
7313
  disabled: this.disabled,
7274
7314
  icon: !!icon,
7275
7315
  "icon-right": iconRight,
7276
- [this.iconSize]: true,
7316
+ [this.getButtonIconSize()]: true,
7277
7317
  },
7278
7318
  "aria-controls": this.accessibleControls,
7279
7319
  "aria-label": this.accessibleLabel,
@@ -7297,7 +7337,7 @@ class DuetButton {
7297
7337
  "duet-theme-turva": this.theme === "turva",
7298
7338
  "duet-button-negative": this.negative || this.variation === "negative",
7299
7339
  [this.variation]: true,
7300
- } }, this.url ? (hAsync("a", Object.assign({}, commonProps, { href: this.url, target: this.external ? "_blank" : "_self", rel: this.external ? "noopener" : undefined }), commonChildren, this.external && hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal))) : (hAsync("button", Object.assign({}, commonProps, { type: this.getButtonType(), disabled: this.disabled, name: this.name, value: this.value, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined, "aria-disabled": this.disabled }), commonChildren)), this.loading && hAsync("duet-spinner", { color: "currentColor" }))));
7340
+ } }, this.url ? (hAsync("a", Object.assign({}, commonProps, { href: this.url, target: this.external ? "_blank" : "_self", rel: this.external ? "noopener" : undefined }), commonChildren, this.external && hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal))) : (hAsync("button", Object.assign({}, commonProps, { type: this.getButtonType(), disabled: this.disabled, name: this.name, value: this.value, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined, "aria-disabled": this.disabled }), commonChildren, this.loading && hAsync("duet-visually-hidden", null, " ", this.accessibleLabelLoading, " "))), this.loading && hAsync("duet-spinner", { color: "currentColor" }))));
7301
7341
  }
7302
7342
  get element() { return getElement(this); }
7303
7343
  static get watchers() { return {
@@ -7341,6 +7381,8 @@ class DuetButton {
7341
7381
  "language": [1537],
7342
7382
  "accessibleLabelExternalDefaults": [1, "accessible-label-external-default"],
7343
7383
  "accessibleLabelExternal": [1025, "accessible-label-external"],
7384
+ "accessibleLabelLoadingDefaults": [1, "accessible-label-loading-default"],
7385
+ "accessibleLabelLoading": [1025, "accessible-label-loading"],
7344
7386
  "icon": [1],
7345
7387
  "color": [1],
7346
7388
  "iconRight": [4, "icon-right"],
@@ -8132,6 +8174,7 @@ class DuetChoice {
8132
8174
  { prop: "accessibleLabelInfoButton", defaults: "accessibleLabelInfoButtonDefaults" },
8133
8175
  { prop: "infoLabel", defaults: "infoLabelDefaults" },
8134
8176
  ]);
8177
+ this.duetChoiceReady.emit();
8135
8178
  }
8136
8179
  disconnectedCallback() {
8137
8180
  disconnectLanguageChangeObserver(this);
@@ -9410,7 +9453,7 @@ class DuetCombobox {
9410
9453
  return (hAsync(Host, { role: "combobox", "aria-expanded": this.listOpen ? "true" : "false", "aria-owns": "duet-combobox-list-element", "aria-haspopup": "listbox", class: {
9411
9454
  "duet-combobox": true,
9412
9455
  [`duet-theme-${this.theme}`]: true,
9413
- } }, hAsync("slot", null), hAsync("div", { role: "list", class: {
9456
+ } }, hAsync("slot", null), hAsync("div", { class: {
9414
9457
  "duet-combobox-list": true,
9415
9458
  open: this.listOpen,
9416
9459
  }, ref: el => (this.listContainer = el) }, hAsync("ul", { class: {
@@ -14190,6 +14233,11 @@ class DuetMultiselect {
14190
14233
  fi: "Tyhjennä kaikki",
14191
14234
  sv: "Rensa alla",
14192
14235
  };
14236
+ this.placeholderLabel = {
14237
+ en: "Hint",
14238
+ fi: "Vihje",
14239
+ sv: "Tips",
14240
+ };
14193
14241
  /**
14194
14242
  * Component event handling.
14195
14243
  */
@@ -14353,7 +14401,7 @@ class DuetMultiselect {
14353
14401
  "duet-theme-turva": this.theme === "turva",
14354
14402
  "duet-input-top-caption-shown": this.isCaptionVisible,
14355
14403
  "has-error": !!this.error,
14356
- }, onKeyDown: (e) => this.onMultiselectKeyDown(e) }, hAsync("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, id: this.labelId, for: this.identifier }, this.label), this.tooltip && (hAsync("duet-tooltip", { class: "duet-multiselect-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), this.caption && (hAsync("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), hAsync("div", { class: "duet-multiselect-wrapper" }, hAsync("button", { 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", { role: "textbox", "aria-readonly": "true", "aria-multiline": "false", "aria-autocomplete": "none", "aria-controls": `${this.identifier}-checkboxes` }, this.placeholder), this.value && this.value.length > 0 && (hAsync("duet-badge", { class: "duet-multiselect-badge", margin: "none", theme: this.theme }, this.value.length, " ", this.selectedLangObject[this.language], hAsync("duet-visually-hidden", null, ", ", this.value.map(item => item.label).join(", ")))), hAsync("svg", { role: "img", 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", { 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", { id: `${this.identifier}-checkboxes`, role: "listbox", class: {
14404
+ }, onKeyDown: (e) => this.onMultiselectKeyDown(e) }, hAsync("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, id: this.labelId, for: this.identifier }, this.label), this.tooltip && (hAsync("duet-tooltip", { class: "duet-multiselect-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), this.caption && (hAsync("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), hAsync("div", { class: "duet-multiselect-wrapper" }, hAsync("button", { 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", { role: "textbox", "aria-readonly": "true", "aria-multiline": "false", "aria-autocomplete": "none", "aria-controls": `${this.identifier}-checkboxes`, "aria-label": this.placeholderLabel[this.language] }, this.placeholder), this.value && this.value.length > 0 && (hAsync("duet-badge", { class: "duet-multiselect-badge", margin: "none", theme: this.theme }, this.value.length, " ", this.selectedLangObject[this.language], hAsync("duet-visually-hidden", null, ", ", this.value.map(item => item.label).join(", ")))), hAsync("svg", { 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", { 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", { id: `${this.identifier}-checkboxes`, role: "listbox", class: {
14357
14405
  "duet-multiselect-checkboxes": true,
14358
14406
  "duet-multiselect-checkboxes-active": this.checkboxesVisible,
14359
14407
  }, "aria-activedescendant": this.activeDescendant, "aria-multiselectable": "true" }, this.processedItems && this.allControls && (hAsync("div", { class: "duet-multiselect-all-control-buttons" }, hAsync("button", { class: "duet-multiselect-select-all", onClick: this.handleSelectAllClick, id: this.getOptionIdentifier(-2), onKeyDown: (e) => this.onCheckboxKeyDown(e, -2) }, this.selectAllLabel[this.language]), hAsync("button", { class: "duet-multiselect-clear-all", onClick: this.handleClearAllClick, id: this.getOptionIdentifier(-1), onKeyDown: (e) => this.onCheckboxKeyDown(e, -1) }, this.clearAllLabel[this.language]))), this.processedItems &&
@@ -17096,7 +17144,7 @@ class DuetProgress {
17096
17144
  "duet-progress-start": this.progress === 0,
17097
17145
  "duet-progress-inprogress": this.progress < 99 && this.progress !== 0,
17098
17146
  "duet-theme-turva": this.theme === "turva",
17099
- } }, hAsync("duet-visually-hidden", null, hAsync("label", { htmlFor: this.progressLabelId }, this.progress !== 0 && (hAsync("span", null, this.accessibleLabel, ", ", this.accessibleLabelUpload[this.progress < 99 ? 1 : 0])))), this.caption && (hAsync("div", { class: "duet-progress-caption" }, hAsync("span", null, this.caption))), hAsync("progress", { id: this.progressLabelId, "aria-describedby": this.accessibleDescribedBy, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, role: "progressbar", value: this.progress, max: "100", "aria-valuemin": "0", "aria-valuemax": "100" }, hAsync("div", { class: "progress-bar" }, hAsync("span", { style: { width: `${this.progress}%;` } }, "Progress: ", this.progress, "%"))))));
17147
+ } }, hAsync("duet-visually-hidden", null, hAsync("label", { htmlFor: this.progressLabelId }, hAsync("span", null, this.accessibleLabel, this.progress !== 0 && `, ${this.accessibleLabelUpload[this.progress < 99 ? 1 : 0]}`))), this.caption && (hAsync("div", { class: "duet-progress-caption" }, hAsync("span", null, this.caption))), hAsync("progress", { id: this.progressLabelId, "aria-describedby": this.accessibleDescribedBy, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, role: "progressbar", value: this.progress, max: "100", "aria-valuemin": "0", "aria-valuemax": "100" }, hAsync("div", { class: "progress-bar" }, hAsync("span", { style: { width: `${this.progress}%;` } }, "Progress: ", this.progress, "%"))))));
17100
17148
  }
17101
17149
  get element() { return getElement(this); }
17102
17150
  static get style() { return duetProgressCss; }
@@ -18265,7 +18313,7 @@ class DuetShapedImage {
18265
18313
  }; }
18266
18314
  }
18267
18315
 
18268
- const duetShowMoreCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-show-more,*.sc-duet-show-more::after,*.sc-duet-show-more::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-show-more-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:16px !important;display:block}/*!@.duet-show-more*/.duet-show-more.sc-duet-show-more{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(0, 41, 77)}/*!@.duet-show-more.duet-m-0*/.duet-show-more.duet-m-0.sc-duet-show-more{margin:0 !important}/*!@.duet-show-more .slotted-content*/.duet-show-more.sc-duet-show-more .slotted-content.sc-duet-show-more{display:none}/*!@.duet-show-more.open .slotted-content*/.duet-show-more.open.sc-duet-show-more .slotted-content.sc-duet-show-more{display:block}/*!@.duet-show-more.duet-theme-turva*/.duet-show-more.duet-theme-turva.sc-duet-show-more{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, 28, 58)}";
18316
+ const duetShowMoreCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-show-more,*.sc-duet-show-more::after,*.sc-duet-show-more::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-show-more-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block}/*!@.duet-show-more*/.duet-show-more.sc-duet-show-more{margin-bottom:16px !important;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.5;color:rgb(0, 41, 77)}/*!@.duet-show-more.duet-m-0*/.duet-show-more.duet-m-0.sc-duet-show-more{margin:0 !important}/*!@.duet-show-more .slotted-content*/.duet-show-more.sc-duet-show-more .slotted-content.sc-duet-show-more{display:none}/*!@.duet-show-more.open .slotted-content*/.duet-show-more.open.sc-duet-show-more .slotted-content.sc-duet-show-more{display:block}/*!@.duet-show-more.duet-theme-turva*/.duet-show-more.duet-theme-turva.sc-duet-show-more{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, 28, 58)}";
18269
18317
 
18270
18318
  class DuetShowMore {
18271
18319
  constructor(hostRef) {
@@ -19263,7 +19311,7 @@ class DuetSubmenuBar {
19263
19311
  */
19264
19312
  componentWillLoad() {
19265
19313
  inheritGlobalTheme(this);
19266
- const children = Array.from(this.element.children);
19314
+ const children = Array.from(this.element.children).filter(child => !child.hasAttribute("slot"));
19267
19315
  for (const child of children) {
19268
19316
  child.setAttribute("role", "listitem");
19269
19317
  }
@@ -19464,7 +19512,7 @@ class DuetSubmenuBarDropdown {
19464
19512
  }; }
19465
19513
  }
19466
19514
 
19467
- const duetSubmenuBarDropdownLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-submenu-bar-dropdown-link,*.sc-duet-submenu-bar-dropdown-link::after,*.sc-duet-submenu-bar-dropdown-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-submenu-bar-dropdown-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%}/*!@.duet-submenu-bar-dropdown-link*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link{display:flex;flex-direction:row;gap:0.5rem;align-items:center;justify-content:flex-start;height:100%;padding:8px 20px 8px 60px;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;line-height:1.25;color:rgb(0, 41, 77);text-align:center;text-decoration:none}/*!@.duet-submenu-bar-dropdown-link:focus*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@.duet-theme-turva .duet-submenu-bar-dropdown-link:focus, .duet-submenu-bar-dropdown-link:focus.duet-theme-turva*/.duet-theme-turva.sc-duet-submenu-bar-dropdown-link .duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link:focus,.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown-link*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link{padding:0.675rem 16px;font-size:0.875rem}}/*!@.duet-submenu-bar-dropdown-link.active .label*/.duet-submenu-bar-dropdown-link.active.sc-duet-submenu-bar-dropdown-link .label.sc-duet-submenu-bar-dropdown-link{position:relative}/*!@.duet-submenu-bar-dropdown-link.active .label::after*/.duet-submenu-bar-dropdown-link.active.sc-duet-submenu-bar-dropdown-link .label.sc-duet-submenu-bar-dropdown-link::after{position:absolute;top:auto;bottom:0;left:0;display:block;width:100%;height:1px;content:\"\";background:rgb(0, 119, 179);transform:1px}/*!@.duet-submenu-bar-dropdown-link.duet-theme-turva*/.duet-submenu-bar-dropdown-link.duet-theme-turva.sc-duet-submenu-bar-dropdown-link{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, 28, 58)}/*!@.duet-submenu-bar-dropdown-link.duet-theme-turva.active .label::after*/.duet-submenu-bar-dropdown-link.duet-theme-turva.active.sc-duet-submenu-bar-dropdown-link .label.sc-duet-submenu-bar-dropdown-link::after{background:rgb(198, 12, 48)}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown-link:hover*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link:hover{color:rgb(0, 77, 128);background:rgb(243, 249, 252)}/*!@.duet-submenu-bar-dropdown-link:hover.duet-theme-turva*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link:hover.duet-theme-turva{color:rgb(148, 9, 37);background:rgb(245, 245, 247)}}/*!@.duet-submenu-bar-dropdown-link.highlight*/.duet-submenu-bar-dropdown-link.highlight.sc-duet-submenu-bar-dropdown-link{color:rgb(0, 119, 179)}/*!@.duet-submenu-bar-dropdown-link.highlight.duet-theme-turva*/.duet-submenu-bar-dropdown-link.highlight.duet-theme-turva.sc-duet-submenu-bar-dropdown-link{color:rgb(148, 9, 37)}";
19515
+ const duetSubmenuBarDropdownLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-submenu-bar-dropdown-link,*.sc-duet-submenu-bar-dropdown-link::after,*.sc-duet-submenu-bar-dropdown-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-submenu-bar-dropdown-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%}/*!@.duet-submenu-bar-dropdown-link*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link{display:flex;flex-direction:row;gap:0.5rem;align-items:center;justify-content:flex-start;height:100%;padding:8px 20px 8px 60px;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;line-height:1.25;color:rgb(0, 41, 77);text-align:left;text-decoration:none}/*!@.duet-submenu-bar-dropdown-link:focus*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@.duet-theme-turva .duet-submenu-bar-dropdown-link:focus, .duet-submenu-bar-dropdown-link:focus.duet-theme-turva*/.duet-theme-turva.sc-duet-submenu-bar-dropdown-link .duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link:focus,.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown-link*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link{padding:0.675rem 16px;font-size:0.875rem;text-align:center}}/*!@.duet-submenu-bar-dropdown-link.active .label*/.duet-submenu-bar-dropdown-link.active.sc-duet-submenu-bar-dropdown-link .label.sc-duet-submenu-bar-dropdown-link{position:relative}/*!@.duet-submenu-bar-dropdown-link.active .label::after*/.duet-submenu-bar-dropdown-link.active.sc-duet-submenu-bar-dropdown-link .label.sc-duet-submenu-bar-dropdown-link::after{position:absolute;top:auto;bottom:0;left:0;display:block;width:100%;height:1px;content:\"\";background:rgb(0, 119, 179);transform:1px}/*!@.duet-submenu-bar-dropdown-link.duet-theme-turva*/.duet-submenu-bar-dropdown-link.duet-theme-turva.sc-duet-submenu-bar-dropdown-link{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, 28, 58)}/*!@.duet-submenu-bar-dropdown-link.duet-theme-turva.active .label::after*/.duet-submenu-bar-dropdown-link.duet-theme-turva.active.sc-duet-submenu-bar-dropdown-link .label.sc-duet-submenu-bar-dropdown-link::after{background:rgb(198, 12, 48)}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown-link:hover*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link:hover{color:rgb(0, 77, 128);background:rgb(243, 249, 252)}/*!@.duet-submenu-bar-dropdown-link:hover.duet-theme-turva*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link:hover.duet-theme-turva{color:rgb(148, 9, 37);background:rgb(245, 245, 247)}}/*!@.duet-submenu-bar-dropdown-link.highlight*/.duet-submenu-bar-dropdown-link.highlight.sc-duet-submenu-bar-dropdown-link{color:rgb(0, 119, 179)}/*!@.duet-submenu-bar-dropdown-link.highlight.duet-theme-turva*/.duet-submenu-bar-dropdown-link.highlight.duet-theme-turva.sc-duet-submenu-bar-dropdown-link{color:rgb(148, 9, 37)}";
19468
19516
 
19469
19517
  class DuetSubmenuBarDropdownLink {
19470
19518
  constructor(hostRef) {
@@ -19615,6 +19663,7 @@ class DuetTab {
19615
19663
  .accessibleDescriptionDefault
19616
19664
  ? getLocaleString(this.accessibleDescriptionDefault)
19617
19665
  : null;
19666
+ this.accessibleLabelledBy = undefined;
19618
19667
  }
19619
19668
  /**
19620
19669
  * Component lifecycle events.
@@ -19641,7 +19690,8 @@ class DuetTab {
19641
19690
  "caption": [513],
19642
19691
  "selected": [516],
19643
19692
  "accessibleDescriptionDefault": [1, "accessible-description-defaults"],
19644
- "accessibleDescription": [1025, "accessible-description"]
19693
+ "accessibleDescription": [1025, "accessible-description"],
19694
+ "accessibleLabelledBy": [1, "accessible-labelled-by"]
19645
19695
  },
19646
19696
  "$listeners$": undefined,
19647
19697
  "$lazyBundleId$": "-",
@@ -19823,7 +19873,7 @@ class DuetTabGroup {
19823
19873
  this.tabs = this.getTabs();
19824
19874
  this.tabs.forEach((tab, index) => {
19825
19875
  tab.id = this.getTabId(index);
19826
- tab.setAttribute("aria-labelledby", this.getButtonId(index));
19876
+ tab.setAttribute("accessible-labelled-by", this.getButtonId(index));
19827
19877
  if (tab.selected) {
19828
19878
  if (this.selected === undefined) {
19829
19879
  this.selected = index;
@@ -8,5 +8,11 @@ const DuetStringsExternalDefaults = {
8
8
  sv: "Öppnas i nytt fönster",
9
9
  en: "Opens in a new window",
10
10
  };
11
+ const DuetStringsLoadingDefaults = {
12
+ fi: "Ladataan",
13
+ sv: "Lastning",
14
+ en: "Loading…",
15
+ };
11
16
 
12
17
  exports.DuetStringsExternalDefaults = DuetStringsExternalDefaults;
18
+ exports.DuetStringsLoadingDefaults = DuetStringsLoadingDefaults;
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-780310fa.js');
8
+ const index = require('./index-b9ee6ca5.js');
9
9
  const themeableComponent = require('./themeable-component-0be6d1f4.js');
10
10
  const createId = require('./create-id-167cd350.js');
11
11
  const jsUtils = require('./js-utils-b20cfc79.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-780310fa.js');
8
+ const index = require('./index-b9ee6ca5.js');
9
9
  const themeableComponent = require('./themeable-component-0be6d1f4.js');
10
10
  const createId = require('./create-id-167cd350.js');
11
11
  const languageUtils = require('./language-utils-dc19e8b6.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-780310fa.js');
8
+ const index = require('./index-b9ee6ca5.js');
9
9
  const themeableComponent = require('./themeable-component-0be6d1f4.js');
10
10
 
11
11
  const duetBadgeCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:4px !important;margin-bottom:2px !important;display:inline-block;width:auto;vertical-align:middle}:host:last-child,:host:last-of-type{margin-right:0 !important}:host(.duet-m-0){margin:0 !important}.duet-badge{width:100%;padding:4.4444444444px 12px 5.4444444444px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.75rem;font-style:normal;font-weight:600;line-height:1.25;color:rgb(0, 41, 77);text-align:center;word-break:break-word;vertical-align:middle;background:#d9ebf4;border-radius:20rem}.duet-badge.duet-p-0{padding:0 !important}.duet-badge.duet-m-0{margin:0 !important}.duet-badge.duet-theme-turva{padding:5.4444444444px 12px 4.4444444444px;font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-weight:700;color:rgb(23, 28, 58);background:#e8e8eb}.duet-badge.warning{background:#fdecc9}.duet-badge.warning.duet-theme-turva{background:#fee8c3}.duet-badge.danger{background:#f8d3e0}.duet-badge.danger.duet-theme-turva{background:#f9d4cf}.duet-badge.success{background:#cce7de}.duet-badge.success.duet-theme-turva{background:#cee7dc}.duet-badge.subtle{color:rgb(101, 119, 135);background:none;outline:1px solid rgb(225, 227, 230);outline-offset:-1px}.duet-badge.subtle.duet-theme-turva{color:rgb(68, 68, 69);background:none;outline-color:rgb(228, 228, 230)}.duet-badge.background-strong.default{color:rgb(255, 255, 255);background:rgb(0, 119, 179)}.duet-badge.background-strong.default.duet-theme-turva{color:rgb(255, 255, 255);background:rgb(23, 28, 58)}.duet-badge.background-strong.warning{background:#f9c153}.duet-badge.background-strong.warning.duet-theme-turva{background:#fbb63f}.duet-badge.background-strong.danger{color:rgb(255, 255, 255);background:rgb(222, 35, 98)}.duet-badge.background-strong.danger.duet-theme-turva{color:rgb(255, 255, 255);background:rgb(224, 42, 13)}.duet-badge.background-strong.success{color:rgb(255, 255, 255);background:rgb(0, 135, 90)}.duet-badge.background-strong.success.duet-theme-turva{color:rgb(255, 255, 255);background:rgb(8, 135, 78)}.duet-badge.background-strong.subtle{border-color:rgb(207, 210, 212);outline-color:rgb(0, 41, 77)}.duet-badge.background-strong.subtle.duet-theme-turva{border-color:rgb(207, 207, 209);outline-color:rgb(23, 28, 58)}";
@@ -5,11 +5,19 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-780310fa.js');
8
+ const index = require('./index-b9ee6ca5.js');
9
9
  const themeableComponent = require('./themeable-component-0be6d1f4.js');
10
+ const stringUtils = require('./string-utils-51a2f59f.js');
10
11
  const tokenUtils = require('./token-utils-dbfeff2e.js');
11
12
  require('./tokens.module-10f42b21.js');
12
13
 
14
+ const DuetPicture = ({ img, sources }) => {
15
+ return (index.h("picture", null,
16
+ sources &&
17
+ sources.map(source => (index.h("source", { srcSet: source.srcset, media: source.media, type: source.type, sizes: source.sizes }))),
18
+ index.h("img", Object.assign({}, img))));
19
+ };
20
+
13
21
  const duetBannerCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:4px !important;margin-bottom:2px !important;display:block;width:auto}:host:last-child,:host:last-of-type{margin-right:0 !important}:host(.duet-m-0){margin:0 !important}.duet-banner{display:grid;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;text-align:left;border-radius:24px}.duet-banner.duet-p-0{padding:0 !important}.duet-banner.duet-m-0{margin:0 !important}.duet-banner .visual{position:relative;overflow:hidden;border-top-left-radius:24px;border-top-right-radius:24px}.duet-banner .visual .image-container{position:relative;width:400px;height:400px;overflow:hidden;border-radius:20%;transform:rotate(7deg)}.duet-banner .visual .image{position:relative;top:20px;width:100%;height:100%;transform:rotate(-7deg);object-fit:cover}.duet-banner .visual .icon{position:absolute}.duet-banner .content{display:flex;flex-direction:column;gap:8px;padding:0 20px 36px}.duet-banner .action{display:flex;flex-direction:column;flex-grow:1;align-items:flex-start;justify-content:flex-end;padding-top:16px}.duet-banner.small{grid-template-rows:335px 1fr;max-width:335px}.duet-banner.small .visual{border-top-left-radius:24px;border-top-right-radius:24px}.duet-banner.small .visual .image-container{top:-130px;left:-40px}.duet-banner.small .visual .icon{bottom:30px;left:15px}.duet-banner.large{grid-template-rows:none;grid-template-columns:50% 50%;min-width:900px;max-width:1112px;height:320px;max-height:none}.duet-banner.large .visual{border-top-left-radius:24px;border-bottom-left-radius:24px}.duet-banner.large .visual .image-container{top:-30px;left:-30px}.duet-banner.large .visual .image{top:-15px;left:30px}.duet-banner.large .visual .icon{top:40px;bottom:auto;left:335px}.duet-banner.large .content{align-items:flex-start;justify-content:center;padding:0 72px 0 0}.duet-banner.large .action{flex-grow:0}.duet-banner.auto{grid-template-rows:335px 1fr;max-width:335px}.duet-banner.auto .visual{border-top-left-radius:24px;border-top-right-radius:24px}.duet-banner.auto .visual .image-container{top:-130px;left:-40px}.duet-banner.auto .visual .icon{bottom:30px;left:15px}@media (min-width: 62em){.duet-banner.auto{grid-template-rows:none;grid-template-columns:50% 50%;min-width:900px;max-width:1112px;height:320px;max-height:none}.duet-banner.auto .visual{border-top-left-radius:24px;border-bottom-left-radius:24px}.duet-banner.auto .visual .image-container{top:-30px;left:-30px}.duet-banner.auto .visual .image{top:-15px;left:30px}.duet-banner.auto .visual .icon{top:40px;bottom:auto;left:335px}.duet-banner.auto .content{align-items:flex-start;justify-content:center;padding:0 72px 0 0}.duet-banner.auto .action{flex-grow:0}}.duet-banner.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\"}.duet-banner.duet-theme-turva .visual .image-container{width:526px;height:456px;transform:none;-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\");-webkit-mask-repeat:no-repeat;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-repeat:no-repeat}.duet-banner.duet-theme-turva .visual .image{transform:none}.duet-banner.duet-theme-turva.small .visual .image-container{top:-164px;left:-147px}.duet-banner.duet-theme-turva.small .visual .image{top:0;left:0}.duet-banner.duet-theme-turva.small .visual .icon{bottom:15px}.duet-banner.duet-theme-turva.large .visual .image-container{top:-54.923px;left:-147px}.duet-banner.duet-theme-turva.large .visual .image{top:0;left:0}.duet-banner.duet-theme-turva.large .visual .icon{bottom:auto;left:295px}.duet-banner.duet-theme-turva.auto .visual .image-container{top:-164px;left:-147px}.duet-banner.duet-theme-turva.auto .visual .image{top:0;left:0}.duet-banner.duet-theme-turva.auto .visual .icon{bottom:15px}@media (min-width: 62em){.duet-banner.duet-theme-turva.auto .visual .image-container{top:-54.923px;left:-147px}.duet-banner.duet-theme-turva.auto .visual .image{top:0;left:0}.duet-banner.duet-theme-turva.auto .visual .icon{bottom:auto;left:295px}}";
14
22
 
15
23
  const DuetBanner = class {
@@ -23,6 +31,7 @@ const DuetBanner = class {
23
31
  this.textColor = "secondary";
24
32
  this.size = "auto";
25
33
  this.image = "";
34
+ this.sources = undefined;
26
35
  this.icon = "";
27
36
  this.headingLevel = "h2";
28
37
  }
@@ -45,11 +54,15 @@ const DuetBanner = class {
45
54
  const bannerStyles = {
46
55
  backgroundColor,
47
56
  };
57
+ const pictureSource = {
58
+ img: { src: this.image, alt: "", loading: "lazy", class: "image", role: "presentation" },
59
+ sources: stringUtils.parsePossibleJSON(this.sources),
60
+ };
48
61
  return (index.h(index.Host, { class: { "duet-m-0": this.margin === "none" } }, index.h("aside", { class: {
49
62
  "duet-banner": true,
50
63
  "duet-theme-turva": this.theme === "turva",
51
64
  [this.size]: true,
52
- }, style: bannerStyles }, index.h("div", { class: "visual" }, index.h("div", { class: "image-container" }, index.h("img", { class: "image", src: this.image, alt: "", role: "presentation" })), this.icon && (index.h("duet-icon", { theme: this.theme, class: "icon", name: this.icon, shape: "brand", size: "xx-large", color: this.iconColor, background: this.iconBackgroundColor, "background-rotation": "7", "background-opacity": "0.85", margin: "none" }))), index.h("div", { class: "content" }, this.hasHeadingSlot && (index.h("div", { class: "heading" }, index.h("duet-heading", { theme: this.theme, level: this.headingLevel, "visual-level": "h2", margin: "none", color: this.textColor }, index.h("slot", { name: "heading" })))), this.hasDescriptionSlot && (index.h("div", { class: "description" }, index.h("duet-paragraph", { theme: this.theme, margin: "none", color: this.textColor }, index.h("slot", { name: "description" })))), this.hasActionSlot && (index.h("div", { class: "action" }, index.h("slot", { name: "action" })))))));
65
+ }, style: bannerStyles }, index.h("div", { class: "visual" }, index.h("div", { class: "image-container" }, this.image && index.h(DuetPicture, Object.assign({}, pictureSource))), this.icon && (index.h("duet-icon", { theme: this.theme, class: "icon", name: this.icon, shape: "brand", size: "xx-large", color: this.iconColor, background: this.iconBackgroundColor, "background-rotation": "7", "background-opacity": "0.85", margin: "none" }))), index.h("div", { class: "content" }, this.hasHeadingSlot && (index.h("div", { class: "heading" }, index.h("duet-heading", { theme: this.theme, level: this.headingLevel, "visual-level": "h2", margin: "none", color: this.textColor }, index.h("slot", { name: "heading" })))), this.hasDescriptionSlot && (index.h("div", { class: "description" }, index.h("duet-paragraph", { theme: this.theme, margin: "none", color: this.textColor }, index.h("slot", { name: "description" })))), this.hasActionSlot && (index.h("div", { class: "action" }, index.h("slot", { name: "action" })))))));
53
66
  }
54
67
  get element() { return index.getElement(this); }
55
68
  };
@@ -5,14 +5,14 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-780310fa.js');
8
+ const index = require('./index-b9ee6ca5.js');
9
9
  const themeableComponent = require('./themeable-component-0be6d1f4.js');
10
10
  const languageUtils = require('./language-utils-dc19e8b6.js');
11
11
  require('./string-utils-51a2f59f.js');
12
12
 
13
13
  var actionArrowRightSmall={"title":"action-arrow-right-small","tags":"action arrow right small caret","svg":"<svg fill=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\"><path d=\"M19.5 12a2.3 2.3 0 0 1-.78 1.729L7.568 23.54a1.847 1.847 0 0 1-2.439-2.773l9.752-8.579a.25.25 0 0 0 0-.376L5.129 3.233A1.847 1.847 0 0 1 7.568.46l11.148 9.808A2.31 2.31 0 0 1 19.5 12z\"/></svg>"};
14
14
 
15
- const duetBreadcrumbCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:list-item;width:auto}.container{display:flex;gap:8px;align-items:center}.hide{display:none}.duet-breadrumbs-arrow{display:block;align-items:center;justify-content:center;width:0.375rem;height:0.375rem}.duet-breadcrumb{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:100%;font-size:0.875rem;font-weight:inherit;line-height:1.25;color:inherit;text-decoration:none}.duet-breadcrumb:focus{outline:0}:host(.user-is-tabbing) .duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-breadcrumb.duet-theme-turva:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}";
15
+ const duetBreadcrumbCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:list-item;width:auto}.container{display:flex;gap:8px;align-items:center}.hide{display:none}.duet-breadrumbs-arrow{display:block;align-items:center;justify-content:center;width:0.375rem;min-width:0.375rem;height:0.375rem;min-height:0.375rem}.duet-breadcrumb{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:100%;font-size:0.875rem;font-weight:inherit;line-height:1.25;color:inherit;text-decoration:none}.duet-breadcrumb:focus{outline:0}:host(.user-is-tabbing) .duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-breadcrumb.duet-theme-turva:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}";
16
16
 
17
17
  const DuetBreadcrumb = class {
18
18
  constructor(hostRef) {
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-780310fa.js');
8
+ const index = require('./index-b9ee6ca5.js');
9
9
  const themeableComponent = require('./themeable-component-0be6d1f4.js');
10
10
  const languageUtils = require('./language-utils-dc19e8b6.js');
11
11
  require('./string-utils-51a2f59f.js');
@@ -5,9 +5,9 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-780310fa.js');
8
+ const index = require('./index-b9ee6ca5.js');
9
9
  const themeableComponent = require('./themeable-component-0be6d1f4.js');
10
- const commonStrings = require('./common-strings-17770d7a.js');
10
+ const commonStrings = require('./common-strings-86913e94.js');
11
11
  const languageUtils = require('./language-utils-dc19e8b6.js');
12
12
  const tokenUtils = require('./token-utils-dbfeff2e.js');
13
13
  require('./string-utils-51a2f59f.js');
@@ -69,6 +69,8 @@ const DuetButton = class {
69
69
  this.language = languageUtils.getLanguage();
70
70
  this.accessibleLabelExternalDefaults = commonStrings.DuetStringsExternalDefaults;
71
71
  this.accessibleLabelExternal = languageUtils.getLocaleString(this.accessibleLabelExternalDefaults);
72
+ this.accessibleLabelLoadingDefaults = commonStrings.DuetStringsLoadingDefaults;
73
+ this.accessibleLabelLoading = languageUtils.getLocaleString(this.accessibleLabelLoadingDefaults);
72
74
  this.icon = "";
73
75
  this.color = "";
74
76
  this.iconRight = false;
@@ -90,10 +92,16 @@ const DuetButton = class {
90
92
  this.proxyButton = document.createElement("button");
91
93
  this.proxyButton.style.display = "none";
92
94
  this.syncToProxyButton();
93
- languageUtils.connectLanguageChangeObserver(this, {
94
- prop: "accessibleLabelExternal",
95
- defaults: "accessibleLabelExternalDefaults",
96
- });
95
+ languageUtils.connectLanguageChangeObserver(this, [
96
+ {
97
+ prop: "accessibleLabelExternal",
98
+ defaults: "accessibleLabelExternalDefaults",
99
+ },
100
+ {
101
+ prop: "accessibleLabelLoading",
102
+ defaults: "accessibleLabelLoadingDefaults",
103
+ },
104
+ ]);
97
105
  if (!this.url && this.element.closest("form")) {
98
106
  this.element.insertAdjacentElement("beforebegin", this.proxyButton);
99
107
  }
@@ -123,6 +131,20 @@ const DuetButton = class {
123
131
  getButtonType() {
124
132
  return this.submit ? "submit" : "button";
125
133
  }
134
+ getButtonIconSize() {
135
+ switch (this.iconSize) {
136
+ case "small":
137
+ return "small";
138
+ case "medium-small":
139
+ return "medium-small";
140
+ case "medium":
141
+ return "medium";
142
+ case "large":
143
+ return "large";
144
+ default:
145
+ return "medium";
146
+ }
147
+ }
126
148
  /**
127
149
  * Sets focus on the specified `duet-button`. Use this method instead of the global
128
150
  * `button.focus()`.
@@ -146,7 +168,7 @@ const DuetButton = class {
146
168
  "duet-button-icon": true,
147
169
  left: !iconRight,
148
170
  right: iconRight,
149
- [this.iconSize]: true,
171
+ [this.getButtonIconSize()]: true,
150
172
  } }, index.h("duet-icon", { size: "auto", margin: "none", name: icon, color: "currentColor" }))), index.h("slot", null)));
151
173
  const commonProps = {
152
174
  onFocus: this.onFocus,
@@ -166,7 +188,7 @@ const DuetButton = class {
166
188
  disabled: this.disabled,
167
189
  icon: !!icon,
168
190
  "icon-right": iconRight,
169
- [this.iconSize]: true,
191
+ [this.getButtonIconSize()]: true,
170
192
  },
171
193
  "aria-controls": this.accessibleControls,
172
194
  "aria-label": this.accessibleLabel,
@@ -190,7 +212,7 @@ const DuetButton = class {
190
212
  "duet-theme-turva": this.theme === "turva",
191
213
  "duet-button-negative": this.negative || this.variation === "negative",
192
214
  [this.variation]: true,
193
- } }, this.url ? (index.h("a", Object.assign({}, commonProps, { href: this.url, target: this.external ? "_blank" : "_self", rel: this.external ? "noopener" : undefined }), commonChildren, this.external && index.h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal))) : (index.h("button", Object.assign({}, commonProps, { type: this.getButtonType(), disabled: this.disabled, name: this.name, value: this.value, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined, "aria-disabled": this.disabled }), commonChildren)), this.loading && index.h("duet-spinner", { color: "currentColor" }))));
215
+ } }, this.url ? (index.h("a", Object.assign({}, commonProps, { href: this.url, target: this.external ? "_blank" : "_self", rel: this.external ? "noopener" : undefined }), commonChildren, this.external && index.h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal))) : (index.h("button", Object.assign({}, commonProps, { type: this.getButtonType(), disabled: this.disabled, name: this.name, value: this.value, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined, "aria-disabled": this.disabled }), commonChildren, this.loading && index.h("duet-visually-hidden", null, " ", this.accessibleLabelLoading, " "))), this.loading && index.h("duet-spinner", { color: "currentColor" }))));
194
216
  }
195
217
  get element() { return index.getElement(this); }
196
218
  static get watchers() { return {