@duetds/components 10.7.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 (426) hide show
  1. package/hydrate/index.js +385 -237
  2. package/hydrate/index.mjs +385 -237
  3. package/lib/cjs/{a11y-utils-DmCjy3Q3.js → a11y-utils-DZ42p33K.js} +1 -1
  4. package/lib/cjs/{app-globals-D1tikFob.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 +4 -4
  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 +5 -5
  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 +31 -14
  21. package/lib/cjs/duet-contact-card.cjs.entry.js +6 -6
  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 +4 -4
  31. package/lib/cjs/duet-header_2.cjs.entry.js +3 -3
  32. package/lib/cjs/duet-hero.cjs.entry.js +5 -5
  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 +6 -6
  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 +6 -6
  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-Di-nO8ua.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-uEO1pi2O.js → focus-utils-KpSp5WDp.js} +1 -1
  96. package/lib/cjs/{index-BGRMvA4R.js → index-BP4tQozH.js} +1 -1
  97. package/lib/cjs/{label-CwgdRt0Q.js → label-CjvqwyJR.js} +1 -1
  98. package/lib/cjs/{language-utils-CrB5zNlc.js → language-utils-BCJyRc_q.js} +1 -1
  99. package/lib/cjs/loader.cjs.js +3 -3
  100. package/lib/cjs/{picture-utils-CZhgDlXJ.js → picture-utils-Dp6TiDHy.js} +1 -1
  101. package/lib/cjs/{slot-utils-4v5bqyQh.js → slot-utils-DvtoWHAA.js} +1 -1
  102. package/lib/cjs/{themeable-component-I4SEm6nQ.js → themeable-component-BXqwFhg-.js} +1 -1
  103. package/lib/collection/components/duet-badge/duet-badge.js +2 -2
  104. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +4 -4
  105. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +2 -2
  106. package/lib/collection/components/duet-button/duet-button.css +3 -0
  107. package/lib/collection/components/duet-callout/duet-callout.js +2 -2
  108. package/lib/collection/components/duet-card/duet-card.css +13 -9
  109. package/lib/collection/components/duet-choice/duet-checkmark.js +2 -2
  110. package/lib/collection/components/duet-choice-group/duet-choice-group.js +12 -3
  111. package/lib/collection/components/duet-combobox/duet-combobox-select.js +1 -1
  112. package/lib/collection/components/duet-combobox/duet-combobox.js +29 -11
  113. package/lib/collection/components/duet-contact-card/duet-contact-card.js +2 -2
  114. package/lib/collection/components/duet-date-picker/date-picker-day.js +1 -1
  115. package/lib/collection/components/duet-date-picker/duet-date-picker.js +34 -7
  116. package/lib/collection/components/duet-fieldset/duet-fieldset.js +3 -3
  117. package/lib/collection/components/duet-grid-item/duet-grid-item.js +2 -2
  118. package/lib/collection/components/duet-icon/duet-icon.js +3 -3
  119. package/lib/collection/components/duet-input/duet-input.css +31 -0
  120. package/lib/collection/components/duet-input/duet-input.js +48 -14
  121. package/lib/collection/components/duet-link/duet-link.css +16 -0
  122. package/lib/collection/components/duet-link/duet-link.js +2 -2
  123. package/lib/collection/components/duet-list-item/duet-list-item.js +2 -2
  124. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +2 -2
  125. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +4 -4
  126. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +2 -2
  127. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.js +2 -2
  128. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +2 -2
  129. package/lib/collection/components/duet-modal/duet-modal.css +8 -1
  130. package/lib/collection/components/duet-modal/duet-modal.js +6 -7
  131. package/lib/collection/components/duet-multiselect/duet-multiselect.js +5 -5
  132. package/lib/collection/components/duet-nav/duet-nav.js +1 -1
  133. package/lib/collection/components/duet-notification/duet-notification.js +2 -2
  134. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +3 -3
  135. package/lib/collection/components/duet-number-input/duet-number-input.js +23 -4
  136. package/lib/collection/components/duet-overlay/duet-overlay.js +1 -1
  137. package/lib/collection/components/duet-page-heading/duet-page-heading.js +3 -3
  138. package/lib/collection/components/duet-pagination/duet-pagination.js +11 -11
  139. package/lib/collection/components/duet-panel/duet-panel.js +2 -2
  140. package/lib/collection/components/duet-paragraph/duet-paragraph.js +2 -2
  141. package/lib/collection/components/duet-phone-input/duet-phone-input.js +9 -1
  142. package/lib/collection/components/duet-popup-menu/duet-popup-menu.js +13 -4
  143. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.css +2 -0
  144. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +2 -2
  145. package/lib/collection/components/duet-promo-card/duet-promo-card.js +2 -2
  146. package/lib/collection/components/duet-radio/duet-radio.js +3 -3
  147. package/lib/collection/components/duet-radio-group/duet-radio-group.js +1 -1
  148. package/lib/collection/components/duet-range-slider/duet-range-slider.js +2 -2
  149. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +2 -2
  150. package/lib/collection/components/duet-scrollable/duet-scrollable.js +5 -5
  151. package/lib/collection/components/duet-section-layout/duet-section-layout.js +3 -3
  152. package/lib/collection/components/duet-select/duet-select.js +5 -5
  153. package/lib/collection/components/duet-shaped-image/duet-shaped-image.js +2 -2
  154. package/lib/collection/components/duet-share-chart/duet-share-chart.js +2 -2
  155. package/lib/collection/components/duet-share-chart-item/duet-share-chart-item.js +1 -1
  156. package/lib/collection/components/duet-show-more/duet-show-more.js +2 -2
  157. package/lib/collection/components/duet-slideout/duet-slideout.js +4 -4
  158. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +1 -1
  159. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +2 -2
  160. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +6 -6
  161. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +4 -4
  162. package/lib/collection/components/duet-spacer/duet-spacer.js +1 -1
  163. package/lib/collection/components/duet-spinner/duet-spinner.js +1 -1
  164. package/lib/collection/components/duet-status-icon/duet-status-icon.js +2 -2
  165. package/lib/collection/components/duet-step/duet-step.js +2 -2
  166. package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
  167. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +5 -5
  168. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +4 -4
  169. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +2 -2
  170. package/lib/collection/components/duet-submenu-bar-item/duet-submenu-bar-item.js +1 -1
  171. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +1 -1
  172. package/lib/collection/components/duet-tab/duet-tab.js +2 -2
  173. package/lib/collection/components/duet-tab-group/duet-tab-group.js +4 -4
  174. package/lib/collection/components/duet-table/duet-table.js +2 -2
  175. package/lib/collection/components/duet-teaser/duet-teaser.js +2 -2
  176. package/lib/collection/components/duet-textarea/duet-textarea.css +8 -0
  177. package/lib/collection/components/duet-textarea/duet-textarea.js +35 -6
  178. package/lib/collection/components/duet-toggle/duet-toggle.js +3 -3
  179. package/lib/collection/components/duet-toolbar/duet-toolbar.js +2 -2
  180. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +4 -4
  181. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +2 -2
  182. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.js +3 -3
  183. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +2 -2
  184. package/lib/collection/components/duet-tooltip/duet-tooltip-button.css +6 -0
  185. package/lib/collection/components/duet-tooltip/duet-tooltip-button.js +3 -3
  186. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +3 -3
  187. package/lib/collection/components/duet-tray/duet-tray.js +2 -2
  188. package/lib/collection/components/duet-upload/duet-upload.js +2 -2
  189. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +1 -1
  190. package/lib/collection/components/duet-upload-item/duet-upload-item.js +2 -2
  191. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +1 -1
  192. package/lib/duet/duet.esm.js +1 -1
  193. package/lib/duet/{p-4695398d.entry.js → p-01a6e993.entry.js} +1 -1
  194. package/lib/duet/{p-e3d91f53.entry.js → p-0476dabc.entry.js} +1 -1
  195. package/lib/duet/{p-05a6360b.entry.js → p-06e879d2.entry.js} +1 -1
  196. package/lib/duet/p-0f433f55.entry.js +4 -0
  197. package/lib/duet/{p-5fc88879.entry.js → p-126b3fd0.entry.js} +1 -1
  198. package/lib/duet/p-1566e2ec.entry.js +4 -0
  199. package/lib/duet/{p-a6dc8c7d.entry.js → p-1956dd8e.entry.js} +1 -1
  200. package/lib/duet/{p-8b9ffff4.entry.js → p-1db9e784.entry.js} +1 -1
  201. package/lib/duet/{p-b2f0905a.entry.js → p-1deed1aa.entry.js} +1 -1
  202. package/lib/duet/{p-f264879d.entry.js → p-27894857.entry.js} +1 -1
  203. package/lib/duet/{p-868647de.entry.js → p-2c2e7c9b.entry.js} +1 -1
  204. package/lib/duet/{p-6865e880.entry.js → p-2c465a03.entry.js} +1 -1
  205. package/lib/duet/p-2d780739.entry.js +4 -0
  206. package/lib/duet/{p-9987420d.entry.js → p-2f092aed.entry.js} +1 -1
  207. package/lib/duet/p-304af2e5.entry.js +4 -0
  208. package/lib/duet/{p-0df7094e.entry.js → p-34d16cbb.entry.js} +1 -1
  209. package/lib/duet/p-34ec25cb.entry.js +4 -0
  210. package/lib/duet/{p-430fad4e.entry.js → p-37d5a3c5.entry.js} +1 -1
  211. package/lib/duet/{p-e9a7215b.entry.js → p-3932a89b.entry.js} +1 -1
  212. package/lib/duet/{p-4bc7198d.entry.js → p-3c8d76e2.entry.js} +1 -1
  213. package/lib/duet/{p-9d41df85.entry.js → p-3d454072.entry.js} +1 -1
  214. package/lib/duet/{p-c5c63d0f.entry.js → p-3e66035d.entry.js} +1 -1
  215. package/lib/duet/p-471d4d75.entry.js +4 -0
  216. package/lib/duet/{p-ccaf5c28.entry.js → p-4ddf8009.entry.js} +1 -1
  217. package/lib/duet/{p-047af1e2.entry.js → p-5044e0ed.entry.js} +1 -1
  218. package/lib/duet/{p-c26e2123.entry.js → p-5103d5f4.entry.js} +1 -1
  219. package/lib/duet/{p-f959ca52.entry.js → p-51693a7c.entry.js} +1 -1
  220. package/lib/duet/{p-b58cfa18.entry.js → p-54bfe081.entry.js} +1 -1
  221. package/lib/duet/p-588e75cd.entry.js +4 -0
  222. package/lib/duet/{p-feae1702.entry.js → p-5d70e259.entry.js} +1 -1
  223. package/lib/duet/p-618cfeef.entry.js +4 -0
  224. package/lib/duet/{p-8ea85c31.entry.js → p-6449b1cc.entry.js} +1 -1
  225. package/lib/duet/{p-a944ffff.entry.js → p-6502a274.entry.js} +1 -1
  226. package/lib/duet/p-69a72f22.entry.js +4 -0
  227. package/lib/duet/{p-d78923f9.entry.js → p-6e4536e3.entry.js} +1 -1
  228. package/lib/duet/p-6ed52261.entry.js +4 -0
  229. package/lib/duet/{p-b4a1c719.entry.js → p-712adcec.entry.js} +1 -1
  230. package/lib/duet/{p-c49a72ad.entry.js → p-79afa773.entry.js} +1 -1
  231. package/lib/duet/p-7d61dc62.entry.js +4 -0
  232. package/lib/duet/p-7f9de2a6.entry.js +4 -0
  233. package/lib/duet/{p-f17438c7.entry.js → p-870d3c78.entry.js} +1 -1
  234. package/lib/duet/{p-017873ec.entry.js → p-88bf42dc.entry.js} +1 -1
  235. package/lib/duet/{p-2013545d.entry.js → p-88e65283.entry.js} +1 -1
  236. package/lib/duet/{p-8ad4bb4c.entry.js → p-8aaf283d.entry.js} +1 -1
  237. package/lib/duet/p-8d939074.entry.js +4 -0
  238. package/lib/duet/{p-84ed366e.entry.js → p-908fca79.entry.js} +1 -1
  239. package/lib/duet/{p-1358a396.entry.js → p-93080f2d.entry.js} +1 -1
  240. package/lib/duet/{p-b9e97305.entry.js → p-94d057ea.entry.js} +1 -1
  241. package/lib/duet/{p-8da66626.entry.js → p-99367980.entry.js} +1 -1
  242. package/lib/duet/{p-2f0f3a4a.entry.js → p-9a248faf.entry.js} +1 -1
  243. package/lib/duet/p-9d405b35.entry.js +4 -0
  244. package/lib/duet/{p-058fcc72.entry.js → p-9ed154f5.entry.js} +1 -1
  245. package/lib/duet/{p-DtprEjjN.js → p-B1GzOTNZ.js} +1 -1
  246. package/lib/duet/p-BQTM1aqo.js +4 -0
  247. package/lib/duet/{p-D4MpGrUR.js → p-CdcBxXLd.js} +1 -1
  248. package/lib/duet/p-CirNV9Vh.js +4 -0
  249. package/lib/duet/{p-B0XOGsB6.js → p-Cj9zQLn2.js} +1 -1
  250. package/lib/duet/p-D3ladndz.js +4 -0
  251. package/lib/duet/p-D4pJQwPW.js +4 -0
  252. package/lib/duet/p-Dbe-q7B5.js +4 -0
  253. package/lib/duet/{p-DSNAI2Lx.js → p-DmLE9-rw.js} +1 -1
  254. package/lib/duet/p-DoEOuTZj.js +4 -0
  255. package/lib/duet/{p-420df0aa.entry.js → p-a2514ad4.entry.js} +1 -1
  256. package/lib/duet/{p-a2f7ef35.entry.js → p-a4a3febe.entry.js} +1 -1
  257. package/lib/duet/p-a517cdce.entry.js +4 -0
  258. package/lib/duet/{p-0acf9bcf.entry.js → p-a70bb08d.entry.js} +1 -1
  259. package/lib/duet/{p-1498e4a8.entry.js → p-aa2c3e0a.entry.js} +1 -1
  260. package/lib/duet/{p-0c42cc61.entry.js → p-af7b2954.entry.js} +1 -1
  261. package/lib/duet/{p-1ec31f22.entry.js → p-b37d4985.entry.js} +1 -1
  262. package/lib/duet/{p-fb59f80d.entry.js → p-b4cf5f14.entry.js} +1 -1
  263. package/lib/duet/{p-ebe55a34.entry.js → p-b6233e75.entry.js} +1 -1
  264. package/lib/duet/{p-07d43c60.entry.js → p-b97098a6.entry.js} +1 -1
  265. package/lib/duet/{p-aebcf484.entry.js → p-bd0263e4.entry.js} +1 -1
  266. package/lib/duet/{p-69bcb076.entry.js → p-beaa4612.entry.js} +1 -1
  267. package/lib/duet/{p-a2106abd.entry.js → p-c15c8dd2.entry.js} +1 -1
  268. package/lib/duet/{p-b7351bfd.entry.js → p-c223cd3e.entry.js} +1 -1
  269. package/lib/duet/{p-b7bb7472.entry.js → p-c35ae5a0.entry.js} +1 -1
  270. package/lib/duet/{p-b5204ec2.entry.js → p-c435bb67.entry.js} +1 -1
  271. package/lib/duet/p-c6e3723f.entry.js +4 -0
  272. package/lib/duet/{p-a62e6d8d.entry.js → p-c7b32952.entry.js} +1 -1
  273. package/lib/duet/p-c95669be.entry.js +4 -0
  274. package/lib/duet/{p-9dee0205.entry.js → p-c987a644.entry.js} +1 -1
  275. package/lib/duet/p-c9b8c2ba.entry.js +4 -0
  276. package/lib/duet/{p-3ce04abc.entry.js → p-c9bdf927.entry.js} +1 -1
  277. package/lib/duet/{p-b3a7ef62.entry.js → p-cdf0fb4c.entry.js} +1 -1
  278. package/lib/duet/p-d069edf1.entry.js +4 -0
  279. package/lib/duet/p-ddafe27d.entry.js +4 -0
  280. package/lib/duet/{p-fb0f6212.entry.js → p-dfdec452.entry.js} +1 -1
  281. package/lib/duet/{p-f89da74c.entry.js → p-e0f729ad.entry.js} +1 -1
  282. package/lib/duet/{p-bef7eed7.entry.js → p-e32af858.entry.js} +1 -1
  283. package/lib/duet/{p-68a9ffb5.entry.js → p-e353daaf.entry.js} +1 -1
  284. package/lib/duet/p-e5dbac7a.entry.js +4 -0
  285. package/lib/duet/{p-f647f09e.entry.js → p-ec2dcb1b.entry.js} +1 -1
  286. package/lib/duet/{p-0ab559fb.entry.js → p-ed7fbc44.entry.js} +1 -1
  287. package/lib/duet/{p-76e2c659.entry.js → p-ef6ce9dc.entry.js} +1 -1
  288. package/lib/duet/{p-2b17c517.entry.js → p-fcb9c0db.entry.js} +1 -1
  289. package/lib/duet/{p-e78af675.entry.js → p-fe821e46.entry.js} +1 -1
  290. package/lib/duet/p-qboSQpUe.js +4 -0
  291. package/lib/esm/{a11y-utils-DZqe1lDK.js → a11y-utils-DbDY4hy4.js} +1 -1
  292. package/lib/esm/{app-globals-Byl9AdI1.js → app-globals-COfbcvxE.js} +1 -1
  293. package/lib/esm/duet-action-button.entry.js +3 -3
  294. package/lib/esm/duet-alert.entry.js +4 -4
  295. package/lib/esm/duet-badge.entry.js +6 -6
  296. package/lib/esm/duet-banner.entry.js +4 -4
  297. package/lib/esm/duet-breadcrumb.entry.js +6 -6
  298. package/lib/esm/duet-breadcrumbs.entry.js +5 -5
  299. package/lib/esm/duet-button_2.entry.js +5 -5
  300. package/lib/esm/duet-callout.entry.js +5 -5
  301. package/lib/esm/duet-caption_4.entry.js +10 -10
  302. package/lib/esm/duet-card.entry.js +5 -5
  303. package/lib/esm/duet-checkbox.entry.js +3 -3
  304. package/lib/esm/duet-checkmark.entry.js +4 -4
  305. package/lib/esm/duet-chip.entry.js +3 -3
  306. package/lib/esm/duet-choice_2.entry.js +16 -7
  307. package/lib/esm/duet-collapsible.entry.js +3 -3
  308. package/lib/esm/duet-combobox.entry.js +31 -14
  309. package/lib/esm/duet-contact-card.entry.js +6 -6
  310. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  311. package/lib/esm/duet-date-picker.entry.js +17 -13
  312. package/lib/esm/duet-divider_2.entry.js +3 -3
  313. package/lib/esm/duet-editable-table_3.entry.js +8 -8
  314. package/lib/esm/duet-empty-state.entry.js +2 -2
  315. package/lib/esm/duet-fieldset.entry.js +6 -6
  316. package/lib/esm/duet-file-chooser.entry.js +2 -2
  317. package/lib/esm/duet-footer.entry.js +4 -4
  318. package/lib/esm/duet-grid_2.entry.js +4 -4
  319. package/lib/esm/duet-header_2.entry.js +3 -3
  320. package/lib/esm/duet-hero.entry.js +5 -5
  321. package/lib/esm/duet-icon.entry.js +5 -5
  322. package/lib/esm/duet-indicator.entry.js +3 -3
  323. package/lib/esm/duet-input_2.entry.js +33 -19
  324. package/lib/esm/duet-layout.entry.js +2 -2
  325. package/lib/esm/duet-list_2.entry.js +4 -4
  326. package/lib/esm/duet-menu-bar-button.entry.js +4 -4
  327. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +4 -4
  328. package/lib/esm/duet-menu-bar-dropdown.entry.js +6 -6
  329. package/lib/esm/duet-menu-bar-item.entry.js +7 -7
  330. package/lib/esm/duet-menu-bar-link.entry.js +4 -4
  331. package/lib/esm/duet-menu-bar.entry.js +3 -3
  332. package/lib/esm/duet-modal.entry.js +12 -13
  333. package/lib/esm/duet-multiselect.entry.js +10 -10
  334. package/lib/esm/duet-nav.entry.js +3 -3
  335. package/lib/esm/duet-notification_2.entry.js +9 -9
  336. package/lib/esm/duet-number-input.entry.js +8 -8
  337. package/lib/esm/duet-overlay.entry.js +3 -3
  338. package/lib/esm/duet-page-heading.entry.js +6 -6
  339. package/lib/esm/duet-pagination_2.entry.js +16 -16
  340. package/lib/esm/duet-panel.entry.js +4 -4
  341. package/lib/esm/duet-phone-input.entry.js +13 -5
  342. package/lib/esm/duet-popup-menu_2.entry.js +22 -13
  343. package/lib/esm/duet-progress.entry.js +3 -3
  344. package/lib/esm/duet-promo-card.entry.js +6 -6
  345. package/lib/esm/duet-radio_2.entry.js +7 -7
  346. package/lib/esm/duet-range-slider.entry.js +6 -6
  347. package/lib/esm/duet-scrollable_3.entry.js +15 -15
  348. package/lib/esm/duet-section-layout.entry.js +4 -4
  349. package/lib/esm/duet-select.entry.js +9 -9
  350. package/lib/esm/duet-shaped-image.entry.js +4 -4
  351. package/lib/esm/duet-share-chart-item.entry.js +2 -2
  352. package/lib/esm/duet-share-chart.entry.js +6 -6
  353. package/lib/esm/duet-show-more.entry.js +5 -5
  354. package/lib/esm/duet-slideout-lang.entry.js +4 -4
  355. package/lib/esm/duet-slideout-link.entry.js +7 -7
  356. package/lib/esm/duet-slideout-panel-dropdown.entry.js +6 -6
  357. package/lib/esm/duet-slideout-panel.entry.js +11 -11
  358. package/lib/esm/duet-slideout.entry.js +10 -10
  359. package/lib/esm/duet-status-icon.entry.js +3 -3
  360. package/lib/esm/duet-step_2.entry.js +6 -6
  361. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +4 -4
  362. package/lib/esm/duet-submenu-bar-dropdown.entry.js +6 -6
  363. package/lib/esm/duet-submenu-bar-item.entry.js +6 -6
  364. package/lib/esm/duet-submenu-bar-link.entry.js +3 -3
  365. package/lib/esm/duet-submenu-bar.entry.js +7 -7
  366. package/lib/esm/duet-teaser.entry.js +6 -6
  367. package/lib/esm/duet-textarea.entry.js +20 -11
  368. package/lib/esm/duet-toggle.entry.js +8 -8
  369. package/lib/esm/duet-toolbar-dropdown-link.entry.js +4 -4
  370. package/lib/esm/duet-toolbar-dropdown.entry.js +6 -6
  371. package/lib/esm/duet-toolbar-item.entry.js +8 -8
  372. package/lib/esm/duet-toolbar-link.entry.js +4 -4
  373. package/lib/esm/duet-toolbar.entry.js +4 -4
  374. package/lib/esm/duet-tooltip-button_2.entry.js +10 -10
  375. package/lib/esm/duet-tooltip.entry.js +5 -5
  376. package/lib/esm/duet-tray.entry.js +5 -5
  377. package/lib/esm/duet-upload-aria-status.entry.js +2 -2
  378. package/lib/esm/duet-upload-item.entry.js +6 -6
  379. package/lib/esm/duet-visually-hidden.entry.js +2 -2
  380. package/lib/esm/duet.js +4 -4
  381. package/lib/esm/{errorcodes.utils-KA3z1KuW.js → errorcodes.utils-0XnfYFAn.js} +1 -1
  382. package/lib/esm/{floating-ui.dom.browser.min-B_NkY9T0.js → floating-ui.dom.browser.min-BQTM1aqo.js} +83 -1
  383. package/lib/esm/{focus-utils-id9x3opi.js → focus-utils-BwoMMpkj.js} +1 -1
  384. package/lib/esm/{index-D4MpGrUR.js → index-CdcBxXLd.js} +1 -1
  385. package/lib/esm/{label-Caev3m-F.js → label-D835wXCb.js} +1 -1
  386. package/lib/esm/{language-utils-DTyUbpD-.js → language-utils-C-lpMyP9.js} +1 -1
  387. package/lib/esm/loader.js +4 -4
  388. package/lib/esm/{picture-utils-4PMNZDR2.js → picture-utils-Cl2qK3GJ.js} +1 -1
  389. package/lib/esm/{slot-utils-BhEk4zKY.js → slot-utils-BSS0Em_Z.js} +1 -1
  390. package/lib/esm/{themeable-component-B_d7Klmd.js → themeable-component-DQtSOD4i.js} +1 -1
  391. package/lib/types/components/duet-combobox/duet-combobox.d.ts +2 -0
  392. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +5 -1
  393. package/lib/types/components/duet-input/duet-input.d.ts +11 -1
  394. package/lib/types/components/duet-number-input/duet-number-input.d.ts +4 -0
  395. package/lib/types/components/duet-phone-input/duet-phone-input.d.ts +1 -0
  396. package/lib/types/components/duet-textarea/duet-textarea.d.ts +8 -1
  397. package/lib/types/components.d.ts +48 -10
  398. package/package.json +5 -5
  399. package/lib/duet/p-05b5ef84.entry.js +0 -4
  400. package/lib/duet/p-10baba94.entry.js +0 -4
  401. package/lib/duet/p-16d5dd2c.entry.js +0 -4
  402. package/lib/duet/p-2265c46a.entry.js +0 -4
  403. package/lib/duet/p-2394b3cd.entry.js +0 -4
  404. package/lib/duet/p-453001ea.entry.js +0 -4
  405. package/lib/duet/p-4e028274.entry.js +0 -4
  406. package/lib/duet/p-5be103d0.entry.js +0 -4
  407. package/lib/duet/p-5e5b6dc7.entry.js +0 -4
  408. package/lib/duet/p-71da8fbe.entry.js +0 -4
  409. package/lib/duet/p-7f5387dd.entry.js +0 -4
  410. package/lib/duet/p-940a87e7.entry.js +0 -4
  411. package/lib/duet/p-99550717.entry.js +0 -4
  412. package/lib/duet/p-B44ykle6.js +0 -4
  413. package/lib/duet/p-B5SMAn1G.js +0 -4
  414. package/lib/duet/p-BAiGBGTO.js +0 -4
  415. package/lib/duet/p-BWz_ChlU.js +0 -4
  416. package/lib/duet/p-B_NkY9T0.js +0 -4
  417. package/lib/duet/p-Bnup2-sN.js +0 -4
  418. package/lib/duet/p-C6rGA5IU.js +0 -4
  419. package/lib/duet/p-a2a2f775.entry.js +0 -4
  420. package/lib/duet/p-b69946d4.entry.js +0 -4
  421. package/lib/duet/p-bb7fa0cf.entry.js +0 -4
  422. package/lib/duet/p-bffae8f6.entry.js +0 -4
  423. package/lib/duet/p-c9a12663.entry.js +0 -4
  424. package/lib/duet/p-d8383f1a.entry.js +0 -4
  425. package/lib/duet/p-ef340dc6.entry.js +0 -4
  426. package/lib/duet/p-f61ebeb1.entry.js +0 -4
