@duetds/components 6.8.3 → 6.8.5

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 (561) hide show
  1. package/hydrate/index.js +153 -28
  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 +1 -1
  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 +1 -1
  31. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +1 -1
  32. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-menu-bar.cjs.entry.js +1 -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 +1 -1
  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 +1 -1
  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 +8 -1
  49. package/lib/cjs/duet-slideout-link.cjs.entry.js +1 -1
  50. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +1 -1
  51. package/lib/cjs/duet-slideout-panel.cjs.entry.js +9 -2
  52. package/lib/cjs/duet-slideout.cjs.entry.js +9 -2
  53. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  54. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +1 -1
  55. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +1 -1
  56. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +1 -1
  57. package/lib/cjs/duet-submenu-bar.cjs.entry.js +1 -1
  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 +1 -1
  61. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +1 -1
  62. package/lib/cjs/duet-toolbar-link.cjs.entry.js +1 -1
  63. package/lib/cjs/duet-toolbar.cjs.entry.js +1 -1
  64. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -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-2ff2eab6.js → focus-utils-37a486af.js} +1 -1
  70. package/lib/cjs/{index-6d5f06d0.js → index-6f5a3a97.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 +6 -1
  80. package/lib/collection/components/duet-collapsible/duet-collapsible.js +3 -3
  81. package/lib/collection/components/duet-combobox/duet-combobox.js +3 -3
  82. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.js +1 -1
  83. package/lib/collection/components/duet-date-picker/duet-date-picker.js +23 -9
  84. package/lib/collection/components/duet-divider/duet-divider.js +1 -1
  85. package/lib/collection/components/duet-editable-table/duet-editable-table.js +5 -5
  86. package/lib/collection/components/duet-empty-state/duet-empty-state.js +1 -1
  87. package/lib/collection/components/duet-footer/duet-footer.js +26 -12
  88. package/lib/collection/components/duet-grid/duet-grid.js +3 -3
  89. package/lib/collection/components/duet-header/duet-header.js +15 -15
  90. package/lib/collection/components/duet-heading/duet-heading.js +1 -1
  91. package/lib/collection/components/duet-hero/duet-hero.js +5 -5
  92. package/lib/collection/components/duet-icon/duet-icon.js +1 -1
  93. package/lib/collection/components/duet-input/duet-input.js +8 -8
  94. package/lib/collection/components/duet-label/duet-label.js +2 -2
  95. package/lib/collection/components/duet-layout/duet-layout.js +1 -1
  96. package/lib/collection/components/duet-link/duet-link.js +20 -3
  97. package/lib/collection/components/duet-list/duet-list.js +4 -4
  98. package/lib/collection/components/duet-logo/duet-logo.js +1 -1
  99. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +1 -1
  100. package/lib/collection/components/duet-modal/duet-modal.js +19 -7
  101. package/lib/collection/components/duet-multiselect/duet-multiselect.js +5 -5
  102. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +1 -1
  103. package/lib/collection/components/duet-number-input/duet-number-input.js +4 -4
  104. package/lib/collection/components/duet-pagination/duet-pagination.js +2 -2
  105. package/lib/collection/components/duet-paragraph/duet-paragraph.js +3 -3
  106. package/lib/collection/components/duet-radio/duet-radio.js +3 -3
  107. package/lib/collection/components/duet-range-slider/duet-range-slider.js +2 -2
  108. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +6 -4
  109. package/lib/collection/components/duet-select/duet-select.js +5 -5
  110. package/lib/collection/components/duet-slideout/duet-slideout.js +14 -2
  111. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +13 -1
  112. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +10 -2
  113. package/lib/collection/components/duet-spacer/duet-spacer.js +2 -2
  114. package/lib/collection/components/duet-spinner/duet-spinner.js +1 -1
  115. package/lib/collection/components/duet-step/duet-step.js +2 -2
  116. package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
  117. package/lib/collection/components/duet-tab-group/duet-tab-group.js +4 -4
  118. package/lib/collection/components/duet-textarea/duet-textarea.js +4 -4
  119. package/lib/collection/components/duet-toggle/duet-toggle.js +1 -1
  120. package/lib/collection/components/duet-tooltip/duet-tooltip.js +1 -1
  121. package/lib/collection/components/duet-upload/duet-upload.js +13 -13
  122. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  123. package/lib/dist-custom-elements/duet-alert.js +1 -1
  124. package/lib/dist-custom-elements/duet-badge.js +1 -1
  125. package/lib/dist-custom-elements/duet-breadcrumb.js +2 -2
  126. package/lib/dist-custom-elements/duet-breadcrumbs.js +2 -2
  127. package/lib/dist-custom-elements/duet-button.js +1 -1
  128. package/lib/dist-custom-elements/duet-caption.js +1 -1
  129. package/lib/dist-custom-elements/duet-card.js +3 -3
  130. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  131. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  132. package/lib/dist-custom-elements/duet-choice-group.js +7 -7
  133. package/lib/dist-custom-elements/duet-choice.js +28 -9
  134. package/lib/dist-custom-elements/duet-collapsible.js +2 -2
  135. package/lib/dist-custom-elements/duet-combobox.js +2 -2
  136. package/lib/dist-custom-elements/duet-contact-card.js +8 -8
  137. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  138. package/lib/dist-custom-elements/duet-date-picker.js +26 -14
  139. package/lib/dist-custom-elements/duet-divider.js +1 -1
  140. package/lib/dist-custom-elements/duet-editable-table.js +1 -1
  141. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  142. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  143. package/lib/dist-custom-elements/duet-footer.js +20 -8
  144. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  145. package/lib/dist-custom-elements/duet-grid.js +1 -1
  146. package/lib/dist-custom-elements/duet-header.js +8 -8
  147. package/lib/dist-custom-elements/duet-heading.js +1 -1
  148. package/lib/dist-custom-elements/duet-hero.js +9 -9
  149. package/lib/dist-custom-elements/duet-icon.js +1 -1
  150. package/lib/dist-custom-elements/duet-input.js +1 -1
  151. package/lib/dist-custom-elements/duet-label.js +1 -1
  152. package/lib/dist-custom-elements/duet-layout.js +1 -1
  153. package/lib/dist-custom-elements/duet-link.js +1 -1
  154. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  155. package/lib/dist-custom-elements/duet-list.js +1 -1
  156. package/lib/dist-custom-elements/duet-logo.js +1 -1
  157. package/lib/dist-custom-elements/duet-menu-bar-button.js +2 -2
  158. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +2 -2
  159. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +2 -2
  160. package/lib/dist-custom-elements/duet-menu-bar-link.js +2 -2
  161. package/lib/dist-custom-elements/duet-menu-bar.js +2 -2
  162. package/lib/dist-custom-elements/duet-modal.js +20 -10
  163. package/lib/dist-custom-elements/duet-multiselect.js +8 -8
  164. package/lib/dist-custom-elements/duet-nav.js +1 -1
  165. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  166. package/lib/dist-custom-elements/duet-notification.js +2 -2
  167. package/lib/dist-custom-elements/duet-number-input.js +9 -9
  168. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  169. package/lib/dist-custom-elements/duet-pagination.js +7 -7
  170. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  171. package/lib/dist-custom-elements/duet-progress.js +1 -1
  172. package/lib/dist-custom-elements/duet-radio-group.js +6 -6
  173. package/lib/dist-custom-elements/duet-radio.js +1 -1
  174. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  175. package/lib/dist-custom-elements/duet-range-stepper.js +9 -7
  176. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  177. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  178. package/lib/dist-custom-elements/duet-select.js +1 -1
  179. package/lib/dist-custom-elements/duet-slideout-lang.js +12 -4
  180. package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
  181. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  182. package/lib/dist-custom-elements/duet-slideout-panel.js +11 -3
  183. package/lib/dist-custom-elements/duet-slideout.js +11 -3
  184. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  185. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  186. package/lib/dist-custom-elements/duet-step.js +4 -4
  187. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  188. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +2 -2
  189. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +2 -2
  190. package/lib/dist-custom-elements/duet-submenu-bar-link.js +2 -2
  191. package/lib/dist-custom-elements/duet-submenu-bar.js +2 -2
  192. package/lib/dist-custom-elements/duet-tab-group.js +9 -9
  193. package/lib/dist-custom-elements/duet-tab.js +1 -1
  194. package/lib/dist-custom-elements/duet-table.js +1 -1
  195. package/lib/dist-custom-elements/duet-textarea.js +8 -8
  196. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  197. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -2
  198. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +2 -2
  199. package/lib/dist-custom-elements/duet-toolbar-link.js +2 -2
  200. package/lib/dist-custom-elements/duet-toolbar.js +1 -1
  201. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  202. package/lib/dist-custom-elements/duet-tray.js +3 -3
  203. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  204. package/lib/dist-custom-elements/duet-upload.js +18 -18
  205. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  206. package/lib/dist-custom-elements/index.js +1 -1
  207. package/lib/dist-custom-elements/{p-5ab6461c.js → p-02e545b7.js} +1 -1
  208. package/lib/dist-custom-elements/{p-89dbfa07.js → p-05ca18f5.js} +1 -1
  209. package/lib/dist-custom-elements/{p-a0efab88.js → p-0696d787.js} +15 -7
  210. package/lib/dist-custom-elements/{p-9b6166b7.js → p-0ccf72fa.js} +1 -1
  211. package/lib/dist-custom-elements/{p-f7a12024.js → p-14693ab8.js} +8 -8
  212. package/lib/dist-custom-elements/{p-53076cdd.js → p-28adb7fb.js} +2 -2
  213. package/lib/dist-custom-elements/{p-10030e7c.js → p-29249230.js} +1 -1
  214. package/lib/dist-custom-elements/{p-26afb575.js → p-2e134a85.js} +1 -1
  215. package/lib/dist-custom-elements/{p-9cfa785f.js → p-2fdc173c.js} +15 -5
  216. package/lib/dist-custom-elements/{p-c86c6df0.js → p-313e06d8.js} +2 -2
  217. package/lib/dist-custom-elements/{p-1cb77270.js → p-3c33adbf.js} +2 -2
  218. package/lib/dist-custom-elements/{p-87b5525b.js → p-4ebb8421.js} +20 -6
  219. package/lib/dist-custom-elements/{p-cb7de9dd.js → p-5c82d569.js} +1 -1
  220. package/lib/dist-custom-elements/{p-d5e06462.js → p-68cadecc.js} +1 -1
  221. package/lib/dist-custom-elements/{p-2e97d3cf.js → p-6b2ce804.js} +1 -1
  222. package/lib/dist-custom-elements/{p-05e73b74.js → p-702e2d96.js} +1 -1
  223. package/lib/dist-custom-elements/{p-4ad31816.js → p-7f29b745.js} +1 -1
  224. package/lib/dist-custom-elements/{p-9f1bb199.js → p-7f5d00ac.js} +1 -1
  225. package/lib/dist-custom-elements/{p-dd03af24.js → p-8c7ba159.js} +1 -1
  226. package/lib/dist-custom-elements/{p-8aa1b007.js → p-9487cba1.js} +1 -1
  227. package/lib/dist-custom-elements/{p-7a6f9236.js → p-959d322b.js} +1 -1
  228. package/lib/dist-custom-elements/{p-9556589f.js → p-a99b2301.js} +1 -1
  229. package/lib/dist-custom-elements/{p-4a7f34e4.js → p-aae0cdb6.js} +2 -2
  230. package/lib/dist-custom-elements/{p-db69ae9d.js → p-adfa75f8.js} +7 -7
  231. package/lib/dist-custom-elements/{p-13d9d4b0.js → p-b7ca2d79.js} +1 -1
  232. package/lib/dist-custom-elements/{p-9bf072bd.js → p-bf14f0f8.js} +2 -2
  233. package/lib/dist-custom-elements/{p-57aace09.js → p-c714f33d.js} +3 -3
  234. package/lib/dist-custom-elements/{p-ce7b7450.js → p-cd14282a.js} +1 -1
  235. package/lib/dist-custom-elements/{p-84c970d9.js → p-f8879c12.js} +1 -1
  236. package/lib/dist-custom-elements/{p-8d8f500f.js → p-fb2bc18b.js} +6 -6
  237. package/lib/dist-custom-elements/{p-6a8cdb7b.js → p-fb62bc38.js} +1 -1
  238. package/lib/dist-custom-elements/{p-681c9a42.js → p-fd472f42.js} +21 -7
  239. package/lib/duet/duet.esm.js +1 -1
  240. package/lib/duet/duet.js +1 -1
  241. package/lib/duet/{p-6c05e879.js → p-076452be.js} +1 -1
  242. package/lib/duet/{p-eb92e362.entry.js → p-0a5ee4c0.entry.js} +1 -1
  243. package/lib/duet/p-0de5b288.system.entry.js +4 -0
  244. package/lib/duet/{p-aabd9905.system.entry.js → p-0e045be0.system.entry.js} +1 -1
  245. package/lib/duet/{p-2d0a6607.system.entry.js → p-0e81a136.system.entry.js} +1 -1
  246. package/lib/duet/{p-d9a1ce3e.system.entry.js → p-0f79b452.system.entry.js} +1 -1
  247. package/lib/duet/{p-1ea20994.entry.js → p-126b0216.entry.js} +1 -1
  248. package/lib/duet/{p-4d25be5d.entry.js → p-12bb63b7.entry.js} +1 -1
  249. package/lib/duet/p-13a45164.entry.js +4 -0
  250. package/lib/duet/{p-70425e80.system.entry.js → p-15a2c27e.system.entry.js} +1 -1
  251. package/lib/duet/p-15c4eceb.entry.js +4 -0
  252. package/lib/duet/{p-abdd047f.system.entry.js → p-1b362e7c.system.entry.js} +1 -1
  253. package/lib/duet/{p-fd7a5a08.entry.js → p-1bd49c6c.entry.js} +1 -1
  254. package/lib/duet/{p-fd7de93a.entry.js → p-1dab1d9c.entry.js} +1 -1
  255. package/lib/duet/{p-d03517b4.system.entry.js → p-23e9caeb.system.entry.js} +1 -1
  256. package/lib/duet/p-24d3c4a8.entry.js +4 -0
  257. package/lib/duet/{p-dd6b8fec.system.entry.js → p-24e34082.system.entry.js} +1 -1
  258. package/lib/duet/{p-92d37e55.system.js → p-255ef2f1.system.js} +1 -1
  259. package/lib/duet/{p-a8d67797.entry.js → p-275d65d5.entry.js} +1 -1
  260. package/lib/duet/{p-def345e8.system.entry.js → p-2b3edac6.system.entry.js} +1 -1
  261. package/lib/duet/{p-3ffbaf35.system.entry.js → p-2d400724.system.entry.js} +1 -1
  262. package/lib/duet/p-2e49efe9.entry.js +4 -0
  263. package/lib/duet/{p-dbc13c36.system.js → p-2f72d12a.system.js} +1 -1
  264. package/lib/duet/{p-c88e1b86.system.entry.js → p-31bc70cf.system.entry.js} +2 -2
  265. package/lib/duet/{p-2c19f162.entry.js → p-320e55ab.entry.js} +1 -1
  266. package/lib/duet/{p-76fdc86f.system.entry.js → p-34b64696.system.entry.js} +1 -1
  267. package/lib/duet/{p-ecb55af2.system.entry.js → p-355552d3.system.entry.js} +1 -1
  268. package/lib/duet/{p-614c7065.system.entry.js → p-3aec0017.system.entry.js} +1 -1
  269. package/lib/duet/p-3b9604e9.system.entry.js +4 -0
  270. package/lib/duet/{p-85961465.entry.js → p-3d915826.entry.js} +1 -1
  271. package/lib/duet/p-3d9e1c4b.entry.js +4 -0
  272. package/lib/duet/{p-2b3c2e41.system.entry.js → p-3f2e2726.system.entry.js} +1 -1
  273. package/lib/duet/p-40a2b2fa.system.js +4 -0
  274. package/lib/duet/{p-4af19474.entry.js → p-42d2ad4e.entry.js} +1 -1
  275. package/lib/duet/{p-cc332f12.entry.js → p-45899b5e.entry.js} +1 -1
  276. package/lib/duet/{p-07f8de09.system.entry.js → p-4694e76b.system.entry.js} +1 -1
  277. package/lib/duet/{p-ca6f6878.entry.js → p-477f553f.entry.js} +1 -1
  278. package/lib/duet/p-47f8be1e.system.entry.js +4 -0
  279. package/lib/duet/{p-01833853.system.entry.js → p-4b9e5447.system.entry.js} +1 -1
  280. package/lib/duet/{p-53de8491.entry.js → p-4f973b10.entry.js} +1 -1
  281. package/lib/duet/{p-15e1c955.entry.js → p-576c31f3.entry.js} +1 -1
  282. package/lib/duet/{p-3aeb487a.entry.js → p-576e7135.entry.js} +1 -1
  283. package/lib/duet/{p-b3c6d973.system.entry.js → p-57846bb5.system.entry.js} +1 -1
  284. package/lib/duet/{p-39c79c00.system.entry.js → p-5956cfad.system.entry.js} +1 -1
  285. package/lib/duet/{p-d4e3b832.system.entry.js → p-5b36c6d6.system.entry.js} +1 -1
  286. package/lib/duet/{p-efdc7c2e.entry.js → p-5bfac643.entry.js} +1 -1
  287. package/lib/duet/{p-a6653cdc.system.entry.js → p-5eb41b56.system.entry.js} +1 -1
  288. package/lib/duet/{p-0f2c807b.entry.js → p-62228568.entry.js} +1 -1
  289. package/lib/duet/{p-3f01f964.system.entry.js → p-63ecf24a.system.entry.js} +1 -1
  290. package/lib/duet/{p-7ff34de9.entry.js → p-6446cfa5.entry.js} +1 -1
  291. package/lib/duet/{p-35afcb27.entry.js → p-6473dc0f.entry.js} +1 -1
  292. package/lib/duet/{p-9aebf3f7.entry.js → p-682ccc00.entry.js} +1 -1
  293. package/lib/duet/p-69b85da0.system.entry.js +4 -0
  294. package/lib/duet/{p-d94e5b57.system.entry.js → p-6b52b6f4.system.entry.js} +1 -1
  295. package/lib/duet/{p-75492e02.system.entry.js → p-6c4c2102.system.entry.js} +1 -1
  296. package/lib/duet/{p-1bb2106c.system.entry.js → p-6d7c1dcc.system.entry.js} +1 -1
  297. package/lib/duet/p-6f1da07b.entry.js +4 -0
  298. package/lib/duet/p-70aedb94.system.entry.js +4 -0
  299. package/lib/duet/{p-886c35c2.entry.js → p-715016fb.entry.js} +1 -1
  300. package/lib/duet/{p-d8d0fb8f.entry.js → p-72830e75.entry.js} +1 -1
  301. package/lib/duet/{p-8f1e0f63.entry.js → p-73d50c9c.entry.js} +1 -1
  302. package/lib/duet/{p-94fa2062.system.entry.js → p-74540b5e.system.entry.js} +1 -1
  303. package/lib/duet/{p-84cf594e.entry.js → p-7573fbcd.entry.js} +1 -1
  304. package/lib/duet/{p-2e5b3bcf.entry.js → p-7677034c.entry.js} +1 -1
  305. package/lib/duet/{p-b1296afd.system.entry.js → p-775fc78c.system.entry.js} +1 -1
  306. package/lib/duet/p-786be329.entry.js +4 -0
  307. package/lib/duet/{p-c989c952.entry.js → p-78ac6b1f.entry.js} +1 -1
  308. package/lib/duet/{p-259eff20.system.entry.js → p-7981e13b.system.entry.js} +1 -1
  309. package/lib/duet/{p-50ee41e3.entry.js → p-7e109c31.entry.js} +1 -1
  310. package/lib/duet/{p-1e86fdd0.system.entry.js → p-7ee5cf27.system.entry.js} +1 -1
  311. package/lib/duet/{p-1c21f6ee.entry.js → p-7fc39256.entry.js} +1 -1
  312. package/lib/duet/{p-cbd1e2c6.system.entry.js → p-7ff69245.system.entry.js} +1 -1
  313. package/lib/duet/{p-56b49a2b.system.entry.js → p-8044edc7.system.entry.js} +1 -1
  314. package/lib/duet/{p-ab4af140.entry.js → p-81d08141.entry.js} +1 -1
  315. package/lib/duet/{p-5fcf69f8.entry.js → p-870ef497.entry.js} +1 -1
  316. package/lib/duet/{p-7c7f6370.entry.js → p-88ed5a90.entry.js} +1 -1
  317. package/lib/duet/{p-8ed7e105.entry.js → p-8a801ef7.entry.js} +1 -1
  318. package/lib/duet/{p-2e6a3a17.entry.js → p-8f91a9d2.entry.js} +1 -1
  319. package/lib/duet/{p-15b65a7c.entry.js → p-91bdc352.entry.js} +1 -1
  320. package/lib/duet/{p-4266b177.entry.js → p-96a2cd90.entry.js} +1 -1
  321. package/lib/duet/{p-268a27e0.system.entry.js → p-983dabf1.system.entry.js} +1 -1
  322. package/lib/duet/{p-770f94ca.entry.js → p-98daf9ba.entry.js} +1 -1
  323. package/lib/duet/{p-c48232b6.entry.js → p-98ec16d6.entry.js} +1 -1
  324. package/lib/duet/p-9f9a8841.system.entry.js +4 -0
  325. package/lib/duet/{p-d4d0fd29.js → p-a07e1194.js} +1 -1
  326. package/lib/duet/{p-ef7c6a28.system.entry.js → p-a3a9a1b8.system.entry.js} +1 -1
  327. package/lib/duet/p-a495ef97.js +4 -0
  328. package/lib/duet/{p-d7d050f5.system.entry.js → p-a5f7e606.system.entry.js} +1 -1
  329. package/lib/duet/p-a8bb0bf7.entry.js +4 -0
  330. package/lib/duet/{p-51588335.entry.js → p-a9a5200e.entry.js} +1 -1
  331. package/lib/duet/{p-7f1506d7.entry.js → p-aa828067.entry.js} +1 -1
  332. package/lib/duet/{p-20291d6a.system.entry.js → p-ad936690.system.entry.js} +1 -1
  333. package/lib/duet/{p-49ebb54d.system.entry.js → p-af4294e7.system.entry.js} +1 -1
  334. package/lib/duet/p-b0416fcb.entry.js +4 -0
  335. package/lib/duet/{p-f998b544.system.entry.js → p-b132b5df.system.entry.js} +1 -1
  336. package/lib/duet/{p-18a1350b.system.entry.js → p-b17088f0.system.entry.js} +2 -2
  337. package/lib/duet/{p-9693b127.entry.js → p-b2838ccd.entry.js} +1 -1
  338. package/lib/duet/{p-1ec42ecd.entry.js → p-b41123b4.entry.js} +1 -1
  339. package/lib/duet/{p-1515b46a.entry.js → p-b581a3bb.entry.js} +1 -1
  340. package/lib/duet/{p-1ccc3647.system.entry.js → p-b5b3ab80.system.entry.js} +1 -1
  341. package/lib/duet/{p-48a22eca.entry.js → p-b6637423.entry.js} +1 -1
  342. package/lib/duet/{p-fc1cf69f.system.entry.js → p-b6a726fc.system.entry.js} +1 -1
  343. package/lib/duet/{p-04a1f201.entry.js → p-bb7d4e61.entry.js} +1 -1
  344. package/lib/duet/{p-9207cd90.system.entry.js → p-bc674367.system.entry.js} +1 -1
  345. package/lib/duet/{p-e30006d7.system.entry.js → p-bdc0fe30.system.entry.js} +1 -1
  346. package/lib/duet/{p-3c5967bc.entry.js → p-bf48a550.entry.js} +1 -1
  347. package/lib/duet/p-c1cbbc7d.entry.js +4 -0
  348. package/lib/duet/{p-3ab084e8.system.entry.js → p-c23ab387.system.entry.js} +1 -1
  349. package/lib/duet/{p-2765a53e.system.entry.js → p-c274e869.system.entry.js} +1 -1
  350. package/lib/duet/p-c3aafeac.entry.js +4 -0
  351. package/lib/duet/{p-4ddb8b0f.entry.js → p-c60c531f.entry.js} +1 -1
  352. package/lib/duet/{p-2ef88161.system.js → p-c8dc599d.system.js} +1 -1
  353. package/lib/duet/{p-d871a695.system.entry.js → p-cc6d13b2.system.entry.js} +1 -1
  354. package/lib/duet/{p-8ae86f38.system.entry.js → p-ce0ee352.system.entry.js} +1 -1
  355. package/lib/duet/{p-b7c160f8.system.entry.js → p-ce9b09ee.system.entry.js} +1 -1
  356. package/lib/duet/{p-a8432547.system.entry.js → p-d2d70510.system.entry.js} +1 -1
  357. package/lib/duet/{p-e651dcce.system.entry.js → p-d6d7165c.system.entry.js} +1 -1
  358. package/lib/duet/{p-40b6203e.system.entry.js → p-db9ac8a2.system.entry.js} +1 -1
  359. package/lib/duet/{p-9431cbd9.entry.js → p-dd416fcc.entry.js} +1 -1
  360. package/lib/duet/p-df5f218c.system.entry.js +4 -0
  361. package/lib/duet/{p-c3436d4d.system.entry.js → p-e0a5f9b5.system.entry.js} +1 -1
  362. package/lib/duet/{p-8d4c36cc.system.entry.js → p-e1007ea6.system.entry.js} +1 -1
  363. package/lib/duet/p-e165eb06.system.entry.js +4 -0
  364. package/lib/duet/{p-d7014558.entry.js → p-e24d6a72.entry.js} +1 -1
  365. package/lib/duet/p-e501c893.system.entry.js +4 -0
  366. package/lib/duet/{p-032d0db3.system.entry.js → p-e9c85d4e.system.entry.js} +1 -1
  367. package/lib/duet/{p-9ca2af16.system.entry.js → p-ea45098f.system.entry.js} +1 -1
  368. package/lib/duet/p-eb63c8f0.system.entry.js +4 -0
  369. package/lib/duet/{p-68ab467a.entry.js → p-ee01f20b.entry.js} +1 -1
  370. package/lib/duet/{p-0115b516.system.entry.js → p-f32e95bb.system.entry.js} +1 -1
  371. package/lib/duet/{p-74c8d3c2.entry.js → p-f3c22a2f.entry.js} +1 -1
  372. package/lib/duet/p-f4ad0c9c.entry.js +4 -0
  373. package/lib/duet/{p-cffc25f7.system.entry.js → p-f518c0a0.system.entry.js} +1 -1
  374. package/lib/duet/{p-2a57d9b6.entry.js → p-f6af1d70.entry.js} +1 -1
  375. package/lib/duet/{p-9abc893a.system.entry.js → p-f7c1f47c.system.entry.js} +1 -1
  376. package/lib/duet/{p-e459f448.entry.js → p-f8fe134c.entry.js} +1 -1
  377. package/lib/duet/{p-efe489f3.entry.js → p-fc0c9ac3.entry.js} +1 -1
  378. package/lib/duet/p-fda01bca.entry.js +4 -0
  379. package/lib/duet/{p-64c8ddb9.entry.js → p-fedc971f.entry.js} +1 -1
  380. package/lib/esm/duet-action-button.entry.js +12 -3
  381. package/lib/esm/duet-alert.entry.js +15 -2
  382. package/lib/esm/duet-badge.entry.js +1 -1
  383. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  384. package/lib/esm/duet-breadcrumbs.entry.js +2 -2
  385. package/lib/esm/duet-button_2.entry.js +10 -2
  386. package/lib/esm/duet-caption_4.entry.js +16 -2
  387. package/lib/esm/duet-card.entry.js +1 -1
  388. package/lib/esm/duet-checkbox.entry.js +1 -1
  389. package/lib/esm/duet-checkmark.entry.js +1 -1
  390. package/lib/esm/duet-choice_2.entry.js +23 -5
  391. package/lib/esm/duet-collapsible.entry.js +1 -1
  392. package/lib/esm/duet-combobox.entry.js +2 -2
  393. package/lib/esm/duet-contact-card.entry.js +2 -2
  394. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  395. package/lib/esm/duet-date-picker.entry.js +16 -4
  396. package/lib/esm/duet-divider_2.entry.js +1 -1
  397. package/lib/esm/duet-editable-table_3.entry.js +2 -2
  398. package/lib/esm/duet-empty-state.entry.js +1 -1
  399. package/lib/esm/duet-fieldset.entry.js +1 -1
  400. package/lib/esm/duet-footer.entry.js +15 -3
  401. package/lib/esm/duet-grid_2.entry.js +1 -1
  402. package/lib/esm/duet-header_2.entry.js +2 -2
  403. package/lib/esm/duet-hero.entry.js +2 -2
  404. package/lib/esm/duet-icon.entry.js +1 -1
  405. package/lib/esm/duet-input_2.entry.js +2 -2
  406. package/lib/esm/duet-layout.entry.js +1 -1
  407. package/lib/esm/duet-list_2.entry.js +1 -1
  408. package/lib/esm/duet-menu-bar-button.entry.js +1 -1
  409. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +1 -1
  410. package/lib/esm/duet-menu-bar-dropdown.entry.js +1 -1
  411. package/lib/esm/duet-menu-bar-link.entry.js +1 -1
  412. package/lib/esm/duet-menu-bar.entry.js +1 -1
  413. package/lib/esm/duet-modal.entry.js +13 -3
  414. package/lib/esm/duet-multiselect.entry.js +2 -2
  415. package/lib/esm/duet-nav.entry.js +1 -1
  416. package/lib/esm/duet-notification_2.entry.js +2 -2
  417. package/lib/esm/duet-number-input.entry.js +2 -2
  418. package/lib/esm/duet-page-heading.entry.js +1 -1
  419. package/lib/esm/duet-pagination_2.entry.js +7 -5
  420. package/lib/esm/duet-progress.entry.js +2 -2
  421. package/lib/esm/duet-radio_2.entry.js +1 -1
  422. package/lib/esm/duet-range-slider.entry.js +1 -1
  423. package/lib/esm/duet-scrollable_3.entry.js +2 -2
  424. package/lib/esm/duet-section-layout.entry.js +1 -1
  425. package/lib/esm/duet-select.entry.js +1 -1
  426. package/lib/esm/duet-slideout-lang.entry.js +9 -2
  427. package/lib/esm/duet-slideout-link.entry.js +1 -1
  428. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  429. package/lib/esm/duet-slideout-panel.entry.js +10 -3
  430. package/lib/esm/duet-slideout.entry.js +10 -3
  431. package/lib/esm/duet-step_2.entry.js +1 -1
  432. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +1 -1
  433. package/lib/esm/duet-submenu-bar-dropdown.entry.js +1 -1
  434. package/lib/esm/duet-submenu-bar-link.entry.js +1 -1
  435. package/lib/esm/duet-submenu-bar.entry.js +1 -1
  436. package/lib/esm/duet-textarea.entry.js +1 -1
  437. package/lib/esm/duet-toggle.entry.js +1 -1
  438. package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -1
  439. package/lib/esm/duet-toolbar-dropdown.entry.js +1 -1
  440. package/lib/esm/duet-toolbar-link.entry.js +1 -1
  441. package/lib/esm/duet-toolbar.entry.js +1 -1
  442. package/lib/esm/duet-tooltip.entry.js +2 -2
  443. package/lib/esm/duet-tray.entry.js +2 -2
  444. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  445. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  446. package/lib/esm/duet.js +3 -3
  447. package/lib/esm/{focus-utils-24487417.js → focus-utils-6f660fbe.js} +1 -1
  448. package/lib/esm/{index-3b6ef857.js → index-3e7e0b4a.js} +1 -1
  449. package/lib/esm/{language-utils-7b211f31.js → language-utils-6be16ff0.js} +1 -1
  450. package/lib/esm/loader.js +3 -3
  451. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  452. package/lib/esm-es5/duet-alert.entry.js +2 -2
  453. package/lib/esm-es5/duet-badge.entry.js +1 -1
  454. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  455. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  456. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  457. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  458. package/lib/esm-es5/duet-card.entry.js +1 -1
  459. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  460. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  461. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  462. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  463. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  464. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  465. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  466. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  467. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  468. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  469. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  470. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  471. package/lib/esm-es5/duet-footer.entry.js +2 -2
  472. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  473. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  474. package/lib/esm-es5/duet-hero.entry.js +1 -1
  475. package/lib/esm-es5/duet-icon.entry.js +1 -1
  476. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  477. package/lib/esm-es5/duet-layout.entry.js +1 -1
  478. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  479. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  480. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  481. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  482. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  483. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  484. package/lib/esm-es5/duet-modal.entry.js +2 -2
  485. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  486. package/lib/esm-es5/duet-nav.entry.js +1 -1
  487. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  488. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  489. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  490. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  491. package/lib/esm-es5/duet-progress.entry.js +1 -1
  492. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  493. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  494. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  495. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  496. package/lib/esm-es5/duet-select.entry.js +1 -1
  497. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  498. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  499. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  500. package/lib/esm-es5/duet-slideout-panel.entry.js +2 -2
  501. package/lib/esm-es5/duet-slideout.entry.js +2 -2
  502. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  503. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  504. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  505. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  506. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  507. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  508. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  509. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  510. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  511. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  512. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  513. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  514. package/lib/esm-es5/duet-tray.entry.js +1 -1
  515. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  516. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  517. package/lib/esm-es5/duet.js +1 -1
  518. package/lib/esm-es5/focus-utils-6f660fbe.js +4 -0
  519. package/lib/esm-es5/{index-3b6ef857.js → index-3e7e0b4a.js} +1 -1
  520. package/lib/esm-es5/{language-utils-7b211f31.js → language-utils-6be16ff0.js} +1 -1
  521. package/lib/esm-es5/loader.js +1 -1
  522. package/lib/types/components/duet-action-button/duet-action-button.d.ts +6 -0
  523. package/lib/types/components/duet-alert/duet-alert.d.ts +4 -1
  524. package/lib/types/components/duet-button/duet-button.d.ts +3 -2
  525. package/lib/types/components/duet-choice/duet-choice.d.ts +6 -2
  526. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +3 -0
  527. package/lib/types/components/duet-footer/duet-footer.d.ts +3 -0
  528. package/lib/types/components/duet-link/duet-link.d.ts +3 -0
  529. package/lib/types/components/duet-modal/duet-modal.d.ts +2 -0
  530. package/lib/types/components/duet-range-stepper/duet-range-stepper.d.ts +0 -1
  531. package/lib/types/components/duet-slideout/duet-slideout.d.ts +4 -1
  532. package/lib/types/components/duet-slideout-lang/duet-slideout-lang.d.ts +4 -1
  533. package/lib/types/components/duet-slideout-panel/duet-slideout-panel.d.ts +4 -1
  534. package/lib/types/components.d.ts +8 -4
  535. package/package.json +5 -5
  536. package/lib/duet/p-0335d3ba.system.entry.js +0 -4
  537. package/lib/duet/p-31159c85.system.entry.js +0 -4
  538. package/lib/duet/p-3dc1f3c6.system.entry.js +0 -4
  539. package/lib/duet/p-44c56bb6.entry.js +0 -4
  540. package/lib/duet/p-470e0520.entry.js +0 -4
  541. package/lib/duet/p-475f863c.entry.js +0 -4
  542. package/lib/duet/p-4d5cb241.entry.js +0 -4
  543. package/lib/duet/p-4f203781.js +0 -4
  544. package/lib/duet/p-5a884cab.entry.js +0 -4
  545. package/lib/duet/p-5bf71c27.entry.js +0 -4
  546. package/lib/duet/p-74e6b8fd.system.entry.js +0 -4
  547. package/lib/duet/p-77c2e21e.system.js +0 -4
  548. package/lib/duet/p-82e4f38f.entry.js +0 -4
  549. package/lib/duet/p-84f17b60.entry.js +0 -4
  550. package/lib/duet/p-8e6d9b39.entry.js +0 -4
  551. package/lib/duet/p-9a911da7.entry.js +0 -4
  552. package/lib/duet/p-9d4592dc.system.entry.js +0 -4
  553. package/lib/duet/p-9fd3df4e.system.entry.js +0 -4
  554. package/lib/duet/p-c96b1fae.entry.js +0 -4
  555. package/lib/duet/p-cb814de3.entry.js +0 -4
  556. package/lib/duet/p-da73f58c.system.entry.js +0 -4
  557. package/lib/duet/p-deb0bf2b.system.entry.js +0 -4
  558. package/lib/duet/p-f5708af6.system.entry.js +0 -4
  559. package/lib/duet/p-fee010a2.entry.js +0 -4
  560. package/lib/duet/p-ff84ff9d.system.entry.js +0 -4
  561. package/lib/esm-es5/focus-utils-24487417.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:-12px}.horizontal.sc-duet-choice-group-h .duet-choice-group.duet-no-stacking.sc-duet-choice-group{display:flex}@media (min-width: 48em){.horizontal.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group{margin-bottom:0}}@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 {
@@ -9533,6 +9584,11 @@ class DuetDatePicker {
9533
9584
  this.incrementYears = 10;
9534
9585
  this.validity = undefined;
9535
9586
  }
9587
+ watchLanguageStateHandler(newValue, oldValue) {
9588
+ if (newValue !== oldValue && this.placeholder === this.placeholderDefaults[oldValue]) {
9589
+ this.placeholder = getLocaleString(this.placeholderDefaults, newValue);
9590
+ }
9591
+ }
9536
9592
  updateValidity() {
9537
9593
  this.determineValidity(parseISODate(this.value));
9538
9594
  }
@@ -9576,6 +9632,12 @@ class DuetDatePicker {
9576
9632
  break;
9577
9633
  }
9578
9634
  }
