@duetds/components 6.5.1 → 6.5.3

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 (500) hide show
  1. package/hydrate/index.js +128 -25
  2. package/lib/cjs/duet-action-button.cjs.entry.js +1 -1
  3. package/lib/cjs/duet-alert.cjs.entry.js +2 -2
  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 +3 -3
  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 +5 -3
  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 +1 -1
  24. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-input_2.cjs.entry.js +64 -7
  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 +13 -2
  29. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +1 -2
  30. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +3 -2
  31. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +1 -1
  32. package/lib/cjs/duet-menu-bar.cjs.entry.js +1 -1
  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 +1 -1
  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 +1 -1
  46. package/lib/cjs/duet-slideout-link.cjs.entry.js +6 -3
  47. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +1 -1
  48. package/lib/cjs/duet-slideout-panel.cjs.entry.js +2 -2
  49. package/lib/cjs/duet-slideout.cjs.entry.js +17 -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 +1 -1
  57. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +4 -2
  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-51b5276c.js → focus-utils-ed2dad1b.js} +1 -1
  67. package/lib/cjs/{index-64cbfac2.js → index-9ee8fef8.js} +1 -1
  68. package/lib/cjs/loader.cjs.js +2 -2
  69. package/lib/collection/components/duet-alert/duet-alert.css +1 -0
  70. package/lib/collection/components/duet-button/duet-button.css +25 -12
  71. package/lib/collection/components/duet-button/duet-button.js +2 -2
  72. package/lib/collection/components/duet-collapsible/duet-collapsible.css +6 -1
  73. package/lib/collection/components/duet-collapsible/duet-collapsible.js +7 -2
  74. package/lib/collection/components/duet-input/duet-input.css +66 -0
  75. package/lib/collection/components/duet-input/duet-input.js +71 -8
  76. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +203 -1
  77. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +19 -1
  78. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +0 -19
  79. package/lib/collection/components/duet-slideout/duet-slideout.css +41 -2
  80. package/lib/collection/components/duet-slideout/duet-slideout.js +18 -9
  81. package/lib/collection/components/duet-slideout-link/duet-slideout-link.css +12 -0
  82. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +58 -2
  83. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +38 -1
  84. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  85. package/lib/dist-custom-elements/duet-alert.js +1 -1
  86. package/lib/dist-custom-elements/duet-badge.js +1 -1
  87. package/lib/dist-custom-elements/duet-breadcrumb.js +2 -2
  88. package/lib/dist-custom-elements/duet-breadcrumbs.js +2 -2
  89. package/lib/dist-custom-elements/duet-button.js +1 -1
  90. package/lib/dist-custom-elements/duet-caption.js +1 -1
  91. package/lib/dist-custom-elements/duet-card.js +3 -3
  92. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  93. package/lib/dist-custom-elements/duet-choice-group.js +6 -6
  94. package/lib/dist-custom-elements/duet-choice.js +5 -5
  95. package/lib/dist-custom-elements/duet-collapsible.js +6 -4
  96. package/lib/dist-custom-elements/duet-combobox.js +2 -2
  97. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  98. package/lib/dist-custom-elements/duet-date-picker.js +25 -13
  99. package/lib/dist-custom-elements/duet-divider.js +1 -1
  100. package/lib/dist-custom-elements/duet-editable-table.js +1 -1
  101. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  102. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  103. package/lib/dist-custom-elements/duet-footer.js +4 -4
  104. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  105. package/lib/dist-custom-elements/duet-grid.js +1 -1
  106. package/lib/dist-custom-elements/duet-header.js +8 -8
  107. package/lib/dist-custom-elements/duet-heading.js +1 -1
  108. package/lib/dist-custom-elements/duet-hero.js +9 -9
  109. package/lib/dist-custom-elements/duet-icon.js +1 -1
  110. package/lib/dist-custom-elements/duet-input.js +1 -1
  111. package/lib/dist-custom-elements/duet-label.js +1 -1
  112. package/lib/dist-custom-elements/duet-layout.js +1 -1
  113. package/lib/dist-custom-elements/duet-link.js +1 -1
  114. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  115. package/lib/dist-custom-elements/duet-list.js +1 -1
  116. package/lib/dist-custom-elements/duet-logo.js +1 -1
  117. package/lib/dist-custom-elements/duet-menu-bar-button.js +25 -3
  118. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +3 -5
  119. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +5 -3
  120. package/lib/dist-custom-elements/duet-menu-bar-link.js +2 -2
  121. package/lib/dist-custom-elements/duet-menu-bar.js +2 -2
  122. package/lib/dist-custom-elements/duet-modal.js +7 -7
  123. package/lib/dist-custom-elements/duet-multiselect.js +8 -8
  124. package/lib/dist-custom-elements/duet-nav.js +1 -1
  125. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  126. package/lib/dist-custom-elements/duet-notification.js +2 -2
  127. package/lib/dist-custom-elements/duet-number-input.js +23 -11
  128. package/lib/dist-custom-elements/duet-pagination.js +7 -7
  129. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  130. package/lib/dist-custom-elements/duet-progress.js +1 -1
  131. package/lib/dist-custom-elements/duet-radio-group.js +6 -6
  132. package/lib/dist-custom-elements/duet-radio.js +1 -1
  133. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  134. package/lib/dist-custom-elements/duet-range-stepper.js +4 -4
  135. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  136. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  137. package/lib/dist-custom-elements/duet-select.js +1 -1
  138. package/lib/dist-custom-elements/duet-slideout-lang.js +3 -3
  139. package/lib/dist-custom-elements/duet-slideout-link.js +10 -4
  140. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  141. package/lib/dist-custom-elements/duet-slideout-panel.js +2 -2
  142. package/lib/dist-custom-elements/duet-slideout.js +17 -8
  143. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  144. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  145. package/lib/dist-custom-elements/duet-step.js +4 -4
  146. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  147. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +2 -2
  148. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +2 -2
  149. package/lib/dist-custom-elements/duet-submenu-bar-link.js +2 -2
  150. package/lib/dist-custom-elements/duet-submenu-bar.js +2 -2
  151. package/lib/dist-custom-elements/duet-tab-group.js +8 -8
  152. package/lib/dist-custom-elements/duet-tab.js +1 -1
  153. package/lib/dist-custom-elements/duet-table.js +1 -1
  154. package/lib/dist-custom-elements/duet-textarea.js +8 -8
  155. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  156. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +7 -3
  157. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +2 -2
  158. package/lib/dist-custom-elements/duet-toolbar-link.js +2 -2
  159. package/lib/dist-custom-elements/duet-toolbar.js +1 -1
  160. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  161. package/lib/dist-custom-elements/duet-tray.js +3 -3
  162. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  163. package/lib/dist-custom-elements/duet-upload.js +18 -18
  164. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  165. package/lib/dist-custom-elements/index.js +1 -1
  166. package/lib/dist-custom-elements/{p-e36e0709.js → p-018af97c.js} +1 -1
  167. package/lib/dist-custom-elements/{p-fe6b0ed3.js → p-0f583b14.js} +1 -1
  168. package/lib/dist-custom-elements/{p-1cfd49ee.js → p-12b2209e.js} +2 -2
  169. package/lib/dist-custom-elements/{p-c5a072f2.js → p-19f6ccfd.js} +2 -2
  170. package/lib/dist-custom-elements/p-1c1d12e6.js +265 -0
  171. package/lib/dist-custom-elements/{p-f04e8a3b.js → p-2799f459.js} +2 -2
  172. package/lib/dist-custom-elements/{p-0df84707.js → p-2973295e.js} +1 -1
  173. package/lib/dist-custom-elements/{p-f0803854.js → p-29ac3d37.js} +1 -1
  174. package/lib/dist-custom-elements/{p-688a047d.js → p-2cc693bd.js} +3 -3
  175. package/lib/dist-custom-elements/{p-6775ca86.js → p-3f4b8d49.js} +6 -6
  176. package/lib/dist-custom-elements/{p-21cfd55b.js → p-4385956a.js} +1 -1
  177. package/lib/dist-custom-elements/{p-cb5e8149.js → p-47157a1e.js} +1 -1
  178. package/lib/dist-custom-elements/{p-ef91ff76.js → p-51525197.js} +7 -7
  179. package/lib/dist-custom-elements/{p-aa118c82.js → p-637de545.js} +3 -3
  180. package/lib/dist-custom-elements/{p-1287c9f0.js → p-65ff709e.js} +3 -3
  181. package/lib/dist-custom-elements/{p-14c4ae63.js → p-6fc347ac.js} +1 -1
  182. package/lib/dist-custom-elements/{p-8ef57d6b.js → p-70525432.js} +2 -2
  183. package/lib/dist-custom-elements/{p-ea4a0707.js → p-a3118d10.js} +1 -1
  184. package/lib/dist-custom-elements/{p-19125b3a.js → p-a9df186e.js} +1 -1
  185. package/lib/dist-custom-elements/{p-012ce9cd.js → p-b1567b3c.js} +1 -1
  186. package/lib/dist-custom-elements/{p-59d01811.js → p-b33885be.js} +1 -1
  187. package/lib/dist-custom-elements/{p-84e4317d.js → p-c4833a6d.js} +2 -2
  188. package/lib/dist-custom-elements/{p-2cae1940.js → p-c58ed6c1.js} +1 -1
  189. package/lib/dist-custom-elements/{p-9c0459ca.js → p-c8062b13.js} +1 -1
  190. package/lib/dist-custom-elements/{p-a7fc05d9.js → p-e41dcc90.js} +1 -1
  191. package/lib/dist-custom-elements/{p-8ece8544.js → p-e9433706.js} +1 -1
  192. package/lib/dist-custom-elements/{p-0d44f43d.js → p-f0e97570.js} +1 -1
  193. package/lib/dist-custom-elements/{p-788c36f2.js → p-f51c6f0d.js} +6 -6
  194. package/lib/dist-custom-elements/{p-667f368c.js → p-fd3b1d69.js} +87 -16
  195. package/lib/dist-custom-elements/{p-a7331687.js → p-fdfff09b.js} +1 -1
  196. package/lib/dist-custom-elements/{p-dd54924c.js → p-ff814bad.js} +1 -1
  197. package/lib/duet/duet.esm.js +1 -1
  198. package/lib/duet/duet.js +1 -1
  199. package/lib/duet/{p-de635e2e.entry.js → p-006b7cf2.entry.js} +1 -1
  200. package/lib/duet/{p-e4eb67fa.system.entry.js → p-04103703.system.entry.js} +1 -1
  201. package/lib/duet/p-052545fb.system.entry.js +4 -0
  202. package/lib/duet/{p-401a0998.system.entry.js → p-055cffab.system.entry.js} +1 -1
  203. package/lib/duet/{p-03ee21a3.entry.js → p-05ff4ff2.entry.js} +1 -1
  204. package/lib/duet/{p-6cde8c43.entry.js → p-08cc78bf.entry.js} +1 -1
  205. package/lib/duet/{p-3f2d8fe4.entry.js → p-08f3c955.entry.js} +1 -1
  206. package/lib/duet/{p-b519684f.entry.js → p-09c3fee3.entry.js} +1 -1
  207. package/lib/duet/{p-362174cc.entry.js → p-0d24350f.entry.js} +1 -1
  208. package/lib/duet/{p-890aabd1.entry.js → p-0e4288ad.entry.js} +1 -1
  209. package/lib/duet/{p-f54e0616.entry.js → p-0eed7e9d.entry.js} +1 -1
  210. package/lib/duet/p-10525faa.system.entry.js +4 -0
  211. package/lib/duet/{p-1f745490.system.entry.js → p-107abf9a.system.entry.js} +1 -1
  212. package/lib/duet/p-111468b4.system.js +4 -0
  213. package/lib/duet/{p-b94a478a.system.entry.js → p-11c83814.system.entry.js} +1 -1
  214. package/lib/duet/{p-2deda672.system.entry.js → p-11eec0c4.system.entry.js} +1 -1
  215. package/lib/duet/{p-ba93a403.system.entry.js → p-12014f2b.system.entry.js} +1 -1
  216. package/lib/duet/{p-09be550b.system.entry.js → p-15910757.system.entry.js} +1 -1
  217. package/lib/duet/{p-e781e62c.entry.js → p-183db4fd.entry.js} +1 -1
  218. package/lib/duet/p-1ca17c3d.system.entry.js +4 -0
  219. package/lib/duet/{p-a3047a26.entry.js → p-1d3b7252.entry.js} +1 -1
  220. package/lib/duet/{p-44d2a1b5.entry.js → p-1d86c33e.entry.js} +1 -1
  221. package/lib/duet/{p-2b73dd59.system.entry.js → p-1f5b0f23.system.entry.js} +1 -1
  222. package/lib/duet/{p-2fdbd2c6.system.entry.js → p-1fcb57c4.system.entry.js} +1 -1
  223. package/lib/duet/{p-2cea3fdb.entry.js → p-20077ae5.entry.js} +1 -1
  224. package/lib/duet/{p-87f2c5d4.system.entry.js → p-24ec796f.system.entry.js} +1 -1
  225. package/lib/duet/{p-f9be45b3.entry.js → p-25f8b35d.entry.js} +1 -1
  226. package/lib/duet/{p-b8decc75.system.entry.js → p-285a5c7a.system.entry.js} +1 -1
  227. package/lib/duet/{p-3d4aa492.system.entry.js → p-29f2cb57.system.entry.js} +1 -1
  228. package/lib/duet/{p-5983d1b7.system.entry.js → p-2bea974a.system.entry.js} +1 -1
  229. package/lib/duet/{p-9884486c.entry.js → p-3179dcc4.entry.js} +1 -1
  230. package/lib/duet/p-35d9ede4.system.entry.js +4 -0
  231. package/lib/duet/{p-1d2a9cf6.system.entry.js → p-36ad1015.system.entry.js} +1 -1
  232. package/lib/duet/p-36e6b035.entry.js +4 -0
  233. package/lib/duet/{p-672dcefc.system.entry.js → p-3783db99.system.entry.js} +1 -1
  234. package/lib/duet/{p-48aa12e2.entry.js → p-3bfd250e.entry.js} +1 -1
  235. package/lib/duet/{p-a9f36246.entry.js → p-43abf083.entry.js} +1 -1
  236. package/lib/duet/{p-80c05a0f.entry.js → p-466341b7.entry.js} +1 -1
  237. package/lib/duet/{p-d6b7e4e9.entry.js → p-4a7c0c4f.entry.js} +1 -1
  238. package/lib/duet/{p-408a536f.entry.js → p-4aa4735d.entry.js} +1 -1
  239. package/lib/duet/{p-8e05ca49.system.entry.js → p-4bb8d188.system.entry.js} +1 -1
  240. package/lib/duet/{p-98c780ad.system.entry.js → p-4be58c8b.system.entry.js} +1 -1
  241. package/lib/duet/{p-7d54d6e1.entry.js → p-4faaf699.entry.js} +1 -1
  242. package/lib/duet/{p-823de698.system.entry.js → p-5058dcff.system.entry.js} +1 -1
  243. package/lib/duet/{p-a63f753e.system.js → p-51721695.system.js} +1 -1
  244. package/lib/duet/{p-17e21461.system.entry.js → p-51dae606.system.entry.js} +1 -1
  245. package/lib/duet/{p-ae39325e.entry.js → p-577f5a55.entry.js} +1 -1
  246. package/lib/duet/{p-781aa86e.system.entry.js → p-5831b7b3.system.entry.js} +1 -1
  247. package/lib/duet/{p-2afce187.entry.js → p-5b7cbc4d.entry.js} +1 -1
  248. package/lib/duet/{p-276895fe.entry.js → p-5c66df7c.entry.js} +1 -1
  249. package/lib/duet/{p-da31f5fc.entry.js → p-5e02b923.entry.js} +1 -1
  250. package/lib/duet/{p-97816dce.system.entry.js → p-5e110a00.system.entry.js} +1 -1
  251. package/lib/duet/{p-437083ed.system.entry.js → p-5ec490da.system.entry.js} +1 -1
  252. package/lib/duet/p-5fff98bf.entry.js +4 -0
  253. package/lib/duet/{p-fb74bd6a.system.entry.js → p-609cd028.system.entry.js} +1 -1
  254. package/lib/duet/{p-42e7aa32.entry.js → p-61fe36d3.entry.js} +1 -1
  255. package/lib/duet/{p-2e49d057.entry.js → p-6410c967.entry.js} +1 -1
  256. package/lib/duet/{p-593f2330.system.entry.js → p-68986f07.system.entry.js} +1 -1
  257. package/lib/duet/{p-6c5f600b.system.entry.js → p-6989d392.system.entry.js} +1 -1
  258. package/lib/duet/{p-ec91cdca.system.entry.js → p-69ab5590.system.entry.js} +1 -1
  259. package/lib/duet/p-6d3a3fd0.js +4 -0
  260. package/lib/duet/{p-5bfb6d98.entry.js → p-72bda1b3.entry.js} +1 -1
  261. package/lib/duet/{p-3937796f.system.entry.js → p-74a742c9.system.entry.js} +1 -1
  262. package/lib/duet/{p-7c4798b2.entry.js → p-79ff1a6a.entry.js} +1 -1
  263. package/lib/duet/{p-fd2c782d.system.entry.js → p-7e39a550.system.entry.js} +1 -1
  264. package/lib/duet/{p-1d08b9ed.entry.js → p-80ffbd1c.entry.js} +1 -1
  265. package/lib/duet/{p-9c7ecd2a.system.entry.js → p-8e69027d.system.entry.js} +1 -1
  266. package/lib/duet/{p-8f69d87b.entry.js → p-94f0387e.entry.js} +1 -1
  267. package/lib/duet/{p-942e7a28.entry.js → p-95a4082f.entry.js} +1 -1
  268. package/lib/duet/p-98ae2cb9.entry.js +4 -0
  269. package/lib/duet/{p-233e91ea.entry.js → p-9ad584d2.entry.js} +1 -1
  270. package/lib/duet/p-9b949b28.entry.js +4 -0
  271. package/lib/duet/p-9bc15874.entry.js +4 -0
  272. package/lib/duet/{p-4e3e91fd.system.entry.js → p-9cbc891f.system.entry.js} +1 -1
  273. package/lib/duet/{p-75c38aee.system.entry.js → p-a1dc9c9e.system.entry.js} +1 -1
  274. package/lib/duet/{p-6afd7b03.entry.js → p-a4054eae.entry.js} +1 -1
  275. package/lib/duet/{p-e7a8d51f.system.entry.js → p-a5a6751e.system.entry.js} +1 -1
  276. package/lib/duet/{p-4ce3c6a6.system.entry.js → p-a77d4c37.system.entry.js} +1 -1
  277. package/lib/duet/{p-2c67137b.system.js → p-a7ec9aa4.system.js} +1 -1
  278. package/lib/duet/{p-01fcb80e.system.js → p-a9ba6306.system.js} +1 -1
  279. package/lib/duet/{p-e68499ea.entry.js → p-aa9f3fc8.entry.js} +1 -1
  280. package/lib/duet/{p-0b415c31.entry.js → p-acf4057a.entry.js} +1 -1
  281. package/lib/duet/{p-91893eb4.system.entry.js → p-ae1e4397.system.entry.js} +1 -1
  282. package/lib/duet/{p-704eb099.entry.js → p-ae39acbe.entry.js} +1 -1
  283. package/lib/duet/{p-ac1eaf2d.entry.js → p-af8dbf72.entry.js} +1 -1
  284. package/lib/duet/{p-4c12d8ba.system.entry.js → p-b0428a5d.system.entry.js} +1 -1
  285. package/lib/duet/{p-77e3c513.system.entry.js → p-b0e1180e.system.entry.js} +1 -1
  286. package/lib/duet/{p-6cf7ebc2.entry.js → p-b20bff64.entry.js} +1 -1
  287. package/lib/duet/{p-4970d360.system.entry.js → p-b3f3bca8.system.entry.js} +1 -1
  288. package/lib/duet/{p-64d1cc95.entry.js → p-b4659570.entry.js} +1 -1
  289. package/lib/duet/p-b63f60f6.system.entry.js +4 -0
  290. package/lib/duet/{p-da71d66d.entry.js → p-b6753d6e.entry.js} +1 -1
  291. package/lib/duet/{p-40ac94f6.entry.js → p-b77e364d.entry.js} +1 -1
  292. package/lib/duet/{p-26d917a0.entry.js → p-bbc717af.entry.js} +1 -1
  293. package/lib/duet/{p-ab4e81ca.entry.js → p-bdbf8bca.entry.js} +1 -1
  294. package/lib/duet/{p-1ab5cbbc.entry.js → p-c0d2e97b.entry.js} +1 -1
  295. package/lib/duet/{p-5ce46c84.entry.js → p-c2f44fde.entry.js} +1 -1
  296. package/lib/duet/{p-6921cfa6.system.entry.js → p-c41c7735.system.entry.js} +2 -2
  297. package/lib/duet/p-c81e306c.system.entry.js +4 -0
  298. package/lib/duet/{p-d39cf5b1.entry.js → p-ca5373cf.entry.js} +1 -1
  299. package/lib/duet/p-cce6bb84.entry.js +4 -0
  300. package/lib/duet/{p-3e5839c6.entry.js → p-cd33c4cd.entry.js} +1 -1
  301. package/lib/duet/p-cd514cf6.system.entry.js +4 -0
  302. package/lib/duet/{p-99e33456.system.entry.js → p-ce35d050.system.entry.js} +1 -1
  303. package/lib/duet/{p-341a9eb0.system.entry.js → p-cfd2206f.system.entry.js} +1 -1
  304. package/lib/duet/{p-31e877bf.system.entry.js → p-d2ffedfa.system.entry.js} +1 -1
  305. package/lib/duet/{p-933256d2.system.entry.js → p-d3f8e957.system.entry.js} +1 -1
  306. package/lib/duet/{p-1c82d61e.entry.js → p-d57020ab.entry.js} +1 -1
  307. package/lib/duet/{p-054a2d07.system.entry.js → p-d76aa87f.system.entry.js} +1 -1
  308. package/lib/duet/p-d86cf803.entry.js +4 -0
  309. package/lib/duet/{p-ab11408b.js → p-d9859e96.js} +1 -1
  310. package/lib/duet/{p-f36dc895.entry.js → p-d9aa697b.entry.js} +1 -1
  311. package/lib/duet/p-dc1e280d.entry.js +4 -0
  312. package/lib/duet/{p-01b63777.system.entry.js → p-dc87c6ce.system.entry.js} +1 -1
  313. package/lib/duet/p-dcf65419.entry.js +4 -0
  314. package/lib/duet/{p-0590a8c0.system.entry.js → p-debdd0e0.system.entry.js} +1 -1
  315. package/lib/duet/{p-d30d6c41.system.entry.js → p-df40670a.system.entry.js} +1 -1
  316. package/lib/duet/{p-ec7699f0.system.entry.js → p-dfe588e8.system.entry.js} +1 -1
  317. package/lib/duet/p-e0c48a7d.entry.js +4 -0
  318. package/lib/duet/{p-9b4de80f.entry.js → p-e82cc5a7.entry.js} +1 -1
  319. package/lib/duet/{p-85658cea.system.entry.js → p-ea09c830.system.entry.js} +1 -1
  320. package/lib/duet/{p-e3165e41.entry.js → p-ebfb519a.entry.js} +1 -1
  321. package/lib/duet/{p-4b838a9c.system.entry.js → p-ecc8c5f4.system.entry.js} +1 -1
  322. package/lib/duet/p-edd23a3b.entry.js +4 -0
  323. package/lib/duet/{p-525687a7.system.entry.js → p-ee4e7bff.system.entry.js} +1 -1
  324. package/lib/duet/{p-54f35a79.js → p-f077c646.js} +1 -1
  325. package/lib/duet/{p-c1f14850.system.entry.js → p-f4b19481.system.entry.js} +1 -1
  326. package/lib/duet/{p-59d13b8d.system.entry.js → p-f58e2c75.system.entry.js} +1 -1
  327. package/lib/duet/{p-d15c8354.system.entry.js → p-f7cefa5d.system.entry.js} +1 -1
  328. package/lib/duet/{p-f6a3085c.system.entry.js → p-f888deb6.system.entry.js} +1 -1
  329. package/lib/duet/{p-4e37aedf.entry.js → p-f8bdcad4.entry.js} +1 -1
  330. package/lib/duet/{p-16911df0.system.entry.js → p-fc6de9c4.system.entry.js} +1 -1
  331. package/lib/duet/{p-66f2c12f.system.entry.js → p-feb0de52.system.entry.js} +1 -1
  332. package/lib/esm/duet-action-button.entry.js +2 -2
  333. package/lib/esm/duet-alert.entry.js +2 -2
  334. package/lib/esm/duet-badge.entry.js +1 -1
  335. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  336. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  337. package/lib/esm/duet-button_2.entry.js +3 -3
  338. package/lib/esm/duet-caption_4.entry.js +1 -1
  339. package/lib/esm/duet-card.entry.js +2 -2
  340. package/lib/esm/duet-checkbox.entry.js +1 -1
  341. package/lib/esm/duet-choice_2.entry.js +3 -3
  342. package/lib/esm/duet-collapsible.entry.js +6 -4
  343. package/lib/esm/duet-combobox.entry.js +2 -2
  344. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  345. package/lib/esm/duet-date-picker.entry.js +2 -2
  346. package/lib/esm/duet-divider_2.entry.js +1 -1
  347. package/lib/esm/duet-editable-table_3.entry.js +2 -2
  348. package/lib/esm/duet-empty-state.entry.js +1 -1
  349. package/lib/esm/duet-fieldset.entry.js +1 -1
  350. package/lib/esm/duet-footer.entry.js +1 -1
  351. package/lib/esm/duet-grid_2.entry.js +1 -1
  352. package/lib/esm/duet-header_2.entry.js +2 -2
  353. package/lib/esm/duet-hero.entry.js +1 -1
  354. package/lib/esm/duet-icon.entry.js +1 -1
  355. package/lib/esm/duet-input_2.entry.js +65 -8
  356. package/lib/esm/duet-layout.entry.js +1 -1
  357. package/lib/esm/duet-list_2.entry.js +1 -1
  358. package/lib/esm/duet-menu-bar-button.entry.js +13 -2
  359. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +1 -2
  360. package/lib/esm/duet-menu-bar-dropdown.entry.js +3 -2
  361. package/lib/esm/duet-menu-bar-link.entry.js +1 -1
  362. package/lib/esm/duet-menu-bar.entry.js +1 -1
  363. package/lib/esm/duet-modal.entry.js +3 -3
  364. package/lib/esm/duet-multiselect.entry.js +2 -2
  365. package/lib/esm/duet-nav.entry.js +1 -1
  366. package/lib/esm/duet-notification_2.entry.js +1 -1
  367. package/lib/esm/duet-number-input.entry.js +2 -2
  368. package/lib/esm/duet-pagination_2.entry.js +2 -2
  369. package/lib/esm/duet-progress.entry.js +1 -1
  370. package/lib/esm/duet-radio_2.entry.js +1 -1
  371. package/lib/esm/duet-range-slider.entry.js +1 -1
  372. package/lib/esm/duet-scrollable_3.entry.js +2 -2
  373. package/lib/esm/duet-section-layout.entry.js +1 -1
  374. package/lib/esm/duet-select.entry.js +1 -1
  375. package/lib/esm/duet-slideout-lang.entry.js +1 -1
  376. package/lib/esm/duet-slideout-link.entry.js +6 -3
  377. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  378. package/lib/esm/duet-slideout-panel.entry.js +2 -2
  379. package/lib/esm/duet-slideout.entry.js +17 -7
  380. package/lib/esm/duet-step_2.entry.js +2 -2
  381. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +1 -1
  382. package/lib/esm/duet-submenu-bar-dropdown.entry.js +1 -1
  383. package/lib/esm/duet-submenu-bar-link.entry.js +1 -1
  384. package/lib/esm/duet-submenu-bar.entry.js +1 -1
  385. package/lib/esm/duet-textarea.entry.js +1 -1
  386. package/lib/esm/duet-toggle.entry.js +1 -1
  387. package/lib/esm/duet-toolbar-dropdown-link.entry.js +4 -2
  388. package/lib/esm/duet-toolbar-dropdown.entry.js +1 -1
  389. package/lib/esm/duet-toolbar-link.entry.js +1 -1
  390. package/lib/esm/duet-toolbar.entry.js +1 -1
  391. package/lib/esm/duet-tooltip.entry.js +1 -1
  392. package/lib/esm/duet-tray.entry.js +1 -1
  393. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  394. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  395. package/lib/esm/duet.js +2 -2
  396. package/lib/esm/{focus-utils-f1a08e01.js → focus-utils-9717e725.js} +1 -1
  397. package/lib/esm/{index-bcdc5466.js → index-e394f675.js} +1 -1
  398. package/lib/esm/{keyboard-utils-88ea1007.js → keyboard-utils-d237bd5a.js} +1 -1
  399. package/lib/esm/loader.js +2 -2
  400. package/lib/esm-es5/duet-action-button.entry.js +2 -2
  401. package/lib/esm-es5/duet-alert.entry.js +1 -1
  402. package/lib/esm-es5/duet-badge.entry.js +1 -1
  403. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  404. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  405. package/lib/esm-es5/duet-button_2.entry.js +2 -2
  406. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  407. package/lib/esm-es5/duet-card.entry.js +1 -1
  408. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  409. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  410. package/lib/esm-es5/duet-collapsible.entry.js +2 -2
  411. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  412. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  413. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  414. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  415. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  416. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  417. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  418. package/lib/esm-es5/duet-footer.entry.js +1 -1
  419. package/lib/esm-es5/duet-grid_2.entry.js +2 -2
  420. package/lib/esm-es5/duet-header_2.entry.js +2 -2
  421. package/lib/esm-es5/duet-hero.entry.js +1 -1
  422. package/lib/esm-es5/duet-icon.entry.js +1 -1
  423. package/lib/esm-es5/duet-input_2.entry.js +2 -2
  424. package/lib/esm-es5/duet-layout.entry.js +1 -1
  425. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  426. package/lib/esm-es5/duet-menu-bar-button.entry.js +2 -2
  427. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  428. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  429. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  430. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  431. package/lib/esm-es5/duet-modal.entry.js +1 -1
  432. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  433. package/lib/esm-es5/duet-nav.entry.js +1 -1
  434. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  435. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  436. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  437. package/lib/esm-es5/duet-progress.entry.js +1 -1
  438. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  439. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  440. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  441. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  442. package/lib/esm-es5/duet-select.entry.js +1 -1
  443. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  444. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  445. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  446. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  447. package/lib/esm-es5/duet-slideout.entry.js +2 -2
  448. package/lib/esm-es5/duet-step_2.entry.js +2 -2
  449. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  450. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  451. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  452. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  453. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  454. package/lib/esm-es5/duet-toggle.entry.js +2 -2
  455. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  456. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  457. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  458. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  459. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  460. package/lib/esm-es5/duet-tray.entry.js +1 -1
  461. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  462. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  463. package/lib/esm-es5/duet.js +1 -1
  464. package/lib/esm-es5/focus-utils-9717e725.js +4 -0
  465. package/lib/esm-es5/{index-bcdc5466.js → index-e394f675.js} +1 -1
  466. package/lib/esm-es5/{keyboard-utils-88ea1007.js → keyboard-utils-d237bd5a.js} +1 -1
  467. package/lib/esm-es5/loader.js +1 -1
  468. package/lib/types/components/duet-button/duet-button.d.ts +1 -1
  469. package/lib/types/components/duet-collapsible/duet-collapsible.d.ts +2 -0
  470. package/lib/types/components/duet-input/duet-input.d.ts +23 -4
  471. package/lib/types/components/duet-menu-bar-button/duet-menu-bar-button.d.ts +51 -1
  472. package/lib/types/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.d.ts +6 -0
  473. package/lib/types/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.d.ts +0 -4
  474. package/lib/types/components/duet-slideout/duet-slideout.d.ts +4 -3
  475. package/lib/types/components/duet-slideout-link/duet-slideout-link.d.ts +15 -1
  476. package/lib/types/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.d.ts +10 -0
  477. package/lib/types/components.d.ts +144 -16
  478. package/package.json +5 -5
  479. package/lib/dist-custom-elements/p-45377b84.js +0 -265
  480. package/lib/duet/p-0112579c.entry.js +0 -4
  481. package/lib/duet/p-24cb9a5c.entry.js +0 -4
  482. package/lib/duet/p-2aed3283.system.entry.js +0 -4
  483. package/lib/duet/p-2b5f338b.entry.js +0 -4
  484. package/lib/duet/p-3211450e.entry.js +0 -4
  485. package/lib/duet/p-35bb4ee9.entry.js +0 -4
  486. package/lib/duet/p-37de9a2f.entry.js +0 -4
  487. package/lib/duet/p-3f375bef.entry.js +0 -4
  488. package/lib/duet/p-4ab49eb4.js +0 -4
  489. package/lib/duet/p-555192b0.system.entry.js +0 -4
  490. package/lib/duet/p-5feb0657.system.entry.js +0 -4
  491. package/lib/duet/p-64cca33a.entry.js +0 -4
  492. package/lib/duet/p-6ab272dd.system.entry.js +0 -4
  493. package/lib/duet/p-6d7d186f.entry.js +0 -4
  494. package/lib/duet/p-6e75fbd6.system.entry.js +0 -4
  495. package/lib/duet/p-7bd6683a.system.entry.js +0 -4
  496. package/lib/duet/p-9b4402ef.entry.js +0 -4
  497. package/lib/duet/p-c87eeeb5.system.js +0 -4
  498. package/lib/duet/p-e53e892f.system.entry.js +0 -4
  499. package/lib/duet/p-f3301cbc.entry.js +0 -4
  500. package/lib/esm-es5/focus-utils-f1a08e01.js +0 -4
