@duetds/components 8.3.1 → 8.4.1

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 (636) hide show
  1. package/hydrate/index.js +303 -70
  2. package/lib/cjs/{common-strings-22c70ef0.js → common-strings-75850753.js} +7 -1
  3. package/lib/cjs/duet-action-button.cjs.entry.js +2 -2
  4. package/lib/cjs/duet-alert.cjs.entry.js +2 -2
  5. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-banner.cjs.entry.js +16 -3
  7. package/lib/cjs/duet-breadcrumb.cjs.entry.js +2 -2
  8. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  9. package/lib/cjs/duet-button_2.cjs.entry.js +3 -3
  10. package/lib/cjs/duet-callout.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-caption_4.cjs.entry.js +14 -5
  12. package/lib/cjs/duet-card.cjs.entry.js +2 -2
  13. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-checkmark.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-chip.cjs.entry.js +2 -2
  16. package/lib/cjs/duet-choice_2.cjs.entry.js +4 -4
  17. package/lib/cjs/duet-collapsible.cjs.entry.js +2 -2
  18. package/lib/cjs/duet-combobox.cjs.entry.js +2 -2
  19. package/lib/cjs/duet-contact-card.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-cookie-consent.cjs.entry.js +2 -2
  21. package/lib/cjs/duet-date-picker.cjs.entry.js +3 -3
  22. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-editable-table_3.cjs.entry.js +2 -2
  24. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-file-chooser.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-footer.cjs.entry.js +3 -3
  28. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-header_2.cjs.entry.js +3 -3
  30. package/lib/cjs/duet-hero.cjs.entry.js +2 -2
  31. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  32. package/lib/cjs/duet-input_2.cjs.entry.js +2 -2
  33. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +2 -2
  36. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +2 -2
  37. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +3 -3
  38. package/lib/cjs/duet-menu-bar-item.cjs.entry.js +88 -0
  39. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +2 -2
  40. package/lib/cjs/duet-menu-bar.cjs.entry.js +2 -15
  41. package/lib/cjs/duet-modal.cjs.entry.js +4 -4
  42. package/lib/cjs/duet-multiselect.cjs.entry.js +2 -2
  43. package/lib/cjs/duet-nav.cjs.entry.js +1 -1
  44. package/lib/cjs/duet-notification_2.cjs.entry.js +3 -3
  45. package/lib/cjs/duet-number-input.cjs.entry.js +2 -2
  46. package/lib/cjs/duet-page-heading.cjs.entry.js +1 -1
  47. package/lib/cjs/duet-pagination_2.cjs.entry.js +2 -2
  48. package/lib/cjs/duet-popup-menu-item.cjs.entry.js +3 -2
  49. package/lib/cjs/duet-popup-menu.cjs.entry.js +85 -22
  50. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  51. package/lib/cjs/duet-promo-card.cjs.entry.js +1 -1
  52. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  53. package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
  54. package/lib/cjs/duet-scrollable_3.cjs.entry.js +2 -2
  55. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  56. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  57. package/lib/cjs/duet-shaped-image.cjs.entry.js +1 -1
  58. package/lib/cjs/duet-show-more.cjs.entry.js +2 -2
  59. package/lib/cjs/duet-slideout-lang.cjs.entry.js +1 -1
  60. package/lib/cjs/duet-slideout-link.cjs.entry.js +1 -1
  61. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +1 -1
  62. package/lib/cjs/duet-slideout-panel.cjs.entry.js +2 -2
  63. package/lib/cjs/duet-slideout.cjs.entry.js +4 -4
  64. package/lib/cjs/duet-step_2.cjs.entry.js +2 -2
  65. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +2 -2
  66. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +2 -2
  67. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +2 -2
  68. package/lib/cjs/duet-submenu-bar.cjs.entry.js +2 -2
  69. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  70. package/lib/cjs/duet-toggle.cjs.entry.js +2 -2
  71. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +3 -3
  72. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +3 -3
  73. package/lib/cjs/duet-toolbar-item.cjs.entry.js +59 -0
  74. package/lib/cjs/duet-toolbar-link.cjs.entry.js +2 -2
  75. package/lib/cjs/duet-toolbar.cjs.entry.js +2 -15
  76. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +3 -3
  77. package/lib/cjs/duet-tooltip.cjs.entry.js +2 -2
  78. package/lib/cjs/duet-tray.cjs.entry.js +2 -2
  79. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  80. package/lib/cjs/duet-upload-item.cjs.entry.js +1 -1
  81. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  82. package/lib/cjs/duet.cjs.js +2 -2
  83. package/lib/cjs/{focus-utils-2d403f5e.js → focus-utils-327224fb.js} +1 -1
  84. package/lib/cjs/{index-a515d5ff.js → index-f9de8fc6.js} +1 -1
  85. package/lib/cjs/{keyboard-utils-66010749.js → keyboard-utils-66ecb5d6.js} +4 -2
  86. package/lib/cjs/loader.cjs.js +2 -2
  87. package/lib/collection/collection-manifest.json +2 -0
  88. package/lib/collection/common-strings.js +6 -1
  89. package/lib/collection/components/duet-banner/duet-banner.css +88 -14
  90. package/lib/collection/components/duet-banner/duet-banner.js +18 -5
  91. package/lib/collection/components/duet-button/duet-button.css +3 -0
  92. package/lib/collection/components/duet-date-picker/duet-date-picker.css +2 -2
  93. package/lib/collection/components/duet-link/duet-link.css +8 -4
  94. package/lib/collection/components/duet-link/duet-link.js +77 -3
  95. package/lib/collection/components/duet-list/duet-list.js +1 -1
  96. package/lib/collection/components/duet-menu-bar/duet-menu-bar.a11y.e2e.js +45 -9
  97. package/lib/collection/components/duet-menu-bar/duet-menu-bar.css +1 -0
  98. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +0 -13
  99. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +1 -1
  100. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +1 -1
  101. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.css +103 -0
  102. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.js +286 -0
  103. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +1 -1
  104. package/lib/collection/components/duet-modal/duet-modal.css +2 -2
  105. package/lib/collection/components/duet-notification/duet-notification.css +2 -2
  106. package/lib/collection/components/duet-popup-menu/duet-popup-menu.js +95 -25
  107. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +20 -1
  108. package/lib/collection/components/duet-slideout/duet-slideout.css +3 -3
  109. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.css +3 -2
  110. package/lib/collection/components/duet-toolbar/duet-toolbar.a11y.e2e.js +65 -14
  111. package/lib/collection/components/duet-toolbar/duet-toolbar.css +1 -0
  112. package/lib/collection/components/duet-toolbar/duet-toolbar.js +0 -13
  113. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +1 -1
  114. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +1 -1
  115. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.css +122 -0
  116. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.js +270 -0
  117. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +1 -1
  118. package/lib/collection/utils/keyboard-utils.js +4 -2
  119. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  120. package/lib/dist-custom-elements/duet-alert.js +1 -1
  121. package/lib/dist-custom-elements/duet-badge.js +1 -1
  122. package/lib/dist-custom-elements/duet-banner.js +19 -6
  123. package/lib/dist-custom-elements/duet-breadcrumb.js +4 -4
  124. package/lib/dist-custom-elements/duet-breadcrumbs.js +1 -1
  125. package/lib/dist-custom-elements/duet-button.js +1 -1
  126. package/lib/dist-custom-elements/duet-callout.js +2 -2
  127. package/lib/dist-custom-elements/duet-caption.js +1 -1
  128. package/lib/dist-custom-elements/duet-card.js +4 -4
  129. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  130. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  131. package/lib/dist-custom-elements/duet-chip.js +3 -3
  132. package/lib/dist-custom-elements/duet-choice-group.js +8 -8
  133. package/lib/dist-custom-elements/duet-choice.js +7 -7
  134. package/lib/dist-custom-elements/duet-collapsible.js +3 -3
  135. package/lib/dist-custom-elements/duet-combobox.js +3 -3
  136. package/lib/dist-custom-elements/duet-contact-card.js +8 -8
  137. package/lib/dist-custom-elements/duet-cookie-consent.js +7 -7
  138. package/lib/dist-custom-elements/duet-date-picker.js +13 -13
  139. package/lib/dist-custom-elements/duet-divider.js +1 -1
  140. package/lib/dist-custom-elements/duet-editable-table.js +8 -8
  141. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  142. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  143. package/lib/dist-custom-elements/duet-file-chooser.js +2 -2
  144. package/lib/dist-custom-elements/duet-footer.js +6 -6
  145. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  146. package/lib/dist-custom-elements/duet-grid.js +1 -1
  147. package/lib/dist-custom-elements/duet-header.js +10 -10
  148. package/lib/dist-custom-elements/duet-heading.js +1 -1
  149. package/lib/dist-custom-elements/duet-hero.js +10 -10
  150. package/lib/dist-custom-elements/duet-icon.js +1 -1
  151. package/lib/dist-custom-elements/duet-input.js +1 -1
  152. package/lib/dist-custom-elements/duet-label.js +1 -1
  153. package/lib/dist-custom-elements/duet-layout.js +1 -1
  154. package/lib/dist-custom-elements/duet-link.js +1 -1
  155. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  156. package/lib/dist-custom-elements/duet-list.js +1 -1
  157. package/lib/dist-custom-elements/duet-logo.js +1 -1
  158. package/lib/dist-custom-elements/duet-menu-bar-button.js +3 -3
  159. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +3 -3
  160. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +4 -4
  161. package/lib/dist-custom-elements/duet-menu-bar-item.d.ts +11 -0
  162. package/lib/dist-custom-elements/duet-menu-bar-item.js +119 -0
  163. package/lib/dist-custom-elements/duet-menu-bar-link.js +3 -3
  164. package/lib/dist-custom-elements/duet-menu-bar.js +3 -16
  165. package/lib/dist-custom-elements/duet-modal.js +9 -9
  166. package/lib/dist-custom-elements/duet-multiselect.js +10 -10
  167. package/lib/dist-custom-elements/duet-nav.js +1 -1
  168. package/lib/dist-custom-elements/duet-notification-drawer.js +5 -5
  169. package/lib/dist-custom-elements/duet-notification.js +4 -4
  170. package/lib/dist-custom-elements/duet-number-input.js +12 -12
  171. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  172. package/lib/dist-custom-elements/duet-pagination.js +14 -14
  173. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  174. package/lib/dist-custom-elements/duet-popup-menu-item.js +5 -3
  175. package/lib/dist-custom-elements/duet-popup-menu.js +90 -24
  176. package/lib/dist-custom-elements/duet-progress.js +1 -1
  177. package/lib/dist-custom-elements/duet-promo-card.js +3 -3
  178. package/lib/dist-custom-elements/duet-radio-group.js +8 -8
  179. package/lib/dist-custom-elements/duet-radio.js +1 -1
  180. package/lib/dist-custom-elements/duet-range-slider.js +3 -3
  181. package/lib/dist-custom-elements/duet-range-stepper.js +5 -5
  182. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  183. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  184. package/lib/dist-custom-elements/duet-select.js +1 -1
  185. package/lib/dist-custom-elements/duet-shaped-image.js +1 -1
  186. package/lib/dist-custom-elements/duet-show-more.js +6 -6
  187. package/lib/dist-custom-elements/duet-slideout-lang.js +2 -2
  188. package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
  189. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  190. package/lib/dist-custom-elements/duet-slideout-panel.js +2 -2
  191. package/lib/dist-custom-elements/duet-slideout.js +4 -4
  192. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  193. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  194. package/lib/dist-custom-elements/duet-step.js +5 -5
  195. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  196. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +3 -3
  197. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +3 -3
  198. package/lib/dist-custom-elements/duet-submenu-bar-link.js +3 -3
  199. package/lib/dist-custom-elements/duet-submenu-bar.js +3 -3
  200. package/lib/dist-custom-elements/duet-tab-group.js +14 -14
  201. package/lib/dist-custom-elements/duet-tab.js +2 -2
  202. package/lib/dist-custom-elements/duet-table.js +1 -1
  203. package/lib/dist-custom-elements/duet-textarea.js +10 -10
  204. package/lib/dist-custom-elements/duet-toggle.js +3 -3
  205. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +4 -4
  206. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +4 -4
  207. package/lib/dist-custom-elements/duet-toolbar-item.d.ts +11 -0
  208. package/lib/dist-custom-elements/duet-toolbar-item.js +90 -0
  209. package/lib/dist-custom-elements/duet-toolbar-link.js +3 -3
  210. package/lib/dist-custom-elements/duet-toolbar.js +2 -15
  211. package/lib/dist-custom-elements/duet-tooltip-button.js +1 -1
  212. package/lib/dist-custom-elements/duet-tooltip-popup.js +1 -1
  213. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  214. package/lib/dist-custom-elements/duet-tray.js +4 -4
  215. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  216. package/lib/dist-custom-elements/duet-upload-item.js +1 -1
  217. package/lib/dist-custom-elements/duet-upload.js +18 -18
  218. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  219. package/lib/dist-custom-elements/index.js +1 -1
  220. package/lib/dist-custom-elements/{p-033ffb95.js → p-0ccedd20.js} +1 -1
  221. package/lib/dist-custom-elements/{p-83c687c4.js → p-15060f3e.js} +10 -10
  222. package/lib/dist-custom-elements/{p-7385cfae.js → p-19e196d7.js} +2 -2
  223. package/lib/dist-custom-elements/{p-99bfa47d.js → p-2a149fd8.js} +1 -1
  224. package/lib/dist-custom-elements/{p-15b43530.js → p-2e054d37.js} +2 -2
  225. package/lib/dist-custom-elements/{p-8aacf8f2.js → p-2e5140b1.js} +1 -1
  226. package/lib/dist-custom-elements/{p-d84624d1.js → p-3b611f77.js} +1 -1
  227. package/lib/dist-custom-elements/{p-82a9c4cc.js → p-40c896f1.js} +1 -1
  228. package/lib/dist-custom-elements/{p-fdafc7af.js → p-44597ec8.js} +1 -1
  229. package/lib/dist-custom-elements/{p-89fa2387.js → p-4b0c6729.js} +1 -1
  230. package/lib/dist-custom-elements/{p-eb30f749.js → p-4bff90c2.js} +1 -1
  231. package/lib/dist-custom-elements/{p-57d9241f.js → p-4ef93ac1.js} +2 -2
  232. package/lib/dist-custom-elements/{p-13cbfdc6.js → p-5230e644.js} +1 -1
  233. package/lib/dist-custom-elements/{p-8500f1f3.js → p-57391cc8.js} +1 -1
  234. package/lib/dist-custom-elements/{p-dd3202f3.js → p-5744809e.js} +1 -1
  235. package/lib/dist-custom-elements/{p-022cc9de.js → p-6542b17e.js} +1 -1
  236. package/lib/dist-custom-elements/{p-e8d8a5f1.js → p-65c75ef9.js} +8 -8
  237. package/lib/dist-custom-elements/{p-89c8eef0.js → p-65d670a0.js} +6 -6
  238. package/lib/dist-custom-elements/{p-3380c780.js → p-6c44ff37.js} +1 -1
  239. package/lib/dist-custom-elements/{p-33c43f27.js → p-72e0efbc.js} +6 -6
  240. package/lib/dist-custom-elements/{p-57e61a09.js → p-7a89935d.js} +1 -1
  241. package/lib/dist-custom-elements/{p-f1a37b7f.js → p-8e5e3b4e.js} +6 -6
  242. package/lib/dist-custom-elements/{p-85c51c36.js → p-95fd6b77.js} +4 -4
  243. package/lib/dist-custom-elements/{p-da0965a5.js → p-99feccb2.js} +1 -1
  244. package/lib/dist-custom-elements/{p-6c8a44ea.js → p-a6d6bf5b.js} +1 -1
  245. package/lib/dist-custom-elements/{p-4ab776f4.js → p-aa07d1a7.js} +7 -2
  246. package/lib/dist-custom-elements/{p-55634a0b.js → p-bec3a15c.js} +4 -2
  247. package/lib/dist-custom-elements/{p-70fb72b8.js → p-c0e3f8a6.js} +1 -1
  248. package/lib/dist-custom-elements/{p-ba9d785a.js → p-d696adf5.js} +3 -3
  249. package/lib/dist-custom-elements/{p-92e8fec4.js → p-d91292b9.js} +1 -1
  250. package/lib/dist-custom-elements/{p-a8d729e4.js → p-de784f1a.js} +1 -1
  251. package/lib/dist-custom-elements/{p-99c2c6f3.js → p-e1bb31ca.js} +5 -5
  252. package/lib/dist-custom-elements/{p-7f8daa04.js → p-ee4d3c46.js} +4 -4
  253. package/lib/dist-custom-elements/{p-de5298ac.js → p-f6fffc84.js} +2 -2
  254. package/lib/dist-custom-elements/{p-eb03dc27.js → p-f70cdce4.js} +11 -11
  255. package/lib/dist-custom-elements/{p-97144a49.js → p-fe64b544.js} +18 -6
  256. package/lib/duet/duet.esm.js +1 -1
  257. package/lib/duet/duet.js +1 -1
  258. package/lib/duet/p-004adfad.entry.js +4 -0
  259. package/lib/duet/p-0086f84d.system.entry.js +4 -0
  260. package/lib/duet/p-01d4ec9a.entry.js +4 -0
  261. package/lib/duet/{p-db688714.system.entry.js → p-0201d375.system.entry.js} +1 -1
  262. package/lib/duet/{p-03237a62.system.entry.js → p-0506b997.system.entry.js} +2 -2
  263. package/lib/duet/{p-2171907b.system.entry.js → p-0681edcd.system.entry.js} +1 -1
  264. package/lib/duet/{p-49ba8156.system.entry.js → p-08708eb4.system.entry.js} +1 -1
  265. package/lib/duet/{p-7d4d3bee.system.entry.js → p-0f667990.system.entry.js} +1 -1
  266. package/lib/duet/{p-de2da9fd.system.entry.js → p-0fa339a9.system.entry.js} +1 -1
  267. package/lib/duet/{p-c8ff85f8.entry.js → p-0fc49dba.entry.js} +1 -1
  268. package/lib/duet/{p-21f1bd62.system.entry.js → p-10b4dd2b.system.entry.js} +1 -1
  269. package/lib/duet/{p-72179a41.entry.js → p-11220124.entry.js} +1 -1
  270. package/lib/duet/{p-28b22d09.entry.js → p-17b7ba64.entry.js} +1 -1
  271. package/lib/duet/{p-947af010.entry.js → p-18bc2b2f.entry.js} +1 -1
  272. package/lib/duet/{p-05728995.entry.js → p-19c965b5.entry.js} +1 -1
  273. package/lib/duet/{p-3733ebe1.system.entry.js → p-1aca2547.system.entry.js} +1 -1
  274. package/lib/duet/{p-0b4b179c.system.entry.js → p-1bce83be.system.entry.js} +1 -1
  275. package/lib/duet/{p-1f0dc968.entry.js → p-1cacf327.entry.js} +1 -1
  276. package/lib/duet/p-1ed57d33.entry.js +4 -0
  277. package/lib/duet/p-20211120.entry.js +4 -0
  278. package/lib/duet/p-214121e2.entry.js +4 -0
  279. package/lib/duet/{p-45199b0c.system.entry.js → p-2609cbef.system.entry.js} +1 -1
  280. package/lib/duet/{p-f15a1679.system.entry.js → p-2663955a.system.entry.js} +2 -2
  281. package/lib/duet/{p-1e6bd5da.entry.js → p-26ed2d8a.entry.js} +1 -1
  282. package/lib/duet/{p-3f56cdd6.entry.js → p-284bcc14.entry.js} +1 -1
  283. package/lib/duet/p-29e5a618.system.entry.js +4 -0
  284. package/lib/duet/p-2b05e7f2.system.entry.js +4 -0
  285. package/lib/duet/{p-1db3932f.system.entry.js → p-2b681fe9.system.entry.js} +1 -1
  286. package/lib/duet/{p-1020c84c.system.entry.js → p-2ccdffe3.system.entry.js} +1 -1
  287. package/lib/duet/{p-ec2eb98f.system.entry.js → p-2d5e65b9.system.entry.js} +1 -1
  288. package/lib/duet/{p-4cd1b2dc.entry.js → p-30e523d0.entry.js} +1 -1
  289. package/lib/duet/{p-3cf8a878.entry.js → p-3106cd96.entry.js} +1 -1
  290. package/lib/duet/{p-26be2678.entry.js → p-34dd8057.entry.js} +1 -1
  291. package/lib/duet/{p-e69813f3.system.entry.js → p-351dbf91.system.entry.js} +1 -1
  292. package/lib/duet/p-35ba024d.entry.js +4 -0
  293. package/lib/duet/p-3624bad1.js +4 -0
  294. package/lib/duet/{p-77be9214.entry.js → p-3626334d.entry.js} +1 -1
  295. package/lib/duet/{p-6b5fc33f.entry.js → p-39a8acfe.entry.js} +1 -1
  296. package/lib/duet/{p-b8cd8aa9.entry.js → p-3a42e1ad.entry.js} +1 -1
  297. package/lib/duet/{p-969152f0.system.entry.js → p-3bcb8dde.system.entry.js} +1 -1
  298. package/lib/duet/{p-a53d7d39.system.entry.js → p-3bfb8a8b.system.entry.js} +1 -1
  299. package/lib/duet/{p-39ea1b09.system.entry.js → p-3c4f16aa.system.entry.js} +1 -1
  300. package/lib/duet/p-3caa2fe0.system.entry.js +4 -0
  301. package/lib/duet/{p-63b8a5d9.entry.js → p-3cbad6d0.entry.js} +1 -1
  302. package/lib/duet/{p-0cdc8487.system.entry.js → p-3d8d12ae.system.entry.js} +1 -1
  303. package/lib/duet/p-403f1729.entry.js +4 -0
  304. package/lib/duet/{p-d143df18.system.entry.js → p-40ec91af.system.entry.js} +1 -1
  305. package/lib/duet/{p-c2973a4e.system.entry.js → p-41a45115.system.entry.js} +1 -1
  306. package/lib/duet/p-41f5841c.entry.js +4 -0
  307. package/lib/duet/p-42529cf1.entry.js +4 -0
  308. package/lib/duet/{p-03c3cf91.entry.js → p-43b43c30.entry.js} +1 -1
  309. package/lib/duet/{p-875ba244.system.entry.js → p-460e260b.system.entry.js} +1 -1
  310. package/lib/duet/p-46b89ca6.js +4 -0
  311. package/lib/duet/{p-a319471c.system.entry.js → p-474c2b3a.system.entry.js} +1 -1
  312. package/lib/duet/p-47f5cc6a.entry.js +4 -0
  313. package/lib/duet/{p-0600d0e8.system.entry.js → p-4c85aea8.system.entry.js} +1 -1
  314. package/lib/duet/{p-e00c9499.system.entry.js → p-4d7b03d6.system.entry.js} +1 -1
  315. package/lib/duet/p-4fd6f45a.entry.js +4 -0
  316. package/lib/duet/{p-a0f179db.entry.js → p-556a9b8e.entry.js} +1 -1
  317. package/lib/duet/{p-d0500cf2.system.entry.js → p-571a1255.system.entry.js} +1 -1
  318. package/lib/duet/{p-825dac25.system.entry.js → p-57a4f750.system.entry.js} +1 -1
  319. package/lib/duet/{p-80aa59cb.entry.js → p-5ba285e6.entry.js} +1 -1
  320. package/lib/duet/{p-bfe237fe.entry.js → p-5c52a571.entry.js} +1 -1
  321. package/lib/duet/{p-6689cf76.entry.js → p-5caa2783.entry.js} +1 -1
  322. package/lib/duet/{p-d9887cdb.system.entry.js → p-5d1dd83e.system.entry.js} +1 -1
  323. package/lib/duet/{p-e0d1257a.entry.js → p-5fd0a40f.entry.js} +1 -1
  324. package/lib/duet/{p-31730560.entry.js → p-60e4f666.entry.js} +1 -1
  325. package/lib/duet/{p-1001ec0f.entry.js → p-630d3a3a.entry.js} +1 -1
  326. package/lib/duet/{p-f7167337.system.entry.js → p-6315a118.system.entry.js} +1 -1
  327. package/lib/duet/{p-9ed3ab30.entry.js → p-63dfab5b.entry.js} +1 -1
  328. package/lib/duet/{p-2c79b6d8.entry.js → p-651ba417.entry.js} +1 -1
  329. package/lib/duet/{p-65c5d605.system.entry.js → p-67081f4b.system.entry.js} +1 -1
  330. package/lib/duet/{p-d5d63283.system.entry.js → p-6a3c4621.system.entry.js} +1 -1
  331. package/lib/duet/{p-dc3e35c7.entry.js → p-6b8435d2.entry.js} +1 -1
  332. package/lib/duet/{p-4c416890.system.entry.js → p-6d276a1a.system.entry.js} +1 -1
  333. package/lib/duet/{p-dcd8af75.entry.js → p-6f6a2a37.entry.js} +1 -1
  334. package/lib/duet/{p-43adcd6a.entry.js → p-70c8c61a.entry.js} +1 -1
  335. package/lib/duet/p-70fa2c28.system.entry.js +4 -0
  336. package/lib/duet/{p-e03b6928.system.entry.js → p-72e17db2.system.entry.js} +1 -1
  337. package/lib/duet/{p-169aab07.entry.js → p-7599b013.entry.js} +1 -1
  338. package/lib/duet/{p-7b445598.system.entry.js → p-77d6d051.system.entry.js} +1 -1
  339. package/lib/duet/{p-1d195c3a.system.entry.js → p-78774220.system.entry.js} +1 -1
  340. package/lib/duet/{p-20ed91ba.entry.js → p-78fb70b7.entry.js} +1 -1
  341. package/lib/duet/{p-f630e363.system.entry.js → p-790dad25.system.entry.js} +1 -1
  342. package/lib/duet/{p-a89e81b7.entry.js → p-7985f554.entry.js} +1 -1
  343. package/lib/duet/p-7ad82468.entry.js +4 -0
  344. package/lib/duet/{p-ae0382ff.entry.js → p-7c9656b0.entry.js} +1 -1
  345. package/lib/duet/{p-976ed5a5.system.entry.js → p-7d9cb5c8.system.entry.js} +1 -1
  346. package/lib/duet/{p-d4285ed0.system.entry.js → p-7e09da7d.system.entry.js} +1 -1
  347. package/lib/duet/{p-d6c18967.system.entry.js → p-813c70d0.system.entry.js} +1 -1
  348. package/lib/duet/p-827c5d5a.system.entry.js +4 -0
  349. package/lib/duet/p-83e46984.system.entry.js +4 -0
  350. package/lib/duet/{p-c327db77.entry.js → p-85b7c2e7.entry.js} +1 -1
  351. package/lib/duet/{p-dbedcced.entry.js → p-87ce9349.entry.js} +1 -1
  352. package/lib/duet/{p-aab945c6.system.entry.js → p-89fa198c.system.entry.js} +1 -1
  353. package/lib/duet/{p-ab005633.system.entry.js → p-8cedb41b.system.entry.js} +1 -1
  354. package/lib/duet/{p-e24a3978.entry.js → p-8d4942c5.entry.js} +1 -1
  355. package/lib/duet/p-8dd241c6.system.js +4 -0
  356. package/lib/duet/{p-0ef53ae6.entry.js → p-8ecc454b.entry.js} +1 -1
  357. package/lib/duet/p-8efd4118.entry.js +4 -0
  358. package/lib/duet/{p-d44d74d3.system.entry.js → p-8f27c1f3.system.entry.js} +1 -1
  359. package/lib/duet/{p-e0931ac9.entry.js → p-90d3f3c8.entry.js} +1 -1
  360. package/lib/duet/{p-827fece7.system.entry.js → p-946b6050.system.entry.js} +1 -1
  361. package/lib/duet/{p-1612a6c7.system.entry.js → p-9531abc8.system.entry.js} +1 -1
  362. package/lib/duet/{p-79abaaad.entry.js → p-96ebee12.entry.js} +1 -1
  363. package/lib/duet/{p-81a79874.system.entry.js → p-9b22092d.system.entry.js} +1 -1
  364. package/lib/duet/{p-3ecc2d1e.system.entry.js → p-a60b9d5f.system.entry.js} +1 -1
  365. package/lib/duet/{p-5729c070.entry.js → p-a6e667d6.entry.js} +1 -1
  366. package/lib/duet/{p-d5b79ee4.entry.js → p-a8028561.entry.js} +1 -1
  367. package/lib/duet/{p-ee7738c2.entry.js → p-a942bdee.entry.js} +1 -1
  368. package/lib/duet/p-aa07d1a7.js +4 -0
  369. package/lib/duet/p-ab53abe4.entry.js +4 -0
  370. package/lib/duet/p-adab3da6.system.entry.js +4 -0
  371. package/lib/duet/{p-f1397f55.system.entry.js → p-ae014830.system.entry.js} +1 -1
  372. package/lib/duet/{p-16c13a11.system.entry.js → p-aeef3da1.system.entry.js} +1 -1
  373. package/lib/duet/{p-e21cc133.entry.js → p-b001db05.entry.js} +1 -1
  374. package/lib/duet/{p-70af7daf.entry.js → p-b0d6abce.entry.js} +1 -1
  375. package/lib/duet/{p-f3c91c9e.system.entry.js → p-b0f55d96.system.entry.js} +1 -1
  376. package/lib/duet/{p-b9568179.entry.js → p-b1efef46.entry.js} +1 -1
  377. package/lib/duet/{p-09c54c8e.system.js → p-b2716337.system.js} +1 -1
  378. package/lib/duet/{p-43ebba16.system.entry.js → p-b2fbc8d4.system.entry.js} +1 -1
  379. package/lib/duet/p-b72bdbe7.entry.js +4 -0
  380. package/lib/duet/{p-8d260eac.entry.js → p-b7331242.entry.js} +1 -1
  381. package/lib/duet/{p-99cc01cb.system.entry.js → p-b80d0aeb.system.entry.js} +1 -1
  382. package/lib/duet/{p-03c217ae.entry.js → p-b9842ee6.entry.js} +1 -1
  383. package/lib/duet/p-bc06eaac.entry.js +4 -0
  384. package/lib/duet/{p-dccd9c7c.js → p-bc9d8564.js} +1 -1
  385. package/lib/duet/{p-aac0b756.entry.js → p-bed03d19.entry.js} +1 -1
  386. package/lib/duet/{p-6b5f5f20.system.entry.js → p-beed8c17.system.entry.js} +1 -1
  387. package/lib/duet/p-befc75ae.system.js +4 -0
  388. package/lib/duet/{p-38cdaf08.entry.js → p-bfec3e0a.entry.js} +1 -1
  389. package/lib/duet/{p-eced32c1.system.entry.js → p-c0d2a7a9.system.entry.js} +1 -1
  390. package/lib/duet/{p-aabf89fa.system.js → p-c5e6009e.system.js} +1 -1
  391. package/lib/duet/{p-4e002d37.entry.js → p-c6077732.entry.js} +1 -1
  392. package/lib/duet/{p-2ddd9719.entry.js → p-c8ad985d.entry.js} +1 -1
  393. package/lib/duet/{p-e538a8a2.system.entry.js → p-c9768708.system.entry.js} +1 -1
  394. package/lib/duet/{p-9e95e6eb.entry.js → p-ca737839.entry.js} +1 -1
  395. package/lib/duet/{p-bda222d2.system.entry.js → p-cac37646.system.entry.js} +1 -1
  396. package/lib/duet/{p-9e1d8b6f.system.entry.js → p-cb238aa1.system.entry.js} +1 -1
  397. package/lib/duet/p-cb40a8fc.entry.js +4 -0
  398. package/lib/duet/{p-92e54702.system.entry.js → p-cddf8053.system.entry.js} +2 -2
  399. package/lib/duet/{p-d328f8cc.entry.js → p-cf3efe73.entry.js} +1 -1
  400. package/lib/duet/p-d27edac1.system.entry.js +4 -0
  401. package/lib/duet/{p-5581d26e.entry.js → p-da6df9ee.entry.js} +1 -1
  402. package/lib/duet/{p-3f4713a3.system.entry.js → p-db927865.system.entry.js} +1 -1
  403. package/lib/duet/{p-69f280e3.entry.js → p-dc3cc6a3.entry.js} +1 -1
  404. package/lib/duet/{p-e2eb1521.system.entry.js → p-de80b40e.system.entry.js} +1 -1
  405. package/lib/duet/{p-a917c2ae.system.entry.js → p-dec35d01.system.entry.js} +1 -1
  406. package/lib/duet/p-deff1b20.system.entry.js +4 -0
  407. package/lib/duet/{p-0a28d72d.entry.js → p-dfa44807.entry.js} +1 -1
  408. package/lib/duet/{p-3760418d.entry.js → p-e11114db.entry.js} +1 -1
  409. package/lib/duet/{p-3730d6bd.system.entry.js → p-e309c2a0.system.entry.js} +1 -1
  410. package/lib/duet/p-e350f3f3.system.js +4 -0
  411. package/lib/duet/{p-a424f7b8.system.entry.js → p-e58cd7fd.system.entry.js} +1 -1
  412. package/lib/duet/{p-71d1dbcb.entry.js → p-e8731309.entry.js} +1 -1
  413. package/lib/duet/{p-43091aa7.system.entry.js → p-e9d9754b.system.entry.js} +1 -1
  414. package/lib/duet/{p-bc522875.system.entry.js → p-f1bbf5eb.system.entry.js} +2 -2
  415. package/lib/duet/p-f3108381.system.entry.js +4 -0
  416. package/lib/duet/{p-f0419f45.entry.js → p-f3cd8f65.entry.js} +1 -1
  417. package/lib/duet/{p-e956cd9b.system.entry.js → p-f52f2a6e.system.entry.js} +1 -1
  418. package/lib/duet/{p-aa08b72e.system.entry.js → p-f60d9095.system.entry.js} +1 -1
  419. package/lib/duet/{p-41d61870.entry.js → p-f7dc5f61.entry.js} +1 -1
  420. package/lib/duet/{p-eedadd50.system.entry.js → p-f8d38386.system.entry.js} +1 -1
  421. package/lib/duet/{p-9f355c50.entry.js → p-fc070130.entry.js} +1 -1
  422. package/lib/duet/{p-6c34c6d4.entry.js → p-fdedb0c5.entry.js} +1 -1
  423. package/lib/duet/{p-4bd54c36.entry.js → p-fe2b2427.entry.js} +1 -1
  424. package/lib/duet/{p-20ff95cd.system.entry.js → p-fe57483c.system.entry.js} +1 -1
  425. package/lib/esm/{common-strings-59db6973.js → common-strings-7c7f8e40.js} +7 -2
  426. package/lib/esm/duet-action-button.entry.js +2 -2
  427. package/lib/esm/duet-alert.entry.js +2 -2
  428. package/lib/esm/duet-badge.entry.js +1 -1
  429. package/lib/esm/duet-banner.entry.js +16 -3
  430. package/lib/esm/duet-breadcrumb.entry.js +2 -2
  431. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  432. package/lib/esm/duet-button_2.entry.js +3 -3
  433. package/lib/esm/duet-callout.entry.js +1 -1
  434. package/lib/esm/duet-caption_4.entry.js +14 -5
  435. package/lib/esm/duet-card.entry.js +2 -2
  436. package/lib/esm/duet-checkbox.entry.js +1 -1
  437. package/lib/esm/duet-checkmark.entry.js +1 -1
  438. package/lib/esm/duet-chip.entry.js +2 -2
  439. package/lib/esm/duet-choice_2.entry.js +4 -4
  440. package/lib/esm/duet-collapsible.entry.js +2 -2
  441. package/lib/esm/duet-combobox.entry.js +2 -2
  442. package/lib/esm/duet-contact-card.entry.js +1 -1
  443. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  444. package/lib/esm/duet-date-picker.entry.js +3 -3
  445. package/lib/esm/duet-divider_2.entry.js +1 -1
  446. package/lib/esm/duet-editable-table_3.entry.js +2 -2
  447. package/lib/esm/duet-empty-state.entry.js +1 -1
  448. package/lib/esm/duet-fieldset.entry.js +1 -1
  449. package/lib/esm/duet-file-chooser.entry.js +1 -1
  450. package/lib/esm/duet-footer.entry.js +3 -3
  451. package/lib/esm/duet-grid_2.entry.js +1 -1
  452. package/lib/esm/duet-header_2.entry.js +3 -3
  453. package/lib/esm/duet-hero.entry.js +2 -2
  454. package/lib/esm/duet-icon.entry.js +1 -1
  455. package/lib/esm/duet-input_2.entry.js +2 -2
  456. package/lib/esm/duet-layout.entry.js +1 -1
  457. package/lib/esm/duet-list_2.entry.js +1 -1
  458. package/lib/esm/duet-menu-bar-button.entry.js +2 -2
  459. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +2 -2
  460. package/lib/esm/duet-menu-bar-dropdown.entry.js +3 -3
  461. package/lib/esm/duet-menu-bar-item.entry.js +84 -0
  462. package/lib/esm/duet-menu-bar-link.entry.js +2 -2
  463. package/lib/esm/duet-menu-bar.entry.js +2 -15
  464. package/lib/esm/duet-modal.entry.js +4 -4
  465. package/lib/esm/duet-multiselect.entry.js +2 -2
  466. package/lib/esm/duet-nav.entry.js +1 -1
  467. package/lib/esm/duet-notification_2.entry.js +3 -3
  468. package/lib/esm/duet-number-input.entry.js +2 -2
  469. package/lib/esm/duet-page-heading.entry.js +1 -1
  470. package/lib/esm/duet-pagination_2.entry.js +2 -2
  471. package/lib/esm/duet-popup-menu-item.entry.js +3 -2
  472. package/lib/esm/duet-popup-menu.entry.js +85 -22
  473. package/lib/esm/duet-progress.entry.js +1 -1
  474. package/lib/esm/duet-promo-card.entry.js +1 -1
  475. package/lib/esm/duet-radio_2.entry.js +1 -1
  476. package/lib/esm/duet-range-slider.entry.js +2 -2
  477. package/lib/esm/duet-scrollable_3.entry.js +2 -2
  478. package/lib/esm/duet-section-layout.entry.js +1 -1
  479. package/lib/esm/duet-select.entry.js +1 -1
  480. package/lib/esm/duet-shaped-image.entry.js +1 -1
  481. package/lib/esm/duet-show-more.entry.js +2 -2
  482. package/lib/esm/duet-slideout-lang.entry.js +1 -1
  483. package/lib/esm/duet-slideout-link.entry.js +1 -1
  484. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  485. package/lib/esm/duet-slideout-panel.entry.js +2 -2
  486. package/lib/esm/duet-slideout.entry.js +4 -4
  487. package/lib/esm/duet-step_2.entry.js +2 -2
  488. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +2 -2
  489. package/lib/esm/duet-submenu-bar-dropdown.entry.js +2 -2
  490. package/lib/esm/duet-submenu-bar-link.entry.js +2 -2
  491. package/lib/esm/duet-submenu-bar.entry.js +2 -2
  492. package/lib/esm/duet-textarea.entry.js +1 -1
  493. package/lib/esm/duet-toggle.entry.js +2 -2
  494. package/lib/esm/duet-toolbar-dropdown-link.entry.js +3 -3
  495. package/lib/esm/duet-toolbar-dropdown.entry.js +3 -3
  496. package/lib/esm/duet-toolbar-item.entry.js +55 -0
  497. package/lib/esm/duet-toolbar-link.entry.js +2 -2
  498. package/lib/esm/duet-toolbar.entry.js +2 -15
  499. package/lib/esm/duet-tooltip-button_2.entry.js +3 -3
  500. package/lib/esm/duet-tooltip.entry.js +2 -2
  501. package/lib/esm/duet-tray.entry.js +2 -2
  502. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  503. package/lib/esm/duet-upload-item.entry.js +1 -1
  504. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  505. package/lib/esm/duet.js +3 -3
  506. package/lib/esm/{focus-utils-5adec865.js → focus-utils-92ce3363.js} +1 -1
  507. package/lib/esm/{index-88bb0f20.js → index-ca0e302d.js} +1 -1
  508. package/lib/esm/{keyboard-utils-c472d19d.js → keyboard-utils-0708be80.js} +4 -2
  509. package/lib/esm/loader.js +3 -3
  510. package/lib/esm-es5/common-strings-7c7f8e40.js +4 -0
  511. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  512. package/lib/esm-es5/duet-alert.entry.js +1 -1
  513. package/lib/esm-es5/duet-badge.entry.js +1 -1
  514. package/lib/esm-es5/duet-banner.entry.js +1 -1
  515. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  516. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  517. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  518. package/lib/esm-es5/duet-callout.entry.js +1 -1
  519. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  520. package/lib/esm-es5/duet-card.entry.js +1 -1
  521. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  522. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  523. package/lib/esm-es5/duet-chip.entry.js +1 -1
  524. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  525. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  526. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  527. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  528. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  529. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  530. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  531. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  532. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  533. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  534. package/lib/esm-es5/duet-file-chooser.entry.js +1 -1
  535. package/lib/esm-es5/duet-footer.entry.js +1 -1
  536. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  537. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  538. package/lib/esm-es5/duet-hero.entry.js +1 -1
  539. package/lib/esm-es5/duet-icon.entry.js +1 -1
  540. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  541. package/lib/esm-es5/duet-layout.entry.js +1 -1
  542. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  543. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  544. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  545. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +2 -2
  546. package/lib/esm-es5/duet-menu-bar-item.entry.js +4 -0
  547. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  548. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  549. package/lib/esm-es5/duet-modal.entry.js +1 -1
  550. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  551. package/lib/esm-es5/duet-nav.entry.js +1 -1
  552. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  553. package/lib/esm-es5/duet-number-input.entry.js +2 -2
  554. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  555. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  556. package/lib/esm-es5/duet-popup-menu-item.entry.js +2 -2
  557. package/lib/esm-es5/duet-popup-menu.entry.js +1 -1
  558. package/lib/esm-es5/duet-progress.entry.js +1 -1
  559. package/lib/esm-es5/duet-promo-card.entry.js +1 -1
  560. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  561. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  562. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  563. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  564. package/lib/esm-es5/duet-select.entry.js +1 -1
  565. package/lib/esm-es5/duet-shaped-image.entry.js +1 -1
  566. package/lib/esm-es5/duet-show-more.entry.js +1 -1
  567. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  568. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  569. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  570. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  571. package/lib/esm-es5/duet-slideout.entry.js +1 -1
  572. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  573. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  574. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  575. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  576. package/lib/esm-es5/duet-submenu-bar.entry.js +2 -2
  577. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  578. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  579. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  580. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  581. package/lib/esm-es5/duet-toolbar-item.entry.js +4 -0
  582. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  583. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  584. package/lib/esm-es5/duet-tooltip-button_2.entry.js +1 -1
  585. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  586. package/lib/esm-es5/duet-tray.entry.js +1 -1
  587. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  588. package/lib/esm-es5/duet-upload-item.entry.js +1 -1
  589. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  590. package/lib/esm-es5/duet.js +1 -1
  591. package/lib/esm-es5/focus-utils-92ce3363.js +4 -0
  592. package/lib/esm-es5/{index-88bb0f20.js → index-ca0e302d.js} +1 -1
  593. package/lib/esm-es5/{keyboard-utils-c472d19d.js → keyboard-utils-0708be80.js} +1 -1
  594. package/lib/esm-es5/loader.js +1 -1
  595. package/lib/types/common-strings.d.ts +1 -0
  596. package/lib/types/components/duet-banner/duet-banner.d.ts +7 -2
  597. package/lib/types/components/duet-link/duet-link.d.ts +16 -0
  598. package/lib/types/components/duet-list/duet-list.d.ts +1 -0
  599. package/lib/types/components/duet-menu-bar-item/duet-menu-bar-item.d.ts +67 -0
  600. package/lib/types/components/duet-popup-menu/duet-popup-menu.d.ts +9 -2
  601. package/lib/types/components/duet-popup-menu-item/duet-popup-menu-item.d.ts +4 -0
  602. package/lib/types/components/duet-toolbar-item/duet-toolbar-item.d.ts +65 -0
  603. package/lib/types/components.d.ts +214 -8
  604. package/package.json +6 -6
  605. package/lib/duet/p-07adc606.system.entry.js +0 -4
  606. package/lib/duet/p-0857e91c.entry.js +0 -4
  607. package/lib/duet/p-1c9ee2ea.entry.js +0 -4
  608. package/lib/duet/p-29186e16.entry.js +0 -4
  609. package/lib/duet/p-31657213.entry.js +0 -4
  610. package/lib/duet/p-357307f7.entry.js +0 -4
  611. package/lib/duet/p-4648c2cf.system.entry.js +0 -4
  612. package/lib/duet/p-47f7fd31.system.entry.js +0 -4
  613. package/lib/duet/p-4ab776f4.js +0 -4
  614. package/lib/duet/p-5263bc35.js +0 -4
  615. package/lib/duet/p-575e4de7.system.js +0 -4
  616. package/lib/duet/p-5b3275f8.system.entry.js +0 -4
  617. package/lib/duet/p-5c810c8e.entry.js +0 -4
  618. package/lib/duet/p-671a9905.entry.js +0 -4
  619. package/lib/duet/p-67bd1eae.entry.js +0 -4
  620. package/lib/duet/p-756e625e.entry.js +0 -4
  621. package/lib/duet/p-7c8c5534.entry.js +0 -4
  622. package/lib/duet/p-92861390.entry.js +0 -4
  623. package/lib/duet/p-9d9cab9d.system.entry.js +0 -4
  624. package/lib/duet/p-bfd50a6a.entry.js +0 -4
  625. package/lib/duet/p-c9cb8ffa.system.entry.js +0 -4
  626. package/lib/duet/p-ce746fbf.entry.js +0 -4
  627. package/lib/duet/p-d1cedaa1.system.js +0 -4
  628. package/lib/duet/p-d9400840.entry.js +0 -4
  629. package/lib/duet/p-e276fee0.js +0 -4
  630. package/lib/duet/p-ead2a738.system.js +0 -4
  631. package/lib/duet/p-ef83d9da.system.entry.js +0 -4
  632. package/lib/duet/p-f121b583.entry.js +0 -4
  633. package/lib/duet/p-f273c4de.system.entry.js +0 -4
  634. package/lib/duet/p-f5c69659.system.entry.js +0 -4
  635. package/lib/esm-es5/common-strings-59db6973.js +0 -4
  636. package/lib/esm-es5/focus-utils-5adec865.js +0 -4
