@duetds/components 6.2.5 → 6.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (503) hide show
  1. package/hydrate/index.js +255 -321
  2. package/lib/cjs/duet-action-button.cjs.entry.js +1 -1
  3. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  4. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  7. package/lib/cjs/duet-button_2.cjs.entry.js +1 -1
  8. package/lib/cjs/duet-caption_4.cjs.entry.js +1 -1
  9. package/lib/cjs/duet-card.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-choice_2.cjs.entry.js +3 -3
  12. package/lib/cjs/duet-collapsible.cjs.entry.js +1 -1
  13. package/lib/cjs/duet-combobox.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  16. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-editable-table_3.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-fieldset.cjs.entry.js +2 -2
  20. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  22. package/lib/cjs/duet-header_2.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-input_2.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +15 -2
  29. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +26 -15
  30. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +22 -3
  31. package/lib/cjs/duet-menu-bar.cjs.entry.js +4 -3
  32. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  33. package/lib/cjs/duet-multiselect.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-nav.cjs.entry.js +2 -80
  35. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-pagination_2.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-scrollable_3.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  44. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  45. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +43 -0
  46. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +51 -0
  47. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +37 -0
  48. package/lib/cjs/duet-submenu-bar.cjs.entry.js +35 -0
  49. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  50. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  51. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +1 -1
  52. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +10 -15
  53. package/lib/cjs/duet-toolbar-link.cjs.entry.js +2 -2
  54. package/lib/cjs/duet-toolbar.cjs.entry.js +2 -2
  55. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  56. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  57. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  58. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  59. package/lib/cjs/duet.cjs.js +2 -2
  60. package/lib/cjs/{focus-utils-18ea61a6.js → focus-utils-0d18f24e.js} +1 -1
  61. package/lib/cjs/{index-d2f05eb8.js → index-14a34a4b.js} +1 -1
  62. package/lib/cjs/loader.cjs.js +2 -2
  63. package/lib/collection/collection-manifest.json +6 -6
  64. package/lib/collection/components/duet-choice/duet-choice.css +6 -1
  65. package/lib/collection/components/duet-fieldset/duet-fieldset.css +2 -0
  66. package/lib/collection/components/duet-menu-bar/duet-menu-bar.css +8 -1
  67. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +19 -1
  68. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.css +4 -3
  69. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +31 -32
  70. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.css +10 -2
  71. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +31 -0
  72. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.css +47 -7
  73. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +38 -1
  74. package/lib/collection/components/duet-nav/duet-nav.css +5 -0
  75. package/lib/collection/components/duet-nav/duet-nav.js +0 -117
  76. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.css +37 -0
  77. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +63 -0
  78. package/lib/collection/components/{duet-menu-bar-menu-dropdown/duet-menu-bar-menu-dropdown.css → duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.css} +28 -18
  79. package/lib/collection/components/{duet-menu-bar-menu-dropdown/duet-menu-bar-menu-dropdown.js → duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js} +20 -37
  80. package/lib/collection/components/{duet-menu-bar-menu-dropdown-link/duet-menu-bar-menu-dropdown-link.css → duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.css} +6 -6
  81. package/lib/collection/components/{duet-menu-bar-menu-dropdown-link/duet-menu-bar-menu-dropdown-link.js → duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js} +6 -6
  82. package/lib/collection/components/{duet-menu-bar-menu-link/duet-menu-bar-menu-link.css → duet-submenu-bar-link/duet-submenu-bar-link.css} +5 -17
  83. package/lib/collection/components/{duet-menu-bar-menu-link/duet-menu-bar-menu-link.js → duet-submenu-bar-link/duet-submenu-bar-link.js} +5 -24
  84. package/lib/collection/components/duet-toolbar/duet-toolbar.css +1 -0
  85. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.css +2 -3
  86. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +15 -32
  87. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +1 -1
  88. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  89. package/lib/dist-custom-elements/duet-alert.js +1 -1
  90. package/lib/dist-custom-elements/duet-badge.js +1 -1
  91. package/lib/dist-custom-elements/duet-breadcrumb.js +2 -2
  92. package/lib/dist-custom-elements/duet-breadcrumbs.js +2 -2
  93. package/lib/dist-custom-elements/duet-button.js +1 -1
  94. package/lib/dist-custom-elements/duet-caption.js +1 -1
  95. package/lib/dist-custom-elements/duet-card.js +3 -3
  96. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  97. package/lib/dist-custom-elements/duet-choice-group.js +6 -6
  98. package/lib/dist-custom-elements/duet-choice.js +6 -6
  99. package/lib/dist-custom-elements/duet-collapsible.js +2 -2
  100. package/lib/dist-custom-elements/duet-combobox.js +2 -2
  101. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  102. package/lib/dist-custom-elements/duet-date-picker.js +8 -8
  103. package/lib/dist-custom-elements/duet-divider.js +1 -1
  104. package/lib/dist-custom-elements/duet-editable-table.js +1 -1
  105. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  106. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  107. package/lib/dist-custom-elements/duet-footer.js +4 -4
  108. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  109. package/lib/dist-custom-elements/duet-grid.js +1 -1
  110. package/lib/dist-custom-elements/duet-header.js +8 -8
  111. package/lib/dist-custom-elements/duet-heading.js +1 -1
  112. package/lib/dist-custom-elements/duet-hero.js +9 -9
  113. package/lib/dist-custom-elements/duet-icon.js +1 -1
  114. package/lib/dist-custom-elements/duet-input.js +1 -1
  115. package/lib/dist-custom-elements/duet-label.js +1 -1
  116. package/lib/dist-custom-elements/duet-layout.js +1 -1
  117. package/lib/dist-custom-elements/duet-link.js +1 -1
  118. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  119. package/lib/dist-custom-elements/duet-list.js +1 -1
  120. package/lib/dist-custom-elements/duet-logo.js +1 -1
  121. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +18 -4
  122. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +28 -17
  123. package/lib/dist-custom-elements/duet-menu-bar-link.js +24 -4
  124. package/lib/dist-custom-elements/duet-menu-bar.js +6 -4
  125. package/lib/dist-custom-elements/duet-modal.js +7 -7
  126. package/lib/dist-custom-elements/duet-multiselect.js +8 -8
  127. package/lib/dist-custom-elements/duet-nav.js +3 -81
  128. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  129. package/lib/dist-custom-elements/duet-notification.js +2 -2
  130. package/lib/dist-custom-elements/duet-number-input.js +7 -7
  131. package/lib/dist-custom-elements/duet-pagination.js +7 -7
  132. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  133. package/lib/dist-custom-elements/duet-progress.js +1 -1
  134. package/lib/dist-custom-elements/duet-radio-group.js +6 -6
  135. package/lib/dist-custom-elements/duet-radio.js +1 -1
  136. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  137. package/lib/dist-custom-elements/duet-range-stepper.js +4 -4
  138. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  139. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  140. package/lib/dist-custom-elements/duet-select.js +1 -1
  141. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  142. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  143. package/lib/dist-custom-elements/duet-step.js +4 -4
  144. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  145. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.d.ts +11 -0
  146. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +69 -0
  147. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.d.ts +11 -0
  148. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +75 -0
  149. package/lib/dist-custom-elements/{duet-menu-bar-menu-link.d.ts → duet-submenu-bar-link.d.ts} +4 -4
  150. package/lib/dist-custom-elements/duet-submenu-bar-link.js +61 -0
  151. package/lib/dist-custom-elements/{duet-menu-bar-menu.d.ts → duet-submenu-bar.d.ts} +4 -4
  152. package/lib/dist-custom-elements/duet-submenu-bar.js +51 -0
  153. package/lib/dist-custom-elements/duet-tab-group.js +8 -8
  154. package/lib/dist-custom-elements/duet-tab.js +1 -1
  155. package/lib/dist-custom-elements/duet-table.js +1 -1
  156. package/lib/dist-custom-elements/duet-textarea.js +8 -8
  157. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  158. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -2
  159. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +12 -17
  160. package/lib/dist-custom-elements/duet-toolbar-link.js +3 -3
  161. package/lib/dist-custom-elements/duet-toolbar.js +2 -2
  162. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  163. package/lib/dist-custom-elements/duet-tray.js +3 -3
  164. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  165. package/lib/dist-custom-elements/duet-upload.js +18 -18
  166. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  167. package/lib/dist-custom-elements/index.d.ts +4 -4
  168. package/lib/dist-custom-elements/index.js +5 -5
  169. package/lib/dist-custom-elements/{p-94eae3e6.js → p-0145dc9f.js} +1 -1
  170. package/lib/dist-custom-elements/{p-cab1e8a0.js → p-029208b5.js} +7 -7
  171. package/lib/dist-custom-elements/{p-d628dd87.js → p-076044f7.js} +3 -3
  172. package/lib/dist-custom-elements/{p-37dd7faf.js → p-0bc5bea3.js} +1 -1
  173. package/lib/dist-custom-elements/{p-eb6fc032.js → p-11621a52.js} +4 -4
  174. package/lib/dist-custom-elements/{p-9fef7d37.js → p-1c5a0ab0.js} +1 -1
  175. package/lib/dist-custom-elements/{p-10feffd3.js → p-2d3fc462.js} +1 -1
  176. package/lib/dist-custom-elements/{p-b5ea480c.js → p-2f9f54eb.js} +2 -2
  177. package/lib/dist-custom-elements/{p-d2402b45.js → p-31b3a82e.js} +3 -3
  178. package/lib/dist-custom-elements/{p-ad7292b3.js → p-3b1bc8f3.js} +3 -3
  179. package/lib/dist-custom-elements/{p-db135ec9.js → p-4905133d.js} +1 -1
  180. package/lib/dist-custom-elements/{p-a1212d29.js → p-49d5f105.js} +1 -1
  181. package/lib/dist-custom-elements/{p-fed8d27a.js → p-52471a7a.js} +2 -2
  182. package/lib/dist-custom-elements/{p-88d217a7.js → p-5846a06a.js} +2 -2
  183. package/lib/dist-custom-elements/{p-4115062c.js → p-626f0ed7.js} +1 -1
  184. package/lib/dist-custom-elements/{p-354f8a94.js → p-7b1b2eef.js} +1 -1
  185. package/lib/dist-custom-elements/{p-7958dc0c.js → p-88b72658.js} +6 -6
  186. package/lib/dist-custom-elements/{p-fddad5df.js → p-91098fd5.js} +1 -1
  187. package/lib/dist-custom-elements/{p-737dd784.js → p-9d08c707.js} +6 -6
  188. package/lib/dist-custom-elements/{p-14a163e6.js → p-a1724291.js} +1 -1
  189. package/lib/dist-custom-elements/{p-d34c42bc.js → p-a5f24f49.js} +1 -1
  190. package/lib/dist-custom-elements/{p-4447816d.js → p-ab04760e.js} +1 -1
  191. package/lib/dist-custom-elements/{p-82fec063.js → p-becb3aa3.js} +1 -1
  192. package/lib/dist-custom-elements/{p-65ee8608.js → p-cc5bc0c6.js} +3 -3
  193. package/lib/dist-custom-elements/{p-f7c0e5bf.js → p-ce42be86.js} +1 -1
  194. package/lib/dist-custom-elements/{p-25d4fffb.js → p-d188f26e.js} +1 -1
  195. package/lib/dist-custom-elements/{p-bd64a84d.js → p-db985827.js} +2 -2
  196. package/lib/dist-custom-elements/{p-af2e8de4.js → p-e4c2e7eb.js} +5 -5
  197. package/lib/dist-custom-elements/{p-0ef384ca.js → p-f079cc55.js} +1 -1
  198. package/lib/dist-custom-elements/{p-9245c901.js → p-f4d2face.js} +1 -1
  199. package/lib/dist-custom-elements/{p-0cc49790.js → p-fe5341bf.js} +1 -1
  200. package/lib/duet/duet.esm.js +1 -1
  201. package/lib/duet/duet.js +1 -1
  202. package/lib/duet/{p-f01d234f.system.entry.js → p-01a95d2f.system.entry.js} +1 -1
  203. package/lib/duet/{p-f7453c05.system.entry.js → p-06a4aee0.system.entry.js} +1 -1
  204. package/lib/duet/{p-0d218007.entry.js → p-07a46bc0.entry.js} +1 -1
  205. package/lib/duet/{p-f150740b.entry.js → p-0818ae38.entry.js} +1 -1
  206. package/lib/duet/{p-81e66ef1.entry.js → p-08f88403.entry.js} +1 -1
  207. package/lib/duet/{p-16b61523.system.entry.js → p-140c2b23.system.entry.js} +1 -1
  208. package/lib/duet/{p-0f8e4b6a.entry.js → p-16665db1.entry.js} +1 -1
  209. package/lib/duet/{p-0236fc28.system.entry.js → p-16803126.system.entry.js} +1 -1
  210. package/lib/duet/{p-f2bcb922.system.entry.js → p-18bdd586.system.entry.js} +1 -1
  211. package/lib/duet/{p-9101f9ed.entry.js → p-1bde084c.entry.js} +1 -1
  212. package/lib/duet/{p-696d99ff.system.entry.js → p-1c8bd070.system.entry.js} +1 -1
  213. package/lib/duet/p-1d75f8c8.system.entry.js +4 -0
  214. package/lib/duet/{p-daa20c36.system.entry.js → p-1f1ce7cb.system.entry.js} +1 -1
  215. package/lib/duet/{p-43750071.system.entry.js → p-250c73cb.system.entry.js} +1 -1
  216. package/lib/duet/p-25bbc964.system.entry.js +4 -0
  217. package/lib/duet/p-2821969c.system.entry.js +4 -0
  218. package/lib/duet/{p-10b1ea3e.system.entry.js → p-2ddfb202.system.entry.js} +1 -1
  219. package/lib/duet/{p-45b0469f.entry.js → p-2e21973b.entry.js} +1 -1
  220. package/lib/duet/{p-d16434dc.entry.js → p-321b7e1b.entry.js} +1 -1
  221. package/lib/duet/{p-e621c31c.system.entry.js → p-38c7c72f.system.entry.js} +1 -1
  222. package/lib/duet/{p-2f0f8b9e.system.entry.js → p-3d2b34f3.system.entry.js} +1 -1
  223. package/lib/duet/{p-bcd4a927.system.entry.js → p-3e4a074c.system.entry.js} +1 -1
  224. package/lib/duet/{p-c12ecca9.entry.js → p-3e4cfd2d.entry.js} +1 -1
  225. package/lib/duet/{p-60c70efa.entry.js → p-428f4378.entry.js} +1 -1
  226. package/lib/duet/{p-bc2c1014.entry.js → p-44fb0cd4.entry.js} +1 -1
  227. package/lib/duet/{p-c41bfab0.entry.js → p-453bb082.entry.js} +1 -1
  228. package/lib/duet/{p-f9afad76.system.entry.js → p-476affb5.system.entry.js} +1 -1
  229. package/lib/duet/{p-b293c2ff.entry.js → p-498a337c.entry.js} +1 -1
  230. package/lib/duet/p-49f74a78.system.entry.js +4 -0
  231. package/lib/duet/p-4afc265b.entry.js +4 -0
  232. package/lib/duet/{p-0d6723f5.entry.js → p-4bf9ce5d.entry.js} +1 -1
  233. package/lib/duet/{p-914c3280.system.entry.js → p-4d7701cf.system.entry.js} +1 -1
  234. package/lib/duet/{p-16cbd476.entry.js → p-4e5a7d50.entry.js} +1 -1
  235. package/lib/duet/{p-1184c37e.entry.js → p-4e669043.entry.js} +1 -1
  236. package/lib/duet/{p-5bffb89f.entry.js → p-52b1ae9c.entry.js} +1 -1
  237. package/lib/duet/{p-c3a0505e.system.entry.js → p-589d18c0.system.entry.js} +1 -1
  238. package/lib/duet/{p-9a14ca19.system.entry.js → p-5be0eb10.system.entry.js} +1 -1
  239. package/lib/duet/p-5d2799c7.system.entry.js +4 -0
  240. package/lib/duet/{p-acea52f5.entry.js → p-5d3d3ef4.entry.js} +1 -1
  241. package/lib/duet/p-5ffa7084.entry.js +4 -0
  242. package/lib/duet/p-61208b24.system.entry.js +4 -0
  243. package/lib/duet/p-665fc09a.entry.js +4 -0
  244. package/lib/duet/{p-00ee31e2.system.entry.js → p-6801edc9.system.entry.js} +1 -1
  245. package/lib/duet/{p-758c0528.system.entry.js → p-68802a44.system.entry.js} +1 -1
  246. package/lib/duet/p-6ba131a6.entry.js +4 -0
  247. package/lib/duet/{p-f678edf7.system.entry.js → p-6dcb5ddf.system.entry.js} +1 -1
  248. package/lib/duet/{p-b2c913ea.entry.js → p-71669602.entry.js} +1 -1
  249. package/lib/duet/p-71b48d4c.entry.js +4 -0
  250. package/lib/duet/p-73b840aa.entry.js +4 -0
  251. package/lib/duet/{p-6f2e72e2.system.entry.js → p-7758cfac.system.entry.js} +1 -1
  252. package/lib/duet/{p-a8d942ea.entry.js → p-79740f92.entry.js} +1 -1
  253. package/lib/duet/{p-6999702a.js → p-7aa97a75.js} +1 -1
  254. package/lib/duet/{p-ec635593.entry.js → p-7c171bac.entry.js} +1 -1
  255. package/lib/duet/{p-cf11b05b.entry.js → p-7d6c1aee.entry.js} +1 -1
  256. package/lib/duet/p-7e2dd844.system.entry.js +4 -0
  257. package/lib/duet/p-7e3dd6a8.system.entry.js +4 -0
  258. package/lib/duet/p-80b2336e.entry.js +4 -0
  259. package/lib/duet/{p-6db0f8c0.entry.js → p-80e9768b.entry.js} +1 -1
  260. package/lib/duet/{p-ef3f4213.entry.js → p-80ee2e1e.entry.js} +1 -1
  261. package/lib/duet/{p-0285e5d3.entry.js → p-821b780e.entry.js} +1 -1
  262. package/lib/duet/{p-ea8e5649.system.entry.js → p-86cc218e.system.entry.js} +2 -2
  263. package/lib/duet/{p-06c01b8a.system.entry.js → p-882e9987.system.entry.js} +1 -1
  264. package/lib/duet/{p-592bcdd4.entry.js → p-88cd99ba.entry.js} +1 -1
  265. package/lib/duet/{p-d58991bc.system.js → p-8b50f74e.system.js} +1 -1
  266. package/lib/duet/{p-8512b463.js → p-8bf3f0e9.js} +1 -1
  267. package/lib/duet/{p-89bf7be7.entry.js → p-92867eb0.entry.js} +1 -1
  268. package/lib/duet/{p-58de4753.system.entry.js → p-93825b5f.system.entry.js} +1 -1
  269. package/lib/duet/{p-b3046425.entry.js → p-9663117c.entry.js} +1 -1
  270. package/lib/duet/{p-5e134670.entry.js → p-96c274ff.entry.js} +1 -1
  271. package/lib/duet/p-98821736.entry.js +4 -0
  272. package/lib/duet/{p-8a47d599.system.entry.js → p-99577e5e.system.entry.js} +1 -1
  273. package/lib/duet/{p-948d492d.system.entry.js → p-9ab64b1c.system.entry.js} +1 -1
  274. package/lib/duet/{p-7e67fedc.system.entry.js → p-9adf9ec0.system.entry.js} +1 -1
  275. package/lib/duet/p-9b946c8f.system.entry.js +4 -0
  276. package/lib/duet/{p-b5dc8a8f.system.entry.js → p-9ba30a52.system.entry.js} +1 -1
  277. package/lib/duet/{p-e71a6257.system.js → p-9c0ae091.system.js} +1 -1
  278. package/lib/duet/{p-14e93ad6.system.entry.js → p-9f02fd3a.system.entry.js} +1 -1
  279. package/lib/duet/p-a03ec953.system.entry.js +4 -0
  280. package/lib/duet/{p-7fcbf80a.system.entry.js → p-a238f10c.system.entry.js} +1 -1
  281. package/lib/duet/p-a259e3da.system.entry.js +4 -0
  282. package/lib/duet/{p-855f9e2a.system.entry.js → p-a345635b.system.entry.js} +1 -1
  283. package/lib/duet/p-a5a7be5e.entry.js +4 -0
  284. package/lib/duet/{p-0426e86f.system.entry.js → p-a5af4cc5.system.entry.js} +1 -1
  285. package/lib/duet/{p-575e4d53.system.entry.js → p-b20f40db.system.entry.js} +1 -1
  286. package/lib/duet/{p-4644616b.entry.js → p-b21e895c.entry.js} +1 -1
  287. package/lib/duet/{p-90ea4509.system.entry.js → p-b31232db.system.entry.js} +1 -1
  288. package/lib/duet/{p-0169eb09.entry.js → p-b3fd554a.entry.js} +1 -1
  289. package/lib/duet/{p-61f8dd7f.system.entry.js → p-b5ee9c33.system.entry.js} +1 -1
  290. package/lib/duet/{p-d2ef832d.entry.js → p-b624c8ec.entry.js} +1 -1
  291. package/lib/duet/{p-ebc09697.system.entry.js → p-b68e7921.system.entry.js} +1 -1
  292. package/lib/duet/{p-dc51f077.entry.js → p-b8adb02e.entry.js} +1 -1
  293. package/lib/duet/{p-1b63c3bf.entry.js → p-bb33769c.entry.js} +1 -1
  294. package/lib/duet/{p-d971be46.entry.js → p-bfab9d81.entry.js} +1 -1
  295. package/lib/duet/{p-028da443.system.entry.js → p-c33cfdf4.system.entry.js} +1 -1
  296. package/lib/duet/p-c346b2c2.system.entry.js +4 -0
  297. package/lib/duet/{p-ac4c233b.entry.js → p-ccae1572.entry.js} +1 -1
  298. package/lib/duet/p-cdbad668.system.js +4 -0
  299. package/lib/duet/{p-9f60735a.system.entry.js → p-ce6d729c.system.entry.js} +1 -1
  300. package/lib/duet/{p-11c58a6b.entry.js → p-cf202e49.entry.js} +1 -1
  301. package/lib/duet/{p-0aae8ebf.entry.js → p-d3a8e2e6.entry.js} +1 -1
  302. package/lib/duet/{p-dfcbf758.system.entry.js → p-d3b1d4dc.system.entry.js} +1 -1
  303. package/lib/duet/{p-0fc0e90e.entry.js → p-d6045a19.entry.js} +1 -1
  304. package/lib/duet/{p-f6712ec8.system.entry.js → p-d64a3684.system.entry.js} +1 -1
  305. package/lib/duet/p-daa9f332.system.entry.js +4 -0
  306. package/lib/duet/{p-79c8d35c.system.entry.js → p-dd594b0c.system.entry.js} +1 -1
  307. package/lib/duet/{p-1a45eddb.system.entry.js → p-df2f8d6d.system.entry.js} +1 -1
  308. package/lib/duet/{p-c2c48bb2.entry.js → p-e2f77664.entry.js} +1 -1
  309. package/lib/duet/p-e651e225.entry.js +4 -0
  310. package/lib/duet/{p-c17cae49.entry.js → p-e6f8fb38.entry.js} +1 -1
  311. package/lib/duet/{p-0e1a3c6d.entry.js → p-e78f9d3b.entry.js} +1 -1
  312. package/lib/duet/{p-da803459.entry.js → p-e8da082b.entry.js} +1 -1
  313. package/lib/duet/{p-4e2db855.system.entry.js → p-e9259242.system.entry.js} +1 -1
  314. package/lib/duet/{p-1e442975.entry.js → p-ea769354.entry.js} +1 -1
  315. package/lib/duet/{p-f3d0d889.entry.js → p-efbe9082.entry.js} +1 -1
  316. package/lib/duet/{p-c5e54be9.entry.js → p-f17dd3be.entry.js} +1 -1
  317. package/lib/duet/{p-09e9e6e0.system.entry.js → p-f1d8bc66.system.entry.js} +1 -1
  318. package/lib/duet/p-f3f652cb.entry.js +4 -0
  319. package/lib/duet/{p-dd676f12.system.entry.js → p-f6665a9b.system.entry.js} +1 -1
  320. package/lib/duet/p-fb7e3c61.entry.js +4 -0
  321. package/lib/esm/duet-action-button.entry.js +1 -1
  322. package/lib/esm/duet-alert.entry.js +1 -1
  323. package/lib/esm/duet-badge.entry.js +1 -1
  324. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  325. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  326. package/lib/esm/duet-button_2.entry.js +1 -1
  327. package/lib/esm/duet-caption_4.entry.js +1 -1
  328. package/lib/esm/duet-card.entry.js +1 -1
  329. package/lib/esm/duet-checkbox.entry.js +1 -1
  330. package/lib/esm/duet-choice_2.entry.js +3 -3
  331. package/lib/esm/duet-collapsible.entry.js +1 -1
  332. package/lib/esm/duet-combobox.entry.js +1 -1
  333. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  334. package/lib/esm/duet-date-picker.entry.js +2 -2
  335. package/lib/esm/duet-divider_2.entry.js +1 -1
  336. package/lib/esm/duet-editable-table_3.entry.js +1 -1
  337. package/lib/esm/duet-empty-state.entry.js +1 -1
  338. package/lib/esm/duet-fieldset.entry.js +2 -2
  339. package/lib/esm/duet-footer.entry.js +1 -1
  340. package/lib/esm/duet-grid_2.entry.js +1 -1
  341. package/lib/esm/duet-header_2.entry.js +1 -1
  342. package/lib/esm/duet-hero.entry.js +1 -1
  343. package/lib/esm/duet-icon.entry.js +1 -1
  344. package/lib/esm/duet-input_2.entry.js +1 -1
  345. package/lib/esm/duet-layout.entry.js +1 -1
  346. package/lib/esm/duet-list_2.entry.js +1 -1
  347. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +15 -2
  348. package/lib/esm/duet-menu-bar-dropdown.entry.js +26 -15
  349. package/lib/esm/duet-menu-bar-link.entry.js +22 -3
  350. package/lib/esm/duet-menu-bar.entry.js +4 -3
  351. package/lib/esm/duet-modal.entry.js +2 -2
  352. package/lib/esm/duet-multiselect.entry.js +1 -1
  353. package/lib/esm/duet-nav.entry.js +2 -80
  354. package/lib/esm/duet-notification_2.entry.js +1 -1
  355. package/lib/esm/duet-number-input.entry.js +1 -1
  356. package/lib/esm/duet-pagination_2.entry.js +1 -1
  357. package/lib/esm/duet-progress.entry.js +1 -1
  358. package/lib/esm/duet-radio_2.entry.js +1 -1
  359. package/lib/esm/duet-range-slider.entry.js +1 -1
  360. package/lib/esm/duet-scrollable_3.entry.js +1 -1
  361. package/lib/esm/duet-section-layout.entry.js +1 -1
  362. package/lib/esm/duet-select.entry.js +1 -1
  363. package/lib/esm/duet-step_2.entry.js +1 -1
  364. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +39 -0
  365. package/lib/esm/duet-submenu-bar-dropdown.entry.js +47 -0
  366. package/lib/esm/duet-submenu-bar-link.entry.js +33 -0
  367. package/lib/esm/duet-submenu-bar.entry.js +31 -0
  368. package/lib/esm/duet-textarea.entry.js +1 -1
  369. package/lib/esm/duet-toggle.entry.js +1 -1
  370. package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -1
  371. package/lib/esm/duet-toolbar-dropdown.entry.js +10 -15
  372. package/lib/esm/duet-toolbar-link.entry.js +2 -2
  373. package/lib/esm/duet-toolbar.entry.js +2 -2
  374. package/lib/esm/duet-tooltip.entry.js +1 -1
  375. package/lib/esm/duet-tray.entry.js +1 -1
  376. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  377. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  378. package/lib/esm/duet.js +2 -2
  379. package/lib/esm/{focus-utils-abaea1e6.js → focus-utils-25584abb.js} +1 -1
  380. package/lib/esm/{index-4df60498.js → index-f74e4d6a.js} +1 -1
  381. package/lib/esm/loader.js +2 -2
  382. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  383. package/lib/esm-es5/duet-alert.entry.js +1 -1
  384. package/lib/esm-es5/duet-badge.entry.js +1 -1
  385. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  386. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  387. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  388. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  389. package/lib/esm-es5/duet-card.entry.js +1 -1
  390. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  391. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  392. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  393. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  394. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  395. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  396. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  397. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  398. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  399. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  400. package/lib/esm-es5/duet-footer.entry.js +1 -1
  401. package/lib/esm-es5/duet-grid_2.entry.js +2 -2
  402. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  403. package/lib/esm-es5/duet-hero.entry.js +1 -1
  404. package/lib/esm-es5/duet-icon.entry.js +1 -1
  405. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  406. package/lib/esm-es5/duet-layout.entry.js +1 -1
  407. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  408. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  409. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  410. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  411. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  412. package/lib/esm-es5/duet-modal.entry.js +1 -1
  413. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  414. package/lib/esm-es5/duet-nav.entry.js +1 -1
  415. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  416. package/lib/esm-es5/duet-number-input.entry.js +2 -2
  417. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  418. package/lib/esm-es5/duet-progress.entry.js +1 -1
  419. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  420. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  421. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  422. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  423. package/lib/esm-es5/duet-select.entry.js +1 -1
  424. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  425. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +4 -0
  426. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +4 -0
  427. package/lib/esm-es5/duet-submenu-bar-link.entry.js +4 -0
  428. package/lib/esm-es5/duet-submenu-bar.entry.js +4 -0
  429. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  430. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  431. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  432. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  433. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  434. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  435. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  436. package/lib/esm-es5/duet-tray.entry.js +1 -1
  437. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  438. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  439. package/lib/esm-es5/duet.js +1 -1
  440. package/lib/esm-es5/focus-utils-25584abb.js +4 -0
  441. package/lib/esm-es5/{index-4df60498.js → index-f74e4d6a.js} +1 -1
  442. package/lib/esm-es5/loader.js +1 -1
  443. package/lib/types/components/duet-menu-bar/duet-menu-bar.d.ts +4 -0
  444. package/lib/types/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.d.ts +2 -16
  445. package/lib/types/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.d.ts +5 -0
  446. package/lib/types/components/duet-menu-bar-link/duet-menu-bar-link.d.ts +5 -0
  447. package/lib/types/components/duet-nav/duet-nav.d.ts +0 -18
  448. package/lib/types/components/duet-submenu-bar/duet-submenu-bar.d.ts +24 -0
  449. package/lib/types/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.d.ts +34 -0
  450. package/lib/types/components/{duet-menu-bar-menu-dropdown-link/duet-menu-bar-menu-dropdown-link.d.ts → duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.d.ts} +1 -1
  451. package/lib/types/components/{duet-menu-bar-menu-link/duet-menu-bar-menu-link.d.ts → duet-submenu-bar-link/duet-submenu-bar-link.d.ts} +1 -5
  452. package/lib/types/components/duet-toolbar-dropdown/duet-toolbar-dropdown.d.ts +1 -16
  453. package/lib/types/components.d.ts +158 -194
  454. package/package.json +5 -5
  455. package/lib/cjs/duet-menu-bar-menu-dropdown-link.cjs.entry.js +0 -43
  456. package/lib/cjs/duet-menu-bar-menu-dropdown.cjs.entry.js +0 -56
  457. package/lib/cjs/duet-menu-bar-menu-link.cjs.entry.js +0 -38
  458. package/lib/cjs/duet-menu-bar-menu.cjs.entry.js +0 -56
  459. package/lib/collection/components/duet-menu-bar-menu/duet-menu-bar-menu.css +0 -113
  460. package/lib/collection/components/duet-menu-bar-menu/duet-menu-bar-menu.js +0 -141
  461. package/lib/dist-custom-elements/duet-menu-bar-menu-dropdown-link.d.ts +0 -11
  462. package/lib/dist-custom-elements/duet-menu-bar-menu-dropdown-link.js +0 -69
  463. package/lib/dist-custom-elements/duet-menu-bar-menu-dropdown.d.ts +0 -11
  464. package/lib/dist-custom-elements/duet-menu-bar-menu-dropdown.js +0 -80
  465. package/lib/dist-custom-elements/duet-menu-bar-menu-link.js +0 -63
  466. package/lib/dist-custom-elements/duet-menu-bar-menu.js +0 -74
  467. package/lib/duet/p-0c519c1f.system.entry.js +0 -4
  468. package/lib/duet/p-14cca806.entry.js +0 -4
  469. package/lib/duet/p-1833941e.entry.js +0 -4
  470. package/lib/duet/p-27a1c897.entry.js +0 -4
  471. package/lib/duet/p-2c5b761d.entry.js +0 -4
  472. package/lib/duet/p-2cbe5fe4.entry.js +0 -4
  473. package/lib/duet/p-326d3440.system.entry.js +0 -4
  474. package/lib/duet/p-394efc25.system.entry.js +0 -4
  475. package/lib/duet/p-400f8e9d.system.entry.js +0 -4
  476. package/lib/duet/p-4c96e54d.entry.js +0 -4
  477. package/lib/duet/p-4d1a5b9e.system.entry.js +0 -4
  478. package/lib/duet/p-5214682e.system.entry.js +0 -4
  479. package/lib/duet/p-5b00d0cf.system.entry.js +0 -4
  480. package/lib/duet/p-63cb7308.system.entry.js +0 -4
  481. package/lib/duet/p-7ccf8ef9.entry.js +0 -4
  482. package/lib/duet/p-81313736.entry.js +0 -4
  483. package/lib/duet/p-8681c6e0.entry.js +0 -4
  484. package/lib/duet/p-8f6cf5d1.entry.js +0 -4
  485. package/lib/duet/p-b180a4e2.system.entry.js +0 -4
  486. package/lib/duet/p-b2688afc.system.entry.js +0 -4
  487. package/lib/duet/p-b821b721.system.entry.js +0 -4
  488. package/lib/duet/p-c4932f05.entry.js +0 -4
  489. package/lib/duet/p-d0f1d25f.system.entry.js +0 -4
  490. package/lib/duet/p-dbddb719.entry.js +0 -4
  491. package/lib/duet/p-dc18b76c.system.entry.js +0 -4
  492. package/lib/duet/p-f9133dc5.system.js +0 -4
  493. package/lib/esm/duet-menu-bar-menu-dropdown-link.entry.js +0 -39
  494. package/lib/esm/duet-menu-bar-menu-dropdown.entry.js +0 -52
  495. package/lib/esm/duet-menu-bar-menu-link.entry.js +0 -34
  496. package/lib/esm/duet-menu-bar-menu.entry.js +0 -52
  497. package/lib/esm-es5/duet-menu-bar-menu-dropdown-link.entry.js +0 -4
  498. package/lib/esm-es5/duet-menu-bar-menu-dropdown.entry.js +0 -4
  499. package/lib/esm-es5/duet-menu-bar-menu-link.entry.js +0 -4
  500. package/lib/esm-es5/duet-menu-bar-menu.entry.js +0 -4
  501. package/lib/esm-es5/focus-utils-abaea1e6.js +0 -4
  502. package/lib/types/components/duet-menu-bar-menu/duet-menu-bar-menu.d.ts +0 -49
  503. package/lib/types/components/duet-menu-bar-menu-dropdown/duet-menu-bar-menu-dropdown.d.ts +0 -49
