@duetds/components 6.3.5 → 6.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (521) hide show
  1. package/hydrate/index.js +140 -141
  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 +2 -2
  12. package/lib/cjs/duet-collapsible.cjs.entry.js +2 -2
  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 +1 -1
  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 +5 -4
  24. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-input_2.cjs.entry.js +3 -3
  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-button.cjs.entry.js +79 -0
  29. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +2 -16
  32. package/lib/cjs/duet-menu-bar.cjs.entry.js +2 -2
  33. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  34. package/lib/cjs/duet-multiselect.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-nav.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-pagination_2.cjs.entry.js +8 -16
  39. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-scrollable_3.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  44. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  45. package/lib/cjs/duet-slideout-lang.cjs.entry.js +2 -2
  46. package/lib/cjs/duet-slideout-link.cjs.entry.js +5 -4
  47. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +6 -2
  48. package/lib/cjs/duet-slideout-panel.cjs.entry.js +5 -4
  49. package/lib/cjs/duet-slideout.cjs.entry.js +18 -7
  50. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  51. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +1 -1
  52. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +1 -1
  53. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +1 -1
  54. package/lib/cjs/duet-submenu-bar.cjs.entry.js +1 -1
  55. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  56. package/lib/cjs/duet-toggle.cjs.entry.js +6 -3
  57. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +1 -1
  58. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +1 -1
  59. package/lib/cjs/duet-toolbar-link.cjs.entry.js +1 -1
  60. package/lib/cjs/duet-toolbar.cjs.entry.js +1 -1
  61. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  62. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  63. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  64. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  65. package/lib/cjs/duet.cjs.js +2 -2
  66. package/lib/cjs/{focus-utils-1792d16d.js → focus-utils-91717ff5.js} +1 -1
  67. package/lib/cjs/{index-c780231c.js → index-5a5b5fb6.js} +1 -1
  68. package/lib/cjs/loader.cjs.js +2 -2
  69. package/lib/collection/collection-manifest.json +1 -2
  70. package/lib/collection/components/duet-collapsible/duet-collapsible.css +1 -1
  71. package/lib/collection/components/duet-hero/duet-hero.css +378 -71
  72. package/lib/collection/components/duet-hero/duet-hero.js +3 -2
  73. package/lib/collection/components/duet-input/duet-input.css +20 -0
  74. package/lib/collection/components/duet-input/duet-input.js +1 -1
  75. package/lib/collection/components/duet-menu-bar/duet-menu-bar.css +22 -0
  76. package/lib/collection/components/{duet-slideout-panel-link/duet-slideout-panel-link.css → duet-menu-bar-button/duet-menu-bar-button.css} +23 -13
  77. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +156 -0
  78. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.css +6 -33
  79. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +0 -14
  80. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +7 -15
  81. package/lib/collection/components/duet-slideout/duet-slideout.css +27 -34
  82. package/lib/collection/components/duet-slideout/duet-slideout.js +45 -5
  83. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.css +1 -0
  84. package/lib/collection/components/duet-slideout-link/duet-slideout-link.css +9 -7
  85. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +27 -5
  86. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.css +35 -5
  87. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +20 -1
  88. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.css +21 -5
  89. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +4 -0
  90. package/lib/collection/components/duet-toggle/duet-toggle.css +46 -21
  91. package/lib/collection/components/duet-toggle/duet-toggle.js +22 -1
  92. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  93. package/lib/dist-custom-elements/duet-alert.js +1 -1
  94. package/lib/dist-custom-elements/duet-badge.js +1 -1
  95. package/lib/dist-custom-elements/duet-breadcrumb.js +2 -2
  96. package/lib/dist-custom-elements/duet-breadcrumbs.js +2 -2
  97. package/lib/dist-custom-elements/duet-button.js +1 -1
  98. package/lib/dist-custom-elements/duet-caption.js +1 -1
  99. package/lib/dist-custom-elements/duet-card.js +3 -3
  100. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  101. package/lib/dist-custom-elements/duet-choice-group.js +6 -6
  102. package/lib/dist-custom-elements/duet-choice.js +5 -5
  103. package/lib/dist-custom-elements/duet-collapsible.js +3 -3
  104. package/lib/dist-custom-elements/duet-combobox.js +2 -2
  105. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  106. package/lib/dist-custom-elements/duet-date-picker.js +8 -8
  107. package/lib/dist-custom-elements/duet-divider.js +1 -1
  108. package/lib/dist-custom-elements/duet-editable-table.js +1 -1
  109. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  110. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  111. package/lib/dist-custom-elements/duet-footer.js +4 -4
  112. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  113. package/lib/dist-custom-elements/duet-grid.js +1 -1
  114. package/lib/dist-custom-elements/duet-header.js +8 -8
  115. package/lib/dist-custom-elements/duet-heading.js +1 -1
  116. package/lib/dist-custom-elements/duet-hero.js +13 -12
  117. package/lib/dist-custom-elements/duet-icon.js +1 -1
  118. package/lib/dist-custom-elements/duet-input.js +1 -1
  119. package/lib/dist-custom-elements/duet-label.js +1 -1
  120. package/lib/dist-custom-elements/duet-layout.js +1 -1
  121. package/lib/dist-custom-elements/duet-link.js +1 -1
  122. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  123. package/lib/dist-custom-elements/duet-list.js +1 -1
  124. package/lib/dist-custom-elements/duet-logo.js +1 -1
  125. package/lib/dist-custom-elements/duet-menu-bar-button.d.ts +11 -0
  126. package/lib/dist-custom-elements/duet-menu-bar-button.js +104 -0
  127. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +2 -2
  128. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +2 -2
  129. package/lib/dist-custom-elements/duet-menu-bar-link.js +3 -17
  130. package/lib/dist-custom-elements/duet-menu-bar.js +3 -3
  131. package/lib/dist-custom-elements/duet-modal.js +7 -7
  132. package/lib/dist-custom-elements/duet-multiselect.js +8 -8
  133. package/lib/dist-custom-elements/duet-nav.js +1 -1
  134. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  135. package/lib/dist-custom-elements/duet-notification.js +2 -2
  136. package/lib/dist-custom-elements/duet-number-input.js +7 -7
  137. package/lib/dist-custom-elements/duet-pagination.js +7 -7
  138. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  139. package/lib/dist-custom-elements/duet-progress.js +1 -1
  140. package/lib/dist-custom-elements/duet-radio-group.js +6 -6
  141. package/lib/dist-custom-elements/duet-radio.js +1 -1
  142. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  143. package/lib/dist-custom-elements/duet-range-stepper.js +11 -19
  144. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  145. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  146. package/lib/dist-custom-elements/duet-select.js +1 -1
  147. package/lib/dist-custom-elements/duet-slideout-lang.js +4 -4
  148. package/lib/dist-custom-elements/duet-slideout-link.js +8 -6
  149. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +7 -3
  150. package/lib/dist-custom-elements/duet-slideout-panel.js +6 -4
  151. package/lib/dist-custom-elements/duet-slideout.js +19 -7
  152. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  153. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  154. package/lib/dist-custom-elements/duet-step.js +4 -4
  155. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  156. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +2 -2
  157. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +2 -2
  158. package/lib/dist-custom-elements/duet-submenu-bar-link.js +2 -2
  159. package/lib/dist-custom-elements/duet-submenu-bar.js +2 -2
  160. package/lib/dist-custom-elements/duet-tab-group.js +8 -8
  161. package/lib/dist-custom-elements/duet-tab.js +1 -1
  162. package/lib/dist-custom-elements/duet-table.js +1 -1
  163. package/lib/dist-custom-elements/duet-textarea.js +8 -8
  164. package/lib/dist-custom-elements/duet-toggle.js +8 -4
  165. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -2
  166. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +2 -2
  167. package/lib/dist-custom-elements/duet-toolbar-link.js +2 -2
  168. package/lib/dist-custom-elements/duet-toolbar.js +1 -1
  169. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  170. package/lib/dist-custom-elements/duet-tray.js +3 -3
  171. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  172. package/lib/dist-custom-elements/duet-upload.js +18 -18
  173. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  174. package/lib/dist-custom-elements/index.d.ts +1 -2
  175. package/lib/dist-custom-elements/index.js +2 -3
  176. package/lib/dist-custom-elements/{p-58d6bf44.js → p-0e46bc2c.js} +4 -4
  177. package/lib/dist-custom-elements/{p-c56da0b6.js → p-1772b598.js} +1 -1
  178. package/lib/dist-custom-elements/{p-3cbd86d1.js → p-1b31e0ac.js} +1 -1
  179. package/lib/dist-custom-elements/{p-12b842a7.js → p-1e3f421f.js} +1 -1
  180. package/lib/dist-custom-elements/{p-2a9a1aee.js → p-22b0a23d.js} +1 -1
  181. package/lib/dist-custom-elements/{p-c7aaa12e.js → p-26fb2022.js} +1 -1
  182. package/lib/dist-custom-elements/{p-fe75ce36.js → p-4804e790.js} +6 -6
  183. package/lib/dist-custom-elements/{p-18414294.js → p-4f709f28.js} +3 -3
  184. package/lib/dist-custom-elements/{p-92d5395b.js → p-5ac75d16.js} +1 -1
  185. package/lib/dist-custom-elements/{p-05ca8ad3.js → p-6709c2d5.js} +1 -1
  186. package/lib/dist-custom-elements/{p-af004f36.js → p-6b914cdc.js} +3 -3
  187. package/lib/dist-custom-elements/{p-355735f0.js → p-6f9f5b04.js} +3 -3
  188. package/lib/dist-custom-elements/{p-84fd6025.js → p-7266af0a.js} +1 -1
  189. package/lib/dist-custom-elements/{p-093cdb4b.js → p-7c5907e5.js} +8 -8
  190. package/lib/dist-custom-elements/{p-e5b634ae.js → p-86994a58.js} +1 -1
  191. package/lib/dist-custom-elements/{p-849407d1.js → p-9038500b.js} +5 -5
  192. package/lib/dist-custom-elements/{p-cc6990dc.js → p-9041d5c6.js} +7 -7
  193. package/lib/dist-custom-elements/{p-75c1d029.js → p-97f674f0.js} +2 -2
  194. package/lib/dist-custom-elements/{p-719f820e.js → p-9b3047d2.js} +1 -1
  195. package/lib/dist-custom-elements/{p-455151f9.js → p-a213fc78.js} +1 -1
  196. package/lib/dist-custom-elements/{p-5f10b790.js → p-a3d1df89.js} +1 -1
  197. package/lib/dist-custom-elements/{p-b5c1dbcf.js → p-b34f2a20.js} +2 -2
  198. package/lib/dist-custom-elements/{p-c9c2b26b.js → p-b7a2cf37.js} +1 -1
  199. package/lib/dist-custom-elements/{p-d3cd6eb7.js → p-c7567c65.js} +1 -1
  200. package/lib/dist-custom-elements/{p-86343460.js → p-ca879759.js} +2 -2
  201. package/lib/dist-custom-elements/{p-12fb0f9e.js → p-cab9eb97.js} +2 -2
  202. package/lib/dist-custom-elements/{p-1529e25b.js → p-d36aab71.js} +1 -1
  203. package/lib/dist-custom-elements/{p-3fd31c11.js → p-d501f01d.js} +1 -1
  204. package/lib/dist-custom-elements/{p-e8fc1e4d.js → p-e7845c13.js} +1 -1
  205. package/lib/dist-custom-elements/{p-39ecc3c9.js → p-f3b86e69.js} +2 -2
  206. package/lib/dist-custom-elements/{p-0e692503.js → p-f61f0fcc.js} +1 -1
  207. package/lib/duet/duet.esm.js +1 -1
  208. package/lib/duet/duet.js +1 -1
  209. package/lib/duet/{p-018a5ab9.entry.js → p-0127ce48.entry.js} +1 -1
  210. package/lib/duet/p-03c351bf.js +4 -0
  211. package/lib/duet/{p-837d96a7.system.entry.js → p-04263611.system.entry.js} +1 -1
  212. package/lib/duet/{p-1c255237.entry.js → p-04a3dfa0.entry.js} +1 -1
  213. package/lib/duet/p-04d51c20.entry.js +4 -0
  214. package/lib/duet/{p-b145d365.system.entry.js → p-06657f21.system.entry.js} +1 -1
  215. package/lib/duet/p-071f0c01.system.entry.js +4 -0
  216. package/lib/duet/{p-f49ce77f.js → p-08219217.js} +1 -1
  217. package/lib/duet/{p-865d8746.system.entry.js → p-08a74979.system.entry.js} +1 -1
  218. package/lib/duet/{p-9fffdd96.entry.js → p-0a7c904c.entry.js} +1 -1
  219. package/lib/duet/{p-72fa9406.entry.js → p-0c15b8bb.entry.js} +1 -1
  220. package/lib/duet/{p-91379e1a.system.entry.js → p-0f31e470.system.entry.js} +1 -1
  221. package/lib/duet/{p-49b5f5d2.entry.js → p-10596532.entry.js} +1 -1
  222. package/lib/duet/{p-4d3850f7.system.entry.js → p-158837f1.system.entry.js} +1 -1
  223. package/lib/duet/p-1863f126.system.entry.js +4 -0
  224. package/lib/duet/{p-3f6a6295.entry.js → p-1b594ed7.entry.js} +1 -1
  225. package/lib/duet/{p-0cf1ddbb.system.entry.js → p-1b6b316a.system.entry.js} +1 -1
  226. package/lib/duet/{p-16120a6f.entry.js → p-1b6c34b9.entry.js} +1 -1
  227. package/lib/duet/{p-31a47437.entry.js → p-1b80ae9f.entry.js} +1 -1
  228. package/lib/duet/{p-f92fe815.entry.js → p-1bbf4ae6.entry.js} +1 -1
  229. package/lib/duet/{p-d457f4aa.entry.js → p-1d83148d.entry.js} +1 -1
  230. package/lib/duet/{p-cffec684.entry.js → p-1df84690.entry.js} +1 -1
  231. package/lib/duet/{p-6204c166.entry.js → p-1df9e04d.entry.js} +1 -1
  232. package/lib/duet/{p-681066a6.entry.js → p-1e0269a9.entry.js} +1 -1
  233. package/lib/duet/p-1e27b8b3.system.entry.js +4 -0
  234. package/lib/duet/{p-cef7bf55.system.entry.js → p-20c58c8b.system.entry.js} +1 -1
  235. package/lib/duet/p-22e118f2.entry.js +4 -0
  236. package/lib/duet/{p-cc73e760.entry.js → p-23300bbc.entry.js} +1 -1
  237. package/lib/duet/{p-9f801169.system.entry.js → p-28257788.system.entry.js} +1 -1
  238. package/lib/duet/p-2c1c686d.entry.js +4 -0
  239. package/lib/duet/p-2efa4bb4.system.entry.js +4 -0
  240. package/lib/duet/{p-fe22e0d7.system.entry.js → p-313b153a.system.entry.js} +1 -1
  241. package/lib/duet/{p-88d2601b.system.entry.js → p-3147ad7d.system.entry.js} +1 -1
  242. package/lib/duet/{p-b12644af.entry.js → p-37d39983.entry.js} +1 -1
  243. package/lib/duet/{p-541569fa.system.entry.js → p-38524ca2.system.entry.js} +1 -1
  244. package/lib/duet/{p-d33f8eb3.system.entry.js → p-3ba892fc.system.entry.js} +1 -1
  245. package/lib/duet/{p-04801584.system.entry.js → p-426eb658.system.entry.js} +1 -1
  246. package/lib/duet/{p-91152973.system.entry.js → p-45ed2dcd.system.entry.js} +1 -1
  247. package/lib/duet/{p-74a01368.system.entry.js → p-4680e39d.system.entry.js} +1 -1
  248. package/lib/duet/{p-4223a51d.entry.js → p-4817aff7.entry.js} +1 -1
  249. package/lib/duet/{p-0319fb5c.system.entry.js → p-4989c194.system.entry.js} +1 -1
  250. package/lib/duet/{p-5cbd1a2f.system.entry.js → p-5021b17f.system.entry.js} +1 -1
  251. package/lib/duet/{p-5c3f2090.system.entry.js → p-54c11f40.system.entry.js} +1 -1
  252. package/lib/duet/{p-7c83378e.entry.js → p-5519f08b.entry.js} +1 -1
  253. package/lib/duet/p-56f86438.system.js +4 -0
  254. package/lib/duet/{p-93df49a3.entry.js → p-590f0cd4.entry.js} +1 -1
  255. package/lib/duet/{p-9331046d.system.entry.js → p-59a58ae9.system.entry.js} +1 -1
  256. package/lib/duet/p-5adfe2ac.system.entry.js +4 -0
  257. package/lib/duet/p-5db551e7.entry.js +4 -0
  258. package/lib/duet/{p-729caf5f.entry.js → p-6003ca10.entry.js} +1 -1
  259. package/lib/duet/{p-5322f804.system.js → p-601cc7ed.system.js} +1 -1
  260. package/lib/duet/{p-c91803e0.system.entry.js → p-613320e2.system.entry.js} +1 -1
  261. package/lib/duet/{p-c93c1f44.entry.js → p-613e6a9a.entry.js} +1 -1
  262. package/lib/duet/p-61a73f4c.system.entry.js +4 -0
  263. package/lib/duet/{p-6079ee23.system.entry.js → p-62523c5e.system.entry.js} +1 -1
  264. package/lib/duet/{p-f13d08c0.entry.js → p-6663ee53.entry.js} +1 -1
  265. package/lib/duet/{p-fff43d6a.system.entry.js → p-67e31104.system.entry.js} +1 -1
  266. package/lib/duet/{p-dd14cf90.entry.js → p-682c835a.entry.js} +1 -1
  267. package/lib/duet/{p-cc3c61dc.system.entry.js → p-68a49822.system.entry.js} +1 -1
  268. package/lib/duet/{p-b3912b20.system.entry.js → p-6be4b41a.system.entry.js} +1 -1
  269. package/lib/duet/{p-8cd7c88f.entry.js → p-6c8a4d6d.entry.js} +1 -1
  270. package/lib/duet/{p-d6544808.entry.js → p-6f22bbbe.entry.js} +1 -1
  271. package/lib/duet/{p-d018c67f.system.entry.js → p-7261288d.system.entry.js} +1 -1
  272. package/lib/duet/{p-3cc57c17.system.entry.js → p-742ad989.system.entry.js} +1 -1
  273. package/lib/duet/{p-40f0541a.entry.js → p-7629e252.entry.js} +1 -1
  274. package/lib/duet/{p-6859eb48.entry.js → p-7712404e.entry.js} +1 -1
  275. package/lib/duet/{p-56068b6e.system.entry.js → p-783b5f4b.system.entry.js} +1 -1
  276. package/lib/duet/{p-7c048219.system.entry.js → p-7b2c1d94.system.entry.js} +1 -1
  277. package/lib/duet/{p-ef49ea7a.system.entry.js → p-7c982e4b.system.entry.js} +1 -1
  278. package/lib/duet/{p-4e91709f.entry.js → p-81852379.entry.js} +1 -1
  279. package/lib/duet/{p-d45207dc.system.entry.js → p-81d37c17.system.entry.js} +1 -1
  280. package/lib/duet/{p-5025032d.entry.js → p-8654ea51.entry.js} +1 -1
  281. package/lib/duet/{p-750cd6e8.system.entry.js → p-8933bd6c.system.entry.js} +1 -1
  282. package/lib/duet/{p-49699ab5.entry.js → p-8a99c10b.entry.js} +1 -1
  283. package/lib/duet/{p-ef9acdfa.system.entry.js → p-8af2618e.system.entry.js} +1 -1
  284. package/lib/duet/{p-7ec74dc5.system.entry.js → p-8bf6bbdf.system.entry.js} +1 -1
  285. package/lib/duet/p-8c6d4c6b.system.entry.js +4 -0
  286. package/lib/duet/{p-5cf8d351.entry.js → p-8cb76b58.entry.js} +1 -1
  287. package/lib/duet/p-8cd0074b.entry.js +4 -0
  288. package/lib/duet/{p-54e01d20.system.entry.js → p-8cf5421a.system.entry.js} +1 -1
  289. package/lib/duet/{p-bfca68d4.system.entry.js → p-91636321.system.entry.js} +1 -1
  290. package/lib/duet/{p-409f8d79.entry.js → p-94618159.entry.js} +1 -1
  291. package/lib/duet/{p-d01e2749.entry.js → p-9569e6a7.entry.js} +1 -1
  292. package/lib/duet/{p-a2e41589.entry.js → p-9864dd9e.entry.js} +1 -1
  293. package/lib/duet/p-9903eb4f.system.entry.js +4 -0
  294. package/lib/duet/{p-9ed1420b.system.entry.js → p-9d12c99f.system.entry.js} +1 -1
  295. package/lib/duet/{p-f87f022d.entry.js → p-9e792bdc.entry.js} +1 -1
  296. package/lib/duet/{p-59e02635.entry.js → p-a454c2b7.entry.js} +1 -1
  297. package/lib/duet/{p-cd20b86d.system.entry.js → p-a633d2ad.system.entry.js} +1 -1
  298. package/lib/duet/{p-647a5d0b.entry.js → p-a69712cf.entry.js} +1 -1
  299. package/lib/duet/{p-53cfc823.entry.js → p-a7dec361.entry.js} +1 -1
  300. package/lib/duet/{p-ea776469.system.entry.js → p-a947aafd.system.entry.js} +2 -2
  301. package/lib/duet/p-a96a177f.entry.js +4 -0
  302. package/lib/duet/{p-8b781575.system.entry.js → p-a9b3ad66.system.entry.js} +1 -1
  303. package/lib/duet/p-aa4d9b23.entry.js +4 -0
  304. package/lib/duet/{p-75744914.system.entry.js → p-add7f641.system.entry.js} +1 -1
  305. package/lib/duet/{p-d0f1b22e.entry.js → p-ae9bbd6d.entry.js} +1 -1
  306. package/lib/duet/{p-06c0f45d.system.entry.js → p-b0e5927f.system.entry.js} +1 -1
  307. package/lib/duet/{p-9b59c742.system.entry.js → p-b2d2ab88.system.entry.js} +1 -1
  308. package/lib/duet/p-b6c553e1.system.entry.js +4 -0
  309. package/lib/duet/{p-6e1e4554.entry.js → p-b9e25d51.entry.js} +1 -1
  310. package/lib/duet/{p-b5e84bb7.system.entry.js → p-bc6be1c8.system.entry.js} +1 -1
  311. package/lib/duet/{p-0bb2bbba.system.entry.js → p-bdec8e3b.system.entry.js} +1 -1
  312. package/lib/duet/{p-b0686337.entry.js → p-be3f2b2d.entry.js} +1 -1
  313. package/lib/duet/p-c2b81607.entry.js +4 -0
  314. package/lib/duet/{p-297b81b5.entry.js → p-c466d748.entry.js} +1 -1
  315. package/lib/duet/{p-41032b22.system.entry.js → p-c5a51107.system.entry.js} +1 -1
  316. package/lib/duet/{p-b21921a2.entry.js → p-c791e6a4.entry.js} +1 -1
  317. package/lib/duet/{p-4fb33f49.entry.js → p-ca0a286e.entry.js} +1 -1
  318. package/lib/duet/{p-5557f8e7.entry.js → p-cc28ff9e.entry.js} +1 -1
  319. package/lib/duet/{p-83d444c7.system.entry.js → p-cdd084c6.system.entry.js} +1 -1
  320. package/lib/duet/{p-0a550c3f.entry.js → p-ce7ffc0e.entry.js} +1 -1
  321. package/lib/duet/{p-fad18444.entry.js → p-cedd3eb4.entry.js} +1 -1
  322. package/lib/duet/{p-d0de3b58.entry.js → p-cf2207c3.entry.js} +1 -1
  323. package/lib/duet/p-cf62ea4b.system.entry.js +4 -0
  324. package/lib/duet/{p-9e03d929.system.entry.js → p-d0bc8d40.system.entry.js} +1 -1
  325. package/lib/duet/{p-59587e86.system.js → p-d40c59fd.system.js} +1 -1
  326. package/lib/duet/{p-375ac11f.system.entry.js → p-daa2fb6c.system.entry.js} +1 -1
  327. package/lib/duet/{p-1a3ec0c1.entry.js → p-db5b5696.entry.js} +1 -1
  328. package/lib/duet/{p-5b0dda5a.system.entry.js → p-dce7becd.system.entry.js} +1 -1
  329. package/lib/duet/{p-7afe3a89.entry.js → p-dd167a8a.entry.js} +1 -1
  330. package/lib/duet/{p-05fc79b6.system.entry.js → p-e00149ea.system.entry.js} +1 -1
  331. package/lib/duet/{p-e9d09bf8.entry.js → p-e456ee37.entry.js} +1 -1
  332. package/lib/duet/{p-7600fd6b.system.entry.js → p-eb9681e7.system.entry.js} +1 -1
  333. package/lib/duet/{p-763f8c03.system.entry.js → p-ecbe9c68.system.entry.js} +1 -1
  334. package/lib/duet/p-ecce887f.entry.js +4 -0
  335. package/lib/duet/{p-c4ce0911.entry.js → p-ee21e6b2.entry.js} +1 -1
  336. package/lib/duet/{p-55fa5cf9.entry.js → p-f02dcba6.entry.js} +1 -1
  337. package/lib/duet/{p-cd8e8e77.entry.js → p-fdd7fa66.entry.js} +1 -1
  338. package/lib/duet/{p-cce44172.entry.js → p-fe1f5f17.entry.js} +1 -1
  339. package/lib/duet/p-ffa9c9da.system.entry.js +4 -0
  340. package/lib/esm/duet-action-button.entry.js +1 -1
  341. package/lib/esm/duet-alert.entry.js +1 -1
  342. package/lib/esm/duet-badge.entry.js +1 -1
  343. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  344. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  345. package/lib/esm/duet-button_2.entry.js +1 -1
  346. package/lib/esm/duet-caption_4.entry.js +1 -1
  347. package/lib/esm/duet-card.entry.js +1 -1
  348. package/lib/esm/duet-checkbox.entry.js +1 -1
  349. package/lib/esm/duet-choice_2.entry.js +2 -2
  350. package/lib/esm/duet-collapsible.entry.js +2 -2
  351. package/lib/esm/duet-combobox.entry.js +1 -1
  352. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  353. package/lib/esm/duet-date-picker.entry.js +2 -2
  354. package/lib/esm/duet-divider_2.entry.js +1 -1
  355. package/lib/esm/duet-editable-table_3.entry.js +1 -1
  356. package/lib/esm/duet-empty-state.entry.js +1 -1
  357. package/lib/esm/duet-fieldset.entry.js +1 -1
  358. package/lib/esm/duet-footer.entry.js +1 -1
  359. package/lib/esm/duet-grid_2.entry.js +1 -1
  360. package/lib/esm/duet-header_2.entry.js +1 -1
  361. package/lib/esm/duet-hero.entry.js +5 -4
  362. package/lib/esm/duet-icon.entry.js +1 -1
  363. package/lib/esm/duet-input_2.entry.js +3 -3
  364. package/lib/esm/duet-layout.entry.js +1 -1
  365. package/lib/esm/duet-list_2.entry.js +1 -1
  366. package/lib/esm/duet-menu-bar-button.entry.js +75 -0
  367. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +1 -1
  368. package/lib/esm/duet-menu-bar-dropdown.entry.js +1 -1
  369. package/lib/esm/duet-menu-bar-link.entry.js +2 -16
  370. package/lib/esm/duet-menu-bar.entry.js +2 -2
  371. package/lib/esm/duet-modal.entry.js +2 -2
  372. package/lib/esm/duet-multiselect.entry.js +1 -1
  373. package/lib/esm/duet-nav.entry.js +1 -1
  374. package/lib/esm/duet-notification_2.entry.js +1 -1
  375. package/lib/esm/duet-number-input.entry.js +1 -1
  376. package/lib/esm/duet-pagination_2.entry.js +8 -16
  377. package/lib/esm/duet-progress.entry.js +1 -1
  378. package/lib/esm/duet-radio_2.entry.js +1 -1
  379. package/lib/esm/duet-range-slider.entry.js +1 -1
  380. package/lib/esm/duet-scrollable_3.entry.js +1 -1
  381. package/lib/esm/duet-section-layout.entry.js +1 -1
  382. package/lib/esm/duet-select.entry.js +1 -1
  383. package/lib/esm/duet-slideout-lang.entry.js +2 -2
  384. package/lib/esm/duet-slideout-link.entry.js +5 -4
  385. package/lib/esm/duet-slideout-panel-dropdown.entry.js +6 -2
  386. package/lib/esm/duet-slideout-panel.entry.js +5 -4
  387. package/lib/esm/duet-slideout.entry.js +18 -7
  388. package/lib/esm/duet-step_2.entry.js +1 -1
  389. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +1 -1
  390. package/lib/esm/duet-submenu-bar-dropdown.entry.js +1 -1
  391. package/lib/esm/duet-submenu-bar-link.entry.js +1 -1
  392. package/lib/esm/duet-submenu-bar.entry.js +1 -1
  393. package/lib/esm/duet-textarea.entry.js +1 -1
  394. package/lib/esm/duet-toggle.entry.js +6 -3
  395. package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -1
  396. package/lib/esm/duet-toolbar-dropdown.entry.js +1 -1
  397. package/lib/esm/duet-toolbar-link.entry.js +1 -1
  398. package/lib/esm/duet-toolbar.entry.js +1 -1
  399. package/lib/esm/duet-tooltip.entry.js +1 -1
  400. package/lib/esm/duet-tray.entry.js +1 -1
  401. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  402. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  403. package/lib/esm/duet.js +2 -2
  404. package/lib/esm/{focus-utils-8479ac73.js → focus-utils-5c59278b.js} +1 -1
  405. package/lib/esm/{index-de01d1ef.js → index-1279f177.js} +1 -1
  406. package/lib/esm/loader.js +2 -2
  407. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  408. package/lib/esm-es5/duet-alert.entry.js +1 -1
  409. package/lib/esm-es5/duet-badge.entry.js +1 -1
  410. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  411. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  412. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  413. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  414. package/lib/esm-es5/duet-card.entry.js +1 -1
  415. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  416. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  417. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  418. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  419. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  420. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  421. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  422. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  423. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  424. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  425. package/lib/esm-es5/duet-footer.entry.js +1 -1
  426. package/lib/esm-es5/duet-grid_2.entry.js +2 -2
  427. package/lib/esm-es5/duet-header_2.entry.js +2 -2
  428. package/lib/esm-es5/duet-hero.entry.js +2 -2
  429. package/lib/esm-es5/duet-icon.entry.js +1 -1
  430. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  431. package/lib/esm-es5/duet-layout.entry.js +1 -1
  432. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  433. package/lib/esm-es5/duet-menu-bar-button.entry.js +4 -0
  434. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  435. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  436. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  437. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  438. package/lib/esm-es5/duet-modal.entry.js +1 -1
  439. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  440. package/lib/esm-es5/duet-nav.entry.js +1 -1
  441. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  442. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  443. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  444. package/lib/esm-es5/duet-progress.entry.js +1 -1
  445. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  446. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  447. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  448. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  449. package/lib/esm-es5/duet-select.entry.js +1 -1
  450. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  451. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  452. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  453. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  454. package/lib/esm-es5/duet-slideout.entry.js +2 -2
  455. package/lib/esm-es5/duet-step_2.entry.js +2 -2
  456. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  457. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  458. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  459. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  460. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  461. package/lib/esm-es5/duet-toggle.entry.js +2 -2
  462. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  463. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  464. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  465. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  466. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  467. package/lib/esm-es5/duet-tray.entry.js +1 -1
  468. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  469. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  470. package/lib/esm-es5/duet.js +1 -1
  471. package/lib/esm-es5/focus-utils-5c59278b.js +4 -0
  472. package/lib/esm-es5/{index-de01d1ef.js → index-1279f177.js} +1 -1
  473. package/lib/esm-es5/loader.js +1 -1
  474. package/lib/types/components/{duet-slideout-panel-link/duet-slideout-panel-link.d.ts → duet-menu-bar-button/duet-menu-bar-button.d.ts} +13 -9
  475. package/lib/types/components/duet-menu-bar-link/duet-menu-bar-link.d.ts +0 -1
  476. package/lib/types/components/duet-range-stepper/duet-range-stepper.d.ts +1 -0
  477. package/lib/types/components/duet-slideout/duet-slideout.d.ts +5 -1
  478. package/lib/types/components/duet-slideout-link/duet-slideout-link.d.ts +6 -1
  479. package/lib/types/components/duet-slideout-panel/duet-slideout-panel.d.ts +4 -0
  480. package/lib/types/components/duet-toggle/duet-toggle.d.ts +4 -0
  481. package/lib/types/components.d.ts +60 -92
  482. package/package.json +5 -5
  483. package/lib/cjs/duet-slideout-panel-dropdown-link.cjs.entry.js +0 -41
  484. package/lib/cjs/duet-slideout-panel-link.cjs.entry.js +0 -41
  485. package/lib/collection/components/duet-slideout-panel-dropdown-link/duet-slideout-panel-dropdown-link.css +0 -47
  486. package/lib/collection/components/duet-slideout-panel-dropdown-link/duet-slideout-panel-dropdown-link.js +0 -123
  487. package/lib/collection/components/duet-slideout-panel-link/duet-slideout-panel-link.js +0 -123
  488. package/lib/dist-custom-elements/duet-slideout-panel-dropdown-link.d.ts +0 -11
  489. package/lib/dist-custom-elements/duet-slideout-panel-dropdown-link.js +0 -66
  490. package/lib/dist-custom-elements/duet-slideout-panel-link.d.ts +0 -11
  491. package/lib/dist-custom-elements/duet-slideout-panel-link.js +0 -66
  492. package/lib/duet/p-05639128.entry.js +0 -4
  493. package/lib/duet/p-05c89399.entry.js +0 -4
  494. package/lib/duet/p-0957a669.entry.js +0 -4
  495. package/lib/duet/p-15d4debd.system.entry.js +0 -4
  496. package/lib/duet/p-1bdc640b.entry.js +0 -4
  497. package/lib/duet/p-3aa61be3.system.entry.js +0 -4
  498. package/lib/duet/p-40131e38.entry.js +0 -4
  499. package/lib/duet/p-4118eef3.system.entry.js +0 -4
  500. package/lib/duet/p-470820c2.system.entry.js +0 -4
  501. package/lib/duet/p-550e17bb.system.entry.js +0 -4
  502. package/lib/duet/p-6c239641.js +0 -4
  503. package/lib/duet/p-766ee6d4.system.entry.js +0 -4
  504. package/lib/duet/p-77307dc5.system.entry.js +0 -4
  505. package/lib/duet/p-9297f2df.entry.js +0 -4
  506. package/lib/duet/p-94607b74.system.entry.js +0 -4
  507. package/lib/duet/p-9955ebd7.entry.js +0 -4
  508. package/lib/duet/p-ac5e88b0.system.entry.js +0 -4
  509. package/lib/duet/p-c2c9a7f4.system.js +0 -4
  510. package/lib/duet/p-c35a5e18.entry.js +0 -4
  511. package/lib/duet/p-dd168953.system.entry.js +0 -4
  512. package/lib/duet/p-e45e8eab.entry.js +0 -4
  513. package/lib/duet/p-e4cf3f0a.system.entry.js +0 -4
  514. package/lib/duet/p-e578a9e1.system.entry.js +0 -4
  515. package/lib/duet/p-f7030f2b.entry.js +0 -4
  516. package/lib/esm/duet-slideout-panel-dropdown-link.entry.js +0 -37
  517. package/lib/esm/duet-slideout-panel-link.entry.js +0 -37
  518. package/lib/esm-es5/duet-slideout-panel-dropdown-link.entry.js +0 -4
  519. package/lib/esm-es5/duet-slideout-panel-link.entry.js +0 -4
  520. package/lib/esm-es5/focus-utils-8479ac73.js +0 -4
  521. package/lib/types/components/duet-slideout-panel-dropdown-link/duet-slideout-panel-dropdown-link.d.ts +0 -36