@@ -32,13 +32,13 @@
32
32
  max-height: 100vh;
33
33
  overflow-y: auto;
34
34
  visibility: hidden;
35
- background: rgba(0, 41, 77, 0.85);
35
+ background: rgba(0, 41, 77, 0.3);
36
36
  opacity: 0;
37
37
  transition: 300ms ease;
38
38
  transition-delay: 200ms;
39
39
  }
40
40
  .duet-modal-overlay.duet-theme-turva {
41
- background: rgba(23, 28, 58, 0.85);
41
+ background: rgba(23, 28, 58, 0.3);
42
42
  }
43
43
  .duet-modal-overlay.duet-modal-active {
44
44
  visibility: visible;
@@ -44,14 +44,14 @@
44
44
  background: rgb(243, 249, 252);
45
45
  }
46
46
  .duet-notification.duet-notification-highlight.duet-theme-turva {
47
- background: rgb(252, 243, 244);
47
+ background: rgb(245, 245, 247);
48
48
  }
49
49
  @media (min-width: 62em) {
50
50
  .duet-notification:hover {
51
51
  background: rgb(243, 249, 252);
52
52
  }
53
53
  .duet-notification:hover.duet-theme-turva {
54
- background: rgb(252, 243, 244);
54
+ background: rgb(245, 245, 247);
55
55
  }
56
56
  }