@@ -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: '1cac563de2598ea4f66a666a8e9ba85d74ef4d29', 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: '0ff450feb862488c1bfaf626a234559904f301a1', 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: 'b7809fbe9217be4d6986d8124e5d6739e8e5c506', 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: 'b359df218ae6b2e1240b125d8d81a3555f57b33f' }, h("slot", { key: '778f57296c84f300810462d15a42eeed8a1ac03a', name: "label" })), h("dd", { key: 'f28fc64caa353dbc6e042a094ebad697146a0ffa' }, h("slot", { key: '734ef1bfe403082bc681b151d842e45c4341d3cb', 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: 'c3137b7868b438a2d3f0769ecfcd876c39b6b762', role: "listitem", onfocus: () => this.setFocus() }, h("button", { key: '2a1b919990d487b374479d4d71ab1ab271c52d63', 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: 'ccf0897bfd45251012c0e9f66d492cd2c51521f8', class: "menu-bar-button-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), h("slot", { key: '1d5c21e0880c7cac3313ada7623ba81e2eea9bdf' }))));
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: '7c841d8d215853a62a92f5730eed29b2b7552e5f', role: "listitem" }, h("div", { key: '7021c554d6aafa114e225ebd328c9d1aa400a82f', 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: 'ed8b6ec296f51a222f37a11a9f979df8efb83525', ref: element => (this.button = element), "aria-label": this.accessibleLabel, "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
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: '0cb68c07d1b89f968757595fde07aff18be326a3', class: "menu-bar-dropdown-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), h("div", { key: '014d839c7407fe48b8139e8d5b4b61fff7e2f9de', class: "label" }, h("slot", { key: '45f00327bfdb72f879469ef815cf73f044d331d0', name: "label" }), h("duet-icon", { key: 'fc550998f3a736271007766634b153838849de45', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), h("div", { key: 'fbb77489a38cdd3c7e6edb70659898600db01a14', 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: 'f943770b922349bf805d0aaaadf47e70d0db10d4' })))));
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: '9aec16ee648442b0ffb731e612cc0a051f849e06' }, h("a", { key: 'a879395faece3c5211eea56c497c45908969889d', 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: '2e6bed63404ffa961753c38929f9726240d8daf2', theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), h("slot", { key: 'eecdd8e7217d2eaf1d08438b17a18a3a377b8332' }))));
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: '132d5bd2465b0d1d847c544579ff69c5229faf9a', role: "listitem" }, h(TagName, { key: '486539812ce02259d1ee5e1366aa019371e59e5c', 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: '9b6d8d303debd7037dde3c8af5780e937a180ed9', class: "leading-icon", size: "auto", name: this.leadingIcon, margin: "none", theme: this.theme, color: "currentColor" })), h("slot", { key: 'd7a37a3a78860c03d9d0876f29382dbb066accf1' }), (this.trailingIcon || this.external) && (h("duet-icon", { key: 'd0d12aa8778d8be71cb4323758932176c6fb48c7', 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: '858334fb783a2f4df99678148750056417235872', role: "listitem" }, h("a", { key: '7429380cb4dd0764af78fb92f6036edcbc503fcb', 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: 'cbcbea291b31e18a928e0bc5ba3d9fade0a5be18', class: "menu-bar-link-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), h("slot", { key: 'e3bdab3464edebc3009bb50436c82a94700b68e6' }))));
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
  }
@@ -338,14 +338,13 @@ export class DuetModal {
338
338
  var _a, _b;
339
339
  const iconColor = postfixTheme("primary", this.theme);
340
340
  const closeColor = postfixTheme("secondary", this.theme);
341
- const closingButton = (h("div", { key: 'ec2c3a88ed4381cdfe04d5e09c6973f50926938b', class: "duet-modal-close" }, h("duet-button", { key: '3ba54ca9d928a311351d7daccfe20c1a94dcb6a3', ref: button => (this.buttonEl = button), variation: "plain", accessibleLabel: this.accessibleCloseLabel, color: closeColor, iconSize: "large", icon: "navigation-close", iconOnly: true, margin: "none", theme: this.theme, onClick: ev => this.closeModal(ev), fixed: true })));
342
- return (h("div", { key: '44ad4e8bf6516da0e6350649f8e4cae009f7cf07', ref: modal => (this.modalEl = modal), "aria-label": (_a = this.accessibleLabel) !== null && _a !== void 0 ? _a : this.heading, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-describedby": this.accessibleDescribedBy, role: this.variation === "loader" ? "alert" : "dialog", "aria-modal": this.isSafariBrowser ? false : true, tabindex: "-1", class: {
341
+ return (h("div", { key: 'b2154a3b1549e84c7bdbc822f5ac8a38e8504a35', ref: modal => (this.modalEl = modal), "aria-label": (_a = this.accessibleLabel) !== null && _a !== void 0 ? _a : this.heading, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-describedby": this.accessibleDescribedBy, role: this.variation === "loader" ? "alert" : "dialog", "aria-modal": this.isSafariBrowser ? undefined : "true", tabindex: "-1", class: {
343
342
  "duet-modal-container": true,
344
343
  "duet-theme-turva": this.theme === "turva",
345
344
  "duet-modal-active": this.open,
346
345
  "duet-modal-slide-up": this.variation === "slide-up",
347
346
  "duet-modal-has-sticky-header": this.hasStickyHeader,
348
- } }, h("duet-overlay", { key: 'd2eb31d5195cced7a59ca29dbd2e2f0ef84e2655', "z-index": "-1", visible: this.open, variation: this.variation === "loader" ? "white" : "default" }), h("div", { key: '4703b85e9d49409f26720fe00b270370afa97f76', ref: modalInner => (this.modalInnerEl = modalInner), class: {
347
+ } }, h("duet-overlay", { key: '36662031598a265fddec54ebcdd7d4d94e7b8625', "z-index": "-1", visible: this.open, variation: this.variation === "loader" ? "white" : "default" }), h("div", { key: '68c59b43722015abb8936e559cdac7dd6aef6fe7', ref: modalInner => (this.modalInnerEl = modalInner), class: {
349
348
  "duet-modal-inner": true,
350
349
  [this.size]: true,
351
350
  "duet-modal-slide-up": this.variation === "slide-up",
@@ -356,22 +355,22 @@ export class DuetModal {
356
355
  this.closeModal(e);
357
356
  }
358
357
  }
359
- } }, h("div", { key: 'caa7a84911505b70ffe1e15ea73bd4489eac49e2', ref: modalContentEl => (this.modalContentEl = modalContentEl), "aria-live": this.accessibleAnnounceChanges === "all" ? "polite" : null, "aria-atomic": this.accessibleAnnounceChanges === "all" ? "true" : null, class: {
358
+ } }, h("div", { key: '01ea6b1e9120c277f00937fdbcd41f8b7c956700', ref: modalContentEl => (this.modalContentEl = modalContentEl), "aria-live": this.accessibleAnnounceChanges === "all" ? "polite" : null, "aria-atomic": this.accessibleAnnounceChanges === "all" ? "true" : null, class: {
360
359
  "duet-modal": true,
361
360
  "duet-modal-has-sticky-header": this.hasStickyHeader,
362
361
  [this.size]: true,
363
362
  [this.variation]: true,
364
- } }, this.gutterSize !== "none" && !this.hasStickyHeader && h("duet-spacer", { key: 'e9d16355dbf2de5937a1a3bf5fa7e27833270238' }), this.hasStickyHeader ? (h("div", { class: "duet-modal-sticky-header" }, closingButton, h("slot", { name: "sticky-header" }))) : (closingButton), h("div", { key: '9d9ef9ea5b47d2107b49066c1d156c886fb6f972', class: {
363
+ } }, h("div", { key: '485e05e90114ba206285807ef6e5b0b704137254', class: "duet-modal-close" }, h("duet-button", { key: 'add58ae26c95fe8d4f1f1f9b1320de78e4a08c02', ref: button => (this.buttonEl = button), variation: "plain", accessibleLabel: this.accessibleCloseLabel, color: closeColor, iconSize: "large", icon: "navigation-close", iconOnly: true, margin: "none", theme: this.theme, onClick: ev => this.closeModal(ev), fixed: true })), this.hasStickyHeader && (h("div", { key: 'a00dc00eca76a103b3b8e144beac8df904bd2a27', class: "duet-modal-sticky-header" }, h("slot", { key: 'd199b48814c854359c3792f967e6e9187bf9d2db', name: "sticky-header" }))), this.gutterSize !== "none" && !this.hasStickyHeader && h("duet-spacer", { key: 'b175ca528a46801e52bbf75a7fb35c4736a986ba' }), h("div", { key: '524aa776ad9bb4bbf48e921d0c71ca25eb71e28d', class: {
365
364
  "duet-modal-body": true,
366
365
  "duet-modal-gutter-none": this.gutterSize === "none",
367
366
  "duet-modal-gutter-small": this.gutterSize === "small",
368
367
  "duet-modal-gutter-medium": this.gutterSize === "medium",
369
368
  "duet-modal-gutter-large": this.gutterSize === "large",
370
- }, "aria-live": this.accessibleAnnounceChanges === "heading" ? "polite" : null, "aria-atomic": this.accessibleAnnounceChanges === "heading" ? "true" : null }, h("div", { key: 'be0b90e2577c2760b6f95200a917649cd6b35287', class: "duet-modal-header" }, h("span", { key: 'e2dd5ce0f9609e9fc096ad49e9d6d0ee2a01699d', class: "duet-modal-inner-slot-top" }, h("slot", { key: 'dbc67d9fc55310cabc65484b4518b8cadcfef874', name: "top" })), this.icon && h("duet-icon", { key: '095d2b5e9b29cf0a849711b7472d424731d9d36c', name: this.icon, size: "xx-large", color: this.color || iconColor }), this.heading && (h("duet-heading", { key: '3cdcdd876b89be930fb67d715a0873f9305b787b', "visual-level": (_b = this.headingVisualLevel) !== null && _b !== void 0 ? _b : this.headingLevel, level: this.headingLevel, theme: this.theme }, this.heading))), this.variation === "loader" && (h("div", { key: '3d5cd64a2ed94e45180836515083f8885295c4d6', class: "duet-modal-spinner" }, h("duet-spinner", { key: '693a9b5947855ff18c0f3089a3b437ccb543d9d0', size: "large", color: postfixTheme("primary", this.theme) }))), h("div", { key: '9b07821006bf82a6707579789376d42febf652b8', "aria-live": this.variation === "loader"
369
+ }, "aria-live": this.accessibleAnnounceChanges === "heading" ? "polite" : null, "aria-atomic": this.accessibleAnnounceChanges === "heading" ? "true" : null }, h("div", { key: '90be2af349ec10c2d5ae55be8e74e50cd8032e30', class: "duet-modal-header" }, h("span", { key: '6150e88c970678165ee100eedad0938196b5e0f3', class: "duet-modal-inner-slot-top" }, h("slot", { key: '171a28abe15da7ae258d411b1a552b181b825749', name: "top" })), this.icon && h("duet-icon", { key: 'cf52aeafd15ebfc0e71eb8573a08330bfafd6cbc', name: this.icon, size: "xx-large", color: this.color || iconColor }), this.heading && (h("duet-heading", { key: '706973f2ff5fa09a241907a48ec001fb6df3efe2', "visual-level": (_b = this.headingVisualLevel) !== null && _b !== void 0 ? _b : this.headingLevel, level: this.headingLevel, theme: this.theme }, this.heading))), this.variation === "loader" && (h("div", { key: '8670545fd3e1ada7916a39dd3617ebf7797fa6ce', class: "duet-modal-spinner" }, h("duet-spinner", { key: 'ae2f19a4913255f1ce6263e0003482bb72b6bfae', size: "large", color: postfixTheme("primary", this.theme) }))), h("div", { key: '8e1a2ca420d09f50e2cea2104aade7d9e7062ff9', "aria-live": this.variation === "loader"
371
370
  ? "assertive"
372
371
  : this.accessibleAnnounceChanges === "body"
373
372
  ? "polite"
374
- : null, "aria-atomic": this.accessibleAnnounceChanges === "body" ? "true" : null, class: "duet-modal-inner-slot-default", ref: el => (this.slotContainerEl = el) }, h("slot", { key: '0008beb6b6f6bac06c6ce3dddb661157dfedf4e1' })))))));
373
+ : null, "aria-atomic": this.accessibleAnnounceChanges === "body" ? "true" : null, class: "duet-modal-inner-slot-default", ref: el => (this.slotContainerEl = el) }, h("slot", { key: '07830d94eeb317030caaa0cd706ebf1ef6a8e578' })))))));
375
374
  }
