@duetds/components 10.0.0-alpha.23 → 10.0.0-alpha.25

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 (418) hide show
  1. package/hydrate/index.js +414 -261
  2. package/hydrate/index.mjs +414 -261
  3. package/lib/cjs/{a11y-utils-aMJTxbM9.js → a11y-utils-BeS3x4Hg.js} +1 -1
  4. package/lib/cjs/{app-globals-DN9e0v8L.js → app-globals-BvljEFtV.js} +1 -1
  5. package/lib/cjs/duet-action-button.cjs.entry.js +4 -4
  6. package/lib/cjs/duet-alert.cjs.entry.js +4 -4
  7. package/lib/cjs/duet-badge.cjs.entry.js +4 -4
  8. package/lib/cjs/duet-banner.cjs.entry.js +7 -7
  9. package/lib/cjs/duet-breadcrumb.cjs.entry.js +7 -7
  10. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +6 -6
  11. package/lib/cjs/duet-button_2.cjs.entry.js +12 -12
  12. package/lib/cjs/duet-callout.cjs.entry.js +5 -5
  13. package/lib/cjs/duet-caption_4.cjs.entry.js +13 -12
  14. package/lib/cjs/duet-card.cjs.entry.js +4 -4
  15. package/lib/cjs/duet-checkbox.cjs.entry.js +2 -2
  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 +6 -6
  19. package/lib/cjs/duet-collapsible.cjs.entry.js +4 -4
  20. package/lib/cjs/duet-combobox.cjs.entry.js +4 -4
  21. package/lib/cjs/duet-contact-card.cjs.entry.js +5 -5
  22. package/lib/cjs/duet-cookie-consent.cjs.entry.js +2 -2
  23. package/lib/cjs/duet-date-picker.cjs.entry.js +6 -6
  24. package/lib/cjs/duet-divider_2.cjs.entry.js +4 -4
  25. package/lib/cjs/duet-editable-table_3.cjs.entry.js +9 -9
  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 +54 -12
  32. package/lib/cjs/duet-hero.cjs.entry.js +4 -4
  33. package/lib/cjs/duet-icon.cjs.entry.js +7 -7
  34. package/lib/cjs/duet-input_2.cjs.entry.js +7 -7
  35. package/lib/cjs/duet-layout.cjs.entry.js +2 -2
  36. package/lib/cjs/duet-list_2.cjs.entry.js +4 -4
  37. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +4 -4
  38. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +4 -4
  39. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +6 -6
  40. package/lib/cjs/duet-menu-bar-item.cjs.entry.js +7 -7
  41. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +4 -4
  42. package/lib/cjs/duet-menu-bar.cjs.entry.js +10 -42
  43. package/lib/cjs/duet-modal.cjs.entry.js +37 -20
  44. package/lib/cjs/duet-multiselect.cjs.entry.js +10 -10
  45. package/lib/cjs/duet-nav.cjs.entry.js +3 -3
  46. package/lib/cjs/duet-notification_2.cjs.entry.js +7 -7
  47. package/lib/cjs/duet-number-input.cjs.entry.js +14 -9
  48. package/lib/cjs/duet-overlay.cjs.entry.js +3 -3
  49. package/lib/cjs/duet-page-heading.cjs.entry.js +5 -5
  50. package/lib/cjs/duet-pagination_2.cjs.entry.js +17 -17
  51. package/lib/cjs/duet-panel.cjs.entry.js +53 -0
  52. package/lib/cjs/duet-phone-input.cjs.entry.js +4 -4
  53. package/lib/cjs/duet-popup-menu_2.cjs.entry.js +6 -6
  54. package/lib/cjs/duet-progress.cjs.entry.js +3 -3
  55. package/lib/cjs/duet-promo-card.cjs.entry.js +6 -6
  56. package/lib/cjs/duet-radio_2.cjs.entry.js +7 -7
  57. package/lib/cjs/duet-range-slider.cjs.entry.js +6 -6
  58. package/lib/cjs/duet-scrollable_3.cjs.entry.js +16 -16
  59. package/lib/cjs/duet-section-layout.cjs.entry.js +4 -4
  60. package/lib/cjs/duet-select.cjs.entry.js +9 -9
  61. package/lib/cjs/duet-shaped-image.cjs.entry.js +4 -4
  62. package/lib/cjs/duet-share-chart-item.cjs.entry.js +2 -2
  63. package/lib/cjs/duet-share-chart.cjs.entry.js +7 -7
  64. package/lib/cjs/duet-show-more.cjs.entry.js +5 -5
  65. package/lib/cjs/duet-slideout-lang.cjs.entry.js +4 -4
  66. package/lib/cjs/duet-slideout-link.cjs.entry.js +7 -7
  67. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +6 -6
  68. package/lib/cjs/duet-slideout-panel.cjs.entry.js +12 -12
  69. package/lib/cjs/duet-slideout.cjs.entry.js +10 -10
  70. package/lib/cjs/duet-status-icon.cjs.entry.js +4 -4
  71. package/lib/cjs/duet-step_2.cjs.entry.js +6 -6
  72. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +4 -4
  73. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +7 -7
  74. package/lib/cjs/duet-submenu-bar-item.cjs.entry.js +6 -6
  75. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +3 -3
  76. package/lib/cjs/duet-submenu-bar.cjs.entry.js +8 -8
  77. package/lib/cjs/duet-textarea.cjs.entry.js +8 -8
  78. package/lib/cjs/duet-toggle.cjs.entry.js +6 -6
  79. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +4 -4
  80. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +6 -6
  81. package/lib/cjs/duet-toolbar-item.cjs.entry.js +8 -8
  82. package/lib/cjs/duet-toolbar-link.cjs.entry.js +4 -4
  83. package/lib/cjs/duet-toolbar.cjs.entry.js +4 -4
  84. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +8 -8
  85. package/lib/cjs/duet-tooltip.cjs.entry.js +5 -5
  86. package/lib/cjs/duet-tray.cjs.entry.js +5 -5
  87. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +2 -2
  88. package/lib/cjs/duet-upload-item.cjs.entry.js +6 -6
  89. package/lib/cjs/duet-visually-hidden.cjs.entry.js +2 -2
  90. package/lib/cjs/duet.cjs.js +3 -3
  91. package/lib/cjs/{errorcodes.utils-CSxc4txc.js → errorcodes.utils-CwTzu57-.js} +1 -1
  92. package/lib/cjs/{focus-utils-R3gIGr8k.js → focus-utils-Dh4b8BiX.js} +1 -1
  93. package/lib/cjs/{index-cypK_uRu.js → index-D3O_5Hr7.js} +5 -1
  94. package/lib/cjs/{label-61f_b8fi.js → label-8AXhdqJy.js} +1 -1
  95. package/lib/cjs/{language-utils-DIDyCgUk.js → language-utils-CMK9eR4Q.js} +1 -1
  96. package/lib/cjs/loader.cjs.js +3 -3
  97. package/lib/cjs/{slot-utils-BC5Q3UDm.js → slot-utils-BIdgEejh.js} +1 -1
  98. package/lib/cjs/{themeable-component-BWW4XmUY.js → themeable-component-B3llZmjN.js} +14 -2
  99. package/lib/cjs/{token-utils-CHLLcMzU.js → token-utils-DsVwGXGM.js} +75 -7
  100. package/lib/cjs/{tokens-DYbf8HFV.js → tokens-D7zqZKjQ.js} +0 -1
  101. package/lib/collection/collection-manifest.json +1 -0
  102. package/lib/collection/common/themeable-component.js +13 -1
  103. package/lib/collection/components/duet-badge/duet-badge.js +2 -2
  104. package/lib/collection/components/duet-banner/duet-banner.css +1 -0
  105. package/lib/collection/components/duet-banner/duet-banner.js +3 -3
  106. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +4 -4
  107. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +2 -2
  108. package/lib/collection/components/duet-button/duet-button.css +19 -4
  109. package/lib/collection/components/duet-button/duet-button.js +5 -5
  110. package/lib/collection/components/duet-callout/duet-callout.js +2 -2
  111. package/lib/collection/components/duet-choice/duet-checkmark.js +2 -2
  112. package/lib/collection/components/duet-choice-group/duet-choice-group.js +2 -2
  113. package/lib/collection/components/duet-contact-card/duet-contact-card.js +2 -2
  114. package/lib/collection/components/duet-fieldset/duet-fieldset.js +3 -3
  115. package/lib/collection/components/duet-grid-item/duet-grid-item.js +2 -2
  116. package/lib/collection/components/duet-header/duet-header.css +3 -0
  117. package/lib/collection/components/duet-header/duet-header.js +3 -2
  118. package/lib/collection/components/duet-icon/duet-icon.css +5 -0
  119. package/lib/collection/components/duet-icon/duet-icon.js +3 -3
  120. package/lib/collection/components/duet-label/duet-label.js +1 -1
  121. package/lib/collection/components/duet-link/duet-link.js +5 -4
  122. package/lib/collection/components/duet-list-item/duet-list-item.js +2 -2
  123. package/lib/collection/components/duet-logo/duet-logo.css +8 -0
  124. package/lib/collection/components/duet-logo/duet-logo.js +74 -5
  125. package/lib/collection/components/duet-menu-bar/duet-menu-bar.css +91 -0
  126. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +27 -39
  127. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +2 -2
  128. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +4 -4
  129. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +2 -2
  130. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.js +2 -2
  131. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +2 -2
  132. package/lib/collection/components/duet-modal/duet-modal.js +96 -15
  133. package/lib/collection/components/duet-multiselect/duet-multiselect.js +5 -5
  134. package/lib/collection/components/duet-nav/duet-nav.js +1 -1
  135. package/lib/collection/components/duet-notification/duet-notification.js +2 -2
  136. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +2 -2
  137. package/lib/collection/components/duet-number-input/duet-number-input.js +11 -6
  138. package/lib/collection/components/duet-overlay/duet-overlay.js +1 -1
  139. package/lib/collection/components/duet-page-heading/duet-page-heading.css +12 -1
  140. package/lib/collection/components/duet-page-heading/duet-page-heading.js +2 -2
  141. package/lib/collection/components/duet-pagination/duet-pagination.js +11 -11
  142. package/lib/collection/components/duet-panel/duet-panel.css +98 -0
  143. package/lib/collection/components/duet-panel/duet-panel.js +234 -0
  144. package/lib/collection/components/duet-paragraph/duet-paragraph.js +2 -2
  145. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +2 -2
  146. package/lib/collection/components/duet-promo-card/duet-promo-card.js +3 -3
  147. package/lib/collection/components/duet-radio/duet-radio.js +3 -3
  148. package/lib/collection/components/duet-radio-group/duet-radio-group.js +1 -1
  149. package/lib/collection/components/duet-range-slider/duet-range-slider.js +2 -2
  150. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +2 -2
  151. package/lib/collection/components/duet-scrollable/duet-scrollable.js +5 -5
  152. package/lib/collection/components/duet-section-layout/duet-section-layout.js +3 -3
  153. package/lib/collection/components/duet-select/duet-select.js +5 -5
  154. package/lib/collection/components/duet-shaped-image/duet-shaped-image.js +2 -2
  155. package/lib/collection/components/duet-share-chart/duet-share-chart.js +2 -2
  156. package/lib/collection/components/duet-share-chart-item/duet-share-chart-item.js +1 -1
  157. package/lib/collection/components/duet-show-more/duet-show-more.js +2 -2
  158. package/lib/collection/components/duet-slideout/duet-slideout.js +4 -4
  159. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +1 -1
  160. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +2 -2
  161. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +6 -6
  162. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +4 -4
  163. package/lib/collection/components/duet-spacer/duet-spacer.js +1 -1
  164. package/lib/collection/components/duet-spinner/duet-spinner.js +2 -2
  165. package/lib/collection/components/duet-status-icon/duet-status-icon.js +2 -2
  166. package/lib/collection/components/duet-step/duet-step.js +2 -2
  167. package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
  168. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +5 -5
  169. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +4 -4
  170. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +2 -2
  171. package/lib/collection/components/duet-submenu-bar-item/duet-submenu-bar-item.js +1 -1
  172. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +1 -1
  173. package/lib/collection/components/duet-tab/duet-tab.js +2 -2
  174. package/lib/collection/components/duet-tab-group/duet-tab-group.js +4 -4
  175. package/lib/collection/components/duet-table/duet-table.js +2 -2
  176. package/lib/collection/components/duet-textarea/duet-textarea.js +3 -3
  177. package/lib/collection/components/duet-toggle/duet-toggle.js +2 -2
  178. package/lib/collection/components/duet-toolbar/duet-toolbar.js +2 -2
  179. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +4 -4
  180. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +2 -2
  181. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.js +3 -3
  182. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +2 -2
  183. package/lib/collection/components/duet-tooltip/duet-tooltip-button.js +3 -3
  184. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +2 -2
  185. package/lib/collection/components/duet-tray/duet-tray.js +2 -2
  186. package/lib/collection/components/duet-upload/duet-upload.js +2 -2
  187. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +1 -1
  188. package/lib/collection/components/duet-upload-item/duet-upload-item.js +2 -2
  189. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +1 -1
  190. package/lib/collection/utils/token-utils.js +59 -7
  191. package/lib/collection/utils/turva2-color-tokens.js +42 -0
  192. package/lib/duet/duet.esm.js +1 -1
  193. package/lib/duet/{p-2de0e6b5.entry.js → p-04ce95ba.entry.js} +1 -1
  194. package/lib/duet/{p-eafab2a1.entry.js → p-05766552.entry.js} +1 -1
  195. package/lib/duet/{p-3ea842ba.entry.js → p-065f7e81.entry.js} +1 -1
  196. package/lib/duet/{p-95dd811d.entry.js → p-06ed84cb.entry.js} +1 -1
  197. package/lib/duet/{p-625a23c2.entry.js → p-08ed76c2.entry.js} +1 -1
  198. package/lib/duet/{p-f3d5e40a.entry.js → p-0a448068.entry.js} +1 -1
  199. package/lib/duet/{p-44786477.entry.js → p-0dc4fe1d.entry.js} +1 -1
  200. package/lib/duet/{p-626e92a9.entry.js → p-0ebeee02.entry.js} +1 -1
  201. package/lib/duet/{p-9b9031cf.entry.js → p-106d3089.entry.js} +1 -1
  202. package/lib/duet/{p-32352972.entry.js → p-15593e3e.entry.js} +1 -1
  203. package/lib/duet/{p-54b978c0.entry.js → p-2057cc55.entry.js} +1 -1
  204. package/lib/duet/{p-061f484f.entry.js → p-2792ec0b.entry.js} +1 -1
  205. package/lib/duet/p-28a998f9.entry.js +4 -0
  206. package/lib/duet/{p-8057c9e5.entry.js → p-2d3d11db.entry.js} +1 -1
  207. package/lib/duet/{p-9d5be586.entry.js → p-2e34dd28.entry.js} +1 -1
  208. package/lib/duet/{p-f7782ce5.entry.js → p-30ade10d.entry.js} +1 -1
  209. package/lib/duet/{p-d5270614.entry.js → p-35ac072d.entry.js} +1 -1
  210. package/lib/duet/{p-70fd5cb5.entry.js → p-37222c50.entry.js} +1 -1
  211. package/lib/duet/{p-80f567c7.entry.js → p-39169420.entry.js} +1 -1
  212. package/lib/duet/{p-a544dcb2.entry.js → p-3dd4fbf1.entry.js} +1 -1
  213. package/lib/duet/{p-8ae3ba95.entry.js → p-402c8cd9.entry.js} +1 -1
  214. package/lib/duet/{p-2b2be1ce.entry.js → p-4628e002.entry.js} +1 -1
  215. package/lib/duet/{p-07cd31d4.entry.js → p-466ef37c.entry.js} +1 -1
  216. package/lib/duet/{p-f2e88086.entry.js → p-4aece4f9.entry.js} +1 -1
  217. package/lib/duet/{p-1b4e4213.entry.js → p-4ee576a2.entry.js} +1 -1
  218. package/lib/duet/p-500d799b.entry.js +4 -0
  219. package/lib/duet/{p-e8bf81e8.entry.js → p-5564a39c.entry.js} +1 -1
  220. package/lib/duet/p-5848a34c.entry.js +4 -0
  221. package/lib/duet/{p-1662ddb0.entry.js → p-5ab64521.entry.js} +1 -1
  222. package/lib/duet/{p-b3547427.entry.js → p-60be3836.entry.js} +1 -1
  223. package/lib/duet/p-625347d3.entry.js +4 -0
  224. package/lib/duet/{p-779380f8.entry.js → p-64ebf5e9.entry.js} +1 -1
  225. package/lib/duet/{p-48bcf197.entry.js → p-64f8d654.entry.js} +1 -1
  226. package/lib/duet/{p-73f38d13.entry.js → p-652eefa8.entry.js} +1 -1
  227. package/lib/duet/{p-85ddf215.entry.js → p-65a8dd89.entry.js} +1 -1
  228. package/lib/duet/{p-05cb3ef2.entry.js → p-66c7af01.entry.js} +1 -1
  229. package/lib/duet/{p-e8668d1a.entry.js → p-67290546.entry.js} +1 -1
  230. package/lib/duet/p-693fda6b.entry.js +4 -0
  231. package/lib/duet/{p-6fa05aeb.entry.js → p-6a6e4d82.entry.js} +1 -1
  232. package/lib/duet/{p-5c749aae.entry.js → p-6aa6ce7d.entry.js} +1 -1
  233. package/lib/duet/{p-e6a5676c.entry.js → p-71603edd.entry.js} +1 -1
  234. package/lib/duet/{p-c0721ad9.entry.js → p-71a6b137.entry.js} +1 -1
  235. package/lib/duet/{p-a40fbcac.entry.js → p-72c2ba6b.entry.js} +1 -1
  236. package/lib/duet/p-73290da8.entry.js +4 -0
  237. package/lib/duet/{p-2c2a8a28.entry.js → p-73ce0ef8.entry.js} +1 -1
  238. package/lib/duet/p-767afcf4.entry.js +4 -0
  239. package/lib/duet/{p-7ac87fc1.entry.js → p-774cf9f5.entry.js} +1 -1
  240. package/lib/duet/{p-89e9badf.entry.js → p-7a9f3475.entry.js} +1 -1
  241. package/lib/duet/{p-61da8d25.entry.js → p-7c814d9a.entry.js} +1 -1
  242. package/lib/duet/{p-1cc69291.entry.js → p-7f1fb1a9.entry.js} +1 -1
  243. package/lib/duet/{p-d154fb42.entry.js → p-83f6beb5.entry.js} +1 -1
  244. package/lib/duet/{p-5b2e8342.entry.js → p-8596c993.entry.js} +1 -1
  245. package/lib/duet/{p-e72e498d.entry.js → p-867aab83.entry.js} +1 -1
  246. package/lib/duet/{p-a854a83c.entry.js → p-86b74914.entry.js} +1 -1
  247. package/lib/duet/{p-11b6b71d.entry.js → p-8ed6f7c7.entry.js} +1 -1
  248. package/lib/duet/{p-b5cdfd48.entry.js → p-94e33308.entry.js} +1 -1
  249. package/lib/duet/p-960f95b4.entry.js +4 -0
  250. package/lib/duet/{p-5f437262.entry.js → p-9973c0dc.entry.js} +1 -1
  251. package/lib/duet/{p-e89f59fe.entry.js → p-9a1f29ac.entry.js} +1 -1
  252. package/lib/duet/{p-e3c9a33a.entry.js → p-9fade6a0.entry.js} +1 -1
  253. package/lib/duet/{p-0710ad83.entry.js → p-9fff2189.entry.js} +1 -1
  254. package/lib/duet/{p-CUNSbdt4.js → p-B_VBeM3r.js} +1 -1
  255. package/lib/duet/{p-B_RHZ7jo.js → p-BaR6ufr4.js} +1 -1
  256. package/lib/duet/p-BdUQgQFn.js +4 -0
  257. package/lib/duet/p-DdwVwK5C.js +4 -0
  258. package/lib/duet/p-Dr2j33H2.js +4 -0
  259. package/lib/duet/{p-Dvk6bntS.js → p-DxV3RbmM.js} +1 -1
  260. package/lib/duet/{p-fwfCVW-k.js → p-DyXNfxdT.js} +1 -1
  261. package/lib/duet/p-DzerL_yn.js +4 -0
  262. package/lib/duet/p-KocOARXM.js +4 -0
  263. package/lib/duet/p-OdY4DjJa.js +4 -0
  264. package/lib/duet/p-T5kkooky.js +4 -0
  265. package/lib/duet/{p-D5_4M8f7.js → p-Z0D6Gy9e.js} +1 -1
  266. package/lib/duet/{p-bd6f7e7b.entry.js → p-a09c6e42.entry.js} +1 -1
  267. package/lib/duet/{p-5956c71f.entry.js → p-a3a2e89e.entry.js} +1 -1
  268. package/lib/duet/{p-a94d6219.entry.js → p-a440c5b3.entry.js} +1 -1
  269. package/lib/duet/{p-835874ed.entry.js → p-a4a768bf.entry.js} +1 -1
  270. package/lib/duet/{p-e1715e1f.entry.js → p-a72b8cf4.entry.js} +1 -1
  271. package/lib/duet/{p-24f39c08.entry.js → p-ab0cd4e5.entry.js} +1 -1
  272. package/lib/duet/{p-a9353027.entry.js → p-aefcd222.entry.js} +1 -1
  273. package/lib/duet/p-b84ac47b.entry.js +4 -0
  274. package/lib/duet/{p-7cfcd244.entry.js → p-ba0fcce1.entry.js} +1 -1
  275. package/lib/duet/p-ba2b47d3.entry.js +4 -0
  276. package/lib/duet/{p-3d266d49.entry.js → p-baeb1090.entry.js} +1 -1
  277. package/lib/duet/{p-828a4e8b.entry.js → p-bcbe4d11.entry.js} +1 -1
  278. package/lib/duet/{p-fcb87d86.entry.js → p-bf5fae27.entry.js} +1 -1
  279. package/lib/duet/p-c6479694.entry.js +4 -0
  280. package/lib/duet/{p-c037858f.entry.js → p-c8308bec.entry.js} +1 -1
  281. package/lib/duet/p-d0f3a2e6.entry.js +4 -0
  282. package/lib/duet/{p-d29c6c90.entry.js → p-d28a8bc4.entry.js} +1 -1
  283. package/lib/duet/p-d2ceafd6.entry.js +4 -0
  284. package/lib/duet/{p-26ef0a2c.entry.js → p-d96af9c9.entry.js} +1 -1
  285. package/lib/duet/{p-a930cc2b.entry.js → p-dee8ff90.entry.js} +1 -1
  286. package/lib/duet/p-e9421a0e.entry.js +4 -0
  287. package/lib/duet/p-ec6e097b.entry.js +4 -0
  288. package/lib/duet/{p-b52c9aed.entry.js → p-effefdec.entry.js} +1 -1
  289. package/lib/duet/{p-9d16f09d.entry.js → p-fb3b8e0f.entry.js} +1 -1
  290. package/lib/esm/{a11y-utils-Do8wJ0uc.js → a11y-utils-CXqm1pj1.js} +1 -1
  291. package/lib/esm/{app-globals-CM7s1rys.js → app-globals-s-_CGo5t.js} +1 -1
  292. package/lib/esm/duet-action-button.entry.js +5 -5
  293. package/lib/esm/duet-alert.entry.js +4 -4
  294. package/lib/esm/duet-badge.entry.js +4 -4
  295. package/lib/esm/duet-banner.entry.js +8 -8
  296. package/lib/esm/duet-breadcrumb.entry.js +7 -7
  297. package/lib/esm/duet-breadcrumbs.entry.js +7 -7
  298. package/lib/esm/duet-button_2.entry.js +13 -13
  299. package/lib/esm/duet-callout.entry.js +5 -5
  300. package/lib/esm/duet-caption_4.entry.js +14 -13
  301. package/lib/esm/duet-card.entry.js +5 -5
  302. package/lib/esm/duet-checkbox.entry.js +2 -2
  303. package/lib/esm/duet-checkmark.entry.js +4 -4
  304. package/lib/esm/duet-chip.entry.js +3 -3
  305. package/lib/esm/duet-choice_2.entry.js +6 -6
  306. package/lib/esm/duet-collapsible.entry.js +4 -4
  307. package/lib/esm/duet-combobox.entry.js +4 -4
  308. package/lib/esm/duet-contact-card.entry.js +5 -5
  309. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  310. package/lib/esm/duet-date-picker.entry.js +6 -6
  311. package/lib/esm/duet-divider_2.entry.js +5 -5
  312. package/lib/esm/duet-editable-table_3.entry.js +10 -10
  313. package/lib/esm/duet-empty-state.entry.js +2 -2
  314. package/lib/esm/duet-fieldset.entry.js +6 -6
  315. package/lib/esm/duet-file-chooser.entry.js +2 -2
  316. package/lib/esm/duet-footer.entry.js +4 -4
  317. package/lib/esm/duet-grid_2.entry.js +4 -4
  318. package/lib/esm/duet-header_2.entry.js +55 -13
  319. package/lib/esm/duet-hero.entry.js +4 -4
  320. package/lib/esm/duet-icon.entry.js +8 -8
  321. package/lib/esm/duet-input_2.entry.js +8 -8
  322. package/lib/esm/duet-layout.entry.js +2 -2
  323. package/lib/esm/duet-list_2.entry.js +4 -4
  324. package/lib/esm/duet-menu-bar-button.entry.js +4 -4
  325. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +4 -4
  326. package/lib/esm/duet-menu-bar-dropdown.entry.js +6 -6
  327. package/lib/esm/duet-menu-bar-item.entry.js +7 -7
  328. package/lib/esm/duet-menu-bar-link.entry.js +4 -4
  329. package/lib/esm/duet-menu-bar.entry.js +10 -42
  330. package/lib/esm/duet-modal.entry.js +37 -20
  331. package/lib/esm/duet-multiselect.entry.js +10 -10
  332. package/lib/esm/duet-nav.entry.js +3 -3
  333. package/lib/esm/duet-notification_2.entry.js +7 -7
  334. package/lib/esm/duet-number-input.entry.js +14 -9
  335. package/lib/esm/duet-overlay.entry.js +3 -3
  336. package/lib/esm/duet-page-heading.entry.js +5 -5
  337. package/lib/esm/duet-pagination_2.entry.js +18 -18
  338. package/lib/esm/duet-panel.entry.js +51 -0
  339. package/lib/esm/duet-phone-input.entry.js +4 -4
  340. package/lib/esm/duet-popup-menu_2.entry.js +7 -7
  341. package/lib/esm/duet-progress.entry.js +3 -3
  342. package/lib/esm/duet-promo-card.entry.js +7 -7
  343. package/lib/esm/duet-radio_2.entry.js +7 -7
  344. package/lib/esm/duet-range-slider.entry.js +7 -7
  345. package/lib/esm/duet-scrollable_3.entry.js +17 -17
  346. package/lib/esm/duet-section-layout.entry.js +4 -4
  347. package/lib/esm/duet-select.entry.js +9 -9
  348. package/lib/esm/duet-shaped-image.entry.js +4 -4
  349. package/lib/esm/duet-share-chart-item.entry.js +2 -2
  350. package/lib/esm/duet-share-chart.entry.js +8 -8
  351. package/lib/esm/duet-show-more.entry.js +5 -5
  352. package/lib/esm/duet-slideout-lang.entry.js +4 -4
  353. package/lib/esm/duet-slideout-link.entry.js +7 -7
  354. package/lib/esm/duet-slideout-panel-dropdown.entry.js +6 -6
  355. package/lib/esm/duet-slideout-panel.entry.js +13 -13
  356. package/lib/esm/duet-slideout.entry.js +11 -11
  357. package/lib/esm/duet-status-icon.entry.js +4 -4
  358. package/lib/esm/duet-step_2.entry.js +6 -6
  359. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +4 -4
  360. package/lib/esm/duet-submenu-bar-dropdown.entry.js +7 -7
  361. package/lib/esm/duet-submenu-bar-item.entry.js +6 -6
  362. package/lib/esm/duet-submenu-bar-link.entry.js +3 -3
  363. package/lib/esm/duet-submenu-bar.entry.js +8 -8
  364. package/lib/esm/duet-textarea.entry.js +8 -8
  365. package/lib/esm/duet-toggle.entry.js +6 -6
  366. package/lib/esm/duet-toolbar-dropdown-link.entry.js +4 -4
  367. package/lib/esm/duet-toolbar-dropdown.entry.js +6 -6
  368. package/lib/esm/duet-toolbar-item.entry.js +8 -8
  369. package/lib/esm/duet-toolbar-link.entry.js +4 -4
  370. package/lib/esm/duet-toolbar.entry.js +4 -4
  371. package/lib/esm/duet-tooltip-button_2.entry.js +8 -8
  372. package/lib/esm/duet-tooltip.entry.js +5 -5
  373. package/lib/esm/duet-tray.entry.js +6 -6
  374. package/lib/esm/duet-upload-aria-status.entry.js +2 -2
  375. package/lib/esm/duet-upload-item.entry.js +6 -6
  376. package/lib/esm/duet-visually-hidden.entry.js +2 -2
  377. package/lib/esm/duet.js +4 -4
  378. package/lib/esm/{errorcodes.utils-jdmUflM5.js → errorcodes.utils-Bre55Njd.js} +1 -1
  379. package/lib/esm/{focus-utils-Fb4Hjq5k.js → focus-utils-vvgYykmM.js} +1 -1
  380. package/lib/esm/{index-CUNSbdt4.js → index-B_VBeM3r.js} +5 -1
  381. package/lib/esm/{label-CSouuUKb.js → label-l-Eza5H3.js} +1 -1
  382. package/lib/esm/{language-utils-fAqNRSrI.js → language-utils-B7PXWqpg.js} +1 -1
  383. package/lib/esm/loader.js +4 -4
  384. package/lib/esm/{slot-utils-CgXzS75x.js → slot-utils-aDCRCdc4.js} +1 -1
  385. package/lib/esm/{themeable-component-EVqsr6Ut.js → themeable-component-DPqozkF4.js} +14 -2
  386. package/lib/esm/{token-utils-orOLyKQw.js → token-utils-BGFYWQ6j.js} +76 -9
  387. package/lib/esm/{tokens-Dvk6bntS.js → tokens-DxV3RbmM.js} +1 -1
  388. package/lib/esm/{tokens.module-D5_4M8f7.js → tokens.module-Z0D6Gy9e.js} +1 -1
  389. package/lib/types/components/duet-logo/duet-logo.d.ts +8 -0
  390. package/lib/types/components/duet-menu-bar/duet-menu-bar.d.ts +5 -4
  391. package/lib/types/components/duet-modal/duet-modal.d.ts +17 -1
  392. package/lib/types/components/duet-number-input/duet-number-input.d.ts +3 -1
  393. package/lib/types/components/duet-panel/duet-panel.d.ts +47 -0
  394. package/lib/types/components.d.ts +123 -4
  395. package/lib/types/utils/token-utils.d.ts +4 -0
  396. package/lib/types/utils/turva2-color-tokens.d.ts +39 -0
  397. package/package.json +3 -3
  398. package/lib/duet/p-2354e2c1.entry.js +0 -4
  399. package/lib/duet/p-50Jw5Ir2.js +0 -4
  400. package/lib/duet/p-5432f24c.entry.js +0 -4
  401. package/lib/duet/p-710ae64d.entry.js +0 -4
  402. package/lib/duet/p-7a9e6423.entry.js +0 -4
  403. package/lib/duet/p-7c4f010e.entry.js +0 -4
  404. package/lib/duet/p-88773ebf.entry.js +0 -4
  405. package/lib/duet/p-89e6b8d0.entry.js +0 -4
  406. package/lib/duet/p-9d501c34.entry.js +0 -4
  407. package/lib/duet/p-BI7G8d3Z.js +0 -4
  408. package/lib/duet/p-Be6-farU.js +0 -4
  409. package/lib/duet/p-CF5Kkdym.js +0 -4
  410. package/lib/duet/p-DyjhCDQL.js +0 -4
  411. package/lib/duet/p-M3ljdQX1.js +0 -4
  412. package/lib/duet/p-b2c2a24e.entry.js +0 -4
  413. package/lib/duet/p-b314a75a.entry.js +0 -4
  414. package/lib/duet/p-b4569b01.entry.js +0 -4
  415. package/lib/duet/p-d2e1cef2.entry.js +0 -4
  416. package/lib/duet/p-e89e940b.entry.js +0 -4
  417. package/lib/duet/p-ekdrapBY.js +0 -4
  418. package/lib/duet/p-fc319c57.entry.js +0 -4