57
57
  .duet-notification a {
@@ -2,18 +2,34 @@
2
2
  * Built with Duet Design System
3
3
  */
4
4
  import { computePosition, flip, offset } from "@floating-ui/dom";
5
- import { Build, h, Host } from "@stencil/core";
5
+ import { Build, h, Host, } from "@stencil/core";
6
6
  import { inheritGlobalTheme } from "../../common/themeable-component";
7
7
  import { focusElement } from "../../utils/focus-utils";
8
8
  import { isArrowDownKey, isArrowUpKey, isEscapeKey, isTabKey } from "../../utils/keyboard-utils";
9
9
  import { Teleport } from "../../utils/teleport";
10
10
  export class DuetPopupMenu {
11
11
  constructor() {
12
+ this.setOpenButton = (element) => {
13
+ if (!element) {
14
+ return;
15
+ }
16
+ try {
17
+ const button = element;
18
+ button.accessiblePopup = "true";
19
+ button.accessibleExpanded = false;
20
+ button.setAttribute("trailing-icon", "action-arrow-down-small");
21
+ this.openButton = button;
22
+ }
23
+ catch (_e) { }
24
+ };
25
+ this.openButtonEventListener = () => {
26
+ this.toggle();
27
+ };
12
28
  this.updatePlacement = async () => {
13
- if (!this.controller) {
29
+ if (!this.openButton) {
14
30
  return;
15
31
  }
16
- const coordinates = await computePosition(this.controller, this.menuElement, {
32
+ const coordinates = await computePosition(this.openButton, this.menuElement, {
17
33
  middleware: [offset({ mainAxis: this.mainAxisOffset, crossAxis: this.crossAxisOffset }), flip()],
18
34
  placement: this.placement,
19
35
  strategy: this.position,
@@ -45,6 +61,15 @@ export class DuetPopupMenu {
45
61
  this.updatePlacement();
46
62
  }
47
63
  }
64
+ connectedCallback() {
65
+ this.handleControllerChange(this.controller, null);
66
+ }
67
+ disconnectedCallback() {
68
+ if (this.openButton) {
69
+ this.openButton.removeEventListener("click", this.openButtonEventListener);
70
+ this.openButton.removeAttribute("trailing-icon");
71
+ }
72
+ }
48
73
  /**
49
74
  * Component event handling.
50
75
  */
@@ -52,7 +77,7 @@ export class DuetPopupMenu {
52
77
  if (this.open) {
53
78
  // When Esc is pressed the menu should be closed
54
79
  if (isEscapeKey(evt)) {
55
- this.focusController();
80
+ this.focusOpenButton();
56
81
  this.hide();
57
82
  }
58
83
  }
@@ -90,7 +115,7 @@ export class DuetPopupMenu {
90
115
  }
91
116
  }
92
117
  handleClick(evt) {
93
- const isClickOutside = evt.composedPath().every(node => node !== this.element && node !== this.controller);
118
+ const isClickOutside = evt.composedPath().every(node => node !== this.element && node !== this.openButton);
94
119
  if (this.open && isClickOutside) {
95
120
  this.hide();
96
121
  }
@@ -106,23 +131,12 @@ export class DuetPopupMenu {
106
131
  */
107
132
  async show() {
108
133
  this.open = true;
109
- this.teleport.go();
110
- if (this.accessibleRole === "menu") {
111
- this.itemElements[0].setFocus();
112
- }
113
- this.duetToggle.emit({ open: this.open, component: "duet-popup-menu" });
114
- this.updatePlacement();
115
134
  }
116
135
  /**
117
136
  * Hide.
118
137
  */
119
138
  async hide() {
120
139
  this.open = false;
121
- this.duetToggle.emit({ open: this.open, component: "duet-popup-menu" });
122
- if (this.accessibleRole === "menu") {
123
- this.focusController();
124
- }
125
- this.teleport.resume(200);
126
140
  }
127
141
  /**
128
142
  * Toggle.
@@ -135,9 +149,53 @@ export class DuetPopupMenu {
135
149
  this.show();
136
150
  }
137
151
  }
138
- focusController() {
139
- if (this.controller) {
140
- focusElement(this.controller);
152
+ handleControllerChange(newValue, oldValue) {
153
+ if (!!newValue === !!oldValue) {
154
+ return;
155
+ }
156
+ if (typeof this.controller === "string") {
157
+ this.setOpenButton(document.getElementById(this.controller));
158
+ if (this.openButton) {
159
+ this.openButton.addEventListener("click", this.openButtonEventListener);
160
+ }
161
+ }
162
+ else {
163
+ this.setOpenButton(this.controller);
164
+ }
165
+ }
166
+ handleOpenChange(newValue, oldValue) {
167
+ if (!!newValue === !!oldValue) {
168
+ return;
169
+ }
170
+ if (this.open && !oldValue) {
171
+ if (this.openButton) {
172
+ this.openButton.accessibleExpanded = true;
173
+ }
174
+ this.teleport.go(true);
175
+ this.updatePlacement();
176
+ setTimeout(() => {
177
+ if (this.accessibleRole === "menu") {
178
+ this.itemElements[0].setFocus();
179
+ }
180
+ this.duetToggle.emit({ open: this.open, component: "duet-popup-menu" });
181
+ }, 200);
182
+ }
183
+ else if (!this.open && oldValue) {
184
+ if (this.openButton) {
185
+ this.openButton.accessibleExpanded = false;
186
+ }
187
+ setTimeout(() => {
188
+ if (this.accessibleRole === "menu") {
189
+ this.focusOpenButton();
190
+ }
191
+ this.duetToggle.emit({ open: this.open, component: "duet-popup-menu" });
192
+ this.teleport.resume();
193
+ }, 200);
194
+ }
195
+ }
196
+ focusOpenButton() {
197
+ if (this.open) {
198
+ focusElement(this.openButton);
141
199
  }
142
200
  }
143
201
  get itemElements() {
@@ -156,8 +214,9 @@ export class DuetPopupMenu {
156
214
  const positionStyles = {
157
215
  top: `${this.menuY}px`,
158
216
  left: `${this.menuX}px`,
217
+ position: this.position,
159
218
  };
160
- return (h(Host, { class: this.position }, h("div", { ref: element => (this.menuElement = element), style: positionStyles, class: { open: this.open, "duet-popup-menu-list": true, "duet-theme-turva": this.theme === "turva" }, role: this.accessibleRole, "aria-label": this.accessibleLabel }, h("slot", null))));
219
+ return (h(Host, null, h("div", { ref: element => (this.menuElement = element), style: positionStyles, class: { open: this.open, "duet-popup-menu-list": true, "duet-theme-turva": this.theme === "turva" }, role: this.accessibleRole, "aria-label": this.accessibleLabel }, h("slot", null))));
161
220
  }
162
221
  static get is() { return "duet-popup-menu"; }
163
222
  static get encapsulation() { return "shadow"; }
@@ -233,11 +292,11 @@ export class DuetPopupMenu {
233
292
  "defaultValue": "\"\""
234
293
  },
235
294
  "controller": {
236
- "type": "unknown",
295
+ "type": "string",
237
296
  "mutable": false,
238
297
  "complexType": {
239
- "original": "HTMLElement & FocusableComponent & OpenerComponent",
240
- "resolved": "HTMLElement & FocusableComponent & OpenerComponent",
298
+ "original": "string | (HTMLElement & FocusableComponent & OpenerComponent)",
299
+ "resolved": "HTMLElement & FocusableComponent & OpenerComponent | string",
241
300
  "references": {
242
301
  "HTMLElement": {
243
302
  "location": "global",
@@ -260,7 +319,9 @@ export class DuetPopupMenu {
260
319
  "docs": {
261
320
  "tags": [],
262
321
  "text": "Element controlling the opening and closing of the popup menu."
263
- }
322
+ },
323
+ "attribute": "controller",
324
+ "reflect": false
264
325
  },
265
326
  "placement": {
266
327
  "type": "string",
@@ -282,7 +343,7 @@ export class DuetPopupMenu {
282
343
  },
283
344
  "position": {
284
345
  "type": "string",
285
- "mutable": false,
346
+ "mutable": true,
286
347
  "complexType": {
287
348
  "original": "\"absolute\" | \"fixed\"",
288
349
  "resolved": "\"absolute\" | \"fixed\"",
@@ -440,6 +501,15 @@ export class DuetPopupMenu {
440
501
  };
441
502
  }
442
503
  static get elementRef() { return "element"; }
504
+ static get watchers() {
505
+ return [{
506
+ "propName": "controller",
507
+ "methodName": "handleControllerChange"
508
+ }, {
509
+ "propName": "open",
510
+ "methodName": "handleOpenChange"
511
+ }];
512
+ }
443
513
  static get listeners() {
444
514
  return [{
445
515
  "name": "keyup",
@@ -30,6 +30,7 @@ export class DuetPopupMenuItem {
30
30
  this.theme = "";
31
31
  this.url = undefined;
32
32
  this.external = false;
33
+ this.targetLanguage = undefined;
33
34
  this.value = undefined;
34
35
  this.leadingIcon = undefined;
35
36
  this.leadingIconColor = undefined;
@@ -62,7 +63,7 @@ export class DuetPopupMenuItem {
62
63
  active: this.active,
63
64
  "duet-theme-turva": this.theme === "turva",
64
65
  };
65
- return (h(Host, null, h(TagName, { ref: element => (this.itemElement = element), tabIndex: this.accessibleRole === "menuitem" ? -1 : 0, onFocus: this.onFocus, onBlur: this.onBlur, role: `${TagName === "a" ? "link" : "button"} ${this.accessibleRole}`, "aria-label": this.accessibleLabel, class: classes, value: this.value, href: this.url, target: this.external ? "_blank" : undefined, rel: this.external ? "noopener" : undefined }, this.leadingIcon && (h("duet-icon", { name: this.leadingIcon, size: "x-small", color: this.leadingIconColor ? this.leadingIconColor : "currentColor", class: "duet-popup-menu-item-leading", margin: "none" })), h("span", { class: "duet-popup-menu-item-label" }, h("slot", null)), this.trailingIcon && (h("duet-icon", { name: this.trailingIcon, size: "x-small", color: "currentColor", class: "duet-popup-menu-item-trailing", margin: "none" })), this.trailingText && h("span", { class: "duet-popup-menu-item-trailing" }, this.trailingText))));
66
+ return (h(Host, { role: this.accessibleRole }, h(TagName, { ref: element => (this.itemElement = element), tabIndex: this.accessibleRole === "menuitem" ? -1 : 0, onFocus: this.onFocus, onBlur: this.onBlur, role: `${TagName === "a" ? "link" : "button"}`, "aria-label": this.accessibleLabel, class: classes, value: this.value, href: this.url, target: this.external ? "_blank" : undefined, rel: this.external ? "noopener" : undefined, lang: TagName === "button" ? undefined : this.targetLanguage, hreflang: TagName === "button" ? undefined : this.targetLanguage }, this.leadingIcon && (h("duet-icon", { name: this.leadingIcon, size: "x-small", color: this.leadingIconColor ? this.leadingIconColor : "currentColor", class: "duet-popup-menu-item-leading", margin: "none" })), h("span", { class: "duet-popup-menu-item-label" }, h("slot", null)), (this.trailingIcon || this.active) && (h("duet-icon", { name: this.active ? "messaging-checked-small" : this.trailingIcon, size: this.active ? "xx-small" : "x-small", color: "currentColor", class: "duet-popup-menu-item-trailing", margin: "none" })), this.trailingText && h("span", { class: "duet-popup-menu-item-trailing" }, this.trailingText))));
66
67
  }
67
68
  static get is() { return "duet-popup-menu-item"; }
68
69
  static get encapsulation() { return "shadow"; }
@@ -172,6 +173,24 @@ export class DuetPopupMenuItem {
172
173
  "reflect": false,
173
174
  "defaultValue": "false"
174
175
  },
176
+ "targetLanguage": {
177
+ "type": "string",
178
+ "mutable": false,
179
+ "complexType": {
180
+ "original": "\"en\" | \"fi\" | \"sv\"",
181
+ "resolved": "\"en\" | \"fi\" | \"sv\"",
182
+ "references": {}
183
+ },
184
+ "required": false,
185
+ "optional": false,
186
+ "docs": {
187
+ "tags": [],
188
+ "text": "Language of the link. Use this only for language selection links."
189
+ },
190
+ "attribute": "target-language",
191
+ "reflect": false,
192
+ "defaultValue": "undefined"
193
+ },
175
194
  "value": {
176
195
  "type": "string",
177
196
  "mutable": false,
@@ -67,19 +67,19 @@
67
67
  width: 100%;
68
68
  height: 100%;
69
69
  visibility: hidden;
70
- background: rgba(0, 41, 77, 0.6);
70
+ background: rgb(0, 41, 77);
71
71
  opacity: 0;
72
72
  transition: 600ms ease;
73
73
  }
74
74
  .duet-slideout .desktop-bg:not(.hidden) {
75
75
  visibility: visible;
76
- opacity: 1;
76
+ opacity: 0.3;
77
77
  transition: 600ms ease;
78
78
  }
79
79
  }
80
80
  @media (min-width: 62em) {
81
81
  .duet-slideout.duet-theme-turva .desktop-bg {
82
- background: rgba(23, 28, 58, 0.6);
82
+ background: rgb(23, 28, 58);
83
83
  }
84
84
  }
85
85
  .duet-slideout .dialog {
@@ -141,7 +141,8 @@
141
141
  position: absolute;
142
142
  width: 100%;
143
143
  height: 100%;
144
- background: rgba(0, 41, 77, 0.6);
144
+ background: rgb(0, 41, 77);
145
+ opacity: 0.3;
145
146
  }
146
147
  @media (min-width: 62em) {
147
148
  .duet-submenu-bar .mobile-background {
@@ -159,7 +160,7 @@
159
160
  background: rgb(245, 245, 247);
160
161
  }
161
162
  .duet-submenu-bar.duet-theme-turva .mobile-background {
162
- background: rgba(23, 28, 58, 0.6);
163
+ background: rgb(23, 28, 58);
163
164
  }
164
165
  .duet-submenu-bar.duet-theme-turva .shadow-container .top-shadow {
165
166
  box-shadow: 0 2px 6px 0 rgba(23, 28, 58, 0.07);
@@ -5,23 +5,74 @@ import { formatViolations, options as axeRunOptions, testWithAxe } from "../../u
5
5
  describe("[a11y] duet-toolbar", () => {
6
6
  it("should render an accessible component", async () => {
7
7
  const result = await testWithAxe(`
8
- <duet-toolbar>
8
+ <duet-toolbar accessible-label="Secondary">
9
9
  <div slot="left">
10
- <duet-toolbar-link active>Henkilöasiakkaat</duet-toolbar-link>
11
- <duet-toolbar-link href="#yritysasiakkaat">Yritysasiakkaat</duet-toolbar-link>
12
- <duet-toolbar-dropdown icon="navigation-language">
13
- <span slot="label">Yhtiöryhmä</span>
14
- <duet-toolbar-dropdown-link>Valinta</duet-toolbar-dropdown-link>
15
- <duet-toolbar-dropdown-link>Valinta</duet-toolbar-dropdown-link>
16
- </duet-toolbar-dropdown>
10
+ <duet-toolbar-item url="#henkiloasiakkaat" active>Henkilöasiakkaat</duet-toolbar-item>
11
+ <duet-toolbar-item url="#yritysasiakkaat">Yritysasiakkaat</duet-toolbar-item>
12
+ <duet-toolbar-item url="#maatila-asiakkaat">Maatila-asiakkaat</duet-toolbar-item>
13
+ <duet-toolbar-item leading-icon="navigation-language" id="toolbar-item-yhtioryhma">Yhtiöryhmä</duet-toolbar-item>
14
+ <duet-popup-menu controller="toolbar-item-yhtioryhma" accessible-role="list" skip-teleport>
15
+ <duet-popup-menu-item accessible-role="listitem">Valinta</duet-popup-menu-item>
16
+ <duet-popup-menu-item accessible-role="listitem">Valinta</duet-popup-menu-item>
17
+ <duet-popup-menu-item accessible-role="listitem">Valinta</duet-popup-menu-item>
18
+ </duet-popup-menu>
17
19
  </div>
18
20
  <div slot="right">
19
- <duet-toolbar-link id="search" href="#search" icon="form-search">Hae</duet-toolbar-link>
20
- <duet-toolbar-dropdown icon="navigation-language">
21
- <span slot="label">FI</span>
22
- <duet-toolbar-dropdown-link active>Suomeksi</duet-toolbar-dropdown-link>
23
- <duet-toolbar-dropdown-link>På Svenska</duet-toolbar-dropdown-link>
24
- </duet-toolbar-dropdown>
21
+ <duet-toolbar-item id="desktop-search-opener" url="#search" icon="form-search">Hae</duet-toolbar-item>
22
+ <duet-slideout opener="desktop-search-opener" accessible-role="generic">
23
+ <div slot="sticky-header">
24
+ <duet-grid alignment="center" style="gap: var(--space-small)">
25
+ <duet-icon name="form-search" size="medium" margin="none"></duet-icon>
26
+ <duet-heading visual-level="h3" fixed-size margin="none">Haku</duet-heading>
27
+ </duet-grid>
28
+ <duet-spacer></duet-spacer>
29
+ <duet-input type="text" expand label="Haku" label-hidden clear="true"></duet-input>
30
+ </div>
31
+ <duet-spacer size="x-small"></duet-spacer>
32
+ <div>
33
+ <duet-heading level="h3" visual-level="h6">Usein haettua</duet-heading>
34
+ <div role="list">
35
+ <duet-popup-menu-item leading-icon="navigation-arrow-right" leading-icon-color="primary" url="#" accessible-role="listitem">Autovakuutus</duet-popup-menu-item>
36
+ <duet-popup-menu-item leading-icon="navigation-arrow-right" leading-icon-color="primary" url="#" accessible-role="listitem">Lapsiturva</duet-popup-menu-item>
37
+ <duet-popup-menu-item leading-icon="navigation-arrow-right" leading-icon-color="primary" url="#" accessible-role="listitem">Rahastosäästäminen</duet-popup-menu-item>
38
+ <duet-popup-menu-item leading-icon="navigation-arrow-right" leading-icon-color="primary" url="#" accessible-role="listitem">Henkivakuutus</duet-popup-menu-item>
39
+ <duet-popup-menu-item leading-icon="navigation-arrow-right" leading-icon-color="primary" url="#" accessible-role="listitem">Varainhoito</duet-popup-menu-item>
40
+ </div>
41
+ </div>
42
+ <duet-divider></duet-divider>
43
+ <div>
44
+ <duet-heading level="h3" visual-level="h6" color="gray-darker">Ehdotetut haut</duet-heading>
45
+ <div role="list">
46
+ <duet-popup-menu-item leading-icon="form-search" leading-icon-color="primary" accessible-role="listitem"><b>auto</b>vakuutus</duet-popup-menu-item>
47
+ <duet-popup-menu-item leading-icon="form-search" leading-icon-color="primary" accessible-role="listitem">sähkö<b>auto</b>n vakuutus</duet-popup-menu-item>
48
+ <duet-popup-menu-item leading-icon="form-search" leading-icon-color="primary" accessible-role="listitem"><b>auto</b>maattinen korvauskäsittely</duet-popup-menu-item>
49
+ <duet-popup-menu-item leading-icon="form-search" leading-icon-color="primary" accessible-role="listitem"><b>auto</b>tie</duet-popup-menu-item>
50
+ </div>
51
+ </div>
52
+ <duet-spacer size="large"></duet-spacer>
53
+ <div>
54
+ <duet-heading level="h3" visual-level="h6" color="gray-darker">Hakutulokset termillä 'auto' (93)</duet-heading>
55
+ <ul style="list-style: none; padding: 0;">
56
+ <li style="padding: var(--space-medium) 0;">
57
+ <duet-button url="#" variation="plain" margin="none" padding="none" fixed>Autovakuutus</duet-button>
58
+ <duet-paragraph margin="none">Halvin autovakuutus ei aina ole järkevin vaihtoehto. Suosittelemme vakuutusten sisällön vertailua ja huomioimaan erityisesti...</duet-paragraph>
59
+ <duet-spacer size="xx-small"></duet-spacer>
60
+ <duet-breadcrumbs variation="plain" color="gray-darker">
61
+ <span><duet-breadcrumb icon="">Henkilöasiakas</duet-breadcrumb></span>
62
+ <span><duet-breadcrumb >Vakuutukset</duet-breadcrumb></span>
63
+ <span><duet-breadcrumb>Ajoneuvot</duet-breadcrumb></span>
64
+ <span><duet-breadcrumb>Autovakuutus</duet-breadcrumb></span>
65
+ </duet-breadcrumbs>
66
+ </li>
67
+ </ul>
68
+ </div>
69
+ </duet-slideout>
70
+ <duet-toolbar-item accessible-label="Valitse kieli" leading-icon="navigation-language" id="toolbar-item-language">FI</duet-toolbar-item>
71
+ <duet-popup-menu controller="toolbar-item-language" accessible-role="list" skip-teleport>
72
+ <duet-popup-menu-item accessible-role="listitem" accessible-label="Vaihda kieli suomeksi" active>Suomeksi</duet-popup-menu-item>
73
+ <duet-popup-menu-item accessible-role="listitem" accessible-label="Byt språk till svenska" target-language="sv">På Svenska</duet-popup-menu-item>
74
+ <duet-popup-menu-item accessible-role="listitem" accessible-label="Change language to English" target-language="en">In English</duet-popup-menu-item>
75
+ </duet-popup-menu>
25
76
  </div>
26
77
  </duet-toolbar>
27
78
  `, axeRunOptions);
@@ -20,6 +20,7 @@
20
20
  -moz-appearance: none;
21
21
  -webkit-appearance: none;
22
22
  appearance: none;
23
+ position: relative;
23
24
  width: 100%;
24
25
  }
25
26
 
@@ -18,19 +18,6 @@ export class DuetToolbar {
18
18
  */
19
19
  componentWillLoad() {
20
20
  inheritGlobalTheme(this);
21
- const children = Array.from(this.element.children);
22
- for (const child of children) {
23
- if (child.getAttribute("slot") === "left") {
24
- for (const slotChild of Array.from(child.children)) {
25
- slotChild.setAttribute("role", "listitem");
26
- }
27
- }
28
- else if (child.getAttribute("slot") === "right") {
29
- for (const slotChild of Array.from(child.children)) {
30
- slotChild.setAttribute("role", "listitem");
31
- }
32
- }
33
- }
34
21
  }
35
22
  /**
36
23
  * render() function
@@ -50,7 +50,7 @@ export class DuetToolbarDropdown {
50
50
  itemsAlign = this.element.parentElement.getAttribute("slot") === "left" ? "right" : "left";
51
51
  }
52
52
  const variation = this.variation === "negative" ? "negative" : "white";
53
- return (h(Host, null, h("div", { class: {
53
+ return (h(Host, { role: "listitem" }, h("div", { class: {
54
54
  "duet-toolbar-dropdown": true,
55
55
  "duet-theme-turva": this.theme === "turva",
56
56
  [itemsAlign]: true,
@@ -35,7 +35,7 @@ export class DuetToolbarDropdownLink {
35
35
  "duet-toolbar-dropdown-link": true,
36
36
  "duet-theme-turva": this.theme === "turva",
37
37
  active: this.active,
38
- }, href: this.href, lang: this.targetLanguage, hreflang: this.targetLanguage, role: "menuitem", "aria-label": this.accessibleLabel, "aria-current": this.active ? "true" : "false", onKeyUp: e => this.handleEscape(e) }, this.icon && h("duet-icon", { name: this.icon, size: "x-small", margin: "none" }), h("span", { class: "label" }, h("slot", null)), this.active && (h("duet-icon", { name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor" })))));
38
+ }, href: this.href, lang: this.targetLanguage, hreflang: this.targetLanguage, role: "link menuitem", "aria-label": this.accessibleLabel, "aria-current": this.active ? "true" : "false", onKeyUp: e => this.handleEscape(e) }, this.icon && h("duet-icon", { name: this.icon, size: "x-small", margin: "none" }), h("span", { class: "label" }, h("slot", null)), this.active && (h("duet-icon", { name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor" })))));
39
39
  }
40
40
  static get is() { return "duet-toolbar-dropdown-link"; }
41
41
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,122 @@
1
+ *,
2
+ *::after,
3
+ *::before {
4
+ box-sizing: border-box;
5
+ padding: 0;
6
+ margin: 0;
7
+ background: transparent;
8
+ border: 0;
9
+ -moz-appearance: none;
10
+ -webkit-appearance: none;
11
+ appearance: none;
12
+ }
13
+
14
+ :host {
15
+ box-sizing: border-box;
16
+ padding: 0;
17
+ margin: 0;
18
+ background: transparent;
19
+ border: 0;
20
+ -moz-appearance: none;
21
+ -webkit-appearance: none;
22
+ appearance: none;
23
+ height: 100%;
24
+ }
25
+
26
+ .duet-toolbar-item {
27
+ position: relative;
28
+ display: flex;
29
+ gap: 8px;
30
+ align-items: center;
31
+ justify-content: center;
32
+ height: 100%;
33
+ padding: 0 16px;
34
+ font-family: "localtapiola-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
35
+ font-size: 0.875rem;
36
+ font-weight: 400;
37
+ line-height: 1.25;
38
+ color: rgb(0, 77, 128);
39
+ text-align: center;
40
+ text-decoration: none;
41
+ white-space: nowrap;
42
+ cursor: pointer;
43
+ }
44
+ .duet-toolbar-item:focus {
45
+ outline: 0;
46
+ box-shadow: 0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3;
47
+ }
48
+ .duet-theme-turva .duet-toolbar-item:focus, .duet-toolbar-item:focus.duet-theme-turva {
49
+ box-shadow: 0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a;
50
+ }
51
+ .duet-toolbar-item[aria-expanded=true] .trailing-icon.rotate {
52
+ transform: rotate(180deg);
53
+ }
54
+ .duet-toolbar-item.negative {
55
+ color: rgb(255, 255, 255);
56
+ }
57
+ .duet-toolbar-item.negative duet-icon {
58
+ color: rgb(205, 229, 241);
59
+ }
60
+ .duet-toolbar-item.duet-theme-turva {
61
+ font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
62
+ color: rgb(23, 28, 58);
63
+ }
64
+ .duet-toolbar-item.duet-theme-turva.negative {
65
+ color: rgb(255, 255, 255);
66
+ }
67
+ .duet-toolbar-item.duet-theme-turva.negative duet-icon {
68
+ color: rgb(244, 207, 214);
69
+ }
70
+ .duet-toolbar-item:hover {
71
+ color: rgb(0, 41, 77);
72
+ background: rgb(243, 249, 252);
73
+ }
74
+ .duet-toolbar-item:hover.negative {
75
+ color: rgb(255, 255, 255);
76
+ background: rgba(0, 41, 77, 0.2);
77
+ }
78
+ .duet-toolbar-item:hover.duet-theme-turva {
79
+ color: rgb(23, 28, 58);
80
+ background: rgb(245, 245, 247);
81
+ }
82
+ .duet-toolbar-item:hover.duet-theme-turva.negative {
83
+ color: rgb(255, 255, 255);
84
+ background: rgba(23, 28, 58, 0.2);
85
+ }
86
+ .duet-toolbar-item.active {
87
+ color: rgb(0, 41, 77);
88
+ }
89
+ .duet-toolbar-item.active.negative {
90
+ font-weight: 600;
91
+ color: rgb(255, 255, 255);
92
+ background: rgba(23, 28, 58, 0.2);
93
+ }
94
+ .duet-toolbar-item.active.negative::after {
95
+ display: none;
96
+ }
97
+ .duet-toolbar-item.active::after {
98
+ position: absolute;
99
+ top: auto;
100
+ bottom: 1px;
101
+ left: 0;
102
+ display: block;
103
+ width: 100%;
104
+ height: 1px;
105
+ content: "";
106
+ background: rgb(0, 119, 179);
107
+ transition: 300ms ease;
108
+ transform: translateY(1px);
109
+ }
110
+ .duet-toolbar-item.active::after.duet-theme-turva {
111
+ background: rgb(198, 12, 48);
112
+ }
113
+ .duet-toolbar-item.active.duet-theme-turva {
114
+ color: rgb(23, 28, 58);
115
+ }
116
+ .duet-toolbar-item.active.duet-theme-turva::after {
117
+ background: rgb(198, 12, 48);
118
+ }
119
+ .duet-toolbar-item.active.duet-theme-turva.negative {
120
+ color: rgb(255, 255, 255);
121
+ background: rgba(23, 28, 58, 0.2);
122
+ }