@duetds/components 6.8.2 → 6.8.4

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 (632) hide show
  1. package/hydrate/index.js +407 -86
  2. package/lib/cjs/duet-action-button.cjs.entry.js +11 -2
  3. package/lib/cjs/duet-alert.cjs.entry.js +14 -1
  4. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  7. package/lib/cjs/duet-button_2.cjs.entry.js +9 -1
  8. package/lib/cjs/duet-caption_4.cjs.entry.js +15 -1
  9. package/lib/cjs/duet-card.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-checkmark.cjs.entry.js +1 -1
  12. package/lib/cjs/duet-choice_2.cjs.entry.js +22 -4
  13. package/lib/cjs/duet-collapsible.cjs.entry.js +4 -2
  14. package/lib/cjs/duet-combobox.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-contact-card.cjs.entry.js +1 -1
  16. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-date-picker.cjs.entry.js +15 -3
  18. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-editable-table_3.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  22. package/lib/cjs/duet-footer.cjs.entry.js +14 -2
  23. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-header_2.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-input_2.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +2 -2
  31. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +11 -3
  32. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +17 -4
  33. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +3 -3
  34. package/lib/cjs/duet-menu-bar.cjs.entry.js +7 -1
  35. package/lib/cjs/duet-modal.cjs.entry.js +12 -2
  36. package/lib/cjs/duet-multiselect.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-nav.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-number-input.cjs.entry.js +3 -3
  40. package/lib/cjs/duet-page-heading.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-pagination_2.cjs.entry.js +6 -4
  42. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  44. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  45. package/lib/cjs/duet-scrollable_3.cjs.entry.js +2 -2
  46. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  47. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  48. package/lib/cjs/duet-slideout-lang.cjs.entry.js +9 -2
  49. package/lib/cjs/duet-slideout-link.cjs.entry.js +3 -3
  50. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +9 -3
  51. package/lib/cjs/duet-slideout-panel.cjs.entry.js +37 -9
  52. package/lib/cjs/duet-slideout.cjs.entry.js +48 -9
  53. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  54. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +13 -3
  55. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +31 -5
  56. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +12 -3
  57. package/lib/cjs/duet-submenu-bar.cjs.entry.js +42 -4
  58. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  59. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  60. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +11 -3
  61. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +17 -4
  62. package/lib/cjs/duet-toolbar-link.cjs.entry.js +3 -3
  63. package/lib/cjs/duet-toolbar.cjs.entry.js +1 -1
  64. package/lib/cjs/duet-tooltip.cjs.entry.js +4 -1
  65. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  66. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  67. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  68. package/lib/cjs/duet.cjs.js +2 -2
  69. package/lib/cjs/{focus-utils-65c3a6dd.js → focus-utils-1cfcd199.js} +1 -1
  70. package/lib/cjs/{index-5bd185a8.js → index-ab015402.js} +1 -1
  71. package/lib/cjs/loader.cjs.js +2 -2
  72. package/lib/collection/components/duet-action-button/duet-action-button.js +38 -3
  73. package/lib/collection/components/duet-alert/duet-alert.js +21 -4
  74. package/lib/collection/components/duet-button/duet-button.js +27 -12
  75. package/lib/collection/components/duet-caption/duet-caption.js +1 -1
  76. package/lib/collection/components/duet-card/duet-card.js +3 -3
  77. package/lib/collection/components/duet-checkbox/duet-checkbox.js +3 -3
  78. package/lib/collection/components/duet-choice/duet-choice.js +33 -11
  79. package/lib/collection/components/duet-choice-group/duet-choice-group.css +1 -1
  80. package/lib/collection/components/duet-collapsible/duet-collapsible.css +3 -0
  81. package/lib/collection/components/duet-collapsible/duet-collapsible.js +23 -3
  82. package/lib/collection/components/duet-combobox/duet-combobox.js +3 -3
  83. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.js +1 -1
  84. package/lib/collection/components/duet-date-picker/duet-date-picker.js +23 -9
  85. package/lib/collection/components/duet-divider/duet-divider.js +1 -1
  86. package/lib/collection/components/duet-editable-table/duet-editable-table.js +5 -5
  87. package/lib/collection/components/duet-empty-state/duet-empty-state.js +1 -1
  88. package/lib/collection/components/duet-footer/duet-footer.js +26 -12
  89. package/lib/collection/components/duet-grid/duet-grid.js +3 -3
  90. package/lib/collection/components/duet-header/duet-header.js +15 -15
  91. package/lib/collection/components/duet-heading/duet-heading.js +1 -1
  92. package/lib/collection/components/duet-hero/duet-hero.js +5 -5
  93. package/lib/collection/components/duet-icon/duet-icon.js +1 -1
  94. package/lib/collection/components/duet-input/duet-input.js +8 -8
  95. package/lib/collection/components/duet-label/duet-label.js +2 -2
  96. package/lib/collection/components/duet-layout/duet-layout.js +1 -1
  97. package/lib/collection/components/duet-link/duet-link.js +20 -3
  98. package/lib/collection/components/duet-list/duet-list.js +4 -4
  99. package/lib/collection/components/duet-logo/duet-logo.js +1 -1
  100. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +17 -2
  101. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.css +7 -0
  102. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.css +7 -0
  103. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +41 -2
  104. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.css +7 -0
  105. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +9 -1
  106. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.css +7 -0
  107. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +1 -1
  108. package/lib/collection/components/duet-modal/duet-modal.js +19 -7
  109. package/lib/collection/components/duet-multiselect/duet-multiselect.js +5 -5
  110. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +1 -1
  111. package/lib/collection/components/duet-number-input/duet-number-input.js +6 -6
  112. package/lib/collection/components/duet-pagination/duet-pagination.js +2 -2
  113. package/lib/collection/components/duet-paragraph/duet-paragraph.js +3 -3
  114. package/lib/collection/components/duet-radio/duet-radio.js +3 -3
  115. package/lib/collection/components/duet-range-slider/duet-range-slider.js +2 -2
  116. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +6 -4
  117. package/lib/collection/components/duet-select/duet-select.js +5 -5
  118. package/lib/collection/components/duet-slideout/duet-slideout.css +14 -0
  119. package/lib/collection/components/duet-slideout/duet-slideout.js +81 -7
  120. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +14 -2
  121. package/lib/collection/components/duet-slideout-link/duet-slideout-link.css +7 -0
  122. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +1 -1
  123. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.css +16 -0
  124. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +63 -8
  125. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.css +8 -1
  126. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +33 -1
  127. package/lib/collection/components/duet-spacer/duet-spacer.js +2 -2
  128. package/lib/collection/components/duet-spinner/duet-spinner.js +1 -1
  129. package/lib/collection/components/duet-step/duet-step.js +2 -2
  130. package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
  131. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.css +7 -0
  132. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +71 -2
  133. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.css +41 -8
  134. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +73 -3
  135. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.css +30 -0
  136. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +29 -1
  137. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.css +54 -0
  138. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +28 -1
  139. package/lib/collection/components/duet-tab-group/duet-tab-group.css +8 -0
  140. package/lib/collection/components/duet-tab-group/duet-tab-group.js +4 -4
  141. package/lib/collection/components/duet-textarea/duet-textarea.js +4 -4
  142. package/lib/collection/components/duet-toggle/duet-toggle.js +1 -1
  143. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.css +7 -0
  144. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +41 -2
  145. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.css +7 -0
  146. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +9 -1
  147. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.css +7 -0
  148. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +1 -1
  149. package/lib/collection/components/duet-tooltip/duet-tooltip.js +4 -1
  150. package/lib/collection/components/duet-upload/duet-upload.js +13 -13
  151. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  152. package/lib/dist-custom-elements/duet-alert.js +1 -1
  153. package/lib/dist-custom-elements/duet-badge.js +1 -1
  154. package/lib/dist-custom-elements/duet-breadcrumb.js +2 -2
  155. package/lib/dist-custom-elements/duet-breadcrumbs.js +2 -2
  156. package/lib/dist-custom-elements/duet-button.js +1 -1
  157. package/lib/dist-custom-elements/duet-caption.js +1 -1
  158. package/lib/dist-custom-elements/duet-card.js +3 -3
  159. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  160. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  161. package/lib/dist-custom-elements/duet-choice-group.js +7 -7
  162. package/lib/dist-custom-elements/duet-choice.js +28 -9
  163. package/lib/dist-custom-elements/duet-collapsible.js +6 -3
  164. package/lib/dist-custom-elements/duet-combobox.js +2 -2
  165. package/lib/dist-custom-elements/duet-contact-card.js +8 -8
  166. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  167. package/lib/dist-custom-elements/duet-date-picker.js +26 -14
  168. package/lib/dist-custom-elements/duet-divider.js +1 -1
  169. package/lib/dist-custom-elements/duet-editable-table.js +1 -1
  170. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  171. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  172. package/lib/dist-custom-elements/duet-footer.js +20 -8
  173. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  174. package/lib/dist-custom-elements/duet-grid.js +1 -1
  175. package/lib/dist-custom-elements/duet-header.js +8 -8
  176. package/lib/dist-custom-elements/duet-heading.js +1 -1
  177. package/lib/dist-custom-elements/duet-hero.js +9 -9
  178. package/lib/dist-custom-elements/duet-icon.js +1 -1
  179. package/lib/dist-custom-elements/duet-input.js +1 -1
  180. package/lib/dist-custom-elements/duet-label.js +1 -1
  181. package/lib/dist-custom-elements/duet-layout.js +1 -1
  182. package/lib/dist-custom-elements/duet-link.js +1 -1
  183. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  184. package/lib/dist-custom-elements/duet-list.js +1 -1
  185. package/lib/dist-custom-elements/duet-logo.js +1 -1
  186. package/lib/dist-custom-elements/duet-menu-bar-button.js +3 -3
  187. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +12 -4
  188. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +20 -6
  189. package/lib/dist-custom-elements/duet-menu-bar-link.js +4 -4
  190. package/lib/dist-custom-elements/duet-menu-bar.js +9 -3
  191. package/lib/dist-custom-elements/duet-modal.js +20 -10
  192. package/lib/dist-custom-elements/duet-multiselect.js +8 -8
  193. package/lib/dist-custom-elements/duet-nav.js +1 -1
  194. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  195. package/lib/dist-custom-elements/duet-notification.js +2 -2
  196. package/lib/dist-custom-elements/duet-number-input.js +11 -11
  197. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  198. package/lib/dist-custom-elements/duet-pagination.js +7 -7
  199. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  200. package/lib/dist-custom-elements/duet-progress.js +1 -1
  201. package/lib/dist-custom-elements/duet-radio-group.js +6 -6
  202. package/lib/dist-custom-elements/duet-radio.js +1 -1
  203. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  204. package/lib/dist-custom-elements/duet-range-stepper.js +9 -7
  205. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  206. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  207. package/lib/dist-custom-elements/duet-select.js +1 -1
  208. package/lib/dist-custom-elements/duet-slideout-lang.js +14 -12
  209. package/lib/dist-custom-elements/duet-slideout-link.js +4 -4
  210. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +12 -5
  211. package/lib/dist-custom-elements/duet-slideout-panel.js +41 -11
  212. package/lib/dist-custom-elements/duet-slideout.js +51 -11
  213. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  214. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  215. package/lib/dist-custom-elements/duet-step.js +4 -4
  216. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  217. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +15 -4
  218. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +35 -7
  219. package/lib/dist-custom-elements/duet-submenu-bar-link.js +14 -4
  220. package/lib/dist-custom-elements/duet-submenu-bar.js +46 -6
  221. package/lib/dist-custom-elements/duet-tab-group.js +10 -10
  222. package/lib/dist-custom-elements/duet-tab.js +1 -1
  223. package/lib/dist-custom-elements/duet-table.js +1 -1
  224. package/lib/dist-custom-elements/duet-textarea.js +8 -8
  225. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  226. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +12 -4
  227. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +20 -6
  228. package/lib/dist-custom-elements/duet-toolbar-link.js +4 -4
  229. package/lib/dist-custom-elements/duet-toolbar.js +1 -1
  230. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  231. package/lib/dist-custom-elements/duet-tray.js +3 -3
  232. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  233. package/lib/dist-custom-elements/duet-upload.js +18 -18
  234. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  235. package/lib/dist-custom-elements/index.js +1 -1
  236. package/lib/dist-custom-elements/{p-a4002a4d.js → p-03f5e1df.js} +1 -1
  237. package/lib/dist-custom-elements/{p-6b444ad0.js → p-104dae34.js} +21 -7
  238. package/lib/dist-custom-elements/{p-df0799f0.js → p-139ccc08.js} +1 -1
  239. package/lib/dist-custom-elements/{p-a1c07138.js → p-14fe8052.js} +1 -1
  240. package/lib/dist-custom-elements/{p-b239c17f.js → p-17a5bfd6.js} +2 -2
  241. package/lib/dist-custom-elements/{p-5881ed64.js → p-1b6d9683.js} +1 -1
  242. package/lib/dist-custom-elements/{p-17f54d13.js → p-21ae30e5.js} +20 -6
  243. package/lib/dist-custom-elements/{p-c828fba6.js → p-258d095f.js} +1 -1
  244. package/lib/dist-custom-elements/{p-84465a50.js → p-2b8d110c.js} +1 -1
  245. package/lib/dist-custom-elements/{p-d0a59e71.js → p-43901e47.js} +1 -1
  246. package/lib/dist-custom-elements/{p-92a173c2.js → p-49026ea5.js} +1 -1
  247. package/lib/dist-custom-elements/{p-7ef0b13d.js → p-51be19a2.js} +1 -1
  248. package/lib/dist-custom-elements/{p-4040e9d1.js → p-5333970a.js} +1 -1
  249. package/lib/dist-custom-elements/{p-68b17599.js → p-6891c1b3.js} +2 -2
  250. package/lib/dist-custom-elements/{p-43f613b6.js → p-6c630da1.js} +1 -1
  251. package/lib/dist-custom-elements/{p-f070808d.js → p-7782af26.js} +2 -2
  252. package/lib/dist-custom-elements/{p-1e73f619.js → p-7cccb592.js} +6 -3
  253. package/lib/dist-custom-elements/{p-27004490.js → p-8a77e325.js} +1 -1
  254. package/lib/dist-custom-elements/{p-c6acb315.js → p-92135039.js} +2 -2
  255. package/lib/dist-custom-elements/{p-f2ee6981.js → p-a53cebf1.js} +1 -1
  256. package/lib/dist-custom-elements/{p-6c1ba2d9.js → p-a89fd096.js} +1 -1
  257. package/lib/dist-custom-elements/{p-4ebe6fca.js → p-a971f4cf.js} +7 -7
  258. package/lib/dist-custom-elements/{p-bd43e7e4.js → p-b2b89a56.js} +2 -2
  259. package/lib/dist-custom-elements/{p-f6dad5c3.js → p-bf71c608.js} +1 -1
  260. package/lib/dist-custom-elements/{p-015d1608.js → p-c05dc335.js} +1 -1
  261. package/lib/dist-custom-elements/{p-a3194fa3.js → p-c1d5b264.js} +8 -8
  262. package/lib/dist-custom-elements/{p-e76d5673.js → p-cd486ca1.js} +6 -6
  263. package/lib/dist-custom-elements/{p-7003023f.js → p-d3e697f4.js} +1 -1
  264. package/lib/dist-custom-elements/{p-2f7dd873.js → p-d4995343.js} +1 -1
  265. package/lib/dist-custom-elements/{p-35850774.js → p-e9e98c22.js} +1 -1
  266. package/lib/dist-custom-elements/{p-07f7b627.js → p-f41d4dba.js} +15 -5
  267. package/lib/dist-custom-elements/{p-b869fb52.js → p-fa93f54b.js} +15 -7
  268. package/lib/duet/duet.esm.js +1 -1
  269. package/lib/duet/duet.js +1 -1
  270. package/lib/duet/{p-7f7f4403.system.entry.js → p-006cfe82.system.entry.js} +1 -1
  271. package/lib/duet/{p-6c05e879.js → p-076452be.js} +1 -1
  272. package/lib/duet/p-0769bfaa.system.entry.js +4 -0
  273. package/lib/duet/{p-c46a5357.js → p-0a64a5a4.js} +1 -1
  274. package/lib/duet/{p-df278f38.system.entry.js → p-0a79b874.system.entry.js} +1 -1
  275. package/lib/duet/{p-f2f38e08.system.entry.js → p-0a96cc2c.system.entry.js} +1 -1
  276. package/lib/duet/{p-2c4f8685.system.entry.js → p-0aac4192.system.entry.js} +1 -1
  277. package/lib/duet/p-0ec18f3b.system.entry.js +4 -0
  278. package/lib/duet/p-0ec5260f.system.entry.js +4 -0
  279. package/lib/duet/p-0f5b0e9a.entry.js +4 -0
  280. package/lib/duet/{p-346a2bd3.system.entry.js → p-0f7ab746.system.entry.js} +1 -1
  281. package/lib/duet/p-141234e3.entry.js +4 -0
  282. package/lib/duet/{p-e3dfa3fd.system.entry.js → p-142e0dd6.system.entry.js} +1 -1
  283. package/lib/duet/{p-68e640b3.system.entry.js → p-15346bb7.system.entry.js} +1 -1
  284. package/lib/duet/p-1578385a.system.entry.js +4 -0
  285. package/lib/duet/p-1835986d.system.entry.js +4 -0
  286. package/lib/duet/p-19deb8bb.entry.js +4 -0
  287. package/lib/duet/{p-0c17cc73.entry.js → p-1bdce03c.entry.js} +1 -1
  288. package/lib/duet/{p-353cdb52.entry.js → p-1c731783.entry.js} +1 -1
  289. package/lib/duet/{p-6dd1beb2.entry.js → p-207ad310.entry.js} +1 -1
  290. package/lib/duet/{p-1a769d18.entry.js → p-21f94254.entry.js} +1 -1
  291. package/lib/duet/{p-a7886626.system.entry.js → p-23500651.system.entry.js} +1 -1
  292. package/lib/duet/{p-7204d1fd.system.entry.js → p-238517b4.system.entry.js} +1 -1
  293. package/lib/duet/{p-42160f39.entry.js → p-25bf58d2.entry.js} +1 -1
  294. package/lib/duet/p-271e6527.entry.js +4 -0
  295. package/lib/duet/p-28b0eafe.entry.js +4 -0
  296. package/lib/duet/{p-d174f424.entry.js → p-2b6e9c34.entry.js} +1 -1
  297. package/lib/duet/{p-b457649c.entry.js → p-2b998d32.entry.js} +1 -1
  298. package/lib/duet/p-2b9c8a7d.entry.js +4 -0
  299. package/lib/duet/{p-0de14da6.system.entry.js → p-2b9fb222.system.entry.js} +1 -1
  300. package/lib/duet/{p-05b8ca0a.system.entry.js → p-2dafbb00.system.entry.js} +1 -1
  301. package/lib/duet/p-322c2769.entry.js +4 -0
  302. package/lib/duet/{p-c3caf728.js → p-32ba724d.js} +1 -1
  303. package/lib/duet/{p-ffa1f02e.system.entry.js → p-33a2e92d.system.entry.js} +1 -1
  304. package/lib/duet/p-3405c2df.entry.js +4 -0
  305. package/lib/duet/p-345381c1.entry.js +4 -0
  306. package/lib/duet/{p-d48d67bc.entry.js → p-3490b163.entry.js} +1 -1
  307. package/lib/duet/p-350bad81.system.entry.js +4 -0
  308. package/lib/duet/{p-d114fc82.entry.js → p-369661b2.entry.js} +1 -1
  309. package/lib/duet/p-39f8bec2.entry.js +4 -0
  310. package/lib/duet/{p-2c8c2eb0.entry.js → p-3b197740.entry.js} +1 -1
  311. package/lib/duet/{p-374e2afa.system.entry.js → p-3d2339ae.system.entry.js} +1 -1
  312. package/lib/duet/{p-f49afb80.system.entry.js → p-433085d5.system.entry.js} +1 -1
  313. package/lib/duet/p-45c55f88.system.entry.js +4 -0
  314. package/lib/duet/p-464e267f.system.js +4 -0
  315. package/lib/duet/{p-41bac23d.entry.js → p-4de46382.entry.js} +1 -1
  316. package/lib/duet/p-514e2f71.entry.js +4 -0
  317. package/lib/duet/p-5252d291.system.entry.js +4 -0
  318. package/lib/duet/p-52a0bf60.system.entry.js +4 -0
  319. package/lib/duet/{p-4d16edd4.system.entry.js → p-53d28f2b.system.entry.js} +1 -1
  320. package/lib/duet/p-545ca91e.system.entry.js +4 -0
  321. package/lib/duet/p-57824291.entry.js +4 -0
  322. package/lib/duet/{p-ae043b1a.entry.js → p-599dfb21.entry.js} +1 -1
  323. package/lib/duet/p-5aaee74b.entry.js +4 -0
  324. package/lib/duet/{p-d2a65bd0.system.entry.js → p-5b0b828a.system.entry.js} +1 -1
  325. package/lib/duet/p-5d3c68ad.system.entry.js +4 -0
  326. package/lib/duet/p-5daa0d26.system.entry.js +4 -0
  327. package/lib/duet/p-5dedf71b.entry.js +4 -0
  328. package/lib/duet/{p-582f45a6.entry.js → p-5f1e31c7.entry.js} +1 -1
  329. package/lib/duet/{p-b0a272b8.system.entry.js → p-5f5fae98.system.entry.js} +1 -1
  330. package/lib/duet/p-6597319a.entry.js +4 -0
  331. package/lib/duet/{p-70703d59.system.entry.js → p-6aa662f0.system.entry.js} +1 -1
  332. package/lib/duet/p-6b7be36b.entry.js +4 -0
  333. package/lib/duet/{p-e0a55532.entry.js → p-6c171fd9.entry.js} +1 -1
  334. package/lib/duet/p-6d99c12c.entry.js +4 -0
  335. package/lib/duet/{p-4a0eabaa.system.entry.js → p-6f930a32.system.entry.js} +1 -1
  336. package/lib/duet/p-71eda242.entry.js +4 -0
  337. package/lib/duet/{p-61b2a984.entry.js → p-73e2201d.entry.js} +1 -1
  338. package/lib/duet/{p-e48b3cb6.system.entry.js → p-76dabced.system.entry.js} +1 -1
  339. package/lib/duet/{p-a2fba110.system.entry.js → p-783530af.system.entry.js} +1 -1
  340. package/lib/duet/{p-08577b4d.entry.js → p-78b89180.entry.js} +1 -1
  341. package/lib/duet/{p-06639fa9.system.js → p-7adef50f.system.js} +1 -1
  342. package/lib/duet/p-8025514b.system.entry.js +4 -0
  343. package/lib/duet/{p-9e0534d6.entry.js → p-8085ad32.entry.js} +1 -1
  344. package/lib/duet/{p-484cb1df.entry.js → p-83ac5c6e.entry.js} +1 -1
  345. package/lib/duet/p-85053e56.system.entry.js +4 -0
  346. package/lib/duet/{p-aba0c851.system.entry.js → p-8661ddb0.system.entry.js} +1 -1
  347. package/lib/duet/{p-898b51f5.entry.js → p-86799457.entry.js} +1 -1
  348. package/lib/duet/{p-ef058a21.system.js → p-8684b2af.system.js} +1 -1
  349. package/lib/duet/p-886f3df1.system.entry.js +4 -0
  350. package/lib/duet/{p-2ed52ca0.system.entry.js → p-88d3cc5a.system.entry.js} +1 -1
  351. package/lib/duet/{p-0f50db76.entry.js → p-8aba8575.entry.js} +1 -1
  352. package/lib/duet/{p-61f38e7c.entry.js → p-8ada2a8a.entry.js} +1 -1
  353. package/lib/duet/{p-3f59ba68.entry.js → p-8c20f50a.entry.js} +1 -1
  354. package/lib/duet/p-8dc321a1.entry.js +4 -0
  355. package/lib/duet/{p-5e3a7392.system.entry.js → p-8de9a81e.system.entry.js} +1 -1
  356. package/lib/duet/{p-0b36298e.system.entry.js → p-8f7a04bc.system.entry.js} +1 -1
  357. package/lib/duet/{p-b1a9298f.entry.js → p-8fcd5734.entry.js} +1 -1
  358. package/lib/duet/p-9116af4f.entry.js +4 -0
  359. package/lib/duet/p-94c6c463.entry.js +4 -0
  360. package/lib/duet/{p-4e21a0e1.entry.js → p-994c33e2.entry.js} +1 -1
  361. package/lib/duet/{p-7b98e5b6.system.entry.js → p-9c456965.system.entry.js} +1 -1
  362. package/lib/duet/p-9eaee650.system.entry.js +4 -0
  363. package/lib/duet/{p-0cc7ecde.system.entry.js → p-a05666f0.system.entry.js} +1 -1
  364. package/lib/duet/p-a08a9752.entry.js +4 -0
  365. package/lib/duet/p-a4042d5b.system.entry.js +4 -0
  366. package/lib/duet/{p-654e6734.system.entry.js → p-a4f9eacd.system.entry.js} +1 -1
  367. package/lib/duet/{p-77e68564.entry.js → p-a7b1f336.entry.js} +1 -1
  368. package/lib/duet/p-ac37e21d.entry.js +4 -0
  369. package/lib/duet/p-ad983011.entry.js +4 -0
  370. package/lib/duet/p-aee5400b.system.entry.js +4 -0
  371. package/lib/duet/p-af47bd24.system.entry.js +4 -0
  372. package/lib/duet/{p-06e42ed2.system.entry.js → p-b16848d3.system.entry.js} +1 -1
  373. package/lib/duet/{p-c99c31f7.entry.js → p-b2ebc2e1.entry.js} +1 -1
  374. package/lib/duet/{p-04e7a695.system.entry.js → p-b3e57f17.system.entry.js} +1 -1
  375. package/lib/duet/{p-b32e5d04.system.entry.js → p-b59904ae.system.entry.js} +1 -1
  376. package/lib/duet/{p-5f6f8b70.entry.js → p-c17ad6a4.entry.js} +1 -1
  377. package/lib/duet/p-c32df4f2.system.entry.js +4 -0
  378. package/lib/duet/{p-e0273afd.system.entry.js → p-c46b2038.system.entry.js} +1 -1
  379. package/lib/duet/{p-f426cd26.system.entry.js → p-c6787142.system.entry.js} +1 -1
  380. package/lib/duet/{p-3646032b.entry.js → p-c8892cfa.entry.js} +1 -1
  381. package/lib/duet/{p-5b5238f6.system.entry.js → p-c8b3d426.system.entry.js} +1 -1
  382. package/lib/duet/{p-2ef88161.system.js → p-c8dc599d.system.js} +1 -1
  383. package/lib/duet/{p-6791f183.system.entry.js → p-ca4539ce.system.entry.js} +2 -2
  384. package/lib/duet/{p-1183c748.entry.js → p-ca8a79e7.entry.js} +1 -1
  385. package/lib/duet/{p-5f4a75ea.system.entry.js → p-ccbff327.system.entry.js} +1 -1
  386. package/lib/duet/p-cf33e4a4.entry.js +4 -0
  387. package/lib/duet/{p-aa4d6d89.entry.js → p-d27f9702.entry.js} +1 -1
  388. package/lib/duet/p-d65b676f.entry.js +4 -0
  389. package/lib/duet/{p-dc399de0.system.entry.js → p-d8769dca.system.entry.js} +1 -1
  390. package/lib/duet/p-daf3ccef.system.entry.js +4 -0
  391. package/lib/duet/{p-29413090.system.entry.js → p-db98a514.system.entry.js} +1 -1
  392. package/lib/duet/{p-3d2b012c.entry.js → p-dc8c7e0b.entry.js} +1 -1
  393. package/lib/duet/p-e0651eca.system.entry.js +4 -0
  394. package/lib/duet/{p-48ee2f44.entry.js → p-e4b73cff.entry.js} +1 -1
  395. package/lib/duet/{p-cd515231.entry.js → p-e829bf10.entry.js} +1 -1
  396. package/lib/duet/{p-24e47e60.system.entry.js → p-ec5ae55d.system.entry.js} +1 -1
  397. package/lib/duet/p-ec9d77cf.system.entry.js +4 -0
  398. package/lib/duet/p-f0384acb.entry.js +4 -0
  399. package/lib/duet/{p-642ab531.system.entry.js → p-f06940f6.system.entry.js} +2 -2
  400. package/lib/duet/{p-9e71007b.system.entry.js → p-f0ba21c3.system.entry.js} +1 -1
  401. package/lib/duet/p-f5e7e0a7.system.entry.js +4 -0
  402. package/lib/duet/p-f6f5032b.entry.js +4 -0
  403. package/lib/duet/p-f738d8e5.entry.js +4 -0
  404. package/lib/duet/{p-308907c6.entry.js → p-faaa35cf.entry.js} +1 -1
  405. package/lib/duet/{p-69617b20.entry.js → p-fb1b340d.entry.js} +1 -1
  406. package/lib/duet/{p-7c95a58b.system.entry.js → p-fc318998.system.entry.js} +1 -1
  407. package/lib/duet/p-fcca01e2.entry.js +4 -0
  408. package/lib/duet/{p-1878784a.entry.js → p-ffba3249.entry.js} +1 -1
  409. package/lib/esm/duet-action-button.entry.js +12 -3
  410. package/lib/esm/duet-alert.entry.js +15 -2
  411. package/lib/esm/duet-badge.entry.js +1 -1
  412. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  413. package/lib/esm/duet-breadcrumbs.entry.js +2 -2
  414. package/lib/esm/duet-button_2.entry.js +10 -2
  415. package/lib/esm/duet-caption_4.entry.js +16 -2
  416. package/lib/esm/duet-card.entry.js +1 -1
  417. package/lib/esm/duet-checkbox.entry.js +1 -1
  418. package/lib/esm/duet-checkmark.entry.js +1 -1
  419. package/lib/esm/duet-choice_2.entry.js +23 -5
  420. package/lib/esm/duet-collapsible.entry.js +4 -2
  421. package/lib/esm/duet-combobox.entry.js +2 -2
  422. package/lib/esm/duet-contact-card.entry.js +2 -2
  423. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  424. package/lib/esm/duet-date-picker.entry.js +16 -4
  425. package/lib/esm/duet-divider_2.entry.js +1 -1
  426. package/lib/esm/duet-editable-table_3.entry.js +2 -2
  427. package/lib/esm/duet-empty-state.entry.js +1 -1
  428. package/lib/esm/duet-fieldset.entry.js +1 -1
  429. package/lib/esm/duet-footer.entry.js +15 -3
  430. package/lib/esm/duet-grid_2.entry.js +1 -1
  431. package/lib/esm/duet-header_2.entry.js +2 -2
  432. package/lib/esm/duet-hero.entry.js +2 -2
  433. package/lib/esm/duet-icon.entry.js +1 -1
  434. package/lib/esm/duet-input_2.entry.js +2 -2
  435. package/lib/esm/duet-layout.entry.js +1 -1
  436. package/lib/esm/duet-list_2.entry.js +1 -1
  437. package/lib/esm/duet-menu-bar-button.entry.js +2 -2
  438. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +11 -3
  439. package/lib/esm/duet-menu-bar-dropdown.entry.js +17 -4
  440. package/lib/esm/duet-menu-bar-link.entry.js +3 -3
  441. package/lib/esm/duet-menu-bar.entry.js +7 -1
  442. package/lib/esm/duet-modal.entry.js +13 -3
  443. package/lib/esm/duet-multiselect.entry.js +2 -2
  444. package/lib/esm/duet-nav.entry.js +1 -1
  445. package/lib/esm/duet-notification_2.entry.js +2 -2
  446. package/lib/esm/duet-number-input.entry.js +4 -4
  447. package/lib/esm/duet-page-heading.entry.js +1 -1
  448. package/lib/esm/duet-pagination_2.entry.js +7 -5
  449. package/lib/esm/duet-progress.entry.js +2 -2
  450. package/lib/esm/duet-radio_2.entry.js +1 -1
  451. package/lib/esm/duet-range-slider.entry.js +1 -1
  452. package/lib/esm/duet-scrollable_3.entry.js +3 -3
  453. package/lib/esm/duet-section-layout.entry.js +1 -1
  454. package/lib/esm/duet-select.entry.js +1 -1
  455. package/lib/esm/duet-slideout-lang.entry.js +10 -3
  456. package/lib/esm/duet-slideout-link.entry.js +3 -3
  457. package/lib/esm/duet-slideout-panel-dropdown.entry.js +9 -3
  458. package/lib/esm/duet-slideout-panel.entry.js +38 -10
  459. package/lib/esm/duet-slideout.entry.js +48 -9
  460. package/lib/esm/duet-step_2.entry.js +1 -1
  461. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +13 -3
  462. package/lib/esm/duet-submenu-bar-dropdown.entry.js +31 -5
  463. package/lib/esm/duet-submenu-bar-link.entry.js +12 -3
  464. package/lib/esm/duet-submenu-bar.entry.js +42 -4
  465. package/lib/esm/duet-textarea.entry.js +1 -1
  466. package/lib/esm/duet-toggle.entry.js +1 -1
  467. package/lib/esm/duet-toolbar-dropdown-link.entry.js +11 -3
  468. package/lib/esm/duet-toolbar-dropdown.entry.js +17 -4
  469. package/lib/esm/duet-toolbar-link.entry.js +3 -3
  470. package/lib/esm/duet-toolbar.entry.js +1 -1
  471. package/lib/esm/duet-tooltip.entry.js +5 -2
  472. package/lib/esm/duet-tray.entry.js +2 -2
  473. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  474. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  475. package/lib/esm/duet.js +3 -3
  476. package/lib/esm/{focus-utils-21a3a53d.js → focus-utils-5c277b1d.js} +1 -1
  477. package/lib/esm/{index-bcaee850.js → index-dc7d6b8d.js} +1 -1
  478. package/lib/esm/{language-utils-7b211f31.js → language-utils-6be16ff0.js} +1 -1
  479. package/lib/esm/loader.js +3 -3
  480. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  481. package/lib/esm-es5/duet-alert.entry.js +2 -2
  482. package/lib/esm-es5/duet-badge.entry.js +1 -1
  483. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  484. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  485. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  486. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  487. package/lib/esm-es5/duet-card.entry.js +1 -1
  488. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  489. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  490. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  491. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  492. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  493. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  494. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  495. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  496. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  497. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  498. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  499. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  500. package/lib/esm-es5/duet-footer.entry.js +2 -2
  501. package/lib/esm-es5/duet-grid_2.entry.js +2 -2
  502. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  503. package/lib/esm-es5/duet-hero.entry.js +1 -1
  504. package/lib/esm-es5/duet-icon.entry.js +2 -2
  505. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  506. package/lib/esm-es5/duet-layout.entry.js +1 -1
  507. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  508. package/lib/esm-es5/duet-menu-bar-button.entry.js +2 -2
  509. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  510. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +2 -2
  511. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  512. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  513. package/lib/esm-es5/duet-modal.entry.js +1 -1
  514. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  515. package/lib/esm-es5/duet-nav.entry.js +1 -1
  516. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  517. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  518. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  519. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  520. package/lib/esm-es5/duet-progress.entry.js +1 -1
  521. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  522. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  523. package/lib/esm-es5/duet-scrollable_3.entry.js +2 -2
  524. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  525. package/lib/esm-es5/duet-select.entry.js +1 -1
  526. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  527. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  528. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +2 -2
  529. package/lib/esm-es5/duet-slideout-panel.entry.js +2 -2
  530. package/lib/esm-es5/duet-slideout.entry.js +2 -2
  531. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  532. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  533. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +2 -2
  534. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  535. package/lib/esm-es5/duet-submenu-bar.entry.js +2 -2
  536. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  537. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  538. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  539. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +2 -2
  540. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  541. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  542. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  543. package/lib/esm-es5/duet-tray.entry.js +1 -1
  544. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  545. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  546. package/lib/esm-es5/duet.js +1 -1
  547. package/lib/esm-es5/focus-utils-5c277b1d.js +4 -0
  548. package/lib/esm-es5/{index-bcaee850.js → index-dc7d6b8d.js} +1 -1
  549. package/lib/esm-es5/{language-utils-7b211f31.js → language-utils-6be16ff0.js} +1 -1
  550. package/lib/esm-es5/loader.js +1 -1
  551. package/lib/types/components/duet-action-button/duet-action-button.d.ts +6 -0
  552. package/lib/types/components/duet-alert/duet-alert.d.ts +4 -1
  553. package/lib/types/components/duet-button/duet-button.d.ts +3 -2
  554. package/lib/types/components/duet-choice/duet-choice.d.ts +6 -2
  555. package/lib/types/components/duet-collapsible/duet-collapsible.d.ts +4 -0
  556. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +3 -0
  557. package/lib/types/components/duet-footer/duet-footer.d.ts +3 -0
  558. package/lib/types/components/duet-link/duet-link.d.ts +3 -0
  559. package/lib/types/components/duet-menu-bar/duet-menu-bar.d.ts +3 -1
  560. package/lib/types/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.d.ts +6 -0
  561. package/lib/types/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.d.ts +1 -0
  562. package/lib/types/components/duet-modal/duet-modal.d.ts +2 -0
  563. package/lib/types/components/duet-range-stepper/duet-range-stepper.d.ts +0 -1
  564. package/lib/types/components/duet-slideout/duet-slideout.d.ts +13 -1
  565. package/lib/types/components/duet-slideout-lang/duet-slideout-lang.d.ts +4 -1
  566. package/lib/types/components/duet-slideout-panel/duet-slideout-panel.d.ts +9 -1
  567. package/lib/types/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.d.ts +5 -0
  568. package/lib/types/components/duet-submenu-bar/duet-submenu-bar.d.ts +11 -0
  569. package/lib/types/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.d.ts +10 -0
  570. package/lib/types/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.d.ts +9 -0
  571. package/lib/types/components/duet-submenu-bar-link/duet-submenu-bar-link.d.ts +5 -0
  572. package/lib/types/components/duet-toolbar-dropdown/duet-toolbar-dropdown.d.ts +6 -0
  573. package/lib/types/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.d.ts +1 -0
  574. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +1 -0
  575. package/lib/types/components.d.ts +68 -4
  576. package/package.json +5 -5
  577. package/lib/duet/p-02f78e7e.entry.js +0 -4
  578. package/lib/duet/p-0936046f.system.entry.js +0 -4
  579. package/lib/duet/p-095c84a5.system.entry.js +0 -4
  580. package/lib/duet/p-0bc5e109.entry.js +0 -4
  581. package/lib/duet/p-14f3c696.system.entry.js +0 -4
  582. package/lib/duet/p-151a48c3.entry.js +0 -4
  583. package/lib/duet/p-151ed5e0.system.entry.js +0 -4
  584. package/lib/duet/p-181d4b35.entry.js +0 -4
  585. package/lib/duet/p-1dcbe259.entry.js +0 -4
  586. package/lib/duet/p-1e65e29d.system.entry.js +0 -4
  587. package/lib/duet/p-2020fc25.system.entry.js +0 -4
  588. package/lib/duet/p-28d28436.system.entry.js +0 -4
  589. package/lib/duet/p-28fabb76.entry.js +0 -4
  590. package/lib/duet/p-3815cc9a.entry.js +0 -4
  591. package/lib/duet/p-3c4d9930.system.entry.js +0 -4
  592. package/lib/duet/p-3e428087.entry.js +0 -4
  593. package/lib/duet/p-40411d3b.system.entry.js +0 -4
  594. package/lib/duet/p-4176d5a4.entry.js +0 -4
  595. package/lib/duet/p-488a4d3f.entry.js +0 -4
  596. package/lib/duet/p-498b7d6a.system.entry.js +0 -4
  597. package/lib/duet/p-50e66d06.entry.js +0 -4
  598. package/lib/duet/p-5bc052a4.entry.js +0 -4
  599. package/lib/duet/p-5db96ea2.system.entry.js +0 -4
  600. package/lib/duet/p-5fa09cdb.entry.js +0 -4
  601. package/lib/duet/p-61785e0b.system.entry.js +0 -4
  602. package/lib/duet/p-658283be.system.entry.js +0 -4
  603. package/lib/duet/p-6d4d5fc6.entry.js +0 -4
  604. package/lib/duet/p-727d0488.entry.js +0 -4
  605. package/lib/duet/p-72988da1.entry.js +0 -4
  606. package/lib/duet/p-746ea729.entry.js +0 -4
  607. package/lib/duet/p-78f118fb.entry.js +0 -4
  608. package/lib/duet/p-803ceb21.system.entry.js +0 -4
  609. package/lib/duet/p-86e6814a.entry.js +0 -4
  610. package/lib/duet/p-8b0d3fae.system.entry.js +0 -4
  611. package/lib/duet/p-97eeacac.entry.js +0 -4
  612. package/lib/duet/p-9e886ecf.entry.js +0 -4
  613. package/lib/duet/p-a1eb24b8.system.entry.js +0 -4
  614. package/lib/duet/p-a5689603.system.entry.js +0 -4
  615. package/lib/duet/p-a7edccbb.entry.js +0 -4
  616. package/lib/duet/p-a8bb4f37.entry.js +0 -4
  617. package/lib/duet/p-aeea9d49.system.entry.js +0 -4
  618. package/lib/duet/p-b75cdfc6.entry.js +0 -4
  619. package/lib/duet/p-b8a5580a.entry.js +0 -4
  620. package/lib/duet/p-b9eec94d.entry.js +0 -4
  621. package/lib/duet/p-c4c035fe.entry.js +0 -4
  622. package/lib/duet/p-c7b12a60.system.js +0 -4
  623. package/lib/duet/p-c954e200.system.entry.js +0 -4
  624. package/lib/duet/p-d719bc5b.system.entry.js +0 -4
  625. package/lib/duet/p-d8ccc12d.entry.js +0 -4
  626. package/lib/duet/p-ea17eb88.entry.js +0 -4
  627. package/lib/duet/p-ec7a79f2.system.entry.js +0 -4
  628. package/lib/duet/p-f3089cd4.system.entry.js +0 -4
  629. package/lib/duet/p-f3c7ffda.system.entry.js +0 -4
  630. package/lib/duet/p-f550f63a.system.entry.js +0 -4
  631. package/lib/duet/p-f5623ee8.entry.js +0 -4
  632. package/lib/esm-es5/focus-utils-21a3a53d.js +0 -4