9635
+ connectedCallback() {
9636
+ connectLanguageChangeObserver(this);
9637
+ }
9638
+ disconnectedCallback() {
9639
+ disconnectLanguageChangeObserver(this);
9640
+ }
9579
9641
  /**
9580
9642
  * Sets focus on the date picker's input. Use this method instead of the global `focus()`.
9581
9643
  */
@@ -9713,10 +9775,11 @@ class DuetDatePicker {
9713
9775
  left: this.direction === "left",
9714
9776
  error: !!this.error,
9715
9777
  active: this.open,
9716
- }, 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 }))));
9717
9779
  }
9718
9780
  get element() { return getElement(this); }
9719
9781
  static get watchers() { return {
9782
+ "language": ["watchLanguageStateHandler"],
9720
9783
  "min": ["updateValidity"],
9721
9784
  "max": ["updateValidity"],
9722
9785
  "value": ["updateValidity", "updateInternalValue"],
@@ -9734,9 +9797,9 @@ class DuetDatePicker {
9734
9797
  "label": [1],
9735
9798
  "caption": [1],
9736
9799
  "margin": [1],
9737
- "language": [1],
9800
+ "language": [1537],
9738
9801
  "placeholderDefaults": [1, "placeholder-default"],
9739
- "placeholder": [1],
9802
+ "placeholder": [1025],
9740
9803
  "echoPlaceholder": [1540, "echo-placeholder"],
9741
9804
  "disabled": [516],
9742
9805
  "error": [1],
@@ -9764,7 +9827,7 @@ class DuetDatePicker {
9764
9827
  },
9765
9828
  "$listeners$": [[4, "click", "handleDocumentClick"]],
9766
9829
  "$lazyBundleId$": "-",
9767
- "$attrsToReflect$": [["echoPlaceholder", "echo-placeholder"], ["disabled", "disabled"], ["value", "value"]]
9830
+ "$attrsToReflect$": [["language", "language"], ["echoPlaceholder", "echo-placeholder"], ["disabled", "disabled"], ["value", "value"]]
9768
9831
  }; }
9769
9832
  }