@@ -307,6 +307,26 @@ duet-caption:not(:last-of-type) {
307
307
  margin-right: -28px;
308
308
  }
309
309
 
310
+ .duet-label-has-tooltip {
311
+ display: inline-flex;
312
+ }
313
+ @media (min-width: 48em) {
314
+ .duet-label-has-tooltip {
315
+ display: inline;
316
+ }
317
+ }
318
+ .duet-label-has-tooltip::before {
319
+ display: block;
320
+ margin-top: 7px;
321
+ content: " ";
322
+ }
323
+
324
+ .duet-input-tooltip::after {
325
+ display: block;
326
+ height: 49px;
327
+ content: " ";
328
+ }
329
+
310
330
  .duet-input-help {
311
331
  display: block;
312
332
  font-family: "localtapiola-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
@@ -248,7 +248,7 @@ export class DuetInput {
248
248
  (this.type !== "text" && this.type !== "tel" && this.type !== "password" && this.type !== "time")),
249
249
  "has-error": !!this.error,
250
250
  "has-clear": this.clear,
251
- } }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, margin: this.isCaptionVisible ? "small" : "auto", id: this.labelId, for: identifier }, this.label), this.tooltip && (h("duet-tooltip", { direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), this.caption && (h("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { class: "duet-input-relative" }, this.placeholder && this.echoPlaceholder && (this.value || this.type === "time") && (h("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-input-placeholder", margin: "none", size: "small" }, this.placeholder)), h("input", Object.assign({ ref: input => (this.nativeInput = input), onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, type: this.type, class: {
251
+ } }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-label-has-tooltip": !!this.tooltip }, margin: this.isCaptionVisible ? "small" : "auto", id: this.labelId, for: identifier }, this.label), this.tooltip && (h("duet-tooltip", { class: "duet-input-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), this.caption && (h("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { class: "duet-input-relative" }, this.placeholder && this.echoPlaceholder && (this.value || this.type === "time") && (h("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-input-placeholder", margin: "none", size: "small" }, this.placeholder)), h("input", Object.assign({ ref: input => (this.nativeInput = input), onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, type: this.type, class: {
252
252
  "duet-input": true,
253
253
  disabled: this.disabled,
254
254
  "is-number": this.component === "number",
@@ -147,4 +147,26 @@
147
147
  }
148
148
  .duet-menu-bar.duet-theme-turva {
149
149
  background: white;
150
+ }
151
+
152
+ slot[name=center] {
153
+ font-size: 1rem;
154
+ font-weight: 600;
155
+ line-height: 1.25;
156
+ color: #00294d;
157
+ }
158
+ .duet-theme-turva slot[name=center] {
159
+ font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
160
+ color: #940925;
161
+ }
162
+
163
+ slot[name=right] {
164
+ font-size: 0.875rem;
165
+ font-weight: 400;
166
+ line-height: 1.25;
167
+ color: #004d80;
168
+ }
169
+ .duet-theme-turva slot[name=right] {
170
+ font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
171
+ color: #940925;
150
172
  }
@@ -20,28 +20,38 @@
20
20
  -moz-appearance: none;
21
21
  -webkit-appearance: none;
22
22
  appearance: none;
23
- width: 100%;
24
23
  height: 100%;
25
24
  }
26
25
 
27
- .duet-slideout-panel-link {
26
+ .duet-menu-bar-button {
28
27
  position: relative;
29
28
  display: flex;
30
- gap: 20px;
29
+ gap: 8px;
31
30
  align-items: center;
32
- justify-content: flex-start;
33
- width: 100%;
31
+ justify-content: center;
34
32
  height: 100%;
35
- padding: 8px 0;
33
+ padding: 0 12px;
36
34
  font-family: "localtapiola-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
37
- font-size: 1.25rem;
38
- font-weight: 800;
39
- line-height: 1.25;
40
- color: #00294d;
35
+ color: inherit;
41
36
  text-align: center;
42
37
  text-decoration: none;
38
+ cursor: pointer;
43
39
  }
44
- .duet-slideout-panel-link.duet-theme-turva {
45
- font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
46
- color: #940925;
40
+ @media (min-width: 62em) {
41
+ .duet-menu-bar-button {
42
+ padding: 0 20px;
43
+ }
44
+ }
45
+ @media (min-width: 64.0625em) {
46
+ .duet-menu-bar-button {
47
+ padding: 0 28px;
48
+ }
49
+ }
50
+ @media (min-width: 62em) {
51
+ .duet-menu-bar-button:hover {
52
+ color: #0077b3;
53
+ }
54
+ .duet-menu-bar-button:hover.duet-theme-turva {
55
+ color: #c60c30;
56
+ }
47
57
  }
@@ -0,0 +1,156 @@
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 DuetMenuBarButton {
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.icon = undefined;
22
+ }
23
+ /**
24
+ * Component lifecycle events.
25
+ */
26
+ componentWillLoad() {
27
+ inheritGlobalTheme(this);
28
+ }
29
+ connectedCallback() {
30
+ this.changeIconSize();
31
+ for (let i = 0; i < this.mql.length; i++) {
32
+ // addEventListener is not available in Stencil hydrate
33
+ if (this.mql[i].addEventListener) {
34
+ const bound = this.changeIconSize.bind(this);
35
+ this.mql[i].addEventListener("change", bound);
36
+ this.boundMqlFunctions[i] = bound;
37
+ }
38
+ }
39
+ }
40
+ disconnectedCallback() {
41
+ for (let i = 0; i < this.mql.length; i++) {
42
+ // removeEventListener is not available in Stencil hydrate
43
+ if (this.mql[i].removeEventListener) {
44
+ this.mql[i].removeEventListener("change", this.boundMqlFunctions[i]);
45
+ }
46
+ }
47
+ this.boundMqlFunctions = [];
48
+ }
49
+ /**
50
+ * Sets focus on underlying button element.
51
+ */
52
+ async setFocus(options) {
53
+ if (this.nativeButton) {
54
+ this.nativeButton.focus(options);
55
+ }
56
+ }
57
+ /**
58
+ * render() function
59
+ * Always the last one in the class.
60
+ */
61
+ render() {
62
+ return (h(Host, { onfocus: () => this.setFocus() }, h("button", { ref: button => (this.nativeButton = button), class: {
63
+ "duet-menu-bar-button": true,
64
+ "duet-theme-turva": this.theme === "turva",
65
+ } }, this.icon && h("duet-icon", { size: this.iconSize, name: this.icon, margin: "none" }), h("slot", null))));
66
+ }
67
+ static get is() { return "duet-menu-bar-button"; }
68
+ static get encapsulation() { return "shadow"; }
69
+ static get originalStyleUrls() {
70
+ return {
71
+ "$": ["duet-menu-bar-button.scss"]
72
+ };
73
+ }
74
+ static get styleUrls() {
75
+ return {
76
+ "$": ["duet-menu-bar-button.css"]
77
+ };
78
+ }
79
+ static get properties() {
80
+ return {
81
+ "theme": {
82
+ "type": "string",
83
+ "mutable": true,
84
+ "complexType": {
85
+ "original": "DuetTheme",
86
+ "resolved": "\"\" | \"default\" | \"turva\"",
87
+ "references": {
88
+ "DuetTheme": {
89
+ "location": "import",
90
+ "path": "../../common-types"
91
+ }
92
+ }
93
+ },
94
+ "required": false,
95
+ "optional": false,
96
+ "docs": {
97
+ "tags": [],
98
+ "text": "Theme."
99
+ },
100
+ "attribute": "theme",
101
+ "reflect": false,
102
+ "defaultValue": "\"\""
103
+ },
104
+ "icon": {
105
+ "type": "string",
106
+ "mutable": true,
107
+ "complexType": {
108
+ "original": "string",
109
+ "resolved": "string",
110
+ "references": {}
111
+ },
112
+ "required": false,
113
+ "optional": false,
114
+ "docs": {
115
+ "tags": [],
116
+ "text": "Icon"
117
+ },
118
+ "attribute": "icon",
119
+ "reflect": true,
120
+ "defaultValue": "undefined"
121
+ }
122
+ };
123
+ }
124
+ static get states() {
125
+ return {
126
+ "iconSize": {}
127
+ };
128
+ }
129
+ static get methods() {
130
+ return {
131
+ "setFocus": {
132
+ "complexType": {
133
+ "signature": "(options?: FocusOptions) => Promise<void>",
134
+ "parameters": [{
135
+ "tags": [],
136
+ "text": ""
137
+ }],
138
+ "references": {
139
+ "Promise": {
140
+ "location": "global"
141
+ },
142
+ "FocusOptions": {
143
+ "location": "global"
144
+ }
145
+ },
146
+ "return": "Promise<void>"
147
+ },
148
+ "docs": {
149
+ "text": "Sets focus on underlying button element.",
150
+ "tags": []
151
+ }
152
+ }
153
+ };
154
+ }
155
+ static get elementRef() { return "element"; }
156
+ }
@@ -32,6 +32,7 @@
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
+ color: inherit;
35
36
  text-align: center;
36
37
  text-decoration: none;
37
38
  }
@@ -48,9 +49,6 @@
48
49
  .duet-menu-bar-link.active {
49
50
  color: #0077b3;
50
51
  }
51
- .duet-theme-turva .duet-menu-bar-link.active {
52
- color: #c60c30;
53
- }
54
52
  .duet-menu-bar-link.active::after {
55
53
  position: absolute;
56
54
  top: auto;
@@ -71,42 +69,17 @@
71
69
  height: 2px;
72
70
  }
73
71
  }