@@ -129,6 +129,32 @@
129
129
  width: 0;
130
130
  height: 0;
131
131
  }
132
+ .duet-menu-bar .container duet-logo.large,
133
+ .duet-menu-bar .container duet-logo.only-symbol {
134
+ display: none;
135
+ }
136
+ .duet-menu-bar .container.with-info-text duet-logo.medium {
137
+ display: none;
138
+ }
139
+ .duet-menu-bar .container.with-info-text duet-logo.only-symbol {
140
+ display: block;
141
+ }
142
+ @media (min-width: 48em) {
143
+ .duet-menu-bar .container.with-info-text duet-logo.medium {
144
+ display: block;
145
+ }
146
+ .duet-menu-bar .container.with-info-text duet-logo.only-symbol {
147
+ display: none;
148
+ }
149
+ }
150
+ @media (min-width: 76.25em) {
151
+ .duet-menu-bar .container duet-logo.medium {
152
+ display: none;
153
+ }
154
+ .duet-menu-bar .container duet-logo.large {
155
+ display: block;
156
+ }
157
+ }
132
158
  @media (min-width: 62em) {
133
159
  .duet-menu-bar .container {
134
160
  height: 5rem;
@@ -153,6 +179,19 @@
153
179
  flex-basis: 0;
154
180
  flex-grow: 1;
155
181
  justify-content: flex-start;
182
+ width: auto;
183
+ height: 40px;
184
+ }
185
+ @media (min-width: 76.25em) {
186
+ .duet-menu-bar .container > :first-child {
187
+ height: 48px;
188
+ }
189
+ }
190
+ .duet-menu-bar .container > :first-child:has(.duet-logo-info-text) {
191
+ flex-grow: 8;
192
+ }
193
+ .duet-menu-bar .container > :first-child:has(.duet-logo-info-text) duet-paragraph {
194
+ max-height: 100%;
156
195
  }
157
196
  .duet-menu-bar .container > :last-child {
158
197
  flex-basis: 0;
@@ -165,6 +204,34 @@
165
204
  justify-content: center;
166
205
  height: 100%;
167
206
  }
207
+ .duet-menu-bar .container .duet-logo-info-text {
208
+ max-height: 2.8875rem;
209
+ padding-left: 16px;
210
+ margin-left: 16px;
211
+ overflow: hidden;
212
+ font-family: "localtapiola-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
213
+ font-size: 0.875rem;
214
+ font-style: normal;
215
+ font-weight: 400;
216
+ font-variant-numeric: tabular-nums;
217
+ -webkit-hyphens: auto;
218
+ hyphens: auto;
219
+ line-height: 1.1;
220
+ color: rgb(62, 84, 102);
221
+ text-overflow: ellipsis;
222
+ border-left: 1px solid rgb(212, 223, 229);
223
+ }
224
+ .duet-menu-bar .container .duet-logo-info-text.duet-theme-turva {
225
+ font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
226
+ color: rgb(71, 78, 101);
227
+ border-left-color: rgb(222, 224, 228);
228
+ }
229
+ @media (min-width: 48em) {
230
+ .duet-menu-bar .container .duet-logo-info-text {
231
+ max-height: 3.3rem;
232
+ font-size: 1rem;
233
+ }
234
+ }
168
235
  .duet-menu-bar.duet-theme-turva {
169
236
  background: rgb(255, 255, 255);
170
237
  box-shadow: 0 2px 6px 0 rgba(23, 28, 58, 0.07);
@@ -174,6 +241,26 @@
174
241
  box-shadow: 0 3px 6px 0 rgba(23, 28, 58, 0.1);
175
242
  }
176
243
  }