package/hydrate/index.js CHANGED
@@ -6534,6 +6534,15 @@ class DuetActionButton {
6534
6534
  componentWillLoad() {
6535
6535
  inheritGlobalTheme(this);
6536
6536
  }
6537
+ /**
6538
+ * Sets focus on the specified `duet-action-button`. Use this method instead of the global
6539
+ * `button.focus()`.
6540
+ */
6541
+ async setFocus(options) {
6542
+ if (this.nativeButton) {
6543
+ this.nativeButton.focus(options);
6544
+ }
6545
+ }
6537
6546
  /**
6538
6547
  * render() function
6539
6548
  * Always the last one in the class.
@@ -6558,7 +6567,7 @@ class DuetActionButton {
6558
6567
  "border-width": "1px",
6559
6568
  "border-style": "solid",
6560
6569
  };
6561
- return (hAsync(Host, { onKeyDown: e => this.onKeyboardDown(e) }, hAsync("style", { innerHTML: backgroundStyles }), hAsync("button", { part: "button", style: styles, disabled: this.disabled, id: this.listId, class: {
6570
+ return (hAsync(Host, { onKeyDown: e => this.onKeyboardDown(e) }, hAsync("style", { innerHTML: backgroundStyles }), hAsync("button", { ref: button => (this.nativeButton = button), part: "button", style: styles, disabled: this.disabled, id: this.listId, class: {
6562
6571
  "duet-action-button": true,
6563
6572
  "duet-action-button--disabled": this.disabled,
6564
6573
  [`duet-action-button--${this.theme}`]: this.theme !== "",
@@ -6588,7 +6597,8 @@ class DuetActionButton {
6588
6597
  "accessibleLabelsDefaults": [16],
6589
6598
  "accessibleLabel": [1, "accessible-label"],
6590
6599
  "accessibleControls": [1, "accessible-controls"],
6591
- "numbersStore": [32]
6600
+ "numbersStore": [32],
6601
+ "setFocus": [64]
6592
6602
  },
6593
6603
  "$listeners$": undefined,
6594
6604
  "$lazyBundleId$": "-",
@@ -6619,6 +6629,7 @@ class DuetAlert {
6619
6629
  this.theme = "";
6620
6630
  this.isDismissed = false;
6621
6631
  this.timeoutID = undefined;
6632
+ this.language = getLanguage();
6622
6633
  this.accessibleLabelDefaults = {
6623
6634
  fi: "Sulje viesti",
6624
6635
  sv: "Stäng meddelandet",
@@ -6633,6 +6644,11 @@ class DuetAlert {
6633
6644
  this.variation = "default";
6634
6645
  this.dismissible = false;
6635
6646
  }
6647
+ watchLanguageStateHandler(newValue, oldValue) {
6648
+ if (newValue !== oldValue && this.accessibleLabel === this.accessibleLabelDefaults[oldValue]) {
6649
+ this.accessibleLabel = getLocaleString(this.accessibleLabelDefaults, newValue);
6650
+ }
6651
+ }
6636
6652
  /**
6637
6653
  * Component lifecycle events.
6638
6654
  */
@@ -6644,10 +6660,14 @@ class DuetAlert {
6644
6660
  this.timeoutID = setTimeout(() => this.handleDismiss(), this.autoDismiss);
6645
6661
  }
6646
6662
  }
6663
+ connectedCallback() {
6664
+ connectLanguageChangeObserver(this);
6665
+ }
6647
6666
  disconnectedCallback() {
6648
6667
  if (this.timeoutID) {
6649
6668
  clearTimeout(this.timeoutID);
6650
6669
  }
6670
+ disconnectLanguageChangeObserver(this);
6651
6671
  }
6652
6672
  /**
6653
6673
  * Show.
@@ -6686,6 +6706,9 @@ class DuetAlert {
6686
6706
  "duet-theme-turva": this.theme === "turva",
6687
6707
  } }, hAsync("div", { class: "duet-alert-container" }, this.icon && (hAsync("div", { class: "duet-alert-icon" }, hAsync("duet-icon", { size: "auto", name: this.icon, color: "currentColor" }))), hAsync("span", { id: this.descriptiveId }, hAsync("slot", null))), this.dismissible && (hAsync("div", { class: "duet-alert-dismiss" }, hAsync("duet-button", { variation: "plain", accessibleLabel: this.accessibleLabel, accessibleDescribedBy: this.descriptiveId, color: closeColor, iconSize: "medium", icon: "navigation-close", iconOnly: true, margin: "none", theme: this.theme, onClick: this.handleDismiss, fixed: true }))))));
6688
6708
  }
6709
+ static get watchers() { return {
6710
+ "language": ["watchLanguageStateHandler"]
6711
+ }; }
6689
6712
  static get style() { return duetAlertCss; }
6690
6713
  static get cmpMeta() { return {
6691
6714
  "$flags$": 9,
@@ -6693,7 +6716,7 @@ class DuetAlert {
6693
6716
  "$members$": {
6694
6717
  "theme": [1025],
6695
6718
  "accessibleLabelDefaults": [1, "accessible-label-default"],
6696
- "accessibleLabel": [1, "accessible-label"],
6719
+ "accessibleLabel": [1025, "accessible-label"],
6697
6720
  "announcements": [4],
6698
6721
  "icon": [1],
6699
6722
  "autoDismiss": [2, "auto-dismiss"],
@@ -6703,6 +6726,7 @@ class DuetAlert {
6703
6726
  "dismissible": [4],
6704
6727
  "isDismissed": [32],
6705
6728
  "timeoutID": [32],
6729
+ "language": [32],
6706
6730
  "show": [64],
6707
6731
  "hide": [64]
6708
6732
  },
@@ -6924,6 +6948,11 @@ class DuetButton {
6924
6948
  this.iconOnly = false;
6925
6949
  this.url = undefined;
6926
6950
  }
6951
+ watchLanguageStateHandler(newValue, oldValue) {
6952
+ if (newValue !== oldValue && this.accessibleLabelExternal === this.accessibleLabelExternalDefaults[oldValue]) {
6953
+ this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults, newValue);
6954
+ }
6955
+ }
6927
6956
  /**
6928
6957
  * Component lifecycle events.
6929
6958
  */
@@ -6937,6 +6966,7 @@ class DuetButton {
6937
6966
  this.proxyButton = document.createElement("button");
6938
6967
  this.proxyButton.style.display = "none";
6939
6968
  this.syncToProxyButton();
6969
+ connectLanguageChangeObserver(this);
6940
6970
  if (!this.url && this.element.closest("form")) {
6941
6971
  this.element.insertAdjacentElement("beforebegin", this.proxyButton);
6942
6972
  }
@@ -6944,6 +6974,7 @@ class DuetButton {
6944
6974
  disconnectedCallback() {
6945
6975
  this.proxyButton.remove();
6946
6976
  this.proxyButton = null;
6977
+ disconnectLanguageChangeObserver(this);
6947
6978
  }
6948
6979
  syncToProxyButton() {
6949
6980
  this.proxyButton.type = this.getButtonType();
@@ -7035,6 +7066,7 @@ class DuetButton {
7035
7066
  }
7036
7067
  get element() { return getElement(this); }
7037
7068
  static get watchers() { return {
7069
+ "language": ["watchLanguageStateHandler"],
7038
7070
  "disabled": ["syncToProxyButton"],
7039
7071
  "submit": ["syncToProxyButton"],
7040
7072
  "value": ["syncToProxyButton"],
@@ -7072,9 +7104,9 @@ class DuetButton {
7072
7104
  "identifier": [1],
7073
7105
  "submit": [516],
7074
7106
  "external": [4],
7075
- "language": [1],
7107
+ "language": [1537],
7076
7108
  "accessibleLabelExternalDefaults": [1, "accessible-label-external-default"],
7077
- "accessibleLabelExternal": [1, "accessible-label-external"],
7109
+ "accessibleLabelExternal": [1025, "accessible-label-external"],
7078
7110
  "icon": [1],
7079
7111
  "color": [1],
7080
7112
  "iconRight": [4, "icon-right"],
@@ -7086,7 +7118,7 @@ class DuetButton {
7086
7118
  },
7087
7119
  "$listeners$": undefined,
7088
7120
  "$lazyBundleId$": "-",
7089
- "$attrsToReflect$": [["disabled", "disabled"], ["submit", "submit"], ["url", "url"]]
7121
+ "$attrsToReflect$": [["disabled", "disabled"], ["submit", "submit"], ["language", "language"], ["url", "url"]]
7090
7122
  }; }
7091
7123
  }
7092
7124
 
@@ -7542,6 +7574,7 @@ class DuetChoice {
7542
7574
  this.isHovering = false;
7543
7575
  this.isInfoOpen = false;
7544
7576
  this.isBlurred = false;
7577
+ this.language = getLanguage();
7545
7578
  this.theme = "";
7546
7579
  this.label = "label";
7547
7580
  this.accessibleLabelInfoButtonDefaults = DuetStringsExternalDefaults;
@@ -7570,12 +7603,20 @@ class DuetChoice {
7570
7603
  this.disabled = false;
7571
7604
  this.required = false;
7572
7605
  this.infoLabelDefaults = {
7573
- fi: "Lisätietoja",
7606
+ fi: "Lisätietoja vaihtoehdosta",
7574
7607
  en: "More information about",
7575
7608
  sv: "Mera information om",
7576
7609
  };
7577
7610
  this.infoLabel = getLocaleString(this.infoLabelDefaults, getLanguage());
7578
7611
  }
7612
+ watchLanguageStateHandler(newValue, oldValue) {
7613
+ if (newValue !== oldValue && this.accessibleLabelInfoButton === this.accessibleLabelInfoButtonDefaults[oldValue]) {
7614
+ this.accessibleLabelInfoButton = getLocaleString(this.accessibleLabelInfoButtonDefaults, newValue);
7615
+ }
7616
+ if (newValue !== oldValue && this.infoLabel === this.infoLabelDefaults[oldValue]) {
7617
+ this.infoLabel = getLocaleString(this.infoLabelDefaults, newValue);
7618
+ }
7619
+ }
7579
7620
  /**
7580
7621
  * Component lifecycle events.
7581
7622
  */
@@ -7589,6 +7630,12 @@ class DuetChoice {
7589
7630
  ;
7590
7631
  this.hasBeforeText = !!this.element.querySelector("[slot='before-text']");
7591
7632
  }
7633
+ connectedCallback() {
7634
+ connectLanguageChangeObserver(this);
7635
+ }
7636
+ disconnectedCallback() {
7637
+ disconnectLanguageChangeObserver(this);
7638
+ }
7592
7639
  /**
7593
7640
  * Component event handling.
7594
7641
  */
@@ -7694,6 +7741,9 @@ class DuetChoice {
7694
7741
  } }, hAsync("span", { id: this.headerId }, hAsync("slot", { name: "header" })), this.hasInfo ? (hAsync("span", null, hAsync("span", { "aria-relevant": "all", "aria-atomic": "true", "aria-live": this.isInfoOpen ? "polite" : "off" }, hAsync("slot", { name: "info" })), hAsync("slot", null))) : (hAsync("span", null, hAsync("slot", null)))), this.isInfoOpen && hAsync(FocusGuard, { moveFocusTo: this.infoButtonEl }))) : null));
7695
7742
  }
7696
7743
  get element() { return getElement(this); }
7744
+ static get watchers() { return {
7745
+ "language": ["watchLanguageStateHandler"]
7746
+ }; }
7697
7747
  static get style() { return duetChoiceCss; }