9770
9833
 
@@ -10177,9 +10240,14 @@ class DuetFooter {
10177
10240
  this.language = getLanguage();
10178
10241
  this.items = undefined;
10179
10242
  this.accessibleLabelExternalDefaults = DuetStringsExternalDefaults;
10180
- this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults, this.language);
10243
+ this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults);
10181
10244
  this.menu = undefined;
10182
10245
  }
10246
+ watchLanguageStateHandler(newValue, oldValue) {
10247
+ if (newValue !== oldValue && this.accessibleLabelExternal === this.accessibleLabelExternalDefaults[oldValue]) {
10248
+ this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults, newValue);
10249
+ }
10250
+ }
10183
10251
  /**
10184
10252
  * Component lifecycle events.
10185
10253
  */
@@ -10187,6 +10255,12 @@ class DuetFooter {
10187
10255
  inheritGlobalTheme(this);
10188
10256
  this.refresh();
10189
10257
  }
10258
+ connectedCallback() {
10259
+ connectLanguageChangeObserver(this);
10260
+ }
10261
+ disconnectedCallback() {
10262
+ disconnectLanguageChangeObserver(this);
10263
+ }
10190
10264
  /**
10191
10265
  * Local methods
10192
10266
  */
@@ -10212,6 +10286,7 @@ class DuetFooter {
10212
10286
  }
