@duetds/components 6.6.2 → 6.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (609) hide show
  1. package/hydrate/index.d.ts +1 -1
  2. package/hydrate/index.js +200 -123
  3. package/lib/cjs/{dom-bcfa684c.js → dom-b340f674.js} +1 -1
  4. package/lib/cjs/duet-action-button.cjs.entry.js +2 -2
  5. package/lib/cjs/duet-alert.cjs.entry.js +20 -5
  6. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  7. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  8. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +2 -2
  9. package/lib/cjs/duet-button_2.cjs.entry.js +2 -2
  10. package/lib/cjs/duet-caption_4.cjs.entry.js +6 -4
  11. package/lib/cjs/duet-card.cjs.entry.js +1 -1
  12. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  13. package/lib/cjs/duet-checkmark.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-choice_2.cjs.entry.js +3 -3
  15. package/lib/cjs/duet-collapsible.cjs.entry.js +2 -2
  16. package/lib/cjs/duet-combobox.cjs.entry.js +2 -2
  17. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-date-picker.cjs.entry.js +3 -3
  19. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-editable-table_3.cjs.entry.js +5 -5
  21. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  22. package/lib/cjs/duet-fieldset.cjs.entry.js +2 -2
  23. package/lib/cjs/duet-footer.cjs.entry.js +2 -2
  24. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-header_2.cjs.entry.js +8 -2
  26. package/lib/cjs/duet-hero.cjs.entry.js +4 -4
  27. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-input_2.cjs.entry.js +30 -19
  29. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +2 -2
  32. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +2 -2
  34. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +2 -2
  35. package/lib/cjs/duet-menu-bar.cjs.entry.js +2 -2
  36. package/lib/cjs/duet-modal.cjs.entry.js +3 -3
  37. package/lib/cjs/duet-multiselect.cjs.entry.js +2 -2
  38. package/lib/cjs/duet-nav.cjs.entry.js +4 -4
  39. package/lib/cjs/duet-notification_2.cjs.entry.js +2 -2
  40. package/lib/cjs/duet-number-input.cjs.entry.js +2 -2
  41. package/lib/cjs/duet-page-heading.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-pagination_2.cjs.entry.js +17 -3
  43. package/lib/cjs/duet-progress.cjs.entry.js +2 -2
  44. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  45. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  46. package/lib/cjs/duet-scrollable_3.cjs.entry.js +18 -19
  47. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  48. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  49. package/lib/cjs/duet-slideout-lang.cjs.entry.js +2 -2
  50. package/lib/cjs/duet-slideout-link.cjs.entry.js +1 -1
  51. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +1 -1
  52. package/lib/cjs/duet-slideout-panel.cjs.entry.js +3 -3
  53. package/lib/cjs/duet-slideout.cjs.entry.js +6 -5
  54. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  55. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +1 -1
  56. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +1 -1
  57. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +1 -1
  58. package/lib/cjs/duet-submenu-bar.cjs.entry.js +1 -1
  59. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  60. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  61. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +1 -1
  62. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +1 -1
  63. package/lib/cjs/duet-toolbar-link.cjs.entry.js +1 -1
  64. package/lib/cjs/duet-toolbar.cjs.entry.js +2 -2
  65. package/lib/cjs/duet-tooltip.cjs.entry.js +2 -2
  66. package/lib/cjs/duet-tray.cjs.entry.js +2 -2
  67. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  68. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  69. package/lib/cjs/duet.cjs.js +26 -4
  70. package/lib/cjs/{focus-utils-73de6126.js → focus-utils-0dd9281d.js} +1 -1
  71. package/lib/cjs/{index-c7042fe2.js → index-3d0845f0.js} +114 -4
  72. package/lib/cjs/{language-utils-4f62a7db.js → language-utils-44df1d37.js} +36 -0
  73. package/lib/cjs/loader.cjs.js +4 -3
  74. package/lib/cjs/{shadow-css-1ea48714.js → shadow-css-cce1abf1.js} +1 -1
  75. package/lib/collection/collection-manifest.json +2 -2
  76. package/lib/collection/components/duet-alert/duet-alert.css +1 -1
  77. package/lib/collection/components/duet-alert/duet-alert.js +53 -2
  78. package/lib/collection/components/duet-collapsible/duet-collapsible.css +1 -0
  79. package/lib/collection/components/duet-fieldset/duet-fieldset.css +2 -2
  80. package/lib/collection/components/duet-hero/duet-hero.css +124 -28
  81. package/lib/collection/components/duet-hero/duet-hero.js +1 -1
  82. package/lib/collection/components/duet-input/duet-input.js +32 -20
  83. package/lib/collection/components/duet-link/duet-link.css +4 -1
  84. package/lib/collection/components/duet-link/duet-link.js +3 -1
  85. package/lib/collection/components/duet-logo/duet-logo.js +7 -1
  86. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +1 -1
  87. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.css +2 -2
  88. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.css +13 -2
  89. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.css +4 -3
  90. package/lib/collection/components/duet-nav/duet-nav.js +1 -1
  91. package/lib/collection/components/duet-pagination/duet-pagination.js +2 -1
  92. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +22 -2
  93. package/lib/collection/components/duet-slideout/duet-slideout.css +0 -1
  94. package/lib/collection/components/duet-slideout/duet-slideout.js +9 -8
  95. package/lib/collection/components/duet-tab-group/duet-tab-group.css +20 -0
  96. package/lib/collection/components/duet-tab-group/duet-tab-group.js +16 -17
  97. package/lib/collection/components/duet-toolbar/duet-toolbar.css +2 -2
  98. package/lib/collection/components/duet-upload/duet-upload.js +3 -3
  99. package/lib/collection/utils/language-utils.js +35 -0
  100. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  101. package/lib/dist-custom-elements/duet-alert.js +1 -1
  102. package/lib/dist-custom-elements/duet-badge.js +1 -1
  103. package/lib/dist-custom-elements/duet-breadcrumb.js +2 -2
  104. package/lib/dist-custom-elements/duet-breadcrumbs.js +3 -3
  105. package/lib/dist-custom-elements/duet-button.js +1 -1
  106. package/lib/dist-custom-elements/duet-caption.js +1 -1
  107. package/lib/dist-custom-elements/duet-card.js +3 -3
  108. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  109. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  110. package/lib/dist-custom-elements/duet-choice-group.js +6 -6
  111. package/lib/dist-custom-elements/duet-choice.js +7 -7
  112. package/lib/dist-custom-elements/duet-collapsible.js +3 -3
  113. package/lib/dist-custom-elements/duet-combobox.js +4 -4
  114. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  115. package/lib/dist-custom-elements/duet-date-picker.js +13 -13
  116. package/lib/dist-custom-elements/duet-divider.js +1 -1
  117. package/lib/dist-custom-elements/duet-editable-table.js +1 -1
  118. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  119. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  120. package/lib/dist-custom-elements/duet-footer.js +5 -5
  121. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  122. package/lib/dist-custom-elements/duet-grid.js +1 -1
  123. package/lib/dist-custom-elements/duet-header.js +10 -10
  124. package/lib/dist-custom-elements/duet-heading.js +1 -1
  125. package/lib/dist-custom-elements/duet-hero.js +12 -12
  126. package/lib/dist-custom-elements/duet-icon.js +1 -1
  127. package/lib/dist-custom-elements/duet-input.js +1 -1
  128. package/lib/dist-custom-elements/duet-label.js +1 -1
  129. package/lib/dist-custom-elements/duet-layout.js +1 -1
  130. package/lib/dist-custom-elements/duet-link.js +1 -1
  131. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  132. package/lib/dist-custom-elements/duet-list.js +1 -1
  133. package/lib/dist-custom-elements/duet-logo.js +1 -1
  134. package/lib/dist-custom-elements/duet-menu-bar-button.js +3 -3
  135. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +2 -2
  136. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +3 -3
  137. package/lib/dist-custom-elements/duet-menu-bar-link.js +3 -3
  138. package/lib/dist-custom-elements/duet-menu-bar.js +3 -3
  139. package/lib/dist-custom-elements/duet-modal.js +9 -9
  140. package/lib/dist-custom-elements/duet-multiselect.js +9 -9
  141. package/lib/dist-custom-elements/duet-nav.js +4 -4
  142. package/lib/dist-custom-elements/duet-notification-drawer.js +5 -5
  143. package/lib/dist-custom-elements/duet-notification.js +3 -3
  144. package/lib/dist-custom-elements/duet-number-input.js +10 -10
  145. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  146. package/lib/dist-custom-elements/duet-pagination.js +10 -9
  147. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  148. package/lib/dist-custom-elements/duet-progress.js +1 -1
  149. package/lib/dist-custom-elements/duet-radio-group.js +6 -6
  150. package/lib/dist-custom-elements/duet-radio.js +1 -1
  151. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  152. package/lib/dist-custom-elements/duet-range-stepper.js +21 -7
  153. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  154. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  155. package/lib/dist-custom-elements/duet-select.js +1 -1
  156. package/lib/dist-custom-elements/duet-slideout-lang.js +4 -4
  157. package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
  158. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  159. package/lib/dist-custom-elements/duet-slideout-panel.js +4 -4
  160. package/lib/dist-custom-elements/duet-slideout.js +8 -7
  161. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  162. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  163. package/lib/dist-custom-elements/duet-step.js +4 -4
  164. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  165. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +2 -2
  166. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +2 -2
  167. package/lib/dist-custom-elements/duet-submenu-bar-link.js +2 -2
  168. package/lib/dist-custom-elements/duet-submenu-bar.js +2 -2
  169. package/lib/dist-custom-elements/duet-tab-group.js +26 -27
  170. package/lib/dist-custom-elements/duet-tab.js +2 -2
  171. package/lib/dist-custom-elements/duet-table.js +1 -1
  172. package/lib/dist-custom-elements/duet-textarea.js +8 -8
  173. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  174. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -2
  175. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +2 -2
  176. package/lib/dist-custom-elements/duet-toolbar-link.js +2 -2
  177. package/lib/dist-custom-elements/duet-toolbar.js +2 -2
  178. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  179. package/lib/dist-custom-elements/duet-tray.js +4 -4
  180. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  181. package/lib/dist-custom-elements/duet-upload.js +23 -23
  182. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  183. package/lib/dist-custom-elements/index.d.ts +10 -1
  184. package/lib/dist-custom-elements/index.js +1 -1
  185. package/lib/dist-custom-elements/{p-67b44d57.js → p-0d2d0d0e.js} +2 -2
  186. package/lib/dist-custom-elements/{p-ae7cfbe5.js → p-13b6dd90.js} +1 -1
  187. package/lib/dist-custom-elements/{p-a1657855.js → p-2228bf13.js} +1 -1
  188. package/lib/dist-custom-elements/{p-8dd42921.js → p-22eba43b.js} +9 -9
  189. package/lib/dist-custom-elements/{p-baef8898.js → p-267801f1.js} +8 -2
  190. package/lib/dist-custom-elements/{p-eecb0a82.js → p-2b3a8e8c.js} +3 -3
  191. package/lib/dist-custom-elements/{p-5b4c8e0d.js → p-2b6f6cba.js} +2 -2
  192. package/lib/dist-custom-elements/{p-19440466.js → p-364cfb78.js} +1 -1
  193. package/lib/dist-custom-elements/{p-aa1fc08e.js → p-447ea0a6.js} +8 -6
  194. package/lib/dist-custom-elements/{p-5f350253.js → p-47f3085b.js} +1 -1
  195. package/lib/dist-custom-elements/{p-7e80afc3.js → p-4e752d2d.js} +4 -4
  196. package/lib/dist-custom-elements/{p-85a51040.js → p-4e9d1f9b.js} +1 -1
  197. package/lib/dist-custom-elements/{p-7f5fd72b.js → p-504f30a0.js} +1 -1
  198. package/lib/dist-custom-elements/{p-e4a60f42.js → p-5084748e.js} +31 -1
  199. package/lib/{esm/shadow-css-a011f1fe.js → dist-custom-elements/p-5a17a015.js} +1 -1
  200. package/lib/dist-custom-elements/{p-ede854e1.js → p-6c05e879.js} +35 -1
  201. package/lib/dist-custom-elements/{p-5392a088.js → p-756308c3.js} +1 -1
  202. package/lib/dist-custom-elements/{p-b0e64542.js → p-767cc415.js} +6 -6
  203. package/lib/dist-custom-elements/{p-52fa416b.js → p-7857fd92.js} +2 -2
  204. package/lib/dist-custom-elements/{p-d117f5df.js → p-85f97595.js} +1 -1
  205. package/lib/dist-custom-elements/{p-9986919d.js → p-9d0348a4.js} +1 -1
  206. package/lib/dist-custom-elements/{p-84bde6a4.js → p-aa1ab20d.js} +3 -3
  207. package/lib/dist-custom-elements/{p-35c42834.js → p-ad4c031f.js} +4 -4
  208. package/lib/dist-custom-elements/{p-24b5f5d8.js → p-ae149130.js} +1 -1
  209. package/lib/dist-custom-elements/{p-691b1920.js → p-ba2d607e.js} +27 -10
  210. package/lib/dist-custom-elements/{p-f039872b.js → p-c0878e32.js} +5 -5
  211. package/lib/dist-custom-elements/{p-ce6c013f.js → p-c203ef96.js} +1 -1
  212. package/lib/dist-custom-elements/{p-add72ec7.js → p-c91ba42a.js} +1 -1
  213. package/lib/dist-custom-elements/{p-69aed4fa.js → p-c9a16897.js} +1 -1
  214. package/lib/dist-custom-elements/{p-ebd24c35.js → p-e201a19a.js} +1 -1
  215. package/lib/dist-custom-elements/{p-f6adaddb.js → p-e36eb97d.js} +1 -1
  216. package/lib/dist-custom-elements/{p-7429e56d.js → p-e38fc76d.js} +1 -1
  217. package/lib/dist-custom-elements/{p-e565b192.js → p-e47da081.js} +107 -5
  218. package/lib/dist-custom-elements/{p-07adaab8.js → p-e6b8ebb0.js} +1 -1
  219. package/lib/dist-custom-elements/{p-3bd1c042.js → p-f6a5967a.js} +1 -1
  220. package/lib/dist-custom-elements/{p-92475994.js → p-f7da07ee.js} +39 -27
  221. package/lib/duet/duet.esm.js +1 -1
  222. package/lib/duet/duet.js +1 -1
  223. package/lib/duet/{p-63d1a582.system.entry.js → p-00a53506.system.entry.js} +2 -2
  224. package/lib/duet/p-010cbd87.system.entry.js +4 -0
  225. package/lib/duet/{p-e2fd4fbe.system.entry.js → p-0339a6ba.system.entry.js} +1 -1
  226. package/lib/duet/{p-7275e002.system.entry.js → p-0480457b.system.entry.js} +1 -1
  227. package/lib/duet/{p-b655eb33.entry.js → p-04ca6ed4.entry.js} +1 -1
  228. package/lib/duet/{p-cf07b5b8.system.entry.js → p-0783af51.system.entry.js} +2 -2
  229. package/lib/duet/{p-a8f63ab3.entry.js → p-0875374b.entry.js} +1 -1
  230. package/lib/duet/{p-4e77a3b7.system.entry.js → p-0b08aa13.system.entry.js} +2 -2
  231. package/lib/duet/{p-806372aa.entry.js → p-0cefe244.entry.js} +1 -1
  232. package/lib/duet/p-0de644e5.entry.js +4 -0
  233. package/lib/duet/{p-3e2c92b9.entry.js → p-0f4aff17.entry.js} +1 -1
  234. package/lib/duet/{p-2de3ab1e.entry.js → p-12593e03.entry.js} +1 -1
  235. package/lib/duet/p-14b1e688.js +5 -0
  236. package/lib/duet/{p-68b5494b.system.entry.js → p-14c4c15a.system.entry.js} +1 -1
  237. package/lib/duet/{p-6a43bf52.system.entry.js → p-165f0e7c.system.entry.js} +1 -1
  238. package/lib/duet/p-1787fb22.entry.js +4 -0
  239. package/lib/duet/p-1b8a8804.system.entry.js +4 -0
  240. package/lib/duet/p-1c952867.system.entry.js +4 -0
  241. package/lib/duet/{p-1d27e786.system.entry.js → p-1e2595e2.system.entry.js} +1 -1
  242. package/lib/duet/{p-d9b1e1a8.entry.js → p-1eed2800.entry.js} +1 -1
  243. package/lib/duet/{p-58a856ae.entry.js → p-2ae7d801.entry.js} +1 -1
  244. package/lib/duet/{p-55b0e3be.system.entry.js → p-2ae9d336.system.entry.js} +2 -2
  245. package/lib/duet/{p-36f8f697.js → p-2b1ddf25.js} +1 -1
  246. package/lib/duet/{p-1bcd686c.system.entry.js → p-2c170dc6.system.entry.js} +1 -1
  247. package/lib/duet/{p-15491676.entry.js → p-2c74f36a.entry.js} +1 -1
  248. package/lib/duet/p-2ca556bd.entry.js +4 -0
  249. package/lib/duet/{p-0f832028.system.entry.js → p-2ebfba54.system.entry.js} +2 -2
  250. package/lib/duet/p-2ef88161.system.js +4 -0
  251. package/lib/duet/{p-b5eb7f56.system.entry.js → p-31252f4a.system.entry.js} +1 -1
  252. package/lib/duet/{p-a563982e.system.entry.js → p-33ef2855.system.entry.js} +1 -1
  253. package/lib/duet/{p-cdcabbcb.entry.js → p-33f2a44e.entry.js} +1 -1
  254. package/lib/duet/{p-e50172c5.system.entry.js → p-3406f73d.system.entry.js} +2 -2
  255. package/lib/duet/{p-3e69e46e.entry.js → p-35539173.entry.js} +1 -1
  256. package/lib/duet/{p-229df87f.system.entry.js → p-35ba9699.system.entry.js} +2 -2
  257. package/lib/duet/{p-2caf0416.system.entry.js → p-38547565.system.entry.js} +2 -2
  258. package/lib/duet/{p-b6e277a1.entry.js → p-393e06fc.entry.js} +1 -1
  259. package/lib/duet/p-396dce30.entry.js +4 -0
  260. package/lib/duet/p-39a2d6f7.system.entry.js +4 -0
  261. package/lib/duet/{p-ce9d1284.system.entry.js → p-3a3bd672.system.entry.js} +1 -1
  262. package/lib/duet/{p-6ddb8a89.entry.js → p-3eb94a67.entry.js} +1 -1
  263. package/lib/duet/{p-64689daf.entry.js → p-3f45ca7b.entry.js} +1 -1
  264. package/lib/duet/{p-59076cae.entry.js → p-40276f4e.entry.js} +1 -1
  265. package/lib/duet/{p-9264d821.entry.js → p-427cbdfe.entry.js} +1 -1
  266. package/lib/duet/{p-3c178cbd.system.entry.js → p-4444cfb8.system.entry.js} +1 -1
  267. package/lib/duet/{p-2512dbc9.system.entry.js → p-452cb659.system.entry.js} +2 -2
  268. package/lib/duet/{p-6eaa227c.system.entry.js → p-47f3c160.system.entry.js} +1 -1
  269. package/lib/duet/{p-9c8786d8.entry.js → p-495582a5.entry.js} +1 -1
  270. package/lib/duet/{p-93b95959.entry.js → p-4be8874a.entry.js} +1 -1
  271. package/lib/duet/{p-85a0df90.system.entry.js → p-4c699ac2.system.entry.js} +1 -1
  272. package/lib/duet/{p-1aa20ab7.entry.js → p-4c6d9583.entry.js} +1 -1
  273. package/lib/duet/{p-513a7695.entry.js → p-4fafb7d6.entry.js} +1 -1
  274. package/lib/duet/{p-1e13b45e.entry.js → p-52148128.entry.js} +1 -1
  275. package/lib/duet/p-54c2f367.entry.js +4 -0
  276. package/lib/duet/{p-abb2234e.system.entry.js → p-55cbf1e0.system.entry.js} +2 -2
  277. package/lib/duet/{p-715de0da.system.entry.js → p-5607a0a7.system.entry.js} +1 -1
  278. package/lib/duet/{p-2e97fd2e.entry.js → p-563485d2.entry.js} +1 -1
  279. package/lib/duet/p-5a0333a6.entry.js +4 -0
  280. package/lib/duet/p-5a17a015.js +15 -0
  281. package/lib/duet/{p-5e1919f6.entry.js → p-5b5bdf1a.entry.js} +1 -1
  282. package/lib/duet/{p-0ad201e5.entry.js → p-5c3be505.entry.js} +1 -1
  283. package/lib/duet/{p-f7cde9df.entry.js → p-5fe54705.entry.js} +1 -1
  284. package/lib/duet/{p-b4305d0a.system.entry.js → p-630b0aee.system.entry.js} +2 -2
  285. package/lib/duet/{p-6101021f.system.entry.js → p-6705969f.system.entry.js} +2 -2
  286. package/lib/duet/{p-97994ff7.system.entry.js → p-67e40f5a.system.entry.js} +1 -1
  287. package/lib/duet/p-6c05e879.js +4 -0
  288. package/lib/duet/p-6f0ce728.system.entry.js +4 -0
  289. package/lib/duet/p-6fe86c6a.system.entry.js +4 -0
  290. package/lib/duet/{p-361f1e5a.system.entry.js → p-7385646e.system.entry.js} +2 -2
  291. package/lib/duet/{p-97e511b5.entry.js → p-7881585e.entry.js} +1 -1
  292. package/lib/duet/p-79230071.system.entry.js +4 -0
  293. package/lib/duet/p-79a9746e.js +1 -1
  294. package/lib/duet/{p-e57031c1.entry.js → p-7a6d0da2.entry.js} +1 -1
  295. package/lib/duet/{p-faae74b5.system.entry.js → p-7b0e565a.system.entry.js} +1 -1
  296. package/lib/duet/{p-98686c85.system.entry.js → p-7c21c7b2.system.entry.js} +1 -1
  297. package/lib/duet/{p-9faea5f0.entry.js → p-7e177248.entry.js} +1 -1
  298. package/lib/duet/{p-b00a028b.entry.js → p-812b157d.entry.js} +1 -1
  299. package/lib/duet/p-815ba656.system.entry.js +4 -0
  300. package/lib/duet/{p-7b6e0f85.entry.js → p-81a9673b.entry.js} +1 -1
  301. package/lib/duet/{p-3328db18.system.entry.js → p-83e0a386.system.entry.js} +1 -1
  302. package/lib/duet/{p-41bb6838.entry.js → p-8694aa9f.entry.js} +1 -1
  303. package/lib/duet/{p-c20350ab.system.entry.js → p-88b30828.system.entry.js} +1 -1
  304. package/lib/duet/{p-8b0d9081.system.entry.js → p-8ce83440.system.entry.js} +2 -2
  305. package/lib/duet/p-9052b6f5.js +1 -1
  306. package/lib/duet/{p-d7dba7ef.system.entry.js → p-9285796a.system.entry.js} +1 -1
  307. package/lib/duet/{p-0a66156e.entry.js → p-94aed15c.entry.js} +1 -1
  308. package/lib/duet/{p-43c49efe.entry.js → p-9938e39c.entry.js} +1 -1
  309. package/lib/duet/{p-ce147403.system.entry.js → p-9b062a1c.system.entry.js} +2 -2
  310. package/lib/duet/{p-6c280f89.entry.js → p-a27366e9.entry.js} +1 -1
  311. package/lib/duet/{p-60749162.system.entry.js → p-a3eb0816.system.entry.js} +2 -2
  312. package/lib/duet/{p-df355346.system.js → p-aa46e5b8.system.js} +1 -1
  313. package/lib/duet/{p-31ee64dd.system.entry.js → p-aa915061.system.entry.js} +1 -1
  314. package/lib/duet/p-aa9eef98.system.entry.js +4 -0
  315. package/lib/duet/p-ab72659c.entry.js +4 -0
  316. package/lib/duet/p-ae3234af.system.entry.js +4 -0
  317. package/lib/duet/{p-28ad9ea4.system.entry.js → p-b0361d6a.system.entry.js} +1 -1
  318. package/lib/duet/p-b32f4c37.system.js +5 -0
  319. package/lib/duet/p-b55995ae.system.entry.js +4 -0
  320. package/lib/duet/{p-1e1399f1.system.entry.js → p-b6d674ce.system.entry.js} +1 -1
  321. package/lib/duet/{p-f18ade76.system.entry.js → p-b744dbba.system.entry.js} +2 -2
  322. package/lib/duet/{p-6876fae1.entry.js → p-b791aabb.entry.js} +1 -1
  323. package/lib/duet/{p-e4c09798.entry.js → p-b868a149.entry.js} +1 -1
  324. package/lib/duet/{p-2487f6d3.entry.js → p-b89a4172.entry.js} +1 -1
  325. package/lib/duet/{p-4c83be57.entry.js → p-bbd64ff4.entry.js} +1 -1
  326. package/lib/duet/{p-bc3b08f1.system.entry.js → p-bbf6eb36.system.entry.js} +1 -1
  327. package/lib/duet/{p-effcbf69.entry.js → p-be3de0f9.entry.js} +1 -1
  328. package/lib/duet/{p-f32a7df7.entry.js → p-c1a863fa.entry.js} +1 -1
  329. package/lib/duet/p-c27afab2.entry.js +4 -0
  330. package/lib/duet/p-c4d8cad0.js +1 -1
  331. package/lib/duet/{p-106a741f.entry.js → p-c6612c3f.entry.js} +1 -1
  332. package/lib/duet/{p-21fe5a95.entry.js → p-c8946e4e.entry.js} +1 -1
  333. package/lib/duet/p-cbc1cdf4.system.entry.js +4 -0
  334. package/lib/duet/p-ccc3f9e9.entry.js +4 -0
  335. package/lib/duet/{p-ea6472ee.system.entry.js → p-cdf070ab.system.entry.js} +1 -1
  336. package/lib/duet/{p-8b8c4430.system.entry.js → p-ced14b92.system.entry.js} +2 -2
  337. package/lib/duet/p-d56140a2.entry.js +4 -0
  338. package/lib/duet/p-d7713234.system.entry.js +4 -0
  339. package/lib/duet/{p-00d1faa8.system.entry.js → p-d7ef7aa4.system.entry.js} +2 -2
  340. package/lib/duet/{p-e8238bc0.entry.js → p-d989bb64.entry.js} +1 -1
  341. package/lib/duet/{p-0224239f.system.entry.js → p-da36ba6e.system.entry.js} +1 -1
  342. package/lib/duet/{p-68728106.entry.js → p-da4cf292.entry.js} +1 -1
  343. package/lib/duet/{p-5cf6e9e8.entry.js → p-dbe40b10.entry.js} +1 -1
  344. package/lib/duet/{p-d4fd1619.system.entry.js → p-dbf0d77a.system.entry.js} +1 -1
  345. package/lib/duet/{p-51816111.entry.js → p-dd3b2f92.entry.js} +1 -1
  346. package/lib/duet/{p-5f6d34d7.entry.js → p-de57ee9e.entry.js} +1 -1
  347. package/lib/duet/{p-6295446a.system.entry.js → p-e0628a33.system.entry.js} +2 -2
  348. package/lib/duet/{p-80b5a050.entry.js → p-e0a6ce6f.entry.js} +1 -1
  349. package/lib/duet/{p-c282e7ea.system.entry.js → p-e36abf9f.system.entry.js} +2 -2
  350. package/lib/duet/{p-45b6203e.entry.js → p-e447d590.entry.js} +1 -1
  351. package/lib/duet/{p-ac573362.entry.js → p-eb54ff63.entry.js} +1 -1
  352. package/lib/duet/{p-c29992ea.system.entry.js → p-eb7d40bf.system.entry.js} +2 -2
  353. package/lib/duet/p-ed665738.entry.js +4 -0
  354. package/lib/duet/{p-54b1d0e3.entry.js → p-ee43b8cc.entry.js} +1 -1
  355. package/lib/duet/{p-8abf23da.system.entry.js → p-eebe30a6.system.entry.js} +2 -2
  356. package/lib/duet/{p-1ad4d522.entry.js → p-f2654f02.entry.js} +1 -1
  357. package/lib/duet/p-f2c39318.entry.js +4 -0
  358. package/lib/duet/{p-f707d7e2.system.entry.js → p-f46d2cdf.system.entry.js} +2 -2
  359. package/lib/duet/{p-65368604.system.entry.js → p-f4c24c1a.system.entry.js} +1 -1
  360. package/lib/duet/{p-886d12fc.entry.js → p-f74665b5.entry.js} +1 -1
  361. package/lib/duet/p-f7781ab9.system.js +4 -0
  362. package/lib/duet/{p-a05f0aa4.system.entry.js → p-f795fec5.system.entry.js} +1 -1
  363. package/lib/duet/{p-a1b78e12.entry.js → p-fcac77ef.entry.js} +1 -1
  364. package/lib/esm/{dom-4d9c03f4.js → dom-d10a1938.js} +1 -1
  365. package/lib/esm/duet-action-button.entry.js +2 -2
  366. package/lib/esm/duet-alert.entry.js +20 -5
  367. package/lib/esm/duet-badge.entry.js +1 -1
  368. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  369. package/lib/esm/duet-breadcrumbs.entry.js +2 -2
  370. package/lib/esm/duet-button_2.entry.js +2 -2
  371. package/lib/esm/duet-caption_4.entry.js +6 -4
  372. package/lib/esm/duet-card.entry.js +1 -1
  373. package/lib/esm/duet-checkbox.entry.js +1 -1
  374. package/lib/esm/duet-checkmark.entry.js +1 -1
  375. package/lib/esm/duet-choice_2.entry.js +3 -3
  376. package/lib/esm/duet-collapsible.entry.js +2 -2
  377. package/lib/esm/duet-combobox.entry.js +2 -2
  378. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  379. package/lib/esm/duet-date-picker.entry.js +3 -3
  380. package/lib/esm/duet-divider_2.entry.js +1 -1
  381. package/lib/esm/duet-editable-table_3.entry.js +5 -5
  382. package/lib/esm/duet-empty-state.entry.js +1 -1
  383. package/lib/esm/duet-fieldset.entry.js +2 -2
  384. package/lib/esm/duet-footer.entry.js +2 -2
  385. package/lib/esm/duet-grid_2.entry.js +1 -1
  386. package/lib/esm/duet-header_2.entry.js +8 -2
  387. package/lib/esm/duet-hero.entry.js +4 -4
  388. package/lib/esm/duet-icon.entry.js +1 -1
  389. package/lib/esm/duet-input_2.entry.js +30 -19
  390. package/lib/esm/duet-layout.entry.js +1 -1
  391. package/lib/esm/duet-list_2.entry.js +1 -1
  392. package/lib/esm/duet-menu-bar-button.entry.js +2 -2
  393. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +1 -1
  394. package/lib/esm/duet-menu-bar-dropdown.entry.js +2 -2
  395. package/lib/esm/duet-menu-bar-link.entry.js +2 -2
  396. package/lib/esm/duet-menu-bar.entry.js +2 -2
  397. package/lib/esm/duet-modal.entry.js +3 -3
  398. package/lib/esm/duet-multiselect.entry.js +2 -2
  399. package/lib/esm/duet-nav.entry.js +4 -4
  400. package/lib/esm/duet-notification_2.entry.js +2 -2
  401. package/lib/esm/duet-number-input.entry.js +2 -2
  402. package/lib/esm/duet-page-heading.entry.js +1 -1
  403. package/lib/esm/duet-pagination_2.entry.js +17 -3
  404. package/lib/esm/duet-progress.entry.js +2 -2
  405. package/lib/esm/duet-radio_2.entry.js +1 -1
  406. package/lib/esm/duet-range-slider.entry.js +1 -1
  407. package/lib/esm/duet-scrollable_3.entry.js +18 -19
  408. package/lib/esm/duet-section-layout.entry.js +1 -1
  409. package/lib/esm/duet-select.entry.js +1 -1
  410. package/lib/esm/duet-slideout-lang.entry.js +2 -2
  411. package/lib/esm/duet-slideout-link.entry.js +1 -1
  412. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  413. package/lib/esm/duet-slideout-panel.entry.js +3 -3
  414. package/lib/esm/duet-slideout.entry.js +6 -5
  415. package/lib/esm/duet-step_2.entry.js +1 -1
  416. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +1 -1
  417. package/lib/esm/duet-submenu-bar-dropdown.entry.js +1 -1
  418. package/lib/esm/duet-submenu-bar-link.entry.js +1 -1
  419. package/lib/esm/duet-submenu-bar.entry.js +1 -1
  420. package/lib/esm/duet-textarea.entry.js +1 -1
  421. package/lib/esm/duet-toggle.entry.js +1 -1
  422. package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -1
  423. package/lib/esm/duet-toolbar-dropdown.entry.js +1 -1
  424. package/lib/esm/duet-toolbar-link.entry.js +1 -1
  425. package/lib/esm/duet-toolbar.entry.js +2 -2
  426. package/lib/esm/duet-tooltip.entry.js +2 -2
  427. package/lib/esm/duet-tray.entry.js +2 -2
  428. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  429. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  430. package/lib/esm/duet.js +23 -4
  431. package/lib/esm/{focus-utils-fd1ff36a.js → focus-utils-7b317f32.js} +1 -1
  432. package/lib/esm/{index-4ce7972b.js → index-849c698d.js} +113 -5
  433. package/lib/esm/{language-utils-bf701d37.js → language-utils-7b211f31.js} +35 -1
  434. package/lib/esm/loader.js +4 -3
  435. package/lib/esm/polyfills/css-shim.js +1 -1
  436. package/lib/{dist-custom-elements/p-e2cd1c98.js → esm/shadow-css-e76e6e1c.js} +1 -1
  437. package/lib/esm-es5/duet-action-button.entry.js +2 -2
  438. package/lib/esm-es5/duet-alert.entry.js +2 -2
  439. package/lib/esm-es5/duet-badge.entry.js +1 -1
  440. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  441. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  442. package/lib/esm-es5/duet-button_2.entry.js +2 -2
  443. package/lib/esm-es5/duet-caption_4.entry.js +2 -2
  444. package/lib/esm-es5/duet-card.entry.js +2 -2
  445. package/lib/esm-es5/duet-checkbox.entry.js +2 -2
  446. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  447. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  448. package/lib/esm-es5/duet-collapsible.entry.js +2 -2
  449. package/lib/esm-es5/duet-combobox.entry.js +2 -2
  450. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  451. package/lib/esm-es5/duet-date-picker.entry.js +2 -2
  452. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  453. package/lib/esm-es5/duet-editable-table_3.entry.js +2 -2
  454. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  455. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  456. package/lib/esm-es5/duet-footer.entry.js +2 -2
  457. package/lib/esm-es5/duet-grid_2.entry.js +2 -2
  458. package/lib/esm-es5/duet-header_2.entry.js +2 -2
  459. package/lib/esm-es5/duet-hero.entry.js +2 -2
  460. package/lib/esm-es5/duet-icon.entry.js +2 -2
  461. package/lib/esm-es5/duet-input_2.entry.js +2 -2
  462. package/lib/esm-es5/duet-layout.entry.js +1 -1
  463. package/lib/esm-es5/duet-list_2.entry.js +2 -2
  464. package/lib/esm-es5/duet-menu-bar-button.entry.js +2 -2
  465. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  466. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  467. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  468. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  469. package/lib/esm-es5/duet-modal.entry.js +2 -2
  470. package/lib/esm-es5/duet-multiselect.entry.js +2 -2
  471. package/lib/esm-es5/duet-nav.entry.js +1 -1
  472. package/lib/esm-es5/duet-notification_2.entry.js +2 -2
  473. package/lib/esm-es5/duet-number-input.entry.js +2 -2
  474. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  475. package/lib/esm-es5/duet-pagination_2.entry.js +2 -2
  476. package/lib/esm-es5/duet-progress.entry.js +1 -1
  477. package/lib/esm-es5/duet-radio_2.entry.js +2 -2
  478. package/lib/esm-es5/duet-range-slider.entry.js +2 -2
  479. package/lib/esm-es5/duet-scrollable_3.entry.js +2 -2
  480. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  481. package/lib/esm-es5/duet-select.entry.js +2 -2
  482. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  483. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  484. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  485. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  486. package/lib/esm-es5/duet-slideout.entry.js +2 -2
  487. package/lib/esm-es5/duet-step_2.entry.js +2 -2
  488. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  489. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  490. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  491. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  492. package/lib/esm-es5/duet-textarea.entry.js +2 -2
  493. package/lib/esm-es5/duet-toggle.entry.js +2 -2
  494. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  495. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  496. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  497. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  498. package/lib/esm-es5/duet-tooltip.entry.js +2 -2
  499. package/lib/esm-es5/duet-tray.entry.js +1 -1
  500. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  501. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  502. package/lib/esm-es5/duet.js +1 -1
  503. package/lib/esm-es5/focus-utils-7b317f32.js +4 -0
  504. package/lib/esm-es5/index-849c698d.js +5 -0
  505. package/lib/esm-es5/{language-utils-bf701d37.js → language-utils-7b211f31.js} +1 -1
  506. package/lib/esm-es5/loader.js +1 -1
  507. package/lib/loader/index.d.ts +9 -0
  508. package/lib/types/components/duet-action-button/duet-action-button.d.ts +2 -2
  509. package/lib/types/components/duet-alert/duet-alert.d.ts +5 -1
  510. package/lib/types/components/duet-button/duet-button.d.ts +6 -6
  511. package/lib/types/components/duet-caption/duet-caption.d.ts +1 -1
  512. package/lib/types/components/duet-card/duet-card.d.ts +3 -3
  513. package/lib/types/components/duet-checkbox/duet-checkbox.d.ts +1 -1
  514. package/lib/types/components/duet-choice/duet-choice.d.ts +2 -2
  515. package/lib/types/components/duet-collapsible/duet-collapsible.d.ts +3 -3
  516. package/lib/types/components/duet-combobox/duet-combobox.d.ts +2 -2
  517. package/lib/types/components/duet-cookie-consent/duet-cookie-consent.d.ts +2 -2
  518. package/lib/types/components/duet-date-picker/date-i18n.d.ts +3 -3
  519. package/lib/types/components/duet-date-picker/date-picker-day.d.ts +1 -1
  520. package/lib/types/components/duet-date-picker/date-picker-input.d.ts +1 -1
  521. package/lib/types/components/duet-date-picker/date-picker-month.d.ts +1 -1
  522. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +3 -3
  523. package/lib/types/components/duet-divider/duet-divider.d.ts +1 -1
  524. package/lib/types/components/duet-editable-table/duet-editable-table.d.ts +8 -8
  525. package/lib/types/components/duet-empty-state/duet-empty-state.d.ts +1 -1
  526. package/lib/types/components/duet-footer/duet-footer.d.ts +5 -5
  527. package/lib/types/components/duet-grid/duet-grid.d.ts +3 -3
  528. package/lib/types/components/duet-header/duet-header.d.ts +9 -9
  529. package/lib/types/components/duet-heading/duet-heading.d.ts +1 -1
  530. package/lib/types/components/duet-hero/duet-hero.d.ts +8 -8
  531. package/lib/types/components/duet-icon/duet-icon.d.ts +1 -1
  532. package/lib/types/components/duet-input/duet-input.d.ts +8 -5
  533. package/lib/types/components/duet-label/duet-label.d.ts +2 -2
  534. package/lib/types/components/duet-layout/duet-layout.d.ts +1 -1
  535. package/lib/types/components/duet-list/duet-list.d.ts +4 -4
  536. package/lib/types/components/duet-logo/duet-logo.d.ts +3 -1
  537. package/lib/types/components/duet-menu-bar/duet-menu-bar.d.ts +1 -1
  538. package/lib/types/components/duet-modal/duet-modal.d.ts +2 -2
  539. package/lib/types/components/duet-multiselect/duet-multiselect.d.ts +2 -2
  540. package/lib/types/components/duet-nav/duet-nav.d.ts +1 -1
  541. package/lib/types/components/duet-notification-drawer/duet-notification-drawer.d.ts +1 -1
  542. package/lib/types/components/duet-number-input/duet-number-input.d.ts +1 -1
  543. package/lib/types/components/duet-pagination/duet-pagination.d.ts +2 -2
  544. package/lib/types/components/duet-paragraph/duet-paragraph.d.ts +3 -3
  545. package/lib/types/components/duet-progress/duet-progress.d.ts +1 -1
  546. package/lib/types/components/duet-radio/duet-radio.d.ts +1 -1
  547. package/lib/types/components/duet-range-slider/duet-range-slider.d.ts +1 -1
  548. package/lib/types/components/duet-range-stepper/duet-range-stepper.d.ts +9 -2
  549. package/lib/types/components/duet-select/duet-select.d.ts +5 -5
  550. package/lib/types/components/duet-slideout/duet-slideout.d.ts +3 -4
  551. package/lib/types/components/duet-spacer/duet-spacer.d.ts +2 -2
  552. package/lib/types/components/duet-spinner/duet-spinner.d.ts +1 -1
  553. package/lib/types/components/duet-step/duet-step.d.ts +2 -2
  554. package/lib/types/components/duet-stepper/duet-stepper.d.ts +1 -1
  555. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +2 -2
  556. package/lib/types/components/duet-table/duet-table.d.ts +4 -4
  557. package/lib/types/components/duet-textarea/duet-textarea.d.ts +1 -1
  558. package/lib/types/components/duet-toggle/duet-toggle.d.ts +1 -1
  559. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +1 -1
  560. package/lib/types/components/duet-upload/duet-upload.d.ts +6 -6
  561. package/lib/types/components/duet-upload/errorcodes.utils.d.ts +2 -2
  562. package/lib/types/components/duet-upload/xhr.helpers.d.ts +5 -5
  563. package/lib/types/components/duet-upload-aria-status/duet-upload-aria-status.d.ts +1 -1
  564. package/lib/types/components.d.ts +6 -4
  565. package/lib/types/stencil-public-runtime.d.ts +59 -3
  566. package/lib/types/utils/fixture-utils.d.ts +1 -1
  567. package/lib/types/utils/focus-utils.d.ts +1 -1
  568. package/lib/types/utils/language-utils.d.ts +4 -1
  569. package/lib/types/utils/test-utils.d.ts +2 -2
  570. package/lib/types/utils/token-utils.d.ts +1 -1
  571. package/package.json +17 -22
  572. package/lib/duet/p-1d3eea4d.entry.js +0 -4
  573. package/lib/duet/p-207a0c1c.system.entry.js +0 -4
  574. package/lib/duet/p-23f53cd4.entry.js +0 -4
  575. package/lib/duet/p-27047a6b.system.entry.js +0 -4
  576. package/lib/duet/p-3cf5edbe.system.entry.js +0 -4
  577. package/lib/duet/p-3ee4e5c9.system.js +0 -5
  578. package/lib/duet/p-3f03edf8.entry.js +0 -4
  579. package/lib/duet/p-564a241d.entry.js +0 -4
  580. package/lib/duet/p-673781c4.system.entry.js +0 -4
  581. package/lib/duet/p-6dcd0742.system.entry.js +0 -4
  582. package/lib/duet/p-6e299197.js +0 -5
  583. package/lib/duet/p-73dc5bf7.system.entry.js +0 -4
  584. package/lib/duet/p-7a8021a0.entry.js +0 -4
  585. package/lib/duet/p-80d19e6c.entry.js +0 -4
  586. package/lib/duet/p-9753f842.system.entry.js +0 -4
  587. package/lib/duet/p-ab1058cc.entry.js +0 -4
  588. package/lib/duet/p-ac760895.system.entry.js +0 -4
  589. package/lib/duet/p-b0d707dc.system.entry.js +0 -4
  590. package/lib/duet/p-b1bf336d.entry.js +0 -4
  591. package/lib/duet/p-b7d31c4f.system.entry.js +0 -4
  592. package/lib/duet/p-b7d5c170.entry.js +0 -4
  593. package/lib/duet/p-b95cf5f3.entry.js +0 -4
  594. package/lib/duet/p-be2f66e7.entry.js +0 -4
  595. package/lib/duet/p-cf320f27.entry.js +0 -4
  596. package/lib/duet/p-d3f5238b.system.js +0 -4
  597. package/lib/duet/p-e0508afa.system.entry.js +0 -4
  598. package/lib/duet/p-e11e19e6.system.entry.js +0 -4
  599. package/lib/duet/p-e2cd1c98.js +0 -15
  600. package/lib/duet/p-e44d8e24.system.entry.js +0 -4
  601. package/lib/duet/p-ede854e1.js +0 -4
  602. package/lib/duet/p-f69b64c9.system.js +0 -4
  603. package/lib/esm-es5/focus-utils-fd1ff36a.js +0 -4
  604. package/lib/esm-es5/index-4ce7972b.js +0 -5
  605. /package/lib/duet/{p-da0d4ee3.system.js → p-43179518.system.js} +0 -0
  606. /package/lib/duet/{p-07970d29.js → p-49dfa097.js} +0 -0
  607. /package/lib/duet/{p-73900354.system.js → p-524ad48c.system.js} +0 -0
  608. /package/lib/esm-es5/{dom-4d9c03f4.js → dom-d10a1938.js} +0 -0
  609. /package/lib/esm-es5/{shadow-css-a011f1fe.js → shadow-css-e76e6e1c.js} +0 -0