7698
7748
  static get cmpMeta() { return {
7699
7749
  "$flags$": 6,
@@ -7702,7 +7752,7 @@ class DuetChoice {
7702
7752
  "theme": [1025],
7703
7753
  "label": [1],
7704
7754
  "accessibleLabelInfoButtonDefaults": [1, "accessible-label-info-default"],
7705
- "accessibleLabelInfoButton": [1, "accessible-label-info-button"],
7755
+ "accessibleLabelInfoButton": [1025, "accessible-label-info-button"],
7706
7756
  "accessibleActiveDescendant": [1, "accessible-active-descendant"],
7707
7757
  "accessibleControls": [1, "accessible-controls"],
7708
7758
  "accessibleOwns": [1, "accessible-owns"],
@@ -7727,10 +7777,11 @@ class DuetChoice {
7727
7777
  "disabled": [516],
7728
7778
  "required": [4],
7729
7779
  "infoLabelDefaults": [1, "accessible-label-info-default"],
7730
- "infoLabel": [1, "info-label"],
7780
+ "infoLabel": [1025, "info-label"],
7731
7781
  "isHovering": [32],
7732
7782
  "isInfoOpen": [32],
7733
7783
  "isBlurred": [32],
7784
+ "language": [32],
7734
7785
  "setFocus": [64],
7735
7786
  "toggleInfoMethod": [64]
7736
7787
  },
@@ -7793,7 +7844,7 @@ const findCheckedOption = (el, tagName) => {
7793
7844
  return options.find((o) => o.checked === true);
7794
7845
  };
7795
7846
 
7796
- const duetChoiceGroupCss = "*.sc-duet-choice-group,*.sc-duet-choice-group::after,*.sc-duet-choice-group::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-choice-group-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.horizontal.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group{display:block}.horizontal.sc-duet-choice-group-h .duet-choice-group.duet-no-stacking.sc-duet-choice-group{display:flex}@media (max-width: 35.9375em){.horizontal.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group{display:flex;margin-bottom:0}}.horizontal.duet-choice-group-breakpoint-x-small.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:flex}@media (max-width: 22.5em){.horizontal.duet-choice-group-breakpoint-x-small.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:block}}.horizontal.duet-choice-group-breakpoint-small.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:block}@media (min-width: 36em){.horizontal.duet-choice-group-breakpoint-small.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:flex}}.horizontal.duet-choice-group-breakpoint-medium.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:block}@media (min-width: 48em){.horizontal.duet-choice-group-breakpoint-medium.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:flex}}.horizontal.duet-choice-group-breakpoint-large.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:block}@media (min-width: 62em){.horizontal.duet-choice-group-breakpoint-large.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:flex}}.horizontal.duet-choice-group-breakpoint-x-large.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:block}@media (min-width: 64.0625em){.horizontal.duet-choice-group-breakpoint-x-large.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:flex}}.duet-choice-group.sc-duet-choice-group{position:relative;width:100%;margin-bottom:-12px}";
7847
+ const duetChoiceGroupCss = "*.sc-duet-choice-group,*.sc-duet-choice-group::after,*.sc-duet-choice-group::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-choice-group-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.horizontal.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group{display:block;margin-bottom:0}.horizontal.sc-duet-choice-group-h .duet-choice-group.duet-no-stacking.sc-duet-choice-group{display:flex}@media (max-width: 35.9375em){.horizontal.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group{display:flex}}.horizontal.duet-choice-group-breakpoint-x-small.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:flex}@media (max-width: 22.5em){.horizontal.duet-choice-group-breakpoint-x-small.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:block}}.horizontal.duet-choice-group-breakpoint-small.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:block}@media (min-width: 36em){.horizontal.duet-choice-group-breakpoint-small.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:flex}}.horizontal.duet-choice-group-breakpoint-medium.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:block}@media (min-width: 48em){.horizontal.duet-choice-group-breakpoint-medium.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:flex}}.horizontal.duet-choice-group-breakpoint-large.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:block}@media (min-width: 62em){.horizontal.duet-choice-group-breakpoint-large.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:flex}}.horizontal.duet-choice-group-breakpoint-x-large.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:block}@media (min-width: 64.0625em){.horizontal.duet-choice-group-breakpoint-x-large.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group:not(.duet-no-stacking){display:flex}}.duet-choice-group.sc-duet-choice-group{position:relative;width:100%;margin-bottom:-12px}";
7797
7848
 
7798
7849
  const duetChoiceSelector = ":scope duet-choice:not(:scope duet-choice duet-choice-group duet-choice):not(:scope duet-choice duet-fieldset duet-choice)";
7799
7850
  class DuetChoiceGroup {
@@ -8390,7 +8441,7 @@ var tokens$1 = /*#__PURE__*/Object.freeze({
8390
8441
  'default': tokens
8391
8442
  });
8392
8443
 
8393
- const duetCollapsibleCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-collapsible,*.sc-duet-collapsible::after,*.sc-duet-collapsible::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-collapsible-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:16px !important;display:block;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.5;color:rgb(0, 41, 77)}/*!@:host(.duet-theme-turva)*/.duet-theme-turva.sc-duet-collapsible-h{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@:host(.duet-m-0)*/.duet-m-0.sc-duet-collapsible-h{margin:0 !important}/*!@.duet-collapsible-content*/.duet-collapsible-content.sc-duet-collapsible{display:none;padding-left:18px;margin-top:8px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.5;color:rgb(0, 41, 77)}@media (max-width: 35.9375em){/*!@.duet-collapsible-content*/.duet-collapsible-content.sc-duet-collapsible{font-size:0.875rem}}/*!@.duet-collapsible-content.duet-theme-turva*/.duet-collapsible-content.duet-theme-turva.sc-duet-collapsible{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@:host([open]) > .duet-collapsible-content*/[open].sc-duet-collapsible-h>.duet-collapsible-content.sc-duet-collapsible{display:block}/*!@.duet-collapsible-heading*/.duet-collapsible-heading.sc-duet-collapsible{-webkit-user-select:none;user-select:none;display:flex;align-items:center;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.5;color:rgb(0, 41, 77);text-align:left;cursor:pointer;border-radius:4px}/*!@.duet-collapsible-heading.duet-collapsible-normal-weight*/.duet-collapsible-heading.duet-collapsible-normal-weight.sc-duet-collapsible{font-weight:400}/*!@.duet-collapsible-heading.duet-theme-turva*/.duet-collapsible-heading.duet-theme-turva.sc-duet-collapsible{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-collapsible-heading .duet-collapsible-heading-content*/.duet-collapsible-heading.sc-duet-collapsible .duet-collapsible-heading-content.sc-duet-collapsible{flex:0 auto;min-width:0}/*!@.duet-collapsible-heading.has-after-heading .duet-collapsible-heading-content + div*/.duet-collapsible-heading.has-after-heading.sc-duet-collapsible .duet-collapsible-heading-content.sc-duet-collapsible+div.sc-duet-collapsible{flex:1 0 auto;margin-left:16px}/*!@.duet-collapsible-heading:focus*/.duet-collapsible-heading.sc-duet-collapsible:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-collapsible-heading:focus*/.user-is-tabbing.sc-duet-collapsible-h .duet-collapsible-heading.sc-duet-collapsible:focus{border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@:host(.user-is-tabbing.duet-theme-turva) .duet-collapsible-heading:focus*/.user-is-tabbing.duet-theme-turva.sc-duet-collapsible-h .duet-collapsible-heading.sc-duet-collapsible:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-collapsible-heading-icon*/.duet-collapsible-heading-icon.sc-duet-collapsible{margin-right:8px !important;display:flex;align-items:center;justify-content:center;color:rgb(0, 41, 77);transition:transform 300ms ease}/*!@.duet-collapsible-heading-icon:last-child, .duet-collapsible-heading-icon:last-of-type*/.duet-collapsible-heading-icon.sc-duet-collapsible:last-child,.duet-collapsible-heading-icon.sc-duet-collapsible:last-of-type{margin-right:0 !important}/*!@[aria-expanded=true] .duet-collapsible-heading-icon*/[aria-expanded=true].sc-duet-collapsible .duet-collapsible-heading-icon.sc-duet-collapsible{transform:rotate(180deg)}";
8444
+ const duetCollapsibleCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-collapsible,*.sc-duet-collapsible::after,*.sc-duet-collapsible::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-collapsible-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:16px !important;display:block;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.5;color:rgb(0, 41, 77)}/*!@:host(.duet-theme-turva)*/.duet-theme-turva.sc-duet-collapsible-h{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@:host(.duet-m-0)*/.duet-m-0.sc-duet-collapsible-h{margin:0 !important}/*!@.duet-collapsible-content*/.duet-collapsible-content.sc-duet-collapsible{display:none;padding-left:18px;margin-top:8px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.5;color:rgb(0, 41, 77)}@media (max-width: 35.9375em){/*!@.duet-collapsible-content*/.duet-collapsible-content.sc-duet-collapsible{font-size:0.875rem}}/*!@.duet-collapsible-content.duet-theme-turva*/.duet-collapsible-content.duet-theme-turva.sc-duet-collapsible{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@:host([open]) > .duet-collapsible-content*/[open].sc-duet-collapsible-h>.duet-collapsible-content.sc-duet-collapsible{display:block}/*!@.duet-collapsible-heading*/.duet-collapsible-heading.sc-duet-collapsible{-webkit-user-select:none;user-select:none;display:flex;align-items:center;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.5;color:rgb(0, 41, 77);text-align:left;cursor:pointer;border-radius:4px}/*!@.duet-collapsible-heading.duet-collapsible-heading-centered*/.duet-collapsible-heading.duet-collapsible-heading-centered.sc-duet-collapsible{margin:auto}/*!@.duet-collapsible-heading.duet-collapsible-normal-weight*/.duet-collapsible-heading.duet-collapsible-normal-weight.sc-duet-collapsible{font-weight:400}/*!@.duet-collapsible-heading.duet-theme-turva*/.duet-collapsible-heading.duet-theme-turva.sc-duet-collapsible{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-collapsible-heading .duet-collapsible-heading-content*/.duet-collapsible-heading.sc-duet-collapsible .duet-collapsible-heading-content.sc-duet-collapsible{flex:0 auto;min-width:0}/*!@.duet-collapsible-heading.has-after-heading .duet-collapsible-heading-content + div*/.duet-collapsible-heading.has-after-heading.sc-duet-collapsible .duet-collapsible-heading-content.sc-duet-collapsible+div.sc-duet-collapsible{flex:1 0 auto;margin-left:16px}/*!@.duet-collapsible-heading:focus*/.duet-collapsible-heading.sc-duet-collapsible:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-collapsible-heading:focus*/.user-is-tabbing.sc-duet-collapsible-h .duet-collapsible-heading.sc-duet-collapsible:focus{border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@:host(.user-is-tabbing.duet-theme-turva) .duet-collapsible-heading:focus*/.user-is-tabbing.duet-theme-turva.sc-duet-collapsible-h .duet-collapsible-heading.sc-duet-collapsible:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-collapsible-heading-icon*/.duet-collapsible-heading-icon.sc-duet-collapsible{margin-right:8px !important;display:flex;align-items:center;justify-content:center;color:rgb(0, 41, 77);transition:transform 300ms ease}/*!@.duet-collapsible-heading-icon:last-child, .duet-collapsible-heading-icon:last-of-type*/.duet-collapsible-heading-icon.sc-duet-collapsible:last-child,.duet-collapsible-heading-icon.sc-duet-collapsible:last-of-type{margin-right:0 !important}/*!@[aria-expanded=true] .duet-collapsible-heading-icon*/[aria-expanded=true].sc-duet-collapsible .duet-collapsible-heading-icon.sc-duet-collapsible{transform:rotate(180deg)}";
8394
8445
 
8395
8446
  /**
8396
8447
  * @part duet-collapsible-heading-content - piercing selector for styling the heading content
@@ -8451,6 +8502,7 @@ class DuetCollapsible {
8451
8502
  this.theme = "";
8452
8503
  this.accessibleLabel = undefined;
8453
8504
  this.heading = "";
8505
+ this.centerHeading = false;
8454
8506
  this.headingWeight = "semibold";
8455
8507
  this.headingSize = undefined;
8456
8508
  this.headingLevel = undefined;
@@ -8483,6 +8535,7 @@ class DuetCollapsible {
8483
8535
  const HeadingTagName = this.headingLevel ? sanitizeString$1(this.headingLevel) : "div";
8484
8536
  return (hAsync(Host, { class: { "duet-m-0": this.margin === "none" } }, hAsync(HeadingTagName, null, hAsync("button", { class: {
8485
8537
  "duet-collapsible-heading": true,
8538
+ "duet-collapsible-heading-centered": this.centerHeading,
8486
8539
  "duet-theme-turva": this.theme === "turva",
8487
8540
  "duet-collapsible-normal-weight": this.headingWeight === "normal",
8488
8541
  "has-after-heading": this.hasAfterHeading,
@@ -8497,6 +8550,7 @@ class DuetCollapsible {
8497
8550
  "theme": [1025],
8498
8551
  "accessibleLabel": [1, "accessible-label"],
8499
8552
  "heading": [1],
8553
+ "centerHeading": [4, "center-heading"],
8500
8554
  "headingWeight": [1, "heading-weight"],
8501
8555
  "headingSize": [1, "heading-size"],
8502
8556
  "headingLevel": [1, "heading-level"],
@@ -9530,6 +9584,11 @@ class DuetDatePicker {
9530
9584
  this.incrementYears = 10;
9531
9585
  this.validity = undefined;
9532
9586
  }
9587
+ watchLanguageStateHandler(newValue, oldValue) {
9588
+ if (newValue !== oldValue && this.placeholder === this.placeholderDefaults[oldValue]) {
9589
+ this.placeholder = getLocaleString(this.placeholderDefaults, newValue);
9590
+ }
9591
+ }
9533
9592
  updateValidity() {
9534
9593
  this.determineValidity(parseISODate(this.value));
9535
9594
  }
@@ -9573,6 +9632,12 @@ class DuetDatePicker {
9573
9632
  break;
9574
9633
  }
9575
9634
  }
9635
+ connectedCallback() {
9636
+ connectLanguageChangeObserver(this);
9637
+ }
9638
+ disconnectedCallback() {
9639
+ disconnectLanguageChangeObserver(this);
9640
+ }
9576
9641
  /**
9577
9642
  * Sets focus on the date picker's input. Use this method instead of the global `focus()`.
9578
9643
  */
@@ -9710,10 +9775,11 @@ class DuetDatePicker {
9710
9775
  left: this.direction === "left",
9711
9776
  error: !!this.error,
9712
9777
  active: this.open,
9713
- }, role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? "false" : "true", "aria-labelledby": this.dialogLabelId, onTouchMove: this.handleTouchMove, onTouchStart: this.handleTouchStart, onTouchEnd: this.handleTouchEnd }, hAsync(FocusGuard, { moveFocusTo: this.focusedDayNode }), hAsync("div", { class: "duet-date-dialog-wrapper", onKeyDown: this.handleEscKey, ref: element => (this.dialogWrapperNode = element) }, hAsync("duet-visually-hidden", { "aria-live": "polite" }, text.keyboardInstruction), hAsync("div", { class: "duet-date-dialog-mobile-header" }, hAsync("duet-label", { margin: "none" }, this.label), hAsync("button", { class: "duet-date-picker-close", ref: element => (this.closeButtonNode = element), onClick: () => this.hide(), type: "button" }, hAsync("duet-icon", { name: "navigation-close-small", margin: "none", color: "currentColor", size: "xx-small" }), hAsync("duet-visually-hidden", null, text.closeLabel))), hAsync("div", { class: "duet-date-dialog-header" }, hAsync("div", { class: "duet-date-dialog-dropdowns" }, hAsync("duet-visually-hidden", null, hAsync("h2", { id: this.dialogLabelId, "aria-live": "polite", "aria-atomic": "true" }, text.monthLabels[focusedMonth], " ", this.focusedDay.getFullYear())), hAsync("duet-visually-hidden", null, hAsync("label", { htmlFor: this.monthSelectId }, text.monthSelectLabel)), hAsync("div", { class: "duet-date-dialog-select" }, hAsync("select", { id: this.monthSelectId, class: "duet-date-month-select", ref: element => (this.monthSelectNode = element), onChange: this.handleMonthSelect }, text.monthLabels.map((month, i) => (hAsync("option", { key: month, value: i, selected: i === focusedMonth, disabled: !inRange(new Date(focusedYear, i, 1), minDate ? startOfMonth(minDate) : null, maxDate ? endOfMonth(maxDate) : null) }, month)))), hAsync("div", { class: "duet-date-dialog-select-label", "aria-hidden": "true" }, hAsync("span", null, text.monthLabelsShort[focusedMonth]), hAsync("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" }))), hAsync("duet-visually-hidden", null, hAsync("label", { htmlFor: this.yearSelectId }, text.yearSelectLabel)), hAsync("div", { class: "duet-date-dialog-select" }, hAsync("select", { id: this.yearSelectId, class: "duet-date-year-select", onChange: this.handleYearSelect }, range(minYear, maxYear).map(year => (hAsync("option", { key: year, selected: year === focusedYear }, year)))), hAsync("div", { class: "duet-date-dialog-select-label", "aria-hidden": "true" }, hAsync("span", null, this.focusedDay.getFullYear()), hAsync("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" })))), hAsync("div", { class: "duet-date-dialog-buttons" }, hAsync("duet-action-button", { class: "duet-date-dialog-prev", onClick: this.handlePreviousMonthClick, disabled: prevMonthDisabled, "icon-name": "action-arrow-left-small" }, text.prevMonthLabel), hAsync("duet-action-button", { class: "duet-date-dialog-next", onClick: this.handleNextMonthClick, disabled: nextMonthDisabled, "icon-name": "action-arrow-right-small" }, text.nextMonthLabel))), hAsync(DatePickerMonth, { selectedDate: valueAsDate, focusedDate: this.focusedDay, onDateSelect: this.handleDaySelect, onKeyboardNavigation: this.handleKeyboardNavigation, labelledById: this.dialogLabelId, language: this.language, theme: this.theme, min: minDate, max: maxDate, focusedDayRef: element => (this.focusedDayNode = element), onFocusEnter: this.enableActiveFocus, onFocusExit: this.disableActiveFocus })), hAsync(FocusGuard, { moveFocusTo: this.closeButtonNode }))));
9778
+ }, role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? "false" : "true", "aria-labelledby": this.dialogLabelId, onTouchMove: this.handleTouchMove, onTouchStart: this.handleTouchStart, onTouchEnd: this.handleTouchEnd }, hAsync(FocusGuard, { moveFocusTo: this.focusedDayNode }), hAsync("div", { class: "duet-date-dialog-wrapper", onKeyDown: this.handleEscKey, ref: element => (this.dialogWrapperNode = element) }, hAsync("duet-visually-hidden", { "aria-live": "polite" }, text.keyboardInstruction), hAsync("div", { class: "duet-date-dialog-mobile-header" }, hAsync("duet-label", { margin: "none" }, this.label), hAsync("button", { class: "duet-date-picker-close", ref: element => (this.closeButtonNode = element), onClick: () => this.hide(), type: "button" }, hAsync("duet-icon", { name: "navigation-close-small", margin: "none", color: "currentColor", size: "xx-small" }), hAsync("duet-visually-hidden", null, text.closeLabel))), hAsync("div", { class: "duet-date-dialog-header" }, hAsync("div", { class: "duet-date-dialog-dropdowns" }, hAsync("duet-visually-hidden", null, hAsync("h2", { id: this.dialogLabelId, "aria-live": "polite", "aria-atomic": "true" }, text.monthLabels[focusedMonth], " ", this.focusedDay.getFullYear())), hAsync("duet-visually-hidden", null, hAsync("label", { htmlFor: this.monthSelectId }, text.monthSelectLabel)), hAsync("div", { class: "duet-date-dialog-select" }, hAsync("select", { id: this.monthSelectId, class: "duet-date-month-select", ref: element => (this.monthSelectNode = element), onChange: this.handleMonthSelect }, text.monthLabels.map((month, i) => (hAsync("option", { key: month, value: i, selected: i === focusedMonth, disabled: !inRange(new Date(focusedYear, i, 1), minDate ? startOfMonth(minDate) : null, maxDate ? endOfMonth(maxDate) : null) }, month)))), hAsync("div", { class: "duet-date-dialog-select-label", "aria-hidden": "true" }, hAsync("span", null, text.monthLabelsShort[focusedMonth]), hAsync("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" }))), hAsync("duet-visually-hidden", null, hAsync("label", { htmlFor: this.yearSelectId }, text.yearSelectLabel)), hAsync("div", { class: "duet-date-dialog-select" }, hAsync("select", { id: this.yearSelectId, class: "duet-date-year-select", onChange: this.handleYearSelect }, range(minYear, maxYear).map(year => (hAsync("option", { key: year, selected: year === focusedYear }, year)))), hAsync("div", { class: "duet-date-dialog-select-label", "aria-hidden": "true" }, hAsync("span", null, this.focusedDay.getFullYear()), hAsync("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" })))), hAsync("div", { class: "duet-date-dialog-buttons" }, hAsync("duet-action-button", { accessibleLabel: i18n$2[this.language].prevMonthLabel, actionName: i18n$2[this.language].prevMonthLabel, class: "duet-date-dialog-prev", onClick: this.handlePreviousMonthClick, disabled: prevMonthDisabled, "icon-name": "action-arrow-left-small" }, text.prevMonthLabel), hAsync("duet-action-button", { accessibleLabel: i18n$2[this.language].nextMonthLabel, actionName: i18n$2[this.language].nextMonthLabel, class: "duet-date-dialog-next", onClick: this.handleNextMonthClick, disabled: nextMonthDisabled, "icon-name": "action-arrow-right-small" }, text.nextMonthLabel))), hAsync(DatePickerMonth, { selectedDate: valueAsDate, focusedDate: this.focusedDay, onDateSelect: this.handleDaySelect, onKeyboardNavigation: this.handleKeyboardNavigation, labelledById: this.dialogLabelId, language: this.language, theme: this.theme, min: minDate, max: maxDate, focusedDayRef: element => (this.focusedDayNode = element), onFocusEnter: this.enableActiveFocus, onFocusExit: this.disableActiveFocus })), hAsync(FocusGuard, { moveFocusTo: this.closeButtonNode }))));
9714
9779
  }
9715
9780
  get element() { return getElement(this); }
9716
9781
  static get watchers() { return {
9782
+ "language": ["watchLanguageStateHandler"],
9717
9783
  "min": ["updateValidity"],
9718
9784
  "max": ["updateValidity"],
9719
9785
  "value": ["updateValidity", "updateInternalValue"],
@@ -9731,9 +9797,9 @@ class DuetDatePicker {
9731
9797
  "label": [1],
9732
9798
  "caption": [1],
9733
9799
  "margin": [1],
9734
- "language": [1],
9800
+ "language": [1537],
9735
9801
  "placeholderDefaults": [1, "placeholder-default"],
9736
- "placeholder": [1],
9802
+ "placeholder": [1025],
9737
9803
  "echoPlaceholder": [1540, "echo-placeholder"],
9738
9804
  "disabled": [516],
9739
9805
  "error": [1],
@@ -9761,7 +9827,7 @@ class DuetDatePicker {
9761
9827
  },
9762
9828
  "$listeners$": [[4, "click", "handleDocumentClick"]],
9763
9829
  "$lazyBundleId$": "-",
9764
- "$attrsToReflect$": [["echoPlaceholder", "echo-placeholder"], ["disabled", "disabled"], ["value", "value"]]
9830
+ "$attrsToReflect$": [["language", "language"], ["echoPlaceholder", "echo-placeholder"], ["disabled", "disabled"], ["value", "value"]]
9765
9831
  }; }
9766
9832
  }
9767
9833
 
@@ -10174,9 +10240,14 @@ class DuetFooter {
10174
10240
  this.language = getLanguage();
10175
10241
  this.items = undefined;
10176
10242
  this.accessibleLabelExternalDefaults = DuetStringsExternalDefaults;
10177
- this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults, this.language);
10243
+ this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults);
10178
10244
  this.menu = undefined;
10179
10245
  }
10246
+ watchLanguageStateHandler(newValue, oldValue) {
10247
+ if (newValue !== oldValue && this.accessibleLabelExternal === this.accessibleLabelExternalDefaults[oldValue]) {
10248
+ this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults, newValue);
10249
+ }
10250
+ }
10180
10251
  /**
10181
10252
  * Component lifecycle events.
10182
10253
  */
@@ -10184,6 +10255,12 @@ class DuetFooter {
10184
10255
  inheritGlobalTheme(this);
10185
10256
  this.refresh();
10186
10257
  }
10258
+ connectedCallback() {
10259
+ connectLanguageChangeObserver(this);
10260
+ }
10261
+ disconnectedCallback() {
10262
+ disconnectLanguageChangeObserver(this);
10263
+ }
10187
10264
  /**
10188
10265
  * Local methods
10189
10266
  */
@@ -10209,6 +10286,7 @@ class DuetFooter {
10209
10286
  }
10210
10287
  get element() { return getElement(this); }
10211
10288
  static get watchers() { return {
10289
+ "language": ["watchLanguageStateHandler"],
10212
10290
  "menu": ["refresh"],
10213
10291
  "items": ["refresh"]
10214
10292
  }; }
@@ -10221,10 +10299,10 @@ class DuetFooter {
10221
10299
  "variation": [1],
10222
10300
  "margin": [1],
10223
10301
  "logoHref": [1, "logo-href"],
10224
- "language": [1025],
10302
+ "language": [1537],
10225
10303
  "items": [8],
10226
10304
  "accessibleLabelExternalDefaults": [1, "accessible-label-external-default"],
10227
- "accessibleLabelExternal": [1, "accessible-label-external"],
10305
+ "accessibleLabelExternal": [1025, "accessible-label-external"],
10228
10306
  "menu": [8],
10229
10307
  "processedMainItem": [32],
10230
10308
  "processedItems": [32],
@@ -10232,7 +10310,7 @@ class DuetFooter {
10232
10310
  },
10233
10311
  "$listeners$": undefined,
10234
10312
  "$lazyBundleId$": "-",
10235
- "$attrsToReflect$": []
10313
+ "$attrsToReflect$": [["language", "language"]]
10236
10314
  }; }
10237
10315
  }
10238
10316
 
@@ -12210,12 +12288,23 @@ class DuetLink {
12210
12288
  this.icon = undefined;
12211
12289
  this.padding = "auto";
12212
12290
  }
12291
+ watchLanguageStateHandler(newValue, oldValue) {
12292
+ if (newValue !== oldValue && this.accessibleLabelExternal === this.accessibleLabelExternalDefaults[oldValue]) {
12293
+ this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults, newValue);
12294
+ }
12295
+ }
12213
12296
  /**
12214
12297
  * Component lifecycle events.
12215
12298
  */
12216
12299
  componentWillLoad() {
12217
12300
  inheritGlobalTheme(this);
12218
12301
  }
12302
+ connectedCallback() {
12303
+ connectLanguageChangeObserver(this);
12304
+ }
12305
+ disconnectedCallback() {
12306
+ disconnectLanguageChangeObserver(this);
12307
+ }
12219
12308
  /**
12220
12309
  * Sets focus on the specified `duet-link`. Use this method instead of the global
12221
12310
  * `link.focus()`.
@@ -12250,6 +12339,9 @@ class DuetLink {
12250
12339
  }, target: this.external ? "_blank" : "_self", "aria-label": this.accessibleLabel, id: this.identifier, ref: el => (this.nativeLink = el), part: "duet-link", rel: this.external ? "noopener" : undefined }, this.variation === "block" ? this.renderGrid() : this.renderContent())));
12251
12340
  }
12252
12341
  static get delegatesFocus() { return true; }
12342
+ static get watchers() { return {
12343
+ "language": ["watchLanguageStateHandler"]
12344
+ }; }
12253
12345
  static get style() { return duetLinkCss; }
12254
12346
  static get cmpMeta() { return {
12255
12347
  "$flags$": 25,
@@ -12257,9 +12349,9 @@ class DuetLink {
12257
12349
  "$members$": {
12258
12350
  "variation": [1],
12259
12351
  "accessibleLabel": [1, "accessible-label"],
12260
- "language": [1025],
12352
+ "language": [1537],
12261
12353
  "accessibleLabelExternalDefaults": [1, "accessible-label-external-default"],
12262
- "accessibleLabelExternal": [1, "accessible-label-external"],
12354
+ "accessibleLabelExternal": [1025, "accessible-label-external"],
12263
12355
  "identifier": [1],
12264
12356
  "theme": [1025],
12265
12357
  "url": [513],
@@ -12271,7 +12363,7 @@ class DuetLink {
12271
12363
  },
12272
12364
  "$listeners$": undefined,
12273
12365
  "$lazyBundleId$": "-",
12274
- "$attrsToReflect$": [["url", "url"]]
12366
+ "$attrsToReflect$": [["language", "language"], ["url", "url"]]
12275
12367
  }; }
12276
12368
  }
12277
12369
 
@@ -12593,6 +12685,12 @@ class DuetMenuBar {
12593
12685
  return;
12594
12686
  }
12595
12687
  }
12688
+ onWindowResize() {
12689
+ clearTimeout(this.resizeTimer);
12690
+ this.resizeTimer = setTimeout(() => {
12691
+ this.scrollToActive();
12692
+ }, 100);
12693
+ }
12596
12694
  /**
12597
12695
  * render() function
12598
12696
  * Always the last one in the class.
@@ -12619,13 +12717,13 @@ class DuetMenuBar {
12619
12717
  "leftMoreVisible": [32],
12620
12718
  "rightMoreVisible": [32]
12621
12719
  },
12622
- "$listeners$": undefined,
12720
+ "$listeners$": [[9, "resize", "onWindowResize"]],
12623
12721
  "$lazyBundleId$": "-",
12624
12722
  "$attrsToReflect$": []
12625
12723
  }; }
12626
12724
  }
12627
12725
 
12628
- const duetMenuBarButtonCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-menu-bar-button,*.sc-duet-menu-bar-button::after,*.sc-duet-menu-bar-button::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-menu-bar-button-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:100%}/*!@.duet-menu-bar-button*/.duet-menu-bar-button.sc-duet-menu-bar-button{position:relative;display:flex;gap:8px;align-items:center;justify-content:center;height:100%;padding:0 12px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:inherit;color:inherit;text-align:center;text-decoration:none;cursor:pointer}/*!@.duet-menu-bar-button.duet-theme-turva*/.duet-menu-bar-button.duet-theme-turva.sc-duet-menu-bar-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}@media (min-width: 62em){/*!@.duet-menu-bar-button*/.duet-menu-bar-button.sc-duet-menu-bar-button{padding:0 16px}}@media (min-width: 76.25em){/*!@.duet-menu-bar-button*/.duet-menu-bar-button.sc-duet-menu-bar-button{padding:0 28px}}@media (min-width: 62em){/*!@.duet-menu-bar-button:hover*/.duet-menu-bar-button.sc-duet-menu-bar-button:hover{color:rgb(0, 119, 179)}/*!@.duet-menu-bar-button:hover.duet-theme-turva*/.duet-menu-bar-button.sc-duet-menu-bar-button:hover.duet-theme-turva{color:rgb(198, 12, 48)}}";
12726
+ const duetMenuBarButtonCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-menu-bar-button,*.sc-duet-menu-bar-button::after,*.sc-duet-menu-bar-button::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-menu-bar-button-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:100%}/*!@.duet-menu-bar-button*/.duet-menu-bar-button.sc-duet-menu-bar-button{position:relative;display:flex;gap:8px;align-items:center;justify-content:center;height:100%;padding:0 12px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:inherit;color:inherit;text-align:center;text-decoration:none;cursor:pointer}/*!@.duet-menu-bar-button.duet-theme-turva*/.duet-menu-bar-button.duet-theme-turva.sc-duet-menu-bar-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-menu-bar-button:focus*/.duet-menu-bar-button.sc-duet-menu-bar-button:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-menu-bar-button:focus.duet-theme-turva*/.duet-menu-bar-button.sc-duet-menu-bar-button:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}@media (min-width: 62em){/*!@.duet-menu-bar-button*/.duet-menu-bar-button.sc-duet-menu-bar-button{padding:0 16px}}@media (min-width: 76.25em){/*!@.duet-menu-bar-button*/.duet-menu-bar-button.sc-duet-menu-bar-button{padding:0 28px}}@media (min-width: 62em){/*!@.duet-menu-bar-button:hover*/.duet-menu-bar-button.sc-duet-menu-bar-button:hover{color:rgb(0, 119, 179)}/*!@.duet-menu-bar-button:hover.duet-theme-turva*/.duet-menu-bar-button.sc-duet-menu-bar-button:hover.duet-theme-turva{color:rgb(198, 12, 48)}}";
12629
12727
 
12630
12728
  class DuetMenuBarButton {
12631
12729
  constructor(hostRef) {
@@ -12727,7 +12825,7 @@ class DuetMenuBarButton {
12727
12825
  }; }
12728
12826
  }
12729
12827
 
12730
- const duetMenuBarDropdownCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-menu-bar-dropdown,*.sc-duet-menu-bar-dropdown::after,*.sc-duet-menu-bar-dropdown::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-menu-bar-dropdown-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:100%}@media (min-width: 62em){/*!@:host(:last-child) .duet-menu-bar-dropdown button*/.sc-duet-menu-bar-dropdown-h:last-child .duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown{padding:0 16px 0 16px}}@media (min-width: 76.25em){/*!@:host(:last-child) .duet-menu-bar-dropdown button*/.sc-duet-menu-bar-dropdown-h:last-child .duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown{padding:0 16px 0 28px}}/*!@.duet-menu-bar-dropdown*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown{position:relative;height:100%}/*!@.duet-menu-bar-dropdown button*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown{position:relative;display:flex;gap:8px;align-items:center;justify-content:center;height:100%;padding:0 12px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:rgb(0, 77, 128);text-align:center;text-decoration:none;cursor:pointer}@media (min-width: 62em){/*!@.duet-menu-bar-dropdown button*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown{padding:0 16px}}@media (min-width: 76.25em){/*!@.duet-menu-bar-dropdown button*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown{padding:0 28px}}/*!@.duet-menu-bar-dropdown button:hover*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown:hover{color:rgb(0, 119, 179)}/*!@.duet-menu-bar-dropdown button .label*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown .label.sc-duet-menu-bar-dropdown{display:flex;gap:0.5rem;align-items:center;justify-content:center}/*!@.duet-menu-bar-dropdown button.active*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.active.sc-duet-menu-bar-dropdown{color:rgb(0, 119, 179)}/*!@.duet-menu-bar-dropdown button.active .caret*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.active.sc-duet-menu-bar-dropdown .caret.sc-duet-menu-bar-dropdown{transform:rotate(180deg)}/*!@.duet-theme-turva .duet-menu-bar-dropdown button.active*/.duet-theme-turva.sc-duet-menu-bar-dropdown .duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.active.sc-duet-menu-bar-dropdown{color:rgb(198, 12, 48)}/*!@.duet-menu-bar-dropdown button.active::after*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.active.sc-duet-menu-bar-dropdown::after{position:absolute;top:auto;bottom:2px;left:0;display:block;width:100%;height:2px;content:\"\";background:rgb(0, 119, 179);transition:300ms ease;transform:translateY(2px)}/*!@.duet-theme-turva .duet-menu-bar-dropdown button.active::after*/.duet-theme-turva.sc-duet-menu-bar-dropdown .duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.active.sc-duet-menu-bar-dropdown::after{background:rgb(198, 12, 48)}/*!@.duet-menu-bar-dropdown .items*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown .items.sc-duet-menu-bar-dropdown{position:absolute;right:0%;left:auto;z-index:600;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:225px;padding:1rem 0;color:rgb(0, 41, 77);background:rgb(243, 249, 252);border-radius:0 0 8px 8px;box-shadow:0 6px 6px 0 rgba(0, 41, 77, 0.1)}/*!@.duet-menu-bar-dropdown .items.hidden*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown .items.hidden.sc-duet-menu-bar-dropdown{display:none}/*!@.duet-menu-bar-dropdown.duet-theme-turva button*/.duet-menu-bar-dropdown.duet-theme-turva.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-menu-bar-dropdown.duet-theme-turva button:hover*/.duet-menu-bar-dropdown.duet-theme-turva.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown:hover{color:rgb(198, 12, 48)}/*!@.duet-menu-bar-dropdown.duet-theme-turva button.active*/.duet-menu-bar-dropdown.duet-theme-turva.sc-duet-menu-bar-dropdown button.active.sc-duet-menu-bar-dropdown{color:rgb(198, 12, 48)}/*!@.duet-menu-bar-dropdown.duet-theme-turva button.active::after*/.duet-menu-bar-dropdown.duet-theme-turva.sc-duet-menu-bar-dropdown button.active.sc-duet-menu-bar-dropdown::after{background:rgb(198, 12, 48)}/*!@.duet-menu-bar-dropdown.duet-theme-turva .items*/.duet-menu-bar-dropdown.duet-theme-turva.sc-duet-menu-bar-dropdown .items.sc-duet-menu-bar-dropdown{background:rgb(245, 245, 247)}";
12828
+ const duetMenuBarDropdownCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-menu-bar-dropdown,*.sc-duet-menu-bar-dropdown::after,*.sc-duet-menu-bar-dropdown::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-menu-bar-dropdown-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:100%}@media (min-width: 62em){/*!@:host(:last-child) .duet-menu-bar-dropdown button*/.sc-duet-menu-bar-dropdown-h:last-child .duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown{padding:0 16px 0 16px}}@media (min-width: 76.25em){/*!@:host(:last-child) .duet-menu-bar-dropdown button*/.sc-duet-menu-bar-dropdown-h:last-child .duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown{padding:0 16px 0 28px}}/*!@.duet-menu-bar-dropdown*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown{position:relative;height:100%}/*!@.duet-menu-bar-dropdown button*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown{position:relative;display:flex;gap:8px;align-items:center;justify-content:center;height:100%;padding:0 12px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:rgb(0, 77, 128);text-align:center;text-decoration:none;cursor:pointer}@media (min-width: 62em){/*!@.duet-menu-bar-dropdown button*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown{padding:0 16px}}@media (min-width: 76.25em){/*!@.duet-menu-bar-dropdown button*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown{padding:0 28px}}/*!@.duet-menu-bar-dropdown button:hover*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown:hover{color:rgb(0, 119, 179)}/*!@.duet-menu-bar-dropdown button:focus*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-menu-bar-dropdown button .label*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown .label.sc-duet-menu-bar-dropdown{display:flex;gap:0.5rem;align-items:center;justify-content:center}/*!@.duet-menu-bar-dropdown button.active*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.active.sc-duet-menu-bar-dropdown{color:rgb(0, 119, 179)}/*!@.duet-menu-bar-dropdown button.active .caret*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.active.sc-duet-menu-bar-dropdown .caret.sc-duet-menu-bar-dropdown{transform:rotate(180deg)}/*!@.duet-theme-turva .duet-menu-bar-dropdown button.active*/.duet-theme-turva.sc-duet-menu-bar-dropdown .duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.active.sc-duet-menu-bar-dropdown{color:rgb(198, 12, 48)}/*!@.duet-menu-bar-dropdown button.active::after*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.active.sc-duet-menu-bar-dropdown::after{position:absolute;top:auto;bottom:2px;left:0;display:block;width:100%;height:2px;content:\"\";background:rgb(0, 119, 179);transition:300ms ease;transform:translateY(2px)}/*!@.duet-theme-turva .duet-menu-bar-dropdown button.active::after*/.duet-theme-turva.sc-duet-menu-bar-dropdown .duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown button.active.sc-duet-menu-bar-dropdown::after{background:rgb(198, 12, 48)}/*!@.duet-menu-bar-dropdown .items*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown .items.sc-duet-menu-bar-dropdown{position:absolute;right:0%;left:auto;z-index:600;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:225px;padding:1rem 0;color:rgb(0, 41, 77);background:rgb(243, 249, 252);border-radius:0 0 8px 8px;box-shadow:0 6px 6px 0 rgba(0, 41, 77, 0.1)}/*!@.duet-menu-bar-dropdown .items.hidden*/.duet-menu-bar-dropdown.sc-duet-menu-bar-dropdown .items.hidden.sc-duet-menu-bar-dropdown{display:none}/*!@.duet-menu-bar-dropdown.duet-theme-turva button*/.duet-menu-bar-dropdown.duet-theme-turva.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-menu-bar-dropdown.duet-theme-turva button:focus*/.duet-menu-bar-dropdown.duet-theme-turva.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-menu-bar-dropdown.duet-theme-turva button:hover*/.duet-menu-bar-dropdown.duet-theme-turva.sc-duet-menu-bar-dropdown button.sc-duet-menu-bar-dropdown:hover{color:rgb(198, 12, 48)}/*!@.duet-menu-bar-dropdown.duet-theme-turva button.active*/.duet-menu-bar-dropdown.duet-theme-turva.sc-duet-menu-bar-dropdown button.active.sc-duet-menu-bar-dropdown{color:rgb(198, 12, 48)}/*!@.duet-menu-bar-dropdown.duet-theme-turva button.active::after*/.duet-menu-bar-dropdown.duet-theme-turva.sc-duet-menu-bar-dropdown button.active.sc-duet-menu-bar-dropdown::after{background:rgb(198, 12, 48)}/*!@.duet-menu-bar-dropdown.duet-theme-turva .items*/.duet-menu-bar-dropdown.duet-theme-turva.sc-duet-menu-bar-dropdown .items.sc-duet-menu-bar-dropdown{background:rgb(245, 245, 247)}";
12731
12829
 