10213
10287
  get element() { return getElement(this); }
10214
10288
  static get watchers() { return {
10289
+ "language": ["watchLanguageStateHandler"],
10215
10290
  "menu": ["refresh"],
10216
10291
  "items": ["refresh"]
10217
10292
  }; }
@@ -10224,10 +10299,10 @@ class DuetFooter {
10224
10299
  "variation": [1],
10225
10300
  "margin": [1],
10226
10301
  "logoHref": [1, "logo-href"],
10227
- "language": [1025],
10302
+ "language": [1537],
10228
10303
  "items": [8],
10229
10304
  "accessibleLabelExternalDefaults": [1, "accessible-label-external-default"],
10230
- "accessibleLabelExternal": [1, "accessible-label-external"],
10305
+ "accessibleLabelExternal": [1025, "accessible-label-external"],
10231
10306
  "menu": [8],
10232
10307
  "processedMainItem": [32],
10233
10308
  "processedItems": [32],
@@ -10235,7 +10310,7 @@ class DuetFooter {
10235
10310
  },
10236
10311
  "$listeners$": undefined,
10237
10312
  "$lazyBundleId$": "-",
10238
- "$attrsToReflect$": []
10313
+ "$attrsToReflect$": [["language", "language"]]
10239
10314
  }; }