@@ -5,23 +5,30 @@ import { h, Host } from "@stencil/core";
5
5
  import { inheritGlobalTheme } from "../../common/themeable-component";
6
6
  export class DuetMenuBarDropdown {
7
7
  constructor() {
8
- this.toggleMenu = (e) => {
9
- const toggle = !this.open;
10
- this.open = toggle;
11
- this.duetMenuBarDropdownEvent.emit({
12
- originalEvent: e,
13
- data: { element: this.element, open: this.open },
14
- component: "duet-menu-bar-dropdown",
15
- });
8
+ this.onClick = () => {
9
+ this.open = !this.open;
16
10
  };
17
- this.onClick = (e) => {
18
- this.toggleMenu(e);
19
- e.stopImmediatePropagation();
11
+ this.getVariant = () => {
12
+ const slot = this.element.parentElement.getAttribute("slot");
13
+ switch (slot) {
14
+ case "center":
15
+ return "right";
16
+ case "right":
17
+ return "right";
18
+ default:
19
+ return "right";
20
+ }
20
21
  };
21
22
  this.theme = "";
22
23
  this.open = false;
23
24
  this.icon = undefined;
24
25
  }
26
+ handleFocus(e) {
27
+ const isClickOutside = e.composedPath().every(node => node !== this.element);
28
+ if (isClickOutside) {
29
+ this.open = false;
30
+ }
31
+ }
25
32
  /**
26
33
  * Component lifecycle events.
27
34
  */
@@ -33,7 +40,12 @@ export class DuetMenuBarDropdown {
33
40
  * Always the last one in the class.
34
41
  */
35
42
  render() {
36
- return (h(Host, null, h("div", { class: { "duet-menu-bar-dropdown": true, "duet-theme-turva": this.theme === "turva", active: this.open } }, h("button", { "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
43
+ return (h(Host, null, h("div", { class: {
44
+ "duet-menu-bar-dropdown": true,
45
+ "duet-theme-turva": this.theme === "turva",
46
+ active: this.open,
47
+ [`duet-menu-bar-dropdown--slot-${this.getVariant()}`]: true,
48
+ } }, h("button", { "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
37
49
  active: this.open,
38
50
  }, onClick: this.onClick }, this.icon && h("duet-icon", { name: this.icon, size: "x-small", margin: "none" }), h("div", { class: "label" }, h("slot", { name: "label" }), h("duet-icon", { class: "caret", name: "action-arrow-down-small", margin: "none", size: "xxx-small" }))), h("div", { tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
39
51
  items: true,
@@ -115,27 +127,14 @@ export class DuetMenuBarDropdown {
115
127
  }
116
128
  };
117
129
  }
118
- static get events() {
130
+ static get elementRef() { return "element"; }
131
+ static get listeners() {
119
132
  return [{
120
- "method": "duetMenuBarDropdownEvent",
121
- "name": "duetMenuBarDropdownEvent",
122
- "bubbles": true,
123
- "cancelable": true,
124
- "composed": true,
125
- "docs": {
126
- "tags": [],
127
- "text": "Event raised when the dropdown has been opened. You can prevent the\ndefault browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via **event.detail.data**."
128
- },
129
- "complexType": {
130
- "original": "DuetMenuBarDropdownEventDetails",
131
- "resolved": "{ originalEvent: Event; data: { element: HTMLElement; open: boolean; }; component: \"duet-menu-bar-dropdown\"; }",
132
- "references": {
133
- "DuetMenuBarDropdownEventDetails": {
134
- "location": "local"
135
- }
136
- }
137
- }
133
+ "name": "click",
134
+ "method": "handleFocus",
135
+ "target": "window",
136
+ "capture": false,
137
+ "passive": false
138
138
  }];
139
139
  }
140
- static get elementRef() { return "element"; }
141
140
  }
@@ -44,9 +44,17 @@
44
44
  font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
45
45
  color: #171c3a;
46
46
  }
47
- .duet-menu-bar-dropdown-link:hover {
47
+ .duet-menu-bar-dropdown-link--slot-right:hover {
48
48
  background: #e6f2f8;
49
49
  }
50
- .duet-menu-bar-dropdown-link:hover.duet-theme-turva {
50
+ .duet-menu-bar-dropdown-link--slot-right:hover.duet-theme-turva {
51
+ background: #e4e4e6;
52
+ }
53
+ .duet-menu-bar-dropdown-link--slot-below:hover {
54
+ color: #004d80;
55
+ background: #f3f9fc;
56
+ }
57
+ .duet-menu-bar-dropdown-link--slot-below:hover.duet-theme-turva {
58
+ color: #940925;
51
59
  background: #e4e4e6;
52
60
  }
@@ -5,9 +5,21 @@ import { h, Host } from "@stencil/core";
5
5
  import { inheritGlobalTheme } from "../../common/themeable-component";
6
6
  export class DuetMenuBarDropdownLink {
7
7
  constructor() {
8
+ this.getVariant = () => {
9
+ const slot = this.element.parentElement.parentElement.getAttribute("slot");
10
+ switch (slot) {
11
+ case "center":
12
+ return "right";
13
+ case "right":
14
+ return "right";
15
+ default:
16
+ return "right";
17
+ }
18
+ };
8
19
  this.theme = "";
9
20
  this.href = "#";
10
21
  this.icon = undefined;
22
+ this.caret = false;
11
23
  }
12
24
  /**
13
25
  * Component lifecycle events.
@@ -22,6 +34,7 @@ export class DuetMenuBarDropdownLink {
22
34
  render() {
23
35
  return (h(Host, null, h("a", { class: {
24
36
  "duet-menu-bar-dropdown-link": true,
37
+ [`duet-menu-bar-dropdown-link--slot-${this.getVariant()}`]: true,
25
38
  "duet-theme-turva": this.theme === "turva",
26
39
  }, href: this.href, role: "menuitem" }, this.icon && h("duet-icon", { name: this.icon, size: "x-small", margin: "none", color: "currentColor" }), h("slot", null))));
27
40
  }
@@ -97,6 +110,24 @@ export class DuetMenuBarDropdownLink {
97
110
  "attribute": "icon",
98
111
  "reflect": true,
99
112
  "defaultValue": "undefined"
113
+ },
114
+ "caret": {
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": "Caret"
127
+ },
128
+ "attribute": "caret",
129
+ "reflect": false,
130
+ "defaultValue": "false"
100
131
  }
101
132
  };
102
133
  }
@@ -32,10 +32,6 @@
32
32
  height: 100%;
33
33
  padding: 0 12px;
34
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: #004d80;
39
35
  text-align: center;
40
36
  text-decoration: none;
41
37
  }
@@ -49,13 +45,57 @@
49
45
  padding: 0 28px;
50
46
  }
51
47
  }
52
- .duet-menu-bar-link.duet-theme-turva {
48
+ .duet-menu-bar-link.active {
49
+ color: #0077b3;
50
+ }
51
+ .duet-theme-turva .duet-menu-bar-link.active {
52
+ color: #c60c30;
53
+ }
54
+ .duet-menu-bar-link.active::after {
55
+ position: absolute;
56
+ top: auto;
57
+ bottom: 2px;
58
+ left: 0;
59
+ display: block;
60
+ width: 100%;
61
+ height: 2px;
62
+ content: "";
63
+ background: #0077b3;
64
+ transition: 300ms ease;
65
+ transform: translateY(2px);
66
+ }
67
+ .duet-menu-bar-link--slot-center {
68
+ font-size: 1rem;
69
+ font-weight: 600;
70
+ line-height: 1.25;
71
+ color: #00294d;
72
+ }
73
+ .duet-menu-bar-link--slot-center.duet-theme-turva {
74
+ font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
75
+ color: #940925;
76
+ }
77
+ .duet-menu-bar-link--slot-center.active.duet-theme-turva::after {
78
+ background: #c60c30;
79
+ }
80
+ .duet-menu-bar-link--slot-center:hover {
81
+ color: #0077b3;
82
+ }
83
+ .duet-menu-bar-link--slot-center:hover.duet-theme-turva {
84
+ color: #c60c30;
85
+ }
86
+ .duet-menu-bar-link--slot-right {
87
+ font-size: 0.875rem;
88
+ font-weight: 400;
89
+ line-height: 1.25;
90
+ color: #004d80;
91
+ }
92
+ .duet-menu-bar-link--slot-right.duet-theme-turva {
53
93
  font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
54
94
  color: #940925;
55
95
  }
56
- .duet-menu-bar-link:hover {
96
+ .duet-menu-bar-link--slot-right:hover {
57
97
  color: #0077b3;
58
98
  }
59
- .duet-menu-bar-link:hover.duet-theme-turva {
99
+ .duet-menu-bar-link--slot-right:hover.duet-theme-turva {
60
100
  color: #c60c30;
61
101
  }
@@ -5,7 +5,21 @@ import { h, Host } from "@stencil/core";
5
5
  import { inheritGlobalTheme } from "../../common/themeable-component";
6
6
  export class DuetMenuBarLink {
7
7
  constructor() {
8
+ this.getVariant = () => {
9
+ const slot = this.element.parentElement.getAttribute("slot");
10
+ switch (slot) {
11
+ case "center":
12
+ return "center";
13
+ case "right":
14
+ return "right";
15
+ case "below":
16
+ return "below";
17
+ default:
18
+ return "center";
19
+ }
20
+ };
8
21
  this.theme = "";
22
+ this.active = false;
9
23
  this.href = "#";
10
24
  this.icon = undefined;
11
25
  }
@@ -20,7 +34,12 @@ export class DuetMenuBarLink {
20
34
  * Always the last one in the class.
21
35
  */
22
36
  render() {
23
- return (h(Host, null, h("a", { class: { "duet-menu-bar-link": true, "duet-theme-turva": this.theme === "turva" }, href: this.href }, this.icon && h("duet-icon", { size: "x-small", name: this.icon, margin: "none" }), h("slot", null))));
37
+ return (h(Host, null, h("a", { class: {
38
+ "duet-menu-bar-link": true,
39
+ "duet-theme-turva": this.theme === "turva",
40
+ active: this.active,
41
+ [`duet-menu-bar-link--slot-${this.getVariant()}`]: true,
42
+ }, href: this.href }, this.icon && h("duet-icon", { size: "x-small", name: this.icon, margin: "none" }), h("slot", null))));
24
43
  }
25
44
  static get is() { return "duet-menu-bar-link"; }
26
45
  static get encapsulation() { return "shadow"; }
@@ -59,6 +78,24 @@ export class DuetMenuBarLink {
59
78
  "reflect": false,
60
79
  "defaultValue": "\"\""
61
80
  },
81
+ "active": {
82
+ "type": "boolean",
83
+ "mutable": true,
84
+ "complexType": {
85
+ "original": "boolean",
86
+ "resolved": "boolean",
87
+ "references": {}
88
+ },
89
+ "required": false,
90
+ "optional": false,
91
+ "docs": {
92
+ "tags": [],
93
+ "text": "Active"
94
+ },
95
+ "attribute": "active",
96
+ "reflect": false,
97
+ "defaultValue": "false"
98
+ },
62
99
  "href": {
63
100
  "type": "string",
64
101
  "mutable": true,
@@ -21,4 +21,9 @@
21
21
  -webkit-appearance: none;
22
22
  appearance: none;
23
23
  width: 100%;
24
+ }
25
+
26
+ nav {
27
+ max-width: 1440px;
28
+ margin: 0 auto;
24
29
  }
@@ -5,36 +5,6 @@ import { h, Host } from "@stencil/core";
5
5
  import { inheritGlobalTheme } from "../../common/themeable-component";
6
6
  export class DuetMenuBar {
7
7
  constructor() {
8
- this.getToolbarDropdowns = () => this.element.querySelectorAll("duet-toolbar-dropdown");
9
- this.getMenuBarMenus = () => this.element.querySelectorAll("duet-menu-bar-menu");
10
- this.getActiveMenu = () => this.element.querySelector("duet-menu-bar-menu[active]");
11
- this.getActiveTool = () => this.element.querySelector("duet-toolbar-link[active],duet-toolbar-dropdown[active]");
12
- this.getMenuBarMenuDropdowns = () => this.element.querySelectorAll("duet-menu-bar-menu-dropdown");
13
- this.getMenuBarDropdowns = () => this.element.querySelectorAll("duet-menu-bar-dropdown");
14
- this.toggleActiveMenu = (active) => {
15
- const activeMenu = this.getActiveMenu();
16
- if (activeMenu) {
17
- activeMenu.setAttribute("active", active ? "true" : "false");
18
- }
19
- };
20
- this.toggleActiveTool = (active) => {
21
- const activeTool = this.getActiveTool();
22
- if (activeTool) {
23
- activeTool.setAttribute("active", active ? "true" : "false");
24
- }
25
- };
26
- this.close = (elementGetter, elementToKeepOpen) => {
27
- elementGetter().forEach(element => {
28
- if (elementToKeepOpen) {
29
- if (element !== elementToKeepOpen) {
30
- element.setAttribute("open", "false");
31
- }
32
- }
33
- else {
34
- element.setAttribute("open", "false");
35
- }
36
- });
37
- };
38
8
  this.theme = "";
39
9
  }
40
10
  /**
@@ -43,54 +13,6 @@ export class DuetMenuBar {
43
13
  componentWillLoad() {
44
14
  inheritGlobalTheme(this);
45
15
  }
46
- handleToolbarDropdownEvent(e) {
47
- if (e.detail.data.element) {
48
- if (e.detail.data.open) {
49
- this.close(this.getMenuBarMenus);
50
- this.close(this.getToolbarDropdowns, e.detail.data.element);
51
- this.close(this.getMenuBarMenuDropdowns);
52
- this.close(this.getMenuBarDropdowns);
53
- }
54
- this.toggleActiveMenu(true);
55
- this.toggleActiveTool(!e.detail.data.open);
56
- }
57
- }
58
- handleMenuEvent(e) {
59
- if (e.detail.data.element) {
60
- if (e.detail.data.open) {
61
- this.close(this.getMenuBarMenus, e.detail.data.element);
62
- this.close(this.getToolbarDropdowns);
63
- this.close(this.getMenuBarMenuDropdowns);
64
- this.close(this.getMenuBarDropdowns);
65
- }
66
- this.toggleActiveMenu(!e.detail.data.open);
67
- this.toggleActiveTool(true);
68
- }
69
- }
70
- handleMenuDropdownEvent(e) {
71
- if (e.detail.data.element && e.detail.data.open) {
72
- this.close(this.getMenuBarMenuDropdowns, e.detail.data.element);
73
- this.close(this.getMenuBarDropdowns);
74
- }
75
- }
76
- handleDropdownEvent(e) {
77
- if (e.detail.data.element && e.detail.data.open) {
78
- this.close(this.getMenuBarDropdowns, e.detail.data.element);
79
- this.close(this.getToolbarDropdowns);
80
- this.close(this.getMenuBarMenus);
81
- this.close(this.getMenuBarMenuDropdowns);
82
- }
83
- this.toggleActiveMenu(!e.detail.data.open);
84
- this.toggleActiveTool(true);
85
- }
86
- handleFocus() {
87
- this.toggleActiveMenu(true);
88
- this.toggleActiveTool(true);
89
- this.close(this.getToolbarDropdowns);
90
- this.close(this.getMenuBarMenus);
91
- this.close(this.getMenuBarMenuDropdowns);
92
- this.close(this.getMenuBarDropdowns);
93
- }
94
16
  /**
95
17
  * render() function
96
18
  * Always the last one in the class.
@@ -138,43 +60,4 @@ export class DuetMenuBar {
138
60
  };
139
61
  }
140
62
  static get elementRef() { return "element"; }
141
- static get listeners() {
142
- return [{
143
- "name": "duetToolbarDropdownEvent",
144
- "method": "handleToolbarDropdownEvent",
145
- "target": undefined,
146
- "capture": false,
147
- "passive": false
148
- }, {
149
- "name": "duetMenuBarMenuEvent",
150
- "method": "handleMenuEvent",
151
- "target": undefined,
152
- "capture": false,
153
- "passive": false
154
- }, {
155
- "name": "duetMenuBarMenuDropdownEvent",
156
- "method": "handleMenuDropdownEvent",
157
- "target": undefined,
158
- "capture": false,
159
- "passive": false
160
- }, {
161
- "name": "duetMenuBarDropdownEvent",
162
- "method": "handleDropdownEvent",
163
- "target": undefined,
164
- "capture": false,
165
- "passive": false
166
- }, {
167
- "name": "click",
168
- "method": "handleFocus",
169
- "target": "document",
170
- "capture": false,
171
- "passive": false
172
- }, {
173
- "name": "focus",
174
- "method": "handleFocus",
175
- "target": "document",
176
- "capture": false,
177
- "passive": false
178
- }];
179
- }
180
63
  }
@@ -0,0 +1,37 @@
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
+ width: 100%;
24
+ }
25
+
26
+ .duet-submenu-bar {
27
+ z-index: 1;
28
+ display: flex;
29
+ align-items: center;
30
+ justify-content: center;
31
+ background: #f3f9fc;
32
+ border-bottom: 1px solid #cde5f1;
33
+ }
34
+ .duet-submenu-bar.duet-theme-turva {
35
+ background: #f5f5f7;
36
+ border-bottom: 1px solid #e4e4e6;
37
+ }
@@ -0,0 +1,63 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import { h, Host } from "@stencil/core";
5
+ import { inheritGlobalTheme } from "../../common/themeable-component";
6
+ export class DuetSubmenuBar {
7
+ constructor() {
8
+ this.theme = "";
9
+ }
10
+ /**
11
+ * Component lifecycle events.
12
+ */
13
+ componentWillLoad() {
14
+ inheritGlobalTheme(this);
15
+ }
16
+ /**
17
+ * render() function
18
+ * Always the last one in the class.
19
+ */
20
+ render() {
21
+ return (h(Host, null, h("div", { class: { "duet-submenu-bar": true, "duet-theme-turva": this.theme === "turva" }, role: "menubar" }, h("slot", null))));
22
+ }
23
+ static get is() { return "duet-submenu-bar"; }
24
+ static get encapsulation() { return "shadow"; }
25
+ static get originalStyleUrls() {
26
+ return {
27
+ "$": ["duet-submenu-bar.scss"]
28
+ };
29
+ }
30
+ static get styleUrls() {
31
+ return {
32
+ "$": ["duet-submenu-bar.css"]
33
+ };
34
+ }
35
+ static get properties() {
36
+ return {
37
+ "theme": {
38
+ "type": "string",
39
+ "mutable": true,
40
+ "complexType": {
41
+ "original": "DuetTheme",
42
+ "resolved": "\"\" | \"default\" | \"turva\"",
43
+ "references": {
44
+ "DuetTheme": {
45
+ "location": "import",
46
+ "path": "../../common-types"
47
+ }
48
+ }
49
+ },
50
+ "required": false,
51
+ "optional": false,
52
+ "docs": {
53
+ "tags": [],
54
+ "text": "Theme."
55
+ },
56
+ "attribute": "theme",
57
+ "reflect": false,
58
+ "defaultValue": "\"\""
59
+ }
60
+ };
61
+ }
62
+ static get elementRef() { return "element"; }
63
+ }
@@ -23,11 +23,11 @@
23
23
  height: 100%;
24
24
  }
25
25
 
26
- .duet-menu-bar-menu-dropdown {
26
+ .duet-submenu-bar-dropdown {
27
27
  position: relative;
28
28
  height: 100%;
29
29
  }
30
- .duet-menu-bar-menu-dropdown button {
30
+ .duet-submenu-bar-dropdown button {
31
31
  position: relative;
32
32
  display: flex;
33
33
  flex-direction: column;
@@ -35,7 +35,7 @@
35
35
  align-items: center;
36
36
  justify-content: center;
37
37
  height: 100%;
38
- padding: 0 0.75rem 0 1.5rem;
38
+ padding: 12px 1.5rem;
39
39
  font-family: "localtapiola-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
40
40
  font-size: 0.875rem;
41
41
  font-weight: 600;
@@ -45,23 +45,33 @@
45
45
  text-decoration: none;
46
46
  cursor: pointer;
47
47
  }
48
- .duet-menu-bar-menu-dropdown button .label {
48
+ .duet-submenu-bar-dropdown button .label {
49
49
  display: flex;
50
50
  gap: 5px;
51
51
  align-items: center;
52
52
  justify-content: center;
53
53
  }
54
- .duet-menu-bar-menu-dropdown button:hover {
54
+ .duet-submenu-bar-dropdown button .caret {
55
+ position: absolute;
56
+ right: 12px;
57
+ }
58
+ .duet-submenu-bar-dropdown button:hover {
55
59
  color: #004d80;
56
60
  background: #e6f2f8;
57
61
  }
58
- .duet-menu-bar-menu-dropdown button.active {
62
+ .duet-submenu-bar-dropdown button:hover.active {
63
+ color: #0077b3;
64
+ }
65
+ .duet-submenu-bar-dropdown button.active {
59
66
  color: #0077b3;
60
67
  }
61
- .duet-menu-bar-menu-dropdown button.active .caret {
68
+ .duet-submenu-bar-dropdown button.active .caret {
62
69
  transform: rotate(180deg);
63
70
  }
64
- .duet-menu-bar-menu-dropdown button.active::after {
71
+ .duet-theme-turva .duet-submenu-bar-dropdown button.active {
72
+ color: #c60c30;
73
+ }
74
+ .duet-submenu-bar-dropdown button.active::after {
65
75
  position: absolute;
66
76
  top: auto;
67
77
  bottom: 2px;
@@ -74,40 +84,40 @@
74
84
  transition: 300ms ease;
75
85
  transform: translateY(2px);
76
86
  }
77
- .duet-theme-turva .duet-menu-bar-menu-dropdown button.active::after {
87
+ .duet-theme-turva .duet-submenu-bar-dropdown button.active::after {
78
88
  background: #c60c30;
79
89
  }
80
- .duet-menu-bar-menu-dropdown .items {
90
+ .duet-submenu-bar-dropdown .items {
81
91
  position: absolute;
82
92
  top: 101%;
93
+ z-index: 600;
83
94
  display: flex;
84
95
  flex-direction: column;
85
- align-items: flex-start;
96
+ align-items: center;
86
97
  justify-content: center;
87
- width: auto;
88
98
  min-width: 320px;
89
99
  color: #00294d;
90
100
  background: white;
91
101
  border-radius: 0 0 4px 4px;
92
102
  box-shadow: 0 6px 6px 0 rgba(0, 41, 77, 0.1);
93
103
  }
94
- .duet-menu-bar-menu-dropdown .items.hidden {
104
+ .duet-submenu-bar-dropdown .items.hidden {
95
105
  display: none;
96
106
  }
97
- .duet-menu-bar-menu-dropdown.duet-theme-turva button {
107
+ .duet-submenu-bar-dropdown.duet-theme-turva button {
98
108
  font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
99
109
  color: #171c3a;
100
110
  }
101
- .duet-menu-bar-menu-dropdown.duet-theme-turva button:hover {
111
+ .duet-submenu-bar-dropdown.duet-theme-turva button:hover {
102
112
  color: #940925;
103
113
  background: #e4e4e6;
104
114
  }
105
- .duet-menu-bar-menu-dropdown.duet-theme-turva button.active {
115
+ .duet-submenu-bar-dropdown.duet-theme-turva button.active {
106
116
  color: #c60c30;
107
117
  }
108
- .duet-menu-bar-menu-dropdown.duet-theme-turva button.active::after {
118
+ .duet-submenu-bar-dropdown.duet-theme-turva button.active::after {
109
119
  background: #c60c30;
110
120
  }
111
- .duet-menu-bar-menu-dropdown.duet-theme-turva .items {
121
+ .duet-submenu-bar-dropdown.duet-theme-turva .items {
112
122
  background: #f5f5f7;
113
123
  }