74
- .duet-menu-bar-link--slot-center {
75
- font-size: 1rem;
76
- font-weight: 600;
77
- line-height: 1.25;
78
- color: #00294d;
79
- }
80
- .duet-menu-bar-link--slot-center.duet-theme-turva {
81
- font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
82
- color: #940925;
72
+ .duet-menu-bar-link.active.duet-theme-turva {
73
+ color: #c60c30;
83
74
  }
84
- .duet-menu-bar-link--slot-center.active.duet-theme-turva::after {
75
+ .duet-menu-bar-link.active.duet-theme-turva::after {
85
76
  background: #c60c30;
86
77
  }
87
78
  @media (min-width: 62em) {
88
- .duet-menu-bar-link--slot-center:hover {
89
- color: #0077b3;
90
- }
91
- .duet-menu-bar-link--slot-center:hover.duet-theme-turva {
92
- color: #c60c30;
93
- }
94
- }
95
- .duet-menu-bar-link--slot-right {
96
- font-size: 0.875rem;
97
- font-weight: 400;
98
- line-height: 1.25;
99
- color: #004d80;
100
- }
101
- .duet-menu-bar-link--slot-right.duet-theme-turva {
102
- font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
103
- color: #940925;
104
- }
105
- @media (min-width: 62em) {
106
- .duet-menu-bar-link--slot-right:hover {
79
+ .duet-menu-bar-link:hover {
107
80
  color: #0077b3;
108
81
  }
109
- .duet-menu-bar-link--slot-right:hover.duet-theme-turva {
82
+ .duet-menu-bar-link:hover.duet-theme-turva {
110
83
  color: #c60c30;
111
84
  }
112
85
  }
@@ -19,19 +19,6 @@ export class DuetMenuBarLink {
19
19
  this.iconSize = "small";
20
20
  }
21
21
  };
22
- this.getVariant = () => {
23
- const slot = this.element.parentElement.getAttribute("slot");
24
- switch (slot) {
25
- case "center":
26
- return "center";
27
- case "right":
28
- return "right";
29
- case "below":
30
- return "below";
31
- default:
32
- return "center";
33
- }
34
- };
35
22
  this.iconSize = "x-small";
36
23
  this.theme = "";
37
24
  this.active = false;
@@ -73,7 +60,6 @@ export class DuetMenuBarLink {
73
60
  "duet-menu-bar-link": true,
74
61
  "duet-theme-turva": this.theme === "turva",
75
62
  active: this.active,
76
- [`duet-menu-bar-link--slot-${this.getVariant()}`]: true,
77
63
  }, href: this.href }, this.icon && h("duet-icon", { size: this.iconSize, name: this.icon, margin: "none" }), h("slot", null))));