10240
10315
  }
10241
10316
 
@@ -12213,12 +12288,23 @@ class DuetLink {
12213
12288
  this.icon = undefined;
12214
12289
  this.padding = "auto";
12215
12290
  }
12291
+ watchLanguageStateHandler(newValue, oldValue) {
12292
+ if (newValue !== oldValue && this.accessibleLabelExternal === this.accessibleLabelExternalDefaults[oldValue]) {
12293
+ this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults, newValue);
12294
+ }
12295
+ }
12216
12296
  /**
12217
12297
  * Component lifecycle events.
12218
12298
  */
12219
12299
  componentWillLoad() {
12220
12300
  inheritGlobalTheme(this);
12221
12301
  }
12302
+ connectedCallback() {
12303
+ connectLanguageChangeObserver(this);
12304
+ }
12305
+ disconnectedCallback() {
12306
+ disconnectLanguageChangeObserver(this);
12307
+ }
12222
12308
  /**
12223
12309
  * Sets focus on the specified `duet-link`. Use this method instead of the global
12224
12310
  * `link.focus()`.
@@ -12253,6 +12339,9 @@ class DuetLink {
12253
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())));
12254
12340
  }
12255
12341
  static get delegatesFocus() { return true; }
12342
+ static get watchers() { return {
12343
+ "language": ["watchLanguageStateHandler"]
12344
+ }; }
12256
12345
  static get style() { return duetLinkCss; }
12257
12346
  static get cmpMeta() { return {
12258
12347
  "$flags$": 25,
@@ -12260,9 +12349,9 @@ class DuetLink {
12260
12349
  "$members$": {
12261
12350
  "variation": [1],
12262
12351
  "accessibleLabel": [1, "accessible-label"],
12263
- "language": [1025],
12352
+ "language": [1537],
12264
12353
  "accessibleLabelExternalDefaults": [1, "accessible-label-external-default"],
12265
- "accessibleLabelExternal": [1, "accessible-label-external"],
12354
+ "accessibleLabelExternal": [1025, "accessible-label-external"],
12266
12355
  "identifier": [1],
12267
12356
  "theme": [1025],
12268
12357
  "url": [513],
@@ -12274,7 +12363,7 @@ class DuetLink {
12274
12363
  },
12275
12364
  "$listeners$": undefined,
12276
12365
  "$lazyBundleId$": "-",
12277
- "$attrsToReflect$": [["url", "url"]]
12366
+ "$attrsToReflect$": [["language", "language"], ["url", "url"]]
12278
12367
  }; }
12279
12368
  }
12280
12369
 
@@ -13086,6 +13175,11 @@ class DuetModal {
13086
13175
  }
13087
13176
  }
13088
13177
  }
13178
+ watchLanguageStateHandler(newValue, oldValue) {
13179
+ if (newValue !== oldValue && this.accessibleCloseLabel === this.accessibleCloseLabelDefaults[oldValue]) {
13180
+ this.accessibleCloseLabel = getLocaleString(this.accessibleCloseLabelDefaults, newValue);
13181
+ }
13182
+ }
13089
13183
  activeChanged() {
13090
13184
  this.open = this.active;
13091
13185
  }
@@ -13103,7 +13197,11 @@ class DuetModal {
13103
13197
  this.modalEl.classList.add("duet-disable-transitions");
13104
13198
  }
13105
13199
  }
13200
+ connectedCallback() {
13201
+ connectLanguageChangeObserver(this);
13202
+ }
13106
13203
  disconnectedCallback() {
13204
+ disconnectLanguageChangeObserver(this);
13107
13205
  enableBodyScroll(this.modalEl);
13108
13206
  }
13109
13207
  /**
@@ -13184,6 +13282,7 @@ class DuetModal {
13184
13282
  get element() { return getElement(this); }
13185
13283
  static get watchers() { return {
13186
13284
  "open": ["openChanged"],
13285
+ "language": ["watchLanguageStateHandler"],
13187
13286
  "active": ["activeChanged"]
13188
13287
  }; }
13189
13288
  static get style() { return duetModalCss; }
@@ -13191,9 +13290,9 @@ class DuetModal {
13191
13290
  "$flags$": 9,
13192
13291
  "$tagName$": "duet-modal",
13193
13292
  "$members$": {
13194
- "language": [1025],
13293
+ "language": [1537],
13195
13294
  "accessibleCloseLabelDefaults": [1, "accessible-close-label-default"],
13196
- "accessibleCloseLabel": [1, "accessible-close-label"],
13295
+ "accessibleCloseLabel": [1025, "accessible-close-label"],
13197
13296
  "size": [1],
13198
13297
  "accessibleDescribedBy": [1, "accessible-described-by"],
13199
13298
  "accessibleLabelledBy": [1, "accessible-labelled-by"],
@@ -13215,7 +13314,7 @@ class DuetModal {
13215
13314
  },
13216
13315
  "$listeners$": [[8, "keyup", "handleKeyUp"]],
13217
13316
  "$lazyBundleId$": "-",
13218
- "$attrsToReflect$": [["active", "active"]]
13317
+ "$attrsToReflect$": [["language", "language"], ["active", "active"]]
13219
13318
  }; }
13220
13319
  }
13221
13320
 
@@ -14953,17 +15052,17 @@ class DuetRangeStepper {
14953
15052
  }
14954
15053
  }
14955
15054
  watchStepIndexStateHandler(newValue) {
14956
- if (this.element.shadowRoot.childElementCount > 0) {
15055
+ if (this.leftBnRef && this.rightBnRef) {
14957
15056
  if (newValue <= 1) {
14958
15057
  this.leftBnRef.setAttribute("disabled", "");
14959
- this.rightBnRef.focus();
15058
+ this.rightBnRef.setFocus();
14960
15059
  }
14961
15060
  else {
14962
15061
  this.leftBnRef.removeAttribute("disabled");
14963
15062
  }
14964
15063
  if (newValue >= this.total / this.stepSize) {
14965
15064
  this.rightBnRef.setAttribute("disabled", "");
14966
- this.leftBnRef.focus();
15065
+ this.leftBnRef.setFocus();
14967
15066
  }
14968
15067
  else {
14969
15068
  this.rightBnRef.removeAttribute("disabled");
@@ -14975,6 +15074,8 @@ class DuetRangeStepper {
14975
15074
  if (this.stepIndex * newValue > this.total) {
14976
15075
  this.stepIndex = Math.ceil(this.total / newValue);
14977
15076
  }
15077
+ // trigger handler in case a button needs to be disabled or enabled but stepSize did not change
15078
+ this.watchStepIndexStateHandler(this.stepIndex);
14978
15079
  }
14979
15080
  }
14980
15081
  handleStepClick(e) {
@@ -15503,6 +15604,7 @@ class DuetSlideout {
15503
15604
  this.onClick = (e) => {
15504
15605
  this.toggleMenu(e);
15505
15606
  };
15607
+ this.language = getLanguage();
15506
15608
  this.theme = "";
15507
15609
  this.open = false;
15508
15610
  this.backgroundColor = "gray-lightest";
@@ -15539,6 +15641,12 @@ class DuetSlideout {
15539
15641
  this.openButton = this.openButton;
15540
15642
  }
15541
15643
  }
15644
+ connectedCallback() {
15645
+ connectLanguageChangeObserver(this);
15646
+ }
15647
+ disconnectedCallback() {
15648
+ disconnectLanguageChangeObserver(this);
15649
+ }
15542
15650
  /**
15543
15651
  * Component event handling.
15544
15652
  */
