@duetds/components 8.0.4 → 8.0.6

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 (597) hide show
  1. package/hydrate/index.js +172 -29
  2. package/lib/cjs/duet-action-button.cjs.entry.js +1 -1
  3. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  4. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-banner.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  7. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  8. package/lib/cjs/duet-button_2.cjs.entry.js +1 -1
  9. package/lib/cjs/duet-callout.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-caption_4.cjs.entry.js +1 -1
  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-chip.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-choice_2.cjs.entry.js +30 -6
  16. package/lib/cjs/duet-collapsible.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-combobox.cjs.entry.js +4 -4
  18. package/lib/cjs/duet-contact-card.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  21. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  22. package/lib/cjs/duet-editable-table_3.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-file-chooser.cjs.entry.js +59 -0
  26. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-header_2.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-input_2.cjs.entry.js +2 -2
  32. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-menu-bar.cjs.entry.js +2 -2
  39. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  40. package/lib/cjs/duet-multiselect.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-nav.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  44. package/lib/cjs/duet-page-heading.cjs.entry.js +1 -1
  45. package/lib/cjs/duet-pagination_2.cjs.entry.js +1 -1
  46. package/lib/cjs/duet-popup-menu-item.cjs.entry.js +1 -1
  47. package/lib/cjs/duet-popup-menu.cjs.entry.js +1 -1
  48. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  49. package/lib/cjs/duet-promo-card.cjs.entry.js +1 -1
  50. package/lib/cjs/duet-radio_2.cjs.entry.js +5 -2
  51. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  52. package/lib/cjs/duet-scrollable_3.cjs.entry.js +2 -3
  53. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  54. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  55. package/lib/cjs/duet-shaped-image.cjs.entry.js +1 -1
  56. package/lib/cjs/duet-show-more.cjs.entry.js +4 -2
  57. package/lib/cjs/duet-slideout-lang.cjs.entry.js +1 -1
  58. package/lib/cjs/duet-slideout-link.cjs.entry.js +1 -1
  59. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +1 -1
  60. package/lib/cjs/duet-slideout-panel.cjs.entry.js +13 -3
  61. package/lib/cjs/duet-slideout.cjs.entry.js +24 -5
  62. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  63. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +2 -2
  64. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +2 -2
  65. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +1 -1
  66. package/lib/cjs/duet-submenu-bar.cjs.entry.js +3 -3
  67. package/lib/cjs/duet-textarea.cjs.entry.js +2 -2
  68. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  69. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +1 -1
  70. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +5 -2
  71. package/lib/cjs/duet-toolbar-link.cjs.entry.js +10 -3
  72. package/lib/cjs/duet-toolbar.cjs.entry.js +5 -3
  73. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +2 -2
  74. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  75. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  76. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  77. package/lib/cjs/duet-upload-item.cjs.entry.js +1 -1
  78. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  79. package/lib/cjs/duet.cjs.js +2 -2
  80. package/lib/cjs/{focus-utils-a28bdf44.js → focus-utils-aea9f4e1.js} +1 -1
  81. package/lib/cjs/{index-57fc0388.js → index-2cce7b13.js} +1 -1
  82. package/lib/cjs/loader.cjs.js +2 -2
  83. package/lib/collection/collection-manifest.json +1 -0
  84. package/lib/collection/components/duet-choice/duet-choice.js +72 -9
  85. package/lib/collection/components/duet-choice-group/duet-choice-group.js +40 -1
  86. package/lib/collection/components/duet-combobox/duet-combobox.js +3 -3
  87. package/lib/collection/components/duet-file-chooser/duet-file-chooser.css +22 -0
  88. package/lib/collection/components/duet-file-chooser/duet-file-chooser.js +189 -0
  89. package/lib/collection/components/duet-input/duet-input.js +1 -1
  90. package/lib/collection/components/duet-menu-bar/duet-menu-bar.css +2 -0
  91. package/lib/collection/components/duet-radio-group/duet-radio-group.js +40 -1
  92. package/lib/collection/components/duet-show-more/duet-show-more.js +51 -1
  93. package/lib/collection/components/duet-slideout/duet-slideout.js +27 -4
  94. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +11 -1
  95. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.css +0 -20
  96. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +1 -1
  97. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.css +5 -1
  98. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.css +0 -1
  99. package/lib/collection/components/duet-tab-group/duet-tab-group.a11y.e2e.js +2 -6
  100. package/lib/collection/components/duet-tab-group/duet-tab-group.js +1 -2
  101. package/lib/collection/components/duet-textarea/duet-textarea.js +1 -1
  102. package/lib/collection/components/duet-toolbar/duet-toolbar.css +12 -0
  103. package/lib/collection/components/duet-toolbar/duet-toolbar.js +21 -1
  104. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.css +38 -0
  105. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +21 -0
  106. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.css +32 -0
  107. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +26 -1
  108. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  109. package/lib/dist-custom-elements/duet-alert.js +1 -1
  110. package/lib/dist-custom-elements/duet-badge.js +1 -1
  111. package/lib/dist-custom-elements/duet-banner.js +4 -4
  112. package/lib/dist-custom-elements/duet-breadcrumb.js +2 -2
  113. package/lib/dist-custom-elements/duet-breadcrumbs.js +1 -1
  114. package/lib/dist-custom-elements/duet-button.js +1 -1
  115. package/lib/dist-custom-elements/duet-callout.js +3 -3
  116. package/lib/dist-custom-elements/duet-caption.js +1 -1
  117. package/lib/dist-custom-elements/duet-card.js +3 -3
  118. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  119. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  120. package/lib/dist-custom-elements/duet-chip.js +2 -2
  121. package/lib/dist-custom-elements/duet-choice-group.js +15 -10
  122. package/lib/dist-custom-elements/duet-choice.js +31 -8
  123. package/lib/dist-custom-elements/duet-collapsible.js +2 -2
  124. package/lib/dist-custom-elements/duet-combobox.js +5 -5
  125. package/lib/dist-custom-elements/duet-contact-card.js +8 -8
  126. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  127. package/lib/dist-custom-elements/duet-date-picker.js +12 -12
  128. package/lib/dist-custom-elements/duet-divider.js +1 -1
  129. package/lib/dist-custom-elements/duet-editable-table.js +7 -7
  130. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  131. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  132. package/lib/dist-custom-elements/duet-file-chooser.d.ts +11 -0
  133. package/lib/dist-custom-elements/duet-file-chooser.js +85 -0
  134. package/lib/dist-custom-elements/duet-footer.js +4 -4
  135. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  136. package/lib/dist-custom-elements/duet-grid.js +1 -1
  137. package/lib/dist-custom-elements/duet-header.js +8 -8
  138. package/lib/dist-custom-elements/duet-heading.js +1 -1
  139. package/lib/dist-custom-elements/duet-hero.js +9 -9
  140. package/lib/dist-custom-elements/duet-icon.js +1 -1
  141. package/lib/dist-custom-elements/duet-input.js +1 -1
  142. package/lib/dist-custom-elements/duet-label.js +1 -1
  143. package/lib/dist-custom-elements/duet-layout.js +1 -1
  144. package/lib/dist-custom-elements/duet-link.js +1 -1
  145. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  146. package/lib/dist-custom-elements/duet-list.js +1 -1
  147. package/lib/dist-custom-elements/duet-logo.js +1 -1
  148. package/lib/dist-custom-elements/duet-menu-bar-button.js +2 -2
  149. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +2 -2
  150. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +2 -2
  151. package/lib/dist-custom-elements/duet-menu-bar-link.js +2 -2
  152. package/lib/dist-custom-elements/duet-menu-bar.js +3 -3
  153. package/lib/dist-custom-elements/duet-modal.js +7 -7
  154. package/lib/dist-custom-elements/duet-multiselect.js +10 -10
  155. package/lib/dist-custom-elements/duet-nav.js +1 -1
  156. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  157. package/lib/dist-custom-elements/duet-notification.js +2 -2
  158. package/lib/dist-custom-elements/duet-number-input.js +11 -11
  159. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  160. package/lib/dist-custom-elements/duet-pagination.js +13 -13
  161. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  162. package/lib/dist-custom-elements/duet-popup-menu-item.js +2 -2
  163. package/lib/dist-custom-elements/duet-popup-menu.js +1 -1
  164. package/lib/dist-custom-elements/duet-progress.js +1 -1
  165. package/lib/dist-custom-elements/duet-promo-card.js +3 -3
  166. package/lib/dist-custom-elements/duet-radio-group.js +15 -10
  167. package/lib/dist-custom-elements/duet-radio.js +1 -1
  168. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  169. package/lib/dist-custom-elements/duet-range-stepper.js +4 -4
  170. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  171. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  172. package/lib/dist-custom-elements/duet-select.js +1 -1
  173. package/lib/dist-custom-elements/duet-shaped-image.js +1 -1
  174. package/lib/dist-custom-elements/duet-show-more.js +10 -6
  175. package/lib/dist-custom-elements/duet-slideout-lang.js +2 -2
  176. package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
  177. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  178. package/lib/dist-custom-elements/duet-slideout-panel.js +13 -3
  179. package/lib/dist-custom-elements/duet-slideout.js +25 -5
  180. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  181. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  182. package/lib/dist-custom-elements/duet-step.js +4 -4
  183. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  184. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +3 -3
  185. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +3 -3
  186. package/lib/dist-custom-elements/duet-submenu-bar-link.js +2 -2
  187. package/lib/dist-custom-elements/duet-submenu-bar.js +4 -4
  188. package/lib/dist-custom-elements/duet-tab-group.js +14 -15
  189. package/lib/dist-custom-elements/duet-tab.js +1 -1
  190. package/lib/dist-custom-elements/duet-table.js +1 -1
  191. package/lib/dist-custom-elements/duet-textarea.js +11 -11
  192. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  193. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -2
  194. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +7 -3
  195. package/lib/dist-custom-elements/duet-toolbar-link.js +12 -4
  196. package/lib/dist-custom-elements/duet-toolbar.js +6 -3
  197. package/lib/dist-custom-elements/duet-tooltip-button.js +1 -1
  198. package/lib/dist-custom-elements/duet-tooltip-popup.js +1 -1
  199. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  200. package/lib/dist-custom-elements/duet-tray.js +3 -3
  201. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  202. package/lib/dist-custom-elements/duet-upload-item.js +1 -1
  203. package/lib/dist-custom-elements/duet-upload.js +18 -18
  204. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  205. package/lib/dist-custom-elements/index.js +1 -1
  206. package/lib/dist-custom-elements/{p-8b29f15f.js → p-03ac3eb3.js} +1 -1
  207. package/lib/dist-custom-elements/{p-d8d221c7.js → p-180c0d2d.js} +1 -1
  208. package/lib/dist-custom-elements/{p-9227ff28.js → p-1ce55654.js} +8 -8
  209. package/lib/dist-custom-elements/{p-c35effa1.js → p-1f56e02f.js} +5 -5
  210. package/lib/dist-custom-elements/{p-dcf1150f.js → p-21b815ae.js} +1 -1
  211. package/lib/dist-custom-elements/{p-5c0e51bf.js → p-2b1a35cd.js} +4 -4
  212. package/lib/dist-custom-elements/{p-6fdb2793.js → p-3049dfd5.js} +3 -3
  213. package/lib/dist-custom-elements/{p-137115be.js → p-3ccd454b.js} +1 -1
  214. package/lib/dist-custom-elements/{p-9b75b285.js → p-4687ca41.js} +11 -11
  215. package/lib/dist-custom-elements/{p-1fb7e30c.js → p-52014bb2.js} +1 -1
  216. package/lib/dist-custom-elements/{p-81cee4bb.js → p-5d8d9a52.js} +2 -2
  217. package/lib/dist-custom-elements/{p-69cee0e0.js → p-62e68de8.js} +1 -1
  218. package/lib/dist-custom-elements/{p-96f8add2.js → p-64cd1abb.js} +2 -2
  219. package/lib/dist-custom-elements/{p-cb1795bd.js → p-665418f0.js} +10 -10
  220. package/lib/dist-custom-elements/{p-0334f215.js → p-6c2e13f0.js} +1 -1
  221. package/lib/dist-custom-elements/{p-64c4e84f.js → p-7247d0b2.js} +1 -1
  222. package/lib/dist-custom-elements/{p-76f4318f.js → p-759c725f.js} +5 -5
  223. package/lib/dist-custom-elements/{p-d77fa9d7.js → p-80ec4336.js} +1 -1
  224. package/lib/dist-custom-elements/{p-93c0ff25.js → p-8be301dd.js} +2 -2
  225. package/lib/dist-custom-elements/{p-fcf213ba.js → p-9541f0b6.js} +1 -1
  226. package/lib/dist-custom-elements/{p-276540d0.js → p-9dd26401.js} +1 -1
  227. package/lib/dist-custom-elements/{p-0cba10c6.js → p-a3923b18.js} +1 -1
  228. package/lib/dist-custom-elements/{p-c5f155c9.js → p-ba870310.js} +1 -1
  229. package/lib/dist-custom-elements/{p-b379e9c3.js → p-bcfb9e03.js} +1 -1
  230. package/lib/dist-custom-elements/{p-6aed45b9.js → p-c0af301d.js} +1 -1
  231. package/lib/dist-custom-elements/{p-b1f13be3.js → p-d0987122.js} +1 -1
  232. package/lib/dist-custom-elements/{p-48e60a4a.js → p-d49389d2.js} +1 -1
  233. package/lib/dist-custom-elements/{p-cc7ea20a.js → p-e4355989.js} +3 -3
  234. package/lib/dist-custom-elements/{p-e936af1e.js → p-e6b07569.js} +5 -5
  235. package/lib/dist-custom-elements/{p-3f1f0ff0.js → p-e77f7fff.js} +1 -1
  236. package/lib/dist-custom-elements/{p-734ca485.js → p-f27e355b.js} +1 -1
  237. package/lib/dist-custom-elements/{p-82950e93.js → p-f46be918.js} +2 -2
  238. package/lib/dist-custom-elements/{p-ead2c47b.js → p-fd4877d1.js} +2 -2
  239. package/lib/dist-custom-elements/{p-8647adfe.js → p-fe8a2205.js} +3 -3
  240. package/lib/duet/duet.esm.js +1 -1
  241. package/lib/duet/duet.js +1 -1
  242. package/lib/duet/{p-b3ceb67c.system.entry.js → p-032a613f.system.entry.js} +1 -1
  243. package/lib/duet/{p-4a9f918b.system.entry.js → p-038ac494.system.entry.js} +1 -1
  244. package/lib/duet/{p-c7e8c703.system.entry.js → p-051488a0.system.entry.js} +1 -1
  245. package/lib/duet/{p-05f24fea.system.entry.js → p-0558a17e.system.entry.js} +1 -1
  246. package/lib/duet/{p-3ba7eaaf.entry.js → p-05e3a2cc.entry.js} +1 -1
  247. package/lib/duet/{p-c06884be.entry.js → p-0606cea3.entry.js} +1 -1
  248. package/lib/duet/{p-77a84a9c.entry.js → p-07401f31.entry.js} +1 -1
  249. package/lib/duet/{p-e4908b98.entry.js → p-08764d71.entry.js} +1 -1
  250. package/lib/duet/{p-c024e088.entry.js → p-089043d5.entry.js} +1 -1
  251. package/lib/duet/p-08f2114a.entry.js +4 -0
  252. package/lib/duet/p-0a664ebb.entry.js +4 -0
  253. package/lib/duet/p-0c702d36.entry.js +4 -0
  254. package/lib/duet/{p-bee90745.system.entry.js → p-0d0101d9.system.entry.js} +1 -1
  255. package/lib/duet/{p-a9b41cc7.system.entry.js → p-0e89cbae.system.entry.js} +1 -1
  256. package/lib/duet/{p-0c721d4d.entry.js → p-0f1ec9c0.entry.js} +1 -1
  257. package/lib/duet/p-0fd024c9.system.js +4 -0
  258. package/lib/duet/p-113d90cb.system.entry.js +4 -0
  259. package/lib/duet/p-11571ab9.entry.js +4 -0
  260. package/lib/duet/{p-3beb1f99.entry.js → p-13915ce0.entry.js} +1 -1
  261. package/lib/duet/{p-94d7bf9d.entry.js → p-177c55aa.entry.js} +1 -1
  262. package/lib/duet/{p-1d91a923.system.entry.js → p-18e2e6c8.system.entry.js} +1 -1
  263. package/lib/duet/p-1a877bd1.system.entry.js +4 -0
  264. package/lib/duet/{p-65221daf.entry.js → p-1b3fde48.entry.js} +1 -1
  265. package/lib/duet/{p-18e338f6.entry.js → p-1dadf501.entry.js} +1 -1
  266. package/lib/duet/p-1e9f1c45.entry.js +4 -0
  267. package/lib/duet/{p-56a8a682.system.entry.js → p-2b70d58a.system.entry.js} +1 -1
  268. package/lib/duet/{p-2150d543.system.entry.js → p-2c78c637.system.entry.js} +1 -1
  269. package/lib/duet/{p-6c1ed503.entry.js → p-301ddafe.entry.js} +1 -1
  270. package/lib/duet/{p-89a87c49.entry.js → p-30bd8807.entry.js} +1 -1
  271. package/lib/duet/{p-c9454668.entry.js → p-33765ffd.entry.js} +1 -1
  272. package/lib/duet/{p-4069a88e.system.entry.js → p-34b5285b.system.entry.js} +1 -1
  273. package/lib/duet/{p-71a262a9.entry.js → p-35990684.entry.js} +1 -1
  274. package/lib/duet/{p-30a68306.system.entry.js → p-3639371a.system.entry.js} +1 -1
  275. package/lib/duet/{p-3d36d27f.system.entry.js → p-37af6296.system.entry.js} +1 -1
  276. package/lib/duet/{p-5a324349.system.entry.js → p-39078c27.system.entry.js} +1 -1
  277. package/lib/duet/{p-716ed1fb.entry.js → p-3b0969dc.entry.js} +1 -1
  278. package/lib/duet/p-3b147393.entry.js +4 -0
  279. package/lib/duet/{p-4940d6de.entry.js → p-3fd4c411.entry.js} +1 -1
  280. package/lib/duet/{p-d66e2714.entry.js → p-445523a8.entry.js} +1 -1
  281. package/lib/duet/{p-be34743f.entry.js → p-4630d3cb.entry.js} +1 -1
  282. package/lib/duet/{p-5525dfa0.system.entry.js → p-463ddc2c.system.entry.js} +1 -1
  283. package/lib/duet/{p-5e27be5d.entry.js → p-486eec2d.entry.js} +1 -1
  284. package/lib/duet/{p-687259d0.entry.js → p-4aa91f55.entry.js} +1 -1
  285. package/lib/duet/{p-9e8e022b.entry.js → p-4dc0fff9.entry.js} +1 -1
  286. package/lib/duet/{p-cc1be8d9.system.entry.js → p-4f770f51.system.entry.js} +1 -1
  287. package/lib/duet/{p-fb6f8886.system.entry.js → p-501f62eb.system.entry.js} +1 -1
  288. package/lib/duet/{p-df0758e4.entry.js → p-50ec2074.entry.js} +1 -1
  289. package/lib/duet/{p-70cdba82.system.entry.js → p-50f4319b.system.entry.js} +1 -1
  290. package/lib/duet/{p-e0ececb1.system.entry.js → p-52806dad.system.entry.js} +1 -1
  291. package/lib/duet/p-5311f96e.system.entry.js +4 -0
  292. package/lib/duet/p-54fbdedf.entry.js +4 -0
  293. package/lib/duet/{p-fb3fd2e1.entry.js → p-566668e1.entry.js} +1 -1
  294. package/lib/duet/{p-9e152149.system.entry.js → p-56bdad28.system.entry.js} +1 -1
  295. package/lib/duet/{p-8fc84bdf.system.entry.js → p-57afa4b8.system.entry.js} +1 -1
  296. package/lib/duet/{p-3abfcdbe.system.entry.js → p-58a08a7b.system.entry.js} +1 -1
  297. package/lib/duet/p-59b9c68b.entry.js +4 -0
  298. package/lib/duet/{p-b1372e52.entry.js → p-5ae9b74f.entry.js} +1 -1
  299. package/lib/duet/{p-66c1ab03.system.entry.js → p-5c0de81a.system.entry.js} +1 -1
  300. package/lib/duet/{p-6319a467.system.entry.js → p-5c5012f6.system.entry.js} +1 -1
  301. package/lib/duet/{p-39cf9807.system.entry.js → p-5eb2a31f.system.entry.js} +1 -1
  302. package/lib/duet/{p-2c0dfbb2.entry.js → p-604175d2.entry.js} +1 -1
  303. package/lib/duet/{p-49a7f87a.entry.js → p-61d39730.entry.js} +1 -1
  304. package/lib/duet/p-6205bcb4.entry.js +4 -0
  305. package/lib/duet/{p-3d266d41.entry.js → p-64b323bf.entry.js} +1 -1
  306. package/lib/duet/{p-b3be4fd3.entry.js → p-68f3526e.entry.js} +1 -1
  307. package/lib/duet/{p-d4f7537a.system.entry.js → p-6ae7579a.system.entry.js} +1 -1
  308. package/lib/duet/{p-2767a583.js → p-6c4c0279.js} +1 -1
  309. package/lib/duet/p-6da4db52.system.entry.js +4 -0
  310. package/lib/duet/{p-256f0351.entry.js → p-6da7b933.entry.js} +1 -1
  311. package/lib/duet/{p-ceb4e7ee.entry.js → p-6f3f2e66.entry.js} +1 -1
  312. package/lib/duet/{p-8219fb4a.system.entry.js → p-716329a7.system.entry.js} +1 -1
  313. package/lib/duet/p-76b68b44.entry.js +4 -0
  314. package/lib/duet/{p-dc293752.entry.js → p-77b43a95.entry.js} +1 -1
  315. package/lib/duet/{p-63e14d3c.system.entry.js → p-789365cb.system.entry.js} +1 -1
  316. package/lib/duet/{p-defa1f51.system.entry.js → p-79faf440.system.entry.js} +1 -1
  317. package/lib/duet/{p-6f89f959.system.entry.js → p-7a46b4ef.system.entry.js} +1 -1
  318. package/lib/duet/{p-2b5698b2.entry.js → p-7bca584a.entry.js} +1 -1
  319. package/lib/duet/{p-76ff9b32.entry.js → p-7c36b779.entry.js} +1 -1
  320. package/lib/duet/{p-c74b30b6.entry.js → p-7de467b8.entry.js} +1 -1
  321. package/lib/duet/{p-c454af4b.entry.js → p-7e1f37e2.entry.js} +1 -1
  322. package/lib/duet/p-80013513.system.entry.js +4 -0
  323. package/lib/duet/{p-7553e277.entry.js → p-80d1a5d3.entry.js} +1 -1
  324. package/lib/duet/{p-d0396200.system.entry.js → p-821c350f.system.entry.js} +1 -1
  325. package/lib/duet/{p-84b1d1a5.entry.js → p-8855bd51.entry.js} +1 -1
  326. package/lib/duet/{p-0254c1a5.entry.js → p-89b82e5a.entry.js} +1 -1
  327. package/lib/duet/{p-8bd29255.entry.js → p-8aa7771f.entry.js} +1 -1
  328. package/lib/duet/p-8ba72fa0.system.entry.js +4 -0
  329. package/lib/duet/{p-1b1c46cf.system.entry.js → p-8bf363f4.system.entry.js} +1 -1
  330. package/lib/duet/{p-35167ee7.system.entry.js → p-8eff5e91.system.entry.js} +1 -1
  331. package/lib/duet/{p-fdbef6b6.entry.js → p-95df823b.entry.js} +1 -1
  332. package/lib/duet/{p-ee962bfc.system.entry.js → p-96f66e14.system.entry.js} +1 -1
  333. package/lib/duet/{p-8230fa0e.system.entry.js → p-98d01f1c.system.entry.js} +1 -1
  334. package/lib/duet/{p-5ad5719f.system.entry.js → p-995e1b11.system.entry.js} +1 -1
  335. package/lib/duet/{p-7fda4849.system.entry.js → p-9a613a25.system.entry.js} +1 -1
  336. package/lib/duet/{p-74fe1ae1.system.entry.js → p-9cba7f04.system.entry.js} +1 -1
  337. package/lib/duet/{p-306af74b.entry.js → p-9e2a2cf7.entry.js} +1 -1
  338. package/lib/duet/{p-9daa8586.system.entry.js → p-9f835123.system.entry.js} +1 -1
  339. package/lib/duet/{p-0aa6b9f7.system.js → p-a0660ffa.system.js} +1 -1
  340. package/lib/duet/{p-2f9a3b9e.system.entry.js → p-a0ecfa13.system.entry.js} +1 -1
  341. package/lib/duet/{p-9a9fe22d.system.entry.js → p-a7e7c277.system.entry.js} +1 -1
  342. package/lib/duet/p-a8878fd3.entry.js +4 -0
  343. package/lib/duet/{p-34131c07.system.entry.js → p-a91c8a42.system.entry.js} +1 -1
  344. package/lib/duet/{p-256a8389.entry.js → p-aa6d7d97.entry.js} +1 -1
  345. package/lib/duet/{p-2cc98d49.entry.js → p-ac367891.entry.js} +1 -1
  346. package/lib/duet/p-ac9f6601.entry.js +4 -0
  347. package/lib/duet/{p-7c78790a.entry.js → p-afd00506.entry.js} +1 -1
  348. package/lib/duet/{p-1814b271.system.entry.js → p-b0ab2ead.system.entry.js} +1 -1
  349. package/lib/duet/{p-2333a06b.system.entry.js → p-b3ae5641.system.entry.js} +1 -1
  350. package/lib/duet/{p-a70211c7.system.entry.js → p-b46fa994.system.entry.js} +1 -1
  351. package/lib/duet/{p-3a31c3e2.system.entry.js → p-b8db6e02.system.entry.js} +1 -1
  352. package/lib/duet/{p-f1c9f773.entry.js → p-bdc59646.entry.js} +1 -1
  353. package/lib/duet/{p-8ba312dd.entry.js → p-bf3331ed.entry.js} +1 -1
  354. package/lib/duet/{p-93edbad9.system.entry.js → p-bfeeee67.system.entry.js} +1 -1
  355. package/lib/duet/{p-6b46d423.system.entry.js → p-c08928e1.system.entry.js} +1 -1
  356. package/lib/duet/{p-89750d2b.entry.js → p-c1bc9249.entry.js} +1 -1
  357. package/lib/duet/{p-8e270309.system.entry.js → p-c23bf76f.system.entry.js} +1 -1
  358. package/lib/duet/p-c3289020.system.entry.js +4 -0
  359. package/lib/duet/{p-2a9fce4e.entry.js → p-c36a1bb7.entry.js} +1 -1
  360. package/lib/duet/{p-fc8e65cc.entry.js → p-c4e79927.entry.js} +1 -1
  361. package/lib/duet/{p-7a181a7b.system.entry.js → p-c5725fee.system.entry.js} +1 -1
  362. package/lib/duet/p-c79a0641.entry.js +4 -0
  363. package/lib/duet/{p-4cd5933d.entry.js → p-c801ebee.entry.js} +1 -1
  364. package/lib/duet/{p-bbc0d12a.system.entry.js → p-ccef6554.system.entry.js} +1 -1
  365. package/lib/duet/{p-e46fd2cc.system.entry.js → p-cef36d14.system.entry.js} +1 -1
  366. package/lib/duet/{p-53eeaaac.entry.js → p-d02b92fa.entry.js} +1 -1
  367. package/lib/duet/{p-1328279f.system.entry.js → p-d02e3fe0.system.entry.js} +1 -1
  368. package/lib/duet/{p-71a97d82.system.entry.js → p-d098d59c.system.entry.js} +1 -1
  369. package/lib/duet/{p-0d76f82f.system.entry.js → p-d4d7d607.system.entry.js} +1 -1
  370. package/lib/duet/{p-575d7354.entry.js → p-d5a9cfac.entry.js} +1 -1
  371. package/lib/duet/{p-0e0070ff.entry.js → p-d9353709.entry.js} +1 -1
  372. package/lib/duet/{p-06c1de15.system.entry.js → p-da9fe13c.system.entry.js} +1 -1
  373. package/lib/duet/{p-ef1d01d1.entry.js → p-dc63462c.entry.js} +1 -1
  374. package/lib/duet/{p-3d417d4e.system.entry.js → p-ded28a6e.system.entry.js} +1 -1
  375. package/lib/duet/p-def3df7d.entry.js +4 -0
  376. package/lib/duet/{p-d160d0af.entry.js → p-e1d3c21e.entry.js} +1 -1
  377. package/lib/duet/{p-875e6e77.entry.js → p-e1e89fd5.entry.js} +1 -1
  378. package/lib/duet/{p-26f6f02d.system.entry.js → p-e3ffb537.system.entry.js} +1 -1
  379. package/lib/duet/{p-b2be09aa.system.entry.js → p-e491c098.system.entry.js} +1 -1
  380. package/lib/duet/{p-5924fcb5.system.entry.js → p-e4aa049f.system.entry.js} +1 -1
  381. package/lib/duet/{p-57524647.entry.js → p-e6168195.entry.js} +1 -1
  382. package/lib/duet/{p-845f5d4d.system.entry.js → p-e7a22d84.system.entry.js} +1 -1
  383. package/lib/duet/{p-c270e77f.system.entry.js → p-e90b5865.system.entry.js} +1 -1
  384. package/lib/duet/{p-61b7f6cd.system.entry.js → p-e95d09bb.system.entry.js} +1 -1
  385. package/lib/duet/{p-c2cc8f98.system.entry.js → p-e9be64de.system.entry.js} +1 -1
  386. package/lib/duet/{p-445d390a.system.entry.js → p-ed011021.system.entry.js} +1 -1
  387. package/lib/duet/{p-448a0c6a.entry.js → p-ed8f7cac.entry.js} +1 -1
  388. package/lib/duet/{p-91213415.system.entry.js → p-ed961bc6.system.entry.js} +1 -1
  389. package/lib/duet/p-ee796d5e.system.entry.js +4 -0
  390. package/lib/duet/{p-8d335fb8.entry.js → p-efa6152d.entry.js} +1 -1
  391. package/lib/duet/{p-8a6a6d43.system.js → p-efdbddb5.system.js} +1 -1
  392. package/lib/duet/p-f58eb425.js +4 -0
  393. package/lib/duet/{p-c24e66b3.system.entry.js → p-f75a1805.system.entry.js} +1 -1
  394. package/lib/duet/{p-708f2afd.system.entry.js → p-faa6ea94.system.entry.js} +1 -1
  395. package/lib/duet/{p-7ee6dd1b.entry.js → p-fab6160a.entry.js} +1 -1
  396. package/lib/duet/p-fab7c1ed.entry.js +4 -0
  397. package/lib/duet/{p-e2714451.entry.js → p-fcbb30e1.entry.js} +1 -1
  398. package/lib/duet/{p-2ba34457.system.entry.js → p-fd1fb3f9.system.entry.js} +1 -1
  399. package/lib/duet/{p-c2a1741c.system.entry.js → p-ff09528c.system.entry.js} +1 -1
  400. package/lib/duet/p-ff7a57a9.entry.js +4 -0
  401. package/lib/esm/duet-action-button.entry.js +1 -1
  402. package/lib/esm/duet-alert.entry.js +1 -1
  403. package/lib/esm/duet-badge.entry.js +1 -1
  404. package/lib/esm/duet-banner.entry.js +1 -1
  405. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  406. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  407. package/lib/esm/duet-button_2.entry.js +1 -1
  408. package/lib/esm/duet-callout.entry.js +1 -1
  409. package/lib/esm/duet-caption_4.entry.js +1 -1
  410. package/lib/esm/duet-card.entry.js +1 -1
  411. package/lib/esm/duet-checkbox.entry.js +1 -1
  412. package/lib/esm/duet-checkmark.entry.js +1 -1
  413. package/lib/esm/duet-chip.entry.js +1 -1
  414. package/lib/esm/duet-choice_2.entry.js +30 -6
  415. package/lib/esm/duet-collapsible.entry.js +1 -1
  416. package/lib/esm/duet-combobox.entry.js +4 -4
  417. package/lib/esm/duet-contact-card.entry.js +1 -1
  418. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  419. package/lib/esm/duet-date-picker.entry.js +2 -2
  420. package/lib/esm/duet-divider_2.entry.js +1 -1
  421. package/lib/esm/duet-editable-table_3.entry.js +1 -1
  422. package/lib/esm/duet-empty-state.entry.js +1 -1
  423. package/lib/esm/duet-fieldset.entry.js +1 -1
  424. package/lib/esm/duet-file-chooser.entry.js +55 -0
  425. package/lib/esm/duet-footer.entry.js +1 -1
  426. package/lib/esm/duet-grid_2.entry.js +1 -1
  427. package/lib/esm/duet-header_2.entry.js +1 -1
  428. package/lib/esm/duet-hero.entry.js +1 -1
  429. package/lib/esm/duet-icon.entry.js +1 -1
  430. package/lib/esm/duet-input_2.entry.js +2 -2
  431. package/lib/esm/duet-layout.entry.js +1 -1
  432. package/lib/esm/duet-list_2.entry.js +1 -1
  433. package/lib/esm/duet-menu-bar-button.entry.js +1 -1
  434. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +1 -1
  435. package/lib/esm/duet-menu-bar-dropdown.entry.js +1 -1
  436. package/lib/esm/duet-menu-bar-link.entry.js +1 -1
  437. package/lib/esm/duet-menu-bar.entry.js +2 -2
  438. package/lib/esm/duet-modal.entry.js +2 -2
  439. package/lib/esm/duet-multiselect.entry.js +1 -1
  440. package/lib/esm/duet-nav.entry.js +1 -1
  441. package/lib/esm/duet-notification_2.entry.js +1 -1
  442. package/lib/esm/duet-number-input.entry.js +1 -1
  443. package/lib/esm/duet-page-heading.entry.js +1 -1
  444. package/lib/esm/duet-pagination_2.entry.js +1 -1
  445. package/lib/esm/duet-popup-menu-item.entry.js +1 -1
  446. package/lib/esm/duet-popup-menu.entry.js +1 -1
  447. package/lib/esm/duet-progress.entry.js +1 -1
  448. package/lib/esm/duet-promo-card.entry.js +1 -1
  449. package/lib/esm/duet-radio_2.entry.js +5 -2
  450. package/lib/esm/duet-range-slider.entry.js +1 -1
  451. package/lib/esm/duet-scrollable_3.entry.js +2 -3
  452. package/lib/esm/duet-section-layout.entry.js +1 -1
  453. package/lib/esm/duet-select.entry.js +1 -1
  454. package/lib/esm/duet-shaped-image.entry.js +1 -1
  455. package/lib/esm/duet-show-more.entry.js +4 -2
  456. package/lib/esm/duet-slideout-lang.entry.js +1 -1
  457. package/lib/esm/duet-slideout-link.entry.js +1 -1
  458. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  459. package/lib/esm/duet-slideout-panel.entry.js +13 -3
  460. package/lib/esm/duet-slideout.entry.js +24 -5
  461. package/lib/esm/duet-step_2.entry.js +1 -1
  462. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +2 -2
  463. package/lib/esm/duet-submenu-bar-dropdown.entry.js +2 -2
  464. package/lib/esm/duet-submenu-bar-link.entry.js +1 -1
  465. package/lib/esm/duet-submenu-bar.entry.js +3 -3
  466. package/lib/esm/duet-textarea.entry.js +2 -2
  467. package/lib/esm/duet-toggle.entry.js +1 -1
  468. package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -1
  469. package/lib/esm/duet-toolbar-dropdown.entry.js +5 -2
  470. package/lib/esm/duet-toolbar-link.entry.js +10 -3
  471. package/lib/esm/duet-toolbar.entry.js +5 -3
  472. package/lib/esm/duet-tooltip-button_2.entry.js +2 -2
  473. package/lib/esm/duet-tooltip.entry.js +1 -1
  474. package/lib/esm/duet-tray.entry.js +1 -1
  475. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  476. package/lib/esm/duet-upload-item.entry.js +1 -1
  477. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  478. package/lib/esm/duet.js +3 -3
  479. package/lib/esm/{focus-utils-616b6903.js → focus-utils-74961919.js} +1 -1
  480. package/lib/esm/{index-6b66b5c3.js → index-b3bf9761.js} +1 -1
  481. package/lib/esm/loader.js +3 -3
  482. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  483. package/lib/esm-es5/duet-alert.entry.js +1 -1
  484. package/lib/esm-es5/duet-badge.entry.js +1 -1
  485. package/lib/esm-es5/duet-banner.entry.js +1 -1
  486. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  487. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  488. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  489. package/lib/esm-es5/duet-callout.entry.js +1 -1
  490. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  491. package/lib/esm-es5/duet-card.entry.js +1 -1
  492. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  493. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  494. package/lib/esm-es5/duet-chip.entry.js +1 -1
  495. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  496. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  497. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  498. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  499. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  500. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  501. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  502. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  503. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  504. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  505. package/lib/esm-es5/duet-file-chooser.entry.js +4 -0
  506. package/lib/esm-es5/duet-footer.entry.js +1 -1
  507. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  508. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  509. package/lib/esm-es5/duet-hero.entry.js +1 -1
  510. package/lib/esm-es5/duet-icon.entry.js +1 -1
  511. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  512. package/lib/esm-es5/duet-layout.entry.js +1 -1
  513. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  514. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  515. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  516. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  517. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  518. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  519. package/lib/esm-es5/duet-modal.entry.js +1 -1
  520. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  521. package/lib/esm-es5/duet-nav.entry.js +1 -1
  522. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  523. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  524. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  525. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  526. package/lib/esm-es5/duet-popup-menu-item.entry.js +1 -1
  527. package/lib/esm-es5/duet-popup-menu.entry.js +1 -1
  528. package/lib/esm-es5/duet-progress.entry.js +1 -1
  529. package/lib/esm-es5/duet-promo-card.entry.js +1 -1
  530. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  531. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  532. package/lib/esm-es5/duet-scrollable_3.entry.js +2 -2
  533. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  534. package/lib/esm-es5/duet-select.entry.js +1 -1
  535. package/lib/esm-es5/duet-shaped-image.entry.js +1 -1
  536. package/lib/esm-es5/duet-show-more.entry.js +1 -1
  537. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  538. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  539. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  540. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  541. package/lib/esm-es5/duet-slideout.entry.js +2 -2
  542. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  543. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  544. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  545. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  546. package/lib/esm-es5/duet-submenu-bar.entry.js +2 -2
  547. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  548. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  549. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  550. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +2 -2
  551. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  552. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  553. package/lib/esm-es5/duet-tooltip-button_2.entry.js +1 -1
  554. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  555. package/lib/esm-es5/duet-tray.entry.js +1 -1
  556. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  557. package/lib/esm-es5/duet-upload-item.entry.js +1 -1
  558. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  559. package/lib/esm-es5/duet.js +1 -1
  560. package/lib/esm-es5/{focus-utils-616b6903.js → focus-utils-74961919.js} +1 -1
  561. package/lib/esm-es5/{index-6b66b5c3.js → index-b3bf9761.js} +1 -1
  562. package/lib/esm-es5/loader.js +1 -1
  563. package/lib/types/components/duet-choice/duet-choice.d.ts +21 -3
  564. package/lib/types/components/duet-choice-group/duet-choice-group.d.ts +11 -0
  565. package/lib/types/components/duet-file-chooser/duet-file-chooser.d.ts +42 -0
  566. package/lib/types/components/duet-radio-group/duet-radio-group.d.ts +11 -0
  567. package/lib/types/components/duet-show-more/duet-show-more.d.ts +9 -1
  568. package/lib/types/components/duet-slideout/duet-slideout.d.ts +4 -0
  569. package/lib/types/components/duet-toolbar/duet-toolbar.d.ts +4 -0
  570. package/lib/types/components/duet-toolbar-dropdown/duet-toolbar-dropdown.d.ts +4 -0
  571. package/lib/types/components/duet-toolbar-link/duet-toolbar-link.d.ts +4 -0
  572. package/lib/types/components.d.ts +162 -6
  573. package/package.json +5 -5
  574. package/lib/duet/p-0446445a.entry.js +0 -4
  575. package/lib/duet/p-0b61acdf.system.entry.js +0 -4
  576. package/lib/duet/p-20e5ed91.system.js +0 -4
  577. package/lib/duet/p-24f8d463.entry.js +0 -4
  578. package/lib/duet/p-26ff9a18.system.entry.js +0 -4
  579. package/lib/duet/p-2ea63f14.entry.js +0 -4
  580. package/lib/duet/p-42ccf40b.system.entry.js +0 -4
  581. package/lib/duet/p-555b61e6.entry.js +0 -4
  582. package/lib/duet/p-58739e1a.system.entry.js +0 -4
  583. package/lib/duet/p-6096a38e.entry.js +0 -4
  584. package/lib/duet/p-671c230c.entry.js +0 -4
  585. package/lib/duet/p-7b365ce3.entry.js +0 -4
  586. package/lib/duet/p-862b5eb0.entry.js +0 -4
  587. package/lib/duet/p-9dc73fd7.system.entry.js +0 -4
  588. package/lib/duet/p-9dd3343d.entry.js +0 -4
  589. package/lib/duet/p-9ecfc096.js +0 -4
  590. package/lib/duet/p-a4c579be.entry.js +0 -4
  591. package/lib/duet/p-b467d535.entry.js +0 -4
  592. package/lib/duet/p-d49c1007.entry.js +0 -4
  593. package/lib/duet/p-dd3aeef8.system.entry.js +0 -4
  594. package/lib/duet/p-e79a421c.system.entry.js +0 -4
  595. package/lib/duet/p-f1f7c096.entry.js +0 -4
  596. package/lib/duet/p-f34a7fbc.entry.js +0 -4
  597. package/lib/duet/p-fb67a5dd.entry.js +0 -4