@@ -8,10 +8,20 @@ export declare class DuetToolbarDropdownLink implements ThemeableComponent {
8
8
  * Reference to host HTML element.
9
9
  */
10
10
  element: HTMLElement;
11
+ /**
12
+ * Adds accessible label for the button that is only shown for screen readers.
13
+ * Typically, this label text replaces the visible text on the button for
14
+ * users who use assistive technology.
15
+ */
16
+ accessibleLabel: string;
11
17
  /**
12
18
  * Theme.
13
19
  */
14
20
  theme: DuetTheme;
21
+ /**
22
+ * Language of the link. Use this only for language selection links.
23
+ */
24
+ targetLanguage: "en" | "fi" | "sv";
15
25
  /**
16
26
  * Href
17
27
  */
@@ -1577,7 +1577,7 @@ export namespace Components {
1577
1577
  */
1578
1578
  "value": string;
1579
1579
  /**
1580
- * Variation of button.
1580
+ * Variation of button. Use "button" to render a button element next to the input. Use "revealable" to render a button that reveals the password.
1581
1581
  */
1582
1582
  "variation": DuetVariationType;
1583
1583
  }
@@ -1750,6 +1750,50 @@ export namespace Components {
1750
1750
  "theme": DuetTheme;
1751
1751
  }
1752
1752
  interface DuetMenuBarButton {
1753
+ /**
1754
+ * Indicates the id of a related component’s visually focused element.
1755
+ */
1756
+ "accessibleActiveDescendant": string;
1757
+ /**
1758
+ * Use this property to add an aria-controls attribute to the button. Use the attribute to point to the unique id of the content that the button manages.
1759
+ */
1760
+ "accessibleControls": string;
1761
+ /**
1762
+ * Indicates the id of a component that describes the button.
1763
+ */
1764
+ "accessibleDescribedBy": string;
1765
+ /**
1766
+ * Aria description the button
1767
+ */
1768
+ "accessibleDescription": string;
1769
+ /**
1770
+ * Details of the component
1771
+ */
1772
+ "accessibleDetails": string;
1773
+ /**
1774
+ * If a button expands or collapses adjacent content, then use the ariaExpanded prop to add the aria-expanded attribute to the button. Set the value to convey the current expanded (true) or collapsed (false) state of the content.
1775
+ */
1776
+ "accessibleExpanded": boolean;
1777
+ /**
1778
+ * Adds accessible label for the button that is only shown for screen readers. Typically, this label text replaces the visible text on the button for users who use assistive technology.
1779
+ */
1780
+ "accessibleLabel": string;
1781
+ /**
1782
+ * String of id's that indicate alternative labels elements
1783
+ */
1784
+ "accessibleLabelledBy": string;
1785
+ /**
1786
+ * Indicates the id of a component owned by the button.
1787
+ */
1788
+ "accessibleOwns": string;
1789
+ /**
1790
+ * Use this property to add an aria-haspopup attribute to a button, if you are using it as a menu button.
1791
+ */
1792
+ "accessiblePopup": string;
1793
+ /**
1794
+ * Tells screen reader the element is pressed.
1795
+ */
1796
+ "accessiblePressed": boolean;
1753
1797
  /**
1754
1798
  * Icon
1755
1799
  */
@@ -1764,6 +1808,10 @@ export namespace Components {
1764
1808
  "theme": DuetTheme;
1765
1809
  }
1766
1810
  interface DuetMenuBarDropdown {
1811
+ /**
1812
+ * Adds accessible label for the button that is only shown for screen readers. Typically, this label text replaces the visible text on the button for users who use assistive technology.
1813
+ */
1814
+ "accessibleLabel": string;
1767
1815
  /**
1768
1816
  * Icon
1769
1817
  */
@@ -1778,10 +1826,6 @@ export namespace Components {
1778
1826
  "theme": DuetTheme;
1779
1827
  }
1780
1828
  interface DuetMenuBarDropdownLink {
1781
- /**
1782
- * Caret
1783
- */
1784
- "caret": boolean;
1785
1829
  /**
1786
1830
  * Href
1787
1831
  */
@@ -2721,9 +2765,9 @@ export namespace Components {
2721
2765
  }
2722
2766
  interface DuetSlideout {
2723
2767
  /**
2724
- * Icon name from Duet to display.
2768
+ * Custom color to be used for a circular background, as a design token entered in camelCase or kebab-case..
2725
2769
  */
2726
- "icon": DuetIconName;
2770
+ "background": DuetColor;
2727
2771
  /**
2728
2772
  * Open
2729
2773
  */
@@ -2744,10 +2788,18 @@ export namespace Components {
2744
2788
  "theme": DuetTheme;
2745
2789
  }
2746
2790
  interface DuetSlideoutLink {
2791
+ /**
2792
+ * Adds accessible label for the button that is only shown for screen readers. Typically, this label text replaces the visible text on the button for users who use assistive technology.
2793
+ */
2794
+ "accessibleLabel": string;
2747
2795
  /**
2748
2796
  * Active
2749
2797
  */
2750
2798
  "active": boolean;
2799
+ /**
2800
+ * Caret
2801
+ */
2802
+ "caret": boolean;
2751
2803
  /**
2752
2804
  * Href
2753
2805
  */
@@ -2758,9 +2810,13 @@ export namespace Components {
2758
2810
  "icon": string;
2759
2811
  "menuItem": boolean;
2760
2812
  /**
2761
- * Size. Small, medium or large.
2813
+ * Size. Inherit, small, medium or large. Inherit value inherits styles from the value in the underlying slot.
2762
2814
  */
2763
2815
  "size": "inherit" | "small" | "medium" | "large";
2816
+ /**
2817
+ * Language of the link. Use this only for language selection links.
2818
+ */
2819
+ "targetLanguage": "en" | "fi" | "sv";
2764
2820
  /**
2765
2821
  * Theme.
2766
2822
  */
@@ -3280,6 +3336,10 @@ export namespace Components {
3280
3336
  "theme": DuetTheme;
3281
3337
  }
3282
3338
  interface DuetToolbarDropdownLink {
3339
+ /**
3340
+ * Adds accessible label for the button that is only shown for screen readers. Typically, this label text replaces the visible text on the button for users who use assistive technology.
3341
+ */
3342
+ "accessibleLabel": string;
3283
3343
  /**
3284
3344
  * Active
3285
3345
  */
@@ -3292,6 +3352,10 @@ export namespace Components {
3292
3352
  * Icon
3293
3353
  */
3294
3354
  "icon": string;
3355
+ /**
3356
+ * Language of the link. Use this only for language selection links.
3357
+ */
3358
+ "targetLanguage": "en" | "fi" | "sv";
3295
3359
  /**
3296
3360
  * Theme.
3297
3361
  */
@@ -5987,7 +6051,7 @@ declare namespace LocalJSX {
5987
6051
  */
5988
6052
  "value"?: string;
5989
6053
  /**
5990
- * Variation of button.
6054
+ * Variation of button. Use "button" to render a button element next to the input. Use "revealable" to render a button that reveals the password.
5991
6055
  */
5992
6056
  "variation"?: DuetVariationType;
5993
6057
  }
@@ -6152,6 +6216,50 @@ declare namespace LocalJSX {
6152
6216
  "theme"?: DuetTheme;
6153
6217
  }
6154
6218
  interface DuetMenuBarButton {
6219
+ /**
6220
+ * Indicates the id of a related component’s visually focused element.
6221
+ */
6222
+ "accessibleActiveDescendant"?: string;
6223
+ /**
6224
+ * Use this property to add an aria-controls attribute to the button. Use the attribute to point to the unique id of the content that the button manages.
6225
+ */
6226
+ "accessibleControls"?: string;
6227
+ /**
6228
+ * Indicates the id of a component that describes the button.
6229
+ */
6230
+ "accessibleDescribedBy"?: string;
6231
+ /**
6232
+ * Aria description the button
6233
+ */
6234
+ "accessibleDescription"?: string;
6235
+ /**
6236
+ * Details of the component
6237
+ */
6238
+ "accessibleDetails"?: string;
6239
+ /**
6240
+ * If a button expands or collapses adjacent content, then use the ariaExpanded prop to add the aria-expanded attribute to the button. Set the value to convey the current expanded (true) or collapsed (false) state of the content.
6241
+ */
6242
+ "accessibleExpanded"?: boolean;
6243
+ /**
6244
+ * Adds accessible label for the button that is only shown for screen readers. Typically, this label text replaces the visible text on the button for users who use assistive technology.
6245
+ */
6246
+ "accessibleLabel"?: string;
6247
+ /**
6248
+ * String of id's that indicate alternative labels elements
6249
+ */
6250
+ "accessibleLabelledBy"?: string;
6251
+ /**
6252
+ * Indicates the id of a component owned by the button.
6253
+ */
6254
+ "accessibleOwns"?: string;
6255
+ /**
6256
+ * Use this property to add an aria-haspopup attribute to a button, if you are using it as a menu button.
6257
+ */
6258
+ "accessiblePopup"?: string;
6259
+ /**
6260
+ * Tells screen reader the element is pressed.
6261
+ */
6262
+ "accessiblePressed"?: boolean;
6155
6263
  /**
6156
6264
  * Icon
6157
6265
  */
@@ -6162,6 +6270,10 @@ declare namespace LocalJSX {
6162
6270
  "theme"?: DuetTheme;
6163
6271
  }
6164
6272
  interface DuetMenuBarDropdown {
6273
+ /**
6274
+ * Adds accessible label for the button that is only shown for screen readers. Typically, this label text replaces the visible text on the button for users who use assistive technology.
6275
+ */
6276
+ "accessibleLabel"?: string;
6165
6277
  /**
6166
6278
  * Icon
6167
6279
  */
@@ -6176,10 +6288,6 @@ declare namespace LocalJSX {
6176
6288
  "theme"?: DuetTheme;
6177
6289
  }
6178
6290
  interface DuetMenuBarDropdownLink {
6179
- /**
6180
- * Caret
6181
- */
6182
- "caret"?: boolean;
6183
6291
  /**
6184
6292
  * Href
6185
6293
  */
@@ -7149,9 +7257,9 @@ declare namespace LocalJSX {
7149
7257
  }
7150
7258
  interface DuetSlideout {
7151
7259
  /**
7152
- * Icon name from Duet to display.
7260
+ * Custom color to be used for a circular background, as a design token entered in camelCase or kebab-case..
7153
7261
  */
7154
- "icon"?: DuetIconName;
7262
+ "background"?: DuetColor;
7155
7263
  /**
7156
7264
  * Event raised when the menu has been opened. You can prevent the default browser functionality by calling **event.detail.originalEvent.preventDefault()** inside your listener. Additionally, the passed data is available via **event.detail.data**.
7157
7265
  */
@@ -7172,10 +7280,18 @@ declare namespace LocalJSX {
7172
7280
  "theme"?: DuetTheme;
7173
7281
  }
7174
7282
  interface DuetSlideoutLink {
7283
+ /**
7284
+ * Adds accessible label for the button that is only shown for screen readers. Typically, this label text replaces the visible text on the button for users who use assistive technology.
7285
+ */
7286
+ "accessibleLabel"?: string;
7175
7287
  /**
7176
7288
  * Active
7177
7289
  */
7178
7290
  "active"?: boolean;
7291
+ /**
7292
+ * Caret
7293
+ */
7294
+ "caret"?: boolean;
7179
7295
  /**
7180
7296
  * Href
7181
7297
  */
@@ -7185,9 +7301,13 @@ declare namespace LocalJSX {
7185
7301
  */
7186
7302
  "icon"?: string;
7187
7303
  /**
7188
- * Size. Small, medium or large.
7304
+ * Size. Inherit, small, medium or large. Inherit value inherits styles from the value in the underlying slot.
7189
7305
  */
7190
7306
  "size"?: "inherit" | "small" | "medium" | "large";
7307
+ /**
7308
+ * Language of the link. Use this only for language selection links.
7309
+ */
7310
+ "targetLanguage"?: "en" | "fi" | "sv";
7191
7311
  /**
7192
7312
  * Theme.
7193
7313
  */
@@ -7718,6 +7838,10 @@ declare namespace LocalJSX {
7718
7838
  "theme"?: DuetTheme;
7719
7839
  }
7720
7840
  interface DuetToolbarDropdownLink {
7841
+ /**
7842
+ * Adds accessible label for the button that is only shown for screen readers. Typically, this label text replaces the visible text on the button for users who use assistive technology.
7843
+ */
7844
+ "accessibleLabel"?: string;
7721
7845
  /**
7722
7846
  * Active
7723
7847
  */
@@ -7730,6 +7854,10 @@ declare namespace LocalJSX {
7730
7854
  * Icon
7731
7855
  */
7732
7856
  "icon"?: string;
7857
+ /**
7858
+ * Language of the link. Use this only for language selection links.
7859
+ */
7860
+ "targetLanguage"?: "en" | "fi" | "sv";
7733
7861
  /**
7734
7862
  * Theme.
7735
7863
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duetds/components",
3
- "version": "6.5.1",
3
+ "version": "6.5.3",
4
4
  "description": "This package includes Duet Design System Web Components and related utilities.",
5
5
  "bugs": {
6
6
  "email": "duetdesignsystem@lahitapiola.fi"
@@ -50,9 +50,9 @@
50
50
  "body-scroll-lock": "3.1.5"
51
51
  },
52
52
  "devDependencies": {
53
- "@duetds/fonts": "2.0.29",
54
- "@duetds/icons": "3.0.29",
55
- "@duetds/tokens": "3.0.29",
53
+ "@duetds/fonts": "2.0.31",
54
+ "@duetds/icons": "3.0.31",
55
+ "@duetds/tokens": "3.0.31",
56
56
  "@koa/cors": "3.3.0",
57
57
  "@rollup/plugin-replace": "3.1.0",
58
58
  "@stencil/core": "2.19.3",
@@ -83,5 +83,5 @@
83
83
  "collection": "lib/collection/collection-manifest.json",
84
84
  "es2015": "lib/esm/index.js",
85
85
  "es2017": "lib/esm/index.js",
86
- "gitHead": "c6a6655cab03058d79bdcab76297f4e981f00b3f"
86
+ "gitHead": "0e50c6e2904f63d833c73093eedd72df8cf3d834"
87
87
  }
@@ -1,265 +0,0 @@
1
- /*!
2
- * Built with Duet Design System
3
- */
4
- import { p as proxyCustomElement, H, c as createEvent, h, b as Host } from './p-0df84707.js';
5
- import { i as inheritGlobalTheme } from './p-4ebf1618.js';
6
- import { D as DuetStringsExternalDefaults } from './p-76f00bd5.js';
7
- import { a as getLanguage, g as getLocaleString } from './p-ede854e1.js';
8
- import { g as getColorByName } from './p-535ce3ec.js';
9
- import { d as defineCustomElement$3 } from './p-dd54924c.js';
10
- import { d as defineCustomElement$2 } from './p-f0803854.js';
11
- import { d as defineCustomElement$1 } from './p-21cfd55b.js';
12
-
13
- const duetButtonCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}:host:last-child,:host:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host{width:100%}}:host(.input-button){z-index:250}:host(.duet-small){margin-right:2px !important;margin-bottom:8px !important}:host(.duet-small):last-child,:host(.duet-small):last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host(.duet-small){width:auto}}:host(.duet-expand){width:100% !important}:host(.duet-m-0){margin:0 !important}:host(.duet-fixed){width:auto !important}:host(:last-child){margin-right:0 !important}.duet-button-container{position:relative;width:100%}.duet-button{padding:14px 27px 15px !important;-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#0077b3 !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:2px;border-radius:20rem;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, box-shadow 300ms ease}.duet-button.duet-p-0{padding:0 !important}.duet-button.duet-m-0{margin:0 !important}.duet-button:not(.input-button-primary,.input-button-secondary){font-variant-numeric:tabular-nums}.duet-button.duet-button-text-center{text-align:center !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only){padding:9px 19px 10px !important;min-width:5.3333333333rem;font-size:0.875rem}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon{padding-left:48px !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}.duet-theme-turva .duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30 !important}.duet-button .duet-button-contents{position:relative;display:inline-block;margin:0 auto;pointer-events:none}.duet-button.duet-no-wrap{white-space:nowrap}.duet-button.icon{padding-left:52px !important}.duet-button.icon-right{padding-right:52px !important;padding-left:28px !important}.duet-button svg{width:100%;min-width:100%;fill:currentColor}.duet-button .duet-button-icon{position:absolute;top:50%;left:-28px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 !important;transform:translateY(-50%)}.duet-button .duet-button-icon duet-icon{width:16px;height:16px}.duet-button .duet-button-icon.right{right:-28px;left:auto}.duet-button .duet-button-icon.large{left:-32px;width:20px;height:20px}.duet-button .duet-button-icon.large duet-icon{width:20px;height:20px}.duet-button .duet-button-icon.large.right{right:-32px;left:auto}.duet-button .duet-button-icon.medium-small{left:-16px;width:10px;height:10px;padding-top:1px}.duet-button .duet-button-icon.medium-small duet-icon{width:10px;height:10px}.duet-button .duet-button-icon.medium-small.right{right:-16px;left:auto}.duet-button .duet-button-icon.small{left:-16px;width:7px;height:7px}.duet-button .duet-button-icon.small duet-icon{width:7px;height:7px}.duet-button .duet-button-icon.small.right{right:-16px;left:auto}.duet-button:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-button:active:not([disabled]){opacity:0.75;transition:none}.duet-button.default{border-color:#e1e3e6}.duet-theme-turva .duet-button.default{color:#c60c30 !important;border-color:#e4e4e6}.duet-button.default:hover{border-color:#0077b3}.duet-theme-turva .duet-button.default:hover{border-color:#c60c30}.duet-button.default.duet-button-negative{background-color:white}.duet-theme-turva .duet-button.default.duet-button-negative{background-color:#e4e4e6 !important}.duet-button.default.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.default.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.primary,.duet-button.input-button-primary{color:white !important;background:#0077b3;border-color:#0077b3}.duet-theme-turva .duet-button.primary,.duet-theme-turva .duet-button.input-button-primary{color:white !important;background:#c60c30;border-color:#c60c30}.duet-button.primary:hover,.duet-button.input-button-primary:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.primary:hover,.duet-theme-turva .duet-button.input-button-primary:hover{background:#940925;border-color:#940925}.duet-button.primary:focus,.duet-button.input-button-primary:focus{outline:0;box-shadow:0 0 0 1px white, 0 0 0 4px rgba(0, 119, 179, 0.75)}.duet-theme-turva .duet-button.primary:focus,.duet-theme-turva .duet-button.input-button-primary:focus{box-shadow:0 0 0 1px white, 0 0 0 4px rgba(23, 28, 58, 0.7)}.duet-button.secondary,.duet-button.input-button-secondary{color:#00294d !important;background:transparent;border-color:#00294d}.duet-theme-turva .duet-button.secondary,.duet-theme-turva .duet-button.input-button-secondary{color:#171c3a !important;border-color:#171c3a}.duet-button.secondary:hover,.duet-button.input-button-secondary:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary:hover,.duet-theme-turva .duet-button.input-button-secondary:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.secondary.duet-button-negative,.duet-button.input-button-secondary.duet-button-negative{color:#e1e3e6 !important;border-color:white}.duet-theme-turva .duet-button.secondary.duet-button-negative,.duet-theme-turva .duet-button.input-button-secondary.duet-button-negative{color:#e4e4e6 !important}.duet-button.secondary.duet-button-negative:hover,.duet-button.input-button-secondary.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary.duet-button-negative:hover,.duet-theme-turva .duet-button.input-button-secondary.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.negative{color:#00294d !important;background:white;border-color:white}.duet-theme-turva .duet-button.negative{color:#171c3a !important}.duet-button.negative:hover{color:white !important;background:transparent;border-color:white}.duet-button.negative:focus{outline:0;box-shadow:0 0 0 1px #00294d, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-theme-turva .duet-button.negative:focus{box-shadow:0 0 0 1px #171c3a, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-button.destructive-primary{color:white !important;background:#de2362;border-color:#de2362}.duet-theme-turva .duet-button.destructive-primary{color:white !important;background:#e02a0d;border-color:#e02a0d}.duet-button.destructive-primary:hover{background:#b21c4e;border-color:#b21c4e;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.destructive-primary:hover{background:#b3220a}.duet-button.destructive,.duet-button.destructive-secondary{color:#de2362 !important;background:white;border-color:#de2362}.duet-theme-turva .duet-button.destructive,.duet-theme-turva .duet-button.destructive-secondary{color:#e02a0d !important;background:white;border-color:#e02a0d}.duet-button.destructive:hover,.duet-button.destructive-secondary:hover{color:white !important;background:#b21c4e;border-color:#b21c4e}.duet-theme-turva .duet-button.destructive:hover,.duet-theme-turva .duet-button.destructive-secondary:hover{color:white !important;background:#b3220a;border-color:#b3220a}.duet-button.plain{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}.duet-theme-turva .duet-button.plain{color:#c60c30 !important;background:transparent;border-color:transparent}.duet-button.plain.icon{padding-left:20px !important}.duet-button.plain.icon.icon-right{padding-right:20px !important;padding-left:0 !important}.duet-button.plain.icon.medium{padding-left:24px !important}.duet-button.plain.icon.medium.icon-right{padding-right:24px !important;padding-left:0 !important}.duet-button.plain.icon.large{padding-left:30px !important}.duet-button.plain.icon.large.icon-right{padding-right:30px !important;padding-left:0 !important}.duet-button.plain .duet-button-icon.left{left:-16.6666666667px !important}.duet-button.plain .duet-button-icon.left.medium{left:-24px !important}.duet-button.plain .duet-button-icon.left.large{left:-30px !important}.duet-button.plain .duet-button-icon.right{right:-16.6666666667px !important}.duet-button.plain .duet-button-icon.right.medium{right:-24px !important}.duet-button.plain .duet-button-icon.right.large{right:-30px !important}.duet-button.plain[disabled]{color:#657787 !important;cursor:not-allowed;background:transparent !important;border-color:transparent !important}.duet-theme-turva .duet-button.plain[disabled]{color:transparent !important;cursor:not-allowed;background:transparent !important;border-color:#e4e4e6 !important}.duet-button.plain:hover{color:#004d80 !important;background:transparent !important}.duet-theme-turva .duet-button.plain:hover{color:#940925 !important}.duet-button.plain.duet-button-negative{color:white !important}.duet-theme-turva .duet-button.plain.duet-button-negative{color:#e4e4e6 !important}.duet-button.plain.duet-button-negative:hover{color:#0077b3 !important}.duet-theme-turva .duet-button.plain.duet-button-negative:hover{color:#c60c30 !important}.duet-button.duet-button-icon-only{min-width:48px;min-height:48px;padding:0 !important}.duet-button.duet-button-icon-only .duet-button-contents{position:static}.duet-button.duet-button-icon-only .duet-button-icon.left.large,.duet-button.duet-button-icon-only .duet-button-icon.left.medium,.duet-button.duet-button-icon-only .duet-button-icon.left.small{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}.duet-button.duet-button.input-button-primary,.duet-button.duet-button.input-button-secondary{box-sizing:content-box;min-width:48px;min-height:48px;padding:0 !important;border-width:1px;border-top-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:0}.duet-button.duet-button.input-button-primary .duet-button-contents,.duet-button.duet-button.input-button-secondary .duet-button-contents{position:static}.duet-button.duet-button.input-button-primary .duet-button-icon.left.large,.duet-button.duet-button.input-button-primary .duet-button-icon.left.medium,.duet-button.duet-button.input-button-primary .duet-button-icon.left.small,.duet-button.duet-button.input-button-secondary .duet-button-icon.left.large,.duet-button.duet-button.input-button-secondary .duet-button-icon.left.medium,.duet-button.duet-button.input-button-secondary .duet-button-icon.left.small{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}.duet-button[disabled],.duet-button[disabled]:hover,.duet-button.duet-button-negative[disabled],.duet-button.duet-button-negative[disabled]:hover{color:#657787 !important;cursor:not-allowed;background:#e1e3e6 !important;border-color:#e1e3e6 !important;box-shadow:none !important}.duet-theme-turva .duet-button[disabled],.duet-theme-turva .duet-button[disabled]:hover,.duet-theme-turva .duet-button.duet-button-negative [disabled],.duet-theme-turva .duet-button.duet-button-negative [disabled]:hover{color:#747475 !important;cursor:not-allowed;background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-button-is-loading.primary,.duet-button-is-loading.input-button-primary{color:white}.duet-button-is-loading.default{color:#0077b3}.duet-button-is-loading.default.duet-theme-turva{color:#c60c30}.duet-button-is-loading .duet-button-contents{visibility:hidden;opacity:0}";
14
-
15
- const DuetButton = /*@__PURE__*/ proxyCustomElement(class extends H {
16
- constructor() {
17
- super();
18
- this.__registerHost();
19
- this.__attachShadow();
20
- this.duetFocus = createEvent(this, "duetFocus", 7);
21
- this.duetBlur = createEvent(this, "duetBlur", 7);
22
- /**
23
- * Component event handling.
24
- */
25
- this.handleClick = (ev) => {
26
- // If this button wants to specifically submit a form
27
- // climb up the dom to see if we're in a <form>
28
- // and if so, then use JS to submit it.
29
- // To understand better, see: https://www.hjorthhansen.dev/shadow-dom-form-participation/
30
- if (!this.url && this.element.closest("form")) {
31
- ev.preventDefault();
32
- this.proxyButton.click();
33
- }
34
- };
35
- this.onFocus = () => {
36
- this.duetFocus.emit();
37
- };
38
- this.onBlur = () => {
39
- this.duetBlur.emit();
40
- };
41
- this.accessibleLabel = undefined;
42
- this.accessibleControls = undefined;
43
- this.accessiblePopup = "false";
44
- this.accessibleActiveDescendant = undefined;
45
- this.accessibleOwns = undefined;
46
- this.accessibleDescribedBy = undefined;
47
- this.accessibleDetails = undefined;
48
- this.accessibleLabelledBy = undefined;
49
- this.accessibleDescription = undefined;
50
- this.accessibleExpanded = undefined;
51
- this.accessiblePressed = undefined;
52
- this.loading = false;
53
- this.variation = "default";
54
- this.negative = false;
55
- this.theme = "";
56
- this.margin = "auto";
57
- this.padding = "auto";
58
- this.centerText = false;
59
- this.wrapping = "auto";
60
- this.expand = false;
61
- this.fixed = false;
62
- this.disabled = false;
63
- this.name = undefined;
64
- this.value = undefined;
65
- this.identifier = undefined;
66
- this.submit = false;
67
- this.external = false;
68
- this.language = getLanguage();
69
- this.accessibleLabelExternalDefaults = DuetStringsExternalDefaults;
70
- this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults);
71
- this.icon = "";
72
- this.color = "";
73
- this.iconRight = false;
74
- this.iconSize = "medium";
75
- this.size = "medium";
76
- this.iconOnly = false;
77
- this.url = undefined;
78
- }
79
- /**
80
- * Component lifecycle events.
81
- */
82
- componentWillLoad() {
83
- inheritGlobalTheme(this);
84
- if (this.url && this.external && this.icon) {
85
- console.warn("[DUET]: Button used as an external link will override any icon that is set");
86
- }
87
- }
88
- connectedCallback() {
89
- this.proxyButton = document.createElement("button");
90
- this.proxyButton.style.display = "none";
91
- this.syncToProxyButton();
92
- if (!this.url && this.element.closest("form")) {
93
- this.element.insertAdjacentElement("beforebegin", this.proxyButton);
94
- }
95
- }
96
- disconnectedCallback() {
97
- this.proxyButton.remove();
98
- this.proxyButton = null;
99
- }
100
- syncToProxyButton() {
101
- this.proxyButton.type = this.getButtonType();
102
- this.proxyButton.disabled = this.disabled;
103
- // attributes should be removed in cases where name/value is not set
104
- if (this.name != null) {
105
- this.proxyButton.name = this.name;
106
- }
107
- else {
108
- this.proxyButton.removeAttribute("name");
109
- }
110
- if (this.value != null) {
111
- this.proxyButton.value = this.value;
112
- }
113
- else {
114
- this.proxyButton.removeAttribute("value");
115
- }
116
- }
117
- getButtonType() {
118
- return this.submit ? "submit" : "button";
119
- }
120
- /**
121
- * Sets focus on the specified `duet-button`. Use this method instead of the global
122
- * `button.focus()`.
123
- */
124
- async setFocus(options) {
125
- if (this.nativeButton) {
126
- this.nativeButton.focus(options);
127
- }
128
- }
129
- /**
130
- * render() function.
131
- * Always the last one in the class.
132
- */
133
- render() {
134
- const isExternalLink = this.external && this.url;
135
- // enforce consistency for external links
136
- const icon = isExternalLink ? "action-new-window" : this.icon;
137
- const iconRight = isExternalLink ? true : this.iconRight;
138
- const commonChildren = (h("span", { class: "duet-button-contents", style: { color: getColorByName(this.color) } }, icon && (h("div", { "aria-hidden": "true", class: {
139
- "duet-button-icon": true,
140
- left: !iconRight,
141
- right: iconRight,
142
- [this.iconSize]: true,
143
- } }, h("duet-icon", { size: "auto", margin: "none", name: icon, color: "currentColor" }))), h("slot", null)));
144
- const commonProps = {
145
- onFocus: this.onFocus,
146
- onBlur: this.onBlur,
147
- ref: button => (this.nativeButton = button),
148
- id: this.identifier,
149
- class: {
150
- "duet-m-0": this.margin === "none",
151
- "duet-p-0": this.padding === "none",
152
- "duet-no-wrap": this.wrapping === "none",
153
- "duet-button": true,
154
- "duet-button-is-small": this.size === "small",
155
- "duet-button-icon-only": this.iconOnly,
156
- "duet-button-text-center": this.centerText,
157
- "duet-button-negative": this.negative || this.variation === "negative",
158
- [this.variation]: true,
159
- disabled: this.disabled,
160
- icon: !!icon,
161
- "icon-right": iconRight,
162
- [this.iconSize]: true,
163
- },
164
- "aria-controls": this.accessibleControls,
165
- "aria-label": this.accessibleLabel,
166
- "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined,
167
- "aria-activedescendant": this.accessibleActiveDescendant,
168
- "aria-owns": this.accessibleOwns,
169
- "aria-describedby": this.accessibleDescribedBy,
170
- "aria-labelledby": this.accessibleLabelledBy,
171
- "aria-details": this.accessibleDetails,
172
- "aria-description": this.accessibleDescription,
173
- };
174
- return (h(Host, { onClick: this.handleClick, class: {
175
- "duet-m-0": this.margin === "none",
176
- "duet-small": this.size === "small",
177
- "duet-fixed": this.fixed,
178
- "duet-expand": this.expand,
179
- "input-button": this.variation === "input-button-primary" || this.variation === "input-button-secondary",
180
- } }, h("div", { class: {
181
- "duet-button-container": true,
182
- "duet-button-is-loading": this.loading,
183
- "duet-theme-turva": this.theme === "turva",
184
- "duet-button-negative": this.negative || this.variation === "negative",
185
- [this.variation]: true,
186
- } }, this.url ? (h("a", Object.assign({}, commonProps, { href: this.url, target: this.external ? "_blank" : "_self", rel: this.external ? "noopener" : undefined }), commonChildren, this.external && h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal))) : (h("button", Object.assign({}, commonProps, { type: this.getButtonType(), disabled: this.disabled, name: this.name, value: this.value, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined, "aria-disabled": this.disabled }), commonChildren)), this.loading && h("duet-spinner", { color: "currentColor" }))));
187
- }
188
- get element() { return this; }
189
- static get watchers() { return {
190
- "disabled": ["syncToProxyButton"],
191
- "submit": ["syncToProxyButton"],
192
- "value": ["syncToProxyButton"],
193
- "name": ["syncToProxyButton"]
194
- }; }
195
- static get style() { return duetButtonCss; }
196
- }, [1, "duet-button", {
197
- "accessibleLabel": [1, "accessible-label"],
198
- "accessibleControls": [1, "accessible-controls"],
199
- "accessiblePopup": [1, "accessible-popup"],
200
- "accessibleActiveDescendant": [1, "accessible-active-descendant"],
201
- "accessibleOwns": [1, "accessible-owns"],
202
- "accessibleDescribedBy": [1, "accessible-described-by"],
203
- "accessibleDetails": [1, "accessible-details"],
204
- "accessibleLabelledBy": [1, "accessible-labelled-by"],
205
- "accessibleDescription": [1, "accessible-description"],
206
- "accessibleExpanded": [4, "accessible-expanded"],
207
- "accessiblePressed": [4, "accessible-pressed"],
208
- "loading": [4],
209
- "variation": [1],
210
- "negative": [4],
211
- "theme": [1025],
212
- "margin": [1],
213
- "padding": [1],
214
- "centerText": [4, "center-text"],
215
- "wrapping": [1],
216
- "expand": [4],
217
- "fixed": [4],
218
- "disabled": [516],
219
- "name": [1],
220
- "value": [1],
221
- "identifier": [1],
222
- "submit": [516],
223
- "external": [4],
224
- "language": [1],
225
- "accessibleLabelExternalDefaults": [1, "accessible-label-external-default"],
226
- "accessibleLabelExternal": [1, "accessible-label-external"],
227
- "icon": [1],
228
- "color": [1],
229
- "iconRight": [4, "icon-right"],
230
- "iconSize": [1, "icon-size"],
231
- "size": [1],
232
- "iconOnly": [4, "icon-only"],
233
- "url": [513],
234
- "setFocus": [64]
235
- }]);
236
- function defineCustomElement() {
237
- if (typeof customElements === "undefined") {
238
- return;
239
- }
240
- const components = ["duet-button", "duet-icon", "duet-spinner", "duet-visually-hidden"];
241
- components.forEach(tagName => { switch (tagName) {
242
- case "duet-button":
243
- if (!customElements.get(tagName)) {
244
- customElements.define(tagName, DuetButton);
245
- }
246
- break;
247
- case "duet-icon":
248
- if (!customElements.get(tagName)) {
249
- defineCustomElement$3();
250
- }
251
- break;
252
- case "duet-spinner":
253
- if (!customElements.get(tagName)) {
254
- defineCustomElement$2();
255
- }
256
- break;
257
- case "duet-visually-hidden":
258
- if (!customElements.get(tagName)) {
259
- defineCustomElement$1();
260
- }
261
- break;
262
- } });
263
- }
264
-
265
- export { DuetButton as D, defineCustomElement as d };
@@ -1,4 +0,0 @@
1
- /*!
2
- * Built with Duet Design System
3
- */
4
- import{r as t,c as i,h as e,F as a,H as n,g as s}from"./p-ab11408b.js";import{i as r}from"./p-4ebf1618.js";import{c as o}from"./p-c1325e35.js";import{d as h}from"./p-0b3f675e.js";import{j as p,k as l,d,b as u,a as c,c as g,l as m,m as b}from"./p-54f35a79.js";import{g as v}from"./p-ede854e1.js";import"./p-5a9d75e1.js";const k=class{constructor(e){t(this,e),this.duetPageChange=i(this,"duetPageChange",3),this.listId=o("duet-pagination-list"),this.actionChain=async(t,i)=>{if(0===t)this.current=1;else if(i!==t){const i=Math.ceil(t/this.visibleItems)-1;i!==this.internalSectionIndex&&(this.internalSectionIndex=i,await this.setFocus())}return!0},this.emitPageEvent=h(((t,i)=>{const e=Number(i||this.current);this.duetPageChange.emit({component:"duet-pagination",from:e*this.take,to:e*this.take+this.take,current:e,take:this.take,type:"page",originalEvent:t})}),100),this.getEnteredNumber=h((t=>{this.emitPageEvent(t,this.numbersStore),this.current=Number(this.numbersStore),this.numbersStore="",this.duetPageChange.emit({component:"duet-pagination",from:this.current*this.take,to:this.current*this.take+this.take,current:this.current,take:this.take,type:"jump",originalEvent:t})}),500),this.numbersStore="",this.totalPages=10,this.internalSectionIndex=0,this.theme="",this.jumpString="...",this.variation="default",this.accessibleDescribedBy=void 0,this.accessibleDetails=void 0,this.accessibleLabelledBy=void 0,this.accessibleDescription=void 0,this.accessibleLabelsDefaults={en:{next_page:"Next page",previous_page:"Previous page",first_page:"First page",last_page:"Last page",jump_to:"Jump to page",go_to:"Go to page",description:"You may use arrow keys to select page number, or enter a page number when this element is in focus to jump to a page",pagination_label:"Pagination, choose a number to jump to a page",prev_section:"Show previous {0} page numbers, screen reader user should use arrowkeys to navigate",next_section:"Show next {0} page numbers, screen reader user should use arrowkeys to navigate"},fi:{next_page:"Seuraava sivu",previous_page:"Edellinen sivu",first_page:"Ensimmäinen sivu",last_page:"Viimeinen sivu",jump_to:"Siirry sivulle",go_to:"Siirry sivulle",description:"Voit käyttää nuolinäppäimiä sivunumeron valitsemiseen, tai kirjoittaa sivunumeron, jos tämä elementti on aktiivinen, siirtymään sivulle",pagination_label:"Sivutus, valitse sivunumero siirtyäksesi sivulle",prev_section:"Näytä edelliset {0} sivunumerot, käyttäjän pitää käyttää nuolinäppäimiä navigoidaksesi",next_section:"Näytä seuraavat {0} sivunumerot, käyttäjän pitää käyttää nuolinäppäimiä navigoidaksesi"},sv:{next_page:"Nästa sida",previous_page:"Föregående sida",first_page:"Första sidan",last_page:"Sista sidan",jump_to:"Hoppa till sida",go_to:"Hoppa till sida",description:"Du kan använda piltangenterna för att välja sida, eller skriva in sida när elementet är i fokus för att hoppa till en sida",pagination_label:"Sidutning, välj en siffra för att hoppa till en sida",prev_section:"Visa föregående {0} sidnummer, skrivbordsläsare ska använda piltangenterna för att navigera",next_section:"Visa nästa {0} sidnummer, skrivbordsläsare ska använda piltangenterna för att navigera"}},this.accessibleLabels=v(this.accessibleLabelsDefaults),this.take=5,this.visibleItems=5,this.total=1e3,this.ariaControls="",this.current=1}watchPropTotalHandler(){return this.calculatePageTake(),!0}watchStateHandler(t,i){return this.actionChain(t,i)}componentWillLoad(){this.internalSectionIndex=Math.ceil(this.current/this.visibleItems)-1,this.calculatePageTake(),r(this)}componentWillRender(){0!==this.internalSectionIndex&&this.internalSectionIndex!==this.totalPages&&this.calculatePageTake()}componentDidRender(){this.setFocus()}calculatePageTake(){this.totalPages=Math.ceil(this.total/this.take)}async onMouseHandler(t,i){t.preventDefault(),t.stopPropagation(),this.current=this.current+i,this.emitPageEvent(t)}async onKeyboardDown(t){let i=this.current;(d(t)||u(t))&&i--,(c(t)||g(t))&&i++,p(t)&&i<=this.totalPages&&(this.current=i,this.emitPageEvent(t)),l(t)&&this.shouldDisplayNavigation()&&(this.numbersStore=this.numbersStore+t.key,Number(this.numbersStore)>this.totalPages&&(this.numbersStore=this.totalPages+""),this.getEnteredNumber(t))}async setFocus(){const t=this.nativeNav.querySelector("li.duet-pagination-item-is-active duet-button");t&&await t.setFocus()}pageClickHandler(t){t.preventDefault();const i=Number(t.target.getAttribute("data-id"));this.current=i,this.emitPageEvent({},i)}sectionClickHandler(t,i){t.preventDefault();let e=this.internalSectionIndex+i;e*(this.take*this.visibleItems)>this.total&&(e=this.internalSectionIndex),this.internalSectionIndex=e>=0?e:0}jumpToStart(t){t.preventDefault(),this.internalSectionIndex=0,this.current=1,this.emitPageEvent(t)}jumpToEnd(t){t.preventDefault(),this.internalSectionIndex=Math.ceil(this.totalPages/this.take-1),this.current=this.totalPages,this.emitPageEvent(t)}renderPageNumbers(){const t=[];let i=this.internalSectionIndex*this.visibleItems;do{if(i++,i>this.totalPages)break;t.push(e("li",{class:{"duet-pagination-item":!0,"duet-pagination-item-is-active":i===this.current},role:"menuitem"},e("duet-button",{class:{"duet-pagination-link":!0},color:i!==this.current?"secondary":"primary","data-id":i,"center-text":!0,variation:"plain",margin:"none",accessibleLabel:`${this.accessibleLabels.go_to} ${i}`,onClick:t=>this.pageClickHandler(t)},e("div",{class:"duet-pagination-page-number","aria-hidden":!0},i))))}while(i<this.visibleItems+this.internalSectionIndex*this.visibleItems);return t}shouldDisplayNavigation(){return"compact"!==this.variation&&!(2*this.visibleItems>this.total/this.take)}render(){return e(n,{onKeyDown:t=>this.onKeyboardDown(t)},e("nav",{role:"navigation","aria-labelledby":this.accessibleLabelledBy?`${this.accessibleLabelledBy} ${this.listId}`:this.listId,"aria-describedby":this.accessibleDescribedBy?`${this.accessibleDescribedBy} ${this.listId}`:this.listId,"aria-descriptions":this.accessibleDescription,"aria-details":this.accessibleDetails,ref:t=>this.nativeNav=t,"aria-controls":this.ariaControls,class:{"duet-pagination-nav":!0,[`duet-pagination-variation-${this.variation}`]:!0}},""!==this.numbersStore&&e("div",{"aria-live":"assertive","aria-relevant":"text",class:"duet-pagination-overlay","aria-label":`${this.accessibleLabels.jump_to} ${this.numbersStore}`,part:"navigation-overlay"},e("duet-badge",null,"jump to page : ",this.numbersStore)),e("ol",{id:this.listId,class:{"duet-pagination":!0,"duet-pagination-is-dimmed":""!==this.numbersStore},role:"menubar","aria-label":this.accessibleLabels.pagination_label,"aria-description":this.accessibleLabels.description},e("li",{class:{"duet-pagination-page-button":!0,"duet-pagination-button-first":!0},role:"menuitem",part:"navigation-arrow"},e("duet-action-button",{disabled:0===this.internalSectionIndex&&this.current<=1,"data-direction":"back",onClick:t=>this.onMouseHandler(t,-1),"accessible-label":this.accessibleLabels.previous_page,"icon-name":"action-arrow-left-small"})),0!==this.internalSectionIndex&&this.shouldDisplayNavigation()&&e(a,null,e("li",{class:"duet-pagination-item",role:"menuitem",part:"navigation-jump"},e("duet-button",{class:"duet-pagination-link duet-pagination-link-jump-back","center-text":"true",variation:"plain",color:"secondary",margin:"none",accessibleLabel:this.accessibleLabels.first_page,onClick:t=>this.jumpToStart(t)},e("div",{class:"duet-pagination-page-number"},"1"))),e("li",{class:"duet-pagination-item",role:"menuitem",part:"navigation-section"},e("duet-button",{class:"duet-pagination-link duet-pagination-link-dots-back","center-text":"true",color:"secondary",variation:"plain",margin:"none",accessibleLabel:this.accessibleLabels.prev_section.replace("{0}",`${this.visibleItems}`),onClick:t=>this.sectionClickHandler(t,-1)},e("div",{class:"duet-pagination-page-number","aria-hidden":"true"},"...")))),this.renderPageNumbers(),this.internalSectionIndex*(this.visibleItems+2)<this.totalPages&&this.shouldDisplayNavigation()&&e(a,null,e("li",{class:"duet-pagination-item",role:"menuitem",part:"navigation-section"},e("duet-button",{class:"duet-pagination-link duet-pagination-link-dots-forward","center-text":"true",color:"secondary",variation:"plain",margin:"none",accessibleLabel:this.accessibleLabels.next_section.replace("{0}",`${this.visibleItems}`),onClick:t=>this.sectionClickHandler(t,1)},e("div",{class:"duet-pagination-page-number","aria-hidden":"true"},"..."))),e("li",{class:"duet-pagination-item",role:"menuitem",part:"navigation-jump"},e("duet-button",{class:"duet-pagination-link duet-pagination-link-jump-forward","center-text":"true",color:"secondary",variation:"plain",margin:"none",accessibleLabel:this.accessibleLabels.last_page,onClick:t=>this.jumpToEnd(t)},e("div",{class:"duet-pagination-page-number"},this.totalPages)))),e("li",{class:{"duet-pagination-page-button":!0,"duet-pagination-button-last":!0},role:"menuitem",part:"navigation-arrow"},e("duet-action-button",{disabled:this.current===this.totalPages&&this.internalSectionIndex===Math.ceil(this.totalPages/this.visibleItems)-1,class:"duet-date-dialog-next","accessible-label":this.accessibleLabels.next_page,onClick:t=>this.onMouseHandler(t,1),"icon-name":"action-arrow-right-small"})))))}get element(){return s(this)}static get watchers(){return{total:["watchPropTotalHandler"],current:["watchStateHandler"]}}};k.style="*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}.duet-pagination-nav{position:relative}.duet-pagination ::part(button){border:0}.duet-pagination,.duet-pagination li{display:flex;flex-wrap:wrap;gap:0.1rem;align-items:center}.duet-pagination-item-is-active .duet-pagination-page-number{border-bottom-color:inherit;border-bottom-style:solid;border-bottom-width:2px}.duet-pagination duet-button{width:30px;min-width:36px;font-weight:600;text-decoration:none;border-left-width:0}.duet-pagination-overlay{position:absolute;top:1rem;z-index:300;width:100%;text-align:center}.duet-pagination.duet-pagination-is-dimmed{opacity:0.5}";const f=class{constructor(e){t(this,e),this.duetRangeStepUpdate=i(this,"duetRangeStepUpdate",7),this.leftBn=o("duetRangeStepper-left"),this.rightBn=o("duetRangeStepper-right"),this.handleClick=(t,i)=>{t.preventDefault(),this.stepIndex+=i,this.clampStepIndex(),this.handleStepClick(t)},this.theme="",this.stepIndex=1,this.stepSize=50,this.total=1e3,this.ariaLabelsDefaults={en:{next_increment:"Next range increment",previous_increment:"Previous range increment",x_of_y:"{0}–{1} of {2}"},fi:{next_increment:"Seuraava välillä",previous_increment:"Edellinen välillä",x_of_y:"{0}–{1} / {2}"},sv:{next_increment:"Nästa intervall",previous_increment:"Föregående intervall",x_of_y:"{0}–{1} av {2}"}},this.ariaLabels=v(this.ariaLabelsDefaults),this.ariaControls=""}watchStepIndexStateHandler(t){this.element.shadowRoot.childElementCount>0&&(t<=1?(this.leftBnRef.setAttribute("disabled",""),this.rightBnRef.focus()):this.leftBnRef.removeAttribute("disabled"),t>=this.total/this.stepSize?(this.rightBnRef.setAttribute("disabled",""),this.leftBnRef.focus()):this.rightBnRef.removeAttribute("disabled"))}watchStepSizeStateHandler(t,i){t!==i&&this.stepIndex*t>this.total&&(this.stepIndex=Math.ceil(this.total/t))}handleStepClick(t){this.duetRangeStepUpdate.emit({originalEvent:t,component:"duet-range-stepper",from:this.getFrom(),to:this.getTo(),index:this.stepIndex})}componentWillLoad(){r(this),this.clampStepIndex()}componentDidLoad(){this.watchStepIndexStateHandler(this.stepIndex)}clampStepIndex(){this.stepIndex<1?this.stepIndex=1:this.stepIndex*this.stepSize>this.total&&(this.stepIndex=Math.ceil(this.total/this.stepSize))}getFrom(){return Math.floor((this.stepIndex-1)*this.stepSize)+1}getTo(){return Math.min(Math.floor(this.stepIndex*this.stepSize),this.total)}generateStepSize(){return this.ariaLabels.x_of_y.replace("{0}",String(this.getFrom())).replace("{1}",String(this.getTo())).replace("{2}",String(this.total))}async onKeyboardDown(t){let i=this.stepIndex,e=1;(d(t)||u(t)||m(t))&&(i--,e=-1,this.leftBnRef.focus()),(c(t)||g(t)||b(t))&&(i++,e=1),p(t)&&i>0&&i*this.stepSize<=this.total&&this.handleClick(t,e)}render(){return e("div",{class:{"duet-range-stepper":!0,"duet-theme-turva":"turva"===this.theme},onKeyDown:t=>this.onKeyboardDown(t),"aria-controls":this.ariaControls},e("span",{class:"duet-range-step-counter",part:"range-numbers"},this.generateStepSize()),e("duet-action-button",{class:"duet-range-step-button duet-range-step-minus",onClick:t=>this.handleClick(t,-1),id:this.leftBn,"accessible-label":this.ariaLabels.previous_increment,ref:t=>this.leftBnRef=t,part:"navigation-arrow",iconName:"action-arrow-left-small"}),e("duet-action-button",{class:"duet-range-step-button duet-range-step-plus",onClick:t=>this.handleClick(t,1),"accessible-label":this.ariaLabels.next_increment,id:this.rightBn,ref:t=>this.rightBnRef=t,part:"navigation-arrow",iconName:"action-arrow-right-small"}))}get element(){return s(this)}static get watchers(){return{stepIndex:["watchStepIndexStateHandler"],stepSize:["watchStepSizeStateHandler"]}}};f.style="*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}.duet-range-stepper{display:flex;flex-wrap:wrap;gap:0;align-items:baseline;justify-content:center;min-width:30px;min-height:30px;font-weight:600;text-decoration:none;border-left-width:0}.duet-range-stepper{white-space:nowrap}.duet-range-stepper .duet-range-step-counter{font-weight:600;color:#00294d}.duet-range-stepper ::part(button){border:0}";export{k as duet_pagination,f as duet_range_stepper}