12732
12830
  class DuetMenuBarDropdown {
12733
12831
  constructor(hostRef) {
@@ -12797,6 +12895,18 @@ class DuetMenuBarDropdown {
12797
12895
  }
12798
12896
  this.boundMqlFunctions = [];
12799
12897
  }
12898
+ handleEscape(e) {
12899
+ if (isEscapeKey(e)) {
12900
+ this.open = false;
12901
+ this.setFocus();
12902
+ }
12903
+ }
12904
+ /**
12905
+ * Sets focus. Use this method instead of the global focus().
12906
+ */
12907
+ async setFocus(options) {
12908
+ this.button.focus(options);
12909
+ }
12800
12910
  /**
12801
12911
  * render() function
12802
12912
  * Always the last one in the class.
@@ -12807,9 +12917,9 @@ class DuetMenuBarDropdown {
12807
12917
  "duet-theme-turva": this.theme === "turva",
12808
12918
  active: this.open,
12809
12919
  [`duet-menu-bar-dropdown--slot-${this.getVariant()}`]: true,
12810
- } }, hAsync("button", { "aria-label": this.accessibleLabel, "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
12920
+ } }, hAsync("button", { 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: {
12811
12921
  active: this.open,
12812
- }, onClick: this.onClick }, this.icon && (hAsync("duet-icon", { theme: this.theme, name: this.icon, size: this.iconSize, margin: "none", color: "currentColor" })), hAsync("div", { class: "label" }, hAsync("slot", { name: "label" }), hAsync("duet-icon", { class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
12922
+ }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (hAsync("duet-icon", { theme: this.theme, name: this.icon, size: this.iconSize, margin: "none", color: "currentColor" })), hAsync("div", { class: "label" }, hAsync("slot", { name: "label" }), hAsync("duet-icon", { class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
12813
12923
  items: true,
12814
12924
  hidden: !this.open,
12815
12925
  } }, hAsync("slot", null)))));
@@ -12824,7 +12934,8 @@ class DuetMenuBarDropdown {
12824
12934
  "theme": [1025],
12825
12935
  "open": [1540],
12826
12936
  "icon": [1537],
12827
- "iconSize": [32]
12937
+ "iconSize": [32],
12938
+ "setFocus": [64]
12828
12939
  },
12829
12940
  "$listeners$": [[8, "click", "handleFocus"]],
12830
12941
  "$lazyBundleId$": "-",
@@ -12832,7 +12943,7 @@ class DuetMenuBarDropdown {
12832
12943
  }; }
12833
12944
  }
12834
12945
 
12835
- const duetMenuBarDropdownLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-menu-bar-dropdown-link,*.sc-duet-menu-bar-dropdown-link::after,*.sc-duet-menu-bar-dropdown-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-menu-bar-dropdown-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%}/*!@.duet-menu-bar-dropdown-link*/.duet-menu-bar-dropdown-link.sc-duet-menu-bar-dropdown-link{display:flex;flex-direction:row;gap:0.5rem;align-items:center;justify-content:flex-start;height:100%;padding:0.5rem 20px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:rgb(0, 41, 77);text-align:center;text-decoration:none}/*!@.duet-menu-bar-dropdown-link.duet-theme-turva*/.duet-menu-bar-dropdown-link.duet-theme-turva.sc-duet-menu-bar-dropdown-link{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-menu-bar-dropdown-link--slot-right:hover*/.duet-menu-bar-dropdown-link--slot-right.sc-duet-menu-bar-dropdown-link:hover{background:rgb(230, 242, 248)}/*!@.duet-menu-bar-dropdown-link--slot-right:hover.duet-theme-turva*/.duet-menu-bar-dropdown-link--slot-right.sc-duet-menu-bar-dropdown-link:hover.duet-theme-turva{background:rgb(228, 228, 230)}/*!@.duet-menu-bar-dropdown-link--slot-below:hover*/.duet-menu-bar-dropdown-link--slot-below.sc-duet-menu-bar-dropdown-link:hover{color:rgb(0, 77, 128);background:rgb(243, 249, 252)}/*!@.duet-menu-bar-dropdown-link--slot-below:hover.duet-theme-turva*/.duet-menu-bar-dropdown-link--slot-below.sc-duet-menu-bar-dropdown-link:hover.duet-theme-turva{color:rgb(148, 9, 37);background:rgb(228, 228, 230)}";
12946
+ const duetMenuBarDropdownLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-menu-bar-dropdown-link,*.sc-duet-menu-bar-dropdown-link::after,*.sc-duet-menu-bar-dropdown-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-menu-bar-dropdown-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%}/*!@.duet-menu-bar-dropdown-link*/.duet-menu-bar-dropdown-link.sc-duet-menu-bar-dropdown-link{display:flex;flex-direction:row;gap:0.5rem;align-items:center;justify-content:flex-start;height:100%;padding:0.5rem 20px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:rgb(0, 41, 77);text-align:center;text-decoration:none}/*!@.duet-menu-bar-dropdown-link.duet-theme-turva*/.duet-menu-bar-dropdown-link.duet-theme-turva.sc-duet-menu-bar-dropdown-link{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-menu-bar-dropdown-link--slot-right:hover*/.duet-menu-bar-dropdown-link--slot-right.sc-duet-menu-bar-dropdown-link:hover{background:rgb(230, 242, 248)}/*!@.duet-menu-bar-dropdown-link--slot-right:hover.duet-theme-turva*/.duet-menu-bar-dropdown-link--slot-right.sc-duet-menu-bar-dropdown-link:hover.duet-theme-turva{background:rgb(228, 228, 230)}/*!@.duet-menu-bar-dropdown-link--slot-right:focus*/.duet-menu-bar-dropdown-link--slot-right.sc-duet-menu-bar-dropdown-link:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-menu-bar-dropdown-link--slot-right:focus.duet-theme-turva*/.duet-menu-bar-dropdown-link--slot-right.sc-duet-menu-bar-dropdown-link:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-menu-bar-dropdown-link--slot-below:hover*/.duet-menu-bar-dropdown-link--slot-below.sc-duet-menu-bar-dropdown-link:hover{color:rgb(0, 77, 128);background:rgb(243, 249, 252)}/*!@.duet-menu-bar-dropdown-link--slot-below:hover.duet-theme-turva*/.duet-menu-bar-dropdown-link--slot-below.sc-duet-menu-bar-dropdown-link:hover.duet-theme-turva{color:rgb(148, 9, 37);background:rgb(228, 228, 230)}";
12836
12947
 
12837
12948
  class DuetMenuBarDropdownLink {
12838
12949
  constructor(hostRef) {
@@ -12858,6 +12969,13 @@ class DuetMenuBarDropdownLink {
12858
12969
  componentWillLoad() {
12859
12970
  inheritGlobalTheme(this);
12860
12971
  }
12972
+ handleEscape(e) {
12973
+ if (isEscapeKey(e)) {
12974
+ const dropdown = this.element.closest("duet-menu-bar-dropdown");
12975
+ dropdown.open = false;
12976
+ dropdown.setFocus();
12977
+ }
12978
+ }
12861
12979
  /**
12862
12980
  * render() function
12863
12981
  * Always the last one in the class.
@@ -12867,7 +12985,7 @@ class DuetMenuBarDropdownLink {
12867
12985
  "duet-menu-bar-dropdown-link": true,
12868
12986
  [`duet-menu-bar-dropdown-link--slot-${this.getVariant()}`]: true,
12869
12987
  "duet-theme-turva": this.theme === "turva",
12870
- }, href: this.href, role: "menuitem" }, this.icon && (hAsync("duet-icon", { theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), hAsync("slot", null))));
12988
+ }, href: this.href, role: "menuitem", onKeyUp: e => this.handleEscape(e) }, this.icon && (hAsync("duet-icon", { theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), hAsync("slot", null))));
12871
12989
  }
12872
12990
  get element() { return getElement(this); }
12873
12991
  static get style() { return duetMenuBarDropdownLinkCss; }
@@ -12885,7 +13003,7 @@ class DuetMenuBarDropdownLink {
12885
13003
  }; }
12886
13004
  }
12887
13005
 
12888
- const duetMenuBarLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-menu-bar-link,*.sc-duet-menu-bar-link::after,*.sc-duet-menu-bar-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-menu-bar-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:100%}/*!@.duet-menu-bar-link*/.duet-menu-bar-link.sc-duet-menu-bar-link{position:relative;display:flex;gap:8px;align-items:center;justify-content:center;height:100%;padding:0 12px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:inherit;text-align:center;text-decoration:none;white-space:nowrap}/*!@.duet-menu-bar-link.duet-theme-turva*/.duet-menu-bar-link.duet-theme-turva.sc-duet-menu-bar-link{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}@media (min-width: 62em){/*!@.duet-menu-bar-link*/.duet-menu-bar-link.sc-duet-menu-bar-link{padding:0 16px}}@media (min-width: 76.25em){/*!@.duet-menu-bar-link*/.duet-menu-bar-link.sc-duet-menu-bar-link{padding:0 28px}}/*!@.duet-menu-bar-link.active*/.duet-menu-bar-link.active.sc-duet-menu-bar-link{color:rgb(0, 119, 179)}/*!@.duet-menu-bar-link.active::after*/.duet-menu-bar-link.active.sc-duet-menu-bar-link::after{position:absolute;top:auto;bottom:2px;left:0;z-index:1;display:block;width:100%;height:1px;content:\"\";background:rgb(0, 119, 179);transition:300ms ease;transform:translateY(2px)}@media (min-width: 62em){/*!@.duet-menu-bar-link.active::after*/.duet-menu-bar-link.active.sc-duet-menu-bar-link::after{z-index:auto;height:2px}}/*!@.duet-menu-bar-link.active.duet-theme-turva*/.duet-menu-bar-link.active.duet-theme-turva.sc-duet-menu-bar-link{color:rgb(198, 12, 48)}/*!@.duet-menu-bar-link.active.duet-theme-turva::after*/.duet-menu-bar-link.active.duet-theme-turva.sc-duet-menu-bar-link::after{background:rgb(198, 12, 48)}@media (min-width: 62em){/*!@.duet-menu-bar-link:hover*/.duet-menu-bar-link.sc-duet-menu-bar-link:hover{color:rgb(0, 119, 179)}/*!@.duet-menu-bar-link:hover.duet-theme-turva*/.duet-menu-bar-link.sc-duet-menu-bar-link:hover.duet-theme-turva{color:rgb(198, 12, 48)}}";
13006
+ const duetMenuBarLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-menu-bar-link,*.sc-duet-menu-bar-link::after,*.sc-duet-menu-bar-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-menu-bar-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:100%}/*!@.duet-menu-bar-link*/.duet-menu-bar-link.sc-duet-menu-bar-link{position:relative;display:flex;gap:8px;align-items:center;justify-content:center;height:100%;padding:0 12px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:inherit;text-align:center;text-decoration:none;white-space:nowrap}/*!@.duet-menu-bar-link.duet-theme-turva*/.duet-menu-bar-link.duet-theme-turva.sc-duet-menu-bar-link{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}@media (min-width: 62em){/*!@.duet-menu-bar-link*/.duet-menu-bar-link.sc-duet-menu-bar-link{padding:0 16px}}@media (min-width: 76.25em){/*!@.duet-menu-bar-link*/.duet-menu-bar-link.sc-duet-menu-bar-link{padding:0 28px}}/*!@.duet-menu-bar-link:focus*/.duet-menu-bar-link.sc-duet-menu-bar-link:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-menu-bar-link:focus.duet-theme-turva*/.duet-menu-bar-link.sc-duet-menu-bar-link:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-menu-bar-link.active*/.duet-menu-bar-link.active.sc-duet-menu-bar-link{color:rgb(0, 119, 179)}/*!@.duet-menu-bar-link.active::after*/.duet-menu-bar-link.active.sc-duet-menu-bar-link::after{position:absolute;top:auto;bottom:2px;left:0;z-index:1;display:block;width:100%;height:1px;content:\"\";background:rgb(0, 119, 179);transition:300ms ease;transform:translateY(2px)}@media (min-width: 62em){/*!@.duet-menu-bar-link.active::after*/.duet-menu-bar-link.active.sc-duet-menu-bar-link::after{z-index:auto;height:2px}}/*!@.duet-menu-bar-link.active.duet-theme-turva*/.duet-menu-bar-link.active.duet-theme-turva.sc-duet-menu-bar-link{color:rgb(198, 12, 48)}/*!@.duet-menu-bar-link.active.duet-theme-turva::after*/.duet-menu-bar-link.active.duet-theme-turva.sc-duet-menu-bar-link::after{background:rgb(198, 12, 48)}@media (min-width: 62em){/*!@.duet-menu-bar-link:hover*/.duet-menu-bar-link.sc-duet-menu-bar-link:hover{color:rgb(0, 119, 179)}/*!@.duet-menu-bar-link:hover.duet-theme-turva*/.duet-menu-bar-link.sc-duet-menu-bar-link:hover.duet-theme-turva{color:rgb(198, 12, 48)}}";
12889
13007
 
12890
13008
  class DuetMenuBarLink {
12891
13009
  constructor(hostRef) {
@@ -12944,7 +13062,7 @@ class DuetMenuBarLink {
12944
13062
  "duet-menu-bar-link": true,
12945
13063
  "duet-theme-turva": this.theme === "turva",
12946
13064
  active: this.active,
12947
- }, href: this.href }, this.icon && (hAsync("duet-icon", { theme: this.theme, size: this.iconSize, name: this.icon, margin: "none", color: "currentColor" })), hAsync("slot", null))));
13065
+ }, href: this.href, "aria-current": this.active ? "true" : "false" }, this.icon && (hAsync("duet-icon", { theme: this.theme, size: this.iconSize, name: this.icon, margin: "none", color: "currentColor" })), hAsync("slot", null))));
12948
13066
  }
12949
13067
  get element() { return getElement(this); }
12950
13068
  static get style() { return duetMenuBarLinkCss; }
@@ -13057,6 +13175,11 @@ class DuetModal {
13057
13175
  }
13058
13176
  }
13059
13177
  }
13178
+ watchLanguageStateHandler(newValue, oldValue) {
13179
+ if (newValue !== oldValue && this.accessibleCloseLabel === this.accessibleCloseLabelDefaults[oldValue]) {
13180
+ this.accessibleCloseLabel = getLocaleString(this.accessibleCloseLabelDefaults, newValue);
13181
+ }
13182
+ }
13060
13183
  activeChanged() {
13061
13184
  this.open = this.active;
13062
13185
  }
@@ -13074,7 +13197,11 @@ class DuetModal {
13074
13197
  this.modalEl.classList.add("duet-disable-transitions");
13075
13198
  }
13076
13199
  }
13200
+ connectedCallback() {
13201
+ connectLanguageChangeObserver(this);
13202
+ }
13077
13203
  disconnectedCallback() {
13204
+ disconnectLanguageChangeObserver(this);
13078
13205
  enableBodyScroll(this.modalEl);
13079
13206
  }
13080
13207
  /**
@@ -13155,6 +13282,7 @@ class DuetModal {
13155
13282
  get element() { return getElement(this); }
13156
13283
  static get watchers() { return {
13157
13284
  "open": ["openChanged"],
13285
+ "language": ["watchLanguageStateHandler"],
13158
13286
  "active": ["activeChanged"]
13159
13287
  }; }
13160
13288
  static get style() { return duetModalCss; }
@@ -13162,9 +13290,9 @@ class DuetModal {
13162
13290
  "$flags$": 9,
13163
13291
  "$tagName$": "duet-modal",
13164
13292
  "$members$": {
13165
- "language": [1025],
13293
+ "language": [1537],
13166
13294
  "accessibleCloseLabelDefaults": [1, "accessible-close-label-default"],
13167
- "accessibleCloseLabel": [1, "accessible-close-label"],
13295
+ "accessibleCloseLabel": [1025, "accessible-close-label"],
13168
13296
  "size": [1],
13169
13297
  "accessibleDescribedBy": [1, "accessible-described-by"],
13170
13298
  "accessibleLabelledBy": [1, "accessible-labelled-by"],
@@ -13186,7 +13314,7 @@ class DuetModal {
13186
13314
  },
13187
13315
  "$listeners$": [[8, "keyup", "handleKeyUp"]],
13188
13316
  "$lazyBundleId$": "-",
13189
- "$attrsToReflect$": [["active", "active"]]
13317
+ "$attrsToReflect$": [["language", "language"], ["active", "active"]]
13190
13318
  }; }
13191
13319
  }
13192
13320
 
@@ -13917,7 +14045,7 @@ class DuetNumberInput {
13917
14045
  this.duetInputElement.value = "";
13918
14046
  }
13919
14047
  formatAnnouncement() {
13920
- const current = SafeParseFloat(this.value, this.locale);
14048
+ const current = !!this.value ? SafeParseFloat(this.value, this.locale) : null;
13921
14049
  if (current == null) {
13922
14050
  return "";
13923
14051
  }
@@ -13930,7 +14058,7 @@ class DuetNumberInput {
13930
14058
  render() {
13931
14059
  const identifier = this.identifier || this.inputId;
13932
14060
  const maxlength = `${this.localizeValue(this.max)} ${this.unit}`.length;
13933
- const cleanedValue = SafeParseFloat(this.value, this.locale);
14061
+ const cleanedValue = !!this.value ? SafeParseFloat(this.value, this.locale) : null;
13934
14062
  return (hAsync(Host, { class: {
13935
14063
  "duet-theme-turva": this.theme === "turva",
13936
14064
  "duet-expand": this.expand,
@@ -14924,17 +15052,17 @@ class DuetRangeStepper {
14924
15052
  }
14925
15053
  }
14926
15054
  watchStepIndexStateHandler(newValue) {
14927
- if (this.element.shadowRoot.childElementCount > 0) {
15055
+ if (this.leftBnRef && this.rightBnRef) {
14928
15056
  if (newValue <= 1) {
14929
15057
  this.leftBnRef.setAttribute("disabled", "");
14930
- this.rightBnRef.focus();
15058
+ this.rightBnRef.setFocus();
14931
15059
  }
14932
15060
  else {
14933
15061
  this.leftBnRef.removeAttribute("disabled");
14934
15062
  }
14935
15063
  if (newValue >= this.total / this.stepSize) {
14936
15064
  this.rightBnRef.setAttribute("disabled", "");
14937
- this.leftBnRef.focus();
15065
+ this.leftBnRef.setFocus();
14938
15066
  }
14939
15067
  else {
14940
15068
  this.rightBnRef.removeAttribute("disabled");
@@ -14946,6 +15074,8 @@ class DuetRangeStepper {
14946
15074
  if (this.stepIndex * newValue > this.total) {
14947
15075
  this.stepIndex = Math.ceil(this.total / newValue);
14948
15076
  }
15077
+ // trigger handler in case a button needs to be disabled or enabled but stepSize did not change
15078
+ this.watchStepIndexStateHandler(this.stepIndex);
14949
15079
  }
14950
15080
  }
14951
15081
  handleStepClick(e) {
@@ -15434,12 +15564,17 @@ class DuetSelect {
15434
15564
  }; }
15435
15565
  }
15436
15566
 
15437
- const duetSlideoutCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-slideout,*.sc-duet-slideout::after,*.sc-duet-slideout::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-slideout-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:100%}/*!@:host slot:not([name=toggle])::slotted(*)*/.sc-duet-slideout-h slot:not([name=toggle]).sc-duet-slideout-s>*{position:relative;visibility:hidden;opacity:0}/*!@:host([open]) slot:not([name=toggle])::slotted(*)*/.sc-duet-slideout-h[open] slot:not([name=toggle]).sc-duet-slideout-s>*{visibility:visible;opacity:1}/*!@.duet-slideout*/.duet-slideout.sc-duet-slideout{display:flex;align-items:center;height:100%}/*!@.duet-slideout .desktop-bg*/.duet-slideout.sc-duet-slideout .desktop-bg.sc-duet-slideout{display:none}@media (min-width: 62em){/*!@.duet-slideout .desktop-bg*/.duet-slideout.sc-duet-slideout .desktop-bg.sc-duet-slideout{position:fixed;top:0;left:0;z-index:400;display:block;width:100%;height:100%;visibility:hidden;background:rgba(0, 41, 77, 0.6);opacity:0;transition:600ms ease}/*!@.duet-slideout .desktop-bg:not(.hidden)*/.duet-slideout.sc-duet-slideout .desktop-bg.sc-duet-slideout:not(.hidden){visibility:visible;opacity:1;transition:600ms ease}}@media (min-width: 62em){/*!@.duet-slideout.duet-theme-turva .desktop-bg*/.duet-slideout.duet-theme-turva.sc-duet-slideout .desktop-bg.sc-duet-slideout{background:rgba(23, 28, 58, 0.6)}}/*!@.duet-slideout .dialog*/.duet-slideout.sc-duet-slideout .dialog.sc-duet-slideout{position:fixed;top:0;bottom:0;left:0;z-index:400;width:100%;height:100%;overflow-y:auto;box-shadow:0 3px 6px 0 rgba(0, 41, 77, 0.1) inset}@media (min-width: 62em){/*!@.duet-slideout .dialog*/.duet-slideout.sc-duet-slideout .dialog.sc-duet-slideout{right:0;left:auto;width:500px;transition:right 300ms ease;transition-delay:0s}}/*!@.duet-slideout .dialog .top*/.duet-slideout.sc-duet-slideout .dialog.sc-duet-slideout .top.sc-duet-slideout{position:relative;z-index:1;display:flex;align-items:center;justify-content:flex-end;padding:4px}/*!@.duet-slideout .dialog .top button*/.duet-slideout.sc-duet-slideout .dialog.sc-duet-slideout .top.sc-duet-slideout button.sc-duet-slideout{cursor:pointer}/*!@.duet-slideout .dialog .top duet-icon*/.duet-slideout.sc-duet-slideout .dialog.sc-duet-slideout .top.sc-duet-slideout duet-icon.sc-duet-slideout{padding:16px}/*!@.duet-slideout .dialog .items*/.duet-slideout.sc-duet-slideout .dialog.sc-duet-slideout .items.sc-duet-slideout{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;width:100%;padding:0 1.5rem}/*!@.duet-slideout .dialog.hidden*/.duet-slideout.sc-duet-slideout .dialog.hidden.sc-duet-slideout{pointer-events:none;visibility:hidden}@media (min-width: 62em){/*!@.duet-slideout .dialog.hidden*/.duet-slideout.sc-duet-slideout .dialog.hidden.sc-duet-slideout{right:-500px;transition:300ms ease}}/*!@.duet-slideout.duet-theme-turva button*/.duet-slideout.duet-theme-turva.sc-duet-slideout button.sc-duet-slideout{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-slideout.duet-theme-turva button.active*/.duet-slideout.duet-theme-turva.sc-duet-slideout button.active.sc-duet-slideout{color:rgb(198, 12, 48)}/*!@.duet-slideout.duet-theme-turva button.active::after*/.duet-slideout.duet-theme-turva.sc-duet-slideout button.active.sc-duet-slideout::after{background:rgb(198, 12, 48)}/*!@::slotted(*)*/.sc-duet-slideout-s>*{width:100%}/*!@slot*/slot.sc-duet-slideout{color:rgb(0, 41, 77)}/*!@.duet-theme-turva slot*/.duet-theme-turva.sc-duet-slideout slot.sc-duet-slideout{color:rgb(23, 28, 58)}/*!@slot[name=toggle]*/slot[name=toggle].sc-duet-slideout{color:inherit}";
15567
+ const duetSlideoutCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-slideout,*.sc-duet-slideout::after,*.sc-duet-slideout::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-slideout-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:100%}/*!@:host slot:not([name=toggle])::slotted(*)*/.sc-duet-slideout-h slot:not([name=toggle]).sc-duet-slideout-s>*{position:relative;visibility:hidden;opacity:0}/*!@:host([open]) slot:not([name=toggle])::slotted(*)*/.sc-duet-slideout-h[open] slot:not([name=toggle]).sc-duet-slideout-s>*{visibility:visible;opacity:1}/*!@:host(:not([open])) ::slotted(duet-slideout-panel)*/.sc-duet-slideout-h:not([open]) .sc-duet-slideout-s>duet-slideout-panel{display:none}/*!@.duet-slideout*/.duet-slideout.sc-duet-slideout{display:flex;align-items:center;height:100%}/*!@.duet-slideout .desktop-bg*/.duet-slideout.sc-duet-slideout .desktop-bg.sc-duet-slideout{display:none}@media (min-width: 62em){/*!@.duet-slideout .desktop-bg*/.duet-slideout.sc-duet-slideout .desktop-bg.sc-duet-slideout{position:fixed;top:0;left:0;z-index:400;display:block;width:100%;height:100%;visibility:hidden;background:rgba(0, 41, 77, 0.6);opacity:0;transition:600ms ease}/*!@.duet-slideout .desktop-bg:not(.hidden)*/.duet-slideout.sc-duet-slideout .desktop-bg.sc-duet-slideout:not(.hidden){visibility:visible;opacity:1;transition:600ms ease}}@media (min-width: 62em){/*!@.duet-slideout.duet-theme-turva .desktop-bg*/.duet-slideout.duet-theme-turva.sc-duet-slideout .desktop-bg.sc-duet-slideout{background:rgba(23, 28, 58, 0.6)}}/*!@.duet-slideout .dialog*/.duet-slideout.sc-duet-slideout .dialog.sc-duet-slideout{position:fixed;top:0;bottom:0;left:0;z-index:400;width:100%;height:100%;overflow-y:auto;box-shadow:0 3px 6px 0 rgba(0, 41, 77, 0.1) inset}@media (min-width: 62em){/*!@.duet-slideout .dialog*/.duet-slideout.sc-duet-slideout .dialog.sc-duet-slideout{right:0;left:auto;width:500px;transition:right 300ms ease;transition-delay:0s}}/*!@.duet-slideout .dialog .top*/.duet-slideout.sc-duet-slideout .dialog.sc-duet-slideout .top.sc-duet-slideout{position:relative;z-index:1;display:flex;align-items:center;justify-content:flex-end;padding:4px}/*!@.duet-slideout .dialog .top button*/.duet-slideout.sc-duet-slideout .dialog.sc-duet-slideout .top.sc-duet-slideout button.sc-duet-slideout{cursor:pointer}/*!@.duet-slideout .dialog .top button:focus*/.duet-slideout.sc-duet-slideout .dialog.sc-duet-slideout .top.sc-duet-slideout button.sc-duet-slideout:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-slideout .dialog .top duet-icon*/.duet-slideout.sc-duet-slideout .dialog.sc-duet-slideout .top.sc-duet-slideout duet-icon.sc-duet-slideout{padding:16px}/*!@.duet-slideout .dialog .items*/.duet-slideout.sc-duet-slideout .dialog.sc-duet-slideout .items.sc-duet-slideout{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;width:100%;padding:0 1.5rem}/*!@.duet-slideout .dialog.hidden*/.duet-slideout.sc-duet-slideout .dialog.hidden.sc-duet-slideout{pointer-events:none;visibility:hidden}@media (min-width: 62em){/*!@.duet-slideout .dialog.hidden*/.duet-slideout.sc-duet-slideout .dialog.hidden.sc-duet-slideout{right:-500px;transition:300ms ease}}/*!@.duet-slideout.duet-theme-turva button*/.duet-slideout.duet-theme-turva.sc-duet-slideout button.sc-duet-slideout{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-slideout.duet-theme-turva button:focus*/.duet-slideout.duet-theme-turva.sc-duet-slideout button.sc-duet-slideout:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-slideout.duet-theme-turva button.active*/.duet-slideout.duet-theme-turva.sc-duet-slideout button.active.sc-duet-slideout{color:rgb(198, 12, 48)}/*!@.duet-slideout.duet-theme-turva button.active::after*/.duet-slideout.duet-theme-turva.sc-duet-slideout button.active.sc-duet-slideout::after{background:rgb(198, 12, 48)}/*!@.duet-slideout .dialog .top button:focus*/.duet-slideout.sc-duet-slideout .dialog.sc-duet-slideout .top.sc-duet-slideout button.sc-duet-slideout:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@::slotted(*)*/.sc-duet-slideout-s>*{width:100%}/*!@slot*/slot.sc-duet-slideout{color:rgb(0, 41, 77)}/*!@.duet-theme-turva slot*/.duet-theme-turva.sc-duet-slideout slot.sc-duet-slideout{color:rgb(23, 28, 58)}/*!@slot[name=toggle]*/slot[name=toggle].sc-duet-slideout{color:inherit}";
15438
15568
 
15439
15569
  class DuetSlideout {
15440
15570
  constructor(hostRef) {
15441
15571
  registerInstance(this, hostRef);
15442
15572
  this.duetSlideoutEvent = createEvent$2(this, "duetSlideoutEvent", 7);
15573
+ this.exitLangObject = {
15574
+ en: "Exit the menu",
15575
+ fi: "Poistu valikosta",
15576
+ sv: "Avsluta menyn",
15577
+ };
15443
15578
  this.toggleMenu = (e) => {
15444
15579
  const toggle = !this.open;
15445
15580
  this.open = toggle;
@@ -15450,9 +15585,15 @@ class DuetSlideout {
15450
15585
  component: "duet-slideout",
15451
15586
  });
15452
15587
  if (toggle) {
15453
- setTimeout(() => {
15454
- this.closeButton.focus();
15455
- }, 200);
15588
+ const openPanel = this.element.querySelector("duet-slideout-panel[open]");
15589
+ if (openPanel) {
15590
+ openPanel.setFocus();
15591
+ }
15592
+ else {
15593
+ setTimeout(() => {
15594
+ this.closeButton.focus();
15595
+ }, 200);
15596
+ }
15456
15597
  }
15457
15598
  else {
15458
15599
  setTimeout(() => {
@@ -15463,6 +15604,7 @@ class DuetSlideout {
15463
15604
  this.onClick = (e) => {
15464
15605
  this.toggleMenu(e);
15465
15606
  };
15607
+ this.language = getLanguage();
15466
15608
  this.theme = "";
15467
15609
  this.open = false;
15468
15610
  this.backgroundColor = "gray-lightest";
@@ -15489,8 +15631,8 @@ class DuetSlideout {
15489
15631
  }
15490
15632
  }
15491
15633
  if (this.openButton) {
15492
- this.openButton.setAttribute("aria-haspopup", "dialog");
15493
- this.openButton.setAttribute("aria-expanded", "false");
15634
+ this.openButton.accessiblePopup = "true";
15635
+ this.openButton.accessibleExpanded = false;
15494
15636
  this.openButton.addEventListener("click", e => {
15495
15637
  e.stopPropagation();
15496
15638
  e.preventDefault();
@@ -15499,6 +15641,29 @@ class DuetSlideout {
15499
15641
  this.openButton = this.openButton;
15500
15642
  }
15501
15643
  }
15644
+ connectedCallback() {
15645
+ connectLanguageChangeObserver(this);
15646
+ }
15647
+ disconnectedCallback() {
15648
+ disconnectLanguageChangeObserver(this);
15649
+ }
15650
+ /**
15651
+ * Component event handling.
15652
+ */
15653
+ handleKeyUp(ev) {
15654
+ // When Esc is pressed
15655
+ if (isEscapeKey(ev)) {
15656
+ if (this.open) {
15657
+ this.toggleMenu(ev);
15658
+ }
15659
+ }
15660
+ }
15661
+ /**
15662
+ * Sets focus. Use this method instead of the global focus().
15663
+ */
15664
+ async setFocus(options) {
15665
+ this.openButton.focus(options);
15666
+ }
15502
15667
  /**
15503
15668
  * render() function
15504
15669
  * Always the last one in the class.
@@ -15507,6 +15672,7 @@ class DuetSlideout {
15507
15672
  const styles = {
15508
15673
  background: getColorByName(this.backgroundColor, this.theme),
15509
15674
  };
15675
+ const exitTranslation = getLocaleString(this.exitLangObject);
15510
15676
  return (hAsync(Host, null, hAsync("div", { class: { "duet-slideout": true, "duet-theme-turva": this.theme === "turva" } }, hAsync("slot", { name: "toggle" }), hAsync("div", { class: {
15511
15677
  "desktop-bg": true,
15512
15678
  hidden: !this.open,
@@ -15515,7 +15681,7 @@ class DuetSlideout {
15515
15681
  } }), hAsync("div", { tabindex: "-1", role: "dialog", id: "dialog", "aria-labelledby": "button", "aria-modal": "true", "aria-flowto": "menubar", class: {
15516
15682
  dialog: true,
15517
15683
  hidden: !this.open,
15518
- }, style: styles }, hAsync(FocusGuard, { moveFocusTo: this.closeButton }), hAsync("div", { class: "top" }, hAsync("button", { ref: element => (this.closeButton = element), "aria-haspopup": "dialog", "aria-controls": "dialog", "aria-expanded": this.open ? "true" : "false", type: "button", class: {
15684
+ }, style: styles }, hAsync(FocusGuard, { moveFocusTo: this.closeButton }), hAsync("div", { class: "top" }, hAsync("button", { ref: element => (this.closeButton = element), "aria-haspopup": "dialog", "aria-controls": "dialog", "aria-expanded": this.open ? "true" : "false", "aria-label": `${exitTranslation}`, type: "button", class: {
15519
15685
  "slideout-close": true,
15520
15686
  active: this.open,
15521
15687
  }, onClick: this.onClick }, hAsync("duet-icon", { name: "navigation-close", size: "small", margin: "none", color: "secondary" }))), hAsync("div", { id: "menubar", role: "menubar", class: {
@@ -15531,9 +15697,11 @@ class DuetSlideout {
15531
15697
  "theme": [1025],
15532
15698
  "open": [1540],
15533
15699
  "backgroundColor": [1537, "background-color"],
15534
- "toggle": [64]
15700
+ "language": [32],
15701
+ "toggle": [64],
15702
+ "setFocus": [64]
15535
15703
  },
15536
- "$listeners$": undefined,
15704
+ "$listeners$": [[8, "keyup", "handleKeyUp"]],
15537
15705
  "$lazyBundleId$": "-",
15538
15706
  "$attrsToReflect$": [["open", "open"], ["backgroundColor", "background-color"]]
15539
15707
  }; }
@@ -15552,6 +15720,7 @@ class DuetSlideoutLang {
15552
15720
  fi: "Valitse kieli",
15553
15721
  sv: "Välj språk",
15554
15722
  };
15723
+ this.language = getLanguage();
15555
15724
  this.theme = "";
15556
15725
  }
15557
15726
  /**
@@ -15560,13 +15729,19 @@ class DuetSlideoutLang {
15560
15729
  componentWillLoad() {
15561
15730
  inheritGlobalTheme(this);
15562
15731
  }
15732
+ connectedCallback() {
15733
+ connectLanguageChangeObserver(this);
15734
+ }
15735
+ disconnectedCallback() {
15736
+ disconnectLanguageChangeObserver(this);
15737
+ }
15563
15738
  /**
15564
15739
  * render() function
15565
15740
  * Always the last one in the class.
15566
15741
  */
15567
15742
  render() {
15568
15743
  const langTranslation = getLocaleString(this.chooseLangObject);
15569
- return (hAsync(Host, null, hAsync("div", { class: "duet-slideout-lang" }, hAsync("duet-visually-hidden", null, langTranslation), hAsync("duet-icon", { name: "navigation-language", margin: "none", color: "secondary" }), hAsync("slot", null))));
15744
+ return (hAsync(Host, null, hAsync("div", { class: "duet-slideout-lang", "aria-role": "group", "aria-label": langTranslation }, hAsync("duet-icon", { name: "navigation-language", margin: "none", color: "secondary" }), hAsync("slot", null))));
15570
15745
  }
15571
15746
  get element() { return getElement(this); }
15572
15747
  static get style() { return duetSlideoutLangCss; }
@@ -15574,7 +15749,8 @@ class DuetSlideoutLang {
15574
15749
  "$flags$": 9,
15575
15750
  "$tagName$": "duet-slideout-lang",
15576
15751
  "$members$": {
15577
- "theme": [1025]
15752
+ "theme": [1025],
15753
+ "language": [32]
15578
15754
  },
15579
15755
  "$listeners$": undefined,
15580
15756
  "$lazyBundleId$": "-",
@@ -15582,7 +15758,7 @@ class DuetSlideoutLang {
15582
15758
  }; }
15583
15759
  }
15584
15760
 
15585
- const duetSlideoutLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-slideout-link,*.sc-duet-slideout-link::after,*.sc-duet-slideout-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-slideout-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%}/*!@.duet-slideout-link*/.duet-slideout-link.sc-duet-slideout-link{position:relative;display:flex;gap:20px;align-items:center;justify-content:flex-start;width:100%;height:100%;padding:8px 0;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:inherit;font-weight:inherit;line-height:1.25;color:inherit;text-align:left;text-decoration:none}/*!@.duet-slideout-link.duet-theme-turva*/.duet-slideout-link.duet-theme-turva.sc-duet-slideout-link{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-slideout-link.active span*/.duet-slideout-link.active.sc-duet-slideout-link span.sc-duet-slideout-link{position:relative}/*!@.duet-slideout-link.active span::after*/.duet-slideout-link.active.sc-duet-slideout-link span.sc-duet-slideout-link::after{position:absolute;top:auto;bottom:0;left:0;display:block;width:100%;height:var(--active-height, 2px);content:\"\";background:rgb(0, 119, 179);transform:var(--active-translate-y, translateY(2px))}/*!@.duet-slideout-link.active.duet-theme-turva span::after*/.duet-slideout-link.active.duet-theme-turva.sc-duet-slideout-link span.sc-duet-slideout-link::after{background:rgb(198, 12, 48)}/*!@.duet-slideout-link.small*/.duet-slideout-link.small.sc-duet-slideout-link{font-size:1rem;font-weight:600}/*!@.duet-slideout-link.small span::after*/.duet-slideout-link.small.sc-duet-slideout-link span.sc-duet-slideout-link::after{--active-height:1px;--active-translate-y:1px}/*!@.duet-slideout-link.medium*/.duet-slideout-link.medium.sc-duet-slideout-link{font-size:1.25rem;font-weight:600}/*!@.duet-slideout-link.large*/.duet-slideout-link.large.sc-duet-slideout-link{font-size:1.5rem;font-weight:800}/*!@.duet-slideout-link .label*/.duet-slideout-link.sc-duet-slideout-link .label.sc-duet-slideout-link{display:flex;gap:0.5rem;align-items:center;justify-content:space-between;width:100%}/*!@slot[name=description]::slotted(*)*/slot[name=description].sc-duet-slideout-link-s>*{display:block;padding:8px 0 0;font-size:1rem;font-size:1.25;font-weight:400;color:rgb(101, 119, 135)}/*!@.duet-theme-turva slot[name=description]::slotted(*)*/.duet-theme-turva slot[name=description].sc-duet-slideout-link-s>*{color:rgb(68, 68, 69)}";
15761
+ const duetSlideoutLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-slideout-link,*.sc-duet-slideout-link::after,*.sc-duet-slideout-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-slideout-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%}/*!@.duet-slideout-link*/.duet-slideout-link.sc-duet-slideout-link{position:relative;display:flex;gap:20px;align-items:center;justify-content:flex-start;width:100%;height:100%;padding:8px 0;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:inherit;font-weight:inherit;line-height:1.25;color:inherit;text-align:left;text-decoration:none}/*!@.duet-slideout-link.duet-theme-turva*/.duet-slideout-link.duet-theme-turva.sc-duet-slideout-link{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-slideout-link:focus*/.duet-slideout-link.sc-duet-slideout-link:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-slideout-link:focus.duet-theme-turva*/.duet-slideout-link.sc-duet-slideout-link:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-slideout-link.active span*/.duet-slideout-link.active.sc-duet-slideout-link span.sc-duet-slideout-link{position:relative}/*!@.duet-slideout-link.active span::after*/.duet-slideout-link.active.sc-duet-slideout-link span.sc-duet-slideout-link::after{position:absolute;top:auto;bottom:0;left:0;display:block;width:100%;height:var(--active-height, 2px);content:\"\";background:rgb(0, 119, 179);transform:var(--active-translate-y, translateY(2px))}/*!@.duet-slideout-link.active.duet-theme-turva span::after*/.duet-slideout-link.active.duet-theme-turva.sc-duet-slideout-link span.sc-duet-slideout-link::after{background:rgb(198, 12, 48)}/*!@.duet-slideout-link.small*/.duet-slideout-link.small.sc-duet-slideout-link{font-size:1rem;font-weight:600}/*!@.duet-slideout-link.small span::after*/.duet-slideout-link.small.sc-duet-slideout-link span.sc-duet-slideout-link::after{--active-height:1px;--active-translate-y:1px}/*!@.duet-slideout-link.medium*/.duet-slideout-link.medium.sc-duet-slideout-link{font-size:1.25rem;font-weight:600}/*!@.duet-slideout-link.large*/.duet-slideout-link.large.sc-duet-slideout-link{font-size:1.5rem;font-weight:800}/*!@.duet-slideout-link .label*/.duet-slideout-link.sc-duet-slideout-link .label.sc-duet-slideout-link{display:flex;gap:0.5rem;align-items:center;justify-content:space-between;width:100%}/*!@slot[name=description]::slotted(*)*/slot[name=description].sc-duet-slideout-link-s>*{display:block;padding:8px 0 0;font-size:1rem;font-size:1.25;font-weight:400;color:rgb(101, 119, 135)}/*!@.duet-theme-turva slot[name=description]::slotted(*)*/.duet-theme-turva slot[name=description].sc-duet-slideout-link-s>*{color:rgb(68, 68, 69)}";
15586
15762
 
15587
15763
  class DuetSlideoutLink {
15588
15764
  constructor(hostRef) {
@@ -15613,7 +15789,7 @@ class DuetSlideoutLink {
15613
15789
  "duet-theme-turva": this.theme === "turva",
15614
15790
  active: this.active,
15615
15791
  [this.size]: true,
15616
- }, href: this.href, role: this.menuItem && "menuitem", lang: this.targetLanguage, hreflang: this.targetLanguage, "aria-label": this.accessibleLabel }, this.icon && (hAsync("duet-icon", { name: this.icon, color: "secondary", size: this.menuItem ? "x-small" : "medium", margin: "none" })), hAsync("div", { class: "label" }, hAsync("span", null, hAsync("slot", null), hAsync("slot", { name: "description" })), this.caret && (hAsync("duet-icon", { name: "action-arrow-right", color: "secondary", size: "x-small", margin: "none" }))))));
15792
+ }, href: this.href, "aria-current": this.active ? "true" : "false", lang: this.targetLanguage, hreflang: this.targetLanguage, "aria-label": this.accessibleLabel }, this.icon && (hAsync("duet-icon", { name: this.icon, color: "secondary", size: this.menuItem ? "x-small" : "medium", margin: "none" })), hAsync("div", { class: "label" }, hAsync("span", null, hAsync("slot", null), hAsync("slot", { name: "description" })), this.caret && (hAsync("duet-icon", { name: "action-arrow-right", color: "secondary", size: "x-small", margin: "none" }))))));
15617
15793
  }
15618
15794
  get element() { return getElement(this); }
15619
15795
  static get style() { return duetSlideoutLinkCss; }
@@ -15637,15 +15813,20 @@ class DuetSlideoutLink {
15637
15813
  }; }
