@duetds/components 8.4.2 → 8.4.4

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 (644) hide show
  1. package/hydrate/index.js +183 -47
  2. package/lib/cjs/action-new-window-50c8aed0.js +11 -0
  3. package/lib/cjs/duet-action-button.cjs.entry.js +3 -3
  4. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-banner.cjs.entry.js +9 -8
  7. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  8. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +3 -3
  9. package/lib/cjs/duet-button_2.cjs.entry.js +3 -3
  10. package/lib/cjs/duet-callout.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-caption_4.cjs.entry.js +45 -21
  12. package/lib/cjs/duet-card.cjs.entry.js +3 -3
  13. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-checkmark.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-chip.cjs.entry.js +1 -1
  16. package/lib/cjs/duet-choice_2.cjs.entry.js +2 -2
  17. package/lib/cjs/duet-collapsible.cjs.entry.js +2 -2
  18. package/lib/cjs/duet-combobox.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-contact-card.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  22. package/lib/cjs/duet-divider_2.cjs.entry.js +3 -3
  23. package/lib/cjs/duet-editable-table_3.cjs.entry.js +56 -9
  24. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-file-chooser.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-footer.cjs.entry.js +3 -5
  28. package/lib/cjs/duet-grid_2.cjs.entry.js +2 -2
  29. package/lib/cjs/duet-header_2.cjs.entry.js +4 -4
  30. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-icon.cjs.entry.js +3 -3
  32. package/lib/cjs/duet-input_2.cjs.entry.js +3 -3
  33. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +2 -2
  36. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +2 -2
  38. package/lib/cjs/duet-menu-bar-item.cjs.entry.js +2 -2
  39. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +2 -2
  40. package/lib/cjs/duet-menu-bar.cjs.entry.js +2 -2
  41. package/lib/cjs/duet-modal.cjs.entry.js +4 -4
  42. package/lib/cjs/duet-multiselect.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-nav.cjs.entry.js +1 -1
  44. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  45. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  46. package/lib/cjs/duet-page-heading.cjs.entry.js +1 -1
  47. package/lib/cjs/duet-pagination_2.cjs.entry.js +4 -4
  48. package/lib/cjs/duet-popup-menu-item.cjs.entry.js +1 -1
  49. package/lib/cjs/duet-popup-menu.cjs.entry.js +9 -4
  50. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  51. package/lib/cjs/duet-promo-card.cjs.entry.js +3 -3
  52. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  53. package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
  54. package/lib/cjs/duet-scrollable_3.cjs.entry.js +3 -3
  55. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  56. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  57. package/lib/cjs/duet-shaped-image.cjs.entry.js +1 -1
  58. package/lib/cjs/duet-show-more.cjs.entry.js +1 -1
  59. package/lib/cjs/duet-slideout-lang.cjs.entry.js +1 -1
  60. package/lib/cjs/duet-slideout-link.cjs.entry.js +1 -1
  61. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +1 -1
  62. package/lib/cjs/duet-slideout-panel.cjs.entry.js +4 -4
  63. package/lib/cjs/duet-slideout.cjs.entry.js +5 -5
  64. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  65. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +1 -1
  66. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +2 -2
  67. package/lib/cjs/duet-submenu-bar-item.cjs.entry.js +2 -2
  68. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +2 -2
  69. package/lib/cjs/duet-submenu-bar.cjs.entry.js +6 -5
  70. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  71. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  72. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +1 -1
  73. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +1 -1
  74. package/lib/cjs/duet-toolbar-item.cjs.entry.js +1 -1
  75. package/lib/cjs/duet-toolbar-link.cjs.entry.js +1 -1
  76. package/lib/cjs/duet-toolbar.cjs.entry.js +1 -1
  77. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +2 -2
  78. package/lib/cjs/duet-tooltip.cjs.entry.js +3 -3
  79. package/lib/cjs/duet-tray.cjs.entry.js +2 -2
  80. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  81. package/lib/cjs/duet-upload-item.cjs.entry.js +9 -2
  82. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  83. package/lib/cjs/duet.cjs.js +2 -2
  84. package/lib/cjs/{floating-ui.dom.esm-a7d59d53.js → floating-ui.dom.esm-91f66430.js} +60 -20
  85. package/lib/cjs/{focus-utils-c103ab0a.js → focus-utils-a2fa36c7.js} +1 -1
  86. package/lib/cjs/{index-7fe97a5d.js → index-321cd5c2.js} +1 -1
  87. package/lib/cjs/loader.cjs.js +2 -2
  88. package/lib/cjs/{token-utils-7a618677.js → token-utils-c8094d1e.js} +1 -1
  89. package/lib/cjs/{tokens-c3eecae6.js → tokens-5b487d39.js} +3 -0
  90. package/lib/cjs/{tokens.module-bc323a09.js → tokens.module-450a747b.js} +2 -0
  91. package/lib/collection/collection-manifest.json +1 -1
  92. package/lib/collection/components/duet-banner/duet-banner.css +26 -0
  93. package/lib/collection/components/duet-banner/duet-banner.js +5 -4
  94. package/lib/collection/components/duet-link/duet-link.css +95 -9
  95. package/lib/collection/components/duet-link/duet-link.js +73 -20
  96. package/lib/collection/components/duet-modal/duet-modal.js +1 -1
  97. package/lib/collection/components/duet-popup-menu/duet-popup-menu.js +24 -1
  98. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +1 -1
  99. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +3 -2
  100. package/lib/collection/components/duet-upload/duet-upload.js +95 -5
  101. package/lib/collection/components/duet-upload-item/duet-upload-item.js +30 -2
  102. package/lib/collection/utils/string-utils.js +6 -0
  103. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  104. package/lib/dist-custom-elements/duet-alert.js +1 -1
  105. package/lib/dist-custom-elements/duet-badge.js +1 -1
  106. package/lib/dist-custom-elements/duet-banner.js +11 -10
  107. package/lib/dist-custom-elements/duet-breadcrumb.js +3 -3
  108. package/lib/dist-custom-elements/duet-breadcrumbs.js +2 -2
  109. package/lib/dist-custom-elements/duet-button.js +1 -1
  110. package/lib/dist-custom-elements/duet-callout.js +2 -2
  111. package/lib/dist-custom-elements/duet-caption.js +1 -1
  112. package/lib/dist-custom-elements/duet-card.js +4 -4
  113. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  114. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  115. package/lib/dist-custom-elements/duet-chip.js +2 -2
  116. package/lib/dist-custom-elements/duet-choice-group.js +8 -8
  117. package/lib/dist-custom-elements/duet-choice.js +6 -6
  118. package/lib/dist-custom-elements/duet-collapsible.js +3 -3
  119. package/lib/dist-custom-elements/duet-combobox.js +3 -3
  120. package/lib/dist-custom-elements/duet-contact-card.js +8 -8
  121. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  122. package/lib/dist-custom-elements/duet-date-picker.js +14 -14
  123. package/lib/dist-custom-elements/duet-divider.js +1 -1
  124. package/lib/dist-custom-elements/duet-editable-table.js +8 -8
  125. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  126. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  127. package/lib/dist-custom-elements/duet-file-chooser.js +2 -2
  128. package/lib/dist-custom-elements/duet-footer.js +5 -7
  129. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  130. package/lib/dist-custom-elements/duet-grid.js +1 -1
  131. package/lib/dist-custom-elements/duet-header.js +11 -11
  132. package/lib/dist-custom-elements/duet-heading.js +1 -1
  133. package/lib/dist-custom-elements/duet-hero.js +9 -9
  134. package/lib/dist-custom-elements/duet-icon.js +1 -1
  135. package/lib/dist-custom-elements/duet-input.js +1 -1
  136. package/lib/dist-custom-elements/duet-label.js +1 -1
  137. package/lib/dist-custom-elements/duet-layout.js +1 -1
  138. package/lib/dist-custom-elements/duet-link.js +1 -1
  139. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  140. package/lib/dist-custom-elements/duet-list.js +1 -1
  141. package/lib/dist-custom-elements/duet-logo.js +1 -1
  142. package/lib/dist-custom-elements/duet-menu-bar-button.js +3 -3
  143. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +2 -2
  144. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +3 -3
  145. package/lib/dist-custom-elements/duet-menu-bar-item.js +3 -3
  146. package/lib/dist-custom-elements/duet-menu-bar-link.js +3 -3
  147. package/lib/dist-custom-elements/duet-menu-bar.js +3 -3
  148. package/lib/dist-custom-elements/duet-modal.js +10 -10
  149. package/lib/dist-custom-elements/duet-multiselect.js +9 -9
  150. package/lib/dist-custom-elements/duet-nav.js +1 -1
  151. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  152. package/lib/dist-custom-elements/duet-notification.js +2 -2
  153. package/lib/dist-custom-elements/duet-number-input.js +11 -11
  154. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  155. package/lib/dist-custom-elements/duet-pagination.js +14 -14
  156. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  157. package/lib/dist-custom-elements/duet-popup-menu-item.js +2 -2
  158. package/lib/dist-custom-elements/duet-popup-menu.js +10 -4
  159. package/lib/dist-custom-elements/duet-progress.js +1 -1
  160. package/lib/dist-custom-elements/duet-promo-card.js +4 -4
  161. package/lib/dist-custom-elements/duet-radio-group.js +8 -8
  162. package/lib/dist-custom-elements/duet-radio.js +1 -1
  163. package/lib/dist-custom-elements/duet-range-slider.js +3 -3
  164. package/lib/dist-custom-elements/duet-range-stepper.js +5 -5
  165. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  166. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  167. package/lib/dist-custom-elements/duet-select.js +1 -1
  168. package/lib/dist-custom-elements/duet-shaped-image.js +1 -1
  169. package/lib/dist-custom-elements/duet-show-more.js +5 -5
  170. package/lib/dist-custom-elements/duet-slideout-lang.js +2 -2
  171. package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
  172. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  173. package/lib/dist-custom-elements/duet-slideout-panel.js +4 -4
  174. package/lib/dist-custom-elements/duet-slideout.js +5 -5
  175. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  176. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  177. package/lib/dist-custom-elements/duet-step.js +4 -4
  178. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  179. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +2 -2
  180. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +3 -3
  181. package/lib/dist-custom-elements/duet-submenu-bar-item.js +3 -3
  182. package/lib/dist-custom-elements/duet-submenu-bar-link.js +3 -3
  183. package/lib/dist-custom-elements/duet-submenu-bar.js +7 -6
  184. package/lib/dist-custom-elements/duet-tab-group.js +13 -13
  185. package/lib/dist-custom-elements/duet-tab.js +2 -2
  186. package/lib/dist-custom-elements/duet-table.js +1 -1
  187. package/lib/dist-custom-elements/duet-textarea.js +10 -10
  188. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  189. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -2
  190. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +2 -2
  191. package/lib/dist-custom-elements/duet-toolbar-item.js +2 -2
  192. package/lib/dist-custom-elements/duet-toolbar-link.js +2 -2
  193. package/lib/dist-custom-elements/duet-toolbar.js +1 -1
  194. package/lib/dist-custom-elements/duet-tooltip-button.js +1 -1
  195. package/lib/dist-custom-elements/duet-tooltip-popup.js +1 -1
  196. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  197. package/lib/dist-custom-elements/duet-tray.js +4 -4
  198. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  199. package/lib/dist-custom-elements/duet-upload-item.js +1 -1
  200. package/lib/dist-custom-elements/duet-upload.js +74 -24
  201. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  202. package/lib/dist-custom-elements/index.js +1 -1
  203. package/lib/dist-custom-elements/{p-c1c9234e.js → p-00766c1c.js} +10 -10
  204. package/lib/dist-custom-elements/{p-d4663c7c.js → p-01cc0070.js} +8 -8
  205. package/lib/{esm/floating-ui.dom.esm-efad5c89.js → dist-custom-elements/p-11e152cd.js} +60 -20
  206. package/lib/dist-custom-elements/{p-0d9a20d2.js → p-16110f9e.js} +19 -11
  207. package/lib/dist-custom-elements/{p-cbac9ed5.js → p-2807b16f.js} +1 -1
  208. package/lib/dist-custom-elements/{p-d37a3cec.js → p-2f3ee599.js} +2 -0
  209. package/lib/dist-custom-elements/{p-fa23b7fe.js → p-37ed08ff.js} +5 -5
  210. package/lib/dist-custom-elements/{p-a48934c3.js → p-37fda12a.js} +1 -1
  211. package/lib/dist-custom-elements/{p-eef66341.js → p-4bd749d9.js} +1 -1
  212. package/lib/dist-custom-elements/{p-4f04ad3e.js → p-4ea72812.js} +2 -2
  213. package/lib/dist-custom-elements/{p-177cbf72.js → p-5d23f8e5.js} +1 -1
  214. package/lib/dist-custom-elements/{p-0a2e2799.js → p-60825051.js} +1 -1
  215. package/lib/dist-custom-elements/{p-601b571c.js → p-694eb563.js} +2 -2
  216. package/lib/dist-custom-elements/{p-6686826d.js → p-6d154d20.js} +1 -1
  217. package/lib/dist-custom-elements/{p-a0fb1ecb.js → p-6e276517.js} +2 -2
  218. package/lib/dist-custom-elements/{p-45f0a5c5.js → p-70db33ff.js} +5 -5
  219. package/lib/dist-custom-elements/{p-131d995f.js → p-769f67db.js} +2 -2
  220. package/lib/dist-custom-elements/{p-9b65c21f.js → p-7a282561.js} +2 -2
  221. package/lib/dist-custom-elements/{p-2996bc9b.js → p-80658678.js} +7 -7
  222. package/lib/dist-custom-elements/p-8855e26a.js +8 -0
  223. package/lib/dist-custom-elements/{p-61c2577e.js → p-95edd984.js} +4 -4
  224. package/lib/dist-custom-elements/{p-50ce213d.js → p-9a68c9c3.js} +2 -2
  225. package/lib/dist-custom-elements/{p-33a89c97.js → p-a0e148ea.js} +2 -2
  226. package/lib/dist-custom-elements/{p-f5c39ead.js → p-add43228.js} +5 -5
  227. package/lib/dist-custom-elements/{p-f1f23dbd.js → p-b72908a4.js} +4 -4
  228. package/lib/dist-custom-elements/{p-12eef2ad.js → p-b8be34fe.js} +3 -3
  229. package/lib/dist-custom-elements/{p-15c6804a.js → p-bc9b66e3.js} +2 -2
  230. package/lib/dist-custom-elements/{p-59846fe0.js → p-c3bf10f0.js} +2 -2
  231. package/lib/dist-custom-elements/{p-3e696237.js → p-c92fc106.js} +2 -2
  232. package/lib/dist-custom-elements/{p-47e5367a.js → p-c9e9fcdd.js} +1 -1
  233. package/lib/dist-custom-elements/{p-a15329e0.js → p-cd43ed13.js} +1 -1
  234. package/lib/dist-custom-elements/p-d0e58f2f.js +195 -0
  235. package/lib/dist-custom-elements/{p-5b729ba0.js → p-d98e622c.js} +2 -2
  236. package/lib/dist-custom-elements/{p-57761460.js → p-d9ce7d34.js} +2 -2
  237. package/lib/dist-custom-elements/{p-7e7a0c10.js → p-e0da6a34.js} +1 -1
  238. package/lib/dist-custom-elements/{p-d84e09c9.js → p-e20f6c37.js} +1 -1
  239. package/lib/dist-custom-elements/{p-a41e92cd.js → p-eb8112d7.js} +1 -1
  240. package/lib/{esm/tokens-30d01e1d.js → dist-custom-elements/p-ed995372.js} +3 -0
  241. package/lib/dist-custom-elements/{p-2a308935.js → p-f6bb0a14.js} +1 -1
  242. package/lib/dist-custom-elements/{p-1364c672.js → p-f971e88a.js} +2 -2
  243. package/lib/duet/duet.esm.js +1 -1
  244. package/lib/duet/duet.js +1 -1
  245. package/lib/duet/{p-22d72786.system.entry.js → p-010dd9f1.system.entry.js} +1 -1
  246. package/lib/duet/{p-9d2d5bb7.entry.js → p-021e6c41.entry.js} +1 -1
  247. package/lib/duet/{p-bba08afa.entry.js → p-03ecd2e4.entry.js} +1 -1
  248. package/lib/duet/{p-f2aa1623.js → p-03f6f09a.js} +1 -1
  249. package/lib/duet/p-04cc1871.entry.js +4 -0
  250. package/lib/duet/{p-1d44acfe.entry.js → p-0ae402bc.entry.js} +1 -1
  251. package/lib/duet/{p-0e015dcc.system.entry.js → p-0bbc8e7d.system.entry.js} +1 -1
  252. package/lib/duet/{p-b46eaf22.system.entry.js → p-0c7b4d0b.system.entry.js} +1 -1
  253. package/lib/duet/{p-04396632.entry.js → p-0ee178f3.entry.js} +1 -1
  254. package/lib/duet/{p-ea0114b0.system.entry.js → p-11d504bb.system.entry.js} +1 -1
  255. package/lib/duet/p-11e152cd.js +4 -0
  256. package/lib/duet/{p-0b31f281.entry.js → p-14dd96f6.entry.js} +1 -1
  257. package/lib/duet/{p-4a711595.system.entry.js → p-1a90862e.system.entry.js} +1 -1
  258. package/lib/duet/{p-cf68eb94.entry.js → p-1b7067b9.entry.js} +1 -1
  259. package/lib/duet/{p-da3a4563.system.entry.js → p-1c6ac55a.system.entry.js} +1 -1
  260. package/lib/duet/{p-10098739.system.entry.js → p-1d6732e5.system.entry.js} +1 -1
  261. package/lib/duet/{p-e8ef41fb.entry.js → p-1f1ea2e1.entry.js} +1 -1
  262. package/lib/duet/{p-18a5ed57.entry.js → p-1f51448a.entry.js} +1 -1
  263. package/lib/duet/{p-fe6d6541.entry.js → p-1f6614f2.entry.js} +1 -1
  264. package/lib/duet/p-1fd2d87d.entry.js +4 -0
  265. package/lib/duet/{p-0dfacf89.entry.js → p-218929dd.entry.js} +1 -1
  266. package/lib/duet/{p-5df167ce.entry.js → p-24707dfe.entry.js} +1 -1
  267. package/lib/duet/p-290fd0ec.entry.js +4 -0
  268. package/lib/duet/{p-738c2982.entry.js → p-296bce73.entry.js} +1 -1
  269. package/lib/duet/{p-edbb800c.entry.js → p-2a67d274.entry.js} +1 -1
  270. package/lib/duet/{p-10221818.system.entry.js → p-2accb711.system.entry.js} +1 -1
  271. package/lib/duet/{p-c1788410.entry.js → p-2ad9975b.entry.js} +1 -1
  272. package/lib/duet/{p-68563736.entry.js → p-2c3a0e0b.entry.js} +1 -1
  273. package/lib/duet/{p-321f5636.system.entry.js → p-2c7a4ccf.system.entry.js} +1 -1
  274. package/lib/duet/{p-c32fb0ad.system.entry.js → p-2d505c84.system.entry.js} +1 -1
  275. package/lib/duet/{p-7a62a25c.system.entry.js → p-2d5eea69.system.entry.js} +1 -1
  276. package/lib/duet/p-2e68af22.system.js +4 -0
  277. package/lib/duet/{p-846f6107.entry.js → p-30694f50.entry.js} +1 -1
  278. package/lib/duet/{p-851a2197.system.entry.js → p-30b37984.system.entry.js} +1 -1
  279. package/lib/duet/{p-70e8e2e8.entry.js → p-324a6828.entry.js} +1 -1
  280. package/lib/duet/{p-66811869.system.entry.js → p-328a40de.system.entry.js} +1 -1
  281. package/lib/duet/{p-dd11d532.system.entry.js → p-3350f9aa.system.entry.js} +1 -1
  282. package/lib/duet/p-34620d0d.entry.js +4 -0
  283. package/lib/duet/{p-3d1e8d07.system.entry.js → p-350fc5f7.system.entry.js} +1 -1
  284. package/lib/duet/{p-64d1ea6b.entry.js → p-368a4f49.entry.js} +1 -1
  285. package/lib/duet/{p-addd5e7e.system.entry.js → p-36cce3f9.system.entry.js} +1 -1
  286. package/lib/duet/{p-383a91dc.system.entry.js → p-383719e3.system.entry.js} +1 -1
  287. package/lib/duet/{p-ff73f982.system.entry.js → p-3a7594d3.system.entry.js} +1 -1
  288. package/lib/duet/{p-78e5a38c.system.entry.js → p-3cd30915.system.entry.js} +1 -1
  289. package/lib/duet/p-3d88b644.system.entry.js +4 -0
  290. package/lib/duet/p-3d951794.entry.js +4 -0
  291. package/lib/duet/{p-71028a1e.entry.js → p-3e26c389.entry.js} +1 -1
  292. package/lib/duet/{p-3dfbd404.system.entry.js → p-3f0589bb.system.entry.js} +1 -1
  293. package/lib/duet/{p-407a1728.entry.js → p-40c29b8e.entry.js} +1 -1
  294. package/lib/duet/{p-abdbce02.system.js → p-41ba30b7.system.js} +1 -1
  295. package/lib/duet/{p-99b0e6bb.system.entry.js → p-41e13b83.system.entry.js} +1 -1
  296. package/lib/duet/{p-ffb8996b.system.js → p-42101548.system.js} +1 -1
  297. package/lib/duet/p-432df72f.system.entry.js +4 -0
  298. package/lib/duet/{p-230604b9.entry.js → p-43cd9f87.entry.js} +1 -1
  299. package/lib/duet/{p-551e05af.system.entry.js → p-44c81d6b.system.entry.js} +1 -1
  300. package/lib/duet/{p-7a98a43c.entry.js → p-460aada9.entry.js} +1 -1
  301. package/lib/duet/p-4861c4a4.entry.js +4 -0
  302. package/lib/duet/{p-c46b15ea.entry.js → p-48bd3e10.entry.js} +1 -1
  303. package/lib/duet/{p-c57afc88.entry.js → p-4f779b7b.entry.js} +1 -1
  304. package/lib/duet/{p-49e02a59.system.entry.js → p-507f807b.system.entry.js} +1 -1
  305. package/lib/duet/p-5091eb50.entry.js +4 -0
  306. package/lib/duet/p-52e38899.system.js +4 -0
  307. package/lib/duet/{p-d9f35a79.entry.js → p-5555f60d.entry.js} +1 -1
  308. package/lib/duet/{p-8f916ac7.system.entry.js → p-55b5929c.system.entry.js} +1 -1
  309. package/lib/duet/{p-b685de1e.js → p-593e28ac.js} +1 -1
  310. package/lib/duet/{p-42473291.system.entry.js → p-5ca7f7cb.system.entry.js} +1 -1
  311. package/lib/duet/p-5d5b6fbd.entry.js +4 -0
  312. package/lib/duet/{p-04d81b55.entry.js → p-5e8c47fe.entry.js} +1 -1
  313. package/lib/duet/p-5f0c7704.system.entry.js +4 -0
  314. package/lib/duet/{p-187e0e31.entry.js → p-607be10a.entry.js} +1 -1
  315. package/lib/duet/{p-514310af.system.entry.js → p-60ca48d1.system.entry.js} +1 -1
  316. package/lib/duet/{p-2f75a831.system.entry.js → p-62ce745e.system.entry.js} +1 -1
  317. package/lib/duet/p-650a419d.system.js +4 -0
  318. package/lib/duet/{p-95575931.entry.js → p-66f4c2bb.entry.js} +1 -1
  319. package/lib/duet/{p-436828cd.entry.js → p-67956ba7.entry.js} +1 -1
  320. package/lib/duet/{p-b3fe4d80.system.entry.js → p-6a6136ac.system.entry.js} +1 -1
  321. package/lib/duet/p-6c3a10a7.system.entry.js +4 -0
  322. package/lib/duet/{p-bb0d4df8.system.entry.js → p-6cce9324.system.entry.js} +1 -1
  323. package/lib/duet/{p-69535738.system.entry.js → p-6d5bbd9d.system.entry.js} +1 -1
  324. package/lib/duet/{p-70192242.system.entry.js → p-6d67ee47.system.entry.js} +1 -1
  325. package/lib/duet/{p-5855d879.system.entry.js → p-6ef5d34b.system.entry.js} +1 -1
  326. package/lib/duet/{p-2d679611.entry.js → p-70961fe6.entry.js} +1 -1
  327. package/lib/duet/{p-428adef7.system.entry.js → p-7329324b.system.entry.js} +1 -1
  328. package/lib/duet/{p-7de032fc.system.entry.js → p-78c560b1.system.entry.js} +1 -1
  329. package/lib/duet/{p-c0580b3f.system.entry.js → p-797eaeab.system.entry.js} +1 -1
  330. package/lib/duet/{p-5a9a1c76.entry.js → p-79f72cff.entry.js} +1 -1
  331. package/lib/duet/{p-5f87ea3d.js → p-7a66b632.js} +1 -1
  332. package/lib/duet/{p-301fda37.entry.js → p-7a6ed189.entry.js} +1 -1
  333. package/lib/duet/{p-04c226e5.entry.js → p-7c0afcee.entry.js} +1 -1
  334. package/lib/duet/{p-ab0a3192.entry.js → p-7c2ceea1.entry.js} +1 -1
  335. package/lib/duet/{p-48a63ce5.system.entry.js → p-7e14f80d.system.entry.js} +1 -1
  336. package/lib/duet/{p-b2387806.entry.js → p-7ecb4a30.entry.js} +1 -1
  337. package/lib/duet/{p-fe3a3989.entry.js → p-7f0e15ec.entry.js} +1 -1
  338. package/lib/duet/{p-2fd350b6.entry.js → p-7fd57091.entry.js} +1 -1
  339. package/lib/duet/p-80dc1362.system.entry.js +4 -0
  340. package/lib/duet/{p-f5414759.system.entry.js → p-81363d5b.system.entry.js} +1 -1
  341. package/lib/duet/{p-89ff1726.entry.js → p-81a65ba4.entry.js} +1 -1
  342. package/lib/duet/{p-24c2902b.entry.js → p-81a72ffe.entry.js} +1 -1
  343. package/lib/duet/{p-a8da4509.system.entry.js → p-84c8b5a1.system.entry.js} +1 -1
  344. package/lib/duet/{p-43931eed.system.entry.js → p-86069994.system.entry.js} +1 -1
  345. package/lib/duet/{p-4afeea09.system.entry.js → p-87c91115.system.entry.js} +2 -2
  346. package/lib/duet/{p-1d2d899a.system.entry.js → p-87e6b946.system.entry.js} +1 -1
  347. package/lib/duet/p-8855e26a.js +4 -0
  348. package/lib/duet/{p-9da0ed12.system.entry.js → p-89310816.system.entry.js} +1 -1
  349. package/lib/duet/{p-65b7afbd.system.entry.js → p-89daabf5.system.entry.js} +1 -1
  350. package/lib/duet/p-8a5fcb79.system.entry.js +4 -0
  351. package/lib/duet/{p-c9ab053d.entry.js → p-8b929d17.entry.js} +1 -1
  352. package/lib/duet/{p-ff58fdad.system.entry.js → p-8c5009b8.system.entry.js} +1 -1
  353. package/lib/duet/{p-b40bceab.system.entry.js → p-8cb77e1f.system.entry.js} +1 -1
  354. package/lib/duet/{p-dc234b3a.entry.js → p-935dbe23.entry.js} +1 -1
  355. package/lib/duet/{p-17a52ca1.entry.js → p-94ec5a34.entry.js} +1 -1
  356. package/lib/duet/{p-0a61dd54.system.entry.js → p-97d09535.system.entry.js} +1 -1
  357. package/lib/duet/p-98c4123d.entry.js +4 -0
  358. package/lib/duet/{p-d5c5992f.entry.js → p-9b42d132.entry.js} +1 -1
  359. package/lib/duet/{p-4557d28f.entry.js → p-9c5592a0.entry.js} +1 -1
  360. package/lib/duet/{p-5688f257.entry.js → p-9e58080f.entry.js} +1 -1
  361. package/lib/duet/{p-3c42ae99.system.entry.js → p-9f780397.system.entry.js} +1 -1
  362. package/lib/duet/{p-08e002f8.entry.js → p-a0978112.entry.js} +1 -1
  363. package/lib/duet/{p-f64f4ff8.system.entry.js → p-a09a9abe.system.entry.js} +1 -1
  364. package/lib/duet/{p-da7f4cbf.system.entry.js → p-a144a9ba.system.entry.js} +1 -1
  365. package/lib/duet/{p-12597683.system.entry.js → p-a1c81497.system.entry.js} +1 -1
  366. package/lib/duet/{p-b0d5f427.system.entry.js → p-a225a097.system.entry.js} +1 -1
  367. package/lib/duet/{p-93e1f5f7.entry.js → p-a2ab881c.entry.js} +1 -1
  368. package/lib/duet/{p-fc353103.system.entry.js → p-a2ac806b.system.entry.js} +1 -1
  369. package/lib/duet/{p-ea92b78c.system.entry.js → p-a2f3f775.system.entry.js} +1 -1
  370. package/lib/duet/p-a46b4450.system.js +4 -0
  371. package/lib/duet/{p-757451ff.system.entry.js → p-a5066804.system.entry.js} +1 -1
  372. package/lib/duet/{p-29301434.system.entry.js → p-ac1cf4f6.system.entry.js} +1 -1
  373. package/lib/duet/{p-3a63e778.entry.js → p-adf1bd67.entry.js} +1 -1
  374. package/lib/duet/{p-10d39a4b.system.entry.js → p-afcd0356.system.entry.js} +1 -1
  375. package/lib/duet/{p-50559904.system.entry.js → p-b8182937.system.entry.js} +1 -1
  376. package/lib/duet/{p-96783b15.system.entry.js → p-b86feb9d.system.entry.js} +1 -1
  377. package/lib/duet/{p-a58f1913.system.entry.js → p-bb4a6a02.system.entry.js} +1 -1
  378. package/lib/duet/{p-b3fac2f5.entry.js → p-bbd94845.entry.js} +1 -1
  379. package/lib/duet/{p-f99a14a4.system.entry.js → p-bdec8ea8.system.entry.js} +1 -1
  380. package/lib/duet/{p-e3f76452.entry.js → p-bf2f9155.entry.js} +1 -1
  381. package/lib/duet/{p-e7bc8481.entry.js → p-bfc33dbb.entry.js} +1 -1
  382. package/lib/duet/{p-a45fe7ea.system.entry.js → p-c24529b8.system.entry.js} +1 -1
  383. package/lib/duet/{p-4fe29741.entry.js → p-c4a1468e.entry.js} +1 -1
  384. package/lib/duet/{p-deff3c18.entry.js → p-c6995ff3.entry.js} +1 -1
  385. package/lib/duet/{p-f7681856.system.entry.js → p-c7b3d9fd.system.entry.js} +1 -1
  386. package/lib/duet/p-c8564169.entry.js +4 -0
  387. package/lib/duet/{p-1f3ff1d7.system.entry.js → p-c9e8f35b.system.entry.js} +1 -1
  388. package/lib/duet/{p-fce3d5cc.system.entry.js → p-cdb63bbf.system.entry.js} +1 -1
  389. package/lib/duet/{p-0571c7df.system.entry.js → p-d156e8f9.system.entry.js} +1 -1
  390. package/lib/duet/{p-cfc901c8.entry.js → p-d547e4b8.entry.js} +1 -1
  391. package/lib/duet/{p-4f40d4b7.system.entry.js → p-d5e534d5.system.entry.js} +1 -1
  392. package/lib/duet/{p-cd03ee1c.entry.js → p-d6f9146f.entry.js} +1 -1
  393. package/lib/duet/{p-65126f35.system.entry.js → p-d76fa43c.system.entry.js} +1 -1
  394. package/lib/duet/{p-fa5eff27.js → p-d82b4974.js} +1 -1
  395. package/lib/duet/{p-ea0d7900.entry.js → p-d8d7c90b.entry.js} +1 -1
  396. package/lib/duet/{p-5935bb9e.system.entry.js → p-d936b946.system.entry.js} +1 -1
  397. package/lib/duet/{p-71fa6c5f.entry.js → p-da9e040d.entry.js} +1 -1
  398. package/lib/duet/{p-62d011ba.entry.js → p-db5e6b96.entry.js} +1 -1
  399. package/lib/duet/{p-df7a726b.entry.js → p-ddb1fc3d.entry.js} +1 -1
  400. package/lib/duet/{p-f0f494dc.system.js → p-def3d03c.system.js} +1 -1
  401. package/lib/duet/{p-02064d40.entry.js → p-e0e04af9.entry.js} +1 -1
  402. package/lib/duet/{p-e6a09596.entry.js → p-e1fbb2f0.entry.js} +1 -1
  403. package/lib/duet/{p-936894c4.entry.js → p-e31f82e8.entry.js} +1 -1
  404. package/lib/duet/{p-4aada7ef.system.entry.js → p-e3832e69.system.entry.js} +1 -1
  405. package/lib/duet/{p-937a64ee.system.entry.js → p-e39b3463.system.entry.js} +1 -1
  406. package/lib/duet/p-e639b9ee.system.js +4 -0
  407. package/lib/duet/{p-798d2be8.entry.js → p-eb2092ea.entry.js} +1 -1
  408. package/lib/duet/{p-ea787367.system.entry.js → p-ebd9d168.system.entry.js} +1 -1
  409. package/lib/duet/p-ed995372.js +4 -0
  410. package/lib/duet/{p-a6a2c0c2.entry.js → p-f10c1b71.entry.js} +1 -1
  411. package/lib/duet/{p-54cbe86f.system.entry.js → p-f11ee829.system.entry.js} +1 -1
  412. package/lib/duet/{p-01cb4eba.entry.js → p-f442a901.entry.js} +1 -1
  413. package/lib/duet/{p-b671985e.entry.js → p-f75d4521.entry.js} +1 -1
  414. package/lib/duet/{p-3611d8db.entry.js → p-f860fa92.entry.js} +1 -1
  415. package/lib/duet/{p-c8fd77c9.system.entry.js → p-f9567972.system.entry.js} +1 -1
  416. package/lib/duet/{p-94d25cb5.entry.js → p-f97b0583.entry.js} +1 -1
  417. package/lib/duet/{p-596fd1f4.entry.js → p-fcda7bb3.entry.js} +1 -1
  418. package/lib/duet/{p-9f23897e.system.entry.js → p-fdf3ee51.system.entry.js} +1 -1
  419. package/lib/duet/{p-d26277f5.entry.js → p-ff048b43.entry.js} +1 -1
  420. package/lib/esm/action-new-window-9c8f7830.js +8 -0
  421. package/lib/esm/duet-action-button.entry.js +3 -3
  422. package/lib/esm/duet-alert.entry.js +1 -1
  423. package/lib/esm/duet-badge.entry.js +1 -1
  424. package/lib/esm/duet-banner.entry.js +9 -8
  425. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  426. package/lib/esm/duet-breadcrumbs.entry.js +3 -3
  427. package/lib/esm/duet-button_2.entry.js +3 -3
  428. package/lib/esm/duet-callout.entry.js +1 -1
  429. package/lib/esm/duet-caption_4.entry.js +45 -21
  430. package/lib/esm/duet-card.entry.js +3 -3
  431. package/lib/esm/duet-checkbox.entry.js +1 -1
  432. package/lib/esm/duet-checkmark.entry.js +1 -1
  433. package/lib/esm/duet-chip.entry.js +1 -1
  434. package/lib/esm/duet-choice_2.entry.js +2 -2
  435. package/lib/esm/duet-collapsible.entry.js +2 -2
  436. package/lib/esm/duet-combobox.entry.js +1 -1
  437. package/lib/esm/duet-contact-card.entry.js +1 -1
  438. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  439. package/lib/esm/duet-date-picker.entry.js +2 -2
  440. package/lib/esm/duet-divider_2.entry.js +3 -3
  441. package/lib/esm/duet-editable-table_3.entry.js +56 -9
  442. package/lib/esm/duet-empty-state.entry.js +1 -1
  443. package/lib/esm/duet-fieldset.entry.js +1 -1
  444. package/lib/esm/duet-file-chooser.entry.js +1 -1
  445. package/lib/esm/duet-footer.entry.js +2 -4
  446. package/lib/esm/duet-grid_2.entry.js +2 -2
  447. package/lib/esm/duet-header_2.entry.js +4 -4
  448. package/lib/esm/duet-hero.entry.js +1 -1
  449. package/lib/esm/duet-icon.entry.js +3 -3
  450. package/lib/esm/duet-input_2.entry.js +3 -3
  451. package/lib/esm/duet-layout.entry.js +1 -1
  452. package/lib/esm/duet-list_2.entry.js +1 -1
  453. package/lib/esm/duet-menu-bar-button.entry.js +2 -2
  454. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +1 -1
  455. package/lib/esm/duet-menu-bar-dropdown.entry.js +2 -2
  456. package/lib/esm/duet-menu-bar-item.entry.js +2 -2
  457. package/lib/esm/duet-menu-bar-link.entry.js +2 -2
  458. package/lib/esm/duet-menu-bar.entry.js +2 -2
  459. package/lib/esm/duet-modal.entry.js +4 -4
  460. package/lib/esm/duet-multiselect.entry.js +1 -1
  461. package/lib/esm/duet-nav.entry.js +1 -1
  462. package/lib/esm/duet-notification_2.entry.js +1 -1
  463. package/lib/esm/duet-number-input.entry.js +1 -1
  464. package/lib/esm/duet-page-heading.entry.js +1 -1
  465. package/lib/esm/duet-pagination_2.entry.js +4 -4
  466. package/lib/esm/duet-popup-menu-item.entry.js +1 -1
  467. package/lib/esm/duet-popup-menu.entry.js +9 -4
  468. package/lib/esm/duet-progress.entry.js +1 -1
  469. package/lib/esm/duet-promo-card.entry.js +3 -3
  470. package/lib/esm/duet-radio_2.entry.js +1 -1
  471. package/lib/esm/duet-range-slider.entry.js +2 -2
  472. package/lib/esm/duet-scrollable_3.entry.js +3 -3
  473. package/lib/esm/duet-section-layout.entry.js +1 -1
  474. package/lib/esm/duet-select.entry.js +1 -1
  475. package/lib/esm/duet-shaped-image.entry.js +1 -1
  476. package/lib/esm/duet-show-more.entry.js +1 -1
  477. package/lib/esm/duet-slideout-lang.entry.js +1 -1
  478. package/lib/esm/duet-slideout-link.entry.js +1 -1
  479. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  480. package/lib/esm/duet-slideout-panel.entry.js +4 -4
  481. package/lib/esm/duet-slideout.entry.js +5 -5
  482. package/lib/esm/duet-step_2.entry.js +1 -1
  483. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +1 -1
  484. package/lib/esm/duet-submenu-bar-dropdown.entry.js +2 -2
  485. package/lib/esm/duet-submenu-bar-item.entry.js +2 -2
  486. package/lib/esm/duet-submenu-bar-link.entry.js +2 -2
  487. package/lib/esm/duet-submenu-bar.entry.js +6 -5
  488. package/lib/esm/duet-textarea.entry.js +1 -1
  489. package/lib/esm/duet-toggle.entry.js +1 -1
  490. package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -1
  491. package/lib/esm/duet-toolbar-dropdown.entry.js +1 -1
  492. package/lib/esm/duet-toolbar-item.entry.js +1 -1
  493. package/lib/esm/duet-toolbar-link.entry.js +1 -1
  494. package/lib/esm/duet-toolbar.entry.js +1 -1
  495. package/lib/esm/duet-tooltip-button_2.entry.js +2 -2
  496. package/lib/esm/duet-tooltip.entry.js +3 -3
  497. package/lib/esm/duet-tray.entry.js +2 -2
  498. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  499. package/lib/esm/duet-upload-item.entry.js +9 -2
  500. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  501. package/lib/esm/duet.js +3 -3
  502. package/lib/{dist-custom-elements/p-00c8a755.js → esm/floating-ui.dom.esm-34e0a5fa.js} +60 -20
  503. package/lib/esm/{focus-utils-82a898ac.js → focus-utils-c70f9fb9.js} +1 -1
  504. package/lib/esm/{index-28be88c1.js → index-3c6b5eb8.js} +1 -1
  505. package/lib/esm/loader.js +3 -3
  506. package/lib/esm/{token-utils-0c77cb3c.js → token-utils-be83d039.js} +1 -1
  507. package/lib/{dist-custom-elements/p-d81ec707.js → esm/tokens-94133fa9.js} +3 -0
  508. package/lib/esm/{tokens.module-c9866649.js → tokens.module-3547915d.js} +2 -0
  509. package/lib/esm-es5/action-new-window-9c8f7830.js +4 -0
  510. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  511. package/lib/esm-es5/duet-alert.entry.js +1 -1
  512. package/lib/esm-es5/duet-badge.entry.js +1 -1
  513. package/lib/esm-es5/duet-banner.entry.js +1 -1
  514. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  515. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  516. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  517. package/lib/esm-es5/duet-callout.entry.js +1 -1
  518. package/lib/esm-es5/duet-caption_4.entry.js +2 -2
  519. package/lib/esm-es5/duet-card.entry.js +1 -1
  520. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  521. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  522. package/lib/esm-es5/duet-chip.entry.js +1 -1
  523. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  524. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  525. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  526. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  527. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  528. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  529. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  530. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  531. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  532. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  533. package/lib/esm-es5/duet-file-chooser.entry.js +1 -1
  534. package/lib/esm-es5/duet-footer.entry.js +1 -1
  535. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  536. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  537. package/lib/esm-es5/duet-hero.entry.js +1 -1
  538. package/lib/esm-es5/duet-icon.entry.js +1 -1
  539. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  540. package/lib/esm-es5/duet-layout.entry.js +1 -1
  541. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  542. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  543. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  544. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +2 -2
  545. package/lib/esm-es5/duet-menu-bar-item.entry.js +1 -1
  546. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  547. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  548. package/lib/esm-es5/duet-modal.entry.js +1 -1
  549. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  550. package/lib/esm-es5/duet-nav.entry.js +1 -1
  551. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  552. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  553. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  554. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  555. package/lib/esm-es5/duet-popup-menu-item.entry.js +1 -1
  556. package/lib/esm-es5/duet-popup-menu.entry.js +1 -1
  557. package/lib/esm-es5/duet-progress.entry.js +1 -1
  558. package/lib/esm-es5/duet-promo-card.entry.js +2 -2
  559. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  560. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  561. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  562. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  563. package/lib/esm-es5/duet-select.entry.js +1 -1
  564. package/lib/esm-es5/duet-shaped-image.entry.js +1 -1
  565. package/lib/esm-es5/duet-show-more.entry.js +1 -1
  566. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  567. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  568. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  569. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  570. package/lib/esm-es5/duet-slideout.entry.js +1 -1
  571. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  572. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  573. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  574. package/lib/esm-es5/duet-submenu-bar-item.entry.js +1 -1
  575. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  576. package/lib/esm-es5/duet-submenu-bar.entry.js +2 -2
  577. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  578. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  579. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  580. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  581. package/lib/esm-es5/duet-toolbar-item.entry.js +1 -1
  582. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  583. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  584. package/lib/esm-es5/duet-tooltip-button_2.entry.js +1 -1
  585. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  586. package/lib/esm-es5/duet-tray.entry.js +1 -1
  587. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  588. package/lib/esm-es5/duet-upload-item.entry.js +2 -2
  589. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  590. package/lib/esm-es5/duet.js +1 -1
  591. package/lib/esm-es5/floating-ui.dom.esm-34e0a5fa.js +4 -0
  592. package/lib/esm-es5/{focus-utils-82a898ac.js → focus-utils-c70f9fb9.js} +1 -1
  593. package/lib/esm-es5/{index-28be88c1.js → index-3c6b5eb8.js} +1 -1
  594. package/lib/esm-es5/loader.js +1 -1
  595. package/lib/esm-es5/{token-utils-0c77cb3c.js → token-utils-be83d039.js} +1 -1
  596. package/lib/esm-es5/tokens-94133fa9.js +4 -0
  597. package/lib/esm-es5/tokens.module-3547915d.js +4 -0
  598. package/lib/types/common-types.d.ts +1 -1
  599. package/lib/types/components/duet-link/duet-link.d.ts +13 -5
  600. package/lib/types/components/duet-popup-menu/duet-popup-menu.d.ts +4 -0
  601. package/lib/types/components/duet-upload/duet-upload.d.ts +13 -0
  602. package/lib/types/components/duet-upload-item/duet-upload-item.d.ts +8 -0
  603. package/lib/types/components.d.ts +48 -6
  604. package/lib/types/utils/string-utils.d.ts +4 -0
  605. package/package.json +7 -6
  606. package/lib/cjs/action-arrow-right-24fe06be.js +0 -8
  607. package/lib/dist-custom-elements/p-6fa39608.js +0 -6
  608. package/lib/dist-custom-elements/p-e052b3b5.js +0 -169
  609. package/lib/duet/p-00c8a755.js +0 -4
  610. package/lib/duet/p-04423d37.system.entry.js +0 -4
  611. package/lib/duet/p-129bd497.system.entry.js +0 -4
  612. package/lib/duet/p-15fde8cc.system.js +0 -4
  613. package/lib/duet/p-1cf9481d.entry.js +0 -4
  614. package/lib/duet/p-1ededd77.system.js +0 -4
  615. package/lib/duet/p-20a0342c.entry.js +0 -4
  616. package/lib/duet/p-232940fa.system.js +0 -4
  617. package/lib/duet/p-2acaaa8b.entry.js +0 -4
  618. package/lib/duet/p-2ba2a50c.system.entry.js +0 -4
  619. package/lib/duet/p-3134bfb1.system.entry.js +0 -4
  620. package/lib/duet/p-5a031276.entry.js +0 -4
  621. package/lib/duet/p-69aa5532.system.entry.js +0 -4
  622. package/lib/duet/p-6fa39608.js +0 -4
  623. package/lib/duet/p-72fd7bb2.entry.js +0 -4
  624. package/lib/duet/p-81f6a1a9.system.entry.js +0 -4
  625. package/lib/duet/p-9a056716.entry.js +0 -4
  626. package/lib/duet/p-c0f44540.entry.js +0 -4
  627. package/lib/duet/p-c34022cb.entry.js +0 -4
  628. package/lib/duet/p-d81ec707.js +0 -4
  629. package/lib/duet/p-dd994793.system.js +0 -4
  630. package/lib/duet/p-ddd516cc.entry.js +0 -4
  631. package/lib/duet/p-e1868c94.system.js +0 -4
  632. package/lib/duet/p-f9932852.entry.js +0 -4
  633. package/lib/esm/action-arrow-right-f7d56681.js +0 -6
  634. package/lib/esm-es5/action-arrow-right-f7d56681.js +0 -4
  635. package/lib/esm-es5/floating-ui.dom.esm-efad5c89.js +0 -4
  636. package/lib/esm-es5/tokens-30d01e1d.js +0 -4
  637. package/lib/esm-es5/tokens.module-c9866649.js +0 -4
  638. /package/lib/cjs/{bodyScrollLock.es6-83f334d1.js → bodyScrollLock.es6-dd2d7d91.js} +0 -0
  639. /package/lib/dist-custom-elements/{p-62c7d9d4.js → p-33937fd7.js} +0 -0
  640. /package/lib/dist-custom-elements/{p-141e14d0.js → p-8354d1f1.js} +0 -0
  641. /package/lib/duet/{p-ed5a5071.system.js → p-49957220.system.js} +0 -0
  642. /package/lib/duet/{p-141e14d0.js → p-8354d1f1.js} +0 -0
  643. /package/lib/esm/{bodyScrollLock.es6-8dc7cca7.js → bodyScrollLock.es6-ecbf187e.js} +0 -0
  644. /package/lib/esm-es5/{bodyScrollLock.es6-8dc7cca7.js → bodyScrollLock.es6-ecbf187e.js} +0 -0
package/hydrate/index.js CHANGED
@@ -7930,6 +7930,7 @@ const fontSizeXSmall = "0.75rem";
7930
7930
  const radiusSharp = "0";
7931
7931
  const radiusDefault = "4px";
7932
7932
  const radiusMedium = "8px";
7933
+ const radiusIntermediate = "12px";
7933
7934
  const radiusLarge = "16px";
7934
7935
  const radiusCircle = "50%";
7935
7936
  const radiusPill = "20rem";
@@ -8093,6 +8094,7 @@ var tokens$2 = /*#__PURE__*/Object.freeze({
8093
8094
  radiusSharp: radiusSharp,
8094
8095
  radiusDefault: radiusDefault,
8095
8096
  radiusMedium: radiusMedium,
8097
+ radiusIntermediate: radiusIntermediate,
8096
8098
  radiusLarge: radiusLarge,
8097
8099
  radiusCircle: radiusCircle,
8098
8100
  radiusPill: radiusPill,
@@ -8722,7 +8724,7 @@ const checkNamedSlotElement = (hostElement, slotName, selector, maxChildren = 0,
8722
8724
  }
8723
8725
  };
8724
8726
 
8725
- const duetBannerCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-banner,*.sc-duet-banner::after,*.sc-duet-banner::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-banner-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:4px !important;margin-bottom:2px !important;display:block;width:auto}/*!@:host:last-child, :host:last-of-type*/.sc-duet-banner-h:last-child,.sc-duet-banner-h:last-of-type{margin-right:0 !important}/*!@:host(.duet-m-0)*/.duet-m-0.sc-duet-banner-h{margin:0 !important}/*!@.duet-banner*/.duet-banner.sc-duet-banner{display:grid;width:100%;height:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-style:normal;text-align:left;border-radius:24px}/*!@.duet-banner.duet-p-0*/.duet-banner.duet-p-0.sc-duet-banner{padding:0 !important}/*!@.duet-banner.duet-m-0*/.duet-banner.duet-m-0.sc-duet-banner{margin:0 !important}/*!@.duet-banner .visual*/.duet-banner.sc-duet-banner .visual.sc-duet-banner{position:relative;overflow:hidden;border-top-left-radius:24px;border-top-right-radius:24px}/*!@.duet-banner .visual .image-container*/.duet-banner.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{position:relative;width:400px;height:400px;overflow:hidden;border-radius:20%;transform:rotate(7deg)}/*!@.duet-banner .visual .image*/.duet-banner.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{position:relative;top:20px;width:100%;height:100%;transform:rotate(-7deg);object-fit:cover}/*!@.duet-banner .visual .icon*/.duet-banner.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{position:absolute}/*!@.duet-banner .content*/.duet-banner.sc-duet-banner .content.sc-duet-banner{display:flex;flex-direction:column;gap:8px;padding:0 20px 36px}/*!@.duet-banner .content .description*/.duet-banner.sc-duet-banner .content.sc-duet-banner .description.sc-duet-banner{hyphens:auto}/*!@.duet-banner .action*/.duet-banner.sc-duet-banner .action.sc-duet-banner{display:flex;flex-direction:column;flex-grow:1;align-items:flex-start;justify-content:flex-end;padding-top:16px}/*!@.duet-banner.small*/.duet-banner.small.sc-duet-banner{grid-template-rows:335px 1fr;max-width:335px}/*!@.duet-banner.small .visual*/.duet-banner.small.sc-duet-banner .visual.sc-duet-banner{border-top-left-radius:24px;border-top-right-radius:24px}/*!@.duet-banner.small .visual .image-container*/.duet-banner.small.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-130px;left:-40px}/*!@.duet-banner.small .visual .icon*/.duet-banner.small.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:30px;left:15px}/*!@.duet-banner.medium*/.duet-banner.medium.sc-duet-banner{grid-template-rows:none;grid-template-columns:50% 50%;min-width:500px;max-width:542px;height:288px}/*!@.duet-banner.medium .visual*/.duet-banner.medium.sc-duet-banner .visual.sc-duet-banner{border-top-left-radius:24px;border-bottom-left-radius:24px}/*!@.duet-banner.medium .visual .image-container*/.duet-banner.medium.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{position:absolute;bottom:-72px;left:-178px}/*!@.duet-banner.medium .visual .image*/.duet-banner.medium.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{width:auto;height:auto}/*!@.duet-banner.medium .visual .icon*/.duet-banner.medium.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{top:36px;left:168px}/*!@.duet-banner.medium .content*/.duet-banner.medium.sc-duet-banner .content.sc-duet-banner{align-items:flex-start;justify-content:center;padding:0 72px 0 0}/*!@.duet-banner.medium .action*/.duet-banner.medium.sc-duet-banner .action.sc-duet-banner{flex-grow:0}/*!@.duet-banner.large*/.duet-banner.large.sc-duet-banner{grid-template-rows:none;grid-template-columns:50% 50%;min-width:900px;max-width:1112px;height:320px;max-height:none}/*!@.duet-banner.large .visual*/.duet-banner.large.sc-duet-banner .visual.sc-duet-banner{border-top-left-radius:24px;border-bottom-left-radius:24px}/*!@.duet-banner.large .visual .image-container*/.duet-banner.large.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{position:relative;top:-30px;left:-30px}/*!@.duet-banner.large .visual .image*/.duet-banner.large.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:-15px;left:30px;width:100%;height:100%}/*!@.duet-banner.large .visual .icon*/.duet-banner.large.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{top:40px;bottom:auto;left:335px}/*!@.duet-banner.large .content*/.duet-banner.large.sc-duet-banner .content.sc-duet-banner{align-items:flex-start;justify-content:center;padding:0 72px 0 0}/*!@.duet-banner.large .action*/.duet-banner.large.sc-duet-banner .action.sc-duet-banner{flex-grow:0}@media (max-width: 35.9375em){/*!@.duet-banner.auto*/.duet-banner.auto.sc-duet-banner{grid-template-rows:335px 1fr;max-width:335px}/*!@.duet-banner.auto .visual*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner{border-top-left-radius:24px;border-top-right-radius:24px}/*!@.duet-banner.auto .visual .image-container*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-130px;left:-40px}/*!@.duet-banner.auto .visual .icon*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:30px;left:15px}}@media (min-width: 36em){/*!@.duet-banner.auto*/.duet-banner.auto.sc-duet-banner{grid-template-rows:none;grid-template-columns:50% 50%;min-width:500px;max-width:542px;height:288px}/*!@.duet-banner.auto .visual*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner{border-top-left-radius:24px;border-bottom-left-radius:24px}/*!@.duet-banner.auto .visual .image-container*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{position:absolute;bottom:-72px;left:-178px}/*!@.duet-banner.auto .visual .image*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{width:auto;height:auto}/*!@.duet-banner.auto .visual .icon*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{top:36px;left:168px}/*!@.duet-banner.auto .content*/.duet-banner.auto.sc-duet-banner .content.sc-duet-banner{align-items:flex-start;justify-content:center;padding:0 72px 0 0}/*!@.duet-banner.auto .action*/.duet-banner.auto.sc-duet-banner .action.sc-duet-banner{flex-grow:0}}@media (min-width: 62em){/*!@.duet-banner.auto*/.duet-banner.auto.sc-duet-banner{grid-template-rows:none;grid-template-columns:50% 50%;min-width:900px;max-width:1112px;height:320px;max-height:none}/*!@.duet-banner.auto .visual*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner{border-top-left-radius:24px;border-bottom-left-radius:24px}/*!@.duet-banner.auto .visual .image-container*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{position:relative;top:-30px;left:-30px}/*!@.duet-banner.auto .visual .image*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:-15px;left:30px;width:100%;height:100%}/*!@.duet-banner.auto .visual .icon*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{top:40px;bottom:auto;left:335px}/*!@.duet-banner.auto .content*/.duet-banner.auto.sc-duet-banner .content.sc-duet-banner{align-items:flex-start;justify-content:center;padding:0 72px 0 0}/*!@.duet-banner.auto .action*/.duet-banner.auto.sc-duet-banner .action.sc-duet-banner{flex-grow:0}}/*!@.duet-banner.duet-theme-turva*/.duet-banner.duet-theme-turva.sc-duet-banner{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-banner.duet-theme-turva .visual .image-container*/.duet-banner.duet-theme-turva.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{width:526px;height:456px;transform:none;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-repeat:no-repeat}/*!@.duet-banner.duet-theme-turva .visual .image*/.duet-banner.duet-theme-turva.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{transform:none}/*!@.duet-banner.duet-theme-turva.small .visual .image-container*/.duet-banner.duet-theme-turva.small.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-164px;left:-147px}/*!@.duet-banner.duet-theme-turva.small .visual .image*/.duet-banner.duet-theme-turva.small.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:0;left:0}/*!@.duet-banner.duet-theme-turva.small .visual .icon*/.duet-banner.duet-theme-turva.small.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:15px}/*!@.duet-banner.duet-theme-turva.large .visual .image-container*/.duet-banner.duet-theme-turva.large.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-54.923px;left:-147px}/*!@.duet-banner.duet-theme-turva.large .visual .image*/.duet-banner.duet-theme-turva.large.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:0;left:0}/*!@.duet-banner.duet-theme-turva.large .visual .icon*/.duet-banner.duet-theme-turva.large.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:auto;left:295px}/*!@.duet-banner.duet-theme-turva.auto .visual .image-container*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-164px;left:-147px}/*!@.duet-banner.duet-theme-turva.auto .visual .image*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:0;left:0}/*!@.duet-banner.duet-theme-turva.auto .visual .icon*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:15px}@media (min-width: 62em){/*!@.duet-banner.duet-theme-turva.auto .visual .image-container*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-54.923px;left:-147px}/*!@.duet-banner.duet-theme-turva.auto .visual .image*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:0;left:0}/*!@.duet-banner.duet-theme-turva.auto .visual .icon*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:auto;left:295px}}";
8727
+ const duetBannerCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-banner,*.sc-duet-banner::after,*.sc-duet-banner::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-banner-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:4px !important;margin-bottom:2px !important;display:block;width:auto}/*!@:host:last-child, :host:last-of-type*/.sc-duet-banner-h:last-child,.sc-duet-banner-h:last-of-type{margin-right:0 !important}/*!@:host(.duet-m-0)*/.duet-m-0.sc-duet-banner-h{margin:0 !important}/*!@.duet-banner*/.duet-banner.sc-duet-banner{display:grid;width:100%;height:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-style:normal;text-align:left;border-radius:24px}/*!@.duet-banner.duet-p-0*/.duet-banner.duet-p-0.sc-duet-banner{padding:0 !important}/*!@.duet-banner.duet-m-0*/.duet-banner.duet-m-0.sc-duet-banner{margin:0 !important}/*!@.duet-banner .visual*/.duet-banner.sc-duet-banner .visual.sc-duet-banner{position:relative;overflow:hidden;border-top-left-radius:24px;border-top-right-radius:24px}/*!@.duet-banner .visual .image-container*/.duet-banner.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{position:relative;width:400px;height:400px;overflow:hidden;border-radius:20%;transform:rotate(7deg)}/*!@.duet-banner .visual .image*/.duet-banner.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{position:relative;top:20px;width:100%;height:100%;transform:rotate(-7deg);object-fit:cover}/*!@.duet-banner .visual .icon*/.duet-banner.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{position:absolute}/*!@.duet-banner .content*/.duet-banner.sc-duet-banner .content.sc-duet-banner{display:flex;flex-direction:column;gap:8px;padding:0 20px 36px}/*!@.duet-banner .content .description*/.duet-banner.sc-duet-banner .content.sc-duet-banner .description.sc-duet-banner{hyphens:auto}/*!@.duet-banner .action*/.duet-banner.sc-duet-banner .action.sc-duet-banner{display:flex;flex-direction:column;flex-grow:1;align-items:flex-start;justify-content:flex-end;padding-top:16px}/*!@.duet-banner.small*/.duet-banner.small.sc-duet-banner{grid-template-rows:335px 1fr;max-width:335px}/*!@.duet-banner.small .visual*/.duet-banner.small.sc-duet-banner .visual.sc-duet-banner{border-top-left-radius:24px;border-top-right-radius:24px}/*!@.duet-banner.small .visual .image-container*/.duet-banner.small.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-130px;left:-40px}/*!@.duet-banner.small .visual .icon*/.duet-banner.small.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:30px;left:15px}/*!@.duet-banner.medium*/.duet-banner.medium.sc-duet-banner{grid-template-rows:none;grid-template-columns:50% 50%;min-width:500px;max-width:542px;height:288px}/*!@.duet-banner.medium .visual*/.duet-banner.medium.sc-duet-banner .visual.sc-duet-banner{border-top-left-radius:24px;border-bottom-left-radius:24px}/*!@.duet-banner.medium .visual .image-container*/.duet-banner.medium.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{position:absolute;bottom:-72px;left:-178px}/*!@.duet-banner.medium .visual .image*/.duet-banner.medium.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{width:auto;height:auto}/*!@.duet-banner.medium .visual .icon*/.duet-banner.medium.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{top:36px;left:168px}/*!@.duet-banner.medium .content*/.duet-banner.medium.sc-duet-banner .content.sc-duet-banner{align-items:flex-start;justify-content:center;padding:0 72px 0 0}/*!@.duet-banner.medium .action*/.duet-banner.medium.sc-duet-banner .action.sc-duet-banner{flex-grow:0}/*!@.duet-banner.large*/.duet-banner.large.sc-duet-banner{grid-template-rows:none;grid-template-columns:50% 50%;min-width:900px;max-width:1112px;height:320px;max-height:none}/*!@.duet-banner.large .visual*/.duet-banner.large.sc-duet-banner .visual.sc-duet-banner{border-top-left-radius:24px;border-bottom-left-radius:24px}/*!@.duet-banner.large .visual .image-container*/.duet-banner.large.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{position:relative;top:-30px;left:-30px}/*!@.duet-banner.large .visual .image*/.duet-banner.large.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:-15px;left:30px;width:100%;height:100%}/*!@.duet-banner.large .visual .icon*/.duet-banner.large.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{top:40px;bottom:auto;left:335px}/*!@.duet-banner.large .content*/.duet-banner.large.sc-duet-banner .content.sc-duet-banner{align-items:flex-start;justify-content:center;padding:0 72px 0 0}/*!@.duet-banner.large .action*/.duet-banner.large.sc-duet-banner .action.sc-duet-banner{flex-grow:0}@media (max-width: 35.9375em){/*!@.duet-banner.auto*/.duet-banner.auto.sc-duet-banner{grid-template-rows:335px 1fr;max-width:335px}/*!@.duet-banner.auto .visual*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner{border-top-left-radius:24px;border-top-right-radius:24px}/*!@.duet-banner.auto .visual .image-container*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-130px;left:-40px}/*!@.duet-banner.auto .visual .icon*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:30px;left:15px}}@media (min-width: 36em){/*!@.duet-banner.auto*/.duet-banner.auto.sc-duet-banner{grid-template-rows:none;grid-template-columns:50% 50%;min-width:500px;max-width:542px;height:288px}/*!@.duet-banner.auto .visual*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner{border-top-left-radius:24px;border-bottom-left-radius:24px}/*!@.duet-banner.auto .visual .image-container*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{position:absolute;bottom:-72px;left:-178px}/*!@.duet-banner.auto .visual .image*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{width:auto;height:auto}/*!@.duet-banner.auto .visual .icon*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{top:36px;left:168px}/*!@.duet-banner.auto .content*/.duet-banner.auto.sc-duet-banner .content.sc-duet-banner{align-items:flex-start;justify-content:center;padding:0 72px 0 0}/*!@.duet-banner.auto .action*/.duet-banner.auto.sc-duet-banner .action.sc-duet-banner{flex-grow:0}}@media (min-width: 62em){/*!@.duet-banner.auto*/.duet-banner.auto.sc-duet-banner{grid-template-rows:none;grid-template-columns:50% 50%;min-width:900px;max-width:1112px;height:320px;max-height:none}/*!@.duet-banner.auto .visual*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner{border-top-left-radius:24px;border-bottom-left-radius:24px}/*!@.duet-banner.auto .visual .image-container*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{position:relative;top:-30px;left:-30px}/*!@.duet-banner.auto .visual .image*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:-15px;left:30px;width:100%;height:100%}/*!@.duet-banner.auto .visual .icon*/.duet-banner.auto.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{top:40px;bottom:auto;left:335px}/*!@.duet-banner.auto .content*/.duet-banner.auto.sc-duet-banner .content.sc-duet-banner{align-items:flex-start;justify-content:center;padding:0 72px 0 0}/*!@.duet-banner.auto .action*/.duet-banner.auto.sc-duet-banner .action.sc-duet-banner{flex-grow:0}}/*!@.duet-banner.duet-theme-turva*/.duet-banner.duet-theme-turva.sc-duet-banner{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-banner.duet-theme-turva .visual .image-container*/.duet-banner.duet-theme-turva.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{width:526px;height:456px;transform:none;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");-webkit-mask-repeat:no-repeat;mask-image:url(\"data:image/svg+xml,%3Csvg%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20140%22%3E%3Cpath%20d%3D%22M87.8%20139.6a57.3%2057.3%200%2000-18.4-3.3c-8-.5-16.3-2.5-24.6-6-16.7-7-29-18.7-37.1-35.3a73.5%2073.5%200%2001-5-52.4c1.7-4%203-6.7%204-7.8a33%2033%200%20004-7.8C33.4%203.5%2063.2-4.3%20100%203.2c30.5%204%2049.7%2019.9%2057.6%2047.4l1.6%2024c4.4%2036-11.5%2056-47.5%2060.3-4%202.4-12%203.9-24%204.7%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E\");mask-repeat:no-repeat}/*!@.duet-banner.duet-theme-turva .visual .image*/.duet-banner.duet-theme-turva.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{transform:none}/*!@.duet-banner.duet-theme-turva.small .visual .image-container*/.duet-banner.duet-theme-turva.small.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-164px;left:-147px}/*!@.duet-banner.duet-theme-turva.small .visual .image*/.duet-banner.duet-theme-turva.small.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:0;left:0}/*!@.duet-banner.duet-theme-turva.small .visual .icon*/.duet-banner.duet-theme-turva.small.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:15px}/*!@.duet-banner.duet-theme-turva.medium .visual .image-container*/.duet-banner.duet-theme-turva.medium.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-54.923px;left:-185px;width:410px;height:422px}/*!@.duet-banner.duet-theme-turva.medium .visual .image*/.duet-banner.duet-theme-turva.medium.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:0;left:0}/*!@.duet-banner.duet-theme-turva.large .visual .image-container*/.duet-banner.duet-theme-turva.large.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-54.923px;left:-147px;width:526px;height:456px}/*!@.duet-banner.duet-theme-turva.large .visual .image*/.duet-banner.duet-theme-turva.large.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:0;left:0}/*!@.duet-banner.duet-theme-turva.large .visual .icon*/.duet-banner.duet-theme-turva.large.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:auto;left:295px}/*!@.duet-banner.duet-theme-turva.auto .visual .image-container*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-164px;left:-147px}/*!@.duet-banner.duet-theme-turva.auto .visual .image*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:0;left:0}/*!@.duet-banner.duet-theme-turva.auto .visual .icon*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:15px}@media (min-width: 36em){/*!@.duet-banner.duet-theme-turva.auto .visual .image-container*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-54.923px;left:-185px;width:410px;height:422px}/*!@.duet-banner.duet-theme-turva.auto .visual .image*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:0;left:0}}@media (min-width: 62em){/*!@.duet-banner.duet-theme-turva.auto .visual .image-container*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .image-container.sc-duet-banner{top:-54.923px;left:-147px;width:526px;height:456px}/*!@.duet-banner.duet-theme-turva.auto .visual .image*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .image.sc-duet-banner{top:0;left:0}/*!@.duet-banner.duet-theme-turva.auto .visual .icon*/.duet-banner.duet-theme-turva.auto.sc-duet-banner .visual.sc-duet-banner .icon.sc-duet-banner{bottom:auto;left:295px}}";
8726
8728
 
8727
8729
  /**
8728
8730
  * @slot heading - Slot for heading content. Only span should be used in this slot.
@@ -8737,10 +8739,11 @@ class DuetBanner {
8737
8739
  */
8738
8740
  this.setButtonSize = () => {
8739
8741
  if (this.hasActionSlot) {
8740
- console.log(this.size);
8741
- const button = this.element.querySelector("duet-button[slot='action']");
8742
- if (button.getAttribute("size") === null && this.size !== "large") {
8743
- button.size = "small";
8742
+ const buttons = this.element.querySelectorAll("[slot='action'] duet-button, duet-button[slot='action']");
8743
+ for (const button of buttons) {
8744
+ if (button && button.getAttribute("size") === null && this.size !== "large") {
8745
+ button.size = "small";
8746
+ }
8744
8747
  }
8745
8748
  }
8746
8749
  };
@@ -10439,6 +10442,7 @@ const font_size_x_small = "0.75rem";
10439
10442
  const radius_sharp = "0";
10440
10443
  const radius_default = "4px";
10441
10444
  const radius_medium = "8px";
10445
+ const radius_intermediate = "12px";
10442
10446
  const radius_large = "16px";
10443
10447
  const radius_circle = "50%";
10444
10448
  const radius_pill = "20rem";
@@ -10600,6 +10604,7 @@ var tokens = {
10600
10604
  radius_sharp: radius_sharp,
10601
10605
  radius_default: radius_default,
10602
10606
  radius_medium: radius_medium,
10607
+ radius_intermediate: radius_intermediate,
10603
10608
  radius_large: radius_large,
10604
10609
  radius_circle: radius_circle,
10605
10610
  radius_pill: radius_pill,
@@ -10764,6 +10769,7 @@ var tokens$1 = /*#__PURE__*/Object.freeze({
10764
10769
  radius_sharp: radius_sharp,
10765
10770
  radius_default: radius_default,
10766
10771
  radius_medium: radius_medium,
10772
+ radius_intermediate: radius_intermediate,
10767
10773
  radius_large: radius_large,
10768
10774
  radius_circle: radius_circle,
10769
10775
  radius_pill: radius_pill,
@@ -14536,7 +14542,7 @@ class DuetLayout {
14536
14542
  }; }
14537
14543
  }
14538
14544
 
14539
- const duetLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-link,*.sc-duet-link::after,*.sc-duet-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline}/*!@:host(.duet-link-block)*/.duet-link-block.sc-duet-link-h{display:block}/*!@.duet-link*/.duet-link.sc-duet-link{display:inline;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-style:normal;font-weight:400;color:rgb(0, 119, 179);text-decoration:underline;border-radius:4px;transition:300ms ease}/*!@.duet-link:focus*/.duet-link.sc-duet-link:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@.duet-theme-turva .duet-link:focus, .duet-link:focus.duet-theme-turva*/.duet-theme-turva.sc-duet-link .duet-link.sc-duet-link:focus,.duet-link.sc-duet-link:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-link.duet-theme-turva*/.duet-link.duet-theme-turva.sc-duet-link{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(198, 12, 48)}/*!@.duet-link:hover*/.duet-link.sc-duet-link:hover{color:rgb(0, 77, 128);text-decoration:none}/*!@.duet-link:hover.duet-theme-turva*/.duet-link.sc-duet-link:hover.duet-theme-turva{color:rgb(148, 9, 37)}/*!@.duet-link:active*/.duet-link.sc-duet-link:active{opacity:0.75;transition:none}/*!@.duet-link-is-external.duet-link:not(.block),\n.duet-link-is-download.duet-link:not(.block)*/.duet-link-is-external.duet-link.sc-duet-link:not(.block),.duet-link-is-download.duet-link.sc-duet-link:not(.block){text-decoration:none}/*!@.duet-link-is-external.duet-link:not(.block) .duet-link-content,\n.duet-link-is-download.duet-link:not(.block) .duet-link-content*/.duet-link-is-external.duet-link.sc-duet-link:not(.block) .duet-link-content.sc-duet-link,.duet-link-is-download.duet-link.sc-duet-link:not(.block) .duet-link-content.sc-duet-link{text-decoration:underline}/*!@.duet-link-is-external.duet-link:not(.block):hover > .duet-link-content,\n.duet-link-is-download.duet-link:not(.block):hover > .duet-link-content*/.duet-link-is-external.duet-link.sc-duet-link:not(.block):hover>.duet-link-content.sc-duet-link,.duet-link-is-download.duet-link.sc-duet-link:not(.block):hover>.duet-link-content.sc-duet-link{text-decoration:none}/*!@.duet-link-is-external.duet-link:not(.block) .duet-link-icon-tail,\n.duet-link-is-download.duet-link:not(.block) .duet-link-icon-tail*/.duet-link-is-external.duet-link.sc-duet-link:not(.block) .duet-link-icon-tail.sc-duet-link,.duet-link-is-download.duet-link.sc-duet-link:not(.block) .duet-link-icon-tail.sc-duet-link{text-decoration:none;white-space:nowrap}/*!@.duet-tab-to-link*/.duet-tab-to-link.sc-duet-link{padding:15px 28px 16px !important;position:absolute;top:-100%;left:-100%;z-index:200;width:1px;min-width:190px;height:1px;overflow:hidden;font-weight:600;color:rgb(0, 119, 179);text-align:center;text-decoration:none;background:rgb(255, 255, 255);border-radius:4px;opacity:0;transition:none}/*!@.duet-tab-to-link.duet-theme-turva*/.duet-tab-to-link.duet-theme-turva.sc-duet-link{min-width:120px;color:rgb(23, 28, 58)}@media (min-width: 106.25em){/*!@.duet-tab-to-link*/.duet-tab-to-link.sc-duet-link{margin-left:20px}}/*!@.duet-tab-to-link:focus*/.duet-tab-to-link.sc-duet-link:focus{top:12px;left:20px;width:auto;height:auto;outline:0;opacity:1}/*!@.block.duet-link*/.block.duet-link.sc-duet-link{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start;padding:16px;font-weight:600;color:rgb(0, 41, 77);text-decoration:none}/*!@.block.duet-link.duet-link-has-icon*/.block.duet-link.duet-link-has-icon.sc-duet-link{grid-template-columns:auto 1fr auto}/*!@.block.duet-link.none*/.block.duet-link.none.sc-duet-link{padding:0}/*!@.block .block__content*/.block.sc-duet-link .block__content.sc-duet-link{position:relative;bottom:2px}/*!@.block .block__chevron*/.block.sc-duet-link .block__chevron.sc-duet-link{align-self:center}/*!@.block .block__chevron-icon*/.block.sc-duet-link .block__chevron-icon.sc-duet-link{transition:300ms ease}/*!@.block:hover .block__chevron-icon*/.block.sc-duet-link:hover .block__chevron-icon.sc-duet-link{transform:translateX(4px)}";
14545
+ const duetLinkCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-link,*.sc-duet-link::after,*.sc-duet-link::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-link-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline}/*!@:host(.duet-link-block)*/.duet-link-block.sc-duet-link-h{display:block}/*!@:host(.duet-link-button)*/.duet-link-button.sc-duet-link-h{margin-right:8px !important;margin-bottom:12px !important;display:inline-block;width:100%}/*!@:host(.duet-link-button):last-child, :host(.duet-link-button):last-of-type*/.duet-link-button.sc-duet-link-h:last-child,.duet-link-button.sc-duet-link-h:last-of-type{margin-right:0 !important}/*!@.duet-link*/.duet-link.sc-duet-link{display:inline;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-style:normal;font-weight:400;color:rgb(0, 119, 179);text-decoration:underline;border-radius:4px;transition:300ms ease}/*!@.duet-link:focus*/.duet-link.sc-duet-link:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@.duet-theme-turva .duet-link:focus, .duet-link:focus.duet-theme-turva*/.duet-theme-turva.sc-duet-link .duet-link.sc-duet-link:focus,.duet-link.sc-duet-link:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-link.duet-theme-turva*/.duet-link.duet-theme-turva.sc-duet-link{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(198, 12, 48)}/*!@.duet-link:hover*/.duet-link.sc-duet-link:hover{color:rgb(0, 77, 128);text-decoration:none}/*!@.duet-link:hover.duet-theme-turva*/.duet-link.sc-duet-link:hover.duet-theme-turva{color:rgb(148, 9, 37)}/*!@.duet-link:active*/.duet-link.sc-duet-link:active{opacity:0.75;transition:none}/*!@.duet-link-is-external.duet-link:not(.block, .button),\n.duet-link-is-download.duet-link:not(.block, .button)*/.duet-link-is-external.duet-link.sc-duet-link:not(.block,.button).sc-duet-link,.duet-link-is-download.duet-link.sc-duet-link:not(.block,.button).sc-duet-link{text-decoration:none}/*!@.duet-link-is-external.duet-link:not(.block, .button) .duet-link-content,\n.duet-link-is-download.duet-link:not(.block, .button) .duet-link-content*/.duet-link-is-external.duet-link.sc-duet-link:not(.block,.button).sc-duet-link .duet-link-content.sc-duet-link,.duet-link-is-download.duet-link.sc-duet-link:not(.block,.button).sc-duet-link .duet-link-content.sc-duet-link{text-decoration:underline}/*!@.duet-link-is-external.duet-link:not(.block, .button):hover > .duet-link-content,\n.duet-link-is-download.duet-link:not(.block, .button):hover > .duet-link-content*/.duet-link-is-external.duet-link.sc-duet-link:not(.block,.button).sc-duet-link:hover>.duet-link-content.sc-duet-link,.duet-link-is-download.duet-link.sc-duet-link:not(.block,.button).sc-duet-link:hover>.duet-link-content.sc-duet-link{text-decoration:none}/*!@.duet-link-is-external.duet-link:not(.block, .button) .duet-link-icon-tail,\n.duet-link-is-download.duet-link:not(.block, .button) .duet-link-icon-tail*/.duet-link-is-external.duet-link.sc-duet-link:not(.block,.button).sc-duet-link .duet-link-icon-tail.sc-duet-link,.duet-link-is-download.duet-link.sc-duet-link:not(.block,.button).sc-duet-link .duet-link-icon-tail.sc-duet-link{text-decoration:none;white-space:nowrap}/*!@.duet-tab-to-link*/.duet-tab-to-link.sc-duet-link{padding:15px 28px 16px !important;position:absolute;top:-100%;left:-100%;z-index:200;width:1px;min-width:190px;height:1px;overflow:hidden;font-weight:600;color:rgb(0, 119, 179);text-align:center;text-decoration:none;background:rgb(255, 255, 255);border-radius:4px;opacity:0;transition:none}/*!@.duet-tab-to-link.duet-theme-turva*/.duet-tab-to-link.duet-theme-turva.sc-duet-link{min-width:120px;color:rgb(23, 28, 58)}@media (min-width: 106.25em){/*!@.duet-tab-to-link*/.duet-tab-to-link.sc-duet-link{margin-left:20px}}/*!@.duet-tab-to-link:focus*/.duet-tab-to-link.sc-duet-link:focus{top:12px;left:20px;width:auto;height:auto;outline:0;opacity:1}/*!@.block.duet-link*/.block.duet-link.sc-duet-link{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start;padding:16px;font-weight:600;color:rgb(0, 41, 77);text-decoration:none}/*!@.block.duet-link.duet-link-has-icon*/.block.duet-link.duet-link-has-icon.sc-duet-link{grid-template-columns:auto 1fr auto}/*!@.block.duet-link.none*/.block.duet-link.none.sc-duet-link{padding:0}/*!@.block .block__content*/.block.sc-duet-link .block__content.sc-duet-link{position:relative;bottom:2px}/*!@.block .block__chevron*/.block.sc-duet-link .block__chevron.sc-duet-link{align-self:center}/*!@.block .block__chevron-icon*/.block.sc-duet-link .block__chevron-icon.sc-duet-link{transition:300ms ease}/*!@.block:not(.duet-link-is-external):hover .block__chevron-icon*/.block.sc-duet-link:not(.duet-link-is-external):hover .block__chevron-icon.sc-duet-link{transform:translateX(4px)}/*!@.duet-link.button*/.duet-link.button.sc-duet-link{display:flex;gap:12px;align-items:center;width:100%;min-height:48px;padding:12px;padding-right:20px;text-decoration:none;background-color:rgb(255, 255, 255);border:solid 1px rgb(207, 210, 212);border-radius:12px;outline:0 solid rgb(207, 210, 212);outline-offset:-2px;transition:all 300ms ease}/*!@.duet-link.button > **/.duet-link.button.sc-duet-link>*.sc-duet-link{flex-shrink:0}/*!@.duet-link.button .duet-link-content*/.duet-link.button.sc-duet-link .duet-link-content.sc-duet-link{flex-grow:1;flex-shrink:1;font-size:1rem;font-weight:600;color:rgb(0, 41, 77);text-align:left}/*!@.duet-link.button .icon-wrap*/.duet-link.button.sc-duet-link .icon-wrap.sc-duet-link{display:flex;align-items:center;justify-content:center}/*!@.duet-link.button.duet-link-has-icon-background*/.duet-link.button.duet-link-has-icon-background.sc-duet-link{min-height:60px}/*!@.duet-link.button.duet-link-has-icon-background .icon-wrap*/.duet-link.button.duet-link-has-icon-background.sc-duet-link .icon-wrap.sc-duet-link{width:36px;height:36px;border-radius:8px}/*!@.duet-link.button:hover*/.duet-link.button.sc-duet-link:hover{border-color:rgb(0, 119, 179);outline:2px solid rgb(0, 119, 179)}@media (min-width: 48em){/*!@.duet-link.button*/.duet-link.button.sc-duet-link{gap:16px;min-height:60px;border-radius:16px}/*!@.duet-link.button.duet-link-has-icon-background*/.duet-link.button.duet-link-has-icon-background.sc-duet-link{min-height:72px}/*!@.duet-link.button.duet-link-has-icon-background .icon-wrap*/.duet-link.button.duet-link-has-icon-background.sc-duet-link .icon-wrap.sc-duet-link{width:48px;height:48px;border-radius:12px}/*!@.duet-link.button .duet-link-content*/.duet-link.button.sc-duet-link .duet-link-content.sc-duet-link{font-size:1.1rem}}/*!@.duet-link.button.duet-theme-turva*/.duet-link.button.duet-theme-turva.sc-duet-link{border-color:rgb(207, 207, 209)}/*!@.duet-link.button.duet-theme-turva .duet-link-content*/.duet-link.button.duet-theme-turva.sc-duet-link .duet-link-content.sc-duet-link{color:rgb(23, 28, 58)}/*!@.duet-link.button.duet-theme-turva:hover*/.duet-link.button.duet-theme-turva.sc-duet-link:hover{border-color:rgb(198, 12, 48);outline-color:rgb(198, 12, 48)}/*!@.duet-link.button:not(.duet-link-is-external):hover .block__chevron-icon*/.duet-link.button.sc-duet-link:not(.duet-link-is-external):hover .block__chevron-icon.sc-duet-link{transform:translateX(4px)}";
14540
14546
 
14541
14547
  /**
14542
14548
  * @part duet-link - piercing selector for styling the link
@@ -14561,9 +14567,11 @@ class DuetLink {
14561
14567
  this.tabToLink = false;
14562
14568
  this.icon = undefined;
14563
14569
  this.iconColor = "currentColor";
14570
+ this.iconBackground = null;
14564
14571
  this.iconResponsive = false;
14565
14572
  this.padding = "auto";
14566
14573
  this.isSmallScreen = false;
14574
+ this.isMediumScreen = false;
14567
14575
  }
14568
14576
  /**
14569
14577
  * Component lifecycle events.
@@ -14572,6 +14580,10 @@ class DuetLink {
14572
14580
  inheritGlobalTheme(this);
14573
14581
  this.initMediaQuery();
14574
14582
  this.resolvedDownload = this.resolveDownload();
14583
+ // button variation renders a button element when no url is provided
14584
+ if (this.variation === "button" && this.url === "#") {
14585
+ this.url = undefined;
14586
+ }
14575
14587
  }
14576
14588
  connectedCallback() {
14577
14589
  connectLanguageChangeObserver(this, {
@@ -14621,32 +14633,50 @@ class DuetLink {
14621
14633
  }
14622
14634
  return this.download;
14623
14635
  }
14624
- renderContent() {
14625
- return (hAsync(Fragment, null, hAsync("span", { class: "duet-link-content", part: "duet-link-content" }, hAsync("slot", null)), Build.isBrowser ));
14636
+ renderDefaultContent() {
14637
+ // Notice that the external icon needs to be placed right after the last word of the link.
14638
+ // This is why we use &nbps; to keep everything on the same line.
14639
+ return (hAsync(Fragment, null, hAsync("span", { class: "duet-link-content", part: "duet-link-content" }, hAsync("slot", null)), Build.isBrowser ));
14626
14640
  }
14627
- renderGrid() {
14628
- return (hAsync(Fragment, null, this.icon && (hAsync("span", { class: "block__icon" }, hAsync("duet-icon", { size: this.iconResponsive ? (this.isSmallScreen ? "medium" : "large") : "x-small", name: this.icon, margin: "none", color: this.iconColor }))), hAsync("span", { class: "block__content" }, this.renderContent()), hAsync("span", { class: "block__chevron", part: "block-chevron" }, hAsync("duet-icon", { class: "block__chevron-icon", icon: actionArrowRight.svg, size: "x-small", margin: "none", color: "primary-dark" }))));
14641
+ renderBlockContent() {
14642
+ return (hAsync(Fragment, null, this.icon && (hAsync("span", { class: "block__icon" }, hAsync("duet-icon", { size: this.iconResponsive ? (this.isSmallScreen ? "medium" : "large") : "x-small", name: this.icon, margin: "none", color: this.iconColor }))), hAsync("span", { class: "block__content" }, this.renderDefaultContent()), hAsync("span", { class: "block__chevron", part: "block-chevron" }, hAsync("duet-icon", { class: "block__chevron-icon", icon: this.external ? actionNewWindow.svg : actionArrowRight.svg, size: "x-small", margin: "none", color: "primary-dark" }))));
14643
+ }
14644
+ renderButtonContent() {
14645
+ const iconWrapStyle = {
14646
+ "background-color": getColorByName(this.iconBackground, this.theme),
14647
+ };
14648
+ return (hAsync(Fragment, null, hAsync("span", { class: "icon-wrap", style: iconWrapStyle }, hAsync("duet-icon", { size: this.isMediumScreen ? "small" : "medium", name: this.icon, margin: "none", color: this.iconColor })), hAsync("span", { class: "duet-link-content", part: "duet-link-content" }, hAsync("slot", null)), hAsync("duet-icon", { class: "block__chevron-icon", icon: this.external ? actionNewWindow.svg : actionArrowRight.svg, size: "x-small", margin: "none", color: "primary-dark" })));
14649
+ }
14650
+ renderContent() {
14651
+ switch (this.variation) {
14652
+ case "default":
14653
+ return this.renderDefaultContent();
14654
+ case "block":
14655
+ return this.renderBlockContent();
14656
+ case "button":
14657
+ return this.renderButtonContent();
14658
+ }
14629
14659
  }
14630
14660
  /**
14631
14661
  * render() function
14632
14662
  * Always the last one in the class.
14633
14663
  */
14634
14664
  render() {
14635
- // Notice that the external icon needs to be places right after the last word of the link.
14636
- // This is why we use &nbps; to keep everything on the same line.
14665
+ const Tag = this.variation === "button" && !this.url ? "button" : "a";
14637
14666
  return (hAsync(Host, { class: {
14638
- "duet-link-block": this.variation === "block",
14639
- } }, hAsync("a", { href: this.url, class: {
14667
+ [`duet-link-${this.variation}`]: true,
14668
+ } }, hAsync(Tag, { href: this.url, class: {
14640
14669
  "duet-link": true,
14641
14670
  "duet-link-is-external": this.external,
14642
14671
  "duet-link-is-download": !!this.download,
14643
14672
  "duet-link-has-icon": !!this.icon,
14673
+ "duet-link-has-icon-background": !!this.iconBackground,
14644
14674
  "duet-tab-to-link": this.tabToLink,
14645
14675
  "duet-theme-turva": this.theme === "turva",
14646
14676
  "duet-p-0": this.padding === "none",
14647
14677
  [this.padding]: true,
14648
14678
  [this.variation]: true,
14649
- }, target: this.download ? null : this.external ? "_blank" : "_self", download: this.resolvedDownload, "aria-label": this.getAccessibleLabel(), id: this.identifier, ref: el => (this.nativeLink = el), part: "duet-link", rel: this.external ? "noopener" : undefined }, this.variation === "block" ? this.renderGrid() : this.renderContent())));
14679
+ }, target: this.download || !this.url ? null : this.external ? "_blank" : "_self", download: this.resolvedDownload, "aria-label": this.getAccessibleLabel(), id: this.identifier, ref: el => (this.nativeLink = el), part: "duet-link", rel: this.external ? "noopener" : undefined }, this.renderContent())));
14650
14680
  }
14651
14681
  static get delegatesFocus() { return true; }
14652
14682
  get element() { return getElement(this); }
@@ -14664,15 +14694,17 @@ class DuetLink {
14664
14694
  "accessibleLabelDownload": [1025, "accessible-label-download"],
14665
14695
  "identifier": [1],
14666
14696
  "theme": [1025],
14667
- "url": [513],
14697
+ "url": [1537],
14668
14698
  "external": [4],
14669
14699
  "download": [1],
14670
14700
  "tabToLink": [4, "tab-to-link"],
14671
14701
  "icon": [1],
14672
14702
  "iconColor": [1, "icon-color"],
14703
+ "iconBackground": [1, "icon-background"],
14673
14704
  "iconResponsive": [4, "icon-responsive"],
14674
14705
  "padding": [1],
14675
14706
  "isSmallScreen": [32],
14707
+ "isMediumScreen": [32],
14676
14708
  "setFocus": [64]
14677
14709
  },
14678
14710
  "$listeners$": undefined,
@@ -15830,7 +15862,7 @@ class DuetModal {
15830
15862
  "duet-modal-gutter-small": this.gutterSize === "small",
15831
15863
  "duet-modal-gutter-medium": this.gutterSize === "medium",
15832
15864
  "duet-modal-gutter-large": this.gutterSize === "large",
15833
- } }, hAsync("div", { class: "duet-modal-header" }, hAsync("span", { class: "duet-modal-inner-slot-top" }, hAsync("slot", { name: "top" })), this.icon && hAsync("duet-icon", { name: this.icon, size: "xx-large", color: this.color || iconColor }), this.heading && (hAsync("duet-heading", { "visual-level": (_a = this.headingVisualLevel) !== null && _a !== void 0 ? _a : this.headingLevel, level: this.headingLevel, theme: this.theme, id: this.modalId }, this.heading))), hAsync("span", { class: "duet-modal-inner-slot-default", id: this.slotDefaultId }, hAsync("slot", null))))), hAsync(FocusGuard, { moveFocusTo: this.buttonEl })));
15865
+ } }, hAsync("div", { class: "duet-modal-header" }, hAsync("span", { class: "duet-modal-inner-slot-top" }, hAsync("slot", { name: "top" })), this.icon && hAsync("duet-icon", { name: this.icon, size: "xx-large", color: this.color || iconColor }), this.heading && (hAsync("duet-heading", { "visual-level": (_a = this.headingVisualLevel) !== null && _a !== void 0 ? _a : this.headingLevel, level: this.headingLevel, theme: this.theme, id: this.modalId }, this.heading))), hAsync("div", { class: "duet-modal-inner-slot-default", id: this.slotDefaultId }, hAsync("slot", null))))), hAsync(FocusGuard, { moveFocusTo: this.buttonEl })));
15834
15866
  }
15835
15867
  get element() { return getElement(this); }
15836
15868
  static get watchers() { return {
@@ -17267,6 +17299,10 @@ class DuetParagraph {
17267
17299
  }; }
17268
17300
  }
17269
17301
 
17302
+ /**
17303
+ * Custom positioning reference element.
17304
+ * @see https://floating-ui.com/docs/virtual-elements
17305
+ */
17270
17306
  const min$1 = Math.min;
17271
17307
  const max$1 = Math.max;
17272
17308
  const oppositeSideMap = {
@@ -17372,12 +17408,21 @@ function getPaddingObject(padding) {
17372
17408
  };
17373
17409
  }
17374
17410
  function rectToClientRect(rect) {
17411
+ const {
17412
+ x,
17413
+ y,
17414
+ width,
17415
+ height
17416
+ } = rect;
17375
17417
  return {
17376
- ...rect,
17377
- top: rect.y,
17378
- left: rect.x,
17379
- right: rect.x + rect.width,
17380
- bottom: rect.y + rect.height
17418
+ width,
17419
+ height,
17420
+ top: y,
17421
+ left: x,
17422
+ right: x + width,
17423
+ bottom: y + height,
17424
+ x,
17425
+ y
17381
17426
  };
17382
17427
  }
17383
17428
 
@@ -17439,7 +17484,7 @@ function computeCoordsFromPlacement(_ref, placement, rtl) {
17439
17484
 
17440
17485
  /**
17441
17486
  * Computes the `x` and `y` coordinates that will place the floating element
17442
- * next to a reference element when it is given a certain positioning strategy.
17487
+ * next to a given reference element.
17443
17488
  *
17444
17489
  * This export does not have any `platform` interface logic. You will need to
17445
17490
  * write one for the platform you are using Floating UI with.
@@ -17517,7 +17562,6 @@ const computePosition$1 = async (reference, floating, config) => {
17517
17562
  } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));
17518
17563
  }
17519
17564
  i = -1;
17520
- continue;
17521
17565
  }
17522
17566
  }
17523
17567
  return {
@@ -17567,9 +17611,10 @@ async function detectOverflow(state, options) {
17567
17611
  strategy
17568
17612
  }));
17569
17613
  const rect = elementContext === 'floating' ? {
17570
- ...rects.floating,
17571
17614
  x,
17572
- y
17615
+ y,
17616
+ width: rects.floating.width,
17617
+ height: rects.floating.height
17573
17618
  } : rects.reference;
17574
17619
  const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
17575
17620
  const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
@@ -17580,6 +17625,7 @@ async function detectOverflow(state, options) {
17580
17625
  y: 1
17581
17626
  };
17582
17627
  const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
17628
+ elements,
17583
17629
  rect,
17584
17630
  offsetParent,
17585
17631
  strategy
@@ -17607,7 +17653,8 @@ const arrow = options => ({
17607
17653
  placement,
17608
17654
  rects,
17609
17655
  platform,
17610
- elements
17656
+ elements,
17657
+ middlewareData
17611
17658
  } = state;
17612
17659
  // Since `element` is required, we don't Partial<> the type.
17613
17660
  const {
@@ -17655,16 +17702,20 @@ const arrow = options => ({
17655
17702
 
17656
17703
  // If the reference is small enough that the arrow's padding causes it to
17657
17704
  // to point to nothing for an aligned placement, adjust the offset of the
17658
- // floating element itself. This stops `shift()` from taking action, but can
17659
- // be worked around by calling it again after the `arrow()` if desired.
17660
- const shouldAddOffset = getAlignment(placement) != null && center != offset && rects.reference[length] / 2 - (center < min$1$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
17661
- const alignmentOffset = shouldAddOffset ? center < min$1$1 ? min$1$1 - center : max - center : 0;
17705
+ // floating element itself. To ensure `shift()` continues to take action,
17706
+ // a single reset is performed when this is true.
17707
+ const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
17708
+ const alignmentOffset = shouldAddOffset ? center < min$1$1 ? center - min$1$1 : center - max : 0;
17662
17709
  return {
17663
- [axis]: coords[axis] - alignmentOffset,
17710
+ [axis]: coords[axis] + alignmentOffset,
17664
17711
  data: {
17665
17712
  [axis]: offset,
17666
- centerOffset: center - offset + alignmentOffset
17667
- }
17713
+ centerOffset: center - offset - alignmentOffset,
17714
+ ...(shouldAddOffset && {
17715
+ alignmentOffset
17716
+ })
17717
+ },
17718
+ reset: shouldAddOffset
17668
17719
  };
17669
17720
  }
17670
17721
  });
@@ -17683,7 +17734,7 @@ const flip = function (options) {
17683
17734
  name: 'flip',
17684
17735
  options,
17685
17736
  async fn(state) {
17686
- var _middlewareData$flip;
17737
+ var _middlewareData$arrow, _middlewareData$flip;
17687
17738
  const {
17688
17739
  placement,
17689
17740
  middlewareData,
@@ -17701,6 +17752,14 @@ const flip = function (options) {
17701
17752
  flipAlignment = true,
17702
17753
  ...detectOverflowOptions
17703
17754
  } = evaluate(options, state);
17755
+
17756
+ // If a reset by the arrow was caused due to an alignment offset being
17757
+ // added, we should skip any logic now since `flip()` has already done its
17758
+ // work.
17759
+ // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643
17760
+ if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
17761
+ return {};
17762
+ }
17704
17763
  const side = getSide(placement);
17705
17764
  const isBasePlacement = getSide(initialPlacement) === initialPlacement;
17706
17765
  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
@@ -17778,6 +17837,7 @@ const flip = function (options) {
17778
17837
 
17779
17838
  // For type backwards-compatibility, the `OffsetOptions` type was also
17780
17839
  // Derivable.
17840
+
17781
17841
  async function convertValueToCoords(state, options) {
17782
17842
  const {
17783
17843
  placement,
@@ -17834,15 +17894,27 @@ const offset = function (options) {
17834
17894
  name: 'offset',
17835
17895
  options,
17836
17896
  async fn(state) {
17897
+ var _middlewareData$offse, _middlewareData$arrow;
17837
17898
  const {
17838
17899
  x,
17839
- y
17900
+ y,
17901
+ placement,
17902
+ middlewareData
17840
17903
  } = state;
17841
17904
  const diffCoords = await convertValueToCoords(state, options);
17905
+
17906
+ // If the placement is the same and the arrow caused an alignment offset
17907
+ // then we don't need to change the positioning coordinates.
17908
+ if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
17909
+ return {};
17910
+ }
17842
17911
  return {
17843
17912
  x: x + diffCoords.x,
17844
17913
  y: y + diffCoords.y,
17845
- data: diffCoords
17914
+ data: {
17915
+ ...diffCoords,
17916
+ placement
17917
+ }
17846
17918
  };
17847
17919
  }
17848
17920
  };
@@ -18529,8 +18601,12 @@ class DuetPopupMenu {
18529
18601
  if (!this.openButton) {
18530
18602
  return;
18531
18603
  }
18604
+ const middleware = [
18605
+ offset({ mainAxis: this.mainAxisOffset, crossAxis: this.crossAxisOffset }),
18606
+ flip({ mainAxis: !this.forcePlacement }),
18607
+ ];
18532
18608
  const coordinates = await computePosition(this.openButton, this.menuElement, {
18533
- middleware: [offset({ mainAxis: this.mainAxisOffset, crossAxis: this.crossAxisOffset }), flip()],
18609
+ middleware,
18534
18610
  placement: this.placement,
18535
18611
  strategy: this.position,
18536
18612
  });
@@ -18545,6 +18621,7 @@ class DuetPopupMenu {
18545
18621
  this.theme = "";
18546
18622
  this.controller = undefined;
18547
18623
  this.placement = "bottom-start";
18624
+ this.forcePlacement = false;
18548
18625
  this.position = "absolute";
18549
18626
  this.mainAxisOffset = 0;
18550
18627
  this.crossAxisOffset = 0;
@@ -18730,6 +18807,7 @@ class DuetPopupMenu {
18730
18807
  "theme": [1025],
18731
18808
  "controller": [1],
18732
18809
  "placement": [1],
18810
+ "forcePlacement": [4, "force-placement"],
18733
18811
  "position": [1025],
18734
18812
  "mainAxisOffset": [2, "main-axis-offset"],
18735
18813
  "crossAxisOffset": [2, "cross-axis-offset"],
@@ -19569,7 +19647,7 @@ class DuetRangeStepper {
19569
19647
  return (hAsync("div", { class: {
19570
19648
  "duet-range-stepper": true,
19571
19649
  "duet-theme-turva": this.theme === "turva",
19572
- }, onKeyDown: e => this.onKeyboardDown(e), "aria-controls": this.ariaControls }, hAsync("span", { class: "duet-range-step-counter", part: "range-numbers" }, this.generateStepSize()), hAsync("duet-action-button", { class: "duet-range-step-button duet-range-step-minus", onClick: e => this.handleClick(e, -1), id: this.leftBn, "accessible-label": `${this.ariaLabels.previous_increment} ${this.generatePreviousIncrementLabel()}`, ref: el => (this.leftBnRef = el), part: "navigation-arrow", iconName: "action-arrow-left-small" }), hAsync("duet-action-button", { class: "duet-range-step-button duet-range-step-plus", onClick: e => this.handleClick(e, 1), "accessible-label": `${this.ariaLabels.next_increment} ${this.generateNextIncrementLabel()}`, id: this.rightBn, ref: el => (this.rightBnRef = el), part: "navigation-arrow", iconName: "action-arrow-right-small" })));
19650
+ }, onKeyDown: e => this.onKeyboardDown(e), "aria-controls": this.ariaControls }, hAsync("span", { class: "duet-range-step-counter", part: "range-numbers" }, this.generateStepSize()), hAsync("duet-action-button", { class: "duet-range-step-button duet-range-step-minus", onClick: e => this.handleClick(e, -1), id: this.leftBn, "accessible-label": `${this.ariaLabels.previous_increment} ${this.generatePreviousIncrementLabel()}`, ref: el => (this.leftBnRef = el), part: "navigation-arrow", iconName: "action-arrow-left-small", title: "" }), hAsync("duet-action-button", { class: "duet-range-step-button duet-range-step-plus", onClick: e => this.handleClick(e, 1), "accessible-label": `${this.ariaLabels.next_increment} ${this.generateNextIncrementLabel()}`, id: this.rightBn, ref: el => (this.rightBnRef = el), part: "navigation-arrow", iconName: "action-arrow-right-small", title: "" })));
19573
19651
  }
19574
19652
  get element() { return getElement(this); }
19575
19653
  static get watchers() { return {
@@ -21103,7 +21181,8 @@ class DuetSubmenuBar {
21103
21181
  this.checkIfHasItems = () => {
21104
21182
  const hasDropdownLinks = !!this.element.querySelector("duet-submenu-bar-dropdown-link");
21105
21183
  const hasLinks = !!this.element.querySelector("duet-submenu-bar-link");
21106
- return hasDropdownLinks || hasLinks;
21184
+ const hasItems = !!this.element.querySelector("duet-submenu-bar-item");
21185
+ return hasDropdownLinks || hasLinks || hasItems;
21107
21186
  };
21108
21187
  this.mobile = true;
21109
21188
  this.bodyScroll = true;
@@ -21168,7 +21247,7 @@ class DuetSubmenuBar {
21168
21247
  render() {
21169
21248
  return (hAsync(Host, null, hAsync("nav", { class: { "duet-submenu-bar": true, "duet-theme-turva": this.theme === "turva" }, "aria-label": this.accessibleLabel }, this.hasItems && (hAsync("button", { ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
21170
21249
  active: this.open,
21171
- }, onClick: this.onClick }, hAsync("div", { class: "label" }, hAsync("slot", { name: "label" }), hAsync("duet-icon", { theme: this.theme, class: "caret", name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" })))), hAsync("div", { class: {
21250
+ }, onClick: this.onClick }, hAsync("span", { class: "label" }, hAsync("slot", { name: "label" }), hAsync("duet-icon", { theme: this.theme, class: "caret", name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" })))), hAsync("div", { class: {
21172
21251
  "menu-container": true,
21173
21252
  hidden: !this.open,
21174
21253
  }, role: "presentation" }, hAsync("div", { role: this.mobile ? "menu" : null, id: "menu", "aria-labelledby": this.mobile ? "button" : null, "aria-expanded": this.mobile ? (this.open ? "true" : "false") : null, class: {
@@ -23574,22 +23653,22 @@ class DuetUpload {
23574
23653
  };
23575
23654
  this.mapFilesToUploadItems = (data, group, showCategory, filteredActions) => {
23576
23655
  if (group === this.DefaultGroups.success) {
23577
- return (hAsync("duet-upload-item", { theme: this.theme, actions: this.getActions(group, filteredActions), type: "success", data: data, showLinks: this.showLinks, linkClickEvent: this.emitEvent ? this.linkClick : undefined, categoryLabel: this.categoryLabel, label: this.uploadedItemsHeaderLabel, showCategory: showCategory, ref: item => {
23656
+ return (hAsync("duet-upload-item", { theme: this.theme, actions: this.getActions(group, filteredActions), type: "success", data: data, showLinks: this.showLinks, linkClickEvent: this.emitEvent ? this.linkClick : undefined, categoryLabel: this.categoryLabel, label: this.uploadedItemsHeaderLabel, showCategory: showCategory, buttonTitles: this.processedButtonTitles, ref: item => {
23578
23657
  this.itemRefs.set(data.uid, item);
23579
23658
  } }));
23580
23659
  }
23581
23660
  else if (group === this.DefaultGroups.inprogress) {
23582
- return (hAsync("duet-upload-item", { theme: this.theme, actions: this.getActions(group, filteredActions), type: "inprogress", data: data, showLinks: this.showLinks, categoryLabel: this.categoryLabel, label: this.uploadedItemsHeaderLabel, showCategory: showCategory, ref: item => {
23661
+ return (hAsync("duet-upload-item", { theme: this.theme, actions: this.getActions(group, filteredActions), type: "inprogress", data: data, showLinks: this.showLinks, categoryLabel: this.categoryLabel, label: this.uploadedItemsHeaderLabel, showCategory: showCategory, buttonTitles: this.processedButtonTitles, ref: item => {
23583
23662
  this.itemRefs.set(data.uid, item);
23584
23663
  } }));
23585
23664
  }
23586
23665
  else if (group === this.DefaultGroups.pending) {
23587
- return (hAsync("duet-upload-item", { theme: this.theme, actions: this.getActions(group, filteredActions), type: "pending", data: data, showLinks: this.showLinks, categoryLabel: this.categoryLabel, label: this.uploadedItemsHeaderLabel, showCategory: showCategory, ref: item => {
23666
+ return (hAsync("duet-upload-item", { theme: this.theme, actions: this.getActions(group, filteredActions), type: "pending", data: data, showLinks: this.showLinks, categoryLabel: this.categoryLabel, label: this.uploadedItemsHeaderLabel, showCategory: showCategory, buttonTitles: this.processedButtonTitles, ref: item => {
23588
23667
  this.itemRefs.set(data.uid, item);
23589
23668
  } }));
23590
23669
  }
23591
23670
  else if (group === this.DefaultGroups.failure) {
23592
- return (hAsync("duet-upload-item", { theme: this.theme, actions: this.getActions(group, filteredActions), type: "failure", data: data, showLinks: this.showLinks, errorCodes: this.errorCodes, categoryLabel: this.categoryLabel, label: this.uploadedItemsHeaderLabel, showCategory: showCategory, ref: item => {
23671
+ return (hAsync("duet-upload-item", { theme: this.theme, actions: this.getActions(group, filteredActions), type: "failure", data: data, showLinks: this.showLinks, errorCodes: this.errorCodes, categoryLabel: this.categoryLabel, label: this.uploadedItemsHeaderLabel, showCategory: showCategory, buttonTitles: this.processedButtonTitles, ref: item => {
23593
23672
  this.itemRefs.set(data.uid, item);
23594
23673
  } }));
23595
23674
  }
@@ -24075,6 +24154,11 @@ class DuetUpload {
24075
24154
  this.headerHeadingLevel = "h3";
24076
24155
  this.hideHeader = false;
24077
24156
  this.emitEvent = false;
24157
+ this.actionButtonTitles = {
24158
+ cancel: false,
24159
+ delete: false,
24160
+ };
24161
+ this.renameDuplicates = false;
24078
24162
  this.groups = [
24079
24163
  {
24080
24164
  id: this.DefaultGroups.success,
@@ -24129,6 +24213,7 @@ class DuetUpload {
24129
24213
  this.listenForActionEvents();
24130
24214
  this.onReady();
24131
24215
  this.externalUploadButton = document.querySelector(`#${this.externalUploadButtonId}`);
24216
+ this.processedButtonTitles = parsePossibleJSON(this.actionButtonTitles);
24132
24217
  }
24133
24218
  componentWillRender() {
24134
24219
  // listen to the events from the component
@@ -24277,12 +24362,50 @@ class DuetUpload {
24277
24362
  // don't present server issues to user on deletes, just remove them from the visible list
24278
24363
  return makeXhrRequest(options);
24279
24364
  }
24365
+ getRenamedFileName(newFileName, extension) {
24366
+ const re = new RegExp(`${newFileName}_\\d+\\.${extension}`);
24367
+ const lastFileName = Array.from(this.files.entries())
24368
+ .map(entry => {
24369
+ const [key, _] = entry;
24370
+ return key;
24371
+ })
24372
+ .filter(existingFileName => {
24373
+ return re.test(existingFileName) || existingFileName === `${newFileName}.${extension}`;
24374
+ })
24375
+ .sort()
24376
+ .pop()
24377
+ .split(".")
24378
+ .slice(0, -1)
24379
+ .join(".");
24380
+ if (lastFileName === newFileName) {
24381
+ return `${newFileName}_1.${extension}`;
24382
+ }
24383
+ const lastFileNumber = parseInt(lastFileName.split("_").pop());
24384
+ return `${newFileName}_${lastFileNumber + 1}.${extension}`;
24385
+ }
24386
+ renameFiles(files) {
24387
+ return files.map(file => {
24388
+ if (this.files.get(file.name)) {
24389
+ const splitName = file.name.split(".");
24390
+ const extension = splitName.pop();
24391
+ const nameWithoutExtension = splitName.join(".");
24392
+ const newName = this.getRenamedFileName(nameWithoutExtension, extension);
24393
+ return new File([file], newName, {
24394
+ type: file.type,
24395
+ lastModified: file.lastModified,
24396
+ });
24397
+ }
24398
+ else {
24399
+ return file;
24400
+ }
24401
+ });
24402
+ }
24280
24403
  /**
24281
24404
  * Component event handling.
24282
24405
  */
24283
24406
  async onChange(ev) {
24284
24407
  var _a;
24285
- const selectedFiles = Array.from((_a = this.nativeInput) === null || _a === void 0 ? void 0 : _a.files);
24408
+ let selectedFiles = Array.from((_a = this.nativeInput) === null || _a === void 0 ? void 0 : _a.files);
24286
24409
  // FileList is a nice array like structure but
24287
24410
  // to ensure uniqueness of files we use a mapping structure and
24288
24411
  // key to the name (makes it easier to delete as well)
@@ -24299,6 +24422,9 @@ class DuetUpload {
24299
24422
  return;
24300
24423
  }
24301
24424
  if (selectedFiles) {
24425
+ if (this.renameDuplicates) {
24426
+ selectedFiles = this.renameFiles(selectedFiles);
24427
+ }
24302
24428
  for (const item of selectedFiles) {
24303
24429
  const { valid, errorMessage, errorType, errorSystem } = validateFile(item, {
24304
24430
  maxBytes: this.maxBytes,
@@ -24408,6 +24534,8 @@ class DuetUpload {
24408
24534
  "headerHeadingLevel": [1, "header-heading-level"],
24409
24535
  "hideHeader": [4, "hide-header"],
24410
24536
  "emitEvent": [4, "link-click-event"],
24537
+ "actionButtonTitles": [1, "action-button-titles"],
24538
+ "renameDuplicates": [4, "rename-duplicates"],
24411
24539
  "groups": [16],
24412
24540
  "tick": [32],
24413
24541
  "setFocus": [64],
@@ -24608,6 +24736,7 @@ class DuetUploadItem {
24608
24736
  this.type = undefined;
24609
24737
  this.showLinks = undefined;
24610
24738
  this.actions = undefined;
24739
+ this.buttonTitles = undefined;
24611
24740
  this.label = undefined;
24612
24741
  this.categoryLabel = undefined;
24613
24742
  this.errorCodes = undefined;
@@ -24645,6 +24774,12 @@ class DuetUploadItem {
24645
24774
  return uploaded && url && this.showLinks ? (hAsync("duet-paragraph", { color: "secondary", margin: "none", weight: "semi-bold" }, hAsync("duet-link", { class: "file-link", onClick: this.onLinkClick, url: url }, ContentName), hAsync("duet-spacer", { size: "xx-small", direction: "horizontal" }), SizeText)) : (hAsync("duet-paragraph", { color: "secondary", margin: "none", weight: "semi-bold" }, ContentName, hAsync("duet-spacer", { size: "xx-small", direction: "horizontal" }), SizeText));
24646
24775
  }
24647
24776
  }
24777
+ getActionButtonTitle(actionItem) {
24778
+ if (this.buttonTitles[actionItem.name] === true || this.buttonTitles[actionItem.name] === false) {
24779
+ return actionItem;
24780
+ }
24781
+ return getLocaleString(this.buttonTitles[actionItem.name]);
24782
+ }
24648
24783
  render() {
24649
24784
  const { uid, meta, item } = this.data;
24650
24785
  const Badges = meta && meta.badges ? (hAsync("span", null, meta.badges.map(badgeText => (hAsync("duet-badge", { color: "primary" }, badgeText))))) : undefined;
@@ -24652,7 +24787,7 @@ class DuetUploadItem {
24652
24787
  return (hAsync("div", { class: {
24653
24788
  "upload-item-row": true,
24654
24789
  } }, this.showCategory && (hAsync("div", { class: "item-categories" }, hAsync("duet-heading", { class: "heading", color: "color-secondary", level: "h6", weight: "semibold" }, getLocaleString(this.categoryLabel)), Badges)), hAsync("div", { class: { "item-name": true, "no-category": !this.showCategory } }, !!this.label && (hAsync("duet-heading", { class: "heading", color: "color-secondary", level: "h6", weight: "semibold" }, getLocaleString(this.label))), this.getFileNameLine()), hAsync("div", { class: "item-actions" }, this.actions.map(actionItem => {
24655
- return (hAsync("duet-action-button", { actionMeta: Object.assign({}, meta || {}), actionId: uid || null, actionName: actionItem.name, theme: this.theme, iconName: actionItem.icon, iconColor: actionItem.color, iconSize: actionItem.size, background: actionItem.background, "accessible-label": `${actionDescription} ${getLocaleString(actionItem.label)} `, accessibleTitle: false, ref: button => (this.actionButton = button) }));
24790
+ return (hAsync("duet-action-button", { actionMeta: Object.assign({}, meta || {}), actionId: uid || null, actionName: actionItem.name, theme: this.theme, iconName: actionItem.icon, iconColor: actionItem.color, iconSize: actionItem.size, background: actionItem.background, "accessible-label": `${actionDescription} ${getLocaleString(actionItem.label)} `, accessibleTitle: this.getActionButtonTitle(actionItem), ref: button => (this.actionButton = button) }));
24656
24791
  }))));
24657
24792
  }
24658
24793
  get element() { return getElement(this); }
@@ -24666,6 +24801,7 @@ class DuetUploadItem {
24666
24801
  "type": [1],
24667
24802
  "showLinks": [4, "show-links"],
24668
24803
  "actions": [8],
24804
+ "buttonTitles": [16],
24669
24805
  "label": [16],
24670
24806
  "categoryLabel": [16],
24671
24807
  "errorCodes": [16],