376
375
  static get is() { return "duet-modal"; }
377
376
  static get encapsulation() { return "shadow"; }
@@ -273,23 +273,23 @@ export class DuetMultiselect {
273
273
  */
274
274
  render() {
275
275
  var _a;
276
- return (h(Host, { key: '4b8d1905f6d83802479254ed818eddc225a07884', class: {
276
+ return (h(Host, { key: '0710656376962142671b6c65a3d0c8fa0bfdde17', class: {
277
277
  "duet-m-0": this.margin === "none",
278
278
  "duet-expand": this.expand,
279
- } }, h("div", { key: '5448159c21e1975424169c66faa9442471e97390', class: {
279
+ } }, h("div", { key: '690b2414fdae1630e4a55a9ce2e9f5dc540cc435', class: {
280
280
  "duet-multiselect-container": true,
281
281
  "duet-label-hidden": this.labelHidden,
282
282
  "duet-theme-turva": this.theme === "turva",
283
283
  "duet-input-top-caption-shown": this.isCaptionVisible,
284
284
  "has-error": !!this.error,
285
- }, onKeyDown: (e) => this.onMultiselectKeyDown(e) }, h(DuetInternalLabel, { key: '572ae7df62eeb7870c958fa8812a032f685252c1', theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: this.identifier }, this.label), this.tooltip && (h("duet-tooltip", { key: 'd6ce07a6fe3994af5ff7e8639febe7380738853e', class: "duet-multiselect-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("slot", { key: 'cabbf0070861de762ff0e7b1fa390fc021c6e56c', name: "tooltip" }), this.caption && (h("duet-caption", { key: '501998a95ac97a8e41aff3f77bb3caef192dcc07', id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { key: 'c32972b8bff8afd700203c2906a1b49b7656555f', class: "duet-multiselect-wrapper" }, h("button", { key: '07e7b36d4264aaff222086f518aeeef2c1f9e7d1', id: this.identifier, ref: el => (this.multiselectElement = el), class: { "duet-multiselect": true, "duet-multiselect-active": this.checkboxesVisible }, tabindex: "0", onClick: () => this.toggleCheckboxes(), onFocus: e => this.onFocus(e), onBlur: e => this.onBlur(e), role: "combobox", "aria-expanded": this.checkboxesVisible ? "true" : "false", "aria-haspopup": "listbox", "aria-labelledby": this.labelId, "aria-describedby": this.getDescribedBy(), "aria-owns": `${this.identifier}-checkboxes`, onKeyDown: (e) => this.onMultiselectInputKeyDown(e), disabled: this.disabled }, h("span", { key: 'aaa61bce02a50eca851f48da7ee461474bbae0f3', role: "textbox", "aria-readonly": "true", "aria-multiline": "false", "aria-autocomplete": "none", "aria-controls": `${this.identifier}-checkboxes`, "aria-label": this.placeholderLabel[this.language], class: "duet-multiselect-label" }, this.placeholder), this.value && this.value.length > 0 && (h("span", { key: 'b869479691f3a394d89f8720efd7868c13f5fbec', class: "duet-multiselect-badge" }, this.value.length, h("duet-visually-hidden", { key: 'fcbb5b6dd4b0dc6f4abae50aec12eb21da92d0f4' }, this.selectedLangObject[this.language], ",", " ", Array.isArray(this.value) ? this.value.map(item => item.label).join(", ") : ""))), h("svg", { key: '68dc4a3ad25722f3a39628147244ce459a17d6c5', class: { "duet-multiselect-icon": true, "duet-multiselect-icon--rotate": this.checkboxesVisible }, fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '8aeddd5a385ca37e54869993b90bd1838449d526', d: "m12 18.999c-.4 0-.776-.156-1.059-.438l-10.721-10.72c-.142-.142-.22-.33-.22-.531 0-.2.078-.389.22-.53.142-.142.33-.22.53-.22s.389.078.53.22l10.72 10.719 10.72-10.719c.142-.142.33-.22.53-.22s.389.078.53.22c.142.142.22.33.22.53s-.078.389-.22.53l-10.72 10.72c-.282.283-.659.439-1.06.439z" }))), h("div", { key: 'f46a4bb216b778776acfa1aff5a9867afa236789', id: `${this.identifier}-checkboxes`, role: "listbox", class: {
285
+ }, onKeyDown: (e) => this.onMultiselectKeyDown(e) }, h(DuetInternalLabel, { key: 'c469c416d065e20353425c33cc235e356a9a9ac0', theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: this.identifier }, this.label), this.tooltip && (h("duet-tooltip", { key: 'e586ad708e105267607b2e41b36937c4df33bdf4', class: "duet-multiselect-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("slot", { key: '86ac648e522c69ed6f761940c536cbc8c6d89c37', name: "tooltip" }), this.caption && (h("duet-caption", { key: '084247996400fa2100ec5aae3ccf81e46a95488b', id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { key: '2e769d052bb05ed162c5a4d5c855b71ec543aa22', class: "duet-multiselect-wrapper" }, h("button", { key: '221b22293ebe302ae76087c3808a13240bab1bae', id: this.identifier, ref: el => (this.multiselectElement = el), class: { "duet-multiselect": true, "duet-multiselect-active": this.checkboxesVisible }, tabindex: "0", onClick: () => this.toggleCheckboxes(), onFocus: e => this.onFocus(e), onBlur: e => this.onBlur(e), role: "combobox", "aria-expanded": this.checkboxesVisible ? "true" : "false", "aria-haspopup": "listbox", "aria-labelledby": this.labelId, "aria-describedby": this.getDescribedBy(), "aria-owns": `${this.identifier}-checkboxes`, onKeyDown: (e) => this.onMultiselectInputKeyDown(e), disabled: this.disabled }, h("span", { key: '8d39dc569c01d388470dd25e1e51099add2b7bdc', role: "textbox", "aria-readonly": "true", "aria-multiline": "false", "aria-autocomplete": "none", "aria-controls": `${this.identifier}-checkboxes`, "aria-label": this.placeholderLabel[this.language], class: "duet-multiselect-label" }, this.placeholder), this.value && this.value.length > 0 && (h("span", { key: '6b646cb3cb2d53c003ab4bd0fb12373784bcff15', class: "duet-multiselect-badge" }, this.value.length, h("duet-visually-hidden", { key: '2f19ae5e9cef683c2c776e3a52cc6308ee25fe22' }, this.selectedLangObject[this.language], ",", " ", Array.isArray(this.value) ? this.value.map(item => item.label).join(", ") : ""))), h("svg", { key: 'f6731917540f67b11f344b7858feae85a2a40ef9', class: { "duet-multiselect-icon": true, "duet-multiselect-icon--rotate": this.checkboxesVisible }, fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '48f40a7f7d0c45d6f11f1eb4ae609aa111f40c22', d: "m12 18.999c-.4 0-.776-.156-1.059-.438l-10.721-10.72c-.142-.142-.22-.33-.22-.531 0-.2.078-.389.22-.53.142-.142.33-.22.53-.22s.389.078.53.22l10.72 10.719 10.72-10.719c.142-.142.33-.22.53-.22s.389.078.53.22c.142.142.22.33.22.53s-.078.389-.22.53l-10.72 10.72c-.282.283-.659.439-1.06.439z" }))), h("div", { key: '8edf93a17bb06302959feaa6f37dace7ff6310d6', id: `${this.identifier}-checkboxes`, role: "listbox", class: {
286
286
  "duet-multiselect-checkboxes": true,
287
287
  "duet-multiselect-checkboxes-active": this.checkboxesVisible,
288
- }, "aria-activedescendant": this.activeDescendant, "aria-multiselectable": "true" }, ((_a = this.processedItems) === null || _a === void 0 ? void 0 : _a.length) && this.allControls && (h("div", { key: '3907f7054436f56ed50866ab0e191c00c2dd17d7', class: "duet-multiselect-all-control-buttons" }, h("button", { key: 'e502215643ea66e08be0b55c3ba1deeed79bdaad', class: "duet-multiselect-select-all", onClick: this.handleSelectAllClick, id: this.getOptionIdentifier(-2), onKeyDown: (e) => this.onCheckboxKeyDown(e, -2) }, this.selectAllLabel[this.language]), h("button", { key: 'a63b642a9e24bc18d88e567f1b6c480f074ad578', class: "duet-multiselect-clear-all", onClick: this.handleClearAllClick, id: this.getOptionIdentifier(-1), onKeyDown: (e) => this.onCheckboxKeyDown(e, -1) }, this.clearAllLabel[this.language]))), this.processedItems &&
288
+ }, "aria-activedescendant": this.activeDescendant, "aria-multiselectable": "true" }, ((_a = this.processedItems) === null || _a === void 0 ? void 0 : _a.length) && this.allControls && (h("div", { key: '54ec6623e55b9282483a4217aa635d8c26f5e54e', class: "duet-multiselect-all-control-buttons" }, h("button", { key: 'ab167f22d9064dd059c36e115b069813894c2985', class: "duet-multiselect-select-all", onClick: this.handleSelectAllClick, id: this.getOptionIdentifier(-2), onKeyDown: (e) => this.onCheckboxKeyDown(e, -2) }, this.selectAllLabel[this.language]), h("button", { key: 'a3f5536268c911481c9330135467a32489fe74cb', class: "duet-multiselect-clear-all", onClick: this.handleClearAllClick, id: this.getOptionIdentifier(-1), onKeyDown: (e) => this.onCheckboxKeyDown(e, -1) }, this.clearAllLabel[this.language]))), this.processedItems &&
289
289
  this.processedGroups.map(group => (h("fieldset", null, group.label && h("legend", null, group.label), group.items.map((item, key) => {
290
290
  var _a, _b;
291
291
  return (h("duet-checkbox", { identifier: this.getOptionIdentifier(key), role: "option", label: item.label, value: item.value, key: item.value, checked: (_a = this.value) === null || _a === void 0 ? void 0 : _a.includes(item), "accessible-selected": ((_b = this.value) === null || _b === void 0 ? void 0 : _b.includes(item)) ? "true" : undefined, disabled: !this.checkboxesVisible || item.disabled, onDuetChange: e => this.toggleCheckbox(e, item), onKeyDown: (e) => this.onCheckboxKeyDown(e, key), theme: this.theme }));
292
- })))))), h("span", { key: '221b275486bef481c990d6625bc92120cd452e83', class: "duet-multiselect-help duet-multiselect-error", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && h("span", { key: '022173402cfe3a2facde3bf6f9ba63c22b68a949' }, this.error)))));
292
+ })))))), h("span", { key: 'f669eea3585579caeba9b0549367509f85db35ad', class: "duet-multiselect-help duet-multiselect-error", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && h("span", { key: '32a00ccdd2e45db427a87dbabb707960b734df4d' }, this.error)))));
293
293
  }
294
294
  static get is() { return "duet-multiselect"; }
295
295
  static get encapsulation() { return "shadow"; }
@@ -31,7 +31,7 @@ export class DuetNav {
31
31
  * Always the last one in the class.
32
32
  */
33
33
  render() {
34
- return (h(Host, { key: 'cfe229a2c9358cf42d3de731743f9294662d104f' }, h("div", { key: 'aa379a4209ebe14ffd066b760e1649bf1e70d5de', class: { container: true, sticky: this.sticky } }, h("slot", { key: '75a8a41301126ff2702908d3d60077afc8dd466f' }), h("slot", { key: '5c2b378bc0a9258e1e6de5776b5395cdbfeb4625', name: "mobile" }), h("slot", { key: '457a685985e8dda33bfd158e4caa497816aec4e8', name: "desktop" }))));
34
+ return (h(Host, { key: '328e6c0b204e81ba8492e09f3c99e51ccf54b3c9' }, h("div", { key: 'edbf3c6c3e7e66ba961ef76306be8e57bb379c82', class: { container: true, sticky: this.sticky } }, h("slot", { key: 'beecebafa68e4eecf50fed6d2f66161fcf9ad4f9' }), h("slot", { key: 'e86611d1f874f7fecef786352fb2485465fea16c', name: "mobile" }), h("slot", { key: '614a8c925539ca4fb8820a5dbcea8a17ec0326ae', name: "desktop" }))));
35
35
  }
36
36
  static get is() { return "duet-nav"; }
37
37
  static get encapsulation() { return "shadow"; }
@@ -79,11 +79,11 @@ export class DuetNotification {
79
79
  return `${indicatorText}${slottedText}${slottedText.endsWith(".") ? "" : "."} ${this.date}`;
80
80
  }
81
81
  render() {
82
- return (h("div", { key: 'e116ef2939b8668fc7279240fdf496f47517525b', role: "listitem", class: {
82
+ return (h("div", { key: '0755007d365b224053afc86e8ffedecc29f6de2b', role: "listitem", class: {
83
83
  "duet-notification": true,
84
84
  "duet-notification-highlight": this.highlight,
85
85
  "duet-theme-turva": this.theme === "turva",
86
- } }, h("a", { key: 'ac7b3f44a84463a437c6954d034b535dffcbc978', ref: element => (this.linkElement = element), href: this.url, target: this.external ? "_blank" : "_self", "aria-label": this.getAriaLabelText() }, h("div", { key: '42276fe951fbbabbf6ff6b3f2051d11157890e2a', class: "duet-notification-container" }, h("div", { key: '56dcb28c55e3881f6d3db4e19b92bd31bc414172', class: "duet-indicator-container" }, this.highlight && (h("duet-indicator", { key: 'fd07536d88807026f7b41ab30ad85ea3e1af6032', variation: "new", "accessible-label": this.accessibleLabelUnread }))), h("div", { key: 'e3daee0b1da9007ccf0338e2c093e46eec357331', class: "duet-notification-content" }, h("slot", { key: '9bdcdf46004eac0eeabf90599190a403420e255b' })), h("div", { key: '2b8ac8c2a2ee2552011334bb902fcf179359641c', class: "duet-notification-date" }, this.date)))));
86
+ } }, h("a", { key: '97d9d1acc01c8cf58e0e668785678cd019b1dd74', ref: element => (this.linkElement = element), href: this.url, target: this.external ? "_blank" : "_self", "aria-label": this.getAriaLabelText() }, h("div", { key: 'faa07470a724ec22d342404194c16acb4e8b4cb9', class: "duet-notification-container" }, h("div", { key: '1d39f1cfafc46c55a644524fc510b26fdb6e6ebd', class: "duet-indicator-container" }, this.highlight && (h("duet-indicator", { key: 'bc0b9e295f7c6915e5199c46ecaa86df05fd5d5a', variation: "new", "accessible-label": this.accessibleLabelUnread }))), h("div", { key: '46714b76ca2114f2c17cabae75faf1cf50729ada', class: "duet-notification-content" }, h("slot", { key: 'c8b0b56c6c9dc513634ac81f5607b4a7c9ef57ef' })), h("div", { key: '1266253fe3753d8f8a652e0cbc35615743ed026d', class: "duet-notification-date" }, this.date)))));
87
87
  }
88
88
  static get is() { return "duet-notification"; }
89
89
  static get encapsulation() { return "shadow"; }
@@ -126,13 +126,13 @@ export class DuetNotificationDrawer {
126
126
  * Always the last one in the class.
127
127
  */
128
128
  render() {
129
- return (h("div", { key: '69b878842a591a528c9c8218abb3dae14e995406', class: {
129
+ return (h("div", { key: 'f64474d7b1fc293f9f84b46af781474adc8e4e12', class: {
130
130
  "duet-drawer": true,
131
131
  "duet-theme-turva": this.theme === "turva",
132
- }, onKeyDown: this.handleKeyDown }, h("button", { key: 'b430067e1fdca09a1c6ac0e162be9e2d5acd434f', ref: el => (this.drawerButtonEl = el), type: "button", class: {
132
+ }, onKeyDown: this.handleKeyDown }, h("button", { key: '3a50f54565c35db0bcef5b227c931f476ead3aef', ref: el => (this.drawerButtonEl = el), type: "button", class: {
133
133
  "duet-drawer-toggle": true,
134
134
  "duet-theme-turva": this.theme === "turva",
135
- }, id: "duet-drawer-toggle", "aria-controls": "duet-drawer-content", "aria-expanded": this.isOpen ? "true" : "false", onClick: this.toggleMenu }, this.icon && (h("div", { key: '55a526c885dc7ea660730e97fdc25fe0943dd2e2', class: "duet-drawer-icon" }, h("duet-icon", { key: '37e3d9b20ed6f54da0a1445a76b68dc4dfa0b308', margin: "none", size: "x-small", name: this.icon, color: "currentColor" }), this.badge && h("duet-indicator", { key: '90c45774b6cf888241d8d82c35380d05692106c6', variation: "change" }))), h("span", { key: '92725e4a7119dbc5050599fefe7a17871b2f6d81', class: "duet-drawer-label" }, this.label), h("div", { key: 'ba9fad66fc02ccf040d048a9d9706fc29b5d31c7', class: "duet-drawer-caret" }, h("duet-icon", { key: '6e631282017345e59c7b7acdf7ccfa713d4a3bd2', margin: "none", size: "auto", icon: arrowDownIcon.svg, color: "currentColor" }))), h("div", { key: '15342aa1db7638af746efb9401483f38f5d34b0f', id: "duet-drawer-content", class: {
135
+ }, id: "duet-drawer-toggle", "aria-controls": "duet-drawer-content", "aria-expanded": this.isOpen ? "true" : "false", onClick: this.toggleMenu }, this.icon && (h("div", { key: 'cb9054a5811f6bb303959c289fa7b05598f80a9b', class: "duet-drawer-icon" }, h("duet-icon", { key: 'ea93e752d5e5fa5151c358243b3d0f21c3398ea8', margin: "none", size: "x-small", name: this.icon, color: "currentColor" }), this.badge && h("duet-indicator", { key: '2fa021b5e7ca70fc63211f03e648cff1af6a6681', variation: "change" }))), h("span", { key: '517bbd72489ea86aaf16740f5e76057a0905a633', class: "duet-drawer-label" }, this.label), h("div", { key: '35018504fde6cafc82064c1ac372866843b0851b', class: "duet-drawer-caret" }, h("duet-icon", { key: '83ef07800bb0117286b89a88f923003cf4ca7841', margin: "none", size: "auto", icon: arrowDownIcon.svg, color: "currentColor" }))), h("div", { key: 'ffc7ff35e445368c50fc98555f4147b541efd0d0', id: "duet-drawer-content", class: {
136
136
  "duet-drawer-content": true,
137
137
  "duet-drawer-right": this.direction === "right",
138
138
  "duet-drawer-left": this.direction === "left",
@@ -394,15 +394,15 @@ export class DuetNumberInput {
394
394
  const identifier = this.identifier || this.inputId;
395
395
  const maxlength = `${this.localizeValue(this.max)}${this.getUnitString()}`.length;
396
396
  const cleanedValue = !!this.value ? SafeParseFloat(this.value, this.locale) : null;
397
- return (h(Host, { key: '1e1ec1d4970da103cdd9fbb867e469e414365adb', class: {
397
+ return (h(Host, { key: 'dd6481f3c9a5c1db3d4e4edf06120a79f015d33d', class: {
398
398
  "duet-theme-turva": this.theme === "turva",
399
399
  "duet-expand": this.expand,
400
400
  "duet-m-0": this.margin === "none",
401
- } }, h("div", { key: '43bfdda224ef424c81d08a5bc5285348124dd6a0', class: "duet-number-container" }, h("duet-input", { key: 'aa962811d9d95fc08a8211f3bdbb94cba87f0924', ref: input => (this.duetInputElement = input), onDuetChange: event => this.handleChange(event), onDuetFocus: this.handleFocus, onDuetBlur: event => this.handleBlur(event), onKeyDown: event => this.handleKeyDown(event), label: this.label, value: this.value ? `${this.value}${this.getUnitString()}` : "", error: this.error, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": cleanedValue != null ? cleanedValue : "", maxlength: maxlength, name: this.name, component: "number", required: this.required, disabled: this.disabled, role: this.role, labelHidden: this.labelHidden, tooltip: this.tooltip, identifier: identifier, theme: this.theme, margin: "none", expand: true, numericKeyboard: true, autoComplete: "off", type: "text", accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleLabelledBy: this.accessibleLabelledBy, accessibleDescription: this.accessibleDescription, accessibleDetails: this.accessibleDetails, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy }, h("slot", { key: 'd0692236e001777d3e384ab54a02449d38e7cd44', name: "tooltip", slot: "tooltip" }), h("div", { key: '493fa102da11525ac2688c4ae163324cd0b244d1', class: { "duet-number-buttons": true, "duet-no-label": this.labelHidden } }, h("button", { key: 'f6cfe72311cd6d5723471f72fa06d3c6173ac0cb', disabled: this.disabled, "aria-disabled": cleanedValue == null || cleanedValue === this.min ? "true" : "false", class: "duet-number-button duet-number-button-subtract", onClick: this.subtract, type: "button" }, h("duet-visually-hidden", { key: 'caea39a259e4ac79fc5c086f92d6205c96bfe081' }, this.accessibleSubtract
401
+ } }, h("div", { key: 'd6c82f4b745801cd2ae8f256c7bb3f7442bd6949', class: "duet-number-container" }, h("duet-input", { key: 'e4de66a5437265772070627b0cf72ad92218dba9', ref: input => (this.duetInputElement = input), onDuetChange: event => this.handleChange(event), onDuetFocus: this.handleFocus, onDuetBlur: event => this.handleBlur(event), onKeyDown: event => this.handleKeyDown(event), label: this.label, caption: this.caption, value: this.value ? `${this.value}${this.getUnitString()}` : "", error: this.error, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": cleanedValue != null ? cleanedValue : "", maxlength: maxlength, name: this.name, component: "number", required: this.required, disabled: this.disabled, role: this.role, labelHidden: this.labelHidden, tooltip: this.tooltip, identifier: identifier, theme: this.theme, margin: "none", expand: true, numericKeyboard: true, autoComplete: "off", type: "text", accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleLabelledBy: this.accessibleLabelledBy, accessibleDescription: this.accessibleDescription, accessibleDetails: this.accessibleDetails, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy }, h("slot", { key: 'e1ebed47dbb766a2b12d71650327e1071f776f97', name: "tooltip", slot: "tooltip" }), h("div", { key: 'b5d814557b3cb9ab4d14afd5afca0d2e7b583a5e', class: { "duet-number-buttons": true, "duet-no-label": this.labelHidden } }, h("button", { key: '1f0d70579892176f9785c6954e9e8c937864b4b2', disabled: this.disabled, "aria-disabled": cleanedValue == null || cleanedValue === this.min ? "true" : "false", class: "duet-number-button duet-number-button-subtract", onClick: this.subtract, type: "button" }, h("duet-visually-hidden", { key: 'ef5fc7aa7e3d4aa2780eac64dd6794488af62d51' }, this.accessibleSubtract
402
402
  .replace(/\{\s*step\s*\}/, `${this.step}`)
403
- .replace(/\{\s*unit\s*\}/, `${this.unit}`)), h("duet-icon", { key: 'ba9ad012c760bb989ab3b2d4c12209f4a0c3555d', icon: subtractIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })), h("button", { key: 'f1c5f085b3d18b1f4f48c2a8c59ef8a945d9ee32', disabled: this.disabled, "aria-disabled": cleanedValue === this.max ? "true" : "false", class: "duet-number-button duet-number-button-add", onClick: this.add, type: "button" }, h("duet-visually-hidden", { key: 'ee5a3d12e54e5523cab33865e148455e385e2082' }, this.accessibleAdd
403
+ .replace(/\{\s*unit\s*\}/, `${this.unit}`)), h("duet-icon", { key: '3c5d74395785f44aaf71b2390a30158865d27ad5', icon: subtractIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })), h("button", { key: '5e0fd58cc1ea01f45694f26f14616e22b5984cf7', disabled: this.disabled, "aria-disabled": cleanedValue === this.max ? "true" : "false", class: "duet-number-button duet-number-button-add", onClick: this.add, type: "button" }, h("duet-visually-hidden", { key: 'b952bdea56d58c9948847ad27d0890e543b5cee8' }, this.accessibleAdd
404
404
  .replace(/\{\s*step\s*\}/, `${this.step}`)
405
- .replace(/\{\s*unit\s*\}/, `${this.unit}`)), h("duet-icon", { key: '1f2597d788f3738c1ffd0b6a4564b31546238228', icon: addIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })))), this.accessibleLiveEnabled && (h("duet-visually-hidden", { key: '0bc549da309c663646b90e88329a755f0bd96a8a', "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement())))));
405
+ .replace(/\{\s*unit\s*\}/, `${this.unit}`)), h("duet-icon", { key: 'e5c4f242dfdb36d1935be12d716f622e6d5a7570', icon: addIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })))), this.accessibleLiveEnabled && (h("duet-visually-hidden", { key: '2e82bb69f5103762366ebc7d600820849c56ba08', "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement())))));
406
406
  }
407
407
  static get is() { return "duet-number-input"; }
408
408
  static get encapsulation() { return "shadow"; }
@@ -991,6 +991,25 @@ export class DuetNumberInput {
991
991
  "reflect": false,
992
992
  "defaultValue": "false"
993
993
  },
994
+ "caption": {
995
+ "type": "string",
996
+ "attribute": "caption",
997
+ "mutable": false,
998
+ "complexType": {
999
+ "original": "string",
1000
+ "resolved": "string",
1001
+ "references": {}
1002
+ },
1003
+ "required": false,
1004
+ "optional": false,
1005
+ "docs": {
1006
+ "tags": [],
1007
+ "text": "Caption shown below label, also included in aria-describedby"
1008
+ },
1009
+ "getter": false,
1010
+ "setter": false,
1011
+ "reflect": false
1012
+ },
994
1013
  "max": {
995
1014
  "type": "number",
996
1015
  "attribute": "max",
@@ -59,7 +59,7 @@ export class DuetOverlay {
59
59
  * Always the last one in the class.
60
60
  */
61
61
  render() {
62
- return (h(Host, { key: 'a962e9115a51fcbb322726c314b96e3dbc92920e', "aria-hidden": "true" }, h("div", { key: '6d648d8dc0e371e27900f612a79dc943e3087005', style: { zIndex: this.zIndex }, class: {
62
+ return (h(Host, { key: 'ede75e9192a5cc0ae1db5e70f9f1e1623654b5c7', "aria-hidden": "true" }, h("div", { key: '12684840f86edbf45b811415a637a7c26101ae31', style: { zIndex: this.zIndex }, class: {
63
63
  "duet-overlay": true,
64
64
  "duet-theme-turva": this.theme === "turva",
65
65
  "keep-stacking-context": this.keepStackingContext,