@duetds/components 10.6.0 → 10.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/hydrate/index.js +557 -271
  2. package/hydrate/index.mjs +557 -271
  3. package/lib/cjs/{a11y-utils-CgWjS7yq.js → a11y-utils-DZ42p33K.js} +1 -1
  4. package/lib/cjs/{app-globals-D68ciWsb.js → app-globals-DiBfle2l.js} +1 -1
  5. package/lib/cjs/duet-action-button.cjs.entry.js +3 -3
  6. package/lib/cjs/duet-alert.cjs.entry.js +4 -4
  7. package/lib/cjs/duet-badge.cjs.entry.js +6 -6
  8. package/lib/cjs/duet-banner.cjs.entry.js +8 -8
  9. package/lib/cjs/duet-breadcrumb.cjs.entry.js +6 -6
  10. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +5 -5
  11. package/lib/cjs/duet-button_2.cjs.entry.js +5 -5
  12. package/lib/cjs/duet-callout.cjs.entry.js +5 -5
  13. package/lib/cjs/duet-caption_4.cjs.entry.js +10 -10
  14. package/lib/cjs/duet-card.cjs.entry.js +10 -9
  15. package/lib/cjs/duet-checkbox.cjs.entry.js +3 -3
  16. package/lib/cjs/duet-checkmark.cjs.entry.js +4 -4
  17. package/lib/cjs/duet-chip.cjs.entry.js +3 -3
  18. package/lib/cjs/duet-choice_2.cjs.entry.js +16 -7
  19. package/lib/cjs/duet-collapsible.cjs.entry.js +3 -3
  20. package/lib/cjs/duet-combobox.cjs.entry.js +32 -25
  21. package/lib/cjs/duet-contact-card.cjs.entry.js +8 -7
  22. package/lib/cjs/duet-cookie-consent.cjs.entry.js +2 -2
  23. package/lib/cjs/duet-date-picker.cjs.entry.js +17 -13
  24. package/lib/cjs/duet-divider_2.cjs.entry.js +3 -3
  25. package/lib/cjs/duet-editable-table_3.cjs.entry.js +8 -8
  26. package/lib/cjs/duet-empty-state.cjs.entry.js +2 -2
  27. package/lib/cjs/duet-fieldset.cjs.entry.js +6 -6
  28. package/lib/cjs/duet-file-chooser.cjs.entry.js +2 -2
  29. package/lib/cjs/duet-footer.cjs.entry.js +4 -4
  30. package/lib/cjs/duet-grid_2.cjs.entry.js +12 -8
  31. package/lib/cjs/duet-header_2.cjs.entry.js +3 -3
  32. package/lib/cjs/duet-hero.cjs.entry.js +18 -13
  33. package/lib/cjs/duet-icon.cjs.entry.js +5 -5
  34. package/lib/cjs/duet-indicator.cjs.entry.js +3 -3
  35. package/lib/cjs/duet-input_2.cjs.entry.js +33 -19
  36. package/lib/cjs/duet-layout.cjs.entry.js +2 -2
  37. package/lib/cjs/duet-list_2.cjs.entry.js +4 -4
  38. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +4 -4
  39. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +4 -4
  40. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +6 -6
  41. package/lib/cjs/duet-menu-bar-item.cjs.entry.js +7 -7
  42. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +4 -4
  43. package/lib/cjs/duet-menu-bar.cjs.entry.js +3 -3
  44. package/lib/cjs/duet-modal.cjs.entry.js +12 -13
  45. package/lib/cjs/duet-multiselect.cjs.entry.js +10 -10
  46. package/lib/cjs/duet-nav.cjs.entry.js +3 -3
  47. package/lib/cjs/duet-notification_2.cjs.entry.js +9 -9
  48. package/lib/cjs/duet-number-input.cjs.entry.js +8 -8
  49. package/lib/cjs/duet-overlay.cjs.entry.js +3 -3
  50. package/lib/cjs/duet-page-heading.cjs.entry.js +6 -6
  51. package/lib/cjs/duet-pagination_2.cjs.entry.js +16 -16
  52. package/lib/cjs/duet-panel.cjs.entry.js +4 -4
  53. package/lib/cjs/duet-phone-input.cjs.entry.js +13 -5
  54. package/lib/cjs/duet-popup-menu_2.cjs.entry.js +22 -13
  55. package/lib/cjs/duet-progress.cjs.entry.js +3 -3
  56. package/lib/cjs/duet-promo-card.cjs.entry.js +8 -8
  57. package/lib/cjs/duet-radio_2.cjs.entry.js +7 -7
  58. package/lib/cjs/duet-range-slider.cjs.entry.js +6 -6
  59. package/lib/cjs/duet-scrollable_3.cjs.entry.js +15 -15
  60. package/lib/cjs/duet-section-layout.cjs.entry.js +4 -4
  61. package/lib/cjs/duet-select.cjs.entry.js +9 -9
  62. package/lib/cjs/duet-shaped-image.cjs.entry.js +4 -4
  63. package/lib/cjs/duet-share-chart-item.cjs.entry.js +2 -2
  64. package/lib/cjs/duet-share-chart.cjs.entry.js +6 -6
  65. package/lib/cjs/duet-show-more.cjs.entry.js +5 -5
  66. package/lib/cjs/duet-slideout-lang.cjs.entry.js +4 -4
  67. package/lib/cjs/duet-slideout-link.cjs.entry.js +7 -7
  68. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +6 -6
  69. package/lib/cjs/duet-slideout-panel.cjs.entry.js +11 -11
  70. package/lib/cjs/duet-slideout.cjs.entry.js +10 -10
  71. package/lib/cjs/duet-status-icon.cjs.entry.js +3 -3
  72. package/lib/cjs/duet-step_2.cjs.entry.js +6 -6
  73. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +4 -4
  74. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +6 -6
  75. package/lib/cjs/duet-submenu-bar-item.cjs.entry.js +6 -6
  76. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +3 -3
  77. package/lib/cjs/duet-submenu-bar.cjs.entry.js +7 -7
  78. package/lib/cjs/duet-teaser.cjs.entry.js +110 -0
  79. package/lib/cjs/duet-textarea.cjs.entry.js +20 -11
  80. package/lib/cjs/duet-toggle.cjs.entry.js +8 -8
  81. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +4 -4
  82. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +6 -6
  83. package/lib/cjs/duet-toolbar-item.cjs.entry.js +8 -8
  84. package/lib/cjs/duet-toolbar-link.cjs.entry.js +4 -4
  85. package/lib/cjs/duet-toolbar.cjs.entry.js +4 -4
  86. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +10 -10
  87. package/lib/cjs/duet-tooltip.cjs.entry.js +5 -5
  88. package/lib/cjs/duet-tray.cjs.entry.js +5 -5
  89. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +2 -2
  90. package/lib/cjs/duet-upload-item.cjs.entry.js +6 -6
  91. package/lib/cjs/duet-visually-hidden.cjs.entry.js +2 -2
  92. package/lib/cjs/duet.cjs.js +3 -3
  93. package/lib/cjs/{errorcodes.utils-C0tQ3k6Z.js → errorcodes.utils-MdC-C1Fa.js} +1 -1
  94. package/lib/cjs/{floating-ui.dom.browser.min-Cj0r5YDz.js → floating-ui.dom.browser.min-DaH62q3u.js} +83 -0
  95. package/lib/cjs/{focus-utils-tCoGOO7d.js → focus-utils-KpSp5WDp.js} +1 -1
  96. package/lib/cjs/{index-BeiMjjVl.js → index-BP4tQozH.js} +5 -1
  97. package/lib/cjs/{label-Cu4DNShe.js → label-CjvqwyJR.js} +1 -1
  98. package/lib/cjs/{language-utils-B3NubUDr.js → language-utils-BCJyRc_q.js} +1 -1
  99. package/lib/cjs/loader.cjs.js +3 -3
  100. package/lib/cjs/{picture-utils-D_HVgfq5.js → picture-utils-Dp6TiDHy.js} +7 -2
  101. package/lib/cjs/{slot-utils-Dny6EJ_G.js → slot-utils-DvtoWHAA.js} +1 -1
  102. package/lib/cjs/{themeable-component-Csdvrnsd.js → themeable-component-BXqwFhg-.js} +1 -1
  103. package/lib/collection/collection-manifest.json +1 -0
  104. package/lib/collection/components/duet-badge/duet-badge.js +2 -2
  105. package/lib/collection/components/duet-banner/duet-banner.js +23 -4
  106. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +4 -4
  107. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +2 -2
  108. package/lib/collection/components/duet-button/duet-button.css +3 -0
  109. package/lib/collection/components/duet-callout/duet-callout.js +2 -2
  110. package/lib/collection/components/duet-card/duet-card.css +13 -9
  111. package/lib/collection/components/duet-card/duet-card.js +24 -4
  112. package/lib/collection/components/duet-choice/duet-checkmark.js +2 -2
  113. package/lib/collection/components/duet-choice-group/duet-choice-group.js +12 -3
  114. package/lib/collection/components/duet-combobox/duet-combobox-select.js +1 -1
  115. package/lib/collection/components/duet-combobox/duet-combobox.js +30 -24
  116. package/lib/collection/components/duet-contact-card/duet-contact-card.js +23 -3
  117. package/lib/collection/components/duet-date-picker/date-picker-day.js +1 -1
  118. package/lib/collection/components/duet-date-picker/duet-date-picker.js +34 -7
  119. package/lib/collection/components/duet-fieldset/duet-fieldset.js +3 -3
  120. package/lib/collection/components/duet-grid/duet-grid.css +22 -0
  121. package/lib/collection/components/duet-grid/duet-grid.js +14 -5
  122. package/lib/collection/components/duet-grid-item/duet-grid-item.js +2 -2
  123. package/lib/collection/components/duet-hero/duet-hero.css +149 -136
  124. package/lib/collection/components/duet-hero/duet-hero.js +32 -7
  125. package/lib/collection/components/duet-icon/duet-icon.js +3 -3
  126. package/lib/collection/components/duet-input/duet-input.css +31 -0
  127. package/lib/collection/components/duet-input/duet-input.js +48 -14
  128. package/lib/collection/components/duet-link/duet-link.css +16 -0
  129. package/lib/collection/components/duet-link/duet-link.js +2 -2
  130. package/lib/collection/components/duet-list-item/duet-list-item.js +2 -2
  131. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +2 -2
  132. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +4 -4
  133. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +2 -2
  134. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.js +2 -2
  135. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +2 -2
  136. package/lib/collection/components/duet-modal/duet-modal.css +8 -1
  137. package/lib/collection/components/duet-modal/duet-modal.js +6 -7
  138. package/lib/collection/components/duet-multiselect/duet-multiselect.js +5 -5
  139. package/lib/collection/components/duet-nav/duet-nav.js +1 -1
  140. package/lib/collection/components/duet-notification/duet-notification.js +2 -2
  141. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +3 -3
  142. package/lib/collection/components/duet-number-input/duet-number-input.js +23 -4
  143. package/lib/collection/components/duet-overlay/duet-overlay.js +1 -1
  144. package/lib/collection/components/duet-page-heading/duet-page-heading.js +3 -3
  145. package/lib/collection/components/duet-pagination/duet-pagination.js +11 -11
  146. package/lib/collection/components/duet-panel/duet-panel.js +2 -2
  147. package/lib/collection/components/duet-paragraph/duet-paragraph.js +2 -2
  148. package/lib/collection/components/duet-phone-input/duet-phone-input.js +9 -1
  149. package/lib/collection/components/duet-popup-menu/duet-popup-menu.js +13 -4
  150. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.css +2 -0
  151. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +2 -2
  152. package/lib/collection/components/duet-promo-card/duet-promo-card.js +23 -4
  153. package/lib/collection/components/duet-radio/duet-radio.js +3 -3
  154. package/lib/collection/components/duet-radio-group/duet-radio-group.js +1 -1
  155. package/lib/collection/components/duet-range-slider/duet-range-slider.js +2 -2
  156. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +2 -2
  157. package/lib/collection/components/duet-scrollable/duet-scrollable.js +5 -5
  158. package/lib/collection/components/duet-section-layout/duet-section-layout.js +3 -3
  159. package/lib/collection/components/duet-select/duet-select.js +5 -5
  160. package/lib/collection/components/duet-shaped-image/duet-shaped-image.js +2 -2
  161. package/lib/collection/components/duet-share-chart/duet-share-chart.js +2 -2
  162. package/lib/collection/components/duet-share-chart-item/duet-share-chart-item.js +1 -1
  163. package/lib/collection/components/duet-show-more/duet-show-more.js +2 -2
  164. package/lib/collection/components/duet-slideout/duet-slideout.js +4 -4
  165. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +1 -1
  166. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +2 -2
  167. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +6 -6
  168. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +4 -4
  169. package/lib/collection/components/duet-spacer/duet-spacer.js +1 -1
  170. package/lib/collection/components/duet-spinner/duet-spinner.js +1 -1
  171. package/lib/collection/components/duet-status-icon/duet-status-icon.js +2 -2
  172. package/lib/collection/components/duet-step/duet-step.js +2 -2
  173. package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
  174. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +5 -5
  175. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +4 -4
  176. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +2 -2
  177. package/lib/collection/components/duet-submenu-bar-item/duet-submenu-bar-item.js +1 -1
  178. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +1 -1
  179. package/lib/collection/components/duet-tab/duet-tab.js +2 -2
  180. package/lib/collection/components/duet-tab-group/duet-tab-group.js +4 -4
  181. package/lib/collection/components/duet-table/duet-table.js +2 -2
  182. package/lib/collection/components/duet-teaser/duet-teaser.css +127 -0
  183. package/lib/collection/components/duet-teaser/duet-teaser.js +462 -0
  184. package/lib/collection/components/duet-textarea/duet-textarea.css +8 -0
  185. package/lib/collection/components/duet-textarea/duet-textarea.js +35 -6
  186. package/lib/collection/components/duet-toggle/duet-toggle.js +3 -3
  187. package/lib/collection/components/duet-toolbar/duet-toolbar.js +2 -2
  188. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +4 -4
  189. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +2 -2
  190. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.js +3 -3
  191. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +2 -2
  192. package/lib/collection/components/duet-tooltip/duet-tooltip-button.css +6 -0
  193. package/lib/collection/components/duet-tooltip/duet-tooltip-button.js +3 -3
  194. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +3 -3
  195. package/lib/collection/components/duet-tray/duet-tray.js +2 -2
  196. package/lib/collection/components/duet-upload/duet-upload.js +2 -2
  197. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +1 -1
  198. package/lib/collection/components/duet-upload-item/duet-upload-item.js +2 -2
  199. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +1 -1
  200. package/lib/collection/utils/picture-utils.js +6 -1
  201. package/lib/duet/duet.esm.js +1 -1
  202. package/lib/duet/p-01a6e993.entry.js +4 -0
  203. package/lib/duet/{p-4e1c2676.entry.js → p-0476dabc.entry.js} +1 -1
  204. package/lib/duet/p-06e879d2.entry.js +4 -0
  205. package/lib/duet/p-0f433f55.entry.js +4 -0
  206. package/lib/duet/{p-1d7a9425.entry.js → p-126b3fd0.entry.js} +1 -1
  207. package/lib/duet/{p-c54ecb23.entry.js → p-1566e2ec.entry.js} +1 -1
  208. package/lib/duet/{p-4e5532c8.entry.js → p-1956dd8e.entry.js} +1 -1
  209. package/lib/duet/{p-20c8226c.entry.js → p-1db9e784.entry.js} +1 -1
  210. package/lib/duet/{p-6ce82324.entry.js → p-1deed1aa.entry.js} +1 -1
  211. package/lib/duet/{p-3b9d7f6a.entry.js → p-27894857.entry.js} +1 -1
  212. package/lib/duet/{p-4a041c60.entry.js → p-2c2e7c9b.entry.js} +1 -1
  213. package/lib/duet/{p-ee369233.entry.js → p-2c465a03.entry.js} +1 -1
  214. package/lib/duet/p-2d780739.entry.js +4 -0
  215. package/lib/duet/{p-4b07ce36.entry.js → p-2f092aed.entry.js} +1 -1
  216. package/lib/duet/p-304af2e5.entry.js +4 -0
  217. package/lib/duet/{p-6a11ba26.entry.js → p-34d16cbb.entry.js} +1 -1
  218. package/lib/duet/p-34ec25cb.entry.js +4 -0
  219. package/lib/duet/{p-f4de7ac0.entry.js → p-37d5a3c5.entry.js} +1 -1
  220. package/lib/duet/{p-2e44c6b8.entry.js → p-3932a89b.entry.js} +1 -1
  221. package/lib/duet/{p-46287d85.entry.js → p-3c8d76e2.entry.js} +1 -1
  222. package/lib/duet/{p-8fbcea55.entry.js → p-3d454072.entry.js} +1 -1
  223. package/lib/duet/{p-aa1256f9.entry.js → p-3e66035d.entry.js} +1 -1
  224. package/lib/duet/{p-83dcbb64.entry.js → p-471d4d75.entry.js} +1 -1
  225. package/lib/duet/{p-f4538e9d.entry.js → p-4ddf8009.entry.js} +1 -1
  226. package/lib/duet/{p-4acdc586.entry.js → p-5044e0ed.entry.js} +1 -1
  227. package/lib/duet/{p-304a9a55.entry.js → p-5103d5f4.entry.js} +1 -1
  228. package/lib/duet/{p-3533d6ee.entry.js → p-51693a7c.entry.js} +1 -1
  229. package/lib/duet/{p-f297f8f2.entry.js → p-54bfe081.entry.js} +1 -1
  230. package/lib/duet/p-588e75cd.entry.js +4 -0
  231. package/lib/duet/{p-174935bc.entry.js → p-5d70e259.entry.js} +1 -1
  232. package/lib/duet/p-618cfeef.entry.js +4 -0
  233. package/lib/duet/{p-12d7fdf6.entry.js → p-6449b1cc.entry.js} +1 -1
  234. package/lib/duet/{p-e442943d.entry.js → p-6502a274.entry.js} +1 -1
  235. package/lib/duet/p-69a72f22.entry.js +4 -0
  236. package/lib/duet/{p-512d18c8.entry.js → p-6e4536e3.entry.js} +1 -1
  237. package/lib/duet/{p-fdc4a97c.entry.js → p-6ed52261.entry.js} +1 -1
  238. package/lib/duet/{p-ac4fc44c.entry.js → p-712adcec.entry.js} +1 -1
  239. package/lib/duet/{p-4cee693b.entry.js → p-79afa773.entry.js} +1 -1
  240. package/lib/duet/p-7d61dc62.entry.js +4 -0
  241. package/lib/duet/p-7f9de2a6.entry.js +4 -0
  242. package/lib/duet/{p-e40d9c21.entry.js → p-870d3c78.entry.js} +1 -1
  243. package/lib/duet/{p-ae382e2e.entry.js → p-88bf42dc.entry.js} +1 -1
  244. package/lib/duet/{p-8927ccc1.entry.js → p-88e65283.entry.js} +1 -1
  245. package/lib/duet/{p-bc41d13d.entry.js → p-8aaf283d.entry.js} +1 -1
  246. package/lib/duet/p-8d939074.entry.js +4 -0
  247. package/lib/duet/{p-a01f3141.entry.js → p-908fca79.entry.js} +1 -1
  248. package/lib/duet/{p-9b2731b9.entry.js → p-93080f2d.entry.js} +1 -1
  249. package/lib/duet/{p-407d4e5a.entry.js → p-94d057ea.entry.js} +1 -1
  250. package/lib/duet/{p-84f8bee8.entry.js → p-99367980.entry.js} +1 -1
  251. package/lib/duet/{p-f30c3cfe.entry.js → p-9a248faf.entry.js} +1 -1
  252. package/lib/duet/p-9d405b35.entry.js +4 -0
  253. package/lib/duet/{p-30d8a1e4.entry.js → p-9ed154f5.entry.js} +1 -1
  254. package/lib/duet/{p-DI7IXBXp.js → p-B1GzOTNZ.js} +1 -1
  255. package/lib/duet/p-BQTM1aqo.js +4 -0
  256. package/lib/duet/{p-D3450NfA.js → p-CdcBxXLd.js} +1 -1
  257. package/lib/duet/{p-KbNgo0QF.js → p-CirNV9Vh.js} +1 -1
  258. package/lib/duet/{p-D9N9LBeD.js → p-Cj9zQLn2.js} +1 -1
  259. package/lib/duet/{p-JFwTD5kM.js → p-D3ladndz.js} +1 -1
  260. package/lib/duet/p-D4pJQwPW.js +4 -0
  261. package/lib/duet/p-Dbe-q7B5.js +4 -0
  262. package/lib/duet/{p-BDgGHTHh.js → p-DmLE9-rw.js} +1 -1
  263. package/lib/duet/{p-CcoGR9T9.js → p-DoEOuTZj.js} +1 -1
  264. package/lib/duet/{p-61abccd4.entry.js → p-a2514ad4.entry.js} +1 -1
  265. package/lib/duet/{p-0e10e36b.entry.js → p-a4a3febe.entry.js} +1 -1
  266. package/lib/duet/p-a517cdce.entry.js +4 -0
  267. package/lib/duet/{p-374b48f6.entry.js → p-a70bb08d.entry.js} +1 -1
  268. package/lib/duet/{p-d72dee5d.entry.js → p-aa2c3e0a.entry.js} +1 -1
  269. package/lib/duet/{p-95bb2a8d.entry.js → p-af7b2954.entry.js} +1 -1
  270. package/lib/duet/{p-9c41f1d5.entry.js → p-b37d4985.entry.js} +1 -1
  271. package/lib/duet/p-b4cf5f14.entry.js +4 -0
  272. package/lib/duet/{p-d7abb7fa.entry.js → p-b6233e75.entry.js} +1 -1
  273. package/lib/duet/{p-555e0c78.entry.js → p-b97098a6.entry.js} +1 -1
  274. package/lib/duet/{p-f8d640ba.entry.js → p-bd0263e4.entry.js} +1 -1
  275. package/lib/duet/{p-244bfbf9.entry.js → p-beaa4612.entry.js} +1 -1
  276. package/lib/duet/{p-264688ae.entry.js → p-c15c8dd2.entry.js} +1 -1
  277. package/lib/duet/{p-20066df8.entry.js → p-c223cd3e.entry.js} +1 -1
  278. package/lib/duet/{p-8bdcfd1f.entry.js → p-c35ae5a0.entry.js} +1 -1
  279. package/lib/duet/p-c435bb67.entry.js +4 -0
  280. package/lib/duet/{p-3def9480.entry.js → p-c6e3723f.entry.js} +1 -1
  281. package/lib/duet/{p-9b448008.entry.js → p-c7b32952.entry.js} +1 -1
  282. package/lib/duet/p-c95669be.entry.js +4 -0
  283. package/lib/duet/{p-1579bdf5.entry.js → p-c987a644.entry.js} +1 -1
  284. package/lib/duet/p-c9b8c2ba.entry.js +4 -0
  285. package/lib/duet/{p-ec1d2e0a.entry.js → p-c9bdf927.entry.js} +1 -1
  286. package/lib/duet/p-cdf0fb4c.entry.js +4 -0
  287. package/lib/duet/p-d069edf1.entry.js +4 -0
  288. package/lib/duet/p-ddafe27d.entry.js +4 -0
  289. package/lib/duet/{p-210bc161.entry.js → p-dfdec452.entry.js} +1 -1
  290. package/lib/duet/{p-829bccb7.entry.js → p-e0f729ad.entry.js} +1 -1
  291. package/lib/duet/{p-5f72134e.entry.js → p-e32af858.entry.js} +1 -1
  292. package/lib/duet/{p-5b322a86.entry.js → p-e353daaf.entry.js} +1 -1
  293. package/lib/duet/p-e5dbac7a.entry.js +4 -0
  294. package/lib/duet/p-ec2dcb1b.entry.js +4 -0
  295. package/lib/duet/{p-9889218e.entry.js → p-ed7fbc44.entry.js} +1 -1
  296. package/lib/duet/{p-914ee7ac.entry.js → p-ef6ce9dc.entry.js} +1 -1
  297. package/lib/duet/{p-fc2be136.entry.js → p-fcb9c0db.entry.js} +1 -1
  298. package/lib/duet/{p-48e77341.entry.js → p-fe821e46.entry.js} +1 -1
  299. package/lib/duet/p-qboSQpUe.js +4 -0
  300. package/lib/esm/{a11y-utils--wwGTL0T.js → a11y-utils-DbDY4hy4.js} +1 -1
  301. package/lib/esm/{app-globals-Diuuep9d.js → app-globals-COfbcvxE.js} +1 -1
  302. package/lib/esm/duet-action-button.entry.js +3 -3
  303. package/lib/esm/duet-alert.entry.js +4 -4
  304. package/lib/esm/duet-badge.entry.js +6 -6
  305. package/lib/esm/duet-banner.entry.js +8 -8
  306. package/lib/esm/duet-breadcrumb.entry.js +6 -6
  307. package/lib/esm/duet-breadcrumbs.entry.js +5 -5
  308. package/lib/esm/duet-button_2.entry.js +5 -5
  309. package/lib/esm/duet-callout.entry.js +5 -5
  310. package/lib/esm/duet-caption_4.entry.js +10 -10
  311. package/lib/esm/duet-card.entry.js +10 -9
  312. package/lib/esm/duet-checkbox.entry.js +3 -3
  313. package/lib/esm/duet-checkmark.entry.js +4 -4
  314. package/lib/esm/duet-chip.entry.js +3 -3
  315. package/lib/esm/duet-choice_2.entry.js +16 -7
  316. package/lib/esm/duet-collapsible.entry.js +3 -3
  317. package/lib/esm/duet-combobox.entry.js +32 -25
  318. package/lib/esm/duet-contact-card.entry.js +8 -7
  319. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  320. package/lib/esm/duet-date-picker.entry.js +17 -13
  321. package/lib/esm/duet-divider_2.entry.js +3 -3
  322. package/lib/esm/duet-editable-table_3.entry.js +8 -8
  323. package/lib/esm/duet-empty-state.entry.js +2 -2
  324. package/lib/esm/duet-fieldset.entry.js +6 -6
  325. package/lib/esm/duet-file-chooser.entry.js +2 -2
  326. package/lib/esm/duet-footer.entry.js +4 -4
  327. package/lib/esm/duet-grid_2.entry.js +12 -8
  328. package/lib/esm/duet-header_2.entry.js +3 -3
  329. package/lib/esm/duet-hero.entry.js +18 -13
  330. package/lib/esm/duet-icon.entry.js +5 -5
  331. package/lib/esm/duet-indicator.entry.js +3 -3
  332. package/lib/esm/duet-input_2.entry.js +33 -19
  333. package/lib/esm/duet-layout.entry.js +2 -2
  334. package/lib/esm/duet-list_2.entry.js +4 -4
  335. package/lib/esm/duet-menu-bar-button.entry.js +4 -4
  336. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +4 -4
  337. package/lib/esm/duet-menu-bar-dropdown.entry.js +6 -6
  338. package/lib/esm/duet-menu-bar-item.entry.js +7 -7
  339. package/lib/esm/duet-menu-bar-link.entry.js +4 -4
  340. package/lib/esm/duet-menu-bar.entry.js +3 -3
  341. package/lib/esm/duet-modal.entry.js +12 -13
  342. package/lib/esm/duet-multiselect.entry.js +10 -10
  343. package/lib/esm/duet-nav.entry.js +3 -3
  344. package/lib/esm/duet-notification_2.entry.js +9 -9
  345. package/lib/esm/duet-number-input.entry.js +8 -8
  346. package/lib/esm/duet-overlay.entry.js +3 -3
  347. package/lib/esm/duet-page-heading.entry.js +6 -6
  348. package/lib/esm/duet-pagination_2.entry.js +16 -16
  349. package/lib/esm/duet-panel.entry.js +4 -4
  350. package/lib/esm/duet-phone-input.entry.js +13 -5
  351. package/lib/esm/duet-popup-menu_2.entry.js +22 -13
  352. package/lib/esm/duet-progress.entry.js +3 -3
  353. package/lib/esm/duet-promo-card.entry.js +8 -8
  354. package/lib/esm/duet-radio_2.entry.js +7 -7
  355. package/lib/esm/duet-range-slider.entry.js +6 -6
  356. package/lib/esm/duet-scrollable_3.entry.js +15 -15
  357. package/lib/esm/duet-section-layout.entry.js +4 -4
  358. package/lib/esm/duet-select.entry.js +9 -9
  359. package/lib/esm/duet-shaped-image.entry.js +4 -4
  360. package/lib/esm/duet-share-chart-item.entry.js +2 -2
  361. package/lib/esm/duet-share-chart.entry.js +6 -6
  362. package/lib/esm/duet-show-more.entry.js +5 -5
  363. package/lib/esm/duet-slideout-lang.entry.js +4 -4
  364. package/lib/esm/duet-slideout-link.entry.js +7 -7
  365. package/lib/esm/duet-slideout-panel-dropdown.entry.js +6 -6
  366. package/lib/esm/duet-slideout-panel.entry.js +11 -11
  367. package/lib/esm/duet-slideout.entry.js +10 -10
  368. package/lib/esm/duet-status-icon.entry.js +3 -3
  369. package/lib/esm/duet-step_2.entry.js +6 -6
  370. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +4 -4
  371. package/lib/esm/duet-submenu-bar-dropdown.entry.js +6 -6
  372. package/lib/esm/duet-submenu-bar-item.entry.js +6 -6
  373. package/lib/esm/duet-submenu-bar-link.entry.js +3 -3
  374. package/lib/esm/duet-submenu-bar.entry.js +7 -7
  375. package/lib/esm/duet-teaser.entry.js +108 -0
  376. package/lib/esm/duet-textarea.entry.js +20 -11
  377. package/lib/esm/duet-toggle.entry.js +8 -8
  378. package/lib/esm/duet-toolbar-dropdown-link.entry.js +4 -4
  379. package/lib/esm/duet-toolbar-dropdown.entry.js +6 -6
  380. package/lib/esm/duet-toolbar-item.entry.js +8 -8
  381. package/lib/esm/duet-toolbar-link.entry.js +4 -4
  382. package/lib/esm/duet-toolbar.entry.js +4 -4
  383. package/lib/esm/duet-tooltip-button_2.entry.js +10 -10
  384. package/lib/esm/duet-tooltip.entry.js +5 -5
  385. package/lib/esm/duet-tray.entry.js +5 -5
  386. package/lib/esm/duet-upload-aria-status.entry.js +2 -2
  387. package/lib/esm/duet-upload-item.entry.js +6 -6
  388. package/lib/esm/duet-visually-hidden.entry.js +2 -2
  389. package/lib/esm/duet.js +4 -4
  390. package/lib/esm/{errorcodes.utils-S_WrUPeV.js → errorcodes.utils-0XnfYFAn.js} +1 -1
  391. package/lib/esm/{floating-ui.dom.browser.min-B_NkY9T0.js → floating-ui.dom.browser.min-BQTM1aqo.js} +83 -1
  392. package/lib/esm/{focus-utils-C4oaajGr.js → focus-utils-BwoMMpkj.js} +1 -1
  393. package/lib/esm/{index-D3450NfA.js → index-CdcBxXLd.js} +5 -1
  394. package/lib/esm/{label-C1HF2o4Y.js → label-D835wXCb.js} +1 -1
  395. package/lib/esm/{language-utils-D4WVl8Ph.js → language-utils-C-lpMyP9.js} +1 -1
  396. package/lib/esm/loader.js +4 -4
  397. package/lib/esm/{picture-utils-MSeJTkDk.js → picture-utils-Cl2qK3GJ.js} +7 -2
  398. package/lib/esm/{slot-utils-Dxcjtmp3.js → slot-utils-BSS0Em_Z.js} +1 -1
  399. package/lib/esm/{themeable-component-QHdUfcat.js → themeable-component-DQtSOD4i.js} +1 -1
  400. package/lib/types/components/duet-banner/duet-banner.d.ts +5 -0
  401. package/lib/types/components/duet-card/duet-card.d.ts +5 -0
  402. package/lib/types/components/duet-combobox/duet-combobox.d.ts +2 -1
  403. package/lib/types/components/duet-contact-card/duet-contact-card.d.ts +5 -0
  404. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +5 -1
  405. package/lib/types/components/duet-grid/duet-grid.d.ts +2 -1
  406. package/lib/types/components/duet-hero/duet-hero.d.ts +5 -0
  407. package/lib/types/components/duet-input/duet-input.d.ts +11 -1
  408. package/lib/types/components/duet-number-input/duet-number-input.d.ts +4 -0
  409. package/lib/types/components/duet-phone-input/duet-phone-input.d.ts +1 -0
  410. package/lib/types/components/duet-promo-card/duet-promo-card.d.ts +5 -0
  411. package/lib/types/components/duet-teaser/duet-teaser.d.ts +93 -0
  412. package/lib/types/components/duet-textarea/duet-textarea.d.ts +8 -1
  413. package/lib/types/components.d.ts +235 -12
  414. package/lib/types/utils/picture-utils.d.ts +4 -0
  415. package/package.json +5 -5
  416. package/lib/duet/p-054c334d.entry.js +0 -4
  417. package/lib/duet/p-2bf78fe4.entry.js +0 -4
  418. package/lib/duet/p-3445529c.entry.js +0 -4
  419. package/lib/duet/p-3fbe466a.entry.js +0 -4
  420. package/lib/duet/p-41230630.entry.js +0 -4
  421. package/lib/duet/p-44e53564.entry.js +0 -4
  422. package/lib/duet/p-4a251661.entry.js +0 -4
  423. package/lib/duet/p-4a4e5bb5.entry.js +0 -4
  424. package/lib/duet/p-6bd78205.entry.js +0 -4
  425. package/lib/duet/p-6c239923.entry.js +0 -4
  426. package/lib/duet/p-6d1d1199.entry.js +0 -4
  427. package/lib/duet/p-81c5d3e3.entry.js +0 -4
  428. package/lib/duet/p-985213bb.entry.js +0 -4
  429. package/lib/duet/p-BZev46O8.js +0 -4
  430. package/lib/duet/p-B_NkY9T0.js +0 -4
  431. package/lib/duet/p-CyfEm8iD.js +0 -4
  432. package/lib/duet/p-Dk60lC7n.js +0 -4
  433. package/lib/duet/p-a49b5d93.entry.js +0 -4
  434. package/lib/duet/p-a6dbe893.entry.js +0 -4
  435. package/lib/duet/p-aa7e4c81.entry.js +0 -4
  436. package/lib/duet/p-dbb9e1d4.entry.js +0 -4
  437. package/lib/duet/p-e43df9c2.entry.js +0 -4
  438. package/lib/duet/p-eb7bc989.entry.js +0 -4
  439. package/lib/duet/p-edcdf0b7.entry.js +0 -4
  440. package/lib/duet/p-f9db8670.entry.js +0 -4
  441. package/lib/duet/p-fc1a18f8.entry.js +0 -4