@@ -8,7 +8,7 @@ import { inheritGlobalTheme } from "../../common";
8
8
  import { createID } from "../../utils/create-id";
9
9
  import { cleanValue, resetCursor } from "../../utils/input-utils";
10
10
  import { isEnterKey, isEscapeKey } from "../../utils/keyboard-utils";
11
- import { getLocaleString } from "../../utils/language-utils";
11
+ import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, } from "../../utils/language-utils";
12
12
  const icons = {
13
13
  search: searchIcon,
14
14
  email: emailIcon,
@@ -25,36 +25,36 @@ export class DuetInput {
25
25
  this.topCaptionPlaceholderId = createID("DuetCaptionPlaceholderTop");
26
26
  this.errorId = createID("DuetError");
27
27
  this.disallowPatternRegex = null;
28
- this.clearLabel = getLocaleString({
28
+ this.clearLabel = {
29
29
  en: "Clear",
30
30
  fi: "Tyhjennä",
31
31
  sv: "Rensa",
32
- });
33
- this.timeAnnouncement = getLocaleString({
32
+ };
33
+ this.timeAnnouncement = {
34
34
  en: "Time",
35
35
  fi: "Aika",
36
36
  sv: "Tid",
37
- });
38
- this.showPasswordLabel = getLocaleString({
37
+ };
38
+ this.showPasswordLabel = {
39
39
  en: "Show password",
40
40
  fi: "Näytä salasana",
41
41
  sv: "Visa lösenord",
42
- });
43
- this.hidePasswordLabel = getLocaleString({
42
+ };
43
+ this.hidePasswordLabel = {
44
44
  en: "Hide password",
45
45
  fi: "Piilota salasana",
46
46
  sv: "Dölj lösenord",
47
- });
48
- this.passwordShownAriaAnnouncement = getLocaleString({
47
+ };
48
+ this.passwordShownAriaAnnouncement = {
49
49
  en: "Password is shown",
50
50
  fi: "Salasana näytetään",
51
51
  sv: "Lösenordet visas",
52
- });
53
- this.passwordHiddenAriaAnnouncement = getLocaleString({
52
+ };
53
+ this.passwordHiddenAriaAnnouncement = {
54
54
  en: "Password is hidden",
55
55
  fi: "Salasana on piilotettu",
56
56
  sv: "Lösenordet är dolt",
57
- });
57
+ };
58
58
  /**
59
59
  * Component event handling.
60
60
  */
@@ -74,7 +74,7 @@ export class DuetInput {
74
74
  if (ev.relatedTarget === this.nativeInput || ev.relatedTarget === this.togglePasswordRevealedButton) {
75
75
  return;
76
76
  }
77
- if (this.variation === "revealable") {
77
+ if (this.variation === "revealable" && this.isPasswordRevealed) {
78
78
  this.isPasswordRevealed = false;
79
79
  }
80
80
  this.isFocused = false;
@@ -146,7 +146,8 @@ export class DuetInput {
146
146
  }
147
147
  return this.type;
148
148
  };
149
- this.isPasswordRevealed = false;
149
+ this.language = getLanguage();
150
+ this.isPasswordRevealed = undefined;
150
151
  this.isFocused = false;
151
152
  this.accessibleActiveDescendant = undefined;
152
153
  this.accessibleAutocomplete = undefined;
@@ -170,7 +171,7 @@ export class DuetInput {
170
171
  this.required = false;
171
172
  this.type = "text";
172
173
  this.variation = "default";
173
- this.label = "label";
174
+ this.label = "Label";
174
175
  this.error = "";
175
176
  this.labelHidden = false;
176
177
  this.numericKeyboard = false;
@@ -228,6 +229,12 @@ export class DuetInput {
228
229
  });
229
230
  }
230
231
  }
232
+ connectedCallback() {
233
+ connectLanguageChangeObserver(this);
234
+ }
235
+ disconnectedCallback() {
236
+ disconnectLanguageChangeObserver(this);
237
+ }
231
238
  /**
232
239
  * Sets focus on the specified `duet-input`. Use this method instead of the global
233
240
  * `input.focus()`.
@@ -292,7 +299,7 @@ export class DuetInput {
292
299
  this.type !== "password" &&
293
300
  this.type !== "time" &&
294
301
  this.variation !== "button";
295
- return (h(Host, { class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" }, onKeyUp: e => this.keyHandler(e) }, this.type === "time" && (h("duet-visually-hidden", { "aria-live": "polite", "aria-atomic": "true" }, selectedTime ? `${this.timeAnnouncement} ${selectedTime.toLocaleTimeString()}` : "")), h("div", { class: {
302
+ return (h(Host, { class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" }, onKeyUp: e => this.keyHandler(e) }, this.type === "time" && (h("duet-visually-hidden", { "aria-live": "polite", "aria-atomic": "true" }, selectedTime ? `${this.timeAnnouncement[this.language]} ${selectedTime.toLocaleTimeString()}` : "")), h("div", { class: {
296
303
  "duet-input-container": true,
297
304
  "duet-theme-turva": this.theme === "turva",
298
305
  [`duet-input-variation-${this.variation}`]: true,
@@ -317,7 +324,11 @@ export class DuetInput {
317
324
  "duet-input-clear-icon-single": !hasInputIcon,
318
325
  "duet-input-clear-icon-double": !!this.icon,
319
326
  "duet-input-clear-icon-button": this.variation === "button",
320
- } }, h("button", { onClick: this.handleClearClick, id: this.clearId, "aria-label": this.clearLabel, "aria-keyshortcuts": "Escape" }, h("duet-icon", { margin: "none", size: "medium", name: "action-clear-input", color: "currentColor" })))), this.icon && this.variation !== "button" && (h("div", { class: "duet-input-icon" }, h("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.variation === "button" && h("slot", { name: "button" }), this.variation === "revealable" && (h("duet-button", { ref: button => (this.togglePasswordRevealedButton = button), onBlur: this.onBlur, onFocus: this.onFocus, onClick: this.togglePasswordRevealed, icon: this.isPasswordRevealed ? "action-hide" : "action-show", accessibleLabel: this.isPasswordRevealed ? this.hidePasswordLabel : this.showPasswordLabel, margin: "none", variation: "input-button-embedded", fixed: true, iconOnly: true })), this.variation === "revealable" && (h("duet-visually-hidden", null, h("span", { "aria-live": "polite" }, this.isPasswordRevealed ? this.passwordShownAriaAnnouncement : this.passwordHiddenAriaAnnouncement))), h("slot", null)), h("span", { class: "duet-input-help", id: this.errorId, "aria-atomic": "true", "aria-live": "polite", "aria-relevant": "additions removals" }, this.error && h("span", { class: "duet-input-error" }, this.error)))));
327
+ } }, h("button", { onClick: this.handleClearClick, id: this.clearId, "aria-label": this.clearLabel[this.language], "aria-keyshortcuts": "Escape" }, h("duet-icon", { margin: "none", size: "medium", name: "action-clear-input", color: "currentColor" })))), this.icon && this.variation !== "button" && (h("div", { class: "duet-input-icon" }, h("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.variation === "button" && h("slot", { name: "button" }), this.variation === "revealable" && (h("duet-button", { ref: button => (this.togglePasswordRevealedButton = button), onBlur: this.onBlur, onFocus: this.onFocus, onClick: this.togglePasswordRevealed, icon: this.isPasswordRevealed ? "action-hide" : "action-show", accessibleLabel: this.isPasswordRevealed
328
+ ? this.hidePasswordLabel[this.language]
329
+ : this.showPasswordLabel[this.language], margin: "none", variation: "input-button-embedded", fixed: true, iconOnly: true })), this.variation === "revealable" && this.isPasswordRevealed !== undefined && (h("duet-visually-hidden", null, h("span", { "aria-live": "polite" }, this.isPasswordRevealed
330
+ ? this.passwordShownAriaAnnouncement[this.language]
331
+ : this.passwordHiddenAriaAnnouncement[this.language]))), h("slot", null)), h("span", { class: "duet-input-help", id: this.errorId, "aria-atomic": "true", "aria-live": "polite", "aria-relevant": "additions removals" }, this.error && h("span", { class: "duet-input-error" }, this.error)))));
321
332
  }
322
333
  static get is() { return "duet-input"; }
323
334
  static get encapsulation() { return "scoped"; }
@@ -742,7 +753,7 @@ export class DuetInput {
742
753
  },
743
754
  "label": {
744
755
  "type": "string",
745
- "mutable": false,
756
+ "mutable": true,
746
757
  "complexType": {
747
758
  "original": "string",
748
759
  "resolved": "string",
@@ -756,7 +767,7 @@ export class DuetInput {
756
767
  },
757
768
  "attribute": "label",
758
769
  "reflect": false,
759
- "defaultValue": "\"label\""
770
+ "defaultValue": "\"Label\""
760
771
  },
761
772
  "error": {
762
773
  "type": "string",
@@ -1056,6 +1067,7 @@ export class DuetInput {
1056
1067
  }
1057
1068
  static get states() {
1058
1069
  return {
1070
+ "language": {},
1059
1071
  "isPasswordRevealed": {},
1060
1072
  "isFocused": {}
1061
1073
  };
@@ -57,7 +57,10 @@
57
57
  }
58
58
 
59
59
  .duet-link-external {
60
- margin-left: 4px;
60
+ position: absolute;
61
+ width: 20px;
62
+ height: 20px;
63
+ margin-left: -15px;
61
64
  }
62
65
 
63
66
  .duet-tab-to-link {
@@ -39,12 +39,14 @@ export class DuetLink {
39
39
  * Always the last one in the class.
40
40
  */
41
41
  render() {
42
+ // Notice that the external icon needs to be places right after the last word of the link.
43
+ // This is why we use &nbps; to keep everything on the same line.
42
44
  return (h(Host, null, h("a", { href: this.url, class: {
43
45
  "duet-link": true,
44
46
  "duet-link-is-external": this.external,
45
47
  "duet-tab-to-link": this.tabToLink,
46
48
  "duet-theme-turva": this.theme === "turva",
47
- }, 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 }, h("slot", null), Build.isBrowser && this.external && (h(Fragment, null, h("duet-visually-hidden", null, this.accessibleLabelExternal), h("span", { class: "duet-link-external" }, h("duet-icon", { icon: newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" })))))));
49
+ }, 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 }, h("slot", null), Build.isBrowser && this.external && (h(Fragment, null, "\u00A0\u00A0", h("duet-visually-hidden", null, this.accessibleLabelExternal), "\u00A0", h("span", { class: "duet-link-external" }, "\u00A0", h("duet-icon", { icon: newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" })))))));
48
50
  }
49
51
  static get is() { return "duet-link"; }
50
52
  static get encapsulation() { return "shadow"; }
@@ -5,7 +5,7 @@ import { colorBrandBlue, colorBrandGrayTurva, colorGrayLightest, colorPrimaryTur
5
5
  import { h, Host } from "@stencil/core";
6
6
  import { inheritGlobalTheme } from "../../common/themeable-component";
7
7
  import { createID } from "../../utils/create-id";
8
- import { getLanguage } from "../../utils/language-utils";
8
+ import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, } from "../../utils/language-utils";
9
9
  const TurvaLogo = ({ inverse, logoId }) => {
10
10
  const logoColor = inverse ? colorGrayLightest : colorBrandGrayTurva;
11
11
  const textColor = inverse ? colorGrayLightest : colorPrimaryTurva;
@@ -52,6 +52,12 @@ export class DuetLogo {
52
52
  componentWillLoad() {
53
53
  inheritGlobalTheme(this);
54
54
  }
55
+ connectedCallback() {
56
+ connectLanguageChangeObserver(this);
57
+ }
58
+ disconnectedCallback() {
59
+ disconnectLanguageChangeObserver(this);
60
+ }
55
61
  /**
56
62
  * Sets focus on the specified `duet-logo`. Use this method instead of the global
57
63
  * `logo.focus()`.
@@ -26,7 +26,7 @@ export class DuetMenuBar {
26
26
  const active = this.element.querySelector("[active]");
27
27
  if (active && active.offsetLeft) {
28
28
  if (active.offsetLeft > 50) {
29
- this.container.scrollLeft = active.offsetLeft;
29
+ this.container.scrollLeft = active.offsetLeft - this.element.offsetWidth / 2 + active.offsetWidth / 2;
30
30
  }
31
31
  }
32
32
  };
@@ -40,10 +40,10 @@
40
40
  }
41
41
  @media (min-width: 62em) {
42
42
  .duet-menu-bar-button {
43
- padding: 0 20px;
43
+ padding: 0 16px;
44
44
  }
45
45
  }
46
- @media (min-width: 64.0625em) {
46
+ @media (min-width: 76.25em) {
47
47
  .duet-menu-bar-button {
48
48
  padding: 0 28px;
49
49
  }
@@ -23,6 +23,17 @@
23
23
  height: 100%;
24
24
  }
25
25
 
26
+ @media (min-width: 62em) {
27
+ :host(:last-child) .duet-menu-bar-dropdown button {
28
+ padding: 0 16px 0 16px;
29
+ }
30
+ }
31
+ @media (min-width: 76.25em) {
32
+ :host(:last-child) .duet-menu-bar-dropdown button {
33
+ padding: 0 16px 0 28px;
34
+ }
35
+ }
36
+
26
37
  .duet-menu-bar-dropdown {
27
38
  position: relative;
28
39
  height: 100%;
@@ -47,10 +58,10 @@
47
58
  }
48
59
  @media (min-width: 62em) {
49
60
  .duet-menu-bar-dropdown button {
50
- padding: 0 20px;
61
+ padding: 0 16px;
51
62
  }
52
63
  }
53
- @media (min-width: 64.0625em) {
64
+ @media (min-width: 76.25em) {
54
65
  .duet-menu-bar-dropdown button {
55
66
  padding: 0 28px;
56
67
  }
@@ -35,13 +35,14 @@
35
35
  color: inherit;
36
36
  text-align: center;
37
37
  text-decoration: none;
38
+ white-space: nowrap;
38
39
  }
39
40
  @media (min-width: 62em) {
40
41
  .duet-menu-bar-link {
41
- padding: 0 20px;
42
+ padding: 0 16px;
42
43
  }
43
44
  }
44
- @media (min-width: 64.0625em) {
45
+ @media (min-width: 76.25em) {
45
46
  .duet-menu-bar-link {
46
47
  padding: 0 28px;
47
48
  }
@@ -63,7 +64,7 @@
63
64
  transition: 300ms ease;
64
65
  transform: translateY(2px);
65
66
  }
66
- @media (min-width: 64.0625em) {
67
+ @media (min-width: 62em) {
67
68
  .duet-menu-bar-link.active::after {
68
69
  z-index: auto;
69
70
  height: 2px;
@@ -8,7 +8,7 @@ import { inheritGlobalTheme } from "../../common/themeable-component";
8
8
  * @slot mobile - Slot for navigation in small viewports (less than 992px wide).
9
9
  * @slot desktop - Slot for navigation in large viewports (992px wide or more).
10
10
  */
11
- export class DuetMenuBar {
11
+ export class DuetNav {
12
12
  constructor() {
13
13
  this.theme = "";
14
14
  }
@@ -258,7 +258,8 @@ export class DuetPagination {
258
258
  }, role: "menubar", "aria-label": this.accessibleLabels.pagination_label, "aria-description": this.accessibleLabels.description }, h("li", { class: {
259
259
  "duet-pagination-page-button": true,
260
260
  "duet-pagination-button-first": true,
261
- }, role: "menuitem", part: "navigation-arrow" }, h("duet-action-button", { disabled: this.internalSectionIndex === 0 && this.current <= 1, "data-direction": "back", onClick: e => this.onMouseHandler(e, -1), "accessible-label": this.accessibleLabels.previous_page, "icon-name": "action-arrow-left-small", theme: this.theme })), this.internalSectionIndex !== 0 && this.shouldDisplayNavigation() && (h(Fragment, null, h("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h("duet-button", { class: "duet-pagination-link duet-pagination-link-jump-back", "center-text": "true", variation: "plain", color: this.theme !== "turva" ? "secondary" : "secondary-turva", margin: "none", accessibleLabel: this.accessibleLabels.first_page, onClick: e => this.jumpToStart(e), theme: this.theme }, h("div", { class: "duet-pagination-page-number" }, "1"))), h("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h("duet-button", { class: "duet-pagination-link duet-pagination-link-dots-back", "center-text": "true", color: this.theme !== "turva" ? "secondary" : "secondary-turva", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.prev_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, -1), theme: this.theme }, h("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))))), this.renderPageNumbers(), this.internalSectionIndex * (this.visibleItems + 2) < this.totalPages && this.shouldDisplayNavigation() && (h(Fragment, null, h("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h("duet-button", { class: "duet-pagination-link duet-pagination-link-dots-forward", "center-text": "true", color: this.theme !== "turva" ? "secondary" : "secondary-turva", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.next_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, 1), theme: this.theme }, h("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))), h("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h("duet-button", { class: "duet-pagination-link duet-pagination-link-jump-forward", "center-text": "true", color: this.theme !== "turva" ? "secondary" : "secondary-turva", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.last_page, onClick: e => this.jumpToEnd(e), theme: this.theme }, h("div", { class: "duet-pagination-page-number" }, this.totalPages))))), h("li", { class: {
261
+ }, role: "menuitem", part: "navigation-arrow" }, h("duet-action-button", { disabled: this.internalSectionIndex === 0 && this.current <= 1, "data-direction": "back", onClick: e => this.onMouseHandler(e, -1), "accessible-label": this.accessibleLabels.previous_page, "icon-name": "action-arrow-left-small", theme: this.theme })), this.internalSectionIndex !== 0 && this.shouldDisplayNavigation() && (h(Fragment, null, h("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h("duet-button", { class: "duet-pagination-link duet-pagination-link-jump-back", "center-text": "true", variation: "plain", color: this.theme !== "turva" ? "secondary" : "secondary-turva", margin: "none", accessibleLabel: this.accessibleLabels.first_page, onClick: e => this.jumpToStart(e), theme: this.theme }, h("div", { class: "duet-pagination-page-number" }, "1"))), h("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h("duet-button", { class: "duet-pagination-link duet-pagination-link-dots-back", "center-text": "true", color: this.theme !== "turva" ? "secondary" : "secondary-turva", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.prev_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, -1), theme: this.theme }, h("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))))), this.renderPageNumbers(), this.internalSectionIndex * (this.visibleItems + 2) < this.totalPages &&
262
+ this.shouldDisplayNavigation() && (h(Fragment, null, h("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h("duet-button", { class: "duet-pagination-link duet-pagination-link-dots-forward", "center-text": "true", color: this.theme !== "turva" ? "secondary" : "secondary-turva", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.next_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, 1), theme: this.theme }, h("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))), h("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h("duet-button", { class: "duet-pagination-link duet-pagination-link-jump-forward", "center-text": "true", color: this.theme !== "turva" ? "secondary" : "secondary-turva", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.last_page, onClick: e => this.jumpToEnd(e), theme: this.theme }, h("div", { class: "duet-pagination-page-number" }, this.totalPages))))), h("li", { class: {
262
263
  "duet-pagination-page-button": true,
263
264
  "duet-pagination-button-last": true,
264
265
  }, role: "menuitem", part: "navigation-arrow" }, h("duet-action-button", { disabled: this.current === this.totalPages &&
@@ -5,7 +5,7 @@ import { h } from "@stencil/core";
5
5
  import { inheritGlobalTheme } from "../../common/themeable-component";
6
6
  import { createID } from "../../utils/create-id";
7
7
  import { isArrowDownKey, isArrowKey, isArrowLeftKey, isArrowRightKey, isArrowUpKey, isMinusKey, isPlusKey, } from "../../utils/keyboard-utils";
8
- import { getLocaleString } from "../../utils/language-utils";
8
+ import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocaleString, } from "../../utils/language-utils";
9
9
  /**
10
10
  * @part navigation-arrow - this part enables style overrides for the navigation-arrow
11
11
  * @part range-numbers - this part enables style overrides for the range-numbers
@@ -20,6 +20,7 @@ export class DuetRangeStepper {
20
20
  this.clampStepIndex();
21
21
  this.handleStepClick(e);
22
22
  };
23
+ this.language = getLanguage();
23
24
  this.theme = "";
24
25
  this.stepIndex = 1;
25
26
  this.stepSize = 50;
@@ -44,6 +45,11 @@ export class DuetRangeStepper {
44
45
  this.ariaLabels = getLocaleString(this.ariaLabelsDefaults);
45
46
  this.ariaControls = "";
46
47
  }
48
+ watchLanguageStateHandler(newValue, oldValue) {
49
+ if (newValue !== oldValue && this.ariaLabels === this.ariaLabelsDefaults[oldValue]) {
50
+ this.ariaLabels = getLocaleString(this.ariaLabelsDefaults, newValue);
51
+ }
52
+ }
47
53
  watchStepIndexStateHandler(newValue) {
48
54
  if (this.element.shadowRoot.childElementCount > 0) {
49
55
  if (newValue <= 1) {
@@ -85,6 +91,12 @@ export class DuetRangeStepper {
85
91
  componentDidLoad() {
86
92
  this.watchStepIndexStateHandler(this.stepIndex);
87
93
  }
94
+ connectedCallback() {
95
+ connectLanguageChangeObserver(this);
96
+ }
97
+ disconnectedCallback() {
98
+ disconnectLanguageChangeObserver(this);
99
+ }
88
100
  clampStepIndex() {
89
101
  if (this.stepIndex < 1) {
90
102
  this.stepIndex = 1;
@@ -261,7 +273,7 @@ export class DuetRangeStepper {
261
273
  },
262
274
  "ariaLabels": {
263
275
  "type": "unknown",
264
- "mutable": false,
276
+ "mutable": true,
265
277
  "complexType": {
266
278
  "original": "Record<string, string>",
267
279
  "resolved": "{ [x: string]: string; }",
@@ -299,6 +311,11 @@ export class DuetRangeStepper {
299
311
  }
300
312
  };
301
313
  }
314
+ static get states() {
315
+ return {
316
+ "language": {}
317
+ };
318
+ }
302
319
  static get events() {
303
320
  return [{
304
321
  "method": "duetRangeStepUpdate",
@@ -324,6 +341,9 @@ export class DuetRangeStepper {
324
341
  static get elementRef() { return "element"; }
325
342
  static get watchers() {
326
343
  return [{
344
+ "propName": "language",
345
+ "methodName": "watchLanguageStateHandler"
346
+ }, {
327
347
  "propName": "stepIndex",
328
348
  "methodName": "watchStepIndexStateHandler"
329
349
  }, {
@@ -76,7 +76,6 @@
76
76
  width: 100%;
77
77
  height: 100%;
78
78
  overflow-y: auto;
79
- background: white;
80
79
  box-shadow: 0 3px 6px 0 rgba(0, 41, 77, 0.1) inset;
81
80
  }
82
81
  @media (min-width: 62em) {
@@ -10,6 +10,7 @@ export class DuetSlideout {
10
10
  this.toggleMenu = (e) => {
11
11
  const toggle = !this.open;
12
12
  this.open = toggle;
13
+ this.openButton.setAttribute("aria-expanded", this.open.toString());
13
14
  this.duetSlideoutEvent.emit({
14
15
  originalEvent: e,
15
16
  data: { element: this.element, open: this.open },
@@ -31,7 +32,7 @@ export class DuetSlideout {
31
32
  };
32
33
  this.theme = "";
33
34
  this.open = false;
34
- this.background = "";
35
+ this.backgroundColor = "gray-lightest";
35
36
  }
36
37
  /**
37
38
  * Toggles the slideout.
@@ -74,7 +75,7 @@ export class DuetSlideout {
74
75
  */
75
76
  render() {
76
77
  const styles = {
77
- background: getColorByName(this.background, this.theme),
78
+ background: getColorByName(this.backgroundColor, this.theme),
78
79
  };
79
80
  return (h(Host, null, h("div", { class: { "duet-slideout": true, "duet-theme-turva": this.theme === "turva" } }, h("slot", { name: "toggle" }), h("div", { class: {
80
81
  "desktop-bg": true,
@@ -146,9 +147,9 @@ export class DuetSlideout {
146
147
  "reflect": true,
147
148
  "defaultValue": "false"
148
149
  },
149
- "background": {
150
+ "backgroundColor": {
150
151
  "type": "string",
151
- "mutable": false,
152
+ "mutable": true,
152
153
  "complexType": {
153
154
  "original": "DuetColor",
154
155
  "resolved": "string",
@@ -163,11 +164,11 @@ export class DuetSlideout {
163
164
  "optional": false,
164
165
  "docs": {
165
166
  "tags": [],
166
- "text": "Custom color to be used for a circular background, as a design token entered\nin camelCase or kebab-case.."
167
+ "text": "Background color. Use one of the color tokens."
167
168
  },
168
- "attribute": "background",
169
- "reflect": false,
170
- "defaultValue": "\"\""
169
+ "attribute": "background-color",
170
+ "reflect": true,
171
+ "defaultValue": "\"gray-lightest\""
171
172
  }
172
173
  };
173
174
  }
@@ -72,6 +72,26 @@
72
72
  overflow: visible;
73
73
  }
74
74
  }
75
+ .duet-tab-plain-scrolling .duet-tab-group-tabs {
76
+ display: flex;
77
+ overflow-x: scroll;
78
+ scroll-behavior: smooth;
79
+ /* Hide scrollbar for IE, Edge and Firefox */
80
+ -ms-overflow-style: none;
81
+ /* IE and Edge */
82
+ scrollbar-width: none;
83
+ /* Firefox */
84
+ /* Hide scrollbar for Chrome, Safari and Opera */
85
+ }
86
+ .duet-tab-plain-scrolling .duet-tab-group-tabs::-webkit-scrollbar {
87
+ display: none;
88
+ }
89
+ @media (min-width: 36em) {
90
+ .duet-tab-plain-scrolling .duet-tab-group-tabs {
91
+ display: block;
92
+ overflow: auto;
93
+ }
94
+ }
75
95
 
76
96
  @media (min-width: 36em) {
77
97
  duet-select {
@@ -31,9 +31,13 @@ export class DuetTabGroup {
31
31
  }
32
32
  };
33
33
  this.scrollToActive = () => {
34
- const active = this.tabsContainer.querySelector(".selected");
35
- if (active) {
36
- active.scrollIntoView({ behavior: "smooth", inline: "center", block: "nearest" });
34
+ if (this.variation === "checked" || this.variation === "plain-scrolling") {
35
+ setTimeout(() => {
36
+ const active = this.tabsContainer.querySelector(".selected");
37
+ if (active) {
38
+ active.scrollIntoView({ behavior: "smooth", inline: "center", block: "nearest" });
39
+ }
40
+ }, 50);
37
41
  }
38
42
  };
39
43
  this.renderTab = () => {
@@ -98,11 +102,7 @@ export class DuetTabGroup {
98
102
  inheritGlobalTheme(this);
99
103
  }
100
104
  componentDidLoad() {
101
- if (this.variation === "checked") {
102
- setTimeout(() => {
103
- this.scrollToActive();
104
- }, 50);
105
- }
105
+ this.scrollToActive();
106
106
  }
107
107
  /**
108
108
  * This method allows you to open any of the tabs by calling the method and
@@ -116,11 +116,7 @@ export class DuetTabGroup {
116
116
  this.tabs.forEach((tab, i) => {
117
117
  tab.selected = i === tabIndex;
118
118
  });
119
- if (this.variation === "checked") {
120
- setTimeout(() => {
121
- this.scrollToActive();
122
- }, 50);
123
- }
119
+ this.scrollToActive();
124
120
  const event = {
125
121
  value: tabIndex,
126
122
  component: "duet-tab-group",
@@ -174,18 +170,21 @@ export class DuetTabGroup {
174
170
  * Always the last one in the class.
175
171
  */
176
172
  render() {
173
+ const variationClass = this.variation === "plain-scrolling" ? "duet-tab-variation-plain" : `duet-tab-variation-${this.variation}`;
174
+ const isSwipeScrollable = this.variation === "checked" || this.variation === "plain-scrolling";
177
175
  return (h("div", { class: {
178
176
  "duet-tab-group": true,
179
177
  "duet-theme-turva": this.theme === "turva",
180
- [`duet-tab-variation-${this.variation}`]: true,
178
+ [variationClass]: true,
179
+ "duet-tab-plain-scrolling": this.variation === "plain-scrolling",
181
180
  "duet-tab-group-scrolls": this.scrolls,
182
181
  "duet-tab-group-collapses": this.collapses,
183
- }, "aria-label": this.accessibleLabel }, this.variation !== "checked" && this.tabs.length > 3 && this.collapses && (h("duet-select", { value: this.selected.toString(), expand: true, label: this.label, labelHidden: this.labelHidden, theme: this.theme, onDuetChange: event => this.openTab(Number(event.detail.value)), items: this.tabs.map((tab, index) => {
182
+ }, "aria-label": this.accessibleLabel }, !isSwipeScrollable && this.tabs.length > 3 && this.collapses && (h("duet-select", { value: this.selected.toString(), expand: true, label: this.label, labelHidden: this.labelHidden, theme: this.theme, onDuetChange: event => this.openTab(Number(event.detail.value)), items: this.tabs.map((tab, index) => {
184
183
  return { label: tab.label, value: index.toString() };
185
184
  }) })), h("div", { role: "tablist", class: {
186
185
  "duet-m-0": this.margin === "none" || this.variation === "checked",
187
186
  "duet-tab-group-tabs": true,
188
- "duet-tab-group-hidden": this.tabs.length > 3 && this.variation !== "checked",
187
+ "duet-tab-group-hidden": this.tabs.length > 3 && !isSwipeScrollable,
189
188
  "duet-tab-group-collapses": this.collapses,
190
189
  }, ref: el => {
191
190
  this.tabsContainer = el;
@@ -291,7 +290,7 @@ export class DuetTabGroup {
291
290
  "mutable": false,
292
291
  "complexType": {
293
292
  "original": "DuetTabVariation",
294
- "resolved": "\"checked\" | \"default\" | \"plain\"",
293
+ "resolved": "\"checked\" | \"default\" | \"plain\" | \"plain-scrolling\"",
295
294
  "references": {
296
295
  "DuetTabVariation": {
297
296
  "location": "local"
@@ -36,9 +36,9 @@
36
36
  align-items: center;
37
37
  justify-content: space-between;
38
38
  width: 100%;
39
- max-width: 1440px;
39
+ max-width: 1384px;
40
40
  height: 36px;
41
- padding: 0 28px;
41
+ margin: 0 28px;
42
42
  border-bottom: 1px solid #e1e3e6;
43
43
  }
44
44
  .duet-toolbar ::slotted(*) {
@@ -282,14 +282,14 @@ export class DuetUpload {
282
282
  }
283
283
  };
284
284
  this.uploadPendingFiles = () => {
285
- for (const [key, value] of this.files.entries()) {
285
+ for (const [key, value] of Array.from(this.files.entries())) {
286
286
  if (value.group === "pending" && value.pending === true) {
287
287
  this.uploadFile(value, true, key);
288
288
  }
289
289
  }
290
290
  };
291
291
  this.getItemFromUID = (uid) => {
292
- for (const [key, value] of this.files.entries()) {
292
+ for (const [key, value] of Array.from(this.files.entries())) {
293
293
  if (value.uid === uid) {
294
294
  return { value, key };
295
295
  }
@@ -378,7 +378,7 @@ export class DuetUpload {
378
378
  * @description This functions return sorted map items byg condition which are:
379
379
  */
380
380
  this.filterMap = () => {
381
- const all = [...this.files.values()];
381
+ const all = Array.from(this.files.values());
382
382
  const inprogress = [];
383
383
  const failure = [];
384
384
  const pending = [];
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
+ import { Build } from "@stencil/core";
4
5
  import { convertHtmlQuotes } from "./string-utils";
5
6
  const localeLookUpTable = {
6
7
  fi: "fi-FI",
@@ -87,3 +88,37 @@ export const getLocaleString = (langObject, languageOverride) => {
87
88
  return obj[getLanguage()];
88
89
  }
89
90
  };
91
+ /**
92
+ * Language change observer
93
+ *
94
+ * Change component's language property or state when the html lang attribute changes.
95
+ * For now the <html> element must have the data-duet-lang-observe attribute set to a truthy value for the
96
+ * language change to happen. At a later point this will be done without requiring the data attribute.
97
+ *
98
+ * Usage:
99
+ * Call connectLanguageChangeObserver(this) in component's connectedCallback and
100
+ * disconnectLanguageChangeObserver(this) in disconnectedCallback.
101
+ */
102
+ const languageChangeSubscribers = new Set();
103
+ const languagaChangeObserverCallback = () => {
104
+ if (document.documentElement.dataset.duetLangObserve) {
105
+ languageChangeSubscribers.forEach((component) => {
106
+ if (component.language) {
107
+ component.language = getLanguage();
108
+ }
109
+ else {
110
+ console.log("Language change observer: component does not have a language property", component);
111
+ }
112
+ });
113
+ }
114
+ };
115
+ if (!Build.isServer) {
116
+ const languageChangeObserver = new MutationObserver(languagaChangeObserverCallback);
117
+ languageChangeObserver.observe(document.documentElement, { attributeFilter: ["lang"] });
118
+ }
119
+ export const connectLanguageChangeObserver = (component) => {
120
+ languageChangeSubscribers.add(component);
121
+ };
122
+ export const disconnectLanguageChangeObserver = (component) => {
123
+ languageChangeSubscribers.delete(component);
124
+ };
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { D as DuetActionButton$1, d as defineCustomElement$1 } from './p-35c42834.js';
4
+ import { D as DuetActionButton$1, d as defineCustomElement$1 } from './p-ad4c031f.js';
5
5
 
6
6
  const DuetActionButton = DuetActionButton$1;
7
7
  const defineCustomElement = defineCustomElement$1;