@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
@@ -130,6 +130,11 @@ export class DuetHero {
130
130
  * Image position.
131
131
  */
132
132
  this.imagePosition = "auto";
133
+ /**
134
+ * Make the image load with higher or lower priority. Value "high" sets the img's attributes fetchpriority and loading to
135
+ * "high" and "eager", while value "low" sets those attributes to "low" and "lazy"
136
+ */
137
+ this.imagePriority = "high";
133
138
  /**
134
139
  * Style variation of the hero area.
135
140
  */
@@ -243,9 +248,9 @@ export class DuetHero {
243
248
  img: {
244
249
  src: this.image,
245
250
  alt: this.imageAlt || "",
246
- loading: "lazy",
251
+ loading: this.imagePriority === "low" ? "lazy" : "eager",
252
+ fetchpriority: this.imagePriority,
247
253
  class: className || "",
248
- role: this.imageAlt ? undefined : "presentation",
249
254
  },
250
255
  sources: parsePossibleJSON(this.sources),
251
256
  });
@@ -285,7 +290,7 @@ export class DuetHero {
285
290
  outlineColor = "color-primary-turva";
286
291
  }
287
292
  }
288
- return (h("div", { key: 'ff8e73f82eb8aad28667e16e49d362f57fcd3b74', role: "region", class: {
293
+ return (h("div", { key: 'dfdf7ff48804ea8afc843f2901dae041929c9266', role: "region", class: {
289
294
  "duet-hero": true,
290
295
  "duet-theme-turva": this.theme === "turva",
291
296
  "duet-has-category-icon": !!this.categoryIcon,
@@ -303,17 +308,17 @@ export class DuetHero {
303
308
  "duet-hero-text-center": this.variation !== "product" && ((this.textCenter && !this.leftAlign) || campaignOrSection),
304
309
  "duet-hero-left-align": this.variation === "product" || (this.leftAlign && !campaignOrSection),
305
310
  "duet-hero-narrow": this.layout === "narrow",
306
- }, part: "duet-hero" }, campaignOrSection && this.image && (h("div", { key: '7c6eaf498e1c5f42601f4c77a59d04f4e11c3787', class: "background-area" }, h("div", { key: 'a1cac74e5f880d8d7dd2d8f2fde6a6989769cbe2', class: "background-container" }, h("div", { key: 'f7819b590a7d01d66cb3ec2daa6667cc6a066993', class: "background" }, h(DuetPicture, Object.assign({ key: '554157cf62913f6fcbead29527d23678e952ce9e' }, getPictureSource(imageClass)))), h("div", { key: 'cd6031dacba217d040ad59474be4af621a76e463', class: "brand-shape" })))), this.variation === "product" && this.image && (h("div", { key: '08bbfc431301d26e2dee3c4e5bf2437c6bbe8052', class: { "background-area": true, [this.layout]: true } }, h("div", { key: '2458dfef535c7278b6b703001e66d9fedef43aac', class: { "background-container": true, [this.layout]: true } }, h("div", { key: '57b5c3ddecbc91ef48071c8050eaaa82599d1822', class: { background: true, [this.layout]: true } }, h("div", { key: 'b84d8bb2ebcabf13dc9c258513423327021dbd83', class: { "background-mask": true, [this.layout]: true } }), this.theme !== "turva" && h("div", { key: '1f899edfda9e0b827c28f83b286b8fde47a1079f', class: { "brand-shape": true, [this.layout]: true } }), h("div", { key: '67b34ed24606ef237036bf322d644e993415bf8f', class: { "brand-shaped-image": true, [this.layout]: true } }, h("div", { key: '95e326d93e23f615c90b18c61e7a30e30c84ebb1', class: { "brand-shaped-image-wrapper": true, [this.layout]: true } }, h("div", { key: 'add5e271482d65053646ae3f6ff4c413a8e114c3', class: { "brand-shaped-image-bg": true, [this.layout]: true } }, h(DuetPicture, Object.assign({ key: '00d4e688381f2758688008ce19e872ede3452cbc' }, getPictureSource()))))), this.categoryIcon && (h("div", { key: 'a5651e24522d86a6b0d1d870a5d700fad9db74ba', class: { "brand-shaped-icon": true, [this.layout]: true } }, h("duet-icon", { key: '0b35409d56e5842de0100f52e54f99561e777404', class: { [this.layout]: true }, background: "none", name: this.categoryIcon, margin: "none", size: "auto", responsive: false }))))))), this.variation === "content" && this.image && (h("div", { key: '0fa8f2031fe9a05cbfae9f1df5b73afbe156e840', class: "background-area" }, h("div", { key: '2fb9fe1b29056b9e257f8e8079f2872c2ae4ef93', class: "background" }, h("div", { key: 'd4d20034ae7773baf2fdd1551b83711cc2b0b781', class: "background-mask" }), this.theme !== "turva" && h("div", { key: '5ccc852b8b469c952800bac5c02489fc60ee8433', class: "brand-shape" }), h("div", { key: '73d5610a1e0ca8331908ce011976b86d62fbe60e', class: "brand-shaped-image" }, h("div", { key: '84079f98df920d86c3f6257f97d470ff1ff10d2b', class: "brand-shaped-image-wrapper" }, h("div", { key: 'a5d34d656f4d4f208d6dda010fb9c2236559d1e0', class: "brand-shaped-image-bg" }, h(DuetPicture, Object.assign({ key: '900a632f43c338d491fa7bd2104b51c27b9ec814' }, getPictureSource())))))))), h("div", { key: '62a03b483feb3ed3639d3754515456b058161877', class: { "duet-hero-wrapper": true, [this.layout]: true } }, this.image && this.variation === "image" && (h("div", { key: 'ba372654336abc15cfa19bf95e32eb2c629bacfc', class: "duet-hero-image-mask" }, h("div", { key: '258446935eb244a6cef5559d64bc3c486bf46643', class: "duet-hero-image-wrapper" }, h("div", { key: '726d6c0f7fd9915f813b5f7e57a9fd093a7640d2', class: "duet-hero-image" }, h(DuetPicture, Object.assign({ key: 'e1a272326833f3eea3209265b7c17d4f581812dc' }, getPictureSource(imageClass))))))), (this.variation === "gray" || this.variation === "light" || this.variation === "minimal") &&
307
- this.processedBack && (h("div", { key: 'bed23c4fdf4e2c6869bd519aaefe2fb95231eb76', class: "duet-hero-back" }, h("duet-button", { key: 'efa5d21d8bd40aa5dcca5aec05b7ddb883898cbf', style: buttonStyles, variation: "plain", icon: "action-arrow-left-small", theme: this.theme, iconSize: "small", color: buttonColor, padding: "none", margin: "none", fixed: true, url: this.processedBack.href, identifier: this.processedBack.id, onClick: event => this.handleClick(event, {
311
+ }, part: "duet-hero" }, campaignOrSection && this.image && (h("div", { key: '38e648e7447b8db00a773ff4025d68500401f7bc', class: "background-area" }, h("div", { key: '803534bf55dc7737cd41ec1d75fbed052334a19a', class: "background-container" }, h("div", { key: '27d0577a3993d7eaa767812700ff290986535b20', class: "background" }, h(DuetPicture, Object.assign({ key: '6cc4a5648f7466ed44125cd22e35a6eeb725b18a' }, getPictureSource(imageClass)))), h("div", { key: '76a95c713cd90761ea2d670389183e2c04a97a80', class: "brand-shape" })))), this.variation === "product" && this.image && (h("div", { key: 'c436973c44f7d497a70a96a51eb0f96be6eda95a', class: { "background-area": true, [this.layout]: true } }, h("div", { key: 'e5a17290d952644ba521a4b3976387456f650cd4', class: { "background-container": true, [this.layout]: true } }, h("div", { key: '8fdf828e65411a86393e096d8f3b6415076d97e0', class: { background: true, [this.layout]: true } }, h("div", { key: '0ada9a2b55d78b2774063d099cb03a8e09693584', class: { "background-mask": true, [this.layout]: true } }), this.theme !== "turva" && h("div", { key: 'b24d91804b31920da022285d0565667c8e92997e', class: { "brand-shape": true, [this.layout]: true } }), h("div", { key: '226619d3d283b31fa7e8caadaf49473a170abb3a', class: { "brand-shaped-image": true, [this.layout]: true } }, h("div", { key: '0a0415ca70e98b277bf151f28e1f4f1639338fa6', class: { "brand-shaped-image-wrapper": true, [this.layout]: true } }, h("div", { key: 'c866eb1fa36ab6cc43e8839669069046c2faae60', class: { "brand-shaped-image-bg": true, [this.layout]: true } }, h(DuetPicture, Object.assign({ key: 'a98b41e51c70043f55128a19718911f321b7527f' }, getPictureSource()))))), this.categoryIcon && (h("div", { key: '0d3b0c0428a32d2df977a6ac63be04ed6a7f72c6', class: { "brand-shaped-icon": true, [this.layout]: true } }, h("duet-icon", { key: '7af6dee3ca69df4b1d8e87830636ec18ad3a40b7', class: { [this.layout]: true }, background: "none", name: this.categoryIcon, margin: "none", size: "auto", responsive: false }))))))), this.variation === "content" && this.image && (h("div", { key: '20bd7ce2aca1d5062f0f0e1f4889a97ec308b1d9', class: "background-area" }, h("div", { key: '1847e876158decc257b4445501d1bb8e208ddb0e', class: "background" }, h("div", { key: '236489bc1fff1be4cf44d267dfbb5c3bcb119dad', class: "background-mask" }), this.theme !== "turva" && h("div", { key: '3c1e73a037c1ec3b129caaac2a689bf60ce62710', class: "brand-shape" }), h("div", { key: '9cfc2c3b6f5022d863fd6c869ffda7e0df51e013', class: "brand-shaped-image" }, h("div", { key: '8471e4f399016fb37f5f5e46f8bab0865179c6a3', class: "brand-shaped-image-wrapper" }, h("div", { key: '68bfcd1b748c5f7d0b3661152a489707f12024ac', class: "brand-shaped-image-bg" }, h(DuetPicture, Object.assign({ key: '78a267d0198018669353675e01ad0ca70491b36f' }, getPictureSource())))))))), h("div", { key: '4ab0bf9e9dee5b6889db6cc396cd304eda1bd870', class: { "duet-hero-wrapper": true, [this.layout]: true } }, this.image && this.variation === "image" && (h("div", { key: '208c46264f1ea0ce04845324a68cf5848ad95535', class: "duet-hero-image-mask" }, h("div", { key: 'b95a0b0a8840c5835a4e9668bd9481fcd9bfa87b', class: "duet-hero-image-wrapper" }, h("div", { key: '04633cc8d3020b921c42551a5e065bc942540fcc', class: "duet-hero-image" }, h(DuetPicture, Object.assign({ key: '7415ca53535a1295d42eb2b29cc6dbe7a93a04ae' }, getPictureSource(imageClass))))))), (this.variation === "gray" || this.variation === "light" || this.variation === "minimal") &&
312
+ this.processedBack && (h("div", { key: '59cbdb9c4195074e03310b65a88b4bafd74f9916', class: "duet-hero-back" }, h("duet-button", { key: 'ce17a681e39b9ad5c21edec2472175919f68b02f', style: buttonStyles, variation: "plain", icon: "action-arrow-left-small", theme: this.theme, iconSize: "small", color: buttonColor, padding: "none", margin: "none", fixed: true, url: this.processedBack.href, identifier: this.processedBack.id, onClick: event => this.handleClick(event, {
308
313
  label: this.processedBack.label,
309
314
  href: this.processedBack.href,
310
315
  id: this.processedBack.id,
311
316
  analyticsId: this.processedBack.analyticsId,
312
- }) }, this.processedBack.label))), (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (h("duet-icon", { key: '7de90656859d63499f3b160c2a39619cd4a0a9db', class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })), h("div", { key: '73b543bd71d7e1f2936a2753a255d1ac1339f99c', class: { "duet-hero-text": true }, part: "duet-hero-text" }, (this.preHeading || this.hasPreHeadingSlot) && (h("duet-paragraph", { key: 'd0150811990feac24531dc5e173a93ec3a482418', margin: "none", class: "duet-hero-pre", size: this.variation === "content" ? "small" : "medium", "aria-hidden": "true" }, this.preHeading ? (this.preHeading) : (h("span", null, h("slot", { name: "pre-heading" }))))), h("slot", { key: '041cf2cfcba43317f1e0041d40b00bfd68bb6202', name: "badge" }), (this.heading || this.hasHeadingSlot) && (h("duet-heading", { key: '7f662d3f98757953d04cb29640a7284e7ddcb64b', theme: this.theme, level: this.hasHeadingSlotNative ? "div" : this.level, class: { "duet-hero-heading": true, "duet-hero-heading-has-pre": this.preHeading !== "" }, color: headingColor, visualLevel: headingVisualLevel, margin: campaignOrSection ? "none" : "auto", accessibleLabel: this.getAccessibleHeading() }, this.heading ? this.heading : h("slot", { name: "heading" }))), campaignOrSection && this.hasSubHeadingSlot && (h("duet-heading", { key: '1c02aada316e7b8f8699b79d1128476cdde75ae6', theme: this.theme, level: this.hasSubHeadingSlotNative ? "div" : this.subHeadingLevel, class: { "duet-hero-subheading": true }, color: this.theme === "turva" ? "secondary-turva" : "secondary", visualLevel: "h2" }, h("slot", { key: '34c786a2833cbeb54018fa83b543ab7c55ecd5ff', name: "subheading" }))), this.description && (h("duet-paragraph", { key: '28a82b3619a9418271f1dd4f25d10366fde9f753', theme: this.theme, color: textColor, variation: "intro" }, this.description)), (this.variation === "gray" || this.variation === "minimal") && this.processedListItems && (h("duet-list", { key: '4508f7e305d64e5bf7b39f5340efe8b2ab9d12be', theme: this.theme, "label-width": "30", breakpoint: "large", mobile: this.leftAlign ? undefined : "center" }, this.processedListItems.map(item => (h("duet-list-item", null, h("span", { slot: "label" }, item.label), h("span", { slot: "value" }, item.value)))))), this.buttonLabel && (h("duet-button", { key: '3fb36dbf926c3331c6d757bc32208f26424f7e9c', url: this.buttonUrl, icon: this.icon, iconRight: this.iconRight, iconSize: this.iconSize, variation: buttonVariation, theme: this.theme, identifier: this.buttonId, onClick: event => this.handleClick(event, this.buttonData), fixed: true }, this.buttonLabel)), h("slot", { key: '85fd506d92b185ddbb57c134298164422a6c682d' })), (this.variation === "gray" || this.variation === "minimal") && this.processedActions && (h("div", { key: '9230b5c71616b04e276724e18592d946f7e4ad5d', class: "duet-hero-links" }, this.processedActions.map(item => (h("a", { class: "duet-hero-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleClick(event, item) }, h("div", { class: "duet-hero-action-icon" }, h("duet-icon", { size: "small", margin: "none", name: item.icon, color: "currentColor", outline: outlineColor })), h("span", null, item.label), item.external && h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), item.external && (h("div", { class: "duet-hero-action-arrow" }, h("duet-icon", { icon: newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" })))))))), this.image &&
317
+ }) }, this.processedBack.label))), (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (h("duet-icon", { key: '191763dfcef22bcd3ccd7b8ac096ae6446de2d98', class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })), h("div", { key: '7ee11a778839f281ce31673e60f4923ff223e3ac', class: { "duet-hero-text": true }, part: "duet-hero-text" }, (this.preHeading || this.hasPreHeadingSlot) && (h("duet-paragraph", { key: '7d7f43ba3e592cbad30f8f28000ff361209bf443', margin: "none", class: "duet-hero-pre", size: this.variation === "content" ? "small" : "medium", "aria-hidden": "true" }, this.preHeading ? (this.preHeading) : (h("span", null, h("slot", { name: "pre-heading" }))))), h("slot", { key: 'e73727e5aa7fad6aaaceabcf6f81c6572f0a15a9', name: "badge" }), (this.heading || this.hasHeadingSlot) && (h("duet-heading", { key: '5884aecc75704d8dccc6c709a6768ddd578c4dde', theme: this.theme, level: this.hasHeadingSlotNative ? "div" : this.level, class: { "duet-hero-heading": true, "duet-hero-heading-has-pre": this.preHeading !== "" }, color: headingColor, visualLevel: headingVisualLevel, margin: campaignOrSection ? "none" : "auto", accessibleLabel: this.getAccessibleHeading() }, this.heading ? this.heading : h("slot", { name: "heading" }))), campaignOrSection && this.hasSubHeadingSlot && (h("duet-heading", { key: '763778e5026dbfa90ef3e68f0f1b7d037043b88d', theme: this.theme, level: this.hasSubHeadingSlotNative ? "div" : this.subHeadingLevel, class: { "duet-hero-subheading": true }, color: this.theme === "turva" ? "secondary-turva" : "secondary", visualLevel: "h2" }, h("slot", { key: '9588038687bc9dfcb10a04b5e5cdaa6e3ef253de', name: "subheading" }))), this.description && (h("duet-paragraph", { key: 'f0d60545403dfcc453d79aa1bfdd5582b876ae49', theme: this.theme, color: textColor, variation: "intro" }, this.description)), (this.variation === "gray" || this.variation === "minimal") && this.processedListItems && (h("duet-list", { key: '7006a276c36ca7001df5c93d6fc3e792f8a07169', theme: this.theme, "label-width": "30", breakpoint: "large", mobile: this.leftAlign ? undefined : "center" }, this.processedListItems.map(item => (h("duet-list-item", null, h("span", { slot: "label" }, item.label), h("span", { slot: "value" }, item.value)))))), this.buttonLabel && (h("duet-button", { key: '2954e77b3dde7b49573c25f1566d5f820c1dea3b', url: this.buttonUrl, icon: this.icon, iconRight: this.iconRight, iconSize: this.iconSize, variation: buttonVariation, theme: this.theme, identifier: this.buttonId, onClick: event => this.handleClick(event, this.buttonData), fixed: true }, this.buttonLabel)), h("slot", { key: '87703efb26e4376a71a692aa444988dacbf45d68' })), (this.variation === "gray" || this.variation === "minimal") && this.processedActions && (h("div", { key: '92123389406d8b37e76d0305fb7a2e1d194ce1d4', class: "duet-hero-links" }, this.processedActions.map(item => (h("a", { class: "duet-hero-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleClick(event, item) }, h("div", { class: "duet-hero-action-icon" }, h("duet-icon", { size: "small", margin: "none", name: item.icon, color: "currentColor", outline: outlineColor })), h("span", null, item.label), item.external && h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), item.external && (h("div", { class: "duet-hero-action-arrow" }, h("duet-icon", { icon: newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" })))))))), this.image &&
313
318
  this.variation !== "image" &&
314
319
  !campaignOrSection &&
315
320
  this.variation !== "product" &&
316
- this.variation !== "content" && (h("div", { key: 'cfe495f2a5bedb9bd622b3a001533a299477f12d', class: "duet-hero-image" }, h(DuetPicture, Object.assign({ key: '26f3df199d16a059b273c5e8dc568c71ac637d05' }, getPictureSource(imageClass))))), h("slot", { key: 'f8680df361205e9c4f2868f71022e736097002b1', name: "bottom" }))));
321
+ this.variation !== "content" && (h("div", { key: 'cd09b6b83414a647857f014ddd08f9b49b4d122a', class: "duet-hero-image" }, h(DuetPicture, Object.assign({ key: '68b91f0d9db476f3aa31c63b2a04465705e61658' }, getPictureSource(imageClass))))), h("slot", { key: '8f23feb29e40591b85303a1864fb5736274b7596', name: "bottom" }))));
317
322
  }