@@ -0,0 +1,189 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import { h, Host } from "@stencil/core";
5
+ import { inheritGlobalTheme } from "../../common";
6
+ export class DuetUploadItem {
7
+ constructor() {
8
+ this.onChange = (ev) => {
9
+ ev.preventDefault();
10
+ ev.stopPropagation();
11
+ this.duetChange.emit({
12
+ originalEvent: ev,
13
+ data: { files: this.nativeInput.files },
14
+ component: "duet-file-chooser",
15
+ });
16
+ };
17
+ this.theme = "";
18
+ this.multiple = false;
19
+ this.accept = undefined;
20
+ }
21
+ /**
22
+ * Opens file choose dialog.
23
+ */
24
+ async open() {
25
+ var _a;
26
+ (_a = this.nativeInput) === null || _a === void 0 ? void 0 : _a.click();
27
+ }
28
+ /**
29
+ * Returns actually selected files in file chooser.
30
+ */
31
+ async getFiles() {
32
+ return this.nativeInput.files;
33
+ }
34
+ /**
35
+ * Component lifecycle events.
36
+ */
37
+ componentWillLoad() {
38
+ inheritGlobalTheme(this);
39
+ }
40
+ render() {
41
+ return (h(Host, null, h("duet-visually-hidden", { "aria-hidden": "true" }, h("input", { ref: input => {
42
+ this.nativeInput = input;
43
+ }, type: "file", class: {
44
+ "duet-upload": true,
45
+ }, "aria-hidden": "true", tabIndex: -1, onChange: this.onChange, multiple: this.multiple, accept: this.accept }))));
46
+ }
47
+ static get is() { return "duet-file-chooser"; }
48
+ static get encapsulation() { return "shadow"; }
49
+ static get originalStyleUrls() {
50
+ return {
51
+ "$": ["duet-file-chooser.scss"]
52
+ };
53
+ }
54
+ static get styleUrls() {
55
+ return {
56
+ "$": ["duet-file-chooser.css"]
57
+ };
58
+ }
59
+ static get properties() {
60
+ return {
61
+ "theme": {
62
+ "type": "string",
63
+ "mutable": true,
64
+ "complexType": {
65
+ "original": "DuetTheme",
66
+ "resolved": "\"\" | \"default\" | \"turva\"",
67
+ "references": {
68
+ "DuetTheme": {
69
+ "location": "import",
70
+ "path": "../../common-types",
71
+ "id": "src/common-types.d.ts::DuetTheme"
72
+ }
73
+ }
74
+ },
75
+ "required": false,
76
+ "optional": false,
77
+ "docs": {
78
+ "tags": [],
79
+ "text": "theme."
80
+ },
81
+ "attribute": "theme",
82
+ "reflect": false,
83
+ "defaultValue": "\"\""
84
+ },
85
+ "multiple": {
86
+ "type": "boolean",
87
+ "mutable": false,
88
+ "complexType": {
89
+ "original": "boolean",
90
+ "resolved": "boolean",
91
+ "references": {}
92
+ },
93
+ "required": false,
94
+ "optional": false,
95
+ "docs": {
96
+ "tags": [],
97
+ "text": "Use multiple to allow the user to select multiple files when uploading"
98
+ },
99
+ "attribute": "multiple",
100
+ "reflect": false,
101
+ "defaultValue": "false"
102
+ },
103
+ "accept": {
104
+ "type": "string",
105
+ "mutable": false,
106
+ "complexType": {
107
+ "original": "string",
108
+ "resolved": "string",
109
+ "references": {}
110
+ },
111
+ "required": false,
112
+ "optional": false,
113
+ "docs": {
114
+ "tags": [],
115
+ "text": "The accept attribute takes as its value a comma-separated list of one or more file types,\nor unique file type specifiers, describing which file types to allow."
116
+ },
117
+ "attribute": "accept",
118
+ "reflect": false,
119
+ "defaultValue": "undefined"
120
+ }
121
+ };
122
+ }
123
+ static get events() {
124
+ return [{
125
+ "method": "duetChange",
126
+ "name": "duetChange",
127
+ "bubbles": false,
128
+ "cancelable": true,
129
+ "composed": true,
130
+ "docs": {
131
+ "tags": [],
132
+ "text": "Emitted when the value has changed."
133
+ },
134
+ "complexType": {
135
+ "original": "DuetFileChooserEvent",
136
+ "resolved": "{ originalEvent?: Event; data?: Record<string, any>; component: \"duet-file-chooser\"; }",
137
+ "references": {
138
+ "DuetFileChooserEvent": {
139
+ "location": "local",
140
+ "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-file-chooser/duet-file-chooser.tsx",
141
+ "id": "src/components/duet-file-chooser/duet-file-chooser.tsx::DuetFileChooserEvent"
142
+ }
143
+ }
144
+ }
145
+ }];
146
+ }
147
+ static get methods() {
148
+ return {
149
+ "open": {
150
+ "complexType": {
151
+ "signature": "() => Promise<void>",
152
+ "parameters": [],
153
+ "references": {
154
+ "Promise": {
155
+ "location": "global",
156
+ "id": "global::Promise"
157
+ }
158
+ },
159
+ "return": "Promise<void>"
160
+ },
161
+ "docs": {
162
+ "text": "Opens file choose dialog.",
163
+ "tags": []
164
+ }
165
+ },
166
+ "getFiles": {
167
+ "complexType": {
168
+ "signature": "() => Promise<FileList>",
169
+ "parameters": [],
170
+ "references": {
171
+ "Promise": {
172
+ "location": "global",
173
+ "id": "global::Promise"
174
+ },
175
+ "FileList": {
176
+ "location": "global",
177
+ "id": "global::FileList"
178
+ }
179
+ },
180
+ "return": "Promise<FileList>"
181
+ },
182
+ "docs": {
183
+ "text": "Returns actually selected files in file chooser.",
184
+ "tags": []
185
+ }
186
+ }
187
+ };
188
+ }
189
+ }
@@ -188,7 +188,7 @@ export class DuetInput {
188
188
  this.tooltipDirection = "auto";
189
189
  }