@@ -134,20 +134,20 @@ export class DuetBanner {
134
134
  img: {
135
135
  src: this.image,
136
136
  alt: this.imageAlt || "",
137
- loading: "lazy",
137
+ loading: this.imagePriority === "high" ? "eager" : "lazy",
138
+ fetchpriority: this.imagePriority,
138
139
  class: `image ${this.imageFit}`,
139
- role: this.imageAlt ? undefined : "presentation",
140
140
  },
141
141
  sources: parsePossibleJSON(this.sources),
142
142
  };
143
- return (h(Host, { key: '7bb7e73a6f4d35a44a152b488d46ad622f2cb50b', class: { "duet-m-0": this.margin === "none" } }, h("aside", { key: '739f618adf7c4723262b4ec6295cf4864c361526', class: {
143
+ return (h(Host, { key: '021aafd46f614c2d52ccd2d014574a7a095e2883', class: { "duet-m-0": this.margin === "none" } }, h("aside", { key: 'ea207c896e6b1624a27d4b6ceb79836ab152f207', class: {
144
144
  "duet-banner": true,
145
145
  "duet-theme-turva": this.theme === "turva",
146
146
  [this.currentSize]: true,
147
147
  "size-medium": this.size === "medium" || this.size === "large",
148
148
  "size-large": this.size === "large",
149
149
  "no-image": !this.image,
150
- }, style: bannerStyles }, h("div", { key: 'd78595a1aabf12715243be11008f484d23596a1b', class: "visual" }, h("div", { key: 'ef55a2809492d94f8c249f1cad969f52c7c7b82d', class: "image-container" }, this.image && h(DuetPicture, Object.assign({ key: '80aa252e2ae80b3deeea7949866fe797dfff3500' }, pictureSource))), 1 > 2 && this.icon && (h("duet-icon", { key: 'e7052f4bbe89af540520f5e54f852263623b7bff', theme: this.theme, class: "icon", name: this.icon, shape: "brand", size: this.currentSize === "large" ? "xx-large" : "x-large", color: this.iconColor, background: this.iconBackgroundColor, "background-rotation": "7", "background-opacity": "0.85", margin: "none" })), this.imageFit !== "contain" && h("div", { key: '99d09920043743c985e0d3dba395a3985fb498a9', style: bannerStyles, class: "brand-shape" })), h("div", { key: 'b71115c0291aa50a6fb14fd9da4f5ca3e17966b8', class: "content" }, this.hasHeadingSlot && (h("div", { key: 'ab430cc7698686f5e352cd8b1a832a75fba1016e', class: "heading" }, h("duet-heading", { key: 'd524b78d7d934270dece2274467f32450d67d5c3', theme: this.theme, level: this.hasHeadingSlotNative ? "div" : this.headingLevel, "visual-level": this.currentSize === "large" ? "h2" : "h3", "fixed-size": true, margin: "none", color: postfixTheme(this.textColor, this.theme) }, h("span", { key: 'c9f8c556560a5cf18924a0f3b4c71bc5b4a66e34' }, h("slot", { key: '4e1425677afc11f145db287ebf17df9917f40529', name: "heading" }))))), this.hasDescriptionSlot && (h("div", { key: 'b0ec390d54156a3df44821ab41b5bee3245a880b', class: "description", style: { color } }, h("slot", { key: 'd284da9e4b546bbc02c8741aa7aa368de497ea52', name: "description" }))), this.hasActionSlot && (h("div", { key: '3ff5952fc3f6ab7a7948317ef7907f297df37a30', class: "action" }, h("slot", { key: 'e912017d264737322c63eec6e3d3a13a225db01a', name: "action" })))))));
150
+ }, style: bannerStyles }, h("div", { key: '525c58ab8a5aaa6cf08bab777f9ea3dd071f75ec', class: "visual" }, h("div", { key: '89b977717483d9ffcedeae98f7d2a36263b0f3d3', class: "image-container" }, this.image && h(DuetPicture, Object.assign({ key: '7f1d73ce70cf6687500eef1d0fc546e4bdbb6ea5' }, pictureSource))), 1 > 2 && this.icon && (h("duet-icon", { key: 'd6bff8e9ef67f0588437090ebb24577930cd949d', theme: this.theme, class: "icon", name: this.icon, shape: "brand", size: this.currentSize === "large" ? "xx-large" : "x-large", color: this.iconColor, background: this.iconBackgroundColor, "background-rotation": "7", "background-opacity": "0.85", margin: "none" })), this.imageFit !== "contain" && h("div", { key: '9cb97c2fefe6058b2d1c9b0e1a0c517d732c8b3f', style: bannerStyles, class: "brand-shape" })), h("div", { key: '2674a03efa17932dd1654e18a72115646a806fd3', class: "content" }, this.hasHeadingSlot && (h("div", { key: '9de6d6fe0940b868b74205ff45c48986776c67a7', class: "heading" }, h("duet-heading", { key: 'dca384f371f65d7f40e59c97603ffde9536c10ae', theme: this.theme, level: this.hasHeadingSlotNative ? "div" : this.headingLevel, "visual-level": this.currentSize === "large" ? "h2" : "h3", "fixed-size": true, margin: "none", color: postfixTheme(this.textColor, this.theme) }, h("span", { key: 'e5f9d70b35eb5e3507cc9c4ae78554debd08f7c7' }, h("slot", { key: '26d9d93896e0f095112db72501c8c9de765eba16', name: "heading" }))))), this.hasDescriptionSlot && (h("div", { key: '1a82c4532fa9862d0207675f89308ee8cd071302', class: "description", style: { color } }, h("slot", { key: '78febb3eca846bffd9555b8114c9ecaf33e55433', name: "description" }))), this.hasActionSlot && (h("div", { key: '2f25d1c449e2ff59bbd41d39da665e1a8822a7a2', class: "action" }, h("slot", { key: '2951e812095eaf2e55a40575e6948e83bfd27b2a', name: "action" })))))));
151
151
  }