15638
15814
  }
15639
15815
 
15640
- const duetSlideoutPanelCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-slideout-panel,*.sc-duet-slideout-panel::after,*.sc-duet-slideout-panel::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-slideout-panel-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:100%}/*!@:host slot:not([name=label])::slotted(*)*/.sc-duet-slideout-panel-h slot:not([name=label]).sc-duet-slideout-panel-s>*{position:relative;top:0.5rem;opacity:0;transition:top 0.3s ease-in, opacity 0.3s ease-in}/*!@:host([open]) slot:not([name=label])::slotted(*)*/.sc-duet-slideout-panel-h[open] slot:not([name=label]).sc-duet-slideout-panel-s>*{top:0;opacity:1}/*!@.duet-slideout-panel*/.duet-slideout-panel.sc-duet-slideout-panel{position:relative;height:100%}/*!@.duet-slideout-panel .link*/.duet-slideout-panel.sc-duet-slideout-panel .link.sc-duet-slideout-panel{position:relative;display:flex;gap:20px;align-items:center;justify-content:flex-start;width:100%;height:100%;padding:8px 0;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1.5rem;font-weight:800;line-height:1.25;color:rgb(0, 41, 77);text-align:left;text-decoration:none;cursor:pointer}/*!@.duet-slideout-panel .link .label*/.duet-slideout-panel.sc-duet-slideout-panel .link.sc-duet-slideout-panel .label.sc-duet-slideout-panel{display:flex;gap:0.5rem;align-items:center;justify-content:space-between;width:100%}/*!@.duet-slideout-panel .link .label-text.small*/.duet-slideout-panel.sc-duet-slideout-panel .link.sc-duet-slideout-panel .label-text.small.sc-duet-slideout-panel{font-size:1rem;font-weight:600}/*!@.duet-slideout-panel .link .label-text.medium*/.duet-slideout-panel.sc-duet-slideout-panel .link.sc-duet-slideout-panel .label-text.medium.sc-duet-slideout-panel{font-size:1.25rem;font-weight:600}/*!@.duet-slideout-panel .link .label-text.large*/.duet-slideout-panel.sc-duet-slideout-panel .link.sc-duet-slideout-panel .label-text.large.sc-duet-slideout-panel{font-size:1.5rem;font-weight:800}/*!@.duet-slideout-panel .link.active .label-text*/.duet-slideout-panel.sc-duet-slideout-panel .link.active.sc-duet-slideout-panel .label-text.sc-duet-slideout-panel{position:relative}/*!@.duet-slideout-panel .link.active .label-text.small::after*/.duet-slideout-panel.sc-duet-slideout-panel .link.active.sc-duet-slideout-panel .label-text.small.sc-duet-slideout-panel::after{height:1px;transform:translateY(1px)}/*!@.duet-slideout-panel .link.active .label-text::after*/.duet-slideout-panel.sc-duet-slideout-panel .link.active.sc-duet-slideout-panel .label-text.sc-duet-slideout-panel::after{position:absolute;top:auto;bottom:0;left:0;display:block;width:100%;height:2px;content:\"\";background:rgb(0, 119, 179);transform:translateY(2px)}/*!@.duet-slideout-panel .dialog*/.duet-slideout-panel.sc-duet-slideout-panel .dialog.sc-duet-slideout-panel{position:fixed;top:0;left:0;z-index:600;width:100%;height:100%;overflow-y:auto;visibility:visible}/*!@.duet-slideout-panel .dialog.hidden*/.duet-slideout-panel.sc-duet-slideout-panel .dialog.hidden.sc-duet-slideout-panel{visibility:hidden}/*!@.duet-slideout-panel .dialog.hidden .top .back,\n.duet-slideout-panel .dialog.hidden .top span*/.duet-slideout-panel.sc-duet-slideout-panel .dialog.hidden.sc-duet-slideout-panel .top.sc-duet-slideout-panel .back.sc-duet-slideout-panel,.duet-slideout-panel.sc-duet-slideout-panel .dialog.hidden.sc-duet-slideout-panel .top.sc-duet-slideout-panel span.sc-duet-slideout-panel{opacity:0}/*!@.duet-slideout-panel .top*/.duet-slideout-panel.sc-duet-slideout-panel .top.sc-duet-slideout-panel{display:flex;align-items:center;justify-content:space-between;padding:4px}/*!@.duet-slideout-panel .top .back*/.duet-slideout-panel.sc-duet-slideout-panel .top.sc-duet-slideout-panel .back.sc-duet-slideout-panel{opacity:1;transition:top 0.3s ease-in, opacity 0.3s ease-in}/*!@.duet-slideout-panel .top duet-icon*/.duet-slideout-panel.sc-duet-slideout-panel .top.sc-duet-slideout-panel duet-icon.sc-duet-slideout-panel{padding:16px}/*!@.duet-slideout-panel .top span*/.duet-slideout-panel.sc-duet-slideout-panel .top.sc-duet-slideout-panel span.sc-duet-slideout-panel{font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.5;color:rgb(0, 41, 77);opacity:1;transition:top 0.3s ease-in, opacity 0.3s ease-in}/*!@.duet-slideout-panel .items*/.duet-slideout-panel.sc-duet-slideout-panel .items.sc-duet-slideout-panel{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:1rem 16px;overflow-y:auto;color:rgb(0, 41, 77)}/*!@.duet-slideout-panel.duet-theme-turva .link*/.duet-slideout-panel.duet-theme-turva.sc-duet-slideout-panel .link.sc-duet-slideout-panel{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-slideout-panel.duet-theme-turva .link.active .label-text::after*/.duet-slideout-panel.duet-theme-turva.sc-duet-slideout-panel .link.active.sc-duet-slideout-panel .label-text.sc-duet-slideout-panel::after{background:rgb(198, 12, 48)}/*!@.duet-slideout-panel.duet-theme-turva .top span*/.duet-slideout-panel.duet-theme-turva.sc-duet-slideout-panel .top.sc-duet-slideout-panel span.sc-duet-slideout-panel{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@slot:not([name=label])*/slot.sc-duet-slideout-panel:not([name=label]){--active-height:1px;--active-translate-y:translateY(1px);font-size:1rem;font-weight:600;color:rgb(0, 41, 77)}/*!@.duet-theme-turva slot:not([name=label])*/.duet-theme-turva.sc-duet-slideout-panel slot.sc-duet-slideout-panel:not([name=label]){color:rgb(23, 28, 58)}";
15816
+ const duetSlideoutPanelCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-slideout-panel,*.sc-duet-slideout-panel::after,*.sc-duet-slideout-panel::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-slideout-panel-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:100%}/*!@:host slot:not([name=label])::slotted(*)*/.sc-duet-slideout-panel-h slot:not([name=label]).sc-duet-slideout-panel-s>*{position:relative;top:0.5rem;opacity:0;transition:top 0.3s ease-in, opacity 0.3s ease-in}/*!@:host([open]) slot:not([name=label])::slotted(*)*/.sc-duet-slideout-panel-h[open] slot:not([name=label]).sc-duet-slideout-panel-s>*{top:0;opacity:1}/*!@.duet-slideout-panel*/.duet-slideout-panel.sc-duet-slideout-panel{position:relative;height:100%}/*!@.duet-slideout-panel .link*/.duet-slideout-panel.sc-duet-slideout-panel .link.sc-duet-slideout-panel{position:relative;display:flex;gap:20px;align-items:center;justify-content:flex-start;width:100%;height:100%;padding:8px 0;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1.5rem;font-weight:800;line-height:1.25;color:rgb(0, 41, 77);text-align:left;text-decoration:none;cursor:pointer}/*!@.duet-slideout-panel .link .label*/.duet-slideout-panel.sc-duet-slideout-panel .link.sc-duet-slideout-panel .label.sc-duet-slideout-panel{display:flex;gap:0.5rem;align-items:center;justify-content:space-between;width:100%}/*!@.duet-slideout-panel .link .label-text.small*/.duet-slideout-panel.sc-duet-slideout-panel .link.sc-duet-slideout-panel .label-text.small.sc-duet-slideout-panel{font-size:1rem;font-weight:600}/*!@.duet-slideout-panel .link .label-text.medium*/.duet-slideout-panel.sc-duet-slideout-panel .link.sc-duet-slideout-panel .label-text.medium.sc-duet-slideout-panel{font-size:1.25rem;font-weight:600}/*!@.duet-slideout-panel .link .label-text.large*/.duet-slideout-panel.sc-duet-slideout-panel .link.sc-duet-slideout-panel .label-text.large.sc-duet-slideout-panel{font-size:1.5rem;font-weight:800}/*!@.duet-slideout-panel .link:focus*/.duet-slideout-panel.sc-duet-slideout-panel .link.sc-duet-slideout-panel:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-slideout-panel .link.active .label-text*/.duet-slideout-panel.sc-duet-slideout-panel .link.active.sc-duet-slideout-panel .label-text.sc-duet-slideout-panel{position:relative}/*!@.duet-slideout-panel .link.active .label-text.small::after*/.duet-slideout-panel.sc-duet-slideout-panel .link.active.sc-duet-slideout-panel .label-text.small.sc-duet-slideout-panel::after{height:1px;transform:translateY(1px)}/*!@.duet-slideout-panel .link.active .label-text::after*/.duet-slideout-panel.sc-duet-slideout-panel .link.active.sc-duet-slideout-panel .label-text.sc-duet-slideout-panel::after{position:absolute;top:auto;bottom:0;left:0;display:block;width:100%;height:2px;content:\"\";background:rgb(0, 119, 179);transform:translateY(2px)}/*!@.duet-slideout-panel .dialog*/.duet-slideout-panel.sc-duet-slideout-panel .dialog.sc-duet-slideout-panel{position:fixed;top:0;left:0;z-index:600;width:100%;height:100%;overflow-y:auto;visibility:visible}/*!@.duet-slideout-panel .dialog.hidden*/.duet-slideout-panel.sc-duet-slideout-panel .dialog.hidden.sc-duet-slideout-panel{visibility:hidden}/*!@.duet-slideout-panel .dialog.hidden .top .back,\n.duet-slideout-panel .dialog.hidden .top span*/.duet-slideout-panel.sc-duet-slideout-panel .dialog.hidden.sc-duet-slideout-panel .top.sc-duet-slideout-panel .back.sc-duet-slideout-panel,.duet-slideout-panel.sc-duet-slideout-panel .dialog.hidden.sc-duet-slideout-panel .top.sc-duet-slideout-panel span.sc-duet-slideout-panel{opacity:0}/*!@.duet-slideout-panel .top*/.duet-slideout-panel.sc-duet-slideout-panel .top.sc-duet-slideout-panel{display:flex;align-items:center;justify-content:space-between;padding:4px}/*!@.duet-slideout-panel .top .back*/.duet-slideout-panel.sc-duet-slideout-panel .top.sc-duet-slideout-panel .back.sc-duet-slideout-panel{opacity:1;transition:top 0.3s ease-in, opacity 0.3s ease-in}/*!@.duet-slideout-panel .top .back:focus,\n.duet-slideout-panel .top .close:focus*/.duet-slideout-panel.sc-duet-slideout-panel .top.sc-duet-slideout-panel .back.sc-duet-slideout-panel:focus,.duet-slideout-panel.sc-duet-slideout-panel .top.sc-duet-slideout-panel .close.sc-duet-slideout-panel:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-slideout-panel .top duet-icon*/.duet-slideout-panel.sc-duet-slideout-panel .top.sc-duet-slideout-panel duet-icon.sc-duet-slideout-panel{padding:16px}/*!@.duet-slideout-panel .top span*/.duet-slideout-panel.sc-duet-slideout-panel .top.sc-duet-slideout-panel span.sc-duet-slideout-panel{font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.5;color:rgb(0, 41, 77);opacity:1;transition:top 0.3s ease-in, opacity 0.3s ease-in}/*!@.duet-slideout-panel .items*/.duet-slideout-panel.sc-duet-slideout-panel .items.sc-duet-slideout-panel{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:1rem 16px;overflow-y:auto;color:rgb(0, 41, 77)}/*!@.duet-slideout-panel.duet-theme-turva .link*/.duet-slideout-panel.duet-theme-turva.sc-duet-slideout-panel .link.sc-duet-slideout-panel{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-slideout-panel.duet-theme-turva .link:focus*/.duet-slideout-panel.duet-theme-turva.sc-duet-slideout-panel .link.sc-duet-slideout-panel:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-slideout-panel.duet-theme-turva .link.active .label-text::after*/.duet-slideout-panel.duet-theme-turva.sc-duet-slideout-panel .link.active.sc-duet-slideout-panel .label-text.sc-duet-slideout-panel::after{background:rgb(198, 12, 48)}/*!@.duet-slideout-panel.duet-theme-turva .top .back:focus,\n.duet-slideout-panel.duet-theme-turva .top .close:focus*/.duet-slideout-panel.duet-theme-turva.sc-duet-slideout-panel .top.sc-duet-slideout-panel .back.sc-duet-slideout-panel:focus,.duet-slideout-panel.duet-theme-turva.sc-duet-slideout-panel .top.sc-duet-slideout-panel .close.sc-duet-slideout-panel:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-slideout-panel.duet-theme-turva .top span*/.duet-slideout-panel.duet-theme-turva.sc-duet-slideout-panel .top.sc-duet-slideout-panel span.sc-duet-slideout-panel{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@slot:not([name=label])*/slot.sc-duet-slideout-panel:not([name=label]){--active-height:1px;--active-translate-y:translateY(1px);font-size:1rem;font-weight:600;color:rgb(0, 41, 77)}/*!@.duet-theme-turva slot:not([name=label])*/.duet-theme-turva.sc-duet-slideout-panel slot.sc-duet-slideout-panel:not([name=label]){color:rgb(23, 28, 58)}";
15641
15817
 
15642
15818
  class DuetSlideoutPanel {
15643
15819
  constructor(hostRef) {
15644
15820
  registerInstance(this, hostRef);
15645
15821
  this.exitLangObject = {
15646
- en: "Exit the dialog",
15647
- fi: "Poistu dialogista",
15648
- sv: "Stäng dialogrutan",
15822
+ en: "Exit the menu",
15823
+ fi: "Poistu valikosta",
15824
+ sv: "Avsluta menyn",
15825
+ };
15826
+ this.backLangObject = {
15827
+ en: "Back to main menu",
15828
+ fi: "Takaisin päävalikkoon",
15829
+ sv: "Tillbaka till huvudmenyn",
15649
15830
  };
15650
15831
  this.updateLabel = () => {
15651
15832
  const labelSlotElement = this.element.querySelector("[slot='label']");
@@ -15674,6 +15855,7 @@ class DuetSlideoutPanel {
15674
15855
  }
15675
15856
  };
15676
15857
  this.label = undefined;
15858
+ this.language = getLanguage();
15677
15859
  this.theme = "";
15678
15860
  this.active = false;
15679
15861
  this.open = false;
@@ -15688,6 +15870,27 @@ class DuetSlideoutPanel {
15688
15870
  inheritGlobalTheme(this);
15689
15871
  this.updateLabel();
15690
15872
  }
15873
+ connectedCallback() {
15874
+ connectLanguageChangeObserver(this);
15875
+ }
15876
+ disconnectedCallback() {
15877
+ disconnectLanguageChangeObserver(this);
15878
+ }
15879
+ /**
15880
+ * Sets focus. Use this method instead of the global focus().
15881
+ */
15882
+ async setFocus(options) {
15883
+ if (this.open) {
15884
+ setTimeout(() => {
15885
+ this.closeButton.focus(options);
15886
+ }, 200);
15887
+ }
15888
+ else {
15889
+ setTimeout(() => {
15890
+ this.openButton.focus(options);
15891
+ }, 200);
15892
+ }
15893
+ }
15691
15894
  /**
15692
15895
  * render() function
15693
15896
  * Always the last one in the class.
@@ -15702,19 +15905,20 @@ class DuetSlideoutPanel {
15702
15905
  background: getColorByName(defaultBackgroundColor, this.theme),
15703
15906
  };
15704
15907
  const exitTranslation = getLocaleString(this.exitLangObject);
15908
+ const backTranslation = getLocaleString(this.backLangObject);
15705
15909
  return (hAsync(Host, null, hAsync("div", { class: {
15706
15910
  "duet-slideout-panel": true,
15707
15911
  "duet-theme-turva": this.theme === "turva",
15708
15912
  active: this.open,
15709
- } }, hAsync("button", { ref: element => (this.openButton = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
15913
+ } }, hAsync("button", { ref: element => (this.openButton = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-current": this.active ? "true" : "false", id: "button", type: "button", class: {
15710
15914
  link: true,
15711
15915
  active: this.active,
15712
15916
  }, onClick: this.onToggleClick }, this.icon && hAsync("duet-icon", { name: this.icon, size: "medium", margin: "none", color: "secondary" }), hAsync("div", { class: "label" }, hAsync("span", { class: { "label-text": true, [this.labelSize]: true } }, hAsync("slot", { name: "label" })), hAsync("duet-icon", { class: "caret", name: "action-arrow-right", margin: "none", size: "x-small", color: "secondary" }))), hAsync("div", { class: {
15713
15917
  dialog: true,
15714
15918
  hidden: !this.open,
15715
- }, style: styles }, hAsync(FocusGuard, { moveFocusTo: this.closeButton }), hAsync("div", { class: "top" }, hAsync("button", { ref: element => (this.closeButton = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", type: "button", class: {
15919
+ }, style: styles }, hAsync(FocusGuard, { moveFocusTo: this.closeButton }), hAsync("div", { class: "top" }, hAsync("button", { ref: element => (this.closeButton = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-label": `${backTranslation}`, type: "button", class: {
15716
15920
  back: true,
15717
- }, onClick: this.onToggleClick }, hAsync("duet-icon", { class: "caret", name: "action-arrow-left", margin: "none", size: "small", color: "secondary" })), hAsync("span", null, this.label.innerHTML), hAsync("button", { type: "button", onClick: this.onCloseClick, "aria-label": `${exitTranslation}` }, hAsync("duet-icon", { name: "navigation-close", size: "small", margin: "none", color: "secondary" }))), hAsync("div", { tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
15921
+ }, onClick: this.onToggleClick }, hAsync("duet-icon", { class: "caret", name: "action-arrow-left", margin: "none", size: "small", color: "secondary" })), hAsync("span", null, this.label.innerHTML), hAsync("button", { class: "close", type: "button", onClick: this.onCloseClick, "aria-label": `${exitTranslation}` }, hAsync("duet-icon", { name: "navigation-close", size: "small", margin: "none", color: "secondary" }))), hAsync("div", { tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
15718
15922
  items: true,
15719
15923
  } }, hAsync("slot", null)), hAsync(FocusGuard, { moveFocusTo: this.closeButton })))));
15720
15924
  }
@@ -15730,7 +15934,9 @@ class DuetSlideoutPanel {
15730
15934
  "icon": [1537],
15731
15935
  "labelSize": [1537, "label-size"],
15732
15936
  "backgroundColor": [1537, "background-color"],
15733
- "label": [32]
15937
+ "label": [32],
15938
+ "language": [32],
15939
+ "setFocus": [64]
15734
15940
  },
15735
15941
  "$listeners$": undefined,
15736
15942
  "$lazyBundleId$": "-",
@@ -15738,7 +15944,7 @@ class DuetSlideoutPanel {
15738
15944
  }; }
15739
15945
  }
15740
15946
 
15741
- const duetSlideoutPanelDropdownCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-slideout-panel-dropdown,*.sc-duet-slideout-panel-dropdown::after,*.sc-duet-slideout-panel-dropdown::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-slideout-panel-dropdown-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%}/*!@:host slot:not([name=label])::slotted(*)*/.sc-duet-slideout-panel-dropdown-h slot:not([name=label]).sc-duet-slideout-panel-dropdown-s>*{position:relative;top:-0.5rem;opacity:0;transition:top 0.3s ease-in, opacity 0.3s ease-in}/*!@:host([open]) slot:not([name=label])::slotted(*)*/.sc-duet-slideout-panel-dropdown-h[open] slot:not([name=label]).sc-duet-slideout-panel-dropdown-s>*{top:0;opacity:1}/*!@.duet-slideout-panel-dropdown*/.duet-slideout-panel-dropdown.sc-duet-slideout-panel-dropdown{position:relative;width:100%;height:100%}/*!@.duet-slideout-panel-dropdown button*/.duet-slideout-panel-dropdown.sc-duet-slideout-panel-dropdown button.sc-duet-slideout-panel-dropdown{position:relative;display:flex;gap:20px;align-items:center;justify-content:flex-start;width:100%;height:100%;padding:8px 0;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1.25rem;font-weight:800;line-height:1.25;color:rgb(0, 41, 77);text-align:center;text-decoration:none;cursor:pointer}/*!@.duet-slideout-panel-dropdown button .label*/.duet-slideout-panel-dropdown.sc-duet-slideout-panel-dropdown button.sc-duet-slideout-panel-dropdown .label.sc-duet-slideout-panel-dropdown{position:relative;display:flex;gap:0.5rem;align-items:center;justify-content:center}/*!@.duet-slideout-panel-dropdown button.active .label::after*/.duet-slideout-panel-dropdown.sc-duet-slideout-panel-dropdown button.active.sc-duet-slideout-panel-dropdown .label.sc-duet-slideout-panel-dropdown::after{position:absolute;top:auto;bottom:0;left:0;display:block;width:calc(100% - 18px);height:1px;content:\"\";background:rgb(0, 119, 179);transform:translateY(1px)}/*!@.duet-slideout-panel-dropdown .items*/.duet-slideout-panel-dropdown.sc-duet-slideout-panel-dropdown .items.sc-duet-slideout-panel-dropdown{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;max-height:1000px;padding:0 20px 8px 44px;overflow-y:auto;visibility:visible;transition:max-height 0.3s ease-in, padding-bottom 0.3s ease-in;-ms-overflow-style:none;scrollbar-width:none}/*!@.duet-slideout-panel-dropdown .items::-webkit-scrollbar*/.duet-slideout-panel-dropdown.sc-duet-slideout-panel-dropdown .items.sc-duet-slideout-panel-dropdown::-webkit-scrollbar{display:none}/*!@.duet-slideout-panel-dropdown .items.hidden*/.duet-slideout-panel-dropdown.sc-duet-slideout-panel-dropdown .items.hidden.sc-duet-slideout-panel-dropdown{max-height:0;padding:0;overflow:hidden;visibility:hidden;transition:max-height 0.3s ease-out, padding-bottom 0.3s ease-out}/*!@.duet-slideout-panel-dropdown.duet-theme-turva button*/.duet-slideout-panel-dropdown.duet-theme-turva.sc-duet-slideout-panel-dropdown button.sc-duet-slideout-panel-dropdown{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-slideout-panel-dropdown.duet-theme-turva button.active .label::after*/.duet-slideout-panel-dropdown.duet-theme-turva.sc-duet-slideout-panel-dropdown button.active.sc-duet-slideout-panel-dropdown .label.sc-duet-slideout-panel-dropdown::after{background:rgb(198, 12, 48)}/*!@slot*/slot.sc-duet-slideout-panel-dropdown{--active-height:1px;--active-translate-y:translateY(1px);font-size:1rem;font-weight:400;color:rgb(0, 41, 77)}/*!@.duet-theme-turva slot*/.duet-theme-turva.sc-duet-slideout-panel-dropdown slot.sc-duet-slideout-panel-dropdown{color:rgb(23, 28, 58)}/*!@slot[name=label]*/slot[name=label].sc-duet-slideout-panel-dropdown{font-size:1rem;font-weight:600}";
15947
+ const duetSlideoutPanelDropdownCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-slideout-panel-dropdown,*.sc-duet-slideout-panel-dropdown::after,*.sc-duet-slideout-panel-dropdown::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-slideout-panel-dropdown-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%}/*!@:host slot:not([name=label])::slotted(*)*/.sc-duet-slideout-panel-dropdown-h slot:not([name=label]).sc-duet-slideout-panel-dropdown-s>*{position:relative;top:-0.5rem;opacity:0;transition:top 0.3s ease-in, opacity 0.3s ease-in}/*!@:host([open]) slot:not([name=label])::slotted(*)*/.sc-duet-slideout-panel-dropdown-h[open] slot:not([name=label]).sc-duet-slideout-panel-dropdown-s>*{top:0;opacity:1}/*!@.duet-slideout-panel-dropdown*/.duet-slideout-panel-dropdown.sc-duet-slideout-panel-dropdown{position:relative;width:100%;height:100%}/*!@.duet-slideout-panel-dropdown button*/.duet-slideout-panel-dropdown.sc-duet-slideout-panel-dropdown button.sc-duet-slideout-panel-dropdown{position:relative;display:flex;gap:20px;align-items:center;justify-content:flex-start;width:100%;height:100%;padding:8px 0;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1.25rem;font-weight:800;line-height:1.25;color:rgb(0, 41, 77);text-align:center;text-decoration:none;cursor:pointer}/*!@.duet-slideout-panel-dropdown button .label*/.duet-slideout-panel-dropdown.sc-duet-slideout-panel-dropdown button.sc-duet-slideout-panel-dropdown .label.sc-duet-slideout-panel-dropdown{position:relative;display:flex;gap:0.5rem;align-items:center;justify-content:center}/*!@.duet-slideout-panel-dropdown button:focus*/.duet-slideout-panel-dropdown.sc-duet-slideout-panel-dropdown button.sc-duet-slideout-panel-dropdown:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-slideout-panel-dropdown button.active .label::after*/.duet-slideout-panel-dropdown.sc-duet-slideout-panel-dropdown button.active.sc-duet-slideout-panel-dropdown .label.sc-duet-slideout-panel-dropdown::after{position:absolute;top:auto;bottom:0;left:0;display:block;width:calc(100% - 18px);height:1px;content:\"\";background:rgb(0, 119, 179);transform:translateY(1px)}/*!@.duet-slideout-panel-dropdown .items*/.duet-slideout-panel-dropdown.sc-duet-slideout-panel-dropdown .items.sc-duet-slideout-panel-dropdown{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;max-height:1000px;padding:4px 20px 8px 44px;overflow-y:auto;visibility:visible;transition:max-height 0.3s ease-in, padding-bottom 0.3s ease-in;-ms-overflow-style:none;scrollbar-width:none}/*!@.duet-slideout-panel-dropdown .items::-webkit-scrollbar*/.duet-slideout-panel-dropdown.sc-duet-slideout-panel-dropdown .items.sc-duet-slideout-panel-dropdown::-webkit-scrollbar{display:none}/*!@.duet-slideout-panel-dropdown .items.hidden*/.duet-slideout-panel-dropdown.sc-duet-slideout-panel-dropdown .items.hidden.sc-duet-slideout-panel-dropdown{max-height:0;padding:0;overflow:hidden;visibility:hidden;transition:max-height 0.3s ease-out, padding-bottom 0.3s ease-out}/*!@.duet-slideout-panel-dropdown.duet-theme-turva button*/.duet-slideout-panel-dropdown.duet-theme-turva.sc-duet-slideout-panel-dropdown button.sc-duet-slideout-panel-dropdown{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-slideout-panel-dropdown.duet-theme-turva button:focus*/.duet-slideout-panel-dropdown.duet-theme-turva.sc-duet-slideout-panel-dropdown button.sc-duet-slideout-panel-dropdown:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-slideout-panel-dropdown.duet-theme-turva button.active .label::after*/.duet-slideout-panel-dropdown.duet-theme-turva.sc-duet-slideout-panel-dropdown button.active.sc-duet-slideout-panel-dropdown .label.sc-duet-slideout-panel-dropdown::after{background:rgb(198, 12, 48)}/*!@slot*/slot.sc-duet-slideout-panel-dropdown{--active-height:1px;--active-translate-y:translateY(1px);font-size:1rem;font-weight:400;color:rgb(0, 41, 77)}/*!@.duet-theme-turva slot*/.duet-theme-turva.sc-duet-slideout-panel-dropdown slot.sc-duet-slideout-panel-dropdown{color:rgb(23, 28, 58)}/*!@slot[name=label]*/slot[name=label].sc-duet-slideout-panel-dropdown{font-size:1rem;font-weight:600}";
15742
15948
 
15743
15949
  class DuetSlideoutPanelDropdown {
15744
15950
  constructor(hostRef) {
@@ -15767,6 +15973,12 @@ class DuetSlideoutPanelDropdown {
15767
15973
  link.menuItem = true;
15768
15974
  });
15769
15975
  }
15976
+ /**
15977
+ * Sets focus. Use this method instead of the global focus().
15978
+ */
15979
+ async setFocus(options) {
15980
+ this.button.focus(options);
15981
+ }
15770
15982
  /**
15771
15983
  * render() function
15772
15984
  * Always the last one in the class.
@@ -15776,7 +15988,7 @@ class DuetSlideoutPanelDropdown {
15776
15988
  "duet-slideout-panel-dropdown": true,
15777
15989
  "duet-theme-turva": this.theme === "turva",
15778
15990
  active: this.open,
15779
- } }, hAsync("button", { "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
15991
+ } }, hAsync("button", { ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-current": this.active ? "true" : "false", id: "button", type: "button", class: {
15780
15992
  active: this.active,
15781
15993
  }, onClick: this.onClick }, this.icon && hAsync("duet-icon", { name: this.icon, size: "medium", margin: "none", color: "secondary" }), hAsync("div", { class: "label" }, hAsync("slot", { name: "label" }), hAsync("duet-icon", { class: "caret", name: "action-arrow-down-small", margin: "none", size: "xx-small", color: "secondary" }))), hAsync("div", { tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
15782
15994
  items: true,
@@ -15792,7 +16004,8 @@ class DuetSlideoutPanelDropdown {
15792
16004
  "theme": [1025],
15793
16005
  "active": [1540],
15794
16006
  "open": [1540],
15795
- "icon": [1537]
16007
+ "icon": [1537],
16008
+ "setFocus": [64]
15796
16009
  },
15797
16010
  "$listeners$": [[8, "click", "handleFocus"]],
15798
16011
  "$lazyBundleId$": "-",
@@ -16113,14 +16326,25 @@ class DuetStepper {
16113
16326
  }; }
16114
16327
  }
16115
16328
 
16116
- const duetSubmenuBarCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-submenu-bar,*.sc-duet-submenu-bar::after,*.sc-duet-submenu-bar::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-submenu-bar-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%}/*!@:host slot::slotted(duet-submenu-bar-link),\n:host slot::slotted(duet-submenu-bar-dropdown)*/.sc-duet-submenu-bar-h slot.sc-duet-submenu-bar-s>duet-submenu-bar-link,.sc-duet-submenu-bar-h slot.sc-duet-submenu-bar-s>duet-submenu-bar-dropdown{position:relative;top:-0.5rem;opacity:0;transition:top 0.3s ease-in, opacity 0.3s ease-in}/*!@:host([open]) slot::slotted(duet-submenu-bar-link),\n:host([open]) slot::slotted(duet-submenu-bar-dropdown)*/.sc-duet-submenu-bar-h[open] slot.sc-duet-submenu-bar-s>duet-submenu-bar-link,.sc-duet-submenu-bar-h[open] slot.sc-duet-submenu-bar-s>duet-submenu-bar-dropdown{top:0;opacity:1}@media (min-width: 62em){/*!@:host slot::slotted(duet-submenu-bar-link),\n :host slot::slotted(duet-submenu-bar-dropdown)*/.sc-duet-submenu-bar-h slot.sc-duet-submenu-bar-s>duet-submenu-bar-link,.sc-duet-submenu-bar-h slot.sc-duet-submenu-bar-s>duet-submenu-bar-dropdown{position:relative;top:auto;opacity:1;transition:none}}/*!@.duet-submenu-bar*/.duet-submenu-bar.sc-duet-submenu-bar{position:relative;background:rgb(243, 249, 252)}@media (min-width: 62em){/*!@.duet-submenu-bar*/.duet-submenu-bar.sc-duet-submenu-bar{border-bottom:1px solid rgb(205, 229, 241)}}/*!@.duet-submenu-bar button*/.duet-submenu-bar.sc-duet-submenu-bar button.sc-duet-submenu-bar{display:flex;align-items:center;justify-content:center;width:100%;padding:12px 0;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:rgb(0, 41, 77)}/*!@.duet-submenu-bar button.active .caret*/.duet-submenu-bar.sc-duet-submenu-bar button.active.sc-duet-submenu-bar .caret.sc-duet-submenu-bar{transform:rotate(180deg)}/*!@.duet-submenu-bar button .label*/.duet-submenu-bar.sc-duet-submenu-bar button.sc-duet-submenu-bar .label.sc-duet-submenu-bar{position:relative;display:flex;gap:8px;align-items:center;justify-content:center}@media (min-width: 62em){/*!@.duet-submenu-bar button*/.duet-submenu-bar.sc-duet-submenu-bar button.sc-duet-submenu-bar{display:none}}/*!@.duet-submenu-bar .items*/.duet-submenu-bar.sc-duet-submenu-bar .items.sc-duet-submenu-bar{position:absolute;z-index:399;width:100%;max-height:1000px;visibility:visible;background:rgb(243, 249, 252);border-bottom:1px solid rgb(207, 210, 212);transition:300ms ease}/*!@.duet-submenu-bar .items.hidden*/.duet-submenu-bar.sc-duet-submenu-bar .items.hidden.sc-duet-submenu-bar{max-height:0;overflow:hidden;visibility:hidden;border-bottom:0 solid rgb(207, 210, 212);transition:300ms ease}@media (min-width: 62em){/*!@.duet-submenu-bar .items, .duet-submenu-bar .items.hidden*/.duet-submenu-bar.sc-duet-submenu-bar .items.sc-duet-submenu-bar,.duet-submenu-bar.sc-duet-submenu-bar .items.hidden.sc-duet-submenu-bar{position:static;z-index:auto;display:flex;flex-direction:row;align-items:center;justify-content:center;max-height:unset;overflow:visible;visibility:visible;border:0;transition:none}}/*!@.duet-submenu-bar.duet-theme-turva*/.duet-submenu-bar.duet-theme-turva.sc-duet-submenu-bar{background:rgb(245, 245, 247);border-bottom:1px solid rgb(228, 228, 230)}/*!@.duet-submenu-bar.duet-theme-turva .items*/.duet-submenu-bar.duet-theme-turva.sc-duet-submenu-bar .items.sc-duet-submenu-bar{background:rgb(245, 245, 247)}";
16329
+ const duetSubmenuBarCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-submenu-bar,*.sc-duet-submenu-bar::after,*.sc-duet-submenu-bar::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-submenu-bar-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%}/*!@:host slot::slotted(duet-submenu-bar-link),\n:host slot::slotted(duet-submenu-bar-dropdown)*/.sc-duet-submenu-bar-h slot.sc-duet-submenu-bar-s>duet-submenu-bar-link,.sc-duet-submenu-bar-h slot.sc-duet-submenu-bar-s>duet-submenu-bar-dropdown{position:relative;top:-0.5rem;opacity:0;transition:top 0.3s ease-in, opacity 0.3s ease-in}/*!@:host([open]) slot::slotted(duet-submenu-bar-link),\n:host([open]) slot::slotted(duet-submenu-bar-dropdown)*/.sc-duet-submenu-bar-h[open] slot.sc-duet-submenu-bar-s>duet-submenu-bar-link,.sc-duet-submenu-bar-h[open] slot.sc-duet-submenu-bar-s>duet-submenu-bar-dropdown{top:0;opacity:1}@media (min-width: 62em){/*!@:host slot::slotted(duet-submenu-bar-link),\n :host slot::slotted(duet-submenu-bar-dropdown)*/.sc-duet-submenu-bar-h slot.sc-duet-submenu-bar-s>duet-submenu-bar-link,.sc-duet-submenu-bar-h slot.sc-duet-submenu-bar-s>duet-submenu-bar-dropdown{position:relative;top:auto;opacity:1;transition:none}}/*!@.duet-submenu-bar*/.duet-submenu-bar.sc-duet-submenu-bar{position:relative;background:rgb(243, 249, 252)}@media (min-width: 62em){/*!@.duet-submenu-bar*/.duet-submenu-bar.sc-duet-submenu-bar{border-bottom:1px solid rgb(205, 229, 241)}}/*!@.duet-submenu-bar button*/.duet-submenu-bar.sc-duet-submenu-bar button.sc-duet-submenu-bar{display:flex;align-items:center;justify-content:center;width:100%;padding:12px 0;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:rgb(0, 41, 77)}/*!@.duet-submenu-bar button:focus*/.duet-submenu-bar.sc-duet-submenu-bar button.sc-duet-submenu-bar:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-submenu-bar button.active .caret*/.duet-submenu-bar.sc-duet-submenu-bar button.active.sc-duet-submenu-bar .caret.sc-duet-submenu-bar{transform:rotate(180deg)}/*!@.duet-submenu-bar button .label*/.duet-submenu-bar.sc-duet-submenu-bar button.sc-duet-submenu-bar .label.sc-duet-submenu-bar{position:relative;display:flex;gap:8px;align-items:center;justify-content:center}@media (min-width: 62em){/*!@.duet-submenu-bar button*/.duet-submenu-bar.sc-duet-submenu-bar button.sc-duet-submenu-bar{display:none}}/*!@.duet-submenu-bar .items*/.duet-submenu-bar.sc-duet-submenu-bar .items.sc-duet-submenu-bar{position:absolute;z-index:399;width:100%;max-height:1000px;visibility:visible;background:rgb(243, 249, 252);border-bottom:1px solid rgb(207, 210, 212);transition:300ms ease}/*!@.duet-submenu-bar .items.hidden*/.duet-submenu-bar.sc-duet-submenu-bar .items.hidden.sc-duet-submenu-bar{max-height:0;overflow:hidden;visibility:hidden;border-bottom:0 solid rgb(207, 210, 212);transition:300ms ease}@media (min-width: 62em){/*!@.duet-submenu-bar .items, .duet-submenu-bar .items.hidden*/.duet-submenu-bar.sc-duet-submenu-bar .items.sc-duet-submenu-bar,.duet-submenu-bar.sc-duet-submenu-bar .items.hidden.sc-duet-submenu-bar{position:static;z-index:auto;display:flex;flex-direction:row;align-items:center;justify-content:center;max-height:unset;overflow:visible;visibility:visible;border:0;transition:none}}/*!@.duet-submenu-bar.duet-theme-turva*/.duet-submenu-bar.duet-theme-turva.sc-duet-submenu-bar{background:rgb(245, 245, 247);border-bottom:1px solid rgb(228, 228, 230)}/*!@.duet-submenu-bar.duet-theme-turva button:focus*/.duet-submenu-bar.duet-theme-turva.sc-duet-submenu-bar button.sc-duet-submenu-bar:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-submenu-bar.duet-theme-turva .items*/.duet-submenu-bar.duet-theme-turva.sc-duet-submenu-bar .items.sc-duet-submenu-bar{background:rgb(245, 245, 247)}";
16117
16330
 
16118
16331
  class DuetSubmenuBar {
16119
16332
  constructor(hostRef) {
16120
16333
  registerInstance(this, hostRef);
16334
+ this.mql = [window.matchMedia(media_query_large.replace(/'/g, ""))];
16335
+ this.boundMqlFunctions = [];
16336
+ this.changeAriaProperties = () => {
16337
+ if (this.mql[0].matches) {
16338
+ this.mobile = false;
16339
+ }
16340
+ else {
16341
+ this.mobile = true;
16342
+ }
16343
+ };
16121
16344
  this.onClick = () => {
16122
16345
  this.open = !this.open;
16123
16346
  };
16347
+ this.mobile = true;
16124
16348
  this.theme = "";
16125
16349
  this.open = false;
16126
16350
  }
@@ -16130,14 +16354,40 @@ class DuetSubmenuBar {
16130
16354
  componentWillLoad() {
16131
16355
  inheritGlobalTheme(this);
16132
16356
  }
16357
+ connectedCallback() {
16358
+ this.changeAriaProperties();
16359
+ for (let i = 0; i < this.mql.length; i++) {
16360
+ // addEventListener is not available in Stencil hydrate
16361
+ if (this.mql[i].addEventListener) {
16362
+ const bound = this.changeAriaProperties.bind(this);
16363
+ this.mql[i].addEventListener("change", bound);
16364
+ this.boundMqlFunctions[i] = bound;
16365
+ }
16366
+ }
16367
+ }
16368
+ disconnectedCallback() {
16369
+ for (let i = 0; i < this.mql.length; i++) {
16370
+ // removeEventListener is not available in Stencil hydrate
16371
+ if (this.mql[i].removeEventListener) {
16372
+ this.mql[i].removeEventListener("change", this.boundMqlFunctions[i]);
16373
+ }
16374
+ }
16375
+ this.boundMqlFunctions = [];
16376
+ }
16377
+ /**
16378
+ * Sets focus. Use this method instead of the global focus().
16379
+ */
16380
+ async setFocus(options) {
16381
+ this.button.focus(options);
16382
+ }
16133
16383
  /**
16134
16384
  * render() function
16135
16385
  * Always the last one in the class.
16136
16386
  */
16137
16387
  render() {
16138
- return (hAsync(Host, null, hAsync("div", { class: { "duet-submenu-bar": true, "duet-theme-turva": this.theme === "turva" }, role: "menubar" }, hAsync("button", { "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
16388
+ return (hAsync(Host, null, hAsync("div", { class: { "duet-submenu-bar": true, "duet-theme-turva": this.theme === "turva" }, role: this.mobile ? null : "menubar" }, hAsync("button", { ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
16139
16389
  active: this.open,
16140
- }, onClick: this.onClick }, hAsync("div", { class: "label" }, hAsync("slot", { name: "label" }), hAsync("duet-icon", { theme: this.theme, class: "caret", name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { role: "menu", id: "menu", "aria-labelledby": "button", "aria-expanded": this.open ? "true" : "false", class: {
16390
+ }, onClick: this.onClick }, hAsync("div", { class: "label" }, hAsync("slot", { name: "label" }), hAsync("duet-icon", { theme: this.theme, class: "caret", name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { role: this.mobile ? "menu" : null, id: "menu", "aria-labelledby": this.mobile ? "button" : null, "aria-expanded": this.mobile ? (this.open ? "true" : "false") : null, class: {
16141
16391
  items: true,
16142
16392
  hidden: !this.open,
16143
16393
  } }, hAsync("slot", null)))));
@@ -16149,7 +16399,9 @@ class DuetSubmenuBar {
16149
16399
  "$tagName$": "duet-submenu-bar",
16150
16400
  "$members$": {
16151
16401
  "theme": [1025],
16152
- "open": [1540]
16402
+ "open": [1540],
16403
+ "mobile": [32],
16404
+ "setFocus": [64]
16153
16405
  },
16154
16406
  "$listeners$": undefined,
16155
16407
  "$lazyBundleId$": "-",
@@ -16157,7 +16409,7 @@ class DuetSubmenuBar {
16157
16409
  }; }
16158
16410
  }
16159
16411
 
16160
- const duetSubmenuBarDropdownCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-submenu-bar-dropdown,*.sc-duet-submenu-bar-dropdown::after,*.sc-duet-submenu-bar-dropdown::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-submenu-bar-dropdown-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%}@media (min-width: 62em){/*!@:host*/.sc-duet-submenu-bar-dropdown-h{width:auto}}/*!@.duet-submenu-bar-dropdown*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown{position:relative;height:100%}/*!@.duet-submenu-bar-dropdown button*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown{position:relative;display:flex;flex-direction:row;gap:16px;align-items:center;justify-content:flex-start;width:100%;height:100%;padding:12px 1.5rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.25;color:rgb(0, 41, 77);text-align:center;text-decoration:none;cursor:pointer}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown button*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown{flex-direction:column;gap:5px;align-items:center;justify-content:center;width:auto;font-size:0.875rem;color:rgb(0, 77, 128)}}/*!@.duet-submenu-bar-dropdown button .label*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown .label.sc-duet-submenu-bar-dropdown{display:flex;gap:5px;align-items:center;justify-content:center}/*!@.duet-submenu-bar-dropdown button.active .caret*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown .caret.sc-duet-submenu-bar-dropdown{transform:rotate(180deg)}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown button .caret*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown .caret.sc-duet-submenu-bar-dropdown{position:absolute;right:12px}/*!@.duet-submenu-bar-dropdown button:hover*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown:hover{color:rgb(0, 41, 77);background:rgb(230, 242, 248)}/*!@.duet-submenu-bar-dropdown button:hover.active*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown:hover.active{color:rgb(0, 119, 179)}/*!@.duet-submenu-bar-dropdown button.active*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown{color:rgb(0, 119, 179)}/*!@.duet-theme-turva .duet-submenu-bar-dropdown button.active*/.duet-theme-turva.sc-duet-submenu-bar-dropdown .duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown{color:rgb(198, 12, 48)}/*!@.duet-submenu-bar-dropdown button.active::after*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown::after{position:absolute;top:auto;bottom:0;left:0;display:block;width:100%;height:1px;content:\"\";background:rgb(0, 119, 179);transition:300ms ease;transform:translateY(1px)}/*!@.duet-theme-turva .duet-submenu-bar-dropdown button.active::after*/.duet-theme-turva.sc-duet-submenu-bar-dropdown .duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown::after{background:rgb(198, 12, 48)}}/*!@.duet-submenu-bar-dropdown .items*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown .items.sc-duet-submenu-bar-dropdown{display:flex;flex-direction:column;align-items:center;justify-content:center;max-height:1000px;padding:0 0 16px;overflow-y:auto;color:rgb(0, 41, 77);visibility:visible;transition:max-height 0.3s ease-in, padding 0.3s ease-in;-ms-overflow-style:none;scrollbar-width:none}/*!@.duet-submenu-bar-dropdown .items::-webkit-scrollbar*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown .items.sc-duet-submenu-bar-dropdown::-webkit-scrollbar{display:none}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown .items*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown .items.sc-duet-submenu-bar-dropdown{position:absolute;top:102%;z-index:600;min-width:320px;padding:0;background:rgb(255, 255, 255);border-radius:0 0 4px 4px;box-shadow:0 6px 6px 0 rgba(0, 41, 77, 0.1);transition:none}}/*!@.duet-submenu-bar-dropdown .items.hidden*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown .items.hidden.sc-duet-submenu-bar-dropdown{max-height:0;padding:0;overflow:hidden;visibility:hidden;transition:max-height 0.3s ease-in, padding 0.3s ease-in}/*!@.duet-submenu-bar-dropdown.duet-theme-turva button*/.duet-submenu-bar-dropdown.duet-theme-turva.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown.duet-theme-turva button:hover*/.duet-submenu-bar-dropdown.duet-theme-turva.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown:hover{background:rgb(228, 228, 230)}}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown.duet-theme-turva button.active*/.duet-submenu-bar-dropdown.duet-theme-turva.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown{color:rgb(148, 9, 37)}}/*!@.duet-submenu-bar-dropdown.duet-theme-turva button.active::after*/.duet-submenu-bar-dropdown.duet-theme-turva.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown::after{background:rgb(148, 9, 37)}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown.duet-theme-turva .items*/.duet-submenu-bar-dropdown.duet-theme-turva.sc-duet-submenu-bar-dropdown .items.sc-duet-submenu-bar-dropdown{background:rgb(255, 255, 255)}}";
16412
+ const duetSubmenuBarDropdownCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-submenu-bar-dropdown,*.sc-duet-submenu-bar-dropdown::after,*.sc-duet-submenu-bar-dropdown::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-submenu-bar-dropdown-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%}@media (min-width: 62em){/*!@:host*/.sc-duet-submenu-bar-dropdown-h{width:auto}}/*!@.duet-submenu-bar-dropdown*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown{position:relative;height:100%}/*!@.duet-submenu-bar-dropdown button*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown{position:relative;display:flex;flex-direction:row;gap:16px;align-items:center;justify-content:flex-start;width:100%;height:100%;padding:12px 1.5rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.25;color:rgb(0, 41, 77);text-align:center;text-decoration:none;cursor:pointer}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown button*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown{flex-direction:column;gap:5px;align-items:center;justify-content:center;width:auto;font-size:0.875rem;color:rgb(0, 77, 128)}}/*!@.duet-submenu-bar-dropdown button .label*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown .label.sc-duet-submenu-bar-dropdown{display:flex;gap:5px;align-items:center;justify-content:center}/*!@.duet-submenu-bar-dropdown button:focus*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-submenu-bar-dropdown button.open .caret*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.open.sc-duet-submenu-bar-dropdown .caret.sc-duet-submenu-bar-dropdown{transform:rotate(180deg)}/*!@.duet-submenu-bar-dropdown button.active .label-text*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown .label-text.sc-duet-submenu-bar-dropdown{position:relative}/*!@.duet-submenu-bar-dropdown button.active .label-text::after*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown .label-text.sc-duet-submenu-bar-dropdown::after{position:absolute;top:auto;bottom:0;left:0;display:block;width:100%;height:1px;content:\"\";background:rgb(0, 119, 179);transform:1px}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown button.active .label-text::after*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown .label-text.sc-duet-submenu-bar-dropdown::after{display:none}}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown button .caret*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown .caret.sc-duet-submenu-bar-dropdown{position:absolute;right:12px}/*!@.duet-submenu-bar-dropdown button:hover*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown:hover{color:rgb(0, 41, 77);background:rgb(230, 242, 248)}/*!@.duet-submenu-bar-dropdown button:hover.active*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown:hover.active{color:rgb(0, 41, 77)}/*!@.duet-theme-turva .duet-submenu-bar-dropdown button:hover.active*/.duet-theme-turva.sc-duet-submenu-bar-dropdown .duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown:hover.active{color:rgb(23, 28, 58)}/*!@.duet-submenu-bar-dropdown button.active*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown{color:rgb(0, 119, 179)}/*!@.duet-theme-turva .duet-submenu-bar-dropdown button.active*/.duet-theme-turva.sc-duet-submenu-bar-dropdown .duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown{color:rgb(198, 12, 48)}/*!@.duet-submenu-bar-dropdown button.active::after, .duet-submenu-bar-dropdown button.open::after*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown::after,.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.open.sc-duet-submenu-bar-dropdown::after{position:absolute;top:auto;bottom:0;left:0;display:block;width:100%;height:1px;content:\"\";background:rgb(0, 119, 179);transition:300ms ease;transform:translateY(1px)}/*!@.duet-theme-turva .duet-submenu-bar-dropdown button.active::after, .duet-theme-turva .duet-submenu-bar-dropdown button.open::after*/.duet-theme-turva.sc-duet-submenu-bar-dropdown .duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown::after,.duet-theme-turva.sc-duet-submenu-bar-dropdown .duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown button.open.sc-duet-submenu-bar-dropdown::after{background:rgb(198, 12, 48)}}/*!@.duet-submenu-bar-dropdown .items*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown .items.sc-duet-submenu-bar-dropdown{display:flex;flex-direction:column;align-items:center;justify-content:center;max-height:1000px;padding:4px 0 16px;overflow-y:auto;color:rgb(0, 41, 77);visibility:visible;transition:max-height 0.3s ease-in, padding 0.3s ease-in;-ms-overflow-style:none;scrollbar-width:none}/*!@.duet-submenu-bar-dropdown .items::-webkit-scrollbar*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown .items.sc-duet-submenu-bar-dropdown::-webkit-scrollbar{display:none}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown .items*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown .items.sc-duet-submenu-bar-dropdown{position:absolute;top:102%;z-index:600;min-width:320px;padding:4px 0 0;background:rgb(255, 255, 255);border-radius:0 0 4px 4px;box-shadow:0 6px 6px 0 rgba(0, 41, 77, 0.1);transition:none}}/*!@.duet-submenu-bar-dropdown .items.hidden*/.duet-submenu-bar-dropdown.sc-duet-submenu-bar-dropdown .items.hidden.sc-duet-submenu-bar-dropdown{max-height:0;padding:0;overflow:hidden;visibility:hidden;transition:max-height 0.3s ease-in, padding 0.3s ease-in}/*!@.duet-submenu-bar-dropdown.duet-theme-turva button*/.duet-submenu-bar-dropdown.duet-theme-turva.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-submenu-bar-dropdown.duet-theme-turva button:focus*/.duet-submenu-bar-dropdown.duet-theme-turva.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown.duet-theme-turva button:hover*/.duet-submenu-bar-dropdown.duet-theme-turva.sc-duet-submenu-bar-dropdown button.sc-duet-submenu-bar-dropdown:hover{background:rgb(228, 228, 230)}}/*!@.duet-submenu-bar-dropdown.duet-theme-turva button.active .label-text::after, .duet-submenu-bar-dropdown.duet-theme-turva button.open .label-text::after*/.duet-submenu-bar-dropdown.duet-theme-turva.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown .label-text.sc-duet-submenu-bar-dropdown::after,.duet-submenu-bar-dropdown.duet-theme-turva.sc-duet-submenu-bar-dropdown button.open.sc-duet-submenu-bar-dropdown .label-text.sc-duet-submenu-bar-dropdown::after{background:rgb(198, 12, 48)}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown.duet-theme-turva button.active, .duet-submenu-bar-dropdown.duet-theme-turva button.open*/.duet-submenu-bar-dropdown.duet-theme-turva.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown,.duet-submenu-bar-dropdown.duet-theme-turva.sc-duet-submenu-bar-dropdown button.open.sc-duet-submenu-bar-dropdown{color:rgb(148, 9, 37)}}/*!@.duet-submenu-bar-dropdown.duet-theme-turva button.active::after, .duet-submenu-bar-dropdown.duet-theme-turva button.open::after*/.duet-submenu-bar-dropdown.duet-theme-turva.sc-duet-submenu-bar-dropdown button.active.sc-duet-submenu-bar-dropdown::after,.duet-submenu-bar-dropdown.duet-theme-turva.sc-duet-submenu-bar-dropdown button.open.sc-duet-submenu-bar-dropdown::after{background:rgb(148, 9, 37)}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown.duet-theme-turva .items*/.duet-submenu-bar-dropdown.duet-theme-turva.sc-duet-submenu-bar-dropdown .items.sc-duet-submenu-bar-dropdown{background:rgb(255, 255, 255)}}";
16161
16413
 
16162
16414
  class DuetSubmenuBarDropdown {
16163
16415
  constructor(hostRef) {
@@ -16180,6 +16432,7 @@ class DuetSubmenuBarDropdown {
16180
16432
  };
16181
16433
  this.iconSize = "small";
16182
16434
  this.theme = "";
16435
+ this.active = false;
16183
16436
  this.open = false;
16184
16437
  this.icon = undefined;
16185
16438
  }
@@ -16215,14 +16468,38 @@ class DuetSubmenuBarDropdown {
16215
16468
  }
16216
16469
  this.boundMqlFunctions = [];
16217
16470
  }
16471
+ handleEscape(e) {
16472
+ if (isEscapeKey(e)) {
16473
+ if (this.open) {
16474
+ this.open = false;
16475
+ }
16476
+ else {
16477
+ const dropdown = this.element.closest("duet-submenu-bar");
16478
+ dropdown.open = false;
16479
+ dropdown.setFocus();
16480
+ }
16481
+ }
16482
+ }
16483
+ /**
16484
+ * Sets focus. Use this method instead of the global focus().
16485
+ */
16486
+ async setFocus(options) {
16487
+ this.button.focus(options);
16488
+ }
16218
16489
  /**
16219
16490
  * render() function
16220
16491
  * Always the last one in the class.
16221
16492
  */
16222
16493
  render() {
16223
- return (hAsync(Host, null, hAsync("div", { class: { "duet-submenu-bar-dropdown": true, "duet-theme-turva": this.theme === "turva", active: this.open } }, hAsync("button", { "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
16224
- active: this.open,
16225
- }, onClick: this.onClick }, this.icon && (hAsync("duet-icon", { theme: this.theme, name: this.icon, size: this.iconSize, margin: "none", color: "currentColor" })), hAsync("div", { class: "label" }, hAsync("slot", { name: "label" }), hAsync("duet-icon", { class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
16494
+ return (hAsync(Host, null, hAsync("div", { class: {
16495
+ "duet-submenu-bar-dropdown": true,
16496
+ "duet-theme-turva": this.theme === "turva",
16497
+ open: this.open,
16498
+ active: this.active,
16499
+ } }, hAsync("button", { ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-current": this.active ? "true" : "false", id: "button", type: "button", class: {
16500
+ open: this.open,
16501
+ active: this.active,
16502
+ }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (hAsync("duet-icon", { theme: this.theme, name: this.icon, size: this.iconSize, margin: "none", color: "currentColor" })), hAsync("div", { class: "label" }, hAsync("span", { class: "label-text" }, hAsync("slot", { name: "label" })), hAsync("duet-icon", { class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
16226
16503
  items: true,
16227
16504
  hidden: !this.open,
16228
16505
  } }, hAsync("slot", null)))));
@@ -16234,9 +16511,11 @@ class DuetSubmenuBarDropdown {
16234
16511
  "$tagName$": "duet-submenu-bar-dropdown",
16235
16512
  "$members$": {
16236
16513
  "theme": [1025],
16514
+ "active": [1028],
16237
16515
  "open": [1540],
16238
16516
  "icon": [1537],
16239
- "iconSize": [32]
16517
+ "iconSize": [32],
16518
+ "setFocus": [64]
16240
16519
  },
16241
16520
  "$listeners$": [[8, "click", "handleFocus"]],
16242
16521
  "$lazyBundleId$": "-",
@@ -16244,12 +16523,13 @@ class DuetSubmenuBarDropdown {
16244
16523
  }; }
16245
16524
  }
16246
16525
 
16247
- const duetSubmenuBarDropdownLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-submenu-bar-dropdown-link,*.sc-duet-submenu-bar-dropdown-link::after,*.sc-duet-submenu-bar-dropdown-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-submenu-bar-dropdown-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%}/*!@.duet-submenu-bar-dropdown-link*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link{display:flex;flex-direction:row;gap:0.5rem;align-items:center;justify-content:flex-start;height:100%;padding:8px 20px 8px 60px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.25;color:rgb(0, 41, 77);text-align:center;text-decoration:none}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown-link*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link{padding:0.675rem 16px;font-size:0.875rem}}/*!@.duet-submenu-bar-dropdown-link.duet-theme-turva*/.duet-submenu-bar-dropdown-link.duet-theme-turva.sc-duet-submenu-bar-dropdown-link{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown-link:hover*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link:hover{color:rgb(0, 77, 128);background:rgb(243, 249, 252)}/*!@.duet-submenu-bar-dropdown-link:hover.duet-theme-turva*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link:hover.duet-theme-turva{color:rgb(148, 9, 37);background:rgb(245, 245, 247)}}/*!@.duet-submenu-bar-dropdown-link.highlight*/.duet-submenu-bar-dropdown-link.highlight.sc-duet-submenu-bar-dropdown-link{color:rgb(0, 119, 179)}/*!@.duet-submenu-bar-dropdown-link.highlight.duet-theme-turva*/.duet-submenu-bar-dropdown-link.highlight.duet-theme-turva.sc-duet-submenu-bar-dropdown-link{color:rgb(148, 9, 37)}";
16526
+ const duetSubmenuBarDropdownLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-submenu-bar-dropdown-link,*.sc-duet-submenu-bar-dropdown-link::after,*.sc-duet-submenu-bar-dropdown-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-submenu-bar-dropdown-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%}/*!@.duet-submenu-bar-dropdown-link*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link{display:flex;flex-direction:row;gap:0.5rem;align-items:center;justify-content:flex-start;height:100%;padding:8px 20px 8px 60px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.25;color:rgb(0, 41, 77);text-align:center;text-decoration:none}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown-link*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link{padding:0.675rem 16px;font-size:0.875rem}}/*!@.duet-submenu-bar-dropdown-link:focus*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-submenu-bar-dropdown-link:focus.duet-theme-turva*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-submenu-bar-dropdown-link.active .label*/.duet-submenu-bar-dropdown-link.active.sc-duet-submenu-bar-dropdown-link .label.sc-duet-submenu-bar-dropdown-link{position:relative}/*!@.duet-submenu-bar-dropdown-link.active .label::after*/.duet-submenu-bar-dropdown-link.active.sc-duet-submenu-bar-dropdown-link .label.sc-duet-submenu-bar-dropdown-link::after{position:absolute;top:auto;bottom:0;left:0;display:block;width:100%;height:1px;content:\"\";background:rgb(0, 119, 179);transform:1px}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown-link.active .label::after*/.duet-submenu-bar-dropdown-link.active.sc-duet-submenu-bar-dropdown-link .label.sc-duet-submenu-bar-dropdown-link::after{display:none}}/*!@.duet-submenu-bar-dropdown-link.duet-theme-turva*/.duet-submenu-bar-dropdown-link.duet-theme-turva.sc-duet-submenu-bar-dropdown-link{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-submenu-bar-dropdown-link.duet-theme-turva.active .label::after*/.duet-submenu-bar-dropdown-link.duet-theme-turva.active.sc-duet-submenu-bar-dropdown-link .label.sc-duet-submenu-bar-dropdown-link::after{background:rgb(198, 12, 48)}@media (min-width: 62em){/*!@.duet-submenu-bar-dropdown-link:hover*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link:hover{color:rgb(0, 77, 128);background:rgb(243, 249, 252)}/*!@.duet-submenu-bar-dropdown-link:hover.duet-theme-turva*/.duet-submenu-bar-dropdown-link.sc-duet-submenu-bar-dropdown-link:hover.duet-theme-turva{color:rgb(148, 9, 37);background:rgb(245, 245, 247)}}/*!@.duet-submenu-bar-dropdown-link.highlight*/.duet-submenu-bar-dropdown-link.highlight.sc-duet-submenu-bar-dropdown-link{color:rgb(0, 119, 179)}/*!@.duet-submenu-bar-dropdown-link.highlight.duet-theme-turva*/.duet-submenu-bar-dropdown-link.highlight.duet-theme-turva.sc-duet-submenu-bar-dropdown-link{color:rgb(148, 9, 37)}";
16248
16527
 
16249
16528
  class DuetSubmenuBarDropdownLink {
16250
16529
  constructor(hostRef) {
16251
16530
  registerInstance(this, hostRef);
16252
16531
  this.theme = "";
16532
+ this.active = false;
16253
16533
  this.href = "#";
16254
16534
  this.icon = undefined;
16255
16535
  this.caret = false;
@@ -16261,6 +16541,13 @@ class DuetSubmenuBarDropdownLink {
16261
16541
  componentWillLoad() {
16262
16542
  inheritGlobalTheme(this);
16263
16543
  }
16544
+ handleEscape(e) {
16545
+ if (isEscapeKey(e)) {
16546
+ const dropdown = this.element.closest("duet-submenu-bar-dropdown");
16547
+ dropdown.open = false;
16548
+ dropdown.setFocus();
16549
+ }
16550
+ }
16264
16551
  /**
16265
16552
  * render() function
16266
16553
  * Always the last one in the class.
@@ -16270,7 +16557,8 @@ class DuetSubmenuBarDropdownLink {
16270
16557
  "duet-submenu-bar-dropdown-link": true,
16271
16558
  "duet-theme-turva": this.theme === "turva",
16272
16559
  highlight: this.highlight,
16273
- }, href: this.href, role: "menuitem" }, this.icon && hAsync("duet-icon", { name: this.icon, size: "x-small", margin: "none", color: "currentColor" }), hAsync("slot", null), this.caret && hAsync("duet-icon", { name: "action-arrow-right-small", size: "xxx-small", margin: "none" }))));
16560
+ active: this.active,
16561
+ }, "aria-current": this.active ? "true" : "false", href: this.href, onKeyUp: e => this.handleEscape(e) }, this.icon && hAsync("duet-icon", { name: this.icon, size: "x-small", margin: "none", color: "currentColor" }), hAsync("span", { class: "label" }, hAsync("slot", null)), this.caret && hAsync("duet-icon", { name: "action-arrow-right-small", size: "xxx-small", margin: "none" }))));
16274
16562
  }
16275
16563
  get element() { return getElement(this); }
16276
16564
  static get style() { return duetSubmenuBarDropdownLinkCss; }
@@ -16279,6 +16567,7 @@ class DuetSubmenuBarDropdownLink {
16279
16567
  "$tagName$": "duet-submenu-bar-dropdown-link",
16280
16568
  "$members$": {
16281
16569
  "theme": [1025],
16570
+ "active": [1028],
16282
16571
  "href": [1025],
16283
16572
  "icon": [1537],
16284
16573
  "caret": [1028],
@@ -16290,7 +16579,7 @@ class DuetSubmenuBarDropdownLink {
16290
16579
  }; }
16291
16580
  }
16292
16581
 
16293
- const duetSubmenuBarLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-submenu-bar-link,*.sc-duet-submenu-bar-link::after,*.sc-duet-submenu-bar-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-submenu-bar-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%}@media (min-width: 62em){/*!@:host*/.sc-duet-submenu-bar-link-h{width:auto}}/*!@.duet-submenu-bar-link*/.duet-submenu-bar-link.sc-duet-submenu-bar-link{display:flex;flex-direction:row;gap:16px;align-items:center;justify-content:flex-start;height:100%;padding:12px 1.5rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.25;color:rgb(0, 41, 77);text-align:center;text-decoration:none}@media (min-width: 62em){/*!@.duet-submenu-bar-link*/.duet-submenu-bar-link.sc-duet-submenu-bar-link{flex-direction:column;gap:5px;align-items:center;justify-content:center;font-size:0.875rem;color:rgb(0, 77, 128)}}/*!@.duet-submenu-bar-link.duet-theme-turva*/.duet-submenu-bar-link.duet-theme-turva.sc-duet-submenu-bar-link{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}@media (min-width: 62em){/*!@.duet-submenu-bar-link:hover*/.duet-submenu-bar-link.sc-duet-submenu-bar-link:hover{color:rgb(0, 41, 77);background:rgb(230, 242, 248)}/*!@.duet-submenu-bar-link:hover.duet-theme-turva*/.duet-submenu-bar-link.sc-duet-submenu-bar-link:hover.duet-theme-turva{color:rgb(23, 28, 58);background:rgb(228, 228, 230)}}";
16582
+ const duetSubmenuBarLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-submenu-bar-link,*.sc-duet-submenu-bar-link::after,*.sc-duet-submenu-bar-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-submenu-bar-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%}@media (min-width: 62em){/*!@:host*/.sc-duet-submenu-bar-link-h{width:auto}}/*!@.duet-submenu-bar-link*/.duet-submenu-bar-link.sc-duet-submenu-bar-link{display:flex;flex-direction:row;gap:16px;align-items:center;justify-content:flex-start;height:100%;padding:12px 1.5rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.25;color:rgb(0, 41, 77);text-align:center;text-decoration:none}@media (min-width: 62em){/*!@.duet-submenu-bar-link*/.duet-submenu-bar-link.sc-duet-submenu-bar-link{flex-direction:column;gap:5px;align-items:center;justify-content:center;font-size:0.875rem;color:rgb(0, 77, 128)}}/*!@.duet-submenu-bar-link:focus*/.duet-submenu-bar-link.sc-duet-submenu-bar-link:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-submenu-bar-link:focus.duet-theme-turva*/.duet-submenu-bar-link.sc-duet-submenu-bar-link:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}@media (min-width: 62em){/*!@.duet-submenu-bar-link.active*/.duet-submenu-bar-link.active.sc-duet-submenu-bar-link{color:rgb(0, 119, 179)}/*!@.duet-theme-turva .duet-submenu-bar-link.active*/.duet-theme-turva.sc-duet-submenu-bar-link .duet-submenu-bar-link.active.sc-duet-submenu-bar-link{color:rgb(198, 12, 48)}}/*!@.duet-submenu-bar-link.active .label*/.duet-submenu-bar-link.active.sc-duet-submenu-bar-link .label.sc-duet-submenu-bar-link{position:relative}/*!@.duet-submenu-bar-link.active .label::after*/.duet-submenu-bar-link.active.sc-duet-submenu-bar-link .label.sc-duet-submenu-bar-link::after{position:absolute;top:auto;bottom:0;left:0;display:block;width:100%;height:1px;content:\"\";background:rgb(0, 119, 179);transform:1px}@media (min-width: 62em){/*!@.duet-submenu-bar-link.active .label::after*/.duet-submenu-bar-link.active.sc-duet-submenu-bar-link .label.sc-duet-submenu-bar-link::after{display:none}/*!@.duet-submenu-bar-link.active::after*/.duet-submenu-bar-link.active.sc-duet-submenu-bar-link::after{position:absolute;top:auto;bottom:0;left:0;display:block;width:100%;height:1px;content:\"\";background:rgb(0, 119, 179);transition:300ms ease;transform:translateY(1px)}}/*!@.duet-submenu-bar-link.duet-theme-turva*/.duet-submenu-bar-link.duet-theme-turva.sc-duet-submenu-bar-link{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-submenu-bar-link.duet-theme-turva.active .label::after*/.duet-submenu-bar-link.duet-theme-turva.active.sc-duet-submenu-bar-link .label.sc-duet-submenu-bar-link::after{background:rgb(198, 12, 48)}/*!@.duet-submenu-bar-link.duet-theme-turva.active::after*/.duet-submenu-bar-link.duet-theme-turva.active.sc-duet-submenu-bar-link::after{background:rgb(198, 12, 48)}@media (min-width: 62em){/*!@.duet-submenu-bar-link:hover*/.duet-submenu-bar-link.sc-duet-submenu-bar-link:hover{color:rgb(0, 41, 77);background:rgb(230, 242, 248)}/*!@.duet-submenu-bar-link:hover.duet-theme-turva*/.duet-submenu-bar-link.sc-duet-submenu-bar-link:hover.duet-theme-turva{color:rgb(23, 28, 58);background:rgb(228, 228, 230)}}";
16294
16583
 
16295
16584
  class DuetSubmenuBarLink {
16296
16585
  constructor(hostRef) {
@@ -16310,6 +16599,7 @@ class DuetSubmenuBarLink {
16310
16599
  };
16311
16600
  this.iconSize = "small";
16312
16601
  this.theme = "";
16602
+ this.active = false;
16313
16603
  this.href = "#";
16314
16604
  this.icon = undefined;
16315
16605
  }
@@ -16339,12 +16629,19 @@ class DuetSubmenuBarLink {
16339
16629
  }
16340
16630
  this.boundMqlFunctions = [];
16341
16631
  }
16632
+ handleEscape(e) {
16633
+ if (isEscapeKey(e)) {
16634
+ const dropdown = this.element.closest("duet-submenu-bar");
16635
+ dropdown.open = false;
16636
+ dropdown.setFocus();
16637
+ }
16638
+ }
16342
16639
  /**
16343
16640
  * render() function
16344
16641
  * Always the last one in the class.
16345
16642
  */
16346
16643
  render() {
16347
- return (hAsync(Host, null, hAsync("a", { class: { "duet-submenu-bar-link": true, "duet-theme-turva": this.theme === "turva" }, href: this.href, role: "menuitem" }, this.icon && (hAsync("duet-icon", { theme: this.theme, name: this.icon, size: this.iconSize, margin: "none", color: "currentColor" })), hAsync("slot", null))));
16644
+ return (hAsync(Host, null, hAsync("a", { class: { "duet-submenu-bar-link": true, "duet-theme-turva": this.theme === "turva", active: this.active }, href: this.href, onKeyUp: e => this.handleEscape(e), "aria-current": this.active ? "true" : "false" }, this.icon && (hAsync("duet-icon", { theme: this.theme, name: this.icon, size: this.iconSize, margin: "none", color: "currentColor" })), hAsync("span", { class: "label" }, hAsync("slot", null)))));
16348
16645
  }
16349
16646
  get element() { return getElement(this); }
16350
16647
  static get style() { return duetSubmenuBarLinkCss; }
@@ -16353,6 +16650,7 @@ class DuetSubmenuBarLink {
16353
16650
  "$tagName$": "duet-submenu-bar-link",
16354
16651
  "$members$": {
16355
16652
  "theme": [1025],
16653
+ "active": [1028],
16356
16654
  "href": [1025],
16357
16655
  "icon": [1537],
16358
16656
  "iconSize": [32]
@@ -16399,7 +16697,7 @@ class DuetTab {
16399
16697
  }; }
16400
16698
  }
16401
16699
 
16402
- const duetTabGroupCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-tab-group,*.sc-duet-tab-group::after,*.sc-duet-tab-group::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-tab-group-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;display:block;width:100%}/*!@.duet-tab-group-tabs*/.duet-tab-group-tabs.sc-duet-tab-group{margin-bottom:28px !important;display:block;width:100%;max-width:100%;padding-top:2px;list-style:none}/*!@.duet-tab-group-tabs.duet-m-0*/.duet-tab-group-tabs.duet-m-0.sc-duet-tab-group{margin:0 !important}/*!@.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden*/.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden.sc-duet-tab-group{display:none}@media (min-width: 36em){/*!@.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden*/.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden.sc-duet-tab-group{display:block}}/*!@.duet-tab-variation-plain .duet-tab-group-tabs*/.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{border-bottom:1px solid rgb(225, 227, 230)}/*!@.duet-theme-turva.duet-tab-variation-plain .duet-tab-group-tabs*/.duet-theme-turva.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{border-bottom-color:rgb(228, 228, 230)}/*!@.duet-tab-variation-checked .duet-tab-group-tabs*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{display:flex;gap:8px;padding-right:16px;padding-left:16px;overflow-x:scroll;-ms-overflow-style:none;scrollbar-width:none}/*!@.duet-tab-variation-checked .duet-tab-group-tabs::-webkit-scrollbar*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group::-webkit-scrollbar{display:none}@media (min-width: 36em){/*!@.duet-tab-variation-checked .duet-tab-group-tabs*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{overflow:visible}}/*!@.duet-tab-plain-scrolling .duet-tab-group-tabs*/.duet-tab-plain-scrolling.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{display:flex;overflow-x:scroll;scroll-behavior:smooth;-ms-overflow-style:none;scrollbar-width:none}/*!@.duet-tab-plain-scrolling .duet-tab-group-tabs::-webkit-scrollbar*/.duet-tab-plain-scrolling.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group::-webkit-scrollbar{display:none}@media (min-width: 36em){/*!@.duet-tab-plain-scrolling .duet-tab-group-tabs*/.duet-tab-plain-scrolling.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{display:block;overflow:auto}}@media (min-width: 36em){/*!@duet-select*/duet-select.sc-duet-tab-group{display:none !important}}/*!@.duet-tab-button*/.duet-tab-button.sc-duet-tab-group{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;padding:20px;margin-top:-2px;overflow:visible;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.1;color:rgb(0, 41, 77);text-align:left;text-decoration:none;cursor:pointer;background:rgb(255, 255, 255);border:2px solid rgb(225, 227, 230);border-radius:0;transition:150ms ease}/*!@.duet-tab-button.duet-p-0*/.duet-tab-button.duet-p-0.sc-duet-tab-group{padding:0 !important}/*!@.duet-tab-button.duet-m-0*/.duet-tab-button.duet-m-0.sc-duet-tab-group{margin:0 !important}/*!@.duet-theme-turva .duet-tab-button*/.duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58);border-color:rgb(228, 228, 230)}/*!@.duet-tab-button.duet-p-0*/.duet-tab-button.duet-p-0.sc-duet-tab-group{padding:0 !important}@media (min-width: 36em){/*!@.duet-tab-button*/.duet-tab-button.sc-duet-tab-group{display:inline-block;width:auto;margin-left:-2px;border-right:2px solid rgb(225, 227, 230);border-radius:0}}/*!@.duet-tab-button:hover*/.duet-tab-button.sc-duet-tab-group:hover{z-index:200;border-color:rgb(144, 149, 153)}/*!@.duet-theme-turva .duet-tab-button:hover*/.duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:hover{border-color:rgb(116, 116, 117)}/*!@.duet-tab-button:active*/.duet-tab-button.sc-duet-tab-group:active{opacity:0.75;transition:none}/*!@.duet-tab-button.selected*/.duet-tab-button.selected.sc-duet-tab-group{z-index:201;color:rgb(255, 255, 255);background:rgb(0, 41, 77);border-color:rgb(0, 41, 77);outline:0;box-shadow:none !important}/*!@.duet-theme-turva .duet-tab-button.selected*/.duet-theme-turva.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:rgb(255, 255, 255);background-color:rgb(23, 28, 58);border-color:rgb(23, 28, 58)}/*!@.duet-tab-button:focus*/.duet-tab-button.sc-duet-tab-group:focus{z-index:200;outline:0}/*!@:host(.user-is-tabbing) .duet-tab-button:focus*/.user-is-tabbing.sc-duet-tab-group-h .duet-tab-button.sc-duet-tab-group:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179) !important}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-tab-button:focus*/.user-is-tabbing.sc-duet-tab-group-h .duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58) !important}/*!@.duet-tab-button:first-child*/.duet-tab-button.sc-duet-tab-group:first-child{border-top-left-radius:4px;border-top-right-radius:4px}@media (min-width: 36em){/*!@.duet-tab-button:first-child*/.duet-tab-button.sc-duet-tab-group:first-child{border-top-right-radius:0;border-bottom-left-radius:4px}}/*!@.duet-tab-button:last-child*/.duet-tab-button.sc-duet-tab-group:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}@media (min-width: 36em){/*!@.duet-tab-button:last-child*/.duet-tab-button.sc-duet-tab-group:last-child{border-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}}/*!@.duet-tab-variation-plain .duet-tab-button*/.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{display:inline-block;width:auto;padding-right:0;padding-left:0;margin-left:0;border:0;border-radius:0;transition:none}/*!@.duet-tab-variation-plain .duet-tab-button + .duet-tab-button*/.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group+.duet-tab-button.sc-duet-tab-group{margin-left:36px}/*!@.duet-tab-variation-plain .duet-tab-button.selected*/.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:rgb(0, 119, 179);background:rgb(255, 255, 255);border-bottom:3px solid rgb(0, 119, 179)}/*!@.duet-theme-turva.duet-tab-variation-plain .duet-tab-button.selected*/.duet-theme-turva.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:rgb(198, 12, 48);border-bottom-color:rgb(198, 12, 48)}/*!@.duet-tab-variation-checked .duet-tab-button*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{position:relative;display:inline-block;flex-basis:0;flex-grow:1;width:200px;min-width:200px;padding:16px;border-color:rgb(207, 210, 212);border-bottom-color:rgb(0, 119, 179);border-radius:4px 4px 0 0;transition:none}/*!@.duet-theme-turva.duet-tab-variation-checked .duet-tab-button*/.duet-theme-turva.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{border-color:rgb(207, 210, 212);border-bottom-color:rgb(68, 68, 69)}@media (min-width: 36em){/*!@.duet-tab-variation-checked .duet-tab-button*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{min-width:0}}/*!@.duet-tab-variation-checked .duet-tab-button.stackable-tab*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.stackable-tab.sc-duet-tab-group{min-width:0}/*!@.duet-tab-variation-checked .duet-tab-button:first-child*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:first-child{margin-left:auto}/*!@.duet-tab-variation-checked .duet-tab-button:last-child*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:last-child{margin-right:auto}/*!@.duet-tab-variation-checked .duet-tab-button:active*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:active{opacity:1;transition:none}/*!@.duet-tab-variation-checked .duet-tab-button.selected*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:rgb(0, 119, 179);background:linear-gradient(180deg, rgb(243, 249, 252) 0%, rgb(255, 255, 255) 100%);border-color:rgb(0, 119, 179);border-bottom-color:#fff}/*!@.duet-theme-turva.duet-tab-variation-checked .duet-tab-button.selected*/.duet-theme-turva.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:rgb(23, 28, 58);background:linear-gradient(180deg, rgb(245, 245, 247) 0%, rgb(255, 255, 255) 100%);border-color:rgb(68, 68, 69);border-bottom-color:#fff}/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group{display:flex;flex-direction:row;justify-content:space-between}/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content.stackable-checked-tab-content*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.stackable-checked-tab-content.sc-duet-tab-group{flex-direction:column;height:100%}@media (min-width: 36em){/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content.stackable-checked-tab-content*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.stackable-checked-tab-content.sc-duet-tab-group{flex-direction:row}}/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .checked-tab-description.sc-duet-tab-group{display:flex;flex-direction:column;overflow:hidden;overflow-wrap:break-word}/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description.stackable-description*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .checked-tab-description.stackable-description.sc-duet-tab-group{text-align:center}@media (min-width: 36em){/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description.stackable-description*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .checked-tab-description.stackable-description.sc-duet-tab-group{text-align:left}}/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description .tab-caption*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .checked-tab-description.sc-duet-tab-group .tab-caption.sc-duet-tab-group{margin-top:4px;font-weight:400;color:rgb(101, 119, 135)}/*!@.duet-theme-turva.duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description .tab-caption*/.duet-theme-turva.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .checked-tab-description.sc-duet-tab-group .tab-caption.sc-duet-tab-group{color:rgb(68, 68, 69)}/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description .tab-caption.selected*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .checked-tab-description.sc-duet-tab-group .tab-caption.selected.sc-duet-tab-group{color:rgb(0, 119, 179)}/*!@.duet-theme-turva.duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description .tab-caption.selected*/.duet-theme-turva.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .checked-tab-description.sc-duet-tab-group .tab-caption.selected.sc-duet-tab-group{color:rgb(68, 68, 69)}/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content .stackable-checkmark*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .stackable-checkmark.sc-duet-tab-group{order:-1}@media (min-width: 36em){/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content .stackable-checkmark*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .stackable-checkmark.sc-duet-tab-group{order:1}}/*!@.duet-tab-group-content*/.duet-tab-group-content.sc-duet-tab-group{position:relative;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:rgb(0, 41, 77);text-align:left}/*!@.duet-tab-group-content.checked-group-content*/.duet-tab-group-content.checked-group-content.sc-duet-tab-group{padding:28px 0 28px 0}/*!@.duet-tab-group-content.checked-group-content::after*/.duet-tab-group-content.checked-group-content.sc-duet-tab-group::after{position:absolute;top:-2px;left:0;width:100%;height:2px;content:\" \";background-color:rgb(0, 119, 179)}/*!@.duet-theme-turva .duet-tab-group-content*/.duet-theme-turva.sc-duet-tab-group .duet-tab-group-content.sc-duet-tab-group{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-theme-turva .duet-tab-group-content.checked-group-content::after*/.duet-theme-turva.sc-duet-tab-group .duet-tab-group-content.checked-group-content.sc-duet-tab-group::after{background-color:rgb(68, 68, 69)}";
16700
+ const duetTabGroupCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-tab-group,*.sc-duet-tab-group::after,*.sc-duet-tab-group::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-tab-group-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;display:block;width:100%}/*!@.duet-tab-group-tabs*/.duet-tab-group-tabs.sc-duet-tab-group{margin-bottom:28px !important;display:block;width:100%;max-width:100%;padding-top:2px;list-style:none}/*!@.duet-tab-group-tabs.duet-m-0*/.duet-tab-group-tabs.duet-m-0.sc-duet-tab-group{margin:0 !important}/*!@.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden*/.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden.sc-duet-tab-group{display:none}@media (min-width: 36em){/*!@.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden*/.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden.sc-duet-tab-group{display:block}}/*!@.duet-tab-variation-plain .duet-tab-group-tabs*/.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{border-bottom:1px solid rgb(225, 227, 230)}/*!@.duet-theme-turva.duet-tab-variation-plain .duet-tab-group-tabs*/.duet-theme-turva.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{border-bottom-color:rgb(228, 228, 230)}/*!@.duet-tab-variation-checked .duet-tab-group-tabs*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{display:flex;gap:8px;padding-right:16px;padding-left:16px;overflow-x:scroll;-ms-overflow-style:none;scrollbar-width:none}/*!@.duet-tab-variation-checked .duet-tab-group-tabs::-webkit-scrollbar*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group::-webkit-scrollbar{display:none}@media (min-width: 36em){/*!@.duet-tab-variation-checked .duet-tab-group-tabs*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{overflow:visible}}/*!@.duet-tab-plain-scrolling .duet-tab-group-tabs*/.duet-tab-plain-scrolling.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{display:flex;overflow-x:scroll;scroll-behavior:smooth;-ms-overflow-style:none;scrollbar-width:none}/*!@.duet-tab-plain-scrolling .duet-tab-group-tabs::-webkit-scrollbar*/.duet-tab-plain-scrolling.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group::-webkit-scrollbar{display:none}@media (min-width: 36em){/*!@.duet-tab-plain-scrolling .duet-tab-group-tabs*/.duet-tab-plain-scrolling.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{display:block;overflow:auto}}@media (min-width: 36em){/*!@duet-select*/duet-select.sc-duet-tab-group{display:none !important}}/*!@.duet-tab-button*/.duet-tab-button.sc-duet-tab-group{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;padding:20px;margin-top:-2px;overflow:visible;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.1;color:rgb(0, 41, 77);text-align:left;text-decoration:none;cursor:pointer;background:rgb(255, 255, 255);border:2px solid rgb(225, 227, 230);border-radius:0;transition:150ms ease}/*!@.duet-tab-button.duet-p-0*/.duet-tab-button.duet-p-0.sc-duet-tab-group{padding:0 !important}/*!@.duet-tab-button.duet-m-0*/.duet-tab-button.duet-m-0.sc-duet-tab-group{margin:0 !important}/*!@.duet-theme-turva .duet-tab-button*/.duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58);border-color:rgb(228, 228, 230)}/*!@.duet-tab-button.duet-p-0*/.duet-tab-button.duet-p-0.sc-duet-tab-group{padding:0 !important}@media (min-width: 36em){/*!@.duet-tab-button*/.duet-tab-button.sc-duet-tab-group{display:inline-block;width:auto;margin-left:-2px;border-right:2px solid rgb(225, 227, 230);border-radius:0}}/*!@.duet-tab-button:hover*/.duet-tab-button.sc-duet-tab-group:hover{z-index:200;border-color:rgb(144, 149, 153)}/*!@.duet-theme-turva .duet-tab-button:hover*/.duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:hover{border-color:rgb(116, 116, 117)}/*!@.duet-tab-button:active*/.duet-tab-button.sc-duet-tab-group:active{opacity:0.75;transition:none}/*!@.duet-tab-button.selected*/.duet-tab-button.selected.sc-duet-tab-group{z-index:201;color:rgb(255, 255, 255);background:rgb(0, 41, 77);border-color:rgb(0, 41, 77);outline:0;box-shadow:none !important}/*!@.duet-theme-turva .duet-tab-button.selected*/.duet-theme-turva.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:rgb(255, 255, 255);background-color:rgb(23, 28, 58);border-color:rgb(23, 28, 58)}/*!@.duet-tab-button:focus*/.duet-tab-button.sc-duet-tab-group:focus{z-index:200;outline:0}/*!@:host(.user-is-tabbing) .duet-tab-button:focus*/.user-is-tabbing.sc-duet-tab-group-h .duet-tab-button.sc-duet-tab-group:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179) !important}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-tab-button:focus*/.user-is-tabbing.sc-duet-tab-group-h .duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58) !important}/*!@.duet-tab-button:first-child*/.duet-tab-button.sc-duet-tab-group:first-child{border-top-left-radius:4px;border-top-right-radius:4px}@media (min-width: 36em){/*!@.duet-tab-button:first-child*/.duet-tab-button.sc-duet-tab-group:first-child{border-top-right-radius:0;border-bottom-left-radius:4px}}/*!@.duet-tab-button:last-child*/.duet-tab-button.sc-duet-tab-group:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}@media (min-width: 36em){/*!@.duet-tab-button:last-child*/.duet-tab-button.sc-duet-tab-group:last-child{border-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}}/*!@.duet-tab-variation-plain .duet-tab-button*/.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{display:inline-block;width:auto;padding-right:0;padding-left:0;margin-left:0;border:0;border-radius:0;transition:none}/*!@.duet-tab-variation-plain .duet-tab-button + .duet-tab-button*/.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group+.duet-tab-button.sc-duet-tab-group{margin-left:36px}/*!@.duet-tab-variation-plain .duet-tab-button.selected*/.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:rgb(0, 119, 179);background:rgb(255, 255, 255);border-bottom:3px solid rgb(0, 119, 179)}/*!@.duet-theme-turva.duet-tab-variation-plain .duet-tab-button.selected*/.duet-theme-turva.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:rgb(198, 12, 48);border-bottom-color:rgb(198, 12, 48)}/*!@.duet-tab-variation-checked .duet-tab-button*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{position:relative;display:inline-block;flex-basis:0;flex-grow:1;width:200px;min-width:200px;padding:16px;border-color:rgb(207, 210, 212);border-bottom-color:rgb(0, 119, 179);border-radius:4px 4px 0 0;transition:none}/*!@.duet-theme-turva.duet-tab-variation-checked .duet-tab-button*/.duet-theme-turva.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{border-color:rgb(207, 210, 212);border-bottom-color:rgb(68, 68, 69)}@media (min-width: 36em){/*!@.duet-tab-variation-checked .duet-tab-button*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{min-width:0}}/*!@.duet-tab-variation-checked .duet-tab-button.stackable-tab*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.stackable-tab.sc-duet-tab-group{min-width:0}/*!@.duet-tab-variation-checked .duet-tab-button:first-child*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:first-child{margin-left:auto}/*!@.duet-tab-variation-checked .duet-tab-button:last-child*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:last-child{margin-right:auto}/*!@.duet-tab-variation-checked .duet-tab-button:active*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:active{opacity:1;transition:none}/*!@.duet-tab-variation-checked .duet-tab-button.selected*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:rgb(0, 119, 179);background:linear-gradient(180deg, rgb(243, 249, 252) 0%, rgb(255, 255, 255) 100%);border-color:rgb(0, 119, 179);border-bottom-color:#fff}/*!@.duet-theme-turva.duet-tab-variation-checked .duet-tab-button.selected*/.duet-theme-turva.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:rgb(23, 28, 58);background:linear-gradient(180deg, rgb(245, 245, 247) 0%, rgb(255, 255, 255) 100%);border-color:rgb(68, 68, 69);border-bottom-color:#fff}/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group{display:flex;flex-direction:row;justify-content:space-between}/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content.stackable-checked-tab-content*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.stackable-checked-tab-content.sc-duet-tab-group{flex-direction:column;height:100%}@media (min-width: 36em){/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content.stackable-checked-tab-content*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.stackable-checked-tab-content.sc-duet-tab-group{flex-direction:row}}/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .checked-tab-description.sc-duet-tab-group{display:flex;flex-direction:column;overflow:hidden;overflow-wrap:break-word}/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description.stackable-description*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .checked-tab-description.stackable-description.sc-duet-tab-group{text-align:center}@media (min-width: 36em){/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description.stackable-description*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .checked-tab-description.stackable-description.sc-duet-tab-group{text-align:left}}/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description .tab-caption*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .checked-tab-description.sc-duet-tab-group .tab-caption.sc-duet-tab-group{margin-top:4px;font-weight:400;color:rgb(101, 119, 135)}/*!@.duet-theme-turva.duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description .tab-caption*/.duet-theme-turva.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .checked-tab-description.sc-duet-tab-group .tab-caption.sc-duet-tab-group{color:rgb(68, 68, 69)}/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description .tab-caption.selected*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .checked-tab-description.sc-duet-tab-group .tab-caption.selected.sc-duet-tab-group{color:rgb(0, 119, 179)}/*!@.duet-theme-turva.duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description .tab-caption.selected*/.duet-theme-turva.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .checked-tab-description.sc-duet-tab-group .tab-caption.selected.sc-duet-tab-group{color:rgb(68, 68, 69)}/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content .stackable-checkmark*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .stackable-checkmark.sc-duet-tab-group{order:-1}@media (min-width: 36em){/*!@.duet-tab-variation-checked .duet-tab-button .checked-tab-content .stackable-checkmark*/.duet-tab-variation-checked.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group .checked-tab-content.sc-duet-tab-group .stackable-checkmark.sc-duet-tab-group{order:1}}/*!@.duet-tab-group-content*/.duet-tab-group-content.sc-duet-tab-group{position:relative;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:rgb(0, 41, 77);text-align:left}/*!@.duet-tab-group-content:focus*/.duet-tab-group-content.sc-duet-tab-group:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179) !important}/*!@.duet-theme-turva .duet-tab-group-content:focus*/.duet-theme-turva.sc-duet-tab-group .duet-tab-group-content.sc-duet-tab-group:focus{outline:0;box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58) !important}/*!@.duet-tab-group-content.checked-group-content*/.duet-tab-group-content.checked-group-content.sc-duet-tab-group{padding:28px 0 28px 0}/*!@.duet-tab-group-content.checked-group-content::after*/.duet-tab-group-content.checked-group-content.sc-duet-tab-group::after{position:absolute;top:-2px;left:0;width:100%;height:2px;content:\" \";background-color:rgb(0, 119, 179)}/*!@.duet-theme-turva .duet-tab-group-content*/.duet-theme-turva.sc-duet-tab-group .duet-tab-group-content.sc-duet-tab-group{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-theme-turva .duet-tab-group-content.checked-group-content::after*/.duet-theme-turva.sc-duet-tab-group .duet-tab-group-content.checked-group-content.sc-duet-tab-group::after{background-color:rgb(68, 68, 69)}";
16403
16701
 
16404
16702
  /**
16405
16703
  * @part ${identifier}-button - piercing selector for styling tab buttons
@@ -17060,7 +17358,7 @@ class DuetToolbar {
17060
17358
  }; }
17061
17359
  }
17062
17360
 
17063
- const duetToolbarDropdownCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-toolbar-dropdown,*.sc-duet-toolbar-dropdown::after,*.sc-duet-toolbar-dropdown::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-toolbar-dropdown-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:100%}/*!@.duet-toolbar-dropdown*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown{position:relative;height:100%}/*!@.duet-toolbar-dropdown button*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.sc-duet-toolbar-dropdown{position:relative;display:flex;gap:8px;align-items:center;justify-content:center;height:100%;padding:0 16px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:rgb(0, 77, 128);text-align:center;text-decoration:none;cursor:pointer}/*!@.duet-toolbar-dropdown button .label*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.sc-duet-toolbar-dropdown .label.sc-duet-toolbar-dropdown{display:flex;gap:0.5rem;align-items:center;justify-content:center}/*!@.duet-toolbar-dropdown button:hover*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.sc-duet-toolbar-dropdown:hover{color:rgb(0, 41, 77);background:rgb(243, 249, 252)}/*!@.duet-toolbar-dropdown button.open .caret*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.open.sc-duet-toolbar-dropdown .caret.sc-duet-toolbar-dropdown{transform:rotate(180deg)}/*!@.duet-toolbar-dropdown button.active, .duet-toolbar-dropdown button.open*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.active.sc-duet-toolbar-dropdown,.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.open.sc-duet-toolbar-dropdown{color:rgb(0, 41, 77)}/*!@.duet-toolbar-dropdown button.active::after, .duet-toolbar-dropdown button.open::after*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.active.sc-duet-toolbar-dropdown::after,.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.open.sc-duet-toolbar-dropdown::after{position:absolute;top:auto;bottom:1px;left:0;display:block;width:100%;height:1px;content:\"\";background:rgb(0, 119, 179);transition:300ms ease;transform:translateY(1px)}/*!@.duet-toolbar-dropdown .items*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown .items.sc-duet-toolbar-dropdown{position:absolute;top:102%;right:0%;left:auto;z-index:600;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:175px;padding:1rem 0;color:rgb(0, 41, 77);background:rgb(243, 249, 252);border-radius:0 0 8px 8px;box-shadow:0 6px 6px 0 rgba(0, 41, 77, 0.1)}/*!@.duet-toolbar-dropdown .items.hidden*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown .items.hidden.sc-duet-toolbar-dropdown{display:none}/*!@.duet-toolbar-dropdown.right .items*/.duet-toolbar-dropdown.right.sc-duet-toolbar-dropdown .items.sc-duet-toolbar-dropdown{right:auto;left:0%}/*!@.duet-toolbar-dropdown.duet-theme-turva button*/.duet-toolbar-dropdown.duet-theme-turva.sc-duet-toolbar-dropdown button.sc-duet-toolbar-dropdown{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-toolbar-dropdown.duet-theme-turva button:hover*/.duet-toolbar-dropdown.duet-theme-turva.sc-duet-toolbar-dropdown button.sc-duet-toolbar-dropdown:hover{color:rgb(23, 28, 58);background:rgb(245, 245, 247)}/*!@.duet-toolbar-dropdown.duet-theme-turva button.active, .duet-toolbar-dropdown.duet-theme-turva button.open*/.duet-toolbar-dropdown.duet-theme-turva.sc-duet-toolbar-dropdown button.active.sc-duet-toolbar-dropdown,.duet-toolbar-dropdown.duet-theme-turva.sc-duet-toolbar-dropdown button.open.sc-duet-toolbar-dropdown{color:rgb(23, 28, 58)}/*!@.duet-toolbar-dropdown.duet-theme-turva button.active::after, .duet-toolbar-dropdown.duet-theme-turva button.open::after*/.duet-toolbar-dropdown.duet-theme-turva.sc-duet-toolbar-dropdown button.active.sc-duet-toolbar-dropdown::after,.duet-toolbar-dropdown.duet-theme-turva.sc-duet-toolbar-dropdown button.open.sc-duet-toolbar-dropdown::after{background:rgb(198, 12, 48)}/*!@.duet-toolbar-dropdown.duet-theme-turva .items*/.duet-toolbar-dropdown.duet-theme-turva.sc-duet-toolbar-dropdown .items.sc-duet-toolbar-dropdown{background:rgb(245, 245, 247)}";
17361
+ const duetToolbarDropdownCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-toolbar-dropdown,*.sc-duet-toolbar-dropdown::after,*.sc-duet-toolbar-dropdown::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-toolbar-dropdown-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:100%}/*!@.duet-toolbar-dropdown*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown{position:relative;height:100%}/*!@.duet-toolbar-dropdown button*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.sc-duet-toolbar-dropdown{position:relative;display:flex;gap:8px;align-items:center;justify-content:center;height:100%;padding:0 16px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:rgb(0, 77, 128);text-align:center;text-decoration:none;cursor:pointer}/*!@.duet-toolbar-dropdown button .label*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.sc-duet-toolbar-dropdown .label.sc-duet-toolbar-dropdown{display:flex;gap:0.5rem;align-items:center;justify-content:center}/*!@.duet-toolbar-dropdown button:hover*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.sc-duet-toolbar-dropdown:hover{color:rgb(0, 41, 77);background:rgb(243, 249, 252)}/*!@.duet-toolbar-dropdown button:focus*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.sc-duet-toolbar-dropdown:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-toolbar-dropdown button.open .caret*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.open.sc-duet-toolbar-dropdown .caret.sc-duet-toolbar-dropdown{transform:rotate(180deg)}/*!@.duet-toolbar-dropdown button.active, .duet-toolbar-dropdown button.open*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.active.sc-duet-toolbar-dropdown,.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.open.sc-duet-toolbar-dropdown{color:rgb(0, 41, 77)}/*!@.duet-toolbar-dropdown button.active::after, .duet-toolbar-dropdown button.open::after*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.active.sc-duet-toolbar-dropdown::after,.duet-toolbar-dropdown.sc-duet-toolbar-dropdown button.open.sc-duet-toolbar-dropdown::after{position:absolute;top:auto;bottom:1px;left:0;display:block;width:100%;height:1px;content:\"\";background:rgb(0, 119, 179);transition:300ms ease;transform:translateY(1px)}/*!@.duet-toolbar-dropdown .items*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown .items.sc-duet-toolbar-dropdown{position:absolute;top:102%;right:0%;left:auto;z-index:600;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:175px;padding:1rem 0;color:rgb(0, 41, 77);background:rgb(243, 249, 252);border-radius:0 0 8px 8px;box-shadow:0 6px 6px 0 rgba(0, 41, 77, 0.1)}/*!@.duet-toolbar-dropdown .items.hidden*/.duet-toolbar-dropdown.sc-duet-toolbar-dropdown .items.hidden.sc-duet-toolbar-dropdown{display:none}/*!@.duet-toolbar-dropdown.right .items*/.duet-toolbar-dropdown.right.sc-duet-toolbar-dropdown .items.sc-duet-toolbar-dropdown{right:auto;left:0%}/*!@.duet-toolbar-dropdown.duet-theme-turva button*/.duet-toolbar-dropdown.duet-theme-turva.sc-duet-toolbar-dropdown button.sc-duet-toolbar-dropdown{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-toolbar-dropdown.duet-theme-turva button:hover*/.duet-toolbar-dropdown.duet-theme-turva.sc-duet-toolbar-dropdown button.sc-duet-toolbar-dropdown:hover{color:rgb(23, 28, 58);background:rgb(245, 245, 247)}/*!@.duet-toolbar-dropdown.duet-theme-turva button:focus*/.duet-toolbar-dropdown.duet-theme-turva.sc-duet-toolbar-dropdown button.sc-duet-toolbar-dropdown:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-toolbar-dropdown.duet-theme-turva button.active, .duet-toolbar-dropdown.duet-theme-turva button.open*/.duet-toolbar-dropdown.duet-theme-turva.sc-duet-toolbar-dropdown button.active.sc-duet-toolbar-dropdown,.duet-toolbar-dropdown.duet-theme-turva.sc-duet-toolbar-dropdown button.open.sc-duet-toolbar-dropdown{color:rgb(23, 28, 58)}/*!@.duet-toolbar-dropdown.duet-theme-turva button.active::after, .duet-toolbar-dropdown.duet-theme-turva button.open::after*/.duet-toolbar-dropdown.duet-theme-turva.sc-duet-toolbar-dropdown button.active.sc-duet-toolbar-dropdown::after,.duet-toolbar-dropdown.duet-theme-turva.sc-duet-toolbar-dropdown button.open.sc-duet-toolbar-dropdown::after{background:rgb(198, 12, 48)}/*!@.duet-toolbar-dropdown.duet-theme-turva .items*/.duet-toolbar-dropdown.duet-theme-turva.sc-duet-toolbar-dropdown .items.sc-duet-toolbar-dropdown{background:rgb(245, 245, 247)}";
17064
17362
 
17065
17363
  class DuetToolbarDropdown {
17066
17364
  constructor(hostRef) {
@@ -17085,6 +17383,18 @@ class DuetToolbarDropdown {
17085
17383
  componentWillLoad() {
17086
17384
  inheritGlobalTheme(this);
17087
17385
  }
17386
+ handleEscape(e) {
17387
+ if (isEscapeKey(e)) {
17388
+ this.open = false;
17389
+ this.setFocus();
17390
+ }
17391
+ }
17392
+ /**
17393
+ * Sets focus. Use this method instead of the global focus().
17394
+ */
17395
+ async setFocus(options) {
17396
+ this.button.focus(options);
17397
+ }
17088
17398
  /**
17089
17399
  * render() function
17090
17400
  * Always the last one in the class.
@@ -17098,10 +17408,10 @@ class DuetToolbarDropdown {
17098
17408
  "duet-toolbar-dropdown": true,
17099
17409
  "duet-theme-turva": this.theme === "turva",
17100
17410
  [itemsAlign]: true,
17101
- } }, hAsync("button", { "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
17411
+ } }, hAsync("button", { ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-current": this.active ? "true" : "false", id: "button", type: "button", class: {
17102
17412
  active: this.active,
17103
17413
  open: this.open,
17104
- }, onClick: this.onClick }, this.icon && (hAsync("duet-icon", { theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), hAsync("div", { class: "label" }, hAsync("slot", { name: "label" }), hAsync("duet-icon", { class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
17414
+ }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (hAsync("duet-icon", { theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), hAsync("div", { class: "label" }, hAsync("slot", { name: "label" }), hAsync("duet-icon", { class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), hAsync("div", { tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
17105
17415
  items: true,
17106
17416
  hidden: !this.open,
17107
17417
  } }, hAsync("slot", null)))));
@@ -17115,7 +17425,8 @@ class DuetToolbarDropdown {
17115
17425
  "theme": [1025],
17116
17426
  "active": [1540],
17117
17427
  "open": [1540],
17118
- "icon": [1537]
17428
+ "icon": [1537],
17429
+ "setFocus": [64]
17119
17430
  },
17120
17431
  "$listeners$": [[8, "click", "handleFocus"]],
17121
17432
  "$lazyBundleId$": "-",
@@ -17123,7 +17434,7 @@ class DuetToolbarDropdown {
17123
17434
  }; }
17124
17435
  }
17125
17436
 
17126
- const duetToolbarDropdownLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-toolbar-dropdown-link,*.sc-duet-toolbar-dropdown-link::after,*.sc-duet-toolbar-dropdown-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-toolbar-dropdown-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%}/*!@.duet-toolbar-dropdown-link*/.duet-toolbar-dropdown-link.sc-duet-toolbar-dropdown-link{display:flex;flex-direction:row;gap:0.5rem;align-items:center;justify-content:flex-start;height:100%;padding:0.5rem 20px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:rgb(0, 41, 77);text-align:center;text-decoration:none}/*!@.duet-toolbar-dropdown-link.duet-theme-turva*/.duet-toolbar-dropdown-link.duet-theme-turva.sc-duet-toolbar-dropdown-link{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-toolbar-dropdown-link.active, .duet-toolbar-dropdown-link.active:hover*/.duet-toolbar-dropdown-link.active.sc-duet-toolbar-dropdown-link,.duet-toolbar-dropdown-link.active.sc-duet-toolbar-dropdown-link:hover{color:rgb(255, 255, 255);background:rgb(0, 119, 179)}/*!@.duet-toolbar-dropdown-link.active.duet-theme-turva, .duet-toolbar-dropdown-link.active:hover.duet-theme-turva*/.duet-toolbar-dropdown-link.active.duet-theme-turva.sc-duet-toolbar-dropdown-link,.duet-toolbar-dropdown-link.active.sc-duet-toolbar-dropdown-link:hover.duet-theme-turva{color:rgb(255, 255, 255);background:rgb(198, 12, 48)}/*!@.duet-toolbar-dropdown-link:hover*/.duet-toolbar-dropdown-link.sc-duet-toolbar-dropdown-link:hover{background:rgb(230, 242, 248)}/*!@.duet-toolbar-dropdown-link:hover.duet-theme-turva*/.duet-toolbar-dropdown-link.sc-duet-toolbar-dropdown-link:hover.duet-theme-turva{background:rgb(228, 228, 230)}";
17437
+ const duetToolbarDropdownLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-toolbar-dropdown-link,*.sc-duet-toolbar-dropdown-link::after,*.sc-duet-toolbar-dropdown-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-toolbar-dropdown-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%}/*!@.duet-toolbar-dropdown-link*/.duet-toolbar-dropdown-link.sc-duet-toolbar-dropdown-link{display:flex;flex-direction:row;gap:0.5rem;align-items:center;justify-content:flex-start;height:100%;padding:0.5rem 20px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:rgb(0, 41, 77);text-align:center;text-decoration:none}/*!@.duet-toolbar-dropdown-link.duet-theme-turva*/.duet-toolbar-dropdown-link.duet-theme-turva.sc-duet-toolbar-dropdown-link{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-toolbar-dropdown-link:focus*/.duet-toolbar-dropdown-link.sc-duet-toolbar-dropdown-link:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-toolbar-dropdown-link:focus.duet-theme-turva*/.duet-toolbar-dropdown-link.sc-duet-toolbar-dropdown-link:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-toolbar-dropdown-link.active, .duet-toolbar-dropdown-link.active:hover*/.duet-toolbar-dropdown-link.active.sc-duet-toolbar-dropdown-link,.duet-toolbar-dropdown-link.active.sc-duet-toolbar-dropdown-link:hover{color:rgb(255, 255, 255);background:rgb(0, 119, 179)}/*!@.duet-toolbar-dropdown-link.active.duet-theme-turva, .duet-toolbar-dropdown-link.active:hover.duet-theme-turva*/.duet-toolbar-dropdown-link.active.duet-theme-turva.sc-duet-toolbar-dropdown-link,.duet-toolbar-dropdown-link.active.sc-duet-toolbar-dropdown-link:hover.duet-theme-turva{color:rgb(255, 255, 255);background:rgb(198, 12, 48)}/*!@.duet-toolbar-dropdown-link:hover*/.duet-toolbar-dropdown-link.sc-duet-toolbar-dropdown-link:hover{background:rgb(230, 242, 248)}/*!@.duet-toolbar-dropdown-link:hover.duet-theme-turva*/.duet-toolbar-dropdown-link.sc-duet-toolbar-dropdown-link:hover.duet-theme-turva{background:rgb(228, 228, 230)}";
17127
17438
 
17128
17439
  class DuetToolbarDropdownLink {
17129
17440
  constructor(hostRef) {
@@ -17141,6 +17452,13 @@ class DuetToolbarDropdownLink {
17141
17452
  componentWillLoad() {
17142
17453
  inheritGlobalTheme(this);
17143
17454
  }
17455
+ handleEscape(e) {
17456
+ if (isEscapeKey(e)) {
17457
+ const dropdown = this.element.closest("duet-toolbar-dropdown");
17458
+ dropdown.open = false;
17459
+ dropdown.setFocus();
17460
+ }
17461
+ }
17144
17462
  /**
17145
17463
  * render() function
17146
17464
  * Always the last one in the class.
@@ -17150,7 +17468,7 @@ class DuetToolbarDropdownLink {
17150
17468
  "duet-toolbar-dropdown-link": true,
17151
17469
  "duet-theme-turva": this.theme === "turva",
17152
17470
  active: this.active,
17153
- }, href: this.href, lang: this.targetLanguage, hreflang: this.targetLanguage, role: "menuitem", "aria-label": this.accessibleLabel }, this.icon && hAsync("duet-icon", { name: this.icon, size: "x-small", margin: "none" }), hAsync("slot", null))));
17471
+ }, href: this.href, lang: this.targetLanguage, hreflang: this.targetLanguage, role: "menuitem", "aria-label": this.accessibleLabel, "aria-current": this.active ? "true" : "false", onKeyUp: e => this.handleEscape(e) }, this.icon && hAsync("duet-icon", { name: this.icon, size: "x-small", margin: "none" }), hAsync("slot", null))));
17154
17472
  }
17155
17473
  get element() { return getElement(this); }
17156
17474
  static get style() { return duetToolbarDropdownLinkCss; }
@@ -17171,7 +17489,7 @@ class DuetToolbarDropdownLink {
17171
17489
  }; }
17172
17490
  }
17173
17491
 
17174
- const duetToolbarLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-toolbar-link,*.sc-duet-toolbar-link::after,*.sc-duet-toolbar-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-toolbar-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:100%}/*!@.duet-toolbar-link*/.duet-toolbar-link.sc-duet-toolbar-link{position:relative;display:flex;gap:8px;align-items:center;justify-content:center;height:100%;padding:0 16px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:rgb(0, 77, 128);text-align:center;text-decoration:none;white-space:nowrap}/*!@.duet-toolbar-link.duet-theme-turva*/.duet-toolbar-link.duet-theme-turva.sc-duet-toolbar-link{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-toolbar-link:hover*/.duet-toolbar-link.sc-duet-toolbar-link:hover{color:rgb(0, 41, 77);background:rgb(243, 249, 252)}/*!@.duet-toolbar-link:hover.duet-theme-turva*/.duet-toolbar-link.sc-duet-toolbar-link:hover.duet-theme-turva{color:rgb(23, 28, 58);background:rgb(245, 245, 247)}/*!@.duet-toolbar-link.active*/.duet-toolbar-link.active.sc-duet-toolbar-link{color:rgb(0, 41, 77)}/*!@.duet-toolbar-link.active::after*/.duet-toolbar-link.active.sc-duet-toolbar-link::after{position:absolute;top:auto;bottom:1px;left:0;display:block;width:100%;height:1px;content:\"\";background:rgb(0, 119, 179);transition:300ms ease;transform:translateY(1px)}/*!@.duet-toolbar-link.active::after.duet-theme-turva*/.duet-toolbar-link.active.sc-duet-toolbar-link::after.duet-theme-turva{background:rgb(198, 12, 48)}/*!@.duet-toolbar-link.active.duet-theme-turva*/.duet-toolbar-link.active.duet-theme-turva.sc-duet-toolbar-link{color:rgb(23, 28, 58)}/*!@.duet-toolbar-link.active.duet-theme-turva::after*/.duet-toolbar-link.active.duet-theme-turva.sc-duet-toolbar-link::after{background:rgb(198, 12, 48)}";
17492
+ const duetToolbarLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-toolbar-link,*.sc-duet-toolbar-link::after,*.sc-duet-toolbar-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-toolbar-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:100%}/*!@.duet-toolbar-link*/.duet-toolbar-link.sc-duet-toolbar-link{position:relative;display:flex;gap:8px;align-items:center;justify-content:center;height:100%;padding:0 16px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:rgb(0, 77, 128);text-align:center;text-decoration:none;white-space:nowrap}/*!@.duet-toolbar-link.duet-theme-turva*/.duet-toolbar-link.duet-theme-turva.sc-duet-toolbar-link{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}/*!@.duet-toolbar-link:hover*/.duet-toolbar-link.sc-duet-toolbar-link:hover{color:rgb(0, 41, 77);background:rgb(243, 249, 252)}/*!@.duet-toolbar-link:hover.duet-theme-turva*/.duet-toolbar-link.sc-duet-toolbar-link:hover.duet-theme-turva{color:rgb(23, 28, 58);background:rgb(245, 245, 247)}/*!@.duet-toolbar-link:focus*/.duet-toolbar-link.sc-duet-toolbar-link:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}/*!@.duet-toolbar-link:focus.duet-theme-turva*/.duet-toolbar-link.sc-duet-toolbar-link:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}/*!@.duet-toolbar-link.active*/.duet-toolbar-link.active.sc-duet-toolbar-link{color:rgb(0, 41, 77)}/*!@.duet-toolbar-link.active::after*/.duet-toolbar-link.active.sc-duet-toolbar-link::after{position:absolute;top:auto;bottom:1px;left:0;display:block;width:100%;height:1px;content:\"\";background:rgb(0, 119, 179);transition:300ms ease;transform:translateY(1px)}/*!@.duet-toolbar-link.active::after.duet-theme-turva*/.duet-toolbar-link.active.sc-duet-toolbar-link::after.duet-theme-turva{background:rgb(198, 12, 48)}/*!@.duet-toolbar-link.active.duet-theme-turva*/.duet-toolbar-link.active.duet-theme-turva.sc-duet-toolbar-link{color:rgb(23, 28, 58)}/*!@.duet-toolbar-link.active.duet-theme-turva::after*/.duet-toolbar-link.active.duet-theme-turva.sc-duet-toolbar-link::after{background:rgb(198, 12, 48)}";
17175
17493
 
17176
17494
  class DuetToolbarLink {
17177
17495
  constructor(hostRef) {
@@ -17192,7 +17510,7 @@ class DuetToolbarLink {
17192
17510
  * Always the last one in the class.
17193
17511
  */
17194
17512
  render() {
17195
- return (hAsync(Host, null, hAsync("a", { class: { "duet-toolbar-link": true, "duet-theme-turva": this.theme === "turva", active: this.active }, href: this.href }, this.icon && (hAsync("duet-icon", { size: "x-small", name: this.icon, margin: "none", theme: this.theme, color: "currentColor" })), hAsync("slot", null))));
17513
+ return (hAsync(Host, null, hAsync("a", { class: { "duet-toolbar-link": true, "duet-theme-turva": this.theme === "turva", active: this.active }, href: this.href, "aria-current": this.active ? "true" : "false" }, this.icon && (hAsync("duet-icon", { size: "x-small", name: this.icon, margin: "none", theme: this.theme, color: "currentColor" })), hAsync("slot", null))));
17196
17514
  }
17197
17515
  get element() { return getElement(this); }
17198
17516
  static get style() { return duetToolbarLinkCss; }
@@ -17328,6 +17646,9 @@ class DuetTooltip {
17328
17646
  componentWillLoad() {
17329
17647
  inheritGlobalTheme(this);
17330
17648
  }
17649
+ componentDidLoad() {
17650
+ this.handleHorizontalVisibility();
17651
+ }
17331
17652
  componentDidUpdate() {
17332
17653
  switch (this.focusTarget) {
17333
17654
  case "tooltip":