@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
@@ -2,9 +2,10 @@
2
2
  * Built with Duet Design System
3
3
  */
4
4
  import chevronIcon from "@duetds/icons/lib/assets/action-arrow-right";
5
+ import downloadIcon from "@duetds/icons/lib/assets/action-download-small";
5
6
  import newWindowIcon from "@duetds/icons/lib/assets/action-new-window-small";
6
7
  import { Build, Fragment, h, Host } from "@stencil/core";
7
- import { DuetStringsExternalDefaults } from "../../common-strings";
8
+ import { DuetStringsDownloadLinkDefaults, DuetStringsExternalDefaults } from "../../common-strings";
8
9
  import { inheritGlobalTheme } from "../../common/themeable-component";
9
10
  import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocaleString, } from "../../utils/language-utils";
10
11
  import { breakpointToToken } from "../../utils/token-utils";
@@ -20,10 +21,13 @@ export class DuetLink {
20
21
  this.language = getLanguage();
21
22
  this.accessibleLabelExternalDefaults = DuetStringsExternalDefaults;
22
23
  this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults);
24
+ this.accessibleLabelDownloadDefaults = DuetStringsDownloadLinkDefaults;
25
+ this.accessibleLabelDownload = getLocaleString(this.accessibleLabelDownloadDefaults);
23
26
  this.identifier = undefined;
24
27
  this.theme = "";
25
28
  this.url = "#";
26
29
  this.external = false;
30
+ this.download = false;
27
31
  this.tabToLink = false;
28
32
  this.icon = undefined;
29
33
  this.iconColor = "currentColor";
@@ -77,13 +81,16 @@ export class DuetLink {
77
81
  if (this.accessibleLabel) {
78
82
  return this.accessibleLabel;
79
83
  }
84
+ if (!!this.download && this.element.textContent) {
85
+ return `${this.element.textContent}. ${this.accessibleLabelDownload}.`;
86
+ }
80
87
  if (this.external && this.element.textContent) {
81
88
  return `${this.element.textContent}. ${this.accessibleLabelExternal}.`;
82
89
  }
83
90
  return null;
84
91
  }