152
152
  static get is() { return "duet-banner"; }
153
153
  static get encapsulation() { return "shadow"; }
@@ -404,6 +404,25 @@ export class DuetBanner {
404
404
  "reflect": false,
405
405
  "defaultValue": "\"cover\""
406
406
  },
407
+ "imagePriority": {
408
+ "type": "string",
409
+ "attribute": "image-priority",
410
+ "mutable": false,
411
+ "complexType": {
412
+ "original": "\"high\" | \"low\"",
413
+ "resolved": "\"high\" | \"low\"",
414
+ "references": {}
415
+ },
416
+ "required": false,
417
+ "optional": false,
418
+ "docs": {
419
+ "tags": [],
420
+ "text": "Make the image load with higher or lower priority. Value \"high\" sets the img's attributes fetchpriority and loading to\n\"high\" and \"eager\", while value \"low\" sets those attributes to \"low\" and \"lazy\""
421
+ },
422
+ "getter": false,
423
+ "setter": false,
424
+ "reflect": false
425
+ },
407
426
  "sources": {
408
427
  "type": "string",
409
428
  "attribute": "sources",
@@ -44,15 +44,15 @@ export class DuetBreadcrumb {
44
44
  */
45
45
  render() {
46
46
  const Tag = this.href ? "a" : "span";
47
- return (h(Host, { key: '9d25b651fd5b242297c25eb3ea99ffc6f1ca48af', role: "listitem" }, h("div", { key: '84a91d5dd5578cb8294cea0e48d0ee4d5bb2fd23', class: "container" }, this.icon === "arrow-right-small-icon" && (h("duet-icon", { key: 'c443a924a8354ec1218f8ff092ba4f8c8c6ee848', class: "duet-breadrumbs-arrow", size: "auto", icon: arrowRightSmallIcon.svg, margin: "none", color: "currentColor" })), h(Tag, { key: '266f23bcf053b651c24cdf70aaf540a618ed0334', class: {
47
+ return (h(Host, { key: '458e4f048570629b3f8002588b750757021e0bbd', role: "listitem" }, h("div", { key: '4fade87714b80818fda47fbfb3789b0f8b27f489', class: "container" }, this.icon === "arrow-right-small-icon" && (h("duet-icon", { key: '9269d8c80d836f44019a394e8a26e878fced07f2', class: "duet-breadrumbs-arrow", size: "auto", icon: arrowRightSmallIcon.svg, margin: "none", color: "currentColor" })), h(Tag, { key: '23772d6dae87c75499adb847dd4a49acb4ffabff', class: {
48
48
  "duet-breadcrumb": true,
49
49
  "duet-theme-turva": this.theme === "turva",
50
50
  "icon-only": this.icon && !this.hasSlottedContent,
51
51
  }, href: this.href || undefined, "aria-label": this.accessibleLabel || this.element.textContent, "aria-current": this.href ? undefined : "page" }, this.icon !== "arrow-right-small-icon" &&
52
52
  this.icon && [
53
- h("duet-icon", { key: '4db885eb507c009ff6f8441052b4c402bf6fd677', size: this.iconSize, name: this.icon, margin: "none", color: "currentColor" }),
54
- this.hasSlottedContent && h("duet-spacer", { key: '1dd57ad658f67683907cf1d7b9db5726d5d4d309', size: "x-small", direction: "horizontal" }),
55
- ], h("slot", { key: '71d21629fc5c66ebe08d0c7eb04a9293e0246cf5' })))));
53
+ h("duet-icon", { key: '5d413bae291a7d10dc2a54b9b0389128defc9e82', size: this.iconSize, name: this.icon, margin: "none", color: "currentColor" }),
54
+ this.hasSlottedContent && h("duet-spacer", { key: '9fef8271d98fa98c6a31623a937156413718f37c', size: "x-small", direction: "horizontal" }),
55
+ ], h("slot", { key: '47df258e2b4f9bb7d75f4869abd16c8ed84e8550' })))));
56
56
  }
57
57
  static get is() { return "duet-breadcrumb"; }
58
58
  static get encapsulation() { return "shadow"; }
@@ -62,11 +62,11 @@ export class DuetBreadcrumbs {
62
62
  */
63
63
  render() {
64
64
  const color = getColorByName(this.color);
65
- return (h(Host, { key: 'e7ae98090732542452a2a94210f21bc4d877987e' }, h("nav", { key: '20edb0b05a6c3e6589e7d6be4e875bbfe89e263c', "aria-label": this.breadcrumbsAriaLabel, class: {
65
+ return (h(Host, { key: '4858d49a29bb34e845436ec070f27e75a6fbe504' }, h("nav", { key: 'fdf5c15b2ee7adcbf8e4b0c230735f8d26ccd83f', "aria-label": this.breadcrumbsAriaLabel, class: {
66
66
  "duet-breadcrumbs": true,
67
67
  "duet-theme-turva": this.theme === "turva",
68
68
  [this.variation]: true,
69
- } }, h("div", { key: '9af54a322da0c7be2e37687a9d67e16214de644c', class: "container" }, h("div", { key: '0e7243aa0cb721abb7b413e4bd109f4594f6c2ac', role: "list", class: "list", style: { color } }, h("slot", { key: '8ed1299ec1deda2d43ecabdcc1d49c15a4467b23' })), h("div", { key: '24b4efdf7a6f85c6ea8badf769d0dd8b098252ee', class: "bottom-border bottom-border--container" })), h("div", { key: '510ebbb8148a84730d5bc1f53c3fb01a76c7bcdb', class: "bottom-border bottom-border--nav" }))));
69
+ } }, h("div", { key: '3235e10bb08008d3b3854f888bf3e4b934aed9e6', class: "container" }, h("div", { key: '60d548db832a4eca47caf48789d5082a7100b5ba', role: "list", class: "list", style: { color } }, h("slot", { key: 'd8170a022b3c9f2e737a29c353a0d2070f752a9c' })), h("div", { key: 'c76631c4b488b8f3ba0007de6c4a62aaf7abc4c7', class: "bottom-border bottom-border--container" })), h("div", { key: '1ca349ec39f209d18d6713f1a127932d4c6d08c8', class: "bottom-border bottom-border--nav" }))));
70
70
  }
71
71
  static get is() { return "duet-breadcrumbs"; }
72
72
  static get encapsulation() { return "shadow"; }
@@ -627,6 +627,9 @@
627
627
  .duet-theme-turva .duet-button.plain.duet-button-negative {
628
628
  color: rgb(255, 255, 255) !important;
629
629
  }
630
+ .duet-theme-turva .duet-button.plain.duet-button-negative:hover {
631
+ color: rgba(255, 255, 255, 0.8) !important;
632
+ }
630
633
  .duet-theme-turva .duet-button.plain:hover {
631
634
  color: rgb(140, 0, 30) !important;
632
635
  }
@@ -37,11 +37,11 @@ export class DuetCallout {
37
37
  <path d="M6.6591 0.557547L9.2031 2.33355C7.0911 5.21355 6.1311 7.18155 5.8431 8.90955C7.4751 9.34155 8.7231 10.5415 8.7231 12.6535C8.7231 15.2935 6.9471 16.9255 4.6431 16.9255C2.0511 16.9255 0.227096 15.1975 0.227096 12.2695C0.227096 8.28555 2.3871 4.34955 6.6591 0.557547ZM17.9871 8.95755C19.6191 9.34155 20.8671 10.5415 20.8671 12.6535C20.8671 15.2935 19.1391 16.9255 16.8351 16.9255C14.2431 16.9255 12.4191 15.1975 12.4191 12.2695C12.4191 8.28555 14.5791 4.34955 18.8511 0.557547L21.3951 2.33355C19.2351 5.21355 18.3231 7.18155 17.9871 8.95755Z"/>
38
38
  </svg>
39
39
  `;
40
- return (h(Host, { key: '70c2370b0a61707b44ed89544cf0ae0d3eb5b739' }, h("div", { key: '440dfe7d27ede12ff24de94bd9b598b9a630fdf4', class: {
40
+ return (h(Host, { key: '7c2142db52608760dec767f79a7bca3447a7cd5f' }, h("div", { key: 'f8198db62bb29ce33d65fc3c3cc3e32f87de2c5c', class: {
41
41
  "duet-callout": true,
42
42
  "duet-theme-turva": this.theme === "turva",
43
43
  "duet-m-0": this.margin === "none",
44
- } }, h("figure", { key: 'b3aa896544cb2cc6021eb50ea96e317fd256d266', class: "container" }, h("duet-icon", { key: 'cdffa280e6126af9e8e77bc6a96821cf7b229796', class: "callout-icon", shape: "brand-rotated", background: "primary-lighter", "background-opacity": "0.75", "background-rotation": this.theme === "turva" ? "0" : "7", color: "secondary", icon: icon, size: "auto", margin: "none", theme: this.theme }), h("blockquote", { key: '8b3d9b55675179e4ed743459009d4f278bf2b30a' }, h("slot", { key: '41a60c64671630e6199cb5bcc94a9d19f530b8f3' })), this.hasAuthorSlot && (h("figcaption", { key: '80d6481648829aead64c88db38312ee34253424e', class: "author" }, h("span", { key: '2bf9d1de8bfa5456ea8c69c9b2731e2b1a4bbef3' }, "\u2014 "), h("slot", { key: '091fcf50b602dccfb2d8ae005999539a0dde8efb', name: "author" })))))));
44
+ } }, h("figure", { key: 'e994ff471b5559524635c85974669c8057658363', class: "container" }, h("duet-icon", { key: '88762cb245c8695ac5a4e6e964429055b7256fa5', class: "callout-icon", shape: "brand-rotated", background: "primary-lighter", "background-opacity": "0.75", "background-rotation": this.theme === "turva" ? "0" : "7", color: "secondary", icon: icon, size: "auto", margin: "none", theme: this.theme }), h("blockquote", { key: '4b39bc138213d594a5eb81c9f0fe50e49342c626' }, h("slot", { key: 'fc14d22469315c162b71aa1b3bf09c8bcd0e1901' })), this.hasAuthorSlot && (h("figcaption", { key: 'b8fc8be9af52e97966a8ae61ad5ab3f88e7e8aa0', class: "author" }, h("span", { key: 'e0ca2034da2119ef9b5c6b9ddf004f46706a59fe' }, "\u2014 "), h("slot", { key: '6224eae7686973960ea35086635e3dbeeaa8e944', name: "author" })))))));
45
45
  }
46
46
  static get is() { return "duet-callout"; }
47
47
  static get encapsulation() { return "shadow"; }
@@ -76,47 +76,47 @@
76
76
  outline-color: rgba(53, 79, 101, 0.8);
77
77
  }
78
78
  @media (max-width: 20.5em) {
79
- .duet-card.shadow-xxx-small {
79
+ .duet-card.shadow-xxx-small, .duet-card.duet-theme-turva.shadow-xxx-small {
80
80
  box-shadow: none;
81
81
  }
82
82
  }
83
83
  @media (max-width: 22.5em) {
84
- .duet-card.shadow-xx-small {
84
+ .duet-card.shadow-xx-small, .duet-card.duet-theme-turva.shadow-xx-small {
85
85
  box-shadow: none;
86
86
  }
87
87
  }
88
88
  @media (max-width: 35.9375em) {
89
- .duet-card.shadow-x-small {
89
+ .duet-card.shadow-x-small, .duet-card.duet-theme-turva.shadow-x-small {
90
90
  box-shadow: none;
91
91
  }
92
92
  }
93
93
  @media (min-width: 36em) {
94
- .duet-card.shadow-small {
94
+ .duet-card.shadow-small, .duet-card.duet-theme-turva.shadow-small {
95
95
  box-shadow: none;
96
96
  }
97
97
  }
98
98
  @media (min-width: 48em) {
99
- .duet-card.shadow-medium {
99
+ .duet-card.shadow-medium, .duet-card.duet-theme-turva.shadow-medium {
100
100
  box-shadow: none;
101
101
  }
102
102
  }
103
103
  @media (min-width: 62em) {
104
- .duet-card.shadow-large {
104
+ .duet-card.shadow-large, .duet-card.duet-theme-turva.shadow-large {
105
105
  box-shadow: none;
106
106
  }
107
107
  }
108
108
  @media (min-width: 64.0625em) {
109
- .duet-card.shadow-x-large {
109
+ .duet-card.shadow-x-large, .duet-card.duet-theme-turva.shadow-x-large {
110
110
  box-shadow: none;
111
111
  }
112
112
  }
113
113
  @media (min-width: 76.25em) {
114
- .duet-card.shadow-xx-large {
114
+ .duet-card.shadow-xx-large, .duet-card.duet-theme-turva.shadow-xx-large {
115
115
  box-shadow: none;
116
116
  }
117
117
  }
118
118
  @media (min-width: 106.25em) {
119
- .duet-card.shadow-xxx-large {
119
+ .duet-card.shadow-xxx-large, .duet-card.duet-theme-turva.shadow-xxx-large {
120
120
  box-shadow: none;
121
121
  }
122
122
  }
@@ -549,6 +549,10 @@ a.duet-card:active {
549
549
  }
550
550
  .duet-card.duet-theme-turva.info {
551
551
  background: rgb(253, 247, 242) !important;
552
+ box-shadow: none;
553
+ }
554
+ .duet-card.duet-theme-turva.plain {
555
+ box-shadow: none;
552
556
  }
553
557
  .duet-card.duet-theme-turva .duet-card-heading {
554
558
  font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
@@ -156,16 +156,17 @@ export class DuetCard {
156
156
  img: {
157
157
  src: this.image,
158
158
  alt: this.imageAlt || "",
159
- loading: "lazy",
159
+ loading: this.imagePriority === "high" ? "eager" : "lazy",
160
+ fetchpriority: this.imagePriority,
160
161
  class: "duet-card-image",
161
162
  role: this.imageAlt ? undefined : "presentation",
162
163
  },
163
164
  sources: parsePossibleJSON(this.sources),
164
165
  };
165
- return (h(Host, { key: 'd61c941d4cbcd29c34375c93cf2c414b553e6825', class: {
166
+ return (h(Host, { key: 'e665c5842a71a942c9098bb06045587327958776', class: {
166
167
  "duet-m-0": this.margin === "none",
167
168
  "duet-card-info": this.variation === "info",
168
- } }, h(TagName, { key: '3e8e63bc3077e7ee7008816f3f1c0928a9ac6cad', href: this.url, style: styles, ref: card => (this.nativeCard = card), "aria-label": this.accessibleLabel, class: {
169
+ } }, h(TagName, { key: '10722ae1c42744e1924df0a38313eb68acb8a4b1', href: this.url, style: styles, ref: card => (this.nativeCard = card), "aria-label": this.accessibleLabel, class: {
169
170
  "duet-card": true,
170
171
  [this.padding]: true,
171
172
  [this.variation]: true,
@@ -175,7 +176,7 @@ export class DuetCard {
175
176
  "duet-card-has-bg": this.background !== "gray-lightest",
176
177
  "duet-card-has-icon": !!this.icon,
177
178
  "duet-card-collapsed": this.collapsible && !this.open,
178
- } }, this.image && (h("div", { key: '430d6550590b6ba8ff0582c6bfe1de5556149597', class: "duet-card-image-mask" }, h(DuetPicture, Object.assign({ key: 'b2c6457f6fad9275a9fdaff2b1a3a492dc08a1e1' }, pictureSource)))), (this.heading || this.hasHeadingSlot) && this.renderHeading(), h("div", { key: '705605a43265107ea95fa7d9147cb7cbe82ad586', class: "duet-card-content", id: this.cardId }, h("slot", { key: '2eeb551820975ccbcb3c72f4c2ae4f315848d024' }), this.hasFooter && (h("div", { key: '4ef3a54510d5747516a767282d7392e81eb7ced2', class: "duet-card-footer" }, h("slot", { key: 'f0f8e31a0beba199f3826ec58d277e848134ce38', name: "footer" })))))));
179
+ } }, this.image && (h("div", { key: 'a9a0b21ac68624cba6b3bfb9c0e8d3d87597cfe0', class: "duet-card-image-mask" }, h(DuetPicture, Object.assign({ key: 'efa16a802e16d5be73243c2c1e2c2bd7fe49839b' }, pictureSource)))), (this.heading || this.hasHeadingSlot) && this.renderHeading(), h("div", { key: 'a6ea5db0ad9150e7e5a4dd59ae42bb1c6603aac3', class: "duet-card-content", id: this.cardId }, h("slot", { key: '33a498070a2b68d6361247afe7bd12c440abad6b' }), this.hasFooter && (h("div", { key: 'f2ddb3f3e200fcab419911d5023831019cc4e9e3', class: "duet-card-footer" }, h("slot", { key: 'ac749be2398980321f3cfe4f6b3b679cd2803be0', name: "footer" })))))));
179
180
  }
180
181
  static get is() { return "duet-card"; }
181
182
  static get encapsulation() { return "shadow"; }
@@ -456,6 +457,25 @@ export class DuetCard {
456
457
  "setter": false,
457
458
  "reflect": false
458
459
  },
460
+ "imagePriority": {
461
+ "type": "string",
462
+ "attribute": "image-priority",
463
+ "mutable": false,
464
+ "complexType": {
465
+ "original": "\"high\" | \"low\"",
466
+ "resolved": "\"high\" | \"low\"",
467
+ "references": {}
468
+ },
469
+ "required": false,
470
+ "optional": false,
471
+ "docs": {
472
+ "tags": [],
473
+ "text": "Make the image load with higher or lower priority. Value \"high\" sets the img's attributes fetchpriority and loading to\n\"high\" and \"eager\", while value \"low\" sets those attributes to \"low\" and \"lazy\""
474
+ },
475
+ "getter": false,
476
+ "setter": false,
477
+ "reflect": false
478
+ },
459
479
  "sources": {
460
480
  "type": "string",
461
481
  "attribute": "sources",
@@ -33,11 +33,11 @@ export class DuetCheckmark {
33
33
  inheritGlobalTheme(this);
34
34
  }
35
35
  render() {
36
- return (h(Host, { key: '588662850d35631ef6cb3c242d050f4049af0f59', class: { "duet-theme-turva": this.theme === "turva" } }, h("div", { key: '301f41ca7f4d90729bffe6940380d56b4d226407', role: this.presentationOnly ? "presentation" : null, class: { checked: this.checked } }, h("div", { key: 'b0c88fd8e22781c438ec744fc2b24b6263ecf272', class: {
36
+ return (h(Host, { key: '2142269327442a806b3ea159abe1c55920cd4ec7', class: { "duet-theme-turva": this.theme === "turva" } }, h("div", { key: '5e80d429c85b08fdc7252dc4b63bae771186b611', role: this.presentationOnly ? "presentation" : null, class: { checked: this.checked } }, h("div", { key: '059edd1d87fa195725d63016b61692f62d1a5728', class: {
37
37
  "duet-checkmark-container": true,
38
38
  center: this.center,
39
39
  "duet-checkmark-radio": this.type === "radio",
40
- } }, this.checked && h("div", { key: '389644f6a51bf281434c674aefc560e35dec4a6e', class: "duet-checkmark" })))));
40
+ } }, this.checked && h("div", { key: '3a81e706e386b1e81377521a89875eb790f5e68e', class: "duet-checkmark" })))));
41
41
  }
42
42
  static get is() { return "duet-checkmark"; }
43
43
  static get originalStyleUrls() {
@@ -146,7 +146,16 @@ export class DuetChoiceGroup {
146
146
  var _a;
147
147
  const value = (_a = this.value) !== null && _a !== void 0 ? _a : this.initialValue;
148
148
  const allChoices = Array.from(this.element.querySelectorAll("duet-choice"));
149
- const ownChoices = allChoices.filter(choice => !allChoices.includes(choice.parentElement.closest("duet-choice")));
149
+ const ownChoices = allChoices
150
+ .filter(choice => !allChoices.includes(choice.parentElement.closest("duet-choice")))
151
+ .filter(ownChoice => {
152
+ if (ownChoice.type === "checkbox") {
153
+ console.error("Choice Group must consist of type=radio Choices. Choise type=checkbox is not allowed. They will be removed in a future Duet version", ownChoice);
154
+ // ownChoice.remove()
155
+ return false;
156
+ }
157
+ return true;
158
+ });
150
159
  let hasChecked = false;
151
160
  this.choices.clear();
152
161
  ownChoices.forEach(choice => this.choices.add(choice));
@@ -181,14 +190,14 @@ export class DuetChoiceGroup {
181
190
  * Always the last one in the class.
182
191
  */
183
192
  render() {
184
- return (h(Host, { key: '0d7434c28155b9472c8819d53c34843052a58d0d', onDuetChange: this.onSelect, onDuetChoiceReady: this.onChoiceReady, class: {
193
+ return (h(Host, { key: 'bef9e6aed77ae942a881822af3fd9b2fd340088b', onDuetChange: this.onSelect, onDuetChoiceReady: this.onChoiceReady, class: {
185
194
  horizontal: this.direction === "horizontal",
186
195
  "duet-choice-group-breakpoint-x-small": this.responsive && this.breakpoint === "x-small",
187
196
  "duet-choice-group-breakpoint-small": this.responsive && this.breakpoint === "small",
188
197
  "duet-choice-group-breakpoint-medium": this.responsive && this.breakpoint === "medium",
189
198
  "duet-choice-group-breakpoint-large": this.responsive && this.breakpoint === "large",
190
199
  "duet-choice-group-breakpoint-x-large": this.responsive && this.breakpoint === "x-large",
191
- } }, h("duet-fieldset", { key: 'd0abc308f9f4e0b001efb4923b0e5203ae1d00a6', label: this.label, labelHidden: this.labelHidden, compactLabel: true, caption: this.caption, error: this.error, margin: this.margin, theme: this.theme, "accessible-live-error": this.accessibleLiveError }, this.tooltip && (h("duet-tooltip", { key: 'f8e3bbac49fdb91180c3caa1b32e7d6eb1305086', slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("slot", { key: '9ebac012a0024a84eaa3b320a9d1aca91bb48480', name: "tooltip", slot: "tooltip" }), h("div", { key: '9b811428dda8073221eedb0b5a64ddff1662828d', class: { [this.choiceGroupName]: true, "duet-no-stacking": !this.responsive } }, h("slot", { key: '22ab1bec355e45e4bd35c68e2d9c86815b99852f' })))));
200
+ } }, h("duet-fieldset", { key: '18197d3bbcf9772c85e002a0df25e9df79dcb3a7', label: this.label, labelHidden: this.labelHidden, compactLabel: true, caption: this.caption, error: this.error, margin: this.margin, theme: this.theme, "accessible-live-error": this.accessibleLiveError }, this.tooltip && (h("duet-tooltip", { key: 'f9a555c68c6f7312e0941a16752f5c2b3e488e93', slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("slot", { key: '041c890f290b5ecd750edd189288cfb2769aa60b', name: "tooltip", slot: "tooltip" }), h("div", { key: '01d3e4cad179c9aa864c80557831cbf10bf2b0f2', class: { [this.choiceGroupName]: true, "duet-no-stacking": !this.responsive } }, h("slot", { key: '87f9ea13d22d029ba9025572432ebdde96456838' })))));
192
201
  }
193
202
  static get is() { return "duet-choice-group"; }
194
203
  static get encapsulation() { return "shadow"; }
@@ -14,5 +14,5 @@ export const DuetComboBoxSelect = ({ item, activeDescendant, selected, label = u
14
14
  .map(term => regexEscape(term));
15
15
  const regEx = search !== "" ? new RegExp(`(${searchTerms.join("|")})`, "i") : undefined;
16
16
  const highlightStyle = "text-decoration: underline";
17
- return (h("duet-popup-menu-item", { id: activeDescendant ? id : "", active: selected, "data-index": item.id, "aria-selected": activeDescendant ? "true" : undefined, "aria-current": selected ? "true" : undefined, role: "option", "aria-label": label, tabindex: isAndroidDevice ? "-1" : null, onClick: e => clickHandler(e), onKeyUp: e => keyHandler(e), accessibleRole: "option", activeDescendant: activeDescendant }, regEx ? (h("span", { class: "option-container", "aria-hidden": "true" }, h("span", { innerHTML: item.name.replace(regEx, `<span style="${highlightStyle}">$&</span>`) }))) : (item.name), item.tags && h("span", { class: "option-tags" }, item.tags.join(", "))));
17
+ return (h("duet-popup-menu-item", { id: activeDescendant ? id : "", active: selected, "data-index": item.id, "aria-selected": selected ? "true" : undefined, "aria-current": activeDescendant ? "true" : undefined, role: "option", "aria-label": label, tabindex: isAndroidDevice ? "-1" : null, onClick: e => clickHandler(e), onKeyUp: e => keyHandler(e), accessibleRole: "option", activeDescendant: activeDescendant }, regEx ? (h("span", { class: "option-container", "aria-hidden": "true" }, h("span", { innerHTML: item.name.replace(regEx, `<span style="${highlightStyle}">$&</span>`) }))) : (item.name), item.tags && h("span", { class: "option-tags" }, item.tags.join(", "))));
18
18
  };
@@ -38,6 +38,7 @@ export class DuetCombobox {
38
38
  // the activeItem number is based upon the array.index of the array stored in processedItems
39
39
  this.activeItem = undefined;
40
40
  this.activeItemAnnouncement = "";
41
+ this.optionsFoundAnnouncement = "";
41
42
  /**
42
43
  * Defaults for the accessible labels for the select items
43
44
  */
@@ -45,17 +46,23 @@ export class DuetCombobox {
45
46
  en: {
46
47
  heading: "Select:",
47
48
  item: "{name}",
48
- itemFiltered: "{name}, {hiddenItems} filtered",
49
+ activeItemLabel: "{name}, {current} / {total}",
50
+ optionsFound: "{optionCount} options found",
51
+ noOptionsFound: "No options found",
49
52
  },
50
53
  fi: {
51
54
  heading: "Valitse:",
52
55
  item: "{name}",
53
- itemFiltered: "{name}, {hiddenItems} suodatettu",
56
+ activeItemLabel: "{name}, {current} / {total}",
57
+ optionsFound: "{optionCount}, valintaa löydetty", // extra comma to prevent unwanted conjugation
58
+ noOptionsFound: "Yhtään valintaa ei löydy",
54
59
  },
55
60
  sv: {
56
61
  heading: "Välj:",
57
62
  item: "{name}",
58
- itemFiltered: "{name}, {hiddenItems} filtrerade",
63
+ activeItemLabel: "{name}, {current} / {total}",
64
+ optionsFound: "{optionCount} val hittades",
65
+ noOptionsFound: "Inget val hittades",
59
66
  },
60
67
  };
61
68
  /**
@@ -131,16 +138,24 @@ export class DuetCombobox {
131
138
  }
132
139
  });
133
140
  };
141
+ this.optionsFoundTimeoutId = 0;
134
142
  this.onInputTyping = async (e) => {
135
143
  var _a;
136
144
  const newValue = e.detail.value;
137
145
  if (!this.force && !this.multiple && this.selectedItems.size > 0 && newValue !== this.getSelectedItemLabel()) {
138
146
  this.selectedItems.clear();
139
147
  }
140
- if (!this.force && !this.multiple && newValue === "") {
148
+ if (!this.multiple && newValue === "") {
141
149
  this.value = undefined;
142
150
  }
143
- this.listOpen = String(newValue).length >= this.minCharacters && ((_a = this.getFilteredItems()) === null || _a === void 0 ? void 0 : _a.length) > 0;
151
+ const filteredItemsCount = ((_a = this.getFilteredItems()) === null || _a === void 0 ? void 0 : _a.length) || 0;
152
+ this.listOpen = String(newValue).length >= this.minCharacters && filteredItemsCount > 0;
153
+ clearTimeout(this.optionsFoundTimeoutId);
154
+ this.optionsFoundTimeoutId = setTimeout(() => {
155
+ this.optionsFoundAnnouncement = filteredItemsCount
156
+ ? this.accessibleLabels.optionsFound.replace("{optionCount}", `${filteredItemsCount}`)
157
+ : this.accessibleLabels.noOptionsFound;
158
+ }, 1000);
144
159
  };
145
160
  this.onKeyDown = (e) => {
146
161
  var _a, _b, _c;
@@ -245,15 +260,6 @@ export class DuetCombobox {
245
260
  }
246
261
  this.activeItemAnnouncement = "";
247
262
  }
248
- inputValueHandler() {
249
- setTimeout(async () => {
250
- const label = await this.getSelectedItemLabel();
251
- if (this.input.value == "" && label) {
252
- this.input.value = "";
253
- this.value = undefined;
254
- }
255
- }, 200);
256
- }
257
263
  handleDocumentClick(e) {
258
264
  //we want to remove all user text if they have NOT selected from the dropdown
259
265
  const path = e.composedPath();
@@ -372,6 +378,7 @@ export class DuetCombobox {
372
378
  this.input.accessibleExpanded = this.listOpen ? "true" : "false";
373
379
  this.input.accessibleAutocomplete = "list";
374
380
  this.input.accessibleControls = this.listBoxId;
381
+ this.input.spellcheck = false;
375
382
  this.input.id = this.inputId;
376
383
  this.element.addEventListener("keydown", this.onKeyDown);
377
384
  connectLanguageChangeObserver(this, { prop: "accessibleLabels", defaults: "accessibleLabelDefaults" });
@@ -388,6 +395,7 @@ export class DuetCombobox {
388
395
  if (Build.isServer) {
389
396
  return;
390
397
  }
398
+ clearTimeout(this.optionsFoundTimeoutId);
391
399
  this.input.removeEventListener("duetChange", this.onInputChange);
392
400
  this.element.removeEventListener("click", this.onInputClick);
393
401
  this.element.removeEventListener("keydown", this.onKeyDown);
@@ -558,7 +566,8 @@ export class DuetCombobox {
558
566
  }
559
567
  //function that scrolls to the li element with the class "active"
560
568
  scrollToActive() {
561
- const activeElement = document.getElementById(`${this.activeDescendantId}`);
569
+ var _a;
570
+ const activeElement = (_a = this.element.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById(`${this.activeDescendantId}`);
562
571
  if (activeElement) {
563
572
  activeElement.scrollIntoView({
564
573
  behavior: "smooth",
@@ -570,12 +579,11 @@ export class DuetCombobox {
570
579
  if (!item || itemsLength === undefined) {
571
580
  return "";
572
581
  }
573
- const labelString = length === itemsLength ? this.accessibleLabels.item : this.accessibleLabels.itemFiltered;
582
+ const labelString = length === itemsLength ? this.accessibleLabels.item : this.accessibleLabels.activeItemLabel;
574
583
  return labelString
575
584
  .replace("{name}", String(item.name))
576
585
  .replace("{current}", String(itemIndex + 1))
577
- .replace("{total}", String(length))
578
- .replace("{hiddenItems}", String(itemsLength - length));
586
+ .replace("{total}", String(length));
579
587
  }
580
588
  /**
581
589
  * Filter the items based on the input value
@@ -649,7 +657,7 @@ export class DuetCombobox {
649
657
  return (h(Host, { class: {
650
658
  "duet-combobox": true,
651
659
  [`duet-theme-${this.theme}`]: true,
652
- } }, h("slot", null), h("duet-visually-hidden", null, h("span", { "aria-live": "assertive", "aria-atomic": "true" }, this.activeItemAnnouncement)), h("div", null, h("duet-popup-menu", { id: this.listBoxId, controller: this.popupMenuController, ref: el => (this.listContainer = el), accessibleRole: "listbox", allowVerticalFlip: false, mainAxisOffset: verticalOffset, crossAxisOffset: horizontalOffset, class: { "duet-skip-teleport-inert": this.isInsideModal } }, h("div", { class: "combobox-menu-container", style: this.getMenuContainerStyles() }, this.listOpen &&
660
+ } }, h("slot", null), h("duet-visually-hidden", null, h("span", { "aria-live": "polite", "aria-atomic": "true" }, this.optionsFoundAnnouncement), h("span", { "aria-live": "assertive", "aria-atomic": "true" }, this.activeItemAnnouncement)), h("div", null, h("duet-popup-menu", { id: this.listBoxId, controller: this.popupMenuController, ref: el => (this.listContainer = el), accessibleRole: "listbox", allowVerticalFlip: false, mainAxisOffset: verticalOffset, crossAxisOffset: horizontalOffset, class: { "duet-skip-teleport-inert": this.isInsideModal } }, h("div", { class: "combobox-menu-container", style: this.getMenuContainerStyles() }, this.listOpen &&
653
661
  selectElements.map((item, index) => {
654
662
  return (h(DuetComboBoxSelect, { id: this.activeDescendantId, item: item, activeDescendant: index === this.activeItem, selected: this.selectedItems.has(item.id), search: this.inputValue, clickHandler: e => this.onListClick(e, item), label: this.formatLabel(item, index, selectElements.length, this.processedItems.length), isAndroidDevice: this.isAndroidDevice }));
655
663
  }), h("duet-spacer", { size: "x-small" }))))));
@@ -692,7 +700,7 @@ export class DuetCombobox {
692
700
  "getter": false,
693
701
  "setter": false,
694
702
  "reflect": false,
695
- "defaultValue": "{\n en: {\n heading: \"Select:\",\n item: \"{name}\",\n itemFiltered: \"{name}, {hiddenItems} filtered\",\n },\n fi: {\n heading: \"Valitse:\",\n item: \"{name}\",\n itemFiltered: \"{name}, {hiddenItems} suodatettu\",\n },\n sv: {\n heading: \"V\u00E4lj:\",\n item: \"{name}\",\n itemFiltered: \"{name}, {hiddenItems} filtrerade\",\n },\n }"
703
+ "defaultValue": "{\n en: {\n heading: \"Select:\",\n item: \"{name}\",\n activeItemLabel: \"{name}, {current} / {total}\",\n optionsFound: \"{optionCount} options found\",\n noOptionsFound: \"No options found\",\n },\n fi: {\n heading: \"Valitse:\",\n item: \"{name}\",\n activeItemLabel: \"{name}, {current} / {total}\",\n optionsFound: \"{optionCount}, valintaa l\u00F6ydetty\", // extra comma to prevent unwanted conjugation\n noOptionsFound: \"Yht\u00E4\u00E4n valintaa ei l\u00F6ydy\",\n },\n sv: {\n heading: \"V\u00E4lj:\",\n item: \"{name}\",\n activeItemLabel: \"{name}, {current} / {total}\",\n optionsFound: \"{optionCount} val hittades\",\n noOptionsFound: \"Inget val hittades\",\n },\n }"
696
704
  },
697
705
  "accessibleLabels": {
698
706
  "type": "unknown",
@@ -963,7 +971,8 @@ export class DuetCombobox {
963
971
  "popupMenuController": {},
964
972
  "selectedItems": {},
965
973
  "activeItem": {},
966
- "activeItemAnnouncement": {}
974
+ "activeItemAnnouncement": {},
975
+ "optionsFoundAnnouncement": {}
967
976
  };
968
977
  }
969
978
  static get events() {
@@ -1031,9 +1040,6 @@ export class DuetCombobox {
1031
1040
  }, {
1032
1041
  "propName": "activeItem",
1033
1042
  "methodName": "activeItemHandler"
1034
- }, {
1035
- "propName": "inputValue",
1036
- "methodName": "inputValueHandler"
1037
1043
  }, {
1038
1044
  "propName": "items",
1039
1045
  "methodName": "processItems"
@@ -53,15 +53,16 @@ export class DuetContactCard {
53
53
  img: {
54
54
  src: this.image,
55
55
  alt: this.name || "",
56
- loading: "lazy",
56
+ loading: this.imagePriority === "high" ? "eager" : "lazy",
57
+ fetchpriority: this.imagePriority,
57
58
  class: "image",
58
59
  },
59
60
  sources: parsePossibleJSON(this.sources),
60
61
  };
61
- return (h(Host, { key: 'f64dabbe00a4d4f03132a6adc7bc3b95bdd6042a', class: { "duet-m-0": this.margin === "none" } }, h("div", { key: '0f5bf8d1828462b3f5e6aa9f5d7e11b338a2b61c', class: {
62
+ return (h(Host, { key: '04096609d15dbb158a385792f711da26ee95dd95', class: { "duet-m-0": this.margin === "none" } }, h("div", { key: 'a0878e116a425a2ed9652904f7bc7d3d93544354', class: {
62
63
  "duet-contact-card": true,
63
64
  "duet-theme-turva": this.theme === "turva",
64
- }, role: "group", "aria-label": this.name }, this.image ? h(DuetPicture, Object.assign({}, pictureSource)) : h("div", null), h("div", { key: 'c7f1a34d6324e755b84db0dc4da6ccfe23c2caea' }, this.name && (h("duet-heading", { key: 'b5e344e3a442dd32b215a64c5ac5050004205cd2', class: "name", level: "h3", margin: "none", theme: theme }, this.name)), this.description && (h("duet-paragraph", { key: 'c0691195632640e79ff0138fd59b974764f4e653', class: "description", margin: "none", theme: theme }, this.description)), this.email && (h("div", { key: '69b2e8b159c01ac6a10b0e9f5db6484e24d7ba88', class: "email" }, h("duet-icon", { key: '610229dce2bd62cdd469f1507a3d7ab2fb9bbf2e', name: "navigation-message", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), h("duet-link", { key: 'b8de1672468624fb4d187f2284d59057abc6fc02', url: `mailto:${this.email}`, accessibleLabel: `Email: ${this.email}`, theme: theme }, this.email))), this.phone && (h("div", { key: 'f1f0f4cb51fb389b4af742d8aff457575ba2fea8', class: "phone" }, h("duet-icon", { key: 'bf01da4d50e3c15d6e5e6578e560746cd0290cdc', name: "form-tel", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), h("duet-link", { key: 'b13decd3ea2cbe80e5eb96f4214db65bcf318918', url: `tel:${this.phone}`, accessibleLabel: `${this.phoneLabel[this.language]}: ${this.phone}`, theme: theme }, this.phone)))), this.buttonUrl && this.buttonText && (h("div", { key: 'e9d62c80a434400828e323a802e873df327e9c28', class: "call-to-action" }, h("duet-button", { key: '5603fe9f97b490a96cfb04cb6efbc98093d8e216', variation: "default", icon: this.buttonIcon, fixed: true, margin: "none", url: this.buttonUrl, theme: theme }, this.buttonText))), h("div", { key: '6fd00f636dd39f1ad02f62fa2a63cfe7f00f67b2' }), h("slot", { key: 'f91dc7abe608519b46f5bf421f09258cabdda749' }))));
65
+ }, role: "group", "aria-label": this.name }, this.image ? h(DuetPicture, Object.assign({}, pictureSource)) : h("div", null), h("div", { key: '152a894a38c39c7f16488b0507ea8a2c139d29c5' }, this.name && (h("duet-heading", { key: '8738ca48c85445b027021dc89b500332a6d6b449', class: "name", level: "h3", margin: "none", theme: theme }, this.name)), this.description && (h("duet-paragraph", { key: 'a9f592ba12df7aeb59c5a5e2fad53ae1e52bab85', class: "description", margin: "none", theme: theme }, this.description)), this.email && (h("div", { key: 'afc1e103364b705e988962ab9edfdd5e0dfbbf5f', class: "email" }, h("duet-icon", { key: '5cf4768948c4b002f742233dc4d4f279bbc45b54', name: "navigation-message", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), h("duet-link", { key: 'e2e59421cec8883de026f5f47a6da855545a68ce', url: `mailto:${this.email}`, accessibleLabel: `Email: ${this.email}`, theme: theme }, this.email))), this.phone && (h("div", { key: '5a4085420c24900f3ae971f5cf5b84a91a830da4', class: "phone" }, h("duet-icon", { key: '01c049683d092c7b71fcdbf24b9a8470bd8af2da', name: "form-tel", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), h("duet-link", { key: '99c27b5983a2388e1349de7eb7b7db19d754b475', url: `tel:${this.phone}`, accessibleLabel: `${this.phoneLabel[this.language]}: ${this.phone}`, theme: theme }, this.phone)))), this.buttonUrl && this.buttonText && (h("div", { key: '9996e7c2693ddb274ab8a803e0dc564bfc40c246', class: "call-to-action" }, h("duet-button", { key: 'c0730311ffec7410311d527e75a725332a849ac8', variation: "default", icon: this.buttonIcon, fixed: true, margin: "none", url: this.buttonUrl, theme: theme }, this.buttonText))), h("div", { key: '136c1d0c39ad396194d2f9f7e9ca180e82aa66a7' }), h("slot", { key: 'fc98de9e746468e61a869ed3f4678495fe9df91f' }))));
65
66
  }
66
67
  static get is() { return "duet-contact-card"; }
67
68
  static get encapsulation() { return "shadow"; }
@@ -148,6 +149,25 @@ export class DuetContactCard {
148
149
  "setter": false,
149
150
  "reflect": false
150
151
  },
152
+ "imagePriority": {
153
+ "type": "string",
154
+ "attribute": "image-priority",
155
+ "mutable": false,
156
+ "complexType": {
157
+ "original": "\"high\" | \"low\"",
158
+ "resolved": "\"high\" | \"low\"",
159
+ "references": {}
160
+ },
161
+ "required": false,
162
+ "optional": false,
163
+ "docs": {
164
+ "tags": [],
165
+ "text": "Make the image load with higher or lower priority. Value \"high\" sets the img's attributes fetchpriority and loading to\n\"high\" and \"eager\", while value \"low\" sets those attributes to \"low\" and \"lazy\""
166
+ },
167
+ "getter": false,
168
+ "setter": false,
169
+ "reflect": false
170
+ },
151
171
  "sources": {
152
172
  "type": "string",
153
173
  "attribute": "sources",
@@ -18,5 +18,5 @@ export const DatePickerDay = ({ focusedDay, today, day, language, onDaySelect, o
18
18
  function handleClick(e) {
19
19
  onDaySelect(e, day);
20
20
  }
21
- return (h("td", { "data-day": printISODate(day), class: { "duet-date-table-cell": true, selected: isSelected }, "aria-label": `${formatterShort.format(day)}${isSelected ? `, ${selectedDayLabel[language]}` : undefined}`, role: "button", tabIndex: isFocused ? 0 : -1, onClick: handleClick, onKeyDown: onKeyboardNavigation, "aria-disabled": isOutsideRange || isDisabled, ref: ref }, h("span", { class: { "duet-date-table-button": true, outside: isOutsideRange, disabled: isDisabled, today: isToday } }, day.getDate())));
21
+ return (h("td", { "data-day": printISODate(day), class: { "duet-date-table-cell": true, selected: isSelected }, "aria-label": `${formatterShort.format(day)}${isSelected ? `, ${selectedDayLabel[language]}` : ""}`, role: "button", tabIndex: isFocused ? 0 : -1, onClick: handleClick, onKeyDown: onKeyboardNavigation, "aria-disabled": isOutsideRange || isDisabled, ref: ref }, h("span", { class: { "duet-date-table-button": true, outside: isOutsideRange, disabled: isDisabled, today: isToday } }, day.getDate())));
22
22
  };