78
64
  }
79
65
  static get is() { return "duet-menu-bar-link"; }
@@ -70,11 +70,10 @@ export class DuetRangeStepper {
70
70
  }
71
71
  }
72
72
  handleStepClick(e) {
73
- const from = this.stepIndex * this.stepSize - this.stepSize;
74
73
  this.duetRangeStepUpdate.emit({
75
74
  originalEvent: e,
76
75
  component: "duet-range-stepper",
77
- from: from,
76
+ from: this.getFrom(),
78
77
  to: this.getTo(),
79
78
  index: this.stepIndex,
80
79
  });
@@ -94,23 +93,16 @@ export class DuetRangeStepper {
94
93
  this.stepIndex = Math.ceil(this.total / this.stepSize);
95
94
  }
96
95
  }
96
+ getFrom() {
97
+ return Math.floor((this.stepIndex - 1) * this.stepSize) + 1;
98
+ }
97
99
  getTo() {
98
- const to = this.stepIndex * this.stepSize;
99
- const result = to > this.total ? this.total : to;
100
- return result;
100
+ return Math.min(Math.floor(this.stepIndex * this.stepSize), this.total);
101
101
  }
102
102
  generateStepSize() {
103
- // this function uses this.stepIndex and this.range to generate a range of number like 1-100
104
- // this is used to generate the step size
105
- let start = Math.floor((this.stepIndex - 1) * this.stepSize);
106
- //easy fix for starting position
107
- if (start === 0) {
108
- start = 1;
109
- }
110
- const end = Math.floor(this.stepIndex * this.stepSize);
111
103
  return this.ariaLabels.x_of_y
112
- .replace("{0}", String(start))
113
- .replace("{1}", String(end))
104
+ .replace("{0}", String(this.getFrom()))
105
+ .replace("{1}", String(this.getTo()))
114
106
  .replace("{2}", String(this.total));
115
107
  }