85
92
  renderContent() {
86
- return (h(Fragment, null, h("span", { class: "duet-link-content", part: "duet-link-content" }, h("slot", null)), Build.isBrowser && this.external && (h(Fragment, null, h("span", { class: "duet-link-external" }, "\u00A0", h("duet-icon", { icon: newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" }))))));
93
+ return (h(Fragment, null, h("span", { class: "duet-link-content", part: "duet-link-content" }, h("slot", null)), Build.isBrowser && (this.download || this.external) && (h(Fragment, null, h("span", { class: "duet-link-icon-tail" }, "\u00A0", h("duet-icon", { icon: this.download ? downloadIcon.svg : newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" }))))));
87
94
  }
88
95
  renderGrid() {
89
96
  return (h(Fragment, null, this.icon && (h("span", { class: "block__icon" }, h("duet-icon", { size: this.iconResponsive ? (this.isSmallScreen ? "medium" : "large") : "x-small", name: this.icon, margin: "none", color: this.iconColor }))), h("span", { class: "block__content" }, this.renderContent()), h("span", { class: "block__chevron", part: "block-chevron" }, h("duet-icon", { class: "block__chevron-icon", icon: chevronIcon.svg, size: "x-small", margin: "none", color: "primary-dark" }))));
@@ -100,13 +107,14 @@ export class DuetLink {
100
107
  } }, h("a", { href: this.url, class: {
101
108
  "duet-link": true,
102
109
  "duet-link-is-external": this.external,
110
+ "duet-link-is-download": !!this.download,
103
111
  "duet-link-has-icon": !!this.icon,
104
112
  "duet-tab-to-link": this.tabToLink,
105
113
  "duet-theme-turva": this.theme === "turva",
106
114
  "duet-p-0": this.padding === "none",
107
115
  [this.padding]: true,
108
116
  [this.variation]: true,
109
- }, target: this.external ? "_blank" : "_self", "aria-label": this.getAccessibleLabel(), id: this.identifier, ref: el => (this.nativeLink = el), part: "duet-link", rel: this.external ? "noopener" : undefined }, this.variation === "block" ? this.renderGrid() : this.renderContent())));
117
+ }, target: this.download ? null : this.external ? "_blank" : "_self", download: this.download, "aria-label": this.getAccessibleLabel(), id: this.identifier, ref: el => (this.nativeLink = el), part: "duet-link", rel: this.external ? "noopener" : undefined }, this.variation === "block" ? this.renderGrid() : this.renderContent())));
110
118
  }
111
119
  static get is() { return "duet-link"; }
112
120
  static get encapsulation() { return "shadow"; }
@@ -242,6 +250,54 @@ export class DuetLink {
242
250
  "reflect": false,
243
251
  "defaultValue": "getLocaleString(this.accessibleLabelExternalDefaults)"
244
252
  },
253
+ "accessibleLabelDownloadDefaults": {
254
+ "type": "string",
255
+ "mutable": false,
256
+ "complexType": {
257
+ "original": "DuetLangObject | string",
258
+ "resolved": "DuetLangObject | string",
259
+ "references": {
260
+ "DuetLangObject": {
261
+ "location": "import",
262
+ "path": "../../utils/language-utils",
263
+ "id": "src/utils/language-utils.ts::DuetLangObject"
264
+ }
265
+ }
266
+ },
267
+ "required": false,
268
+ "optional": false,
269
+ "docs": {
270
+ "tags": [{
271
+ "name": "default",
272
+ "text": "{fi: \"Avautuu uuteen ikkunaan\",sv: \"\u00D6ppnas i nytt f\u00F6nster\",en: \"Opens in a new window\"}"
273
+ }],
274
+ "text": "Defaults for accessibleLabelDownload"
275
+ },
276
+ "attribute": "accessible-label-download-default",
277
+ "reflect": false,
278
+ "defaultValue": "DuetStringsDownloadLinkDefaults"
279
+ },
280
+ "accessibleLabelDownload": {
281
+ "type": "string",
282
+ "mutable": true,
283
+ "complexType": {
284
+ "original": "string",
285
+ "resolved": "string",
286
+ "references": {}
287
+ },
288
+ "required": false,
289
+ "optional": false,
290
+ "docs": {
291
+ "tags": [{
292
+ "name": "default",
293
+ "text": "{fi: \"Avautuu uuteen ikkunaan\",sv: \"\u00D6ppnas i nytt f\u00F6nster\",en: \"Opens in a new window\"}"
294
+ }],
295
+ "text": "Adds accessible label for tooltip that is shown in external link (url & external have both been set)"
296
+ },
297
+ "attribute": "accessible-label-download",
298
+ "reflect": false,
299
+ "defaultValue": "getLocaleString(this.accessibleLabelDownloadDefaults)"
300
+ },
245
301
  "identifier": {
246
302
  "type": "string",
247
303
  "mutable": false,
@@ -319,6 +375,24 @@ export class DuetLink {
319
375
  "reflect": false,
320
376
  "defaultValue": "false"
321
377
  },
378
+ "download": {
379
+ "type": "any",
380
+ "mutable": false,
381
+ "complexType": {
382
+ "original": "boolean | string",
383
+ "resolved": "boolean | string",
384
+ "references": {}
385
+ },
386
+ "required": false,
387
+ "optional": false,
388
+ "docs": {
389
+ "tags": [],
390
+ "text": "Causes the browser to treat the linked URL as a download. Can be used with or without a filename value.\nWith a value, it will be used as the name for the downloaded file. Without a value, the browser will suggest a name.\nNOTE: this attribute only works for same-origin URLs, or the blob: and data: schemes."
391
+ },
392
+ "attribute": "download",
393
+ "reflect": false,
394
+ "defaultValue": "false"
395
+ },
322
396
  "tabToLink": {
323
397
  "type": "boolean",
324
398
  "mutable": false,
@@ -250,7 +250,7 @@ export class DuetList {
250
250
  "optional": false,
251
251
  "docs": {
252
252
  "tags": [],
253
- "text": "Set the column width of the first column in percentages."
253
+ "text": "Set the column width of the first column in percentages.\nFor automatic sizing of the column you can use class \"duet-list\" with a native <dl> element. See list utilities of the CSS framework."
254
254
  },
255
255
  "attribute": "label-width",
256
256
  "reflect": false,
@@ -5,19 +5,55 @@ import { formatViolations, options as axeRunOptions, testWithAxe } from "../../u
5
5
  describe("[a11y] duet-menu-bar", () => {
6
6
  it("should render an accessible component", async () => {
7
7
  const result = await testWithAxe(`
8
- <duet-menu-bar>
8
+ <duet-menu-bar id="desktop-menu-bar" accessible-label="Main">
9
9
  <div slot="center">
10
- <duet-menu-bar-link active>Vakuutukset</duet-menu-bar-link>
11
- <duet-menu-bar-link>Sijoittaminen</duet-menu-bar-link>
10
+ <duet-menu-bar-item active>Vakuutukset</duet-menu-bar-item>
11
+ <duet-menu-bar-item url="#">Sijoittaminen</duet-menu-bar-item>
12
+ <duet-menu-bar-item>Rahoitus</duet-menu-bar-item>
13
+ <duet-menu-bar-item>Asiakkaalle</duet-menu-bar-item>
12
14
  </div>
13
15
  <div slot="right">
14
- <duet-menu-bar-link icon="navigation-user">Omat sivut</duet-menu-bar-link>
15
- <duet-menu-bar-dropdown icon="navigation-user">
16
- <span slot="label">Etunimi</span>
17
- <duet-menu-bar-dropdown-link>Omat tiedot</duet-menu-bar-dropdown-link>
16
+ <duet-menu-bar-item leading-icon="navigation-user" id="desktop-login-opener">Kirjautuminen</duet-menu-bar-item>
17
+ <duet-slideout opener="desktop-login-opener">
18
+ <div slot="sticky-header">
19
+ <duet-grid alignment="center" style="gap: var(--space-small)">
20
+ <duet-icon name="navigation-login" size="medium" margin="none"></duet-icon>
21
+ <duet-heading visual-level="h3" fixed-size margin="none">Kirjautuminen</duet-heading>
22
+ </duet-grid>
23
+ <duet-spacer></duet-spacer>
24
+ <duet-tab-group variation="plain" identifier="slideout-tab" margin="none">
25
+ <duet-tab label="Henkilöasiakas" selected content-id="desktop-login-tab-private-customer"></duet-tab>
26
+ <duet-tab label="Yritysasiakas" content-id="desktop-login-tab-corporate-customer"></duet-tab>
27
+ </duet-tab-group>
28
+ </div>
29
+ <div id="desktop-login-tab-private-customer">
30
+ <duet-slideout-link size="medium" caret>
31
+ Vakuutukset ja vahinkoasiat
32
+ <span slot="description">Hallinnoi vakuutuksia, ilmoita vahingosta ja tarkastele korvauspäätöksiäsi.</span>
33
+ </duet-slideout-link>
34
+ <duet-spacer></duet-spacer>
35
+ <duet-divider margin="none"></duet-divider>
36
+ <duet-spacer></duet-spacer>
37
+ <duet-slideout-link size="medium" caret>
38
+ Säästäminen ja sijoittaminen
39
+ <span slot="description">Seuraa sijoitustesi kehitystä, hallinnoi rahastoja ja muita sijoitustuotteitasi.</span>
40
+ </duet-slideout-link>
41
+ <duet-spacer></duet-spacer>
42
+ <duet-divider margin="none"></duet-divider>
43
+ <duet-spacer></duet-spacer>
44
+ <duet-slideout-link size="medium" caret>
45
+ Ajoneuvorahoitus
46
+ <span slot="description">Tarkastele ja tee muutoksia osamaksu- tai leasingrahoitussopimukseesi.</span>
47
+ </duet-slideout-link>
48
+ </div>
49
+ <div id="desktop-login-tab-corporate-customer"></div>
50
+ </duet-slideout>
51
+ <duet-menu-bar-item leading-icon="navigation-user" id="desktop-menu-bar-etunimi">Etunimi</duet-menu-bar-item>
52
+ <duet-popup-menu controller="desktop-menu-bar-etunimi" accessible-role="list" skip-teleport>
53
+ <duet-popup-menu-item accessible-role="listitem">Omat tiedot</duet-popup-menu-item>
18
54
  <duet-divider margin="none"></duet-divider>
19
- <duet-menu-bar-dropdown-button icon="messaging-logout">Kirjaudu ulos</duet-menu-bar-dropdown-button>
20
- </duet-menu-bar-dropdown>
55
+ <duet-popup-menu-item leading-icon="messaging-logout" accessible-role="listitem">Kirjaudu ulos</duet-popup-menu-item>
56
+ </duet-popup-menu>
21
57
  </div>
22
58
  </duet-menu-bar>
23
59
  `, 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
 
@@ -69,19 +69,6 @@ export class DuetMenuBar {
69
69
  */
70
70
  componentWillLoad() {
71
71
  inheritGlobalTheme(this);
72
- const children = Array.from(this.element.children);
73
- for (const child of children) {
74
- if (child.getAttribute("slot") === "center") {
75
- for (const slotChild of Array.from(child.children)) {
76
- slotChild.setAttribute("role", "listitem");
77
- }
78
- }
79
- else if (child.getAttribute("slot") === "right") {
80
- for (const slotChild of Array.from(child.children)) {
81
- slotChild.setAttribute("role", "listitem");
82
- }
83
- }
84
- }
85
72
  }
86
73
  connectedCallback() {
87
74
  this.changeLogoSize();
@@ -70,7 +70,7 @@ export class DuetMenuBarButton {
70
70
  * Always the last one in the class.
71
71
  */
72
72
  render() {
73
- return (h(Host, { onfocus: () => this.setFocus() }, h("button", { ref: button => (this.nativeButton = button), class: {
73
+ return (h(Host, { role: "listitem", onfocus: () => this.setFocus() }, h("button", { ref: button => (this.nativeButton = button), class: {
74
74
  "duet-menu-bar-button": true,
75
75
  "duet-theme-turva": this.theme === "turva",
76
76
  }, "aria-controls": this.accessibleControls, "aria-label": this.accessibleLabel, "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined }, this.icon && (h("duet-icon", { theme: this.theme, size: this.iconSize, name: this.icon, margin: "none", color: "currentColor" })), h("slot", null))));
@@ -89,7 +89,7 @@ export class DuetMenuBarDropdown {
89
89
  * Always the last one in the class.
90
90
  */
91
91
  render() {
92
- return (h(Host, null, h("div", { class: {
92
+ return (h(Host, { role: "listitem" }, h("div", { class: {
93
93
  "duet-menu-bar-dropdown": true,
94
94
  "duet-theme-turva": this.theme === "turva",
95
95
  active: this.open,
@@ -0,0 +1,103 @@
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-menu-bar-item {
27
+ position: relative;
28
+ display: flex;
29
+ gap: 8px;
30
+ align-items: center;
31
+ justify-content: center;
32
+ height: 100%;
33
+ padding: 0 12px;
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: inherit;
36
+ font-weight: inherit;
37
+ color: inherit;
38
+ color: inherit;
39
+ text-align: center;
40
+ text-decoration: none;
41
+ white-space: nowrap;
42
+ cursor: pointer;
43
+ }
44
+ .duet-menu-bar-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-menu-bar-item:focus, .duet-menu-bar-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-menu-bar-item[aria-expanded=true] .trailing-icon.rotate {
52
+ transform: rotate(180deg);
53
+ }
54
+ .duet-menu-bar-item.duet-theme-turva {
55
+ font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
56
+ }
57
+ @media (min-width: 62em) {
58
+ .duet-menu-bar-item {
59
+ padding: 0 16px;
60
+ }
61
+ }
62
+ @media (min-width: 76.25em) {
63
+ .duet-menu-bar-item {
64
+ padding: 0 28px;
65
+ }
66
+ }
67
+ .duet-menu-bar-item.active {
68
+ color: rgb(0, 119, 179);
69
+ }
70
+ .duet-menu-bar-item.active::after {
71
+ position: absolute;
72
+ top: auto;
73
+ bottom: 2px;
74
+ left: 0;
75
+ z-index: 1;
76
+ display: block;
77
+ width: 100%;
78
+ height: 1px;
79
+ content: "";
80
+ background: rgb(0, 119, 179);
81
+ transition: 300ms ease;
82
+ transform: translateY(2px);
83
+ }
84
+ @media (min-width: 62em) {
85
+ .duet-menu-bar-item.active::after {
86
+ z-index: auto;
87
+ height: 2px;
88
+ }
89
+ }
90
+ .duet-menu-bar-item.active.duet-theme-turva {
91
+ color: rgb(198, 12, 48);
92
+ }
93
+ .duet-menu-bar-item.active.duet-theme-turva::after {
94
+ background: rgb(198, 12, 48);
95
+ }
96
+ @media (min-width: 62em) {
97
+ .duet-menu-bar-item:hover {
98
+ color: rgb(0, 119, 179);
99
+ }
100
+ .duet-menu-bar-item:hover.duet-theme-turva {
101
+ color: rgb(198, 12, 48);
102
+ }
103
+ }
@@ -0,0 +1,286 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import { media_query_large } from "@duetds/tokens/lib/tokens.json";
5
+ import { h, Host } from "@stencil/core";
6
+ import { inheritGlobalTheme } from "../../common/themeable-component";
7
+ export class DuetMenuBarItem {
8
+ constructor() {
9
+ this.mql = [window.matchMedia(media_query_large.replace(/'/g, ""))];
10
+ this.boundMqlFunctions = [];
11
+ this.changeIconSize = () => {
12
+ if (this.mql[0].matches) {
13
+ this.iconSize = "x-small";
14
+ }
15
+ else {
16
+ this.iconSize = "small";
17
+ }
18
+ };
19
+ this.iconSize = "x-small";
20
+ this.theme = "";
21
+ this.active = false;
22
+ this.url = undefined;
23
+ this.leadingIcon = undefined;
24
+ this.trailingIcon = undefined;
25
+ this.accessibleLabel = undefined;
26
+ this.accessibleExpanded = undefined;
27
+ this.accessiblePopup = "false";
28
+ }
29
+ /**
30
+ * Component lifecycle events.
31
+ */
32
+ componentWillLoad() {
33
+ inheritGlobalTheme(this);
34
+ }
35
+ connectedCallback() {
36
+ this.changeIconSize();
37
+ for (let i = 0; i < this.mql.length; i++) {
38
+ // addEventListener is not available in Stencil hydrate
39
+ if (this.mql[i].addEventListener) {
40
+ const bound = this.changeIconSize.bind(this);
41
+ this.mql[i].addEventListener("change", bound);
42
+ this.boundMqlFunctions[i] = bound;
43
+ }
44
+ }
45
+ }
46
+ disconnectedCallback() {
47
+ for (let i = 0; i < this.mql.length; i++) {
48
+ // removeEventListener is not available in Stencil hydrate
49
+ if (this.mql[i].removeEventListener) {
50
+ this.mql[i].removeEventListener("change", this.boundMqlFunctions[i]);
51
+ }
52
+ }
53
+ this.boundMqlFunctions = [];
54
+ }
55
+ /**
56
+ * Sets focus. Use this method instead of the global focus().
57
+ */
58
+ async setFocus(options) {
59
+ setTimeout(() => this.itemElement.focus(options), 200);
60
+ }
61
+ /**
62
+ * render() function
63
+ * Always the last one in the class.
64
+ */
65
+ render() {
66
+ const TagName = this.url ? "a" : "button";
67
+ return (h(Host, { role: "listitem" }, h(TagName, { ref: element => (this.itemElement = element), class: {
68
+ "duet-menu-bar-item": true,
69
+ "duet-theme-turva": this.theme === "turva",
70
+ active: this.active,
71
+ }, href: this.url, role: `${TagName === "a" ? "link" : "button"}`, "aria-current": this.active ? "true" : "false", "aria-label": this.accessibleLabel, "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined }, this.leadingIcon && (h("duet-icon", { size: this.iconSize, name: this.leadingIcon, margin: "none", theme: this.theme, color: "currentColor" })), h("slot", null), this.trailingIcon && (h("duet-icon", { class: {
72
+ "trailing-icon": true,
73
+ rotate: this.trailingIcon === "action-arrow-down-small" && this.accessibleExpanded,
74
+ }, theme: this.theme, name: this.trailingIcon, margin: "none", size: this.trailingIcon === "action-arrow-down-small" ? "xxx-small" : this.iconSize, color: "currentColor" })))));
75
+ }
76
+ static get is() { return "duet-menu-bar-item"; }
77
+ static get encapsulation() { return "shadow"; }
78
+ static get originalStyleUrls() {
79
+ return {
80
+ "$": ["duet-menu-bar-item.scss"]
81
+ };
82
+ }
83
+ static get styleUrls() {
84
+ return {
85
+ "$": ["duet-menu-bar-item.css"]
86
+ };
87
+ }
88
+ static get properties() {
89
+ return {
90
+ "theme": {
91
+ "type": "string",
92
+ "mutable": true,
93
+ "complexType": {
94
+ "original": "DuetTheme",
95
+ "resolved": "\"\" | \"default\" | \"turva\"",
96
+ "references": {
97
+ "DuetTheme": {
98
+ "location": "import",
99
+ "path": "../../common-types",
100
+ "id": "src/common-types.d.ts::DuetTheme"
101
+ }
102
+ }
103
+ },
104
+ "required": false,
105
+ "optional": false,
106
+ "docs": {
107
+ "tags": [],
108
+ "text": "Theme."
109
+ },
110
+ "attribute": "theme",
111
+ "reflect": false,
112
+ "defaultValue": "\"\""
113
+ },
114
+ "active": {
115
+ "type": "boolean",
116
+ "mutable": true,
117
+ "complexType": {
118
+ "original": "boolean",
119
+ "resolved": "boolean",
120
+ "references": {}
121
+ },
122
+ "required": false,
123
+ "optional": false,
124
+ "docs": {
125
+ "tags": [],
126
+ "text": "Active"
127
+ },
128
+ "attribute": "active",
129
+ "reflect": false,
130
+ "defaultValue": "false"
131
+ },
132
+ "url": {
133
+ "type": "string",
134
+ "mutable": false,
135
+ "complexType": {
136
+ "original": "string",
137
+ "resolved": "string",
138
+ "references": {}
139
+ },
140
+ "required": false,
141
+ "optional": false,
142
+ "docs": {
143
+ "tags": [],
144
+ "text": "Url"
145
+ },
146
+ "attribute": "url",
147
+ "reflect": false
148
+ },
149
+ "leadingIcon": {
150
+ "type": "string",
151
+ "mutable": false,
152
+ "complexType": {
153
+ "original": "DuetIconName",
154
+ "resolved": "string",
155
+ "references": {
156
+ "DuetIconName": {
157
+ "location": "import",
158
+ "path": "../../common-types",
159
+ "id": "src/common-types.d.ts::DuetIconName"
160
+ }
161
+ }
162
+ },
163
+ "required": false,
164
+ "optional": false,
165
+ "docs": {
166
+ "tags": [],
167
+ "text": "Left icon."
168
+ },
169
+ "attribute": "leading-icon",
170
+ "reflect": false,
171
+ "defaultValue": "undefined"
172
+ },
173
+ "trailingIcon": {
174
+ "type": "string",
175
+ "mutable": false,
176
+ "complexType": {
177
+ "original": "DuetIconName",
178
+ "resolved": "string",
179
+ "references": {
180
+ "DuetIconName": {
181
+ "location": "import",
182
+ "path": "../../common-types",
183
+ "id": "src/common-types.d.ts::DuetIconName"
184
+ }
185
+ }
186
+ },
187
+ "required": false,
188
+ "optional": false,
189
+ "docs": {
190
+ "tags": [],
191
+ "text": "Right icon."
192
+ },
193
+ "attribute": "trailing-icon",
194
+ "reflect": false,
195
+ "defaultValue": "undefined"
196
+ },
197
+ "accessibleLabel": {
198
+ "type": "string",
199
+ "mutable": false,
200
+ "complexType": {
201
+ "original": "string",
202
+ "resolved": "string",
203
+ "references": {}
204
+ },
205
+ "required": false,
206
+ "optional": false,
207
+ "docs": {
208
+ "tags": [],
209
+ "text": "Adds accessible label for the link that is only shown for screen readers.\nTypically, this label text replaces the visible text on the link for users\nwho use assistive technology."
210
+ },
211
+ "attribute": "accessible-label",
212
+ "reflect": false
213
+ },
214
+ "accessibleExpanded": {
215
+ "type": "boolean",
216
+ "mutable": true,
217
+ "complexType": {
218
+ "original": "boolean",
219
+ "resolved": "boolean",
220
+ "references": {}
221
+ },
222
+ "required": false,
223
+ "optional": false,
224
+ "docs": {
225
+ "tags": [],
226
+ "text": "If a button expands or collapses adjacent content, then use the ariaExpanded\nprop to add the aria-expanded attribute to the button. Set the value to convey\nthe current expanded (true) or collapsed (false) state of the content."
227
+ },
228
+ "attribute": "accessible-expanded",
229
+ "reflect": true
230
+ },
231
+ "accessiblePopup": {
232
+ "type": "string",
233
+ "mutable": true,
234
+ "complexType": {
235
+ "original": "string",
236
+ "resolved": "string",
237
+ "references": {}
238
+ },
239
+ "required": false,
240
+ "optional": false,
241
+ "docs": {
242
+ "tags": [],
243
+ "text": "Use this property to add an aria-haspopup attribute to a button."
244
+ },
245
+ "attribute": "accessible-popup",
246
+ "reflect": true,
247
+ "defaultValue": "\"false\""
248
+ }
249
+ };
250
+ }
251
+ static get states() {
252
+ return {
253
+ "iconSize": {}
254
+ };
255
+ }
256
+ static get methods() {
257
+ return {
258
+ "setFocus": {
259
+ "complexType": {
260
+ "signature": "(options?: FocusOptions) => Promise<void>",
261
+ "parameters": [{
262
+ "name": "options",
263
+ "type": "FocusOptions",
264
+ "docs": ""
265
+ }],
266
+ "references": {
267
+ "Promise": {
268
+ "location": "global",
269
+ "id": "global::Promise"
270
+ },
271
+ "FocusOptions": {
272
+ "location": "global",
273
+ "id": "global::FocusOptions"
274
+ }
275
+ },
276
+ "return": "Promise<void>"
277
+ },
278
+ "docs": {
279
+ "text": "Sets focus. Use this method instead of the global focus().",
280
+ "tags": []
281
+ }
282
+ }
283
+ };
284
+ }
285
+ static get elementRef() { return "element"; }
286
+ }
@@ -57,7 +57,7 @@ export class DuetMenuBarLink {
57
57
  * Always the last one in the class.
58
58
  */
59
59
  render() {
60
- return (h(Host, null, h("a", { class: {
60
+ return (h(Host, { role: "listitem" }, h("a", { class: {
61
61
  "duet-menu-bar-link": true,
62
62
  "duet-theme-turva": this.theme === "turva",
63
63
  active: this.active,