318
323
  static get is() { return "duet-hero"; }
319
324
  static get encapsulation() { return "shadow"; }
@@ -878,6 +883,26 @@ export class DuetHero {
878
883
  "setter": false,
879
884
  "reflect": false
880
885
  },
886
+ "imagePriority": {
887
+ "type": "string",
888
+ "attribute": "image-priority",
889
+ "mutable": false,
890
+ "complexType": {
891
+ "original": "\"high\" | \"low\"",
892
+ "resolved": "\"high\" | \"low\"",
893
+ "references": {}
894
+ },
895
+ "required": false,
896
+ "optional": false,
897
+ "docs": {
898
+ "tags": [],
899
+ "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\""
900
+ },
901
+ "getter": false,
902
+ "setter": false,
903
+ "reflect": false,
904
+ "defaultValue": "\"high\""
905
+ },
881
906
  "sources": {
882
907
  "type": "string",
883
908
  "attribute": "sources",
@@ -144,11 +144,11 @@ export class DuetIcon {
144
144
  : {};
145
145
  const iconStyles = Object.assign({}, iconRotationStyles);
146
146
  const shapeStyle = this.shape === "brand-rotated" ? "duet-icon-shape-brand" : `duet-icon-shape-${this.shape}`;
147
- return (h(Host, { key: 'ac454937867acd98e1552f998f09cecb7b6db6f6', class: {
147
+ return (h(Host, { key: 'fc3baf3fd1c385e8841cb935f5ea4781fed66367', class: {
148
148
  "duet-m-0": this.margin === "none",
149
149
  "duet-icon-has-outline": !!this.outline,
150
150
  "duet-icon-has-background": !!this.background,
151
- } }, h("span", { key: '61bd9c9b857bd54bfa18b71035af646ddfc8b490', "aria-hidden": "true", style: styles, class: {
151
+ } }, h("span", { key: '5c8edb2e88c8214bb38753dd019c9d24a1421dad', "aria-hidden": "true", style: styles, class: {
152
152
  "duet-icon": true,
153
153
  "duet-theme-turva": this.theme === "turva",
154
154
  "duet-theme-default": this.theme === "default",
@@ -157,7 +157,7 @@ export class DuetIcon {
157
157
  [shapeStyle]: true,
158
158
  rotated: this.shape === "brand-rotated" && this.theme !== "turva",
159
159
  "duet-icon-not-responsive": !this.responsive,
160
- } }, h("span", { key: '513e30e9f69a6661e54b5f2a0989eaf14887f533', "aria-hidden": "true", class: { "duet-icon-svg": true, rotated: this.shape === "brand-rotated" && this.theme !== "turva" }, "data-name": this.name, innerHTML: this.svgContent, style: iconStyles }))));
160
+ } }, h("span", { key: '93836d0a46c0293fc59790869a0c0732b055c191', "aria-hidden": "true", class: { "duet-icon-svg": true, rotated: this.shape === "brand-rotated" && this.theme !== "turva" }, "data-name": this.name, innerHTML: this.svgContent, style: iconStyles }))));
161
161
  }
162
162
  static get is() { return "duet-icon"; }
163
163
  static get encapsulation() { return "shadow"; }
@@ -310,6 +310,10 @@ duet-caption:not(:last-of-type) {
310
310
  .duet-input.after-chip {
311
311
  padding-left: 8px !important;
312
312
  }
313
+ .duet-input[readonly] {
314
+ color: rgb(62, 84, 102) !important;
315
+ border-color: rgb(212, 223, 229);
316
+ }
313
317
  .has-error .duet-input {
314
318
  outline-offset: -1px;
315
319
  background-color: rgb(255, 240, 243) !important;
@@ -500,6 +504,9 @@ duet-caption:not(:last-of-type) {
500
504
  .duet-input-variation-revealable.disabled .duet-input-relative {
501
505
  outline: none;
502
506
  background: rgb(245, 248, 250);
507
+ border-color: rgb(181, 198, 208);
508
+ }
509
+ .duet-input-variation-revealable.readonly .duet-input-relative {
503
510
  border-color: rgb(212, 223, 229);
504
511
  }
505
512
  .duet-input-variation-revealable.has-error .duet-input-relative {
@@ -525,6 +532,14 @@ duet-caption:not(:last-of-type) {
525
532
  border-color: rgb(214, 28, 82) !important;
526
533
  }
527
534
 
535
+ .duet-input-container.has-adornment.disabled .duet-input-relative,
536
+ .duet-input-container.has-chips.disabled .duet-input-relative {
537
+ border-color: rgb(181, 198, 208);
538
+ }
539
+ .duet-input-container.has-adornment.readonly .duet-input-relative,
540
+ .duet-input-container.has-chips.readonly .duet-input-relative {
541
+ border-color: rgb(212, 223, 229);
542
+ }
528
543
  .duet-input-container.has-adornment.has-focus .duet-input-relative,
529
544
  .duet-input-container.has-chips.has-focus .duet-input-relative {
530
545
  outline: 2px solid;
@@ -637,6 +652,10 @@ duet-caption:not(:last-of-type) {
637
652
  font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
638
653
  color: rgb(23, 42, 59) !important;
639
654
  }
655
+ .duet-theme-turva .duet-input[readonly] {
656
+ color: rgb(53, 79, 101) !important;
657
+ border-color: rgb(212, 221, 226);
658
+ }
640
659
  .duet-theme-turva .duet-input[disabled] {
641
660
  color: rgb(95, 122, 143) !important;
642
661
  cursor: not-allowed !important;
@@ -671,6 +690,12 @@ duet-caption:not(:last-of-type) {
671
690
  .duet-theme-turva .duet-input-variation-revealable .duet-input-relative {
672
691
  border-color: rgb(120, 145, 164);
673
692
  }
693
+ .duet-theme-turva.duet-input-variation-revealable.disabled .duet-input-relative {
694
+ border-color: rgb(178, 194, 205);
695
+ }
696
+ .duet-theme-turva.duet-input-variation-revealable.readonly .duet-input-relative {
697
+ border-color: rgb(212, 221, 226);
698
+ }
674
699
  .duet-theme-turva.duet-input-variation-revealable.has-error .duet-input-relative {
675
700
  border-color: rgb(214, 28, 82);
676
701
  }
@@ -687,4 +712,10 @@ duet-caption:not(:last-of-type) {
687
712
  }
688
713
  .duet-theme-turva .duet-input-container.has-chips .duet-input-relative {
689
714
  border-color: rgb(120, 145, 164);
715
+ }
716
+ .duet-theme-turva .duet-input-container.has-chips.disabled .duet-input-relative {
717
+ border-color: rgb(178, 194, 205);
718
+ }
719
+ .duet-theme-turva .duet-input-container.has-chips.readonly .duet-input-relative {
720
+ border-color: rgb(212, 221, 226);
690
721
  }
@@ -138,6 +138,13 @@ export class DuetInput {
138
138
  * interact with the input, and conveys its inactive state to assistive technologies.
139
139
  */
140
140
  this.disabled = false;
141
+ /**
142
+ * Makes the input component not mutable, meaning the user cannot edit the control.
143
+ * The user can otherwise interact, e.g. by selecting the content and copying it.
144
+ * Due to differences in different browsers' and screen readers' implementations it
145
+ * is strongly advisable to use this only with type="text".
146
+ */
147
+ this.readonly = false;
141
148
  /**
142
149
  * Controls the margin of the component.
143
150
  */
@@ -177,7 +184,8 @@ export class DuetInput {
177
184
  */
178
185
  this.label = "Label";
179
186
  /**
180
- * Display the input in error state along with an error message.
187
+ * Display the input in error state along with an error message. If input is disabled or readonly,
188
+ * error is ignored.
181
189
  */
182
190
  this.error = "";
183
191
  /**
@@ -347,7 +355,7 @@ export class DuetInput {
347
355
  return clearing;
348
356
  };
349
357
  this.keyHandler = (event) => {
350
- if (isEscapeKey(event) && this.clear) {
358
+ if (isEscapeKey(event) && this.clear && this.writable) {
351
359
  this.handleClearClick(event);
352
360
  }
353
361
  if (isEnterKey(event) && this.variation === "revealable") {
@@ -360,7 +368,7 @@ export class DuetInput {
360
368
  }
361
369
  if (this.chips && this.nativeInput.value.length === 0) {
362
370
  if (isBackspaceKey(event)) {
363
- if (this.isChipSelected()) {
371
+ if (this.isChipSelected() && this.writable) {
364
372
  this.getSelectedChip().removeChip();
365
373
  setTimeout(() => this.selectLastChip());
366
374
  }
@@ -469,7 +477,6 @@ export class DuetInput {
469
477
  componentWillLoad() {
470
478
  inheritGlobalTheme(this);
471
479
  this.disallowedPatternChange();
472
- this.isCaptionVisible = !!this.caption;
473
480
  // Accept also slot element so that other components using duet-input can pass their tooltip slots here.
474
481
  checkNamedSlotElement(this.element, "tooltip", "duet-tooltip, slot", 1, true);
475
482
  }
@@ -486,9 +493,15 @@ export class DuetInput {
486
493
  disconnectedCallback() {
487
494
  disconnectLanguageChangeObserver(this);
488
495
  }
496
+ componentWillRender() {
497
+ this.isCaptionVisible = !!this.caption;
498
+ }
489
499
  componentDidRender() {
490
500
  proxyInputToSlot(this.element, this.proxyId, this.name, this.value, this.required);
491
501
  }
502
+ get writable() {
503
+ return !this.disabled && !this.readonly;
504
+ }
492
505
  /**
493
506
  * Sets focus on the specified `duet-input`. Use this method instead of the global
494
507
  * `input.focus()`.
@@ -658,7 +671,7 @@ export class DuetInput {
658
671
  this.type !== "password" &&
659
672
  this.type !== "time" &&
660
673
  this.variation !== "button";
661
- return (h(Host, { key: '1119e8e51f3a490e34665e77ce32ec21f7bc70c7', class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" }, onKeyUp: e => this.keyHandler(e) }, this.type === "time" && (h("duet-visually-hidden", { key: '31afa65dcb1b161f8c5a87c65953a26a552066b8', "aria-live": "polite", "aria-atomic": "true" }, selectedTime ? `${this.timeAnnouncement[this.language]} ${selectedTime.toLocaleTimeString()}` : "")), h("div", { key: '5574afef8c592593193cbf0c99eaf8eaa84dbf11', class: {
674
+ return (h(Host, { key: 'a859732fa2ed3e36d5564c93e08d4bd4cb501188', class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" }, onKeyUp: e => this.keyHandler(e) }, this.type === "time" && (h("duet-visually-hidden", { key: 'ce15aa89693e557f5abd16e8111db759be70c89d', "aria-live": "polite", "aria-atomic": "true" }, selectedTime ? `${this.timeAnnouncement[this.language]} ${selectedTime.toLocaleTimeString()}` : "")), h("div", { key: '58f44c874cc78e07b6ea9f9b07502f46830d389f', class: {
662
675
  "duet-input-container": true,
663
676
  "duet-theme-turva": this.theme === "turva",
664
677
  [`duet-input-variation-${this.variation}`]: true,
@@ -667,7 +680,7 @@ export class DuetInput {
667
680
  "has-icon": this.variation !== "button" &&
668
681
  (!!this.icon ||
669
682
  (this.type !== "text" && this.type !== "tel" && this.type !== "password" && this.type !== "time")),
670
- "has-error": !!this.error,
683
+ "has-error": !!this.error && this.writable,
671
684
  "has-chips": this.chips,
672
685
  "has-clear": this.clear,
673
686
  "has-focus": this.isFocused,
@@ -675,11 +688,12 @@ export class DuetInput {
675
688
  "has-prefix": !!this.fieldPrefix,
676
689
  "has-suffix": !!this.fieldSuffix,
677
690
  disabled: this.disabled,
678
- } }, h("div", { key: 'cd0dfb4e8ef821c84d342fff017da9b3e6938134', class: "duet-input-label-container" }, h(DuetInternalLabel, { key: '7ef9a4e3ccbc5b7ac030ca66912eb0471103ed10', theme: this.theme === "turva" ? "turva" : "default", margin: this.isCaptionVisible ? "small" : "auto", color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: identifier }, this.label), this.tooltip && (h("duet-tooltip", { key: 'f263424aa51a59f4252cad4b4a1347b5986869ae', class: "duet-input-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label, theme: this.theme === "turva" ? "turva" : "default" }, this.tooltip)), h("slot", { key: 'b4afd5ae65bbc03083b81996965cb354d6fd2a35', name: "tooltip" })), this.caption && (h("duet-caption", { key: '1d126824ee2ef4b7a4dae8650363e9da0b58c288', id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { key: 'adb5b8fa3b3de37c96d74fd1b888de75689a3ce0', class: {
691
+ readonly: this.readonly,
692
+ } }, h("div", { key: '285821770ae823d73eaaeff2f2c88996778f8b69', class: "duet-input-label-container" }, h(DuetInternalLabel, { key: '3fa55f1f4bd918ba022ecf233e9aff5b972a72db', theme: this.theme === "turva" ? "turva" : "default", margin: this.isCaptionVisible ? "small" : "auto", color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: identifier }, this.label), this.tooltip && (h("duet-tooltip", { key: '2e08a75002784f2269629dce2ae232fa768d0906', class: "duet-input-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label, theme: this.theme === "turva" ? "turva" : "default" }, this.tooltip)), h("slot", { key: '4125f60b2ae5f69cf6e33ad5485f6d9633b6ea47', name: "tooltip" })), this.caption && (h("duet-caption", { key: 'e7c72af17640691b585f81ac5c9c838ebb8c36b0', id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { key: 'f7228488fa060e6b0344fd86ac487aed1c76a418', class: {
679
693
  "duet-input-relative": true,
680
694
  "duet-theme-turva": this.theme === "turva",
681
- "has-error": !!this.error,
682
- } }, this.placeholder && this.echoPlaceholder && (this.value || this.type === "time") && (h("duet-caption", { key: 'fcadd06bf9e0dc4115c0bd004de23fa5692b03fc', id: this.topCaptionPlaceholderId, class: "duet-input-placeholder", margin: "none", size: "small" }, this.placeholder)), this.chips && (h("duet-visually-hidden", { key: '84a8a1feed5a0895936f5e1d5ee310c6282f1678', id: this.chipCountId }, ", ", `${this.getAllChips().length} ${getLocaleString(this.chipsSelectedDesriptionLabel)}`, ",")), this.variation === "button-left" && h("slot", { key: '90533c1b234e2644eb97317f903abbf04fee8138', name: "button-left" }), this.fieldPrefix && (h("span", { key: '151fd6757766b8c7e86ded73639d87bb32814089', class: "input-adornment prefix", id: this.prefixId }, this.fieldPrefix)), h("input", Object.assign({ key: '06811722717032661d4ba5e3bfa9c2b6196cf082', ref: input => (this.nativeInput = input), onInput: this.onInput, onKeyDown: this.onInputKeyDown, onPaste: this.onInputPaste, onBlur: this.onBlur, onFocus: this.onFocus, type: this.getInputType(), class: {
695
+ "has-error": !!this.error && this.writable,
696
+ } }, this.placeholder && this.echoPlaceholder && (this.value || this.type === "time") && (h("duet-caption", { key: 'b9f16783722dd5eceffa4c680f735d0a967e2cb1', id: this.topCaptionPlaceholderId, class: "duet-input-placeholder", margin: "none", size: "small" }, this.placeholder)), this.chips && (h("duet-visually-hidden", { key: 'ceeb27c775ffc161915f98aaeeb0cf0a61b56b95', id: this.chipCountId }, ", ", `${this.getAllChips().length} ${getLocaleString(this.chipsSelectedDesriptionLabel)}`, ",")), this.variation === "button-left" && h("slot", { key: '8cccc4fde3d2315b69a9212e2f1bacf627fefa0b', name: "button-left" }), this.fieldPrefix && (h("span", { key: 'cdc1574242d2921e79c871330b4e058e8a7219cb', class: "input-adornment prefix", id: this.prefixId }, this.fieldPrefix)), h("input", Object.assign({ key: '707a06f6db287db4753feafcf24f5d4d1e34d01a', ref: input => (this.nativeInput = input), onInput: this.onInput, onKeyDown: this.onInputKeyDown, onPaste: this.onInputPaste, onBlur: this.onBlur, onFocus: this.onFocus, type: this.getInputType(), class: {
683
697
  "duet-input": true,
684
698
  disabled: this.disabled,
685
699
  "is-number": this.component === "number",
@@ -687,17 +701,17 @@ export class DuetInput {
687
701
  "after-chip": this.getAllChips().length > 0,
688
702
  "align-right": this.inputAlign === "right",
689
703
  [`input-padding-${this.inputPadding}`]: true,
690
- }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": this.getAriaLabelledBy(), "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-expanded": this.accessibleExpanded, "aria-haspopup": this.accessibleHasPopup, "aria-owns": this.accessibleOwns, "aria-describedby": this.getAriaDescribedBy(), placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.getAutocomplete(), required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), this.maxlength && (h("duet-visually-hidden", { key: `maxlength-announcement-${this.maxlengthAnnouncementKey}`, "aria-live": "polite", "aria-atomic": "true" }, this.maxlengthAnnouncement)), this.fieldSuffix && (h("span", { key: 'b2d284fc05798f7dab08555f524cabf4f94f0e19', class: "input-adornment suffix", id: this.suffixId }, this.fieldSuffix)), !this.value && hasInputIcon && (h("div", { key: '8364a8a7687b6e37279585edf55da9005673f4df', class: "duet-input-icon" }, h("duet-icon", { key: '1b420da3e76241f1e105ce5ef8b9f40e6490424d', margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.clear && this.value && (h("div", { key: 'c67978258fbf64a22563a8e139b7a7de012bb4ca', class: {
704
+ }, value: this.value, disabled: this.disabled, readonly: this.readonly, "aria-invalid": this.error && this.writable ? "true" : "false", "aria-labelledby": this.getAriaLabelledBy(), "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-expanded": this.accessibleExpanded, "aria-haspopup": this.accessibleHasPopup, "aria-owns": this.accessibleOwns, "aria-describedby": this.getAriaDescribedBy(), placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.getAutocomplete(), required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), this.maxlength && (h("duet-visually-hidden", { key: `maxlength-announcement-${this.maxlengthAnnouncementKey}`, "aria-live": "polite", "aria-atomic": "true" }, this.maxlengthAnnouncement)), this.fieldSuffix && (h("span", { key: 'b75739603d5e5ad093db7a2440c0b8abc217dcf6', class: "input-adornment suffix", id: this.suffixId }, this.fieldSuffix)), !this.value && hasInputIcon && (h("div", { key: '404d988da35d4387e0eda7e1d343e6d98df86be7', class: "duet-input-icon" }, h("duet-icon", { key: '917289116b7c97efb8f384353f44f02c7fd07205', margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.clear && this.value && this.writable && (h("div", { key: 'b7b38ab40d68c5092bc82672308572134a033168', class: {
691
705
  "duet-input-clear-icon": true,
692
706
  "duet-input-clear-icon-single": !hasInputIcon,
693
707
  "duet-input-clear-icon-double": !!this.icon,
694
708
  "duet-input-clear-icon-button": this.variation === "button",
695
709
  [`input-padding-${this.inputPadding}`]: true,
696
- } }, h("button", { key: 'b243244d6d5184c42a9afb93483479a0b07bad7d', onClick: this.handleClearClick, id: this.clearId, "aria-label": this.clearLabel[this.language], "aria-keyshortcuts": "Escape" }, h("duet-icon", { key: '2ff21863005e55dc7a4dc1a16e2e2e40ad7f85cf', margin: "none", size: "medium", name: "action-clear-input", color: "currentColor" })))), this.icon && this.variation !== "button" && (h("div", { key: '7732892f159a6c7c9ad7c89b0031052b1ed45502', class: "duet-input-icon" }, h("duet-icon", { key: '97de6dc8ff0c506db494dc36edc6d0107792c2b9', margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.variation === "button" && h("slot", { key: '5c940caf605e2eaff4db2a36c63548db78f36f41', name: "button" }), this.variation === "revealable" && (h("duet-button", { key: 'caf0a7c8bec4a620e2ca5f897eaabc1814f32c5d', ref: button => (this.togglePasswordRevealedButton = button), onBlur: this.onBlur, onFocus: this.onFocus, onClick: this.togglePasswordRevealed, icon: this.isPasswordRevealed ? "action-hide" : "action-show", accessibleLabel: this.isPasswordRevealed
710
+ } }, h("button", { key: 'ea77d45ff7dde685c5f35e0b33d1c75189d2d6c4', onClick: this.handleClearClick, id: this.clearId, "aria-label": this.clearLabel[this.language], "aria-keyshortcuts": "Escape" }, h("duet-icon", { key: '7807be8fb14c59731458e17b7ceecb99cda77545', margin: "none", size: "medium", name: "action-clear-input", color: "currentColor" })))), this.icon && this.variation !== "button" && (h("div", { key: 'c6a744f0be1c484f051980f70d0a0deed5fcd9c0', class: "duet-input-icon" }, h("duet-icon", { key: '9d33dac97ba817f3bfa11e82097b95499727c885', margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.variation === "button" && h("slot", { key: '435f5d3927a55c4ce2c17e4483305b4f47afef8b', name: "button" }), this.variation === "revealable" && (h("duet-button", { key: 'a1074a0cfe211da5cdebdf9a81c82d6200de6961', ref: button => (this.togglePasswordRevealedButton = button), onBlur: this.onBlur, onFocus: this.onFocus, onClick: this.togglePasswordRevealed, icon: this.isPasswordRevealed ? "action-hide" : "action-show", accessibleLabel: this.isPasswordRevealed
697
711
  ? this.hidePasswordLabel[this.language]
698
- : this.showPasswordLabel[this.language], margin: "none", variation: "input-button-embedded", fixed: true, iconOnly: true })), this.variation === "revealable" && this.isPasswordRevealed !== undefined && (h("duet-visually-hidden", { key: 'cc394dbd7d28fc9e1cf0a864c67e7e7a6a835d1a' }, h("span", { key: '20033ed28c86634d6faf03180e53cff84def1329', "aria-live": "polite" }, this.isPasswordRevealed
712
+ : this.showPasswordLabel[this.language], margin: "none", variation: "input-button-embedded", fixed: true, iconOnly: true })), this.variation === "revealable" && this.isPasswordRevealed !== undefined && (h("duet-visually-hidden", { key: '0a8bbe5ec03d73b5e673c42a7031c6b097bd8681' }, h("span", { key: 'cf080989a3e7b86369904921249a95fe1cb3bc19', "aria-live": "polite" }, this.isPasswordRevealed
699
713
  ? this.passwordShownAriaAnnouncement[this.language]
700
- : this.passwordHiddenAriaAnnouncement[this.language]))), h("slot", { key: 'b72c50503fa80fd1ba6764b7b3348bc5d7b2813c' })), h("span", { key: '25790e8c5147bb271fefa6cbce2343287b57c816', class: "duet-input-help", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && h("span", { key: 'c62d261a03ebec492aed9c65a836525e47660cfc', class: "duet-input-error" }, this.error)))));
714
+ : this.passwordHiddenAriaAnnouncement[this.language]))), h("slot", { key: '32c4cb54404e67cf564c60e555f7aee3437f0282' })), h("span", { key: 'a860619ce4d528dcb8d714ef3680629640c08461', class: "duet-input-help", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && this.writable && h("span", { key: '3dfc64f27935e571630a215cbd69bcd2c0d8e1f1', class: "duet-input-error" }, this.error)))));
701
715
  }
702
716
  static get is() { return "duet-input"; }
703
717
  static get encapsulation() { return "shadow"; }
@@ -1096,6 +1110,26 @@ export class DuetInput {
1096
1110
  "reflect": true,
1097
1111
  "defaultValue": "false"
1098
1112
  },
1113
+ "readonly": {
1114
+ "type": "boolean",
1115
+ "attribute": "readonly",
1116
+ "mutable": false,
1117
+ "complexType": {
1118
+ "original": "boolean",
1119
+ "resolved": "boolean",
1120
+ "references": {}
1121
+ },
1122
+ "required": false,
1123
+ "optional": false,
1124
+ "docs": {
1125
+ "tags": [],
1126
+ "text": "Makes the input component not mutable, meaning the user cannot edit the control.\nThe user can otherwise interact, e.g. by selecting the content and copying it.\nDue to differences in different browsers' and screen readers' implementations it\nis strongly advisable to use this only with type=\"text\"."
1127
+ },
1128
+ "getter": false,
1129
+ "setter": false,
1130
+ "reflect": true,
1131
+ "defaultValue": "false"
1132
+ },
1099
1133
  "identifier": {
1100
1134
  "type": "string",
1101
1135
  "attribute": "identifier",
@@ -1356,7 +1390,7 @@ export class DuetInput {
1356
1390
  "optional": false,
1357
1391
  "docs": {
1358
1392
  "tags": [],
1359
- "text": "Display the input in error state along with an error message."
1393
+ "text": "Display the input in error state along with an error message. If input is disabled or readonly,\nerror is ignored."
1360
1394
  },
1361
1395
  "getter": false,
1362
1396
  "setter": false,
@@ -464,6 +464,10 @@ button {
464
464
  border-color: rgb(228, 233, 237);
465
465
  box-shadow: 0 2px 6px 0 rgba(117, 117, 117, 0.13);
466
466
  }
467
+ .duet-theme-turva.duet-link.card:hover {
468
+ outline-color: rgb(230, 23, 64);
469
+ border-color: rgb(230, 23, 64);
470
+ }
467
471
  .duet-theme-turva.duet-link.block, .duet-theme-turva.duet-link.block-center {
468
472
  color: rgb(23, 42, 59);
469
473
  }
@@ -476,6 +480,18 @@ button {
476
480
  .duet-theme-turva.duet-link.block:hover .duet-link-content, .duet-theme-turva.duet-link.block-center:hover .duet-link-content {
477
481
  color: rgb(185, 3, 41);
478
482
  }
483
+ .duet-theme-turva.duet-link.article-list {
484
+ border-color: rgb(212, 221, 226);
485
+ }
486
+ .duet-theme-turva.duet-link.article-list .duet-link-content {
487
+ color: rgb(23, 42, 59);
488
+ }
489
+ .duet-theme-turva.duet-link.article-list .duet-link-meta {
490
+ color: rgb(72, 100, 122);
491
+ }
492
+ .duet-theme-turva.duet-link.article-list:focus .duet-link-content, .duet-theme-turva.duet-link.article-list:hover .duet-link-content {
493
+ color: rgb(230, 23, 64);
494
+ }
479
495
  .duet-theme-turva.duet-tab-to-link {
480
496
  min-width: 120px;
481
497
  color: rgb(23, 42, 59);
@@ -187,10 +187,10 @@ export class DuetLink {
187
187
  const Tag = !this.url && this.variation !== "default" ? "button" : "a";
188
188
  const role = !this.url && this.variation === "default" ? "button" : null;
189
189
  const isButton = Tag === "button";
190
- return (h(Host, { key: '07cf184d2f321700e665e358f8a0cb988e798da8', class: {
190
+ return (h(Host, { key: '0a7c2de12ea320f4fcf5d73e60200af11254f8c3', class: {
191
191
  [`duet-link-${this.variation}`]: true,
192
192
  "duet-m-0": this.margin === "none",
193
- } }, h(Tag, { key: 'bb416240f5adc73c8eeacbd4ca0524619326a954', href: this.url, class: {
193
+ } }, h(Tag, { key: '6351d938da19503fa7c0e3526700729a9f2c054e', href: this.url, class: {
194
194
  "duet-link": true,
195
195
  "duet-link-is-external": this.external,
196
196
  "duet-link-is-download": !!this.download,
@@ -34,7 +34,7 @@ export class DuetListItem {
34
34
  * Always the last one in the class.
35
35
  */
36
36
  render() {
37
- return (h(Host, { key: '83029afa5ebc666926eb1572b8ad9a311bdbfcf1', class: {
37
+ return (h(Host, { key: '93429c86b018cb9924bb270b97c4cc6ea77e15e2', class: {
38
38
  "duet-theme-turva": this.theme === "turva",
39
39
  "duet-no-stacking": !this.responsive,
40
40
  "duet-list-item-breakpoint-x-small": this.breakpoint === "x-small",
@@ -42,7 +42,7 @@ export class DuetListItem {
42
42
  "duet-list-item-breakpoint-medium": this.breakpoint === "medium",
43
43
  "duet-list-item-breakpoint-large": this.breakpoint === "large",
44
44
  "duet-list-item-breakpoint-x-large": this.breakpoint === "x-large",
45
- } }, h("dt", { key: '884936458d12b95cd553cd4dc4d8a237cd8e5830' }, h("slot", { key: 'b17473caf7b410acf49f8c68f9ae53b3071397d7', name: "label" })), h("dd", { key: 'e5c6aa8b8d8998d500d27493896a288f71861df6' }, h("slot", { key: '7a6a3b223c394bb3376d7734791cfd439076d5f7', name: "value" }))));
45
+ } }, h("dt", { key: '0cecfd17dc6b92affc741ef0acd7bd0711458349' }, h("slot", { key: '697172f2c68302fa10188e2b403d3cddbd00e87e', name: "label" })), h("dd", { key: 'd9fd6244ee03c35c91e8b22a4ddce2daf7e97c0e' }, h("slot", { key: '52593380dc62cbb4245718eaf4093fa9e1faa45c', name: "value" }))));
46
46
  }
47
47
  static get is() { return "duet-list-item"; }
48
48
  static get encapsulation() { return "shadow"; }
@@ -49,10 +49,10 @@ export class DuetMenuBarButton {
49
49
  * Always the last one in the class.
50
50
  */
51
51
  render() {
52
- return (h(Host, { key: 'e826fdb0b0fb223aea52738971ddbc17f6004833', role: "listitem", onfocus: () => this.setFocus() }, h("button", { key: '350dd3a06df24d5f3a3f3dccb4a4a48b4a43e9f7', ref: button => (this.nativeButton = button), class: {
52
+ return (h(Host, { key: '88f40e311573b2d27899805495afd382b2aad3fb', role: "listitem", onfocus: () => this.setFocus() }, h("button", { key: '08b48017ee3ecd55f15950dfaae5d3ad1793c903', ref: button => (this.nativeButton = button), class: {
53
53
  "duet-menu-bar-button": true,
54
54
  "duet-theme-turva": this.theme === "turva",
55
- }, "aria-controls": this.accessibleControls, "aria-label": this.accessibleLabel, "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined }, this.icon && (h("duet-icon", { key: '96911d1ad50d5b247e27d3e6b5712326434a6354', class: "menu-bar-button-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), h("slot", { key: '004e73cb6a5e6f3126a45d9fa7184f7b424d4f60' }))));
55
+ }, "aria-controls": this.accessibleControls, "aria-label": this.accessibleLabel, "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined }, this.icon && (h("duet-icon", { key: 'd976b8e93df053c47a8a9eb29f110032af9c5296', class: "menu-bar-button-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), h("slot", { key: 'ca7e1fdd2f0076481571c6e68dbbf502b07a6eac' }))));
56
56
  }
57
57
  static get is() { return "duet-menu-bar-button"; }
58
58
  static get encapsulation() { return "shadow"; }
@@ -62,17 +62,17 @@ export class DuetMenuBarDropdown {
62
62
  * Always the last one in the class.
63
63
  */
64
64
  render() {
65
- return (h(Host, { key: 'a8e5a338b3e99161819aca174ed5d7390adcd508', role: "listitem" }, h("div", { key: '3515f7355c3f564bdebbea9a7d1845754ad9d3ce', class: {
65
+ return (h(Host, { key: 'ff056c7f9b32fc195dce24533ee8630abfeaaf3a', role: "listitem" }, h("div", { key: '60e89230ad26c406f88ac6f97b0aa6c6ba3d375e', class: {
66
66
  "duet-menu-bar-dropdown": true,
67
67
  "duet-theme-turva": this.theme === "turva",
68
68
  active: this.open,
69
69
  [`duet-menu-bar-dropdown--slot-${this.getVariant()}`]: true,
70
- } }, h("button", { key: '8ae1babb7852048ac222167858eeb10f2ef8a3ee', ref: element => (this.button = element), "aria-label": this.accessibleLabel, "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
70
+ } }, h("button", { key: 'f17715296f5d32580c607489aa7af48e86f08d76', ref: element => (this.button = element), "aria-label": this.accessibleLabel, "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
71
71
  active: this.open,
72
- }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (h("duet-icon", { key: '2d22eaa31070fc91119b0d15fcae8768764b3038', class: "menu-bar-dropdown-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), h("div", { key: 'fa891196c7c3247a4349fc5db8d59e0500754cb9', class: "label" }, h("slot", { key: '59a1658b0e39bae2f94b8583e7ce787118f13221', name: "label" }), h("duet-icon", { key: '31da6e0c50072b0411a7e9c69d79aa810963d0b8', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), h("div", { key: '9490db9c65cf17be947333aed8562e5a146da13e', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
72
+ }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (h("duet-icon", { key: 'f8c1548339d36aac26609301b610e0f06970d3f4', class: "menu-bar-dropdown-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), h("div", { key: '8c9b33f5e4963f0a44ebfd8c2153e67273e220fe', class: "label" }, h("slot", { key: '384f003e1c584084aa93a1419370fb90ee1dd12b', name: "label" }), h("duet-icon", { key: '09e840b30922276af41659768e0ccdbc2dfd6bfd', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), h("div", { key: 'fe85298a3a0c0bdffba6571a62a4946b884aaca1', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
73
73
  items: true,
74
74
  hidden: !this.open,
75
- } }, h("slot", { key: '31a887188bb39ed4efbe1383940b3b8db7396102' })))));
75
+ } }, h("slot", { key: '826246d0e8db1cc67ad2549613e8ae6dc6a6a6b0' })))));
76
76
  }
77
77
  static get is() { return "duet-menu-bar-dropdown"; }
78
78
  static get encapsulation() { return "shadow"; }
@@ -48,11 +48,11 @@ export class DuetMenuBarDropdownLink {
48
48
  * Always the last one in the class.
49
49
  */
50
50
  render() {
51
- return (h(Host, { key: '9321ae6f770fbc1b00cde317df160db1d32fc53a' }, h("a", { key: '85ef5b95cffcae577699f0a3453b0c3fd24d50e9', class: {
51
+ return (h(Host, { key: 'd38d954b553c14935519a49e02698a1bd32428b4' }, h("a", { key: '2476410fa261eb67053dbd56f01bc335bdbcbd7d', class: {
52
52
  "duet-menu-bar-dropdown-link": true,
53
53
  [`duet-menu-bar-dropdown-link--slot-${this.getVariant()}`]: true,
54
54
  "duet-theme-turva": this.theme === "turva",
55
- }, href: this.href, role: "menuitem", onKeyUp: e => this.handleEscape(e), "aria-label": this.accessibleLabel }, this.icon && (h("duet-icon", { key: '374d983fce34f87bf8c7878ede20b9fae712b8cc', theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), h("slot", { key: '26ababe0542732c2fc589340dda968e3bc574caa' }))));
55
+ }, href: this.href, role: "menuitem", onKeyUp: e => this.handleEscape(e), "aria-label": this.accessibleLabel }, this.icon && (h("duet-icon", { key: 'ba2417251a7dbd8bc7148c65d0aae529f728b274', theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), h("slot", { key: '257327a6af0a87c8565bf75cace2b5657580783a' }))));
56
56
  }
57
57
  static get is() { return "duet-menu-bar-dropdown-link"; }
58
58
  static get encapsulation() { return "shadow"; }
@@ -71,11 +71,11 @@ export class DuetMenuBarItem {
71
71
  */
72
72
  render() {
73
73
  const TagName = this.url ? "a" : "button";
74
- return (h(Host, { key: '19ec1a0c3d191845df0ae30cdb8f9b83c198b79b', role: "listitem" }, h(TagName, { key: '85786500b66990fe9eee940a466ab9cd08eb2103', target: !this.url ? null : this.external ? "_blank" : "_self", ref: element => (this.itemElement = element), class: {
74
+ return (h(Host, { key: 'e9d6de396865bf28beb5717950467d4b0d1f519c', role: "listitem" }, h(TagName, { key: 'f7cbfca8d2781170838b37dfa65714ddbf932145', target: !this.url ? null : this.external ? "_blank" : "_self", ref: element => (this.itemElement = element), class: {
75
75
  "duet-menu-bar-item": true,
76
76
  "duet-theme-turva": this.theme === "turva",
77
77
  active: this.active,
78
- }, href: this.url, role: `${TagName === "a" ? "link" : "button"}`, "aria-current": this.active ? "true" : "false", "aria-label": (this.url && getAccessibleLinkLabel(this)) || this.accessibleLabel, "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined, rel: this.external ? "noopener" : undefined }, this.leadingIcon && (h("duet-icon", { key: 'ba8faece0464d006590733c1ff8437cdd931ca03', class: "leading-icon", size: "auto", name: this.leadingIcon, margin: "none", theme: this.theme, color: "currentColor" })), h("slot", { key: '80207075bb856dbfecb6a91e0a72b13287751da4' }), (this.trailingIcon || this.external) && (h("duet-icon", { key: '7e04921588a4c306f61b8056c7c0a7b83c2c29f8', class: {
78
+ }, href: this.url, role: `${TagName === "a" ? "link" : "button"}`, "aria-current": this.active ? "true" : "false", "aria-label": (this.url && getAccessibleLinkLabel(this)) || this.accessibleLabel, "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined, rel: this.external ? "noopener" : undefined }, this.leadingIcon && (h("duet-icon", { key: '934988ad9b43c8e3691c02a698c0677ea2629faa', class: "leading-icon", size: "auto", name: this.leadingIcon, margin: "none", theme: this.theme, color: "currentColor" })), h("slot", { key: '50cbb5cdd4a117936eea719c9f176667688e74dc' }), (this.trailingIcon || this.external) && (h("duet-icon", { key: 'cfe3ea2669e9d8eb1f14ffa88eacd1c08548f55c', class: {
79
79
  "trailing-icon": !!this.trailingIcon,
80
80
  "trailing-icon-arrow": this.trailingIcon === "action-arrow-down-small",
81
81
  "external-icon": !!this.external,
@@ -33,11 +33,11 @@ export class DuetMenuBarLink {
33
33
  * Always the last one in the class.
34
34
  */
35
35
  render() {
36
- return (h(Host, { key: 'ed2a24c6bdd70f91370a4a70bf22804ce698ca49', role: "listitem" }, h("a", { key: 'f957e2da0344bdd58789bb90151c23b341824d93', class: {
36
+ return (h(Host, { key: '8c3490151abb08fa0f203abfa0d7376b26df086f', role: "listitem" }, h("a", { key: '6b285bf13edb937dc1e7a6e5e6479ae58c9e2578', class: {
37
37
  "duet-menu-bar-link": true,
38
38
  "duet-theme-turva": this.theme === "turva",
39
39
  active: this.active,
40
- }, href: this.href, "aria-current": this.active ? "true" : "false", "aria-label": this.accessibleLabel }, this.icon && (h("duet-icon", { key: 'c6f7c0a4fbc065c7ff132dba57ec468036359582', class: "menu-bar-link-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), h("slot", { key: '73100c0c85e3087896e81c526816b1e92d13b9c3' }))));
40
+ }, href: this.href, "aria-current": this.active ? "true" : "false", "aria-label": this.accessibleLabel }, this.icon && (h("duet-icon", { key: '551b1bb669f59a9db03276cc4bfdebd3c42a8929', class: "menu-bar-link-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), h("slot", { key: '271053e138876c15abe304dcb141122d5d313f1f' }))));
41
41
  }
42
42
  static get is() { return "duet-menu-bar-link"; }
43
43
  static get encapsulation() { return "shadow"; }
@@ -284,7 +284,14 @@
284
284
  }
285
285
 
286
286
  .duet-modal-close {
287
- position: absolute;
287
+ position: relative;
288
+ z-index: 301;
289
+ float: right;
290
+ margin: 8px;
291
+ }
292
+
293
+ .duet-modal-slide-up .duet-modal-close {
294
+ position: sticky;
288
295
  top: 8px;
289
296
  right: 8px;
290
297
  }