190
190
  disallowedPatternChange() {
191
- this.disallowPatternRegex = this.disallowPattern ? new RegExp(this.disallowPattern, "g") : null;
191
+ this.disallowPatternRegex = this.disallowPattern ? new RegExp(this.disallowPattern, "gu") : null;
192
192
  }
193
193
  valueChanged() {
194
194
  var _a;
@@ -24,6 +24,8 @@
24
24
  }
25
25
 
26
26
  .duet-menu-bar {
27
+ position: relative;
28
+ z-index: 1;
27
29
  display: flex;
28
30
  align-items: center;
29
31
  justify-content: center;
@@ -31,6 +31,8 @@ export class DuetRadioGroup {
31
31
  this.responsive = false;
32
32
  this.value = undefined;
33
33
  this.disabled = undefined;
34
+ this.required = false;
35
+ this.accessibleLiveError = "polite";
34
36
  }
35
37
  /**
36
38
  * Component lifecycle events.
@@ -81,6 +83,7 @@ export class DuetRadioGroup {
81
83
  // Walk the DOM in reverse order, since the last selected one wins
82
84
  for (const radio of radios) {
83
85
  radio.name = this.name;
86
+ radio.required = this.required;
84
87
  radio.groupDisabled = this.disabled;
85
88
  radio.groupDirection = this.direction;
86
89
  radio.groupResponsive = this.responsive;
@@ -105,7 +108,7 @@ export class DuetRadioGroup {
105
108
  * Always the last one in the class.
106
109
  */
107
110
  render() {
108
- return (h(Host, { onDuetChange: this.onSelect, class: { horizontal: this.direction === "horizontal" } }, h("duet-fieldset", { label: this.label, labelHidden: this.labelHidden, caption: this.caption, error: this.error, margin: this.margin, theme: this.theme }, this.tooltip && (h("duet-tooltip", { slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("div", { class: { "duet-radio-group": true, "duet-no-stacking": !this.responsive } }, h("slot", null)))));
111
+ return (h(Host, { onDuetChange: this.onSelect, class: { horizontal: this.direction === "horizontal" } }, h("duet-fieldset", { label: this.label, labelHidden: this.labelHidden, caption: this.caption, error: this.error, margin: this.margin, theme: this.theme, "accessible-live-error": this.accessibleLiveError }, this.tooltip && (h("duet-tooltip", { slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("div", { class: { "duet-radio-group": true, "duet-no-stacking": !this.responsive } }, h("slot", null)))));
109
112
  }
110
113
  static get is() { return "duet-radio-group"; }
111
114
  static get encapsulation() { return "scoped"; }
@@ -375,6 +378,42 @@ export class DuetRadioGroup {
375
378
  },
376
379
  "attribute": "disabled",
377
380
  "reflect": false
381
+ },
382
+ "required": {
383
+ "type": "boolean",
384
+ "mutable": false,
385
+ "complexType": {
386
+ "original": "boolean",
387
+ "resolved": "boolean",
388
+ "references": {}
389
+ },
390
+ "required": false,
391
+ "optional": false,
392
+ "docs": {
393
+ "tags": [],
394
+ "text": "Sets whether making a choice is required or optional. Will set contained duet-radio components to required as well."
395
+ },
396
+ "attribute": "required",
397
+ "reflect": false,
398
+ "defaultValue": "false"
399
+ },
400
+ "accessibleLiveError": {
401
+ "type": "string",
402
+ "mutable": false,
403
+ "complexType": {
404
+ "original": "\"off\" | \"polite\" | \"assertive\"",
405
+ "resolved": "\"assertive\" | \"off\" | \"polite\"",
406
+ "references": {}
407
+ },
408
+ "required": false,
409
+ "optional": false,
410
+ "docs": {
411
+ "tags": [],
412
+ "text": "The aria-live attribute for the error message. When the input is validated on blur, use \"off\", as using \"polite\" or \"assertive\"\nmakes the screen reader read the error message twice. When the input is validated on submit, use \"polite\", as \"off\" would leave\nthe messages unread by screen readers. Use \"assertive\" only in those rare cases when \"polite\" would leave the error message\nunread by screen readers."
413
+ },
414
+ "attribute": "accessible-live-error",
415
+ "reflect": false,
416
+ "defaultValue": "\"polite\""
378
417
  }
379
418
  };
380
419
  }
@@ -63,6 +63,8 @@ export class DuetShowMore {
63
63
  };
64
64
  this.showLessAccessibleLabel = getLocaleString(this.showLessAccessibleLabelDefaults);
65
65
  this.margin = "auto";
66
+ this.buttonMargin = "auto";
67
+ this.buttonPadding = "auto";
66
68
  this.open = false;
67
69
  }
68
70
  /**
@@ -93,7 +95,7 @@ export class DuetShowMore {
93
95
  "duet-theme-turva": this.theme === "turva",
94
96
  "duet-m-0": this.margin === "none",
95
97
  open: this.open,
96
- } }, h("div", { ref: ref => (this.contentElement = ref), class: { content: true }, id: this.contentId, tabindex: this.open ? "0" : "" }, h("div", { class: { "slotted-content": true } }, h("slot", null))), h("duet-button", { id: this.buttonId, variation: "plain", "accessible-label": this.buttonAriaOpen ? this.showLessAccessibleLabel : this.showMoreAccessibleLabel, "accessible-expanded": this.buttonAriaOpen ? "true" : "false", "accessible-controls": this.contentId, onClick: this.handleClick, onKeyDown: this.handleKeyDown, "icon-right": true, icon: this.open ? "action-arrow-up-small" : "action-arrow-down-small", "icon-size": "medium-small", size: "small" }, this.open ? this.showLessLabel : this.showMoreLabel))));
98
+ } }, h("div", { ref: ref => (this.contentElement = ref), class: { content: true }, id: this.contentId, tabindex: this.open ? "0" : "" }, h("div", { class: { "slotted-content": true } }, h("slot", null))), h("duet-button", { id: this.buttonId, variation: "plain", "accessible-label": this.buttonAriaOpen ? this.showLessAccessibleLabel : this.showMoreAccessibleLabel, "accessible-expanded": this.buttonAriaOpen ? "true" : "false", "accessible-controls": this.contentId, onClick: this.handleClick, onKeyDown: this.handleKeyDown, "icon-right": true, icon: this.open ? "action-arrow-up-small" : "action-arrow-down-small", "icon-size": "medium-small", size: "small", margin: this.buttonMargin, padding: this.buttonPadding }, this.open ? this.showLessLabel : this.showMoreLabel))));
97
99
  }
98
100
  static get is() { return "duet-show-more"; }
99
101
  static get encapsulation() { return "shadow"; }
@@ -347,6 +349,54 @@ export class DuetShowMore {
347
349
  "reflect": false,
348
350
  "defaultValue": "\"auto\""
349
351
  },
352
+ "buttonMargin": {
353
+ "type": "string",
354
+ "mutable": false,
355
+ "complexType": {
356
+ "original": "DuetMargin",
357
+ "resolved": "\"auto\" | \"none\"",
358
+ "references": {
359
+ "DuetMargin": {
360
+ "location": "import",
361
+ "path": "../../common-types",
362
+ "id": "src/common-types.d.ts::DuetMargin"
363
+ }
364
+ }
365
+ },
366
+ "required": false,
367
+ "optional": false,
368
+ "docs": {
369
+ "tags": [],
370
+ "text": "Controls the margin of the button component inside of show more."
371
+ },
372
+ "attribute": "button-margin",
373
+ "reflect": false,
374
+ "defaultValue": "\"auto\""
375
+ },
376
+ "buttonPadding": {
377
+ "type": "string",
378
+ "mutable": false,
379
+ "complexType": {
380
+ "original": "DuetPadding",
381
+ "resolved": "\"auto\" | \"none\"",
382
+ "references": {
383
+ "DuetPadding": {
384
+ "location": "import",
385
+ "path": "../../common-types",
386
+ "id": "src/common-types.d.ts::DuetPadding"
387
+ }
388
+ }
389
+ },
390
+ "required": false,
391
+ "optional": false,
392
+ "docs": {
393
+ "tags": [],
394
+ "text": "Controls the padding of the button component inside of show more."
395
+ },
396
+ "attribute": "button-padding",
397
+ "reflect": false,
398
+ "defaultValue": "\"auto\""
399
+ },
350
400
  "open": {
351
401
  "type": "boolean",
352
402
  "mutable": true,
@@ -16,6 +16,11 @@ export class DuetSlideout {
16
16
  fi: "Poistu valikosta",
17
17
  sv: "Avsluta menyn",
18
18
  };
19
+ this.topLevelOpenMenuBarLangObject = {
20
+ en: "Exit this menu to find top level items",
21
+ fi: "Poistu tästä valikosta löytääksesi ylätason kohteet",
22
+ sv: "Stäng den här menyn för att hitta objekt på toppnivå",
23
+ };
19
24
  this.isSafariBrowser = /^((?!chrome|android).)*safari/i.test(navigator === null || navigator === void 0 ? void 0 : navigator.userAgent);
20
25
  this.handleBodyScrolling = () => {
21
26
  if (this.displaying && this.open) {
@@ -25,6 +30,9 @@ export class DuetSlideout {
25
30
  enableBodyScroll(this.dialog);
26
31
  }
27
32
  };
33
+ this.getOpenPanel = () => {
34
+ return this.element.querySelector("duet-slideout-panel[open]");
35
+ };
28
36
  this.toggleMenu = (e) => {
29
37
  this.open = !this.open;
30
38
  if (this.openButton) {
@@ -36,7 +44,7 @@ export class DuetSlideout {
36
44
  component: "duet-slideout",
37
45
  });
38
46
  if (this.open) {
39
- const openPanel = this.element.querySelector("duet-slideout-panel[open]");
47
+ const openPanel = this.getOpenPanel();
40
48
  this.teleport.go(true);
41
49
  if (openPanel) {
42
50
  openPanel.setFocus();
@@ -63,6 +71,7 @@ export class DuetSlideout {
63
71
  };
64
72
  this.language = getLanguage();
65
73
  this.displaying = false;
74
+ this.openPanel = false;
66
75
  this.theme = "";
67
76
  this.open = false;
68
77
  this.opener = undefined;
@@ -139,11 +148,23 @@ export class DuetSlideout {
139
148
  }
140
149
  connectedCallback() {
141
150
  connectLanguageChangeObserver(this);
151
+ if (Build.isServer) {
152
+ return;
153
+ }
154
+ this.mutationObserver = new MutationObserver(() => {
155
+ this.openPanel = !!this.getOpenPanel();
156
+ });
157
+ this.mutationObserver.observe(this.element, { childList: true, attributeFilter: ["open"], subtree: true });
142
158
  }
143
159
  disconnectedCallback() {
144
160
  disconnectLanguageChangeObserver(this);
145
161
  enableBodyScroll(this.dialog);
146
- this.intersectionObserver.disconnect();
162
+ if (this.intersectionObserver) {
163
+ this.intersectionObserver.disconnect();
164
+ }
165
+ if (this.mutationObserver) {
166
+ this.mutationObserver.disconnect();
167
+ }
147
168
  }
148
169
  /**
149
170
  * Component event handling.
@@ -171,6 +192,7 @@ export class DuetSlideout {
171
192
  const styles = {
172
193
  background: getColorByName(this.backgroundColor, this.theme),
173
194
  };
195
+ const topLevelOpenMenuBarTranslation = getLocaleString(this.topLevelOpenMenuBarLangObject);
174
196
  const exitTranslation = getLocaleString(this.exitLangObject);
175
197
  return (h(Host, null, h("div", { class: { "duet-slideout": true, "duet-theme-turva": this.theme === "turva" } }, h("div", { class: {
176
198
  "desktop-bg": true,
@@ -183,7 +205,7 @@ export class DuetSlideout {
183
205
  }, style: styles }, h(FocusGuard, { moveFocusTo: this.closeButton }), h("div", { class: "top" }, h("button", { ref: element => (this.closeButton = element), "aria-haspopup": "dialog", "aria-controls": "dialog", "aria-expanded": this.open ? "true" : "false", "aria-label": `${exitTranslation}`, type: "button", class: {
184
206
  "slideout-close": true,
185
207
  active: this.open,
186
- }, onClick: this.onClick }, h("duet-icon", { name: "navigation-close", size: "small", margin: "none", color: "secondary" }))), h("div", { id: "menubar", role: "menubar", class: {
208
+ }, onClick: this.onClick, inert: this.openPanel }, h("duet-icon", { name: "navigation-close", size: "small", margin: "none", color: "secondary" }))), h("div", { id: "menubar", role: "menubar", "aria-label": this.openPanel ? topLevelOpenMenuBarTranslation : null, class: {
187
209
  items: true,
188
210
  } }, h("slot", null)), h(FocusGuard, { moveFocusTo: this.closeButton })))));
189
211
  }
@@ -289,7 +311,8 @@ export class DuetSlideout {
289
311
  static get states() {
290
312
  return {
291
313
  "language": {},
292
- "displaying": {}
314
+ "displaying": {},
315
+ "openPanel": {}
293
316
  };
294
317
  }
295
318
  static get events() {
@@ -27,11 +27,21 @@ export class DuetSlideoutPanel {
27
27
  this.open = toggle;
28
28
  if (toggle) {
29
29
  setTimeout(() => {
30
+ const siblings = Array.from(this.element.parentElement.children);
31
+ siblings.forEach(sibling => {
32
+ if (sibling !== this.element) {
33
+ sibling.inert = true;
34
+ }
35
+ });
30
36
  this.closeButton.focus();
31
37
  }, 200);
32
38
  }
33
39
  else {
34
40
  setTimeout(() => {
41
+ const siblings = Array.from(this.element.parentElement.children);
42
+ siblings.forEach(sibling => {
43
+ sibling.inert = false;
44
+ });
35
45
  this.openButton.focus();
36
46
  }, 200);
37
47
  }
@@ -103,7 +113,7 @@ export class DuetSlideoutPanel {
103
113
  } }, h("button", { ref: element => (this.openButton = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-current": this.active ? "true" : "false", id: "button", type: "button", class: {
104
114
  link: true,
105
115
  active: this.active,
106
- }, onClick: this.onToggleClick }, this.icon && h("duet-icon", { name: this.icon, size: "medium", margin: "none", color: "secondary" }), h("div", { class: "label" }, h("span", { class: { "label-text": true, [this.labelSize]: true } }, h("slot", { name: "label" })), h("duet-icon", { class: "caret", name: "action-arrow-right", margin: "none", size: "x-small", color: "secondary" }))), h("div", { class: {
116
+ }, onClick: this.onToggleClick, inert: this.open }, this.icon && h("duet-icon", { name: this.icon, size: "medium", margin: "none", color: "secondary" }), h("div", { class: "label" }, h("span", { class: { "label-text": true, [this.labelSize]: true } }, h("slot", { name: "label" })), h("duet-icon", { class: "caret", name: "action-arrow-right", margin: "none", size: "x-small", color: "secondary" }))), h("div", { class: {
107
117
  dialog: true,
108
118
  hidden: !this.open,
109
119
  }, style: styles }, h(FocusGuard, { moveFocusTo: this.closeButton }), h("div", { class: "top" }, h("button", { ref: element => (this.closeButton = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-label": `${backTranslation}`, type: "button", class: {
@@ -36,26 +36,6 @@
36
36
  position: relative;
37
37
  background: rgb(243, 249, 252);
38
38
  }
39
- .duet-submenu-bar .shadow-container {
40
- position: absolute;
41
- width: 100%;
42
- height: 100%;
43
- overflow: hidden;
44
- }
45
- .duet-submenu-bar .shadow-container .top-shadow {
46
- position: absolute;
47
- top: -52px;
48
- width: 100%;
49
- height: 52px;
50
- box-shadow: 0 2px 6px 0 rgba(0, 41, 77, 0.07);
51
- }
52
- @media (min-width: 62em) {
53
- .duet-submenu-bar .shadow-container .top-shadow {
54
- top: -80px;
55
- height: 80px;
56
- box-shadow: 0 3px 6px 0 rgba(0, 41, 77, 0.1);
57
- }
58
- }
59
39
  @media (min-width: 62em) {
60
40
  .duet-submenu-bar {
61
41
  border-bottom: 1px solid rgb(205, 229, 241);
@@ -106,7 +106,7 @@ export class DuetSubmenuBar {
106
106
  * Always the last one in the class.
107
107
  */
108
108
  render() {
109
- return (h(Host, null, h("nav", { class: { "duet-submenu-bar": true, "duet-theme-turva": this.theme === "turva" }, "aria-label": this.accessibleLabel }, h("div", { class: "shadow-container", role: "presentation" }, h("div", { class: "top-shadow" })), this.hasItems && (h("button", { ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
109
+ return (h(Host, null, h("nav", { class: { "duet-submenu-bar": true, "duet-theme-turva": this.theme === "turva" }, "aria-label": this.accessibleLabel }, this.hasItems && (h("button", { ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
110
110
  active: this.open,
111
111
  }, onClick: this.onClick }, h("div", { class: "label" }, h("slot", { name: "label" }), h("duet-icon", { theme: this.theme, class: "caret", name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" })))), h("div", { class: {
112
112
  "menu-container": true,
@@ -194,12 +194,16 @@
194
194
  @media (min-width: 62em) {
195
195
  .duet-submenu-bar-dropdown.duet-theme-turva button.active, .duet-submenu-bar-dropdown.duet-theme-turva button.open {
196
196
  color: rgb(148, 9, 37);
197
- background: rgb(228, 228, 230);
198
197
  }
199
198
  }
200
199
  .duet-submenu-bar-dropdown.duet-theme-turva button.active::after, .duet-submenu-bar-dropdown.duet-theme-turva button.open::after {
201
200
  background: rgb(148, 9, 37);
202
201
  }
202
+ @media (min-width: 62em) {
203
+ .duet-submenu-bar-dropdown.duet-theme-turva button.open {
204
+ background: rgb(228, 228, 230);
205
+ }
206
+ }
203
207
  @media (min-width: 62em) {
204
208
  .duet-submenu-bar-dropdown.duet-theme-turva .items {
205
209
  background: rgb(255, 255, 255);
@@ -51,7 +51,6 @@
51
51
  .duet-submenu-bar-dropdown-link {
52
52
  padding: 0.675rem 16px;
53
53
  font-size: 0.875rem;
54
- text-align: center;
55
54
  }
56
55
  }
57
56
  .duet-submenu-bar-dropdown-link.active .label {
@@ -1,11 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { formatViolations, mergeRules, options as axeRunOptions, testWithAxe } from "../../utils/axe-core-utils";
5
- const disabledRules = {
6
- // ShadowDOM isolates identifiers (needed for aria-controls) https://github.com/w3c/aria/issues/864
7
- "aria-valid-attr-value": { enabled: false },
8
- };
4
+ import { formatViolations, options as axeRunOptions, testWithAxe } from "../../utils/axe-core-utils";
9
5
  describe("[a11y] duet-tab-group", () => {
10
6
  it("should render an accessible component", async () => {
11
7
  const result = await testWithAxe(`
@@ -13,7 +9,7 @@ describe("[a11y] duet-tab-group", () => {
13
9
  <duet-tab label="Yhteenveto">Tab 1 content</duet-tab>
14
10
  <duet-tab label="Säästösuunnitelma" selected>Tab 2 content</duet-tab>
15
11
  </duet-tab-group>
16
- `, mergeRules(axeRunOptions, disabledRules));
12
+ `, axeRunOptions);
17
13
  expect(result).not.toBeNull();
18
14
  expect(formatViolations(result.violations)).toEqual([]);
19
15
  });
@@ -56,7 +56,7 @@ export class DuetTabGroup {
56
56
  };
57
57
  this.renderTab = () => {
58
58
  const renderedTabs = this.tabs.map((element, index) => {
59
- return (h("button", { role: "tab", id: this.getButtonId(index), "aria-controls": this.getTabId(index), "aria-selected": element.selected ? "true" : "false", "aria-description": this.getAccessibleDescription(index), tabindex: index === 0 ? "0" : "-1", part: `${this.identifier}-button ${element.selected ? `${this.identifier}-button--selected` : ""}`, type: "button", class: {
59
+ return (h("button", { role: "tab", id: this.getButtonId(index), "aria-selected": element.selected ? "true" : "false", "aria-description": this.getAccessibleDescription(index), tabindex: index === 0 ? "0" : "-1", part: `${this.identifier}-button ${element.selected ? `${this.identifier}-button--selected` : ""}`, type: "button", class: {
60
60
  "duet-p-0": this.padding === "none",
61
61
  "duet-tab-button": true,
62
62
  "stackable-tab": this.variation === "checked" && this.tabs.length <= 3,
@@ -174,7 +174,6 @@ export class DuetTabGroup {
174
174
  this.tabs = this.getTabs();
175
175
  this.tabs.forEach((tab, index) => {
176
176
  tab.id = this.getTabId(index);
177
- tab.setAttribute("accessible-labelled-by", this.getButtonId(index));
178
177
  if (tab.selected) {
179
178
  if (this.selected === undefined) {
180
179
  this.selected = index;
@@ -115,7 +115,7 @@ export class DuetTextarea {
115
115
  this.counterLabel = undefined;
116
116
  }
117
117
  disallowedPatternChange() {
118
- this.disallowPatternRegex = this.disallowPattern ? new RegExp(this.disallowPattern, "g") : null;
118
+ this.disallowPatternRegex = this.disallowPattern ? new RegExp(this.disallowPattern, "gu") : null;
119
119
  }
120
120
  /**
121
121
  * Component lifecycle events.
@@ -54,9 +54,21 @@
54
54
  justify-content: center;
55
55
  height: 100%;
56
56
  }
57
+ .duet-toolbar.negative {
58
+ background: rgb(0, 119, 179);
59
+ }
60
+ .duet-toolbar.negative .container {
61
+ border-bottom: 0;
62
+ }
57
63
  .duet-toolbar.duet-theme-turva {
58
64
  background: rgb(255, 255, 255);
59
65
  }
60
66
  .duet-toolbar.duet-theme-turva .container {
61
67
  border-bottom: 1px solid rgb(228, 228, 230);
68
+ }
69
+ .duet-toolbar.duet-theme-turva.negative {
70
+ background: rgb(198, 12, 48);
71
+ }
72
+ .duet-toolbar.duet-theme-turva.negative .container {
73
+ border-bottom: 0;
62
74
  }
@@ -10,6 +10,7 @@ import { inheritGlobalTheme } from "../../common/themeable-component";
10
10
  export class DuetToolbar {
11
11
  constructor() {
12
12
  this.theme = "";
13
+ this.variation = "default";
13
14
  this.accessibleLabel = undefined;
14
15
  }
15
16
  /**
@@ -36,7 +37,8 @@ export class DuetToolbar {
36
37
  * Always the last one in the class.
37
38
  */
38
39
  render() {
39
- return (h(Host, null, h("nav", { class: { "duet-toolbar": true, "duet-theme-turva": this.theme === "turva" }, "aria-label": this.accessibleLabel }, h("div", { class: "container" }, h("div", { class: "list", role: "list" }, h("slot", { name: "left" })), h("div", { class: "list", role: "list" }, h("slot", { name: "right" }))))));
40
+ const variation = this.variation === "negative" ? "negative" : "default";
41
+ return (h(Host, null, h("nav", { class: { "duet-toolbar": true, "duet-theme-turva": this.theme === "turva", [variation]: true }, "aria-label": this.accessibleLabel }, h("div", { class: "container" }, h("div", { class: "list", role: "list" }, h("slot", { name: "left" })), h("div", { class: "list", role: "list" }, h("slot", { name: "right" }))))));
40
42
  }
41
43
  static get is() { return "duet-toolbar"; }
42
44
  static get encapsulation() { return "shadow"; }
@@ -76,6 +78,24 @@ export class DuetToolbar {
76
78
  "reflect": false,
77
79
  "defaultValue": "\"\""
78
80
  },
81
+ "variation": {
82
+ "type": "string",
83
+ "mutable": true,
84
+ "complexType": {
85
+ "original": "\"default\" | \"negative\"",
86
+ "resolved": "\"default\" | \"negative\"",
87
+ "references": {}
88
+ },
89
+ "required": false,
90
+ "optional": false,
91
+ "docs": {
92
+ "tags": [],
93
+ "text": "Variation."
94
+ },
95
+ "attribute": "variation",
96
+ "reflect": false,
97
+ "defaultValue": "\"default\""
98
+ },
79
99
  "accessibleLabel": {
80
100
  "type": "string",
81
101
  "mutable": false,