@@ -15589,6 +15697,7 @@ class DuetSlideout {
15589
15697
  "theme": [1025],
15590
15698
  "open": [1540],
15591
15699
  "backgroundColor": [1537, "background-color"],
15700
+ "language": [32],
15592
15701
  "toggle": [64],
15593
15702
  "setFocus": [64]
15594
15703
  },
@@ -15611,6 +15720,7 @@ class DuetSlideoutLang {
15611
15720
  fi: "Valitse kieli",
15612
15721
  sv: "Välj språk",
15613
15722
  };
15723
+ this.language = getLanguage();
15614
15724
  this.theme = "";
15615
15725
  }
15616
15726
  /**
@@ -15619,6 +15729,12 @@ class DuetSlideoutLang {
15619
15729
  componentWillLoad() {
15620
15730
  inheritGlobalTheme(this);
15621
15731
  }
15732
+ connectedCallback() {
15733
+ connectLanguageChangeObserver(this);
15734
+ }
15735
+ disconnectedCallback() {
15736
+ disconnectLanguageChangeObserver(this);
15737
+ }
15622
15738
  /**
15623
15739
  * render() function
15624
15740
  * Always the last one in the class.
@@ -15633,7 +15749,8 @@ class DuetSlideoutLang {
15633
15749
  "$flags$": 9,
15634
15750
  "$tagName$": "duet-slideout-lang",
15635
15751
  "$members$": {
15636
- "theme": [1025]
15752
+ "theme": [1025],
15753
+ "language": [32]
15637
15754
  },
15638
15755
  "$listeners$": undefined,
15639
15756
  "$lazyBundleId$": "-",
@@ -15738,6 +15855,7 @@ class DuetSlideoutPanel {
15738
15855
  }
15739
15856
  };
15740
15857
  this.label = undefined;
15858
+ this.language = getLanguage();
15741
15859
  this.theme = "";
15742
15860
  this.active = false;
15743
15861
  this.open = false;
@@ -15752,6 +15870,12 @@ class DuetSlideoutPanel {
15752
15870
  inheritGlobalTheme(this);
15753
15871
  this.updateLabel();
15754
15872
  }
15873
+ connectedCallback() {
15874
+ connectLanguageChangeObserver(this);
15875
+ }
15876
+ disconnectedCallback() {
15877
+ disconnectLanguageChangeObserver(this);
15878
+ }
15755
15879
  /**
15756
15880
  * Sets focus. Use this method instead of the global focus().
15757
15881
  */