116
108
  //handle a11y keyboard navigation events
@@ -23,54 +23,22 @@
23
23
  height: 100%;
24
24
  }
25
25
 
26
- :host slot::slotted(*) {
26
+ :host slot:not([name=toggle])::slotted(*) {
27
27
  position: relative;
28
28
  top: 0.5rem;
29
29
  opacity: 0;
30
30
  transition: top 0.3s ease-in, opacity 0.3s ease-in;
31
31
  }
32
32
 
33
- :host([open]) slot::slotted(*) {
33
+ :host([open]) slot:not([name=toggle])::slotted(*) {
34
34
  top: 0;
35
35
  opacity: 1;
36
36
  }
37
37
 
38
- .hamburger {
39
- position: relative;
40
- width: 24px;
41
- height: 24px;
42
- margin-top: 8px !important;
43
- pointer-events: none;
44
- transition: 0.4s ease-in-out;
45
- backface-visibility: hidden;
46
- }
47
- .hamburger .bar {
48
- position: absolute;
49
- left: 0;
50
- display: block;
51
- width: 100%;
52
- height: 2px;
53
- background: #00294d;
54
- border-radius: 20rem;
55
- }
56
- .duet-theme-turva .hamburger .bar {
57
- background: #171c3a;
58
- }
59
- .hamburger .bar:nth-child(1) {
60
- top: 0;
61
- }
62
- .hamburger .bar:nth-child(2), .hamburger .bar:nth-child(3) {
63
- top: 7px;
64
- }
65
- .hamburger .bar:nth-child(4) {
66
- top: 14px;
67
- }
68
-
69
38
  .duet-slideout {
70
39
  display: flex;
71
40
  align-items: center;
72
41
  height: 100%;
73
- padding: 0 8px;
74
42
  }
75
43
  .duet-slideout .dialog {
76
44
  position: fixed;
@@ -84,6 +52,14 @@
84
52
  background: white;
85
53
  box-shadow: 0 3px 6px 0 rgba(0, 41, 77, 0.1) inset;
86
54
  }
55
+ @media (min-width: 62em) {
56
+ .duet-slideout .dialog {
57
+ right: 0;
58
+ left: auto;
59
+ width: 500px;
60
+ transition: right 600ms ease;
61
+ }
62
+ }
87
63
  .duet-slideout .dialog .top {
88
64
  display: flex;
89
65
  align-items: center;
@@ -104,6 +80,12 @@
104
80
  .duet-slideout .dialog.hidden {
105
81
  visibility: hidden;
106
82
  }
83
+ @media (min-width: 62em) {
84
+ .duet-slideout .dialog.hidden {
85
+ right: -500px;
86
+ visibility: visible;
87
+ }
88
+ }
107
89
  .duet-slideout.duet-theme-turva button {
108
90
  font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
109
91
  color: #171c3a;
@@ -120,4 +102,15 @@
120
102
 
121
103
  ::slotted(*) {
122
104
  width: 100%;
105
+ }
106
+
107
+ slot {
108
+ color: #00294d;
109
+ }
110
+ .duet-theme-turva slot {
111
+ color: #940925;
112
+ }
113
+
114
+ slot[name=toggle] {
115
+ color: inherit;
123
116
  }
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { h, Host } from "@stencil/core";
4
+ import { Build, h, Host } from "@stencil/core";
5
5
  import { inheritGlobalTheme } from "../../common/themeable-component";
6
6
  import { FocusGuard } from "../../utils/focus-utils";
7
7
  export class DuetSlideout {
@@ -30,6 +30,7 @@ export class DuetSlideout {
30
30
  };
31
31
  this.theme = "";
32
32
  this.open = false;
33
+ this.icon = "";
33
34
  }
34
35
  /**
35
36
  * Toggles the slideout.
@@ -38,7 +39,7 @@ export class DuetSlideout {
38
39
  const event = new CustomEvent("toggle");
39
40
  this.toggleMenu(event);
40
41
  setTimeout(() => {
41
- this.openButton.focus();
42
+ this.closeButton.focus();
42
43
  }, 200);
43
44
  }
44
45
  /**
@@ -46,15 +47,31 @@ export class DuetSlideout {
46
47
  */
47
48
  componentWillLoad() {
48
49
  inheritGlobalTheme(this);
50
+ if (Build.isServer) {
51
+ const toggles = Array.from(this.element.children).filter(el => el.matches("[slot='toggle']"));
52
+ if (toggles.length > 0) {
53
+ this.openButton = toggles[0];
54
+ }
55
+ }
56
+ else {
57
+ this.openButton = this.element.querySelector(":scope > [slot='toggle']");
58
+ }
59
+ if (this.openButton) {
60
+ this.openButton.setAttribute("aria-haspopup", "dialog");
61
+ this.openButton.setAttribute("aria-expanded", "false");
62
+ this.openButton.addEventListener("click", e => {
63
+ e.preventDefault();
64
+ this.onClick(e);
65
+ });
66
+ this.openButton = this.openButton;
67
+ }
49
68
  }
50
69
  /**
51
70
  * render() function
52
71
  * Always the last one in the class.
53
72
  */
54
73
  render() {
55
- return (h(Host, null, h("div", { class: { "duet-slideout": true, "duet-theme-turva": this.theme === "turva" } }, h("button", { ref: element => (this.openButton = element), "aria-haspopup": "dialog", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
56
- active: this.open,
57
- }, onClick: this.onClick }, h("div", { class: "hamburger" }, h("span", { class: "bar" }), h("span", { class: "bar" }), h("span", { class: "bar" }), h("span", { class: "bar" }))), h("div", { tabindex: "-1", role: "dialog", id: "dialog", "aria-labelledby": "button", "aria-modal": "true", "aria-flowto": "menubar", class: {
74
+ return (h(Host, null, h("div", { class: { "duet-slideout": true, "duet-theme-turva": this.theme === "turva" } }, h("slot", { name: "toggle" }), h("div", { tabindex: "-1", role: "dialog", id: "dialog", "aria-labelledby": "button", "aria-modal": "true", "aria-flowto": "menubar", class: {
58
75
  dialog: true,
59
76
  hidden: !this.open,
60
77
  } }, h(FocusGuard, { moveFocusTo: this.closeButton }), h("div", { class: "top" }, h("button", { ref: element => (this.closeButton = element), "aria-haspopup": "dialog", "aria-controls": "dialog", "aria-expanded": this.open ? "true" : "false", type: "button", class: {
@@ -118,6 +135,29 @@ export class DuetSlideout {
118
135
  "attribute": "open",
119
136
  "reflect": true,
120
137
  "defaultValue": "false"
138
+ },
139
+ "icon": {
140
+ "type": "string",
141
+ "mutable": false,
142
+ "complexType": {
143
+ "original": "DuetIconName",
144
+ "resolved": "string",
145
+ "references": {
146
+ "DuetIconName": {
147
+ "location": "import",
148
+ "path": "../../common-types"
149
+ }
150
+ }
151
+ },
152
+ "required": false,
153
+ "optional": false,
154
+ "docs": {
155
+ "tags": [],
156
+ "text": "Icon name from Duet to display."
157
+ },
158
+ "attribute": "icon",
159
+ "reflect": false,
160
+ "defaultValue": "\"\""
121
161
  }
122
162
  };
123
163
  }
@@ -27,6 +27,7 @@
27
27
  gap: 20px;
28
28
  align-items: center;
29
29
  justify-content: flex-start;
30
+ width: min-content;
30
31
  }
31
32
 
32
33
  ::slotted(*) {
@@ -20,6 +20,7 @@
20
20
  -moz-appearance: none;
21
21
  -webkit-appearance: none;
22
22
  appearance: none;
23
+ width: 100%;
23
24
  height: 100%;
24
25
  }
25
26
 
@@ -33,14 +34,15 @@
33
34
  height: 100%;
34
35
  padding: 8px 0;
35
36
  font-family: "localtapiola-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
37
+ font-size: inherit;
38
+ font-weight: inherit;
36
39
  line-height: 1.25;
37
- color: #00294d;
38
- text-align: center;
40
+ color: inherit;
41
+ text-align: left;
39
42
  text-decoration: none;
40
43
  }
41
44
  .duet-slideout-link.duet-theme-turva {
42
45
  font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
43
- color: #940925;
44
46
  }
45
47
  .duet-slideout-link.active span {
46
48
  position: relative;
@@ -52,10 +54,10 @@
52
54
  left: 0;
53
55
  display: block;
54
56
  width: 100%;
55
- height: 2px;
57
+ height: var(--active-height, 2px);
56
58
  content: "";
57
59
  background: #0077b3;
58
- transform: translateY(2px);
60
+ transform: var(--active-translate-y, translateY(2px));
59
61
  }
60
62
  .duet-slideout-link.active.duet-theme-turva span::after {
61
63
  background: #c60c30;
@@ -65,8 +67,8 @@
65
67
  font-weight: 600;
66
68
  }
67
69
  .duet-slideout-link.small span::after {
68
- height: 1px;
69
- transform: translateY(1px);
70
+ --active-height: 1px;
71
+ --active-translate-y: 1px;
70
72
  }
71
73
  .duet-slideout-link.medium {
72
74
  font-size: 1.25rem;