244
+ .duet-menu-bar.duet-menu-bar-slim .container duet-logo.medium {
245
+ display: block;
246
+ }
247
+ .duet-menu-bar.duet-menu-bar-slim .container duet-logo.large {
248
+ display: none;
249
+ }
250
+ .duet-menu-bar.duet-menu-bar-slim .container.with-info-text duet-logo.medium {
251
+ display: none;
252
+ }
253
+ .duet-menu-bar.duet-menu-bar-slim .container.with-info-text duet-logo.only-symbol {
254
+ display: block;
255
+ }
256
+ @media (min-width: 48em) {
257
+ .duet-menu-bar.duet-menu-bar-slim .container.with-info-text duet-logo.medium {
258
+ display: block;
259
+ }
260
+ .duet-menu-bar.duet-menu-bar-slim .container.with-info-text duet-logo.only-symbol {
261
+ display: none;
262
+ }
263
+ }
177
264
  @media (min-width: 62em) {
178
265
  .duet-menu-bar.duet-menu-bar-slim .container {
179
266
  height: 4rem;
@@ -207,4 +294,8 @@
207
294
  }
208
295
  :host(.duet-theme-turva2) .duet-theme-turva .right {
209
296
  color: #172a3b;
297
+ }
298
+ :host(.duet-theme-turva2) .duet-theme-turva .duet-logo-info-text {
299
+ color: #354f65;
300
+ border-left-color: #d4dde2;
210
301
  }
@@ -1,7 +1,6 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { media_query_large, media_query_xx_large } from "@duetds/tokens/lib/tokens.json";
5
4
  import { Build, h, Host } from "@stencil/core";
6
5
  import { inheritGlobalTheme } from "../../common";
7
6
  import { getLanguage } from "../../utils/language-utils";
@@ -11,14 +10,6 @@ import { getLanguage } from "../../utils/language-utils";
11
10
  */
12
11
  export class DuetMenuBar {
13
12
  constructor() {
14
- /**
15
- * Own Properties.
16
- */
17
- this.mql = [
18
- window.matchMedia(media_query_large.replace(/'/g, "")),
19
- window.matchMedia(media_query_xx_large.replace(/'/g, "")),
20
- ];
21
- this.boundMqlFunctions = [];
22
13
  this.previousYScroll = 0;
23
14
  this.hidden = false;
24
15
  this.onBottom = false;
@@ -26,6 +17,7 @@ export class DuetMenuBar {
26
17
  this.leftMoreVisible = false;
27
18
  this.rightMoreVisible = false;
28
19
  this.centerSlotUsed = false;
20
+ this.mediaQueryMediumMatches = false;
29
21
  /**
30
22
  * Theme.
31
23
  */
@@ -72,15 +64,6 @@ export class DuetMenuBar {
72
64
  const centerSlot = this.element.querySelector('[slot="center"]');
73
65
  this.centerSlotUsed = !!centerSlot;
74
66
  };
75
- this.changeLogoSize = () => {
76
- this.checkCenterSlot();
77
- if (this.mql[1].matches && this.centerSlotUsed) {
78
- this.logoSize = "large";
79
- }
80
- else {
81
- this.logoSize = "medium";
82
- }
83
- };
84
67
  this.handleLogoClick = (e) => {
85
68
  this.duetEvent.emit({
86
69
  name: "logoClick",
@@ -124,26 +107,8 @@ export class DuetMenuBar {
124
107
  inheritGlobalTheme(this);
125
108
  }
126
109
  connectedCallback() {
127
- this.changeLogoSize();
128
- for (let i = 0; i < this.mql.length; i++) {
129
- // addEventListener is not available in Stencil hydrate
130
- if (this.mql[i].addEventListener) {
131
- const bound = this.changeLogoSize.bind(this);
132
- this.mql[i].addEventListener("change", bound);
133
- this.boundMqlFunctions[i] = bound;
134
- }
135
- }
136
110
  this.checkCenterSlot();
137
111
  }
138
- disconnectedCallback() {
139
- for (let i = 0; i < this.mql.length; i++) {
140
- // removeEventListener is not available in Stencil hydrate
141
- if (this.mql[i].removeEventListener) {
142
- this.mql[i].removeEventListener("change", this.boundMqlFunctions[i]);
143
- }
144
- }
145
- this.boundMqlFunctions = [];
146
- }
147
112
  componentDidLoad() {
148
113
  if (Build.isServer || Build.isTesting) {
149
114
  return;
@@ -167,14 +132,17 @@ export class DuetMenuBar {
167
132
  render() {
168
133
  const slideoutAvailable = document.querySelectorAll("duet-slideout").length > 0;
169
134
  const isUsedAsAdditionalHorizontalNav = slideoutAvailable && !this.logo;
170
- return (h(Host, { key: '349581a9e41fcb410d37770ed09d2311de7d38a5' }, h("nav", { key: '96ed53773cd355d673a2b3977b40286d67985810', class: {
135
+ return (h(Host, { key: 'da384aec934b8177658bc5b2ba9126dabe8b44cc' }, h("nav", { key: 'eb7dd8d958e964d1b0e5d2cf96a20a4d0c0c70dc', class: {
171
136
  "duet-menu-bar": true,
172
137
  "duet-theme-turva": this.theme === "turva",
173
138
  "horizontal-nav": isUsedAsAdditionalHorizontalNav,
174
139
  "duet-menu-bar-slim": !this.centerSlotUsed,
175
140
  hidden: this.hidden && this.hideOnScroll,
176
141
  bottom: this.onBottom,
177
- }, "aria-label": this.accessibleLabel }, h("div", { key: '93a3b7f680dfc2f998274c56a380e29332b24f90', class: "top" }), h("div", { key: 'a8d14b711a83aee7ea63fa39f5be9d6d61929a37', class: { container: true }, ref: el => (this.container = el), onScroll: () => this.scrollbarCheck() }, this.logo && (h("div", { key: '306ad41f64eaecd20cc98bbe2b9d490912c6820c' }, h("duet-logo", { key: '5a91055e192e1214c7bd921c2ff300510594c47b', size: this.logoSize, margin: "none", theme: this.theme, href: this.logoHref, accessibleLabel: this.logoLinkAccessibleLabel, onClick: this.handleLogoClick, language: this.language }))), h("div", { key: '7fea1e39256f5847358f2533607ac26f53fc35d3', class: "list center", role: "list" }, h("div", { key: '4c953fc8762eadafb6e4a41534676021e4fb0675', class: "more-left", hidden: !this.leftMoreVisible, role: "presentation" }), h("slot", { key: 'ee961cf16f11a62fdef74f7ab57cf4bf653ba8ab', name: "center" }), h("div", { key: '1f66cfd1c1fea5f9c1764ff8b3a697c0459a653b', class: "more-right", hidden: !this.rightMoreVisible, role: "presentation" })), h("div", { key: '3d7cb50a008c1ce893a3ad504b186dbb3965a130', class: "list right", role: "list" }, h("slot", { key: '7ff47fae8ea6f7d49fcfe5e53d43491994741f26', name: "right" }))), h("div", { key: '8bc982c15ce030ae88966fe1646914b6bf295960', class: "bottom" }))));
142
+ }, "aria-label": this.accessibleLabel }, h("div", { key: '4a8a38d9fd5457b716bff3252791d35eb8441aec', class: "top" }), h("div", { key: 'dfe385565d075aba16005d29790111cc51b5a464', class: { container: true, "with-info-text": !!this.logoInfoText && !this.centerSlotUsed }, ref: el => (this.container = el), onScroll: () => this.scrollbarCheck() }, this.logo && (h("div", { key: 'd7fa21e1f8b0f3ea5eeb5eff037790a47c57be22' }, h("duet-logo", { key: '081cd1b58c97e71196ff421dbb7b1ed4f2e2278e', class: "medium", size: "medium", margin: "none", theme: this.theme, href: this.logoHref, accessibleLabel: this.logoLinkAccessibleLabel, onClick: this.handleLogoClick, language: this.language }), h("duet-logo", { key: '41b6ffe971ec6c9ff78c2f79834df3c9dceb3482', class: "large", size: "large", margin: "none", theme: this.theme, href: this.logoHref, accessibleLabel: this.logoLinkAccessibleLabel, onClick: this.handleLogoClick, language: this.language }), h("duet-logo", { key: '16cc7621a8d50d64d63fd7b8af07f074e30a49d0', class: "only-symbol", onlySymbol: true, margin: "none", theme: this.theme, href: this.logoHref, accessibleLabel: this.logoLinkAccessibleLabel, onClick: this.handleLogoClick, language: this.language }), this.logoInfoText && !this.centerSlotUsed && (h("div", { key: '2f0bcec90b8c9f508d95fb31d8ad9904ea7bf652', class: {
143
+ "duet-logo-info-text": true,
144
+ "duet-theme-turva": this.theme === "turva",
145
+ } }, this.logoInfoText)))), h("div", { key: '0630a90a58cfcfdd4255c018db1ea172240b5611', class: "list center", role: "list" }, h("div", { key: '6e9f9d06775216dfa9ec70b2c768d5957ba67f10', class: "more-left", hidden: !this.leftMoreVisible, role: "presentation" }), h("slot", { key: '03f6a07cf3633d2ba2c62b76d40d2f74bba6f366', name: "center" }), h("div", { key: '7baeb903a2656bb33129bac0cf6007fce4604bd1', class: "more-right", hidden: !this.rightMoreVisible, role: "presentation" })), h("div", { key: '8a183192d62d7040c1ab2a8a684d8a7678803436', class: "list right", role: "list" }, h("slot", { key: 'd2f48181bf06824a5901fdc37f7f9eb729460c68', name: "right" }))), h("div", { key: '3b1e931eb638ea04b5a0743d2ab03413ca220a33', class: "bottom" }))));
178
146
  }
179
147
  static get is() { return "duet-menu-bar"; }
180
148
  static get encapsulation() { return "shadow"; }
@@ -306,6 +274,25 @@ export class DuetMenuBar {
306
274
  "setter": false,
307
275
  "reflect": false
308
276
  },
277
+ "logoInfoText": {
278
+ "type": "string",
279
+ "attribute": "logo-info-text",
280
+ "mutable": false,
281
+ "complexType": {
282
+ "original": "string",
283
+ "resolved": "string",
284
+ "references": {}
285
+ },
286
+ "required": false,
287
+ "optional": false,
288
+ "docs": {
289
+ "tags": [],
290
+ "text": "Additional information text to show next to the logo. Show only when the center slot is empty."
291
+ },
292
+ "getter": false,
293
+ "setter": false,
294
+ "reflect": false
295
+ },
309
296
  "accessibleLabel": {
310
297
  "type": "string",
311
298
  "attribute": "accessible-label",
@@ -354,7 +341,8 @@ export class DuetMenuBar {
354
341
  "logoSize": {},
355
342
  "leftMoreVisible": {},
356
343
  "rightMoreVisible": {},
357
- "centerSlotUsed": {}
344
+ "centerSlotUsed": {},
345
+ "mediaQueryMediumMatches": {}
358
346
  };
359
347
  }
360
348
  static get events() {
@@ -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: '6e69fa56fa86d15fd577b1147cb564053c9e8c9e', role: "listitem", onfocus: () => this.setFocus() }, h("button", { key: 'd2baf734d37ebd5183628f2cf789651a7627da3d', ref: button => (this.nativeButton = button), class: {
52
+ return (h(Host, { key: '5e64c2ede59d8e16972663cace2e98dffca3a060', role: "listitem", onfocus: () => this.setFocus() }, h("button", { key: '362525c4f563bd1a5ffad7b8fee029d904fb72c8', 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: '17e4032b4ce67707c6694b1e7ab25ee15070f1fc', class: "menu-bar-button-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), h("slot", { key: 'acc459e8b86197b65b2db8e43ff6b72aff63b516' }))));
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: '439d74e7bdfb1396a7c1e2940c3bcf142c3150b6', class: "menu-bar-button-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), h("slot", { key: '61a36d95ee1b2962b3f966dc99678c7e00c00692' }))));
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: 'bd58e1dff54dcb742f71d79a3f4ac926698d8be4', role: "listitem" }, h("div", { key: '5e2ecae92d1714eb9fd29b2ad9c288f0acb022f7', class: {
65
+ return (h(Host, { key: '870e7ba2d40001532dabdb4c9468b73570e1ade7', role: "listitem" }, h("div", { key: '7c60bf682acd9d11e8633f862f07391a706de817', 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: 'bca33875be854118e12277bf022757f89deac664', 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: 'c0bdf57ef46ae179d3c0d6e7f45bdd7ffe10769b', 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: '8b2139cbecc402ef2475876525963e51923f8e36', class: "menu-bar-dropdown-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), h("div", { key: '4ef57ea2a1222ba117d6a0ec160c42e5eb01684c', class: "label" }, h("slot", { key: 'e81fd8db1ce93315bc5bdb466026c170d16141b6', name: "label" }), h("duet-icon", { key: '9f01bcc4114618806fa680c3c813ef9a88e760ab', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), h("div", { key: 'b9877d928d13f438e0cee0fe159f43923932417d', 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: 'c97e52d72933959ecbd6b9519940427735cdeccc', class: "menu-bar-dropdown-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), h("div", { key: 'd831c0f2defb108643ac9a11f6be93f4f98a8dbc', class: "label" }, h("slot", { key: 'c396567614cd3badd2b373a1922ea907f75750a8', name: "label" }), h("duet-icon", { key: '4e8adfdf9998028a514fa386275affa9c4fe29be', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), h("div", { key: '683257ed3f02ee4cde289c0efe48af7f06fa50c5', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
73
73
  items: true,
74
74
  hidden: !this.open,
75
- } }, h("slot", { key: 'aa50757464cf5184b8bda091e87010c8e0d58b41' })))));
75
+ } }, h("slot", { key: '281de42fd56a1c9be76c9b4218d4354032a56834' })))));
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: '94cfab99d4f458ac36c33cf98a8878fdb0ec4893' }, h("a", { key: '282dd002e0715e81d26680884c5c445dd7babc73', class: {
51
+ return (h(Host, { key: '6d31641d480353ee7f924029a31c94dc1747f1ed' }, h("a", { key: 'ea374446994ad7ea0780b8f4320247c718f08219', 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: '546189e81f3a44ca198026d4fb856b65120b3c50', theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), h("slot", { key: 'ec0f06a5ab23e770da10f3b22ee8576cf7276da2' }))));
55
+ }, href: this.href, role: "menuitem", onKeyUp: e => this.handleEscape(e), "aria-label": this.accessibleLabel }, this.icon && (h("duet-icon", { key: '486173db589cdbf851d3a5dd9171990af84707bb', theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), h("slot", { key: 'd284cabdff17ad2590e80ed02894fe87425507b0' }))));
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: 'f974d8d652cd213c89d81ead0f2048f1d109caa2', role: "listitem" }, h(TagName, { key: 'd7ead167979db9405ffbf213ad8f38bd63b0be77', target: !this.url ? null : this.external ? "_blank" : "_self", ref: element => (this.itemElement = element), class: {
74
+ return (h(Host, { key: 'd968cd5ac488d7cc0fea66408de412524dc88b35', role: "listitem" }, h(TagName, { key: '143da0db925d6a45f69a6defcc0d96710d395cbf', 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: '62660a414dab1ad3892c2466ff6550665a6bdbbb', class: "leading-icon", size: "auto", name: this.leadingIcon, margin: "none", theme: this.theme, color: "currentColor" })), h("slot", { key: '63610a02057061d8dbd192e8f29fb80d602b8f62' }), (this.trailingIcon || this.external) && (h("duet-icon", { key: '118ed1bb4814e4b1f89f45322ee5ef4afedd798b', 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: '22ef7c16eb08f2a24bbd902c1e702103a8319621', class: "leading-icon", size: "auto", name: this.leadingIcon, margin: "none", theme: this.theme, color: "currentColor" })), h("slot", { key: '9560bccb8d749a945592866e33279c9e1686f9af' }), (this.trailingIcon || this.external) && (h("duet-icon", { key: 'c152621621d193d9d80cc0984fe36d230a2b7a63', 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: 'c00780c565b538d20ff204a3f9f52dd2cb2bc4d7', role: "listitem" }, h("a", { key: '64c3be1bc38f176f7de7431b6c934685b30e9ee2', class: {
36
+ return (h(Host, { key: 'd150209d2395822ac0ba4b0d6372bdc0ba5532fd', role: "listitem" }, h("a", { key: '46070813f893e645146a7ca8ea798fa455df11e9', 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: 'c1602e9610415be0eecb03ab05e972ed4b19bbc6', class: "menu-bar-link-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), h("slot", { key: '321c5f2123e2eb98ab9cd89bffedb027fc412e26' }))));
40
+ }, href: this.href, "aria-current": this.active ? "true" : "false", "aria-label": this.accessibleLabel }, this.icon && (h("duet-icon", { key: 'bac5752b20258b49e6b3210f071578154de8d8d8', class: "menu-bar-link-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), h("slot", { key: 'efec03fcc7a033a4f9df871a4a087d7c9a04a0e8' }))));
41
41
  }
42
42
  static get is() { return "duet-menu-bar-link"; }
43
43
  static get encapsulation() { return "shadow"; }
@@ -10,6 +10,7 @@ import { isEscapeKey } from "../../utils/keyboard-utils";
10
10
  import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocaleString, } from "../../utils/language-utils";
11
11
  import { hasSlot } from "../../utils/slot-utils";
12
12
  import { Teleport } from "../../utils/teleport";
13
+ import { postfixTheme } from "../../utils/token-utils";
13
14
  // The transition below is slightly higher than the actual CSS transition as VoiceOver on
14
15
  // iOS has otherwise problems moving the focus from modal back to the original element.
15
16
  // This issue is similar to what we’ve seen in Duet Date Picker + iOS VoiceOver.
@@ -169,9 +170,18 @@ export class DuetModal {
169
170
  enableBodyScroll(this.variation === "slide-up" ? this.modalContentEl : this.modalEl);
170
171
  this.duetClose.emit();
171
172
  this.teleport.removeInertFromSiblings();
172
- setTimeout(() => {
173
- focusElement(this.focusedElBeforeOpen);
174
- }, TRANSITION_MS);
173
+ if (this.focusElementOnClose !== "") {
174
+ setTimeout(() => {
175
+ let focusEl = this.focusedElBeforeOpen;
176
+ if (typeof this.focusElementOnClose === "string") {
177
+ focusEl = document.getElementById(this.focusElementOnClose) || focusEl;
178
+ }
179
+ else {
180
+ focusEl = this.focusElementOnClose || focusEl;
181
+ }
182
+ focusElement(focusEl);
183
+ }, TRANSITION_MS);
184
+ }
175
185
  if (this.isAndroidDevice) {
176
186
  window.removeEventListener("resize", this.handleAndroidResizeEvents);
177
187
  }
@@ -247,6 +257,12 @@ export class DuetModal {
247
257
  async hide() {
248
258
  this.open = false;
249
259
  }
260
+ /**
261
+ * Set focus on the close button of the modal.
262
+ */
263
+ async focusCloseButton() {
264
+ this.buttonEl.setFocus();
265
+ }
250
266
  /**
251
267
  * Scolls the top of the modal's content into view
252
268
  *
@@ -308,20 +324,16 @@ export class DuetModal {
308
324
  */
309
325
  render() {
310
326
  var _a, _b;
311
- let iconColor = "primary";
312
- let closeColor = "secondary";
313
- const closingButton = (h("div", { key: 'ec3d40550fa55963fb7593d76847c9cd88ce7d7f', class: "duet-modal-close" }, h("duet-button", { key: 'ba63577c49f70ce5a0afb069c611cc71889a1ecc', 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 })));
314
- if (this.theme === "turva") {
315
- iconColor = "primary-turva";
316
- closeColor = "secondary-turva";
317
- }
318
- return (h("div", { key: '45ef05dd96f31c9f905e06a7fd39458e896342ec', 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: {
327
+ const iconColor = postfixTheme("primary", this.theme);
328
+ const closeColor = postfixTheme("secondary", this.theme);
329
+ const closingButton = (h("div", { key: '39d89598c50f59be771033542b474cc6b7e1df0b', class: "duet-modal-close" }, h("duet-button", { key: 'b5c6f0c486eaa24d4c7747a839288562e63808bf', 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 })));
330
+ return (h("div", { key: '07de0b18de78d147afa8cdaeadc39c877cd32dca', 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: {
319
331
  "duet-modal-container": true,
320
332
  "duet-theme-turva": this.theme === "turva",
321
333
  "duet-modal-active": this.open,
322
334
  "duet-modal-slide-up": this.variation === "slide-up",
323
335
  "duet-modal-has-sticky-header": this.hasStickyHeader,
324
- } }, h("duet-overlay", { key: 'fae07b0b15aa32b393f28bcb70a2807b67d9afc1', "z-index": "-1", visible: this.open, variation: this.variation === "loader" ? "white" : "default" }), h("div", { key: 'c3afda30fb6503e4f9f2a6bdfd61b5ffadf33b98', ref: modalInner => (this.modalInnerEl = modalInner), class: {
336
+ } }, h("duet-overlay", { key: '08d67fe06635ffce14ed2151c9b7211740f5366f', "z-index": "-1", visible: this.open, variation: this.variation === "loader" ? "white" : "default" }), h("div", { key: '83d7365182d8a008dbceca7d19d5f110d4e3e39a', ref: modalInner => (this.modalInnerEl = modalInner), class: {
325
337
  "duet-modal-inner": true,
326
338
  [this.size]: true,
327
339
  "duet-modal-slide-up": this.variation === "slide-up",
@@ -332,18 +344,22 @@ export class DuetModal {
332
344
  this.closeModal(e);
333
345
  }
334
346
  }
335
- } }, h("div", { key: 'ed730970e831d8b6d399da50b2b7e27fb686b12c', ref: modalContentEl => (this.modalContentEl = modalContentEl), class: {
347
+ } }, h("div", { key: '926f82204442851d8fa4d3b83c49fa1b3e0970f0', ref: modalContentEl => (this.modalContentEl = modalContentEl), "aria-live": this.accessibleAnnounceChanges === "all" ? "polite" : null, "aria-atomic": this.accessibleAnnounceChanges === "all" ? "true" : null, class: {
336
348
  "duet-modal": true,
337
349
  "duet-modal-has-sticky-header": this.hasStickyHeader,
338
350
  [this.size]: true,
339
351
  [this.variation]: true,
340
- } }, this.gutterSize !== "none" && !this.hasStickyHeader && h("duet-spacer", { key: 'f2ee177793bd6df80606fa4ed029cc1df3cc581c' }), this.hasStickyHeader ? (h("div", { class: "duet-modal-sticky-header" }, closingButton, h("slot", { name: "sticky-header" }))) : (closingButton), h("div", { key: 'f5a12b8a53096e75656c8d7fd879055d26da43a4', class: {
352
+ } }, this.gutterSize !== "none" && !this.hasStickyHeader && h("duet-spacer", { key: 'b1b6c5d0fab63540a89c585e09db2044a9944957' }), this.hasStickyHeader ? (h("div", { class: "duet-modal-sticky-header" }, closingButton, h("slot", { name: "sticky-header" }))) : (closingButton), h("div", { key: '55e0891ac4dc8e5eaebd53740ccc2afb4759c45c', class: {
341
353
  "duet-modal-body": true,
342
354
  "duet-modal-gutter-none": this.gutterSize === "none",
343
355
  "duet-modal-gutter-small": this.gutterSize === "small",
344
356
  "duet-modal-gutter-medium": this.gutterSize === "medium",
345
357
  "duet-modal-gutter-large": this.gutterSize === "large",
346
- } }, h("div", { key: '7580715861362da09389b987b5e40c5460c9d833', class: "duet-modal-header" }, h("span", { key: 'da33874c652058416c832a1b28219bba3113fff1', class: "duet-modal-inner-slot-top" }, h("slot", { key: '5ac1de4f0ead45d55a72603d465eeff16519a059', name: "top" })), this.icon && h("duet-icon", { key: '9c44461274fde27a1b0a58c4c18a31c49821959c', name: this.icon, size: "xx-large", color: this.color || iconColor }), this.heading && (h("duet-heading", { key: 'b9cfb51b630ec505e221b51ff98b47f87fe84ae8', "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: '205e11c6fd001742285c628707cb7758a238b65d', class: "duet-modal-spinner" }, h("duet-spinner", { key: 'ce31836f38e2524b6748993ce45e1c4aed3e55f4', size: "large", color: "primary" }))), h("div", { key: '458d7617638b4ce61afe259a1a0f2d3eb6dca38c', class: "duet-modal-inner-slot-default", ref: el => (this.slotContainerEl = el), "aria-live": this.variation === "loader" ? "assertive" : "off" }, h("slot", { key: '6e85fec665aa51db0ee3ce5726e833cd798709f5' })))))));
358
+ }, "aria-live": this.accessibleAnnounceChanges === "heading" ? "polite" : null, "aria-atomic": this.accessibleAnnounceChanges === "heading" ? "true" : null }, h("div", { key: '1cab42f970d7b12c6684ac63e37324516180d168', class: "duet-modal-header" }, h("span", { key: 'a3e9c69a6eb8ebcc8e0cbb282e14438c20153f7c', class: "duet-modal-inner-slot-top" }, h("slot", { key: 'b719c6a7ae968b6687f259d061ec414326ad9301', name: "top" })), this.icon && h("duet-icon", { key: '378d48739073800b81634af0441e5b82013df9a6', name: this.icon, size: "xx-large", color: this.color || iconColor }), this.heading && (h("duet-heading", { key: '8052f57a3d06363e38bcf748d81e37ec8d9e7928', "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: 'c98e91827794451431e8f875994446ee09d5bd9f', class: "duet-modal-spinner" }, h("duet-spinner", { key: '08f09524dd18e633063e5a5ac5fced5103610d7d', size: "large", color: postfixTheme("primary", this.theme) }))), h("div", { key: 'b237e8483fd62056b4f99507a78580983b1135a8', "aria-live": this.variation === "loader"
359
+ ? "assertive"
360
+ : this.accessibleAnnounceChanges === "body"
361
+ ? "polite"
362
+ : null, "aria-atomic": this.accessibleAnnounceChanges === "body" ? "true" : null, class: "duet-modal-inner-slot-default", ref: el => (this.slotContainerEl = el) }, h("slot", { key: 'f9ed9945e262cbb20ff4c51d1a2e67329eae9a5e' })))))));
347
363
  }
348
364
  static get is() { return "duet-modal"; }
349
365
  static get encapsulation() { return "shadow"; }
@@ -800,6 +816,54 @@ export class DuetModal {
800
816
  "setter": false,
801
817
  "reflect": false,
802
818
  "defaultValue": "false"
819
+ },
820
+ "focusElementOnClose": {
821
+ "type": "string",
822
+ "attribute": "focus-element-on-close",
823
+ "mutable": false,
824
+ "complexType": {
825
+ "original": "FocusableComponent | HTMLElement | string",
826
+ "resolved": "FocusableComponent | HTMLElement | string",
827
+ "references": {
828
+ "FocusableComponent": {
829
+ "location": "import",
830
+ "path": "../../common",
831
+ "id": "src/common/index.ts::FocusableComponent"
832
+ },
833
+ "HTMLElement": {
834
+ "location": "global",
835
+ "id": "global::HTMLElement"
836
+ }
837
+ }
838
+ },
839
+ "required": false,
840
+ "optional": false,
841
+ "docs": {
842
+ "tags": [],
843
+ "text": "Where to move focus when the modal is closed, either set the element dirctly with JS or give the id of the\nelement as a string. Use empty string to disable focus moving on close - do this if after closing there is\nanother element that automatically gets the focus or you handle focusing manually."
844
+ },
845
+ "getter": false,
846
+ "setter": false,
847
+ "reflect": false
848
+ },
849
+ "accessibleAnnounceChanges": {
850
+ "type": "string",
851
+ "attribute": "accessible-announce-changes",
852
+ "mutable": false,
853
+ "complexType": {
854
+ "original": "\"all\" | \"heading\" | \"body\"",
855
+ "resolved": "\"all\" | \"body\" | \"heading\"",
856
+ "references": {}
857
+ },
858
+ "required": false,
859
+ "optional": false,
860
+ "docs": {
861
+ "tags": [],
862
+ "text": "Makes either the entire modal (\"all\"), headign and body content (\"heading\"), or just its body content (\"body\")\nan aria-live region, so that changes are announced by the screen readers. Do not use with loader variation,\nas it handles aria-live separately."
863
+ },
864
+ "getter": false,
865
+ "setter": false,
866
+ "reflect": false
803
867
  }
804
868
  };
805
869
  }
@@ -913,6 +977,23 @@ export class DuetModal {
913
977
  "tags": []
914
978
  }
915
979
  },
980
+ "focusCloseButton": {
981
+ "complexType": {
982
+ "signature": "() => Promise<void>",
983
+ "parameters": [],
984
+ "references": {
985
+ "Promise": {
986
+ "location": "global",
987
+ "id": "global::Promise"
988
+ }
989
+ },
990
+ "return": "Promise<void>"
991
+ },
992
+ "docs": {
993
+ "text": "Set focus on the close button of the modal.",
994
+ "tags": []
995
+ }
996
+ },
916
997
  "scrollToTop": {
917
998
  "complexType": {
918
999
  "signature": "(smooth?: boolean) => Promise<void>",
@@ -273,23 +273,23 @@ export class DuetMultiselect {
273
273
  */
274
274
  render() {
275
275
  var _a;
276
- return (h(Host, { key: '9462771c3a5152e905cf83ba95ade9dda200833b', class: {
276
+ return (h(Host, { key: '9039645a1068225798fac400466f0f782d6f508a', class: {
277
277
  "duet-m-0": this.margin === "none",
278
278
  "duet-expand": this.expand,
279
- } }, h("div", { key: '1235786e07d83c91d28a13462b2fa5cf8e7907e4', class: {
279
+ } }, h("div", { key: '2e521282f27925d3753473b8ad88673583aa9ef2', 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: '5ccd987600f461c3c9a7f7c2f46b602f169b658d', 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: 'e519c7bf79fa2214804ca502285f52a553b79ac3', class: "duet-multiselect-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("slot", { key: 'cfc287863231de5436fc09d8cd57b53d4ef24820', name: "tooltip" }), this.caption && (h("duet-caption", { key: '28baa67909e4027ae56a35d87a4e15a5f118e703', id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { key: '2b734b81c229392334276022638d7265e23c2168', class: "duet-multiselect-wrapper" }, h("button", { key: 'd6fb96ae298ce6e3d7df71217c728f29e1550c9a', 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: '7581bf2f7629efe48e128c941beee89c4d22f709', 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: '7b747555309afe0dc4716f4335269a5dc46f17ff', class: "duet-multiselect-badge" }, this.value.length, h("duet-visually-hidden", { key: '22f9e68fe690b60dfe7e28ba5767d613e1037070' }, this.selectedLangObject[this.language], ",", " ", Array.isArray(this.value) ? this.value.map(item => item.label).join(", ") : ""))), h("svg", { key: '8058039ac3e9c6cf1fdf9b45468adc80673e7096', 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: 'ac8d3582da5151508ede09fe95ea1fe7a6b79444', 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: '0c1236ae0fad913c3e9d2fdd2d8a558467d415e8', id: `${this.identifier}-checkboxes`, role: "listbox", class: {
285
+ }, onKeyDown: (e) => this.onMultiselectKeyDown(e) }, h(DuetInternalLabel, { key: '201f6c1455bdcd9f91b55ce0a0b4cd4a9d0320d0', 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: '121b63fbe0bd9421760ba61450a98c5b45033b60', class: "duet-multiselect-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("slot", { key: '7eda0177c7e86224b0cc85f1ef9fe9861c689d33', name: "tooltip" }), this.caption && (h("duet-caption", { key: 'd13578e0bd40d7f37c4e7806f49f88020632ecfc', id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { key: '6612657d3f9c621dd266233f3c181f15131888f6', class: "duet-multiselect-wrapper" }, h("button", { key: '1f302558ed3d929b35608bd8993a34cea470e248', 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: '6a5d345b0703da1d72fb28f1b8da5aaf708f1718', 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: '7c9de445eddbe7aa6cc7ab0e6f950e24255c83f5', class: "duet-multiselect-badge" }, this.value.length, h("duet-visually-hidden", { key: '5484d17e999f5c43e0b1c55d74809fd731702c8f' }, this.selectedLangObject[this.language], ",", " ", Array.isArray(this.value) ? this.value.map(item => item.label).join(", ") : ""))), h("svg", { key: '27d2c25756197490d9ad767b717bcc0a65f321a8', 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: '60d61a8ab5924b9b6efa3f90b2c5ad680b9caa90', 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: 'c95d55f51da346b5cbd36f784ae32033f702e03d', 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: '2117b075e96a7825514769fde136f51b1ebf59f9', class: "duet-multiselect-all-control-buttons" }, h("button", { key: 'ca41c3bf1cb8dc88c6bf4c5d237e8e3cc5fccd6c', 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: '7070fc9475815328dc21256e8ddf279f182dd2ad', 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: '960369ca4a160516357ece0d5e68e5ab91ce468b', class: "duet-multiselect-all-control-buttons" }, h("button", { key: '9eafc40e7ba1a7d145c10ab150c0f212e74f3940', 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: '3e8788a43be5d079e60384996624141f20cc7ead', 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: '5842f53e10a3f9984cb668fa4730e7d18bb03a21', 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: 'd9ba81594560d3f2c01f50b4832736144aeafe71' }, this.error)))));
292
+ })))))), h("span", { key: 'a33a3bb5da53083960cda036401e48b578c32747', 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: 'abf98e9c3d01f524e5293f13929281d0e80f8b42' }, 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: 'eba9be23a2185429204c40d8bc881d36ba4347b2' }, h("div", { key: '92a2c02b1be2e6d2422f48b4ca0ceb62599af14a', class: { container: true, sticky: this.sticky } }, h("slot", { key: 'b7061a136c9003c794cd95a673e35e9275d57a1e' }), h("slot", { key: '27b5c3e8d84d665200d5df42b98bfc0c376324f4', name: "mobile" }), h("slot", { key: 'edf2f2ef8f2db435f9a54c41eb0992b7e0a080d0', name: "desktop" }))));
34
+ return (h(Host, { key: 'fff23e9c9f994ed80cebebdf7bb16d05a0b13281' }, h("div", { key: 'bf9f4a0d164a27073a8f3be2fc14e7f14f39e479', class: { container: true, sticky: this.sticky } }, h("slot", { key: '4fa7cc506db4c4b6fa9ff5219ba7b7e56107a8da' }), h("slot", { key: 'e9e8c0e724f76feb3aa320207f5a3ef7a7ab5ac9', name: "mobile" }), h("slot", { key: '49e37c33533e3ba9c733660c0420d85a3a63e80f', name: "desktop" }))));
35
35
  }
36
36
  static get is() { return "duet-nav"; }
37
37
  static get encapsulation() { return "shadow"; }
@@ -72,11 +72,11 @@ export class DuetNotification {
72
72
  this.linkElement.focus(options);
73
73
  }
74
74
  render() {
75
- return (h("div", { key: 'e9780a745bc103c0eab1387924e9382dc60bff3c', role: "listitem", class: {
75
+ return (h("div", { key: '16098cf5ca86dd0bd72d9429d1e78557246f850b', role: "listitem", class: {
76
76
  "duet-notification": true,
77
77
  "duet-notification-highlight": this.highlight,
78
78
  "duet-theme-turva": this.theme === "turva",
79
- } }, h("a", { key: '431b8cdff6f259708fc7ad25c2f5cd6c9392bb95', ref: element => (this.linkElement = element), href: this.url, target: this.external ? "_blank" : "_self" }, h("div", { key: 'c8cc56cc53bb242a159aa4a03d3e60d984388630', class: "duet-notification-container" }, h("div", { key: '72bd20f9dc41cbe781591acb8b629ddd7826c332', class: "duet-notification-badge-container" }, this.highlight && (h("div", { key: 'fb2ed998c5a7389dbf0d70f475929092ef2e33f4', class: "duet-notification-badge" }, h("duet-visually-hidden", { key: '0d788165d1ad770a2debcd3efb212d5cd394f32c' }, this.accessibleLabelUnread, ":")))), h("div", { key: 'd9831696985ad34b1bacb4cd7e0ba0466784f44b', class: "duet-notification-content" }, h("slot", { key: '1611ad31717366e3852e70a742be63ebb1283e14' })), h("div", { key: 'ef31c5774b1164e4703f15f6b8a32985b294bd7c', class: "duet-notification-date" }, this.date)))));
79
+ } }, h("a", { key: '440018559e85d3ae11cde70edbaa3848cb453995', ref: element => (this.linkElement = element), href: this.url, target: this.external ? "_blank" : "_self" }, h("div", { key: '6b14d618dda184d06f059b1a3acf99e38e5c17f3', class: "duet-notification-container" }, h("div", { key: 'f65f90dc005eb72c52335cc5c8ca39bffdd88c8a', class: "duet-notification-badge-container" }, this.highlight && (h("div", { key: '7e64283158dd4015c8f676f6ee03efe2cefae043', class: "duet-notification-badge" }, h("duet-visually-hidden", { key: 'c306ae4dc490d35c8aff9259ba3fdf182a5f7e00' }, this.accessibleLabelUnread, ":")))), h("div", { key: '444db9cd85d2dab3181834ba371e1d01f2e6b596', class: "duet-notification-content" }, h("slot", { key: 'efebf98a71ddb109a1bf26729ca0365a624e9f18' })), h("div", { key: 'e9dd7f7817e9e5fd06f38c33225d0821db760cd4', class: "duet-notification-date" }, this.date)))));
80
80
  }
81
81
  static get is() { return "duet-notification"; }
82
82
  static get encapsulation() { return "shadow"; }