@@ -15811,6 +15935,7 @@ class DuetSlideoutPanel {
15811
15935
  "labelSize": [1537, "label-size"],
15812
15936
  "backgroundColor": [1537, "background-color"],
15813
15937
  "label": [32],
15938
+ "language": [32],
15814
15939
  "setFocus": [64]
15815
15940
  },
15816
15941
  "$listeners$": undefined,
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-6d5f06d0.js');
8
+ const index = require('./index-6f5a3a97.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const jsUtils = require('./js-utils-134e0318.js');
@@ -94,6 +94,15 @@ const DuetActionButton = class {
94
94
  componentWillLoad() {
95
95
  themeableComponent.inheritGlobalTheme(this);
96
96
  }
97
+ /**
98
+ * Sets focus on the specified `duet-action-button`. Use this method instead of the global
99
+ * `button.focus()`.
100
+ */
101
+ async setFocus(options) {
102
+ if (this.nativeButton) {
103
+ this.nativeButton.focus(options);
104
+ }
105
+ }
97
106
  /**
98
107
  * render() function
99
108
  * Always the last one in the class.
@@ -118,7 +127,7 @@ const DuetActionButton = class {
118
127
  "border-width": "1px",
119
128
  "border-style": "solid",
120
129
  };
121
- return (index.h(index.Host, { onKeyDown: e => this.onKeyboardDown(e) }, index.h("style", { innerHTML: backgroundStyles }), index.h("button", { part: "button", style: styles, disabled: this.disabled, id: this.listId, class: {
130
+ return (index.h(index.Host, { onKeyDown: e => this.onKeyboardDown(e) }, index.h("style", { innerHTML: backgroundStyles }), index.h("button", { ref: button => (this.nativeButton = button), part: "button", style: styles, disabled: this.disabled, id: this.listId, class: {
122
131
  "duet-action-button": true,
123
132
  "duet-action-button--disabled": this.disabled,
124
133
  [`duet-action-button--${this.theme}`]: this.theme !== "",
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-6d5f06d0.js');
8
+ const index = require('./index-6f5a3a97.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const languageUtils = require('./language-utils-44df1d37.js');
@@ -34,6 +34,7 @@ const DuetAlert = class {
34
34
  this.theme = "";
35
35
  this.isDismissed = false;
36
36
  this.timeoutID = undefined;
37
+ this.language = languageUtils.getLanguage();
37
38
  this.accessibleLabelDefaults = {
38
39
  fi: "Sulje viesti",
39
40
  sv: "Stäng meddelandet",
@@ -48,6 +49,11 @@ const DuetAlert = class {
48
49
  this.variation = "default";
49
50
  this.dismissible = false;
50
51
  }
52
+ watchLanguageStateHandler(newValue, oldValue) {
53
+ if (newValue !== oldValue && this.accessibleLabel === this.accessibleLabelDefaults[oldValue]) {
54
+ this.accessibleLabel = languageUtils.getLocaleString(this.accessibleLabelDefaults, newValue);
55
+ }
56
+ }
51
57
  /**
52
58
  * Component lifecycle events.
53
59
  */
@@ -59,10 +65,14 @@ const DuetAlert = class {
59
65
  this.timeoutID = setTimeout(() => this.handleDismiss(), this.autoDismiss);
60
66
  }
61
67
  }
68
+ connectedCallback() {
69
+ languageUtils.connectLanguageChangeObserver(this);
70
+ }
62
71
  disconnectedCallback() {
63
72
  if (this.timeoutID) {
64
73
  clearTimeout(this.timeoutID);
65
74
  }
75
+ languageUtils.disconnectLanguageChangeObserver(this);
66
76
  }
67
77
  /**
68
78
  * Show.
@@ -101,6 +111,9 @@ const DuetAlert = class {
101
111
  "duet-theme-turva": this.theme === "turva",
102
112
  } }, index.h("div", { class: "duet-alert-container" }, this.icon && (index.h("div", { class: "duet-alert-icon" }, index.h("duet-icon", { size: "auto", name: this.icon, color: "currentColor" }))), index.h("span", { id: this.descriptiveId }, index.h("slot", null))), this.dismissible && (index.h("div", { class: "duet-alert-dismiss" }, index.h("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 }))))));
103
113
  }
114
+ static get watchers() { return {
115
+ "language": ["watchLanguageStateHandler"]
116
+ }; }
104
117
  };
105
118
  DuetAlert.style = duetAlertCss;
106
119