@duetds/components 8.5.0 → 8.5.2

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 +270 -197
  2. package/lib/cjs/duet-action-button.cjs.entry.js +2 -2
  3. package/lib/cjs/duet-alert.cjs.entry.js +2 -2
  4. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-banner.cjs.entry.js +29 -6
  6. package/lib/cjs/duet-breadcrumb.cjs.entry.js +2 -2
  7. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  8. package/lib/cjs/duet-button_2.cjs.entry.js +1 -1
  9. package/lib/cjs/duet-callout.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-caption_4.cjs.entry.js +4 -2
  11. package/lib/cjs/duet-card.cjs.entry.js +2 -2
  12. package/lib/cjs/duet-checkbox.cjs.entry.js +2 -2
  13. package/lib/cjs/duet-checkmark.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-chip.cjs.entry.js +2 -2
  15. package/lib/cjs/duet-choice_2.cjs.entry.js +20 -36
  16. package/lib/cjs/duet-collapsible.cjs.entry.js +2 -2
  17. package/lib/cjs/duet-combobox.cjs.entry.js +72 -60
  18. package/lib/cjs/duet-contact-card.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-cookie-consent.cjs.entry.js +2 -2
  20. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  21. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  22. package/lib/cjs/duet-editable-table_3.cjs.entry.js +2 -2
  23. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-fieldset.cjs.entry.js +2 -2
  25. package/lib/cjs/duet-file-chooser.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-footer.cjs.entry.js +2 -2
  27. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-header_2.cjs.entry.js +2 -2
  29. package/lib/cjs/duet-hero.cjs.entry.js +2 -2
  30. package/lib/cjs/duet-icon.cjs.entry.js +2 -2
  31. package/lib/cjs/duet-input_2.cjs.entry.js +2 -2
  32. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +2 -2
  36. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +2 -2
  37. package/lib/cjs/duet-menu-bar-item.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-menu-bar.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-modal.cjs.entry.js +21 -22
  41. package/lib/cjs/duet-multiselect.cjs.entry.js +2 -2
  42. package/lib/cjs/duet-nav.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-notification_2.cjs.entry.js +2 -2
  44. package/lib/cjs/duet-number-input.cjs.entry.js +2 -2
  45. package/lib/cjs/duet-overlay.cjs.entry.js +5 -5
  46. package/lib/cjs/duet-page-heading.cjs.entry.js +1 -1
  47. package/lib/cjs/duet-pagination_2.cjs.entry.js +2 -2
  48. package/lib/cjs/duet-popup-menu-item.cjs.entry.js +1 -1
  49. package/lib/cjs/duet-popup-menu.cjs.entry.js +13 -7
  50. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  51. package/lib/cjs/duet-promo-card.cjs.entry.js +1 -1
  52. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  53. package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
  54. package/lib/cjs/duet-scrollable_3.cjs.entry.js +2 -2
  55. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  56. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  57. package/lib/cjs/duet-shaped-image.cjs.entry.js +1 -1
  58. package/lib/cjs/duet-show-more.cjs.entry.js +2 -2
  59. package/lib/cjs/duet-slideout-lang.cjs.entry.js +1 -1
  60. package/lib/cjs/duet-slideout-link.cjs.entry.js +1 -1
  61. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +1 -1
  62. package/lib/cjs/duet-slideout-panel.cjs.entry.js +2 -2
  63. package/lib/cjs/duet-slideout.cjs.entry.js +15 -7
  64. package/lib/cjs/duet-step_2.cjs.entry.js +2 -2
  65. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +2 -2
  66. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +2 -2
  67. package/lib/cjs/duet-submenu-bar-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 +1 -1
  70. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  71. package/lib/cjs/duet-toggle.cjs.entry.js +2 -2
  72. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +2 -2
  73. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +2 -2
  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 +10 -15
  78. package/lib/cjs/duet-tooltip.cjs.entry.js +6 -22
  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 +1 -1
  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-91f66430.js → floating-ui.dom.esm-806e7c53.js} +69 -0
  85. package/lib/cjs/{focus-utils-d5ff73a3.js → focus-utils-0a3cc66a.js} +1 -1
  86. package/lib/cjs/{index-55b9eb77.js → index-16863efb.js} +1 -1
  87. package/lib/cjs/{keyboard-utils-66ecb5d6.js → keyboard-utils-681e11ec.js} +2 -1
  88. package/lib/cjs/loader.cjs.js +2 -2
  89. package/lib/cjs/{teleport-6a1f83a1.js → teleport-a2fa9434.js} +37 -29
  90. package/lib/collection/collection-manifest.json +1 -1
  91. package/lib/collection/components/duet-banner/duet-banner.css +4 -134
  92. package/lib/collection/components/duet-banner/duet-banner.js +43 -9
  93. package/lib/collection/components/duet-checkbox/duet-checkbox.css +2 -1
  94. package/lib/collection/components/duet-choice/duet-choice.css +43 -12
  95. package/lib/collection/components/duet-choice/duet-choice.js +18 -56
  96. package/lib/collection/components/duet-combobox/duet-combobox.css +2 -6
  97. package/lib/collection/components/duet-combobox/duet-combobox.js +70 -58
  98. package/lib/collection/components/duet-fieldset/duet-fieldset.js +4 -4
  99. package/lib/collection/components/duet-hero/duet-hero.js +1 -1
  100. package/lib/collection/components/duet-icon/duet-icon.css +2 -0
  101. package/lib/collection/components/duet-link/duet-link.css +4 -0
  102. package/lib/collection/components/duet-link/duet-link.js +26 -0
  103. package/lib/collection/components/duet-modal/duet-modal.css +11 -6
  104. package/lib/collection/components/duet-modal/duet-modal.e2e.js +1 -34
  105. package/lib/collection/components/duet-modal/duet-modal.js +21 -19
  106. package/lib/collection/components/duet-overlay/duet-overlay.css +8 -1
  107. package/lib/collection/components/duet-overlay/duet-overlay.js +11 -11
  108. package/lib/collection/components/duet-popup-menu/duet-popup-menu.js +11 -2
  109. package/lib/collection/components/duet-slideout/duet-slideout.js +11 -3
  110. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +10 -15
  111. package/lib/collection/components/duet-tooltip/duet-tooltip.js +4 -32
  112. package/lib/collection/utils/keyboard-utils.js +2 -1
  113. package/lib/collection/utils/teleport.js +37 -29
  114. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  115. package/lib/dist-custom-elements/duet-alert.js +1 -1
  116. package/lib/dist-custom-elements/duet-badge.js +1 -1
  117. package/lib/dist-custom-elements/duet-banner.js +33 -9
  118. package/lib/dist-custom-elements/duet-breadcrumb.js +4 -4
  119. package/lib/dist-custom-elements/duet-breadcrumbs.js +1 -1
  120. package/lib/dist-custom-elements/duet-button.js +1 -1
  121. package/lib/dist-custom-elements/duet-callout.js +2 -2
  122. package/lib/dist-custom-elements/duet-caption.js +1 -1
  123. package/lib/dist-custom-elements/duet-card.js +4 -4
  124. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  125. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  126. package/lib/dist-custom-elements/duet-chip.js +3 -3
  127. package/lib/dist-custom-elements/duet-choice-group.js +8 -8
  128. package/lib/dist-custom-elements/duet-choice.js +27 -50
  129. package/lib/dist-custom-elements/duet-collapsible.js +3 -3
  130. package/lib/dist-custom-elements/duet-combobox.js +73 -61
  131. package/lib/dist-custom-elements/duet-contact-card.js +8 -8
  132. package/lib/dist-custom-elements/duet-cookie-consent.js +7 -7
  133. package/lib/dist-custom-elements/duet-date-picker.js +13 -13
  134. package/lib/dist-custom-elements/duet-divider.js +1 -1
  135. package/lib/dist-custom-elements/duet-editable-table.js +8 -8
  136. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  137. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  138. package/lib/dist-custom-elements/duet-file-chooser.js +2 -2
  139. package/lib/dist-custom-elements/duet-footer.js +5 -5
  140. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  141. package/lib/dist-custom-elements/duet-grid.js +1 -1
  142. package/lib/dist-custom-elements/duet-header.js +9 -9
  143. package/lib/dist-custom-elements/duet-heading.js +1 -1
  144. package/lib/dist-custom-elements/duet-hero.js +10 -10
  145. package/lib/dist-custom-elements/duet-icon.js +1 -1
  146. package/lib/dist-custom-elements/duet-input.js +1 -1
  147. package/lib/dist-custom-elements/duet-label.js +1 -1
  148. package/lib/dist-custom-elements/duet-layout.js +1 -1
  149. package/lib/dist-custom-elements/duet-link.js +1 -1
  150. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  151. package/lib/dist-custom-elements/duet-list.js +1 -1
  152. package/lib/dist-custom-elements/duet-logo.js +1 -1
  153. package/lib/dist-custom-elements/duet-menu-bar-button.js +2 -2
  154. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +3 -3
  155. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +3 -3
  156. package/lib/dist-custom-elements/duet-menu-bar-item.js +2 -2
  157. package/lib/dist-custom-elements/duet-menu-bar-link.js +2 -2
  158. package/lib/dist-custom-elements/duet-menu-bar.js +2 -2
  159. package/lib/dist-custom-elements/duet-modal.js +28 -29
  160. package/lib/dist-custom-elements/duet-multiselect.js +10 -10
  161. package/lib/dist-custom-elements/duet-nav.js +1 -1
  162. package/lib/dist-custom-elements/duet-notification-drawer.js +5 -5
  163. package/lib/dist-custom-elements/duet-notification.js +3 -3
  164. package/lib/dist-custom-elements/duet-number-input.js +12 -12
  165. package/lib/dist-custom-elements/duet-overlay.js +1 -1
  166. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  167. package/lib/dist-custom-elements/duet-pagination.js +14 -14
  168. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  169. package/lib/dist-custom-elements/duet-popup-menu-item.js +2 -2
  170. package/lib/dist-custom-elements/duet-popup-menu.js +12 -6
  171. package/lib/dist-custom-elements/duet-progress.js +1 -1
  172. package/lib/dist-custom-elements/duet-promo-card.js +3 -3
  173. package/lib/dist-custom-elements/duet-radio-group.js +8 -8
  174. package/lib/dist-custom-elements/duet-radio.js +1 -1
  175. package/lib/dist-custom-elements/duet-range-slider.js +3 -3
  176. package/lib/dist-custom-elements/duet-range-stepper.js +5 -5
  177. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  178. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  179. package/lib/dist-custom-elements/duet-select.js +1 -1
  180. package/lib/dist-custom-elements/duet-shaped-image.js +1 -1
  181. package/lib/dist-custom-elements/duet-show-more.js +1 -1
  182. package/lib/dist-custom-elements/duet-slideout-lang.js +2 -2
  183. package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
  184. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  185. package/lib/dist-custom-elements/duet-slideout-panel.js +2 -2
  186. package/lib/dist-custom-elements/duet-slideout.js +16 -8
  187. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  188. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  189. package/lib/dist-custom-elements/duet-step.js +5 -5
  190. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  191. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +3 -3
  192. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +3 -3
  193. package/lib/dist-custom-elements/duet-submenu-bar-item.js +3 -3
  194. package/lib/dist-custom-elements/duet-submenu-bar-link.js +3 -3
  195. package/lib/dist-custom-elements/duet-submenu-bar.js +3 -3
  196. package/lib/dist-custom-elements/duet-tab-group.js +14 -14
  197. package/lib/dist-custom-elements/duet-tab.js +2 -2
  198. package/lib/dist-custom-elements/duet-table.js +1 -1
  199. package/lib/dist-custom-elements/duet-textarea.js +10 -10
  200. package/lib/dist-custom-elements/duet-toggle.js +3 -3
  201. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +3 -3
  202. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +3 -3
  203. package/lib/dist-custom-elements/duet-toolbar-item.js +2 -2
  204. package/lib/dist-custom-elements/duet-toolbar-link.js +2 -2
  205. package/lib/dist-custom-elements/duet-toolbar.js +1 -1
  206. package/lib/dist-custom-elements/duet-tooltip-button.js +1 -1
  207. package/lib/dist-custom-elements/duet-tooltip-popup.js +1 -1
  208. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  209. package/lib/dist-custom-elements/duet-tray.js +4 -4
  210. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  211. package/lib/dist-custom-elements/duet-upload-item.js +1 -1
  212. package/lib/dist-custom-elements/duet-upload.js +19 -19
  213. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  214. package/lib/dist-custom-elements/index.js +1 -1
  215. package/lib/dist-custom-elements/{p-c5cbad6a.js → p-0013bbd9.js} +5 -5
  216. package/lib/dist-custom-elements/{p-e041a480.js → p-0df120f7.js} +11 -11
  217. package/lib/dist-custom-elements/{p-872e2f85.js → p-1ff11eb0.js} +1 -1
  218. package/lib/dist-custom-elements/{p-a7a43cc8.js → p-227546cf.js} +2 -2
  219. package/lib/dist-custom-elements/{p-7e0593c4.js → p-2a3d455e.js} +1 -1
  220. package/lib/dist-custom-elements/{p-11e152cd.js → p-31ed51c3.js} +69 -1
  221. package/lib/dist-custom-elements/{p-020faef4.js → p-3e413cfd.js} +1 -1
  222. package/lib/dist-custom-elements/{p-1ce04b25.js → p-3fbeb75f.js} +1 -1
  223. package/lib/dist-custom-elements/{p-2f740f34.js → p-4021501c.js} +4 -4
  224. package/lib/dist-custom-elements/{p-a2e4cefc.js → p-532e0afe.js} +11 -27
  225. package/lib/dist-custom-elements/{p-fa57c719.js → p-53f70c5c.js} +1 -1
  226. package/lib/dist-custom-elements/{p-1c41e380.js → p-6783b103.js} +7 -7
  227. package/lib/dist-custom-elements/{p-1ab843a7.js → p-69fa1487.js} +1 -1
  228. package/lib/dist-custom-elements/{p-2ccce086.js → p-6f10ebc0.js} +4 -4
  229. package/lib/dist-custom-elements/{p-d4229a56.js → p-77552eed.js} +1 -1
  230. package/lib/dist-custom-elements/{p-ccdff614.js → p-7796b4bf.js} +37 -29
  231. package/lib/dist-custom-elements/{p-76ce0f9b.js → p-821bb92e.js} +11 -18
  232. package/lib/dist-custom-elements/{p-0a49f6e7.js → p-8cb2b7fe.js} +1 -1
  233. package/lib/dist-custom-elements/{p-979bd60b.js → p-8e696845.js} +1 -1
  234. package/lib/dist-custom-elements/{p-d321d5fc.js → p-8f86417c.js} +1 -1
  235. package/lib/dist-custom-elements/{p-935d79ab.js → p-934d4db1.js} +2 -2
  236. package/lib/dist-custom-elements/{p-17d5c190.js → p-9a2b977c.js} +2 -2
  237. package/lib/dist-custom-elements/{p-422afb9b.js → p-9af6adea.js} +1 -1
  238. package/lib/dist-custom-elements/{p-ea85bdb3.js → p-a13ff0ba.js} +2 -2
  239. package/lib/dist-custom-elements/{p-c79fe592.js → p-ab97f5a6.js} +1 -1
  240. package/lib/dist-custom-elements/{p-fb5d5f01.js → p-b35f5feb.js} +2 -2
  241. package/lib/dist-custom-elements/{p-8b86f3bd.js → p-c3ee68d3.js} +10 -10
  242. package/lib/dist-custom-elements/{p-79459d6e.js → p-c7e4d8c0.js} +3 -3
  243. package/lib/dist-custom-elements/{p-e1dc8e10.js → p-cbc5e3c2.js} +3 -3
  244. package/lib/dist-custom-elements/{p-69e641c9.js → p-cc019e60.js} +6 -6
  245. package/lib/dist-custom-elements/{p-e4a6f691.js → p-d5e33f97.js} +6 -3
  246. package/lib/dist-custom-elements/{p-bec3a15c.js → p-e44c0eff.js} +2 -1
  247. package/lib/dist-custom-elements/{p-baf436c1.js → p-e67b79bd.js} +6 -6
  248. package/lib/dist-custom-elements/{p-fbdd04e4.js → p-e77cc4f8.js} +1 -1
  249. package/lib/dist-custom-elements/{p-efa5851d.js → p-ed283f4c.js} +1 -1
  250. package/lib/dist-custom-elements/{p-0fce9d94.js → p-f0eaa248.js} +1 -1
  251. package/lib/dist-custom-elements/{p-b8844392.js → p-f843d6ff.js} +8 -8
  252. package/lib/dist-custom-elements/{p-d71a2b7b.js → p-fcd3721b.js} +1 -1
  253. package/lib/dist-custom-elements/{p-94656301.js → p-fce4d62c.js} +1 -1
  254. package/lib/duet/duet.esm.js +1 -1
  255. package/lib/duet/duet.js +1 -1
  256. package/lib/duet/p-002e18db.system.entry.js +4 -0
  257. package/lib/duet/p-027e5569.entry.js +4 -0
  258. package/lib/duet/{p-a19429c2.system.entry.js → p-030253f2.system.entry.js} +1 -1
  259. package/lib/duet/{p-cd6471b4.entry.js → p-03183a0f.entry.js} +1 -1
  260. package/lib/duet/{p-ea115f4e.system.entry.js → p-05f294b6.system.entry.js} +2 -2
  261. package/lib/duet/{p-9f54fc54.system.entry.js → p-0b8849bd.system.entry.js} +1 -1
  262. package/lib/duet/{p-93e74683.system.entry.js → p-0d37679b.system.entry.js} +1 -1
  263. package/lib/duet/{p-9d1cef64.system.entry.js → p-0d8cdce3.system.entry.js} +1 -1
  264. package/lib/duet/{p-0456ff4d.entry.js → p-0e265cf5.entry.js} +1 -1
  265. package/lib/duet/{p-27e81b06.entry.js → p-0e3a5d41.entry.js} +1 -1
  266. package/lib/duet/{p-b5b79a9c.entry.js → p-0e56bbe4.entry.js} +1 -1
  267. package/lib/duet/{p-401a3854.system.entry.js → p-0e6d65b4.system.entry.js} +1 -1
  268. package/lib/duet/p-103be53e.system.entry.js +4 -0
  269. package/lib/duet/{p-b3377755.system.entry.js → p-1047951a.system.entry.js} +1 -1
  270. package/lib/duet/{p-604c51f9.entry.js → p-1054ebce.entry.js} +1 -1
  271. package/lib/duet/{p-33f698d1.entry.js → p-11076593.entry.js} +1 -1
  272. package/lib/duet/{p-4729bcef.entry.js → p-129045fa.entry.js} +1 -1
  273. package/lib/duet/p-15d65ccc.system.js +4 -0
  274. package/lib/duet/{p-65468b0d.system.entry.js → p-17c077ab.system.entry.js} +1 -1
  275. package/lib/duet/{p-efd90de0.system.entry.js → p-188a000d.system.entry.js} +1 -1
  276. package/lib/duet/{p-8cd0cd03.entry.js → p-189a6d7a.entry.js} +1 -1
  277. package/lib/duet/{p-9b21ed50.entry.js → p-19714cb0.entry.js} +1 -1
  278. package/lib/duet/{p-2be0df40.system.entry.js → p-1a5d2b48.system.entry.js} +1 -1
  279. package/lib/duet/p-1c5b9e11.entry.js +4 -0
  280. package/lib/duet/{p-6aa4f325.entry.js → p-1cd772fc.entry.js} +1 -1
  281. package/lib/duet/{p-d925ab53.entry.js → p-1d90e7f5.entry.js} +1 -1
  282. package/lib/duet/{p-0d3f184b.entry.js → p-20601453.entry.js} +1 -1
  283. package/lib/duet/p-20d8f5b3.system.entry.js +4 -0
  284. package/lib/duet/{p-592edf29.system.entry.js → p-220ed4df.system.entry.js} +1 -1
  285. package/lib/duet/{p-13cd24b7.entry.js → p-244dd96f.entry.js} +1 -1
  286. package/lib/duet/p-261f4be7.entry.js +4 -0
  287. package/lib/duet/{p-a18768aa.entry.js → p-26224b8d.entry.js} +1 -1
  288. package/lib/duet/{p-e6cf95c7.entry.js → p-262cad2f.entry.js} +1 -1
  289. package/lib/duet/{p-f5578381.entry.js → p-26e9b71a.entry.js} +1 -1
  290. package/lib/duet/p-28829e73.system.entry.js +4 -0
  291. package/lib/duet/{p-01a8bdf7.system.entry.js → p-291921b6.system.entry.js} +1 -1
  292. package/lib/duet/{p-6af28665.system.entry.js → p-29cf9d3a.system.entry.js} +1 -1
  293. package/lib/duet/{p-801471d9.system.entry.js → p-2a5a769f.system.entry.js} +1 -1
  294. package/lib/duet/{p-9059866a.entry.js → p-2acd082d.entry.js} +1 -1
  295. package/lib/duet/{p-09af7801.system.entry.js → p-2ae068ec.system.entry.js} +1 -1
  296. package/lib/duet/{p-c9710402.entry.js → p-2e78e388.entry.js} +1 -1
  297. package/lib/duet/{p-5c5cd6d1.entry.js → p-2f4b30bc.entry.js} +1 -1
  298. package/lib/duet/p-31ed51c3.js +4 -0
  299. package/lib/duet/{p-b2716337.system.js → p-34d7dd10.system.js} +1 -1
  300. package/lib/duet/{p-4572372a.system.entry.js → p-3653b2fb.system.entry.js} +1 -1
  301. package/lib/duet/{p-5117272c.entry.js → p-3c521995.entry.js} +1 -1
  302. package/lib/duet/{p-6bd0ede9.system.entry.js → p-3cd16df4.system.entry.js} +1 -1
  303. package/lib/duet/{p-5e1d1a77.entry.js → p-3d5bd0bc.entry.js} +1 -1
  304. package/lib/duet/{p-5c3e7e35.entry.js → p-41b41654.entry.js} +1 -1
  305. package/lib/duet/{p-7559791e.system.entry.js → p-41dbacca.system.entry.js} +1 -1
  306. package/lib/duet/{p-daea7400.entry.js → p-42c4d8eb.entry.js} +1 -1
  307. package/lib/duet/{p-88079356.system.entry.js → p-458a582a.system.entry.js} +1 -1
  308. package/lib/duet/{p-73b9f01f.system.entry.js → p-46ae8180.system.entry.js} +1 -1
  309. package/lib/duet/{p-70521845.system.entry.js → p-472290cf.system.entry.js} +1 -1
  310. package/lib/duet/{p-51443fe0.system.entry.js → p-4829dff1.system.entry.js} +1 -1
  311. package/lib/duet/{p-64bc51ee.entry.js → p-4960de67.entry.js} +1 -1
  312. package/lib/duet/{p-6bfb1097.system.entry.js → p-4cc23ad9.system.entry.js} +1 -1
  313. package/lib/duet/{p-f831f948.system.entry.js → p-4dc42560.system.entry.js} +1 -1
  314. package/lib/duet/{p-ab5e0012.js → p-4ffa264b.js} +1 -1
  315. package/lib/duet/p-543274cc.entry.js +4 -0
  316. package/lib/duet/p-546f6d45.system.entry.js +4 -0
  317. package/lib/duet/{p-86a1f736.entry.js → p-55d583ae.entry.js} +1 -1
  318. package/lib/duet/{p-66ab34e4.system.entry.js → p-5639ce0e.system.entry.js} +1 -1
  319. package/lib/duet/p-5bd22454.system.entry.js +4 -0
  320. package/lib/duet/{p-5fcfa176.system.entry.js → p-5bfe7045.system.entry.js} +1 -1
  321. package/lib/duet/{p-2a664c02.system.entry.js → p-5c1601ff.system.entry.js} +1 -1
  322. package/lib/duet/{p-2fd5aa00.entry.js → p-5d2c26b0.entry.js} +1 -1
  323. package/lib/duet/{p-2ad5fbae.entry.js → p-5e55c792.entry.js} +1 -1
  324. package/lib/duet/{p-67d81156.entry.js → p-5ea3014b.entry.js} +1 -1
  325. package/lib/duet/p-5ee6ee0f.entry.js +4 -0
  326. package/lib/duet/{p-f62e0d80.entry.js → p-62fe20b3.entry.js} +1 -1
  327. package/lib/duet/p-68139eec.entry.js +4 -0
  328. package/lib/duet/{p-f42c2d6e.system.js → p-6ad43e56.system.js} +1 -1
  329. package/lib/duet/{p-256cd41d.system.entry.js → p-6b09f77a.system.entry.js} +1 -1
  330. package/lib/duet/{p-6d928783.system.entry.js → p-6dfd2ad4.system.entry.js} +2 -2
  331. package/lib/duet/{p-e8b9e8ef.entry.js → p-6f86849a.entry.js} +1 -1
  332. package/lib/duet/{p-ae604d66.entry.js → p-750b8092.entry.js} +1 -1
  333. package/lib/duet/p-7796b4bf.js +4 -0
  334. package/lib/duet/{p-76ae0bc6.system.entry.js → p-779cc0e2.system.entry.js} +1 -1
  335. package/lib/duet/{p-66584477.entry.js → p-7a4f6f61.entry.js} +1 -1
  336. package/lib/duet/{p-cbcbab5e.entry.js → p-7a851859.entry.js} +1 -1
  337. package/lib/duet/{p-151493bf.entry.js → p-7af65952.entry.js} +1 -1
  338. package/lib/duet/p-7c4bccd0.entry.js +4 -0
  339. package/lib/duet/{p-317012d4.system.entry.js → p-7ce56bbb.system.entry.js} +1 -1
  340. package/lib/duet/{p-14ab0d93.system.entry.js → p-7d41397d.system.entry.js} +1 -1
  341. package/lib/duet/{p-863e4171.system.entry.js → p-7e694c23.system.entry.js} +1 -1
  342. package/lib/duet/{p-a7752b9e.system.entry.js → p-7f73ca35.system.entry.js} +1 -1
  343. package/lib/duet/{p-b28be710.system.entry.js → p-8046702e.system.entry.js} +1 -1
  344. package/lib/duet/{p-8e3b762b.system.entry.js → p-811d068d.system.entry.js} +1 -1
  345. package/lib/duet/p-856aabfc.entry.js +4 -0
  346. package/lib/duet/{p-c0109cdc.entry.js → p-890d2216.entry.js} +1 -1
  347. package/lib/duet/{p-33a5b8d1.entry.js → p-8e6a3459.entry.js} +1 -1
  348. package/lib/duet/{p-6a21013d.system.entry.js → p-90945aa7.system.entry.js} +1 -1
  349. package/lib/duet/{p-9228a4db.system.entry.js → p-91a7213e.system.entry.js} +1 -1
  350. package/lib/duet/{p-658480e9.entry.js → p-924d010a.entry.js} +1 -1
  351. package/lib/duet/{p-8f12df73.entry.js → p-934fbd8c.entry.js} +1 -1
  352. package/lib/duet/{p-05e3d13d.system.entry.js → p-945299e5.system.entry.js} +1 -1
  353. package/lib/duet/{p-8dafd7ea.entry.js → p-94f1da1e.entry.js} +1 -1
  354. package/lib/duet/p-9b7e4770.entry.js +4 -0
  355. package/lib/duet/{p-d2b114c3.system.entry.js → p-9c29c451.system.entry.js} +1 -1
  356. package/lib/duet/{p-0f34e239.entry.js → p-9c8eff95.entry.js} +1 -1
  357. package/lib/duet/{p-3d15f7c8.system.entry.js → p-9db7f0ee.system.entry.js} +1 -1
  358. package/lib/duet/{p-3a954cff.system.entry.js → p-9dfddcfe.system.entry.js} +1 -1
  359. package/lib/duet/{p-15b98f96.entry.js → p-a0bf2426.entry.js} +1 -1
  360. package/lib/duet/{p-7a98b0ec.entry.js → p-a104d690.entry.js} +1 -1
  361. package/lib/duet/p-a1b7f2a0.js +4 -0
  362. package/lib/duet/{p-2d3595b0.system.entry.js → p-a2c5ed9f.system.entry.js} +1 -1
  363. package/lib/duet/{p-073a10d2.entry.js → p-a4d3867b.entry.js} +1 -1
  364. package/lib/duet/{p-86aaa7a8.entry.js → p-a4f6e7a4.entry.js} +1 -1
  365. package/lib/duet/{p-d6902713.system.entry.js → p-aa34aa28.system.entry.js} +1 -1
  366. package/lib/duet/{p-31ab2fac.system.entry.js → p-abb6b45d.system.entry.js} +2 -2
  367. package/lib/duet/{p-0d618124.entry.js → p-abb6c6d6.entry.js} +1 -1
  368. package/lib/duet/{p-988683bf.entry.js → p-ace84e21.entry.js} +1 -1
  369. package/lib/duet/{p-19987cc7.entry.js → p-b0092c61.entry.js} +1 -1
  370. package/lib/duet/{p-1622a8dc.entry.js → p-b16f7f88.entry.js} +1 -1
  371. package/lib/duet/{p-c168a681.entry.js → p-b188ca10.entry.js} +1 -1
  372. package/lib/duet/{p-c417f6e2.entry.js → p-b19584f8.entry.js} +1 -1
  373. package/lib/duet/{p-608649b0.system.entry.js → p-b34e1fe3.system.entry.js} +1 -1
  374. package/lib/duet/{p-1ff168a6.system.entry.js → p-b3ec72f4.system.entry.js} +1 -1
  375. package/lib/duet/{p-a5a66e00.system.entry.js → p-b501aa93.system.entry.js} +1 -1
  376. package/lib/duet/{p-7cf1ec7c.system.entry.js → p-b61e64ec.system.entry.js} +1 -1
  377. package/lib/duet/p-b641b843.entry.js +4 -0
  378. package/lib/duet/p-b71802e6.entry.js +4 -0
  379. package/lib/duet/{p-38ad9e4e.system.entry.js → p-b9235db5.system.entry.js} +1 -1
  380. package/lib/duet/{p-a0675b54.system.entry.js → p-b93f7135.system.entry.js} +1 -1
  381. package/lib/duet/{p-226f6be1.system.entry.js → p-ba472cc3.system.entry.js} +1 -1
  382. package/lib/duet/p-be07ec36.entry.js +4 -0
  383. package/lib/duet/{p-1fdaa565.system.entry.js → p-c0773d8a.system.entry.js} +1 -1
  384. package/lib/duet/p-c0b43b78.system.js +4 -0
  385. package/lib/duet/{p-8a8945a6.system.entry.js → p-c0f4fc0f.system.entry.js} +1 -1
  386. package/lib/duet/{p-4f4e7905.entry.js → p-c1226bac.entry.js} +1 -1
  387. package/lib/duet/{p-3199cd51.system.entry.js → p-c3324ec1.system.entry.js} +1 -1
  388. package/lib/duet/{p-9f7b6689.entry.js → p-c3dcf506.entry.js} +1 -1
  389. package/lib/duet/{p-1a3f475b.system.entry.js → p-c3df6a13.system.entry.js} +1 -1
  390. package/lib/duet/{p-23a308b4.entry.js → p-c436c489.entry.js} +1 -1
  391. package/lib/duet/{p-d7dc7cbe.system.entry.js → p-c6d0fa16.system.entry.js} +1 -1
  392. package/lib/duet/{p-a3295b50.entry.js → p-c9e60391.entry.js} +1 -1
  393. package/lib/duet/p-cc12db97.entry.js +4 -0
  394. package/lib/duet/{p-0389a394.js → p-cd0a050c.js} +1 -1
  395. package/lib/duet/p-cd5db171.system.entry.js +4 -0
  396. package/lib/duet/{p-f2c72c35.entry.js → p-cfaa9978.entry.js} +1 -1
  397. package/lib/duet/{p-c83596f4.entry.js → p-d0b4d585.entry.js} +1 -1
  398. package/lib/duet/{p-77056d41.entry.js → p-d1e721c0.entry.js} +1 -1
  399. package/lib/duet/{p-45e825a2.entry.js → p-d222404e.entry.js} +1 -1
  400. package/lib/duet/{p-ccce468e.entry.js → p-d43cb576.entry.js} +1 -1
  401. package/lib/duet/{p-74d3d7c2.system.entry.js → p-d723e2bf.system.entry.js} +1 -1
  402. package/lib/duet/{p-ca0f477d.system.entry.js → p-d72c9b61.system.entry.js} +1 -1
  403. package/lib/duet/{p-047c3e3b.system.entry.js → p-d8b5bb36.system.entry.js} +1 -1
  404. package/lib/duet/{p-354c17a2.entry.js → p-d8de1209.entry.js} +1 -1
  405. package/lib/duet/{p-ce0c1247.system.js → p-d98dd209.system.js} +1 -1
  406. package/lib/duet/p-d9b6cabf.system.js +4 -0
  407. package/lib/duet/{p-96731c5a.system.entry.js → p-dada7734.system.entry.js} +1 -1
  408. package/lib/duet/{p-9c4066c6.system.entry.js → p-db6b760d.system.entry.js} +1 -1
  409. package/lib/duet/p-e211e155.system.entry.js +4 -0
  410. package/lib/duet/{p-eb376f0d.entry.js → p-e4174ecb.entry.js} +1 -1
  411. package/lib/duet/{p-f45745d0.entry.js → p-e5f42099.entry.js} +1 -1
  412. package/lib/duet/{p-d4056106.entry.js → p-e696786c.entry.js} +1 -1
  413. package/lib/duet/{p-c059695b.system.entry.js → p-e6f52d21.system.entry.js} +1 -1
  414. package/lib/duet/{p-247f0bf4.system.entry.js → p-e82699f0.system.entry.js} +1 -1
  415. package/lib/duet/{p-9a8f0bb2.system.entry.js → p-ea4a51dd.system.entry.js} +1 -1
  416. package/lib/duet/{p-f3009df9.entry.js → p-ebcacf15.entry.js} +1 -1
  417. package/lib/duet/{p-fcc4a7c1.system.entry.js → p-ec31cc90.system.entry.js} +1 -1
  418. package/lib/duet/{p-09a780a9.entry.js → p-ecf78455.entry.js} +1 -1
  419. package/lib/duet/{p-6833ff0d.entry.js → p-f0ede3b6.entry.js} +1 -1
  420. package/lib/duet/{p-a04c76f4.system.entry.js → p-f1984238.system.entry.js} +1 -1
  421. package/lib/duet/{p-ebef8737.system.entry.js → p-f505766a.system.entry.js} +1 -1
  422. package/lib/duet/{p-8e30f9a6.system.entry.js → p-f7719d79.system.entry.js} +1 -1
  423. package/lib/duet/{p-c0715203.system.entry.js → p-f7e80bed.system.entry.js} +1 -1
  424. package/lib/duet/{p-e45e0200.system.entry.js → p-f97f62e2.system.entry.js} +2 -2
  425. package/lib/duet/{p-c8f68ea5.entry.js → p-fbd2a797.entry.js} +1 -1
  426. package/lib/duet/{p-256b1c93.entry.js → p-fd8f15ff.entry.js} +1 -1
  427. package/lib/duet/{p-80f53550.system.entry.js → p-fe77631b.system.entry.js} +1 -1
  428. package/lib/duet/{p-ae58e4dd.system.entry.js → p-ffcbc32e.system.entry.js} +2 -2
  429. package/lib/esm/duet-action-button.entry.js +2 -2
  430. package/lib/esm/duet-alert.entry.js +2 -2
  431. package/lib/esm/duet-badge.entry.js +1 -1
  432. package/lib/esm/duet-banner.entry.js +29 -6
  433. package/lib/esm/duet-breadcrumb.entry.js +2 -2
  434. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  435. package/lib/esm/duet-button_2.entry.js +1 -1
  436. package/lib/esm/duet-callout.entry.js +1 -1
  437. package/lib/esm/duet-caption_4.entry.js +4 -2
  438. package/lib/esm/duet-card.entry.js +2 -2
  439. package/lib/esm/duet-checkbox.entry.js +2 -2
  440. package/lib/esm/duet-checkmark.entry.js +1 -1
  441. package/lib/esm/duet-chip.entry.js +2 -2
  442. package/lib/esm/duet-choice_2.entry.js +20 -36
  443. package/lib/esm/duet-collapsible.entry.js +2 -2
  444. package/lib/esm/duet-combobox.entry.js +72 -60
  445. package/lib/esm/duet-contact-card.entry.js +1 -1
  446. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  447. package/lib/esm/duet-date-picker.entry.js +2 -2
  448. package/lib/esm/duet-divider_2.entry.js +1 -1
  449. package/lib/esm/duet-editable-table_3.entry.js +2 -2
  450. package/lib/esm/duet-empty-state.entry.js +1 -1
  451. package/lib/esm/duet-fieldset.entry.js +2 -2
  452. package/lib/esm/duet-file-chooser.entry.js +1 -1
  453. package/lib/esm/duet-footer.entry.js +2 -2
  454. package/lib/esm/duet-grid_2.entry.js +1 -1
  455. package/lib/esm/duet-header_2.entry.js +2 -2
  456. package/lib/esm/duet-hero.entry.js +2 -2
  457. package/lib/esm/duet-icon.entry.js +2 -2
  458. package/lib/esm/duet-input_2.entry.js +2 -2
  459. package/lib/esm/duet-layout.entry.js +1 -1
  460. package/lib/esm/duet-list_2.entry.js +1 -1
  461. package/lib/esm/duet-menu-bar-button.entry.js +1 -1
  462. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +2 -2
  463. package/lib/esm/duet-menu-bar-dropdown.entry.js +2 -2
  464. package/lib/esm/duet-menu-bar-item.entry.js +1 -1
  465. package/lib/esm/duet-menu-bar-link.entry.js +1 -1
  466. package/lib/esm/duet-menu-bar.entry.js +1 -1
  467. package/lib/esm/duet-modal.entry.js +21 -22
  468. package/lib/esm/duet-multiselect.entry.js +2 -2
  469. package/lib/esm/duet-nav.entry.js +1 -1
  470. package/lib/esm/duet-notification_2.entry.js +2 -2
  471. package/lib/esm/duet-number-input.entry.js +2 -2
  472. package/lib/esm/duet-overlay.entry.js +5 -5
  473. package/lib/esm/duet-page-heading.entry.js +1 -1
  474. package/lib/esm/duet-pagination_2.entry.js +2 -2
  475. package/lib/esm/duet-popup-menu-item.entry.js +1 -1
  476. package/lib/esm/duet-popup-menu.entry.js +13 -7
  477. package/lib/esm/duet-progress.entry.js +1 -1
  478. package/lib/esm/duet-promo-card.entry.js +1 -1
  479. package/lib/esm/duet-radio_2.entry.js +1 -1
  480. package/lib/esm/duet-range-slider.entry.js +2 -2
  481. package/lib/esm/duet-scrollable_3.entry.js +2 -2
  482. package/lib/esm/duet-section-layout.entry.js +1 -1
  483. package/lib/esm/duet-select.entry.js +1 -1
  484. package/lib/esm/duet-shaped-image.entry.js +1 -1
  485. package/lib/esm/duet-show-more.entry.js +2 -2
  486. package/lib/esm/duet-slideout-lang.entry.js +1 -1
  487. package/lib/esm/duet-slideout-link.entry.js +1 -1
  488. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  489. package/lib/esm/duet-slideout-panel.entry.js +2 -2
  490. package/lib/esm/duet-slideout.entry.js +15 -7
  491. package/lib/esm/duet-step_2.entry.js +2 -2
  492. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +2 -2
  493. package/lib/esm/duet-submenu-bar-dropdown.entry.js +2 -2
  494. package/lib/esm/duet-submenu-bar-item.entry.js +2 -2
  495. package/lib/esm/duet-submenu-bar-link.entry.js +2 -2
  496. package/lib/esm/duet-submenu-bar.entry.js +1 -1
  497. package/lib/esm/duet-textarea.entry.js +1 -1
  498. package/lib/esm/duet-toggle.entry.js +2 -2
  499. package/lib/esm/duet-toolbar-dropdown-link.entry.js +2 -2
  500. package/lib/esm/duet-toolbar-dropdown.entry.js +2 -2
  501. package/lib/esm/duet-toolbar-item.entry.js +1 -1
  502. package/lib/esm/duet-toolbar-link.entry.js +1 -1
  503. package/lib/esm/duet-toolbar.entry.js +1 -1
  504. package/lib/esm/duet-tooltip-button_2.entry.js +10 -15
  505. package/lib/esm/duet-tooltip.entry.js +6 -22
  506. package/lib/esm/duet-tray.entry.js +2 -2
  507. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  508. package/lib/esm/duet-upload-item.entry.js +1 -1
  509. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  510. package/lib/esm/duet.js +3 -3
  511. package/lib/esm/{floating-ui.dom.esm-34e0a5fa.js → floating-ui.dom.esm-01fcd83a.js} +69 -1
  512. package/lib/esm/{focus-utils-a10adf64.js → focus-utils-aa3a68f0.js} +1 -1
  513. package/lib/esm/{index-64c1298f.js → index-453deef5.js} +1 -1
  514. package/lib/esm/{keyboard-utils-0708be80.js → keyboard-utils-439bcc8b.js} +2 -1
  515. package/lib/esm/loader.js +3 -3
  516. package/lib/esm/{teleport-d66d62e4.js → teleport-13402d94.js} +37 -29
  517. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  518. package/lib/esm-es5/duet-alert.entry.js +1 -1
  519. package/lib/esm-es5/duet-badge.entry.js +1 -1
  520. package/lib/esm-es5/duet-banner.entry.js +1 -1
  521. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  522. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  523. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  524. package/lib/esm-es5/duet-callout.entry.js +1 -1
  525. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  526. package/lib/esm-es5/duet-card.entry.js +1 -1
  527. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  528. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  529. package/lib/esm-es5/duet-chip.entry.js +1 -1
  530. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  531. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  532. package/lib/esm-es5/duet-combobox.entry.js +2 -2
  533. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  534. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  535. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  536. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  537. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  538. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  539. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  540. package/lib/esm-es5/duet-file-chooser.entry.js +1 -1
  541. package/lib/esm-es5/duet-footer.entry.js +1 -1
  542. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  543. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  544. package/lib/esm-es5/duet-hero.entry.js +1 -1
  545. package/lib/esm-es5/duet-icon.entry.js +1 -1
  546. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  547. package/lib/esm-es5/duet-layout.entry.js +1 -1
  548. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  549. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  550. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  551. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  552. package/lib/esm-es5/duet-menu-bar-item.entry.js +1 -1
  553. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  554. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  555. package/lib/esm-es5/duet-modal.entry.js +2 -2
  556. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  557. package/lib/esm-es5/duet-nav.entry.js +1 -1
  558. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  559. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  560. package/lib/esm-es5/duet-overlay.entry.js +1 -1
  561. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  562. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  563. package/lib/esm-es5/duet-popup-menu-item.entry.js +1 -1
  564. package/lib/esm-es5/duet-popup-menu.entry.js +1 -1
  565. package/lib/esm-es5/duet-progress.entry.js +1 -1
  566. package/lib/esm-es5/duet-promo-card.entry.js +2 -2
  567. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  568. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  569. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  570. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  571. package/lib/esm-es5/duet-select.entry.js +1 -1
  572. package/lib/esm-es5/duet-shaped-image.entry.js +1 -1
  573. package/lib/esm-es5/duet-show-more.entry.js +1 -1
  574. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  575. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  576. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  577. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  578. package/lib/esm-es5/duet-slideout.entry.js +1 -1
  579. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  580. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  581. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  582. package/lib/esm-es5/duet-submenu-bar-item.entry.js +1 -1
  583. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  584. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  585. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  586. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  587. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  588. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  589. package/lib/esm-es5/duet-toolbar-item.entry.js +1 -1
  590. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  591. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  592. package/lib/esm-es5/duet-tooltip-button_2.entry.js +2 -2
  593. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  594. package/lib/esm-es5/duet-tray.entry.js +1 -1
  595. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  596. package/lib/esm-es5/duet-upload-item.entry.js +1 -1
  597. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  598. package/lib/esm-es5/duet.js +1 -1
  599. package/lib/esm-es5/{floating-ui.dom.esm-34e0a5fa.js → floating-ui.dom.esm-01fcd83a.js} +1 -1
  600. package/lib/esm-es5/focus-utils-aa3a68f0.js +4 -0
  601. package/lib/esm-es5/{index-64c1298f.js → index-453deef5.js} +1 -1
  602. package/lib/esm-es5/{keyboard-utils-0708be80.js → keyboard-utils-439bcc8b.js} +1 -1
  603. package/lib/esm-es5/loader.js +1 -1
  604. package/lib/esm-es5/{teleport-d66d62e4.js → teleport-13402d94.js} +1 -1
  605. package/lib/types/components/duet-banner/duet-banner.d.ts +8 -3
  606. package/lib/types/components/duet-choice/duet-choice.d.ts +1 -5
  607. package/lib/types/components/duet-combobox/duet-combobox.d.ts +3 -1
  608. package/lib/types/components/duet-fieldset/duet-fieldset.d.ts +1 -1
  609. package/lib/types/components/duet-link/duet-link.d.ts +5 -1
  610. package/lib/types/components/duet-modal/duet-modal.d.ts +2 -4
  611. package/lib/types/components/duet-overlay/duet-overlay.d.ts +2 -2
  612. package/lib/types/components/duet-tooltip/duet-tooltip-popup.d.ts +0 -1
  613. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +1 -7
  614. package/lib/types/components.d.ts +28 -18
  615. package/lib/types/utils/teleport.d.ts +12 -10
  616. package/package.json +5 -5
  617. package/lib/duet/p-108e590d.entry.js +0 -4
  618. package/lib/duet/p-11e152cd.js +0 -4
  619. package/lib/duet/p-2acc7234.entry.js +0 -4
  620. package/lib/duet/p-314584b6.entry.js +0 -4
  621. package/lib/duet/p-3624bad1.js +0 -4
  622. package/lib/duet/p-492f593d.system.entry.js +0 -4
  623. package/lib/duet/p-4ce604e7.system.entry.js +0 -4
  624. package/lib/duet/p-5b26e3f6.entry.js +0 -4
  625. package/lib/duet/p-5d4415c4.entry.js +0 -4
  626. package/lib/duet/p-65e3c5b0.system.js +0 -4
  627. package/lib/duet/p-6628b910.entry.js +0 -4
  628. package/lib/duet/p-75ddb749.system.entry.js +0 -4
  629. package/lib/duet/p-8d9eed3a.entry.js +0 -4
  630. package/lib/duet/p-906431d6.system.entry.js +0 -4
  631. package/lib/duet/p-954187ca.entry.js +0 -4
  632. package/lib/duet/p-a8ec05ce.entry.js +0 -4
  633. package/lib/duet/p-ad8f72c1.entry.js +0 -4
  634. package/lib/duet/p-add5965e.system.entry.js +0 -4
  635. package/lib/duet/p-b7de6cf2.system.js +0 -4
  636. package/lib/duet/p-c6504e8e.system.entry.js +0 -4
  637. package/lib/duet/p-ccdff614.js +0 -4
  638. package/lib/duet/p-cda576c3.entry.js +0 -4
  639. package/lib/duet/p-d9e75bb3.entry.js +0 -4
  640. package/lib/duet/p-e639b9ee.system.js +0 -4
  641. package/lib/duet/p-e8320a1b.system.entry.js +0 -4
  642. package/lib/duet/p-e8d4440f.system.entry.js +0 -4
  643. package/lib/duet/p-fb543570.entry.js +0 -4
  644. package/lib/esm-es5/focus-utils-a10adf64.js +0 -4
@@ -24,7 +24,7 @@ export class DuetFieldset {
24
24
  this.compactLabel = false;
25
25
  this.error = undefined;
26
26
  this.accessibleLiveError = "polite";
27
- this.labelHeadingLevel = "h3";
27
+ this.labelHeadingLevel = "span";
28
28
  this.labelHidden = false;
29
29
  }
30
30
  /**
@@ -210,8 +210,8 @@ export class DuetFieldset {
210
210
  "type": "string",
211
211
  "mutable": false,
212
212
  "complexType": {
213
- "original": "DuetHeadingLevel",
214
- "resolved": "\"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\"",
213
+ "original": "DuetHeadingLevel | \"span\"",
214
+ "resolved": "\"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"span\"",
215
215
  "references": {
216
216
  "DuetHeadingLevel": {
217
217
  "location": "import",
@@ -228,7 +228,7 @@ export class DuetFieldset {
228
228
  },
229
229
  "attribute": "label-heading-level",
230
230
  "reflect": false,
231
- "defaultValue": "\"h3\""
231
+ "defaultValue": "\"span\""
232
232
  },
233
233
  "labelHidden": {
234
234
  "type": "boolean",
@@ -182,7 +182,7 @@ export class DuetHero {
182
182
  href: this.processedBack.href,
183
183
  id: this.processedBack.id,
184
184
  analyticsId: this.processedBack.analyticsId,
185
- }) }, this.processedBack.label))), (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (h("duet-icon", { class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })), h("div", { class: { "duet-hero-text": true }, part: "duet-hero-text" }, (this.preHeading || this.hasPreHeadingSlot) && (h("duet-paragraph", { margin: "none", class: "duet-hero-pre", size: this.variation === "content" ? "small" : "medium" }, this.preHeading ? (this.preHeading) : (h("span", null, h("slot", { name: "pre-heading" }))))), h("slot", { name: "badge" }), (this.heading || this.hasHeadingSlot) && (h("duet-heading", { theme: this.theme, level: this.level, class: { "duet-hero-heading": true, "duet-hero-heading-has-pre": this.preHeading !== "" }, color: headingColor, visualLevel: headingVisualLevel, margin: campaignOrSection ? "none" : "auto" }, this.heading ? (this.heading) : (h("span", null, h("slot", { name: "heading" }))))), campaignOrSection && this.hasSubHeadingSlot && (h("duet-heading", { theme: this.theme, level: this.subHeadingLevel, class: { "duet-hero-subheading": true }, color: this.theme === "turva" ? "secondary-turva" : "secondary", visualLevel: "h2" }, h("span", null, h("slot", { name: "subheading" })))), this.description && (h("duet-paragraph", { theme: this.theme, color: textColor, variation: "intro" }, this.description)), (this.variation === "gray" || this.variation === "minimal") && this.processedListItems && (h("duet-list", { theme: this.theme, "label-width": "30", breakpoint: "large", mobile: this.leftAlign ? undefined : "center" }, this.processedListItems.map(item => (h("duet-list-item", null, h("span", { slot: "label" }, item.label), h("span", { slot: "value" }, item.value)))))), this.buttonLabel && (h("duet-button", { url: this.buttonUrl, icon: this.icon, iconRight: this.iconRight, iconSize: this.iconSize, variation: buttonVariation, theme: this.theme, identifier: this.buttonId, onClick: event => this.handleClick(event, this.buttonData), fixed: true }, this.buttonLabel)), h("div", { class: "duet-hero-slot-unnamed" }, h("slot", null))), (this.variation === "gray" || this.variation === "minimal") && this.processedActions && (h("div", { class: "duet-hero-links" }, this.processedActions.map(item => (h("a", { class: "duet-hero-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleClick(event, item) }, h("div", { class: "duet-hero-action-icon" }, h("duet-icon", { size: "small", margin: "none", name: item.icon, color: "currentColor", outline: outlineColor })), h("span", null, item.label), item.external && h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), item.external && (h("div", { class: "duet-hero-action-arrow" }, h("duet-icon", { icon: newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" })))))))), this.image &&
185
+ }) }, this.processedBack.label))), (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (h("duet-icon", { class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })), h("div", { class: { "duet-hero-text": true }, part: "duet-hero-text" }, (this.preHeading || this.hasPreHeadingSlot) && (h("duet-paragraph", { margin: "none", class: "duet-hero-pre", size: this.variation === "content" ? "small" : "medium" }, this.preHeading ? (this.preHeading) : (h("span", null, h("slot", { name: "pre-heading" }))))), h("slot", { name: "badge" }), (this.heading || this.hasHeadingSlot) && (h("duet-heading", { theme: this.theme, level: this.level, class: { "duet-hero-heading": true, "duet-hero-heading-has-pre": this.preHeading !== "" }, color: headingColor, visualLevel: headingVisualLevel, margin: campaignOrSection ? "none" : "auto" }, this.heading ? (this.heading) : (h("span", null, h("slot", { name: "heading" }))))), campaignOrSection && this.hasSubHeadingSlot && (h("duet-heading", { theme: this.theme, level: this.subHeadingLevel, class: { "duet-hero-subheading": true }, color: this.theme === "turva" ? "secondary-turva" : "secondary", visualLevel: "h2" }, h("span", null, h("slot", { name: "subheading" })))), this.description && (h("duet-paragraph", { theme: this.theme, color: textColor, variation: "intro" }, this.description)), (this.variation === "gray" || this.variation === "minimal") && this.processedListItems && (h("duet-list", { theme: this.theme, "label-width": "30", breakpoint: "large", mobile: this.leftAlign ? undefined : "center" }, this.processedListItems.map(item => (h("duet-list-item", null, h("span", { slot: "label" }, item.label), h("span", { slot: "value" }, item.value)))))), this.buttonLabel && (h("duet-button", { url: this.buttonUrl, icon: this.icon, iconRight: this.iconRight, iconSize: this.iconSize, variation: buttonVariation, theme: this.theme, identifier: this.buttonId, onClick: event => this.handleClick(event, this.buttonData), fixed: true }, this.buttonLabel)), h("slot", null)), (this.variation === "gray" || this.variation === "minimal") && this.processedActions && (h("div", { class: "duet-hero-links" }, this.processedActions.map(item => (h("a", { class: "duet-hero-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleClick(event, item) }, h("div", { class: "duet-hero-action-icon" }, h("duet-icon", { size: "small", margin: "none", name: item.icon, color: "currentColor", outline: outlineColor })), h("span", null, item.label), item.external && h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), item.external && (h("div", { class: "duet-hero-action-arrow" }, h("duet-icon", { icon: newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" })))))))), this.image &&
186
186
  this.variation !== "image" &&
187
187
  !campaignOrSection &&
188
188
  this.variation !== "product" &&
@@ -301,5 +301,7 @@
301
301
  .duet-icon svg {
302
302
  width: 100%;
303
303
  min-width: 100%;
304
+ overflow: clip;
304
305
  fill: currentColor;
306
+ overflow-clip-margin: 1px;
305
307
  }
@@ -37,6 +37,10 @@
37
37
  margin-right: 0 !important;
38
38
  }
39
39
 
40
+ :host(.duet-m-0) {
41
+ margin: 0 !important;
42
+ }
43
+
40
44
  .duet-link {
41
45
  display: inline;
42
46
  font-family: "localtapiola-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
@@ -34,6 +34,7 @@ export class DuetLink {
34
34
  this.iconColor = "currentColor";
35
35
  this.iconBackground = null;
36
36
  this.iconResponsive = false;
37
+ this.margin = "auto";
37
38
  this.padding = "auto";
38
39
  this.isSmallScreen = false;
39
40
  this.isMediumScreen = false;
@@ -142,6 +143,7 @@ export class DuetLink {
142
143
  const Tag = !this.url ? "button" : "a";
143
144
  return (h(Host, { class: {
144
145
  [`duet-link-${this.variation}`]: true,
146
+ "duet-m-0": this.margin === "none",
145
147
  } }, h(Tag, { href: this.url, class: {
146
148
  "duet-link": true,
147
149
  "duet-link-is-external": this.external,
@@ -539,6 +541,30 @@ export class DuetLink {
539
541
  "reflect": false,
540
542
  "defaultValue": "false"
541
543
  },
544
+ "margin": {
545
+ "type": "string",
546
+ "mutable": false,
547
+ "complexType": {
548
+ "original": "DuetMargin",
549
+ "resolved": "\"auto\" | \"none\"",
550
+ "references": {
551
+ "DuetMargin": {
552
+ "location": "import",
553
+ "path": "../../common-types",
554
+ "id": "src/common-types.d.ts::DuetMargin"
555
+ }
556
+ }
557
+ },
558
+ "required": false,
559
+ "optional": false,
560
+ "docs": {
561
+ "tags": [],
562
+ "text": "Controls the margin of the component (only with \"button\" variation)"
563
+ },
564
+ "attribute": "margin",
565
+ "reflect": false,
566
+ "defaultValue": "\"auto\""
567
+ },
542
568
  "padding": {
543
569
  "type": "string",
544
570
  "mutable": false,
@@ -150,19 +150,24 @@
150
150
  position: relative;
151
151
  height: 120px;
152
152
  }
153
+ .duet-modal.loader .duet-modal-inner-slot-default {
154
+ position: relative;
155
+ backdrop-filter: blur(10px);
156
+ }
153
157
  .duet-modal.loader duet-paragraph.duet-loader-message {
154
- max-height: 0;
158
+ position: absolute;
155
159
  opacity: 0;
156
160
  transition: all 300ms ease;
157
- transform: scale(0.9);
161
+ transform: scaleY(0);
162
+ transform-origin: top;
158
163
  }
159
164
  .duet-modal.loader duet-paragraph.duet-loader-message.show {
160
- max-height: 100px;
161
165
  opacity: 1;
162
- transform: scale(1);
166
+ transform: scaleY(1);
167
+ transform-origin: bottom;
163
168
  }
164
- .duet-modal.loader duet-paragraph.duet-loader-message:first-of-type::part(duet-paragraph) {
165
- font-weight: 600;
169
+ .duet-modal.loader duet-paragraph.duet-loader-message.show::part(duet-paragraph) {
170
+ backdrop-filter: blur(10px);
166
171
  }
167
172
  .duet-disable-transitions .duet-modal {
168
173
  transition: none;
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { createPage, isFocused } from "../../utils/test-utils";
4
+ import { createPage } from "../../utils/test-utils";
5
5
  describe("duet-modal", () => {
6
6
  // we want to wait for modal to be focused to ensure close button
7
7
  // automatically receives focus when `active` prop is `true`
@@ -59,39 +59,6 @@ describe("duet-modal", () => {
59
59
  const element = await page.find("duet-modal >>> .duet-modal-container");
60
60
  expect(element).toHaveClass("duet-modal-active");
61
61
  });
62
- it("traps focus", async () => {
63
- const page = await createPage(`
64
- <duet-modal
65
- size="small"
66
- heading="Modal test"
67
- icon="damage-breakage"
68
- class="duet-text-center"
69
- active
70
- >
71
- <duet-paragraph>
72
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
73
- magna aliqua. Ut enim ad minim veniam quis nostrud.
74
- </duet-paragraph>
75
- <duet-paragraph>
76
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt.
77
- </duet-paragraph>
78
- <duet-collapsible heading="Click to open details">
79
- Lorem ipsum dolor sit, amet consectetur adipisicing elit.
80
- Aperiam impedit, possimus minima repudiandae.
81
- </duet-collapsible>
82
- </duet-modal>
83
- `);
84
- await page.find("duet-modal");
85
- await page.waitForFunction(isModalFocused);
86
- // tab to link in light dom
87
- await page.keyboard.press("Tab");
88
- const collapsible = await page.find("duet-collapsible >>> button");
89
- expect(await isFocused(collapsible)).toBe(true);
90
- // focus should now go back to close button
91
- await page.keyboard.press("Tab");
92
- const closeButton = await page.find("duet-modal >>> duet-button");
93
- expect(await isFocused(closeButton)).toBe(true);
94
- });
95
62
  it.skip("closes on blur", async () => {
96
63
  const page = await createPage(`
97
64
  <duet-modal
@@ -5,8 +5,7 @@ import { Build, h } from "@stencil/core";
5
5
  import { disableBodyScroll, enableBodyScroll } from "body-scroll-lock/lib/bodyScrollLock.es6.js";
6
6
  import { inheritGlobalTheme } from "../../common";
7
7
  import { DuetStringsPleaseWaitDefaults } from "../../common-strings";
8
- import { createID } from "../../utils/create-id";
9
- import { focusElement, FocusGuard } from "../../utils/focus-utils";
8
+ import { focusElement } from "../../utils/focus-utils";
10
9
  import { isEscapeKey } from "../../utils/keyboard-utils";
11
10
  import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocaleString, } from "../../utils/language-utils";
12
11
  import { hasSlot } from "../../utils/slot-utils";
@@ -22,11 +21,6 @@ const TRANSITION_MS = 600;
22
21
  export class DuetModal {
23
22
  constructor() {
24
23
  var _a, _b;
25
- /**
26
- * Own Properties.
27
- */
28
- this.modalId = createID("DuetModal");
29
- this.slotDefaultId = createID("DuetModal-default-slot");
30
24
  this.hasStickyHeader = false;
31
25
  this.isAndroidDevice = ((_b = (_a = navigator === null || navigator === void 0 ? void 0 : navigator.userAgent) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === null || _b === void 0 ? void 0 : _b.indexOf("android")) > -1 || null;
32
26
  this.isSafariBrowser = /^((?!chrome|android).)*safari/i.test(navigator === null || navigator === void 0 ? void 0 : navigator.userAgent);
@@ -78,7 +72,7 @@ export class DuetModal {
78
72
  }
79
73
  this.focusedElBeforeOpen = document.activeElement;
80
74
  disableBodyScroll(this.modalEl, { reserveScrollBarGap: true });
81
- this.teleport.go(true);
75
+ this.teleport.makeSiblingsInert();
82
76
  this.slotContainerEl.querySelectorAll(".duet-loader-message").forEach(el => el.remove());
83
77
  setTimeout(() => {
84
78
  if (this.variation === "loader") {
@@ -102,7 +96,7 @@ export class DuetModal {
102
96
  this.modalEl.classList.remove("duet-disable-transitions");
103
97
  enableBodyScroll(this.modalEl);
104
98
  this.duetClose.emit();
105
- this.teleport.resume(TRANSITION_MS);
99
+ this.teleport.removeInertFromSiblings(TRANSITION_MS);
106
100
  setTimeout(() => {
107
101
  focusElement(this.focusedElBeforeOpen);
108
102
  }, TRANSITION_MS);
@@ -125,7 +119,6 @@ export class DuetModal {
125
119
  if (Build.isServer) {
126
120
  return;
127
121
  }
128
- this.teleport = new Teleport(this.element);
129
122
  if (this.active) {
130
123
  // This specific line below can’t be moved to componentWillLoad()
131
124
  // as it breaks body scroll enabling.
@@ -134,6 +127,15 @@ export class DuetModal {
134
127
  }
135
128
  }
136
129
  connectedCallback() {
130
+ if (Build.isServer) {
131
+ return;
132
+ }
133
+ if (!this.teleport) {
134
+ this.teleport = new Teleport(this.element);
135
+ }
136
+ if (this.teleport) {
137
+ this.teleport.activate();
138
+ }
137
139
  connectLanguageChangeObserver(this, [
138
140
  { prop: "accessibleCloseLabel", defaults: "accessibleCloseLabelDefaults" },
139
141
  { prop: "accessibleLoaderAnnouncement", defaults: "accessibleLoaderAnnouncementDefaults" },
@@ -141,7 +143,9 @@ export class DuetModal {
141
143
  }
142
144
  disconnectedCallback() {
143
145
  disconnectLanguageChangeObserver(this);
144
- enableBodyScroll(this.modalEl);
146
+ if (this.modalEl) {
147
+ enableBodyScroll(this.modalEl);
148
+ }
145
149
  }
146
150
  /**
147
151
  * Component event handling.
@@ -180,11 +184,9 @@ export class DuetModal {
180
184
  const el = document.createElement(visible ? "duet-paragraph" : "duet-visually-hidden");
181
185
  el.textContent = message;
182
186
  el.classList.add("duet-loader-message");
183
- if (this.variation === "loader" && visible) {
184
- el.setAttribute("color", "gray-lightest");
185
- }
186
187
  if (visible) {
187
188
  setTimeout(() => {
189
+ this.slotContainerEl.querySelectorAll(".duet-loader-message").forEach(el => el.classList.remove("show"));
188
190
  el.classList.add("show");
189
191
  }, 10);
190
192
  }
@@ -210,7 +212,7 @@ export class DuetModal {
210
212
  * Always the last one in the class.
211
213
  */
212
214
  render() {
213
- var _a;
215
+ var _a, _b;
214
216
  let iconColor = "primary";
215
217
  let closeColor = "secondary";
216
218
  const closingButton = (h("div", { class: "duet-modal-close" }, h("duet-button", { ref: button => (this.buttonEl = button), variation: "plain", accessibleLabel: this.accessibleCloseLabel, color: closeColor, iconSize: "large", icon: "navigation-close", iconOnly: true, margin: "none", theme: this.theme, onClick: ev => this.closeModal(ev), fixed: true })));
@@ -218,13 +220,13 @@ export class DuetModal {
218
220
  iconColor = "primary-turva";
219
221
  closeColor = "secondary-turva";
220
222
  }
221
- return (h("div", { ref: modal => (this.modalEl = modal), "aria-label": this.accessibleLabel, "aria-labelledby": this.heading ? this.modalId : false, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-describedby": this.accessibleDescribedBy, role: this.variation === "loader" ? "alert" : "dialog", "aria-modal": this.isSafariBrowser ? false : true, tabindex: "-1", "aria-flowto": this.slotDefaultId, class: {
223
+ return (h("div", { ref: modal => (this.modalEl = modal), "aria-label": (_a = this.accessibleLabel) !== null && _a !== void 0 ? _a : this.heading, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-describedby": this.accessibleDescribedBy, role: this.variation === "loader" ? "alert" : "dialog", "aria-modal": this.isSafariBrowser ? false : true, tabindex: "-1", class: {
222
224
  "duet-modal-container": true,
223
225
  "duet-theme-turva": this.theme === "turva",
224
226
  "duet-modal-active": this.open,
225
227
  "duet-modal-slide-up": this.variation === "slide-up",
226
228
  "duet-modal-has-sticky-header": this.hasStickyHeader,
227
- } }, h(FocusGuard, { moveFocusTo: this.buttonEl }), h("duet-overlay", { "z-index": "-1", visible: this.open, dark: this.variation === "loader" }), h("div", { ref: modalInner => (this.modalInnerEl = modalInner), class: {
229
+ } }, h("duet-overlay", { "z-index": "-1", visible: this.open, variation: this.variation === "loader" ? "white" : "default" }), h("div", { ref: modalInner => (this.modalInnerEl = modalInner), class: {
228
230
  "duet-modal-inner": true,
229
231
  [this.size]: true,
230
232
  "duet-modal-slide-up": this.variation === "slide-up",
@@ -246,7 +248,7 @@ export class DuetModal {
246
248
  "duet-modal-gutter-small": this.gutterSize === "small",
247
249
  "duet-modal-gutter-medium": this.gutterSize === "medium",
248
250
  "duet-modal-gutter-large": this.gutterSize === "large",
249
- } }, h("div", { class: "duet-modal-header" }, h("span", { class: "duet-modal-inner-slot-top" }, h("slot", { name: "top" })), this.icon && h("duet-icon", { name: this.icon, size: "xx-large", color: this.color || iconColor }), this.heading && (h("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))), this.variation === "loader" && (h("div", { class: "duet-modal-spinner" }, h("duet-spinner", { size: "large", color: "gray-lightest" }))), h("div", { class: "duet-modal-inner-slot-default", id: this.slotDefaultId, ref: el => (this.slotContainerEl = el), "aria-live": this.variation === "loader" ? "assertive" : "off" }, h("slot", null))))), h(FocusGuard, { moveFocusTo: this.buttonEl })));
251
+ } }, h("div", { class: "duet-modal-header" }, h("span", { class: "duet-modal-inner-slot-top" }, h("slot", { name: "top" })), this.icon && h("duet-icon", { name: this.icon, size: "xx-large", color: this.color || iconColor }), this.heading && (h("duet-heading", { "visual-level": (_b = this.headingVisualLevel) !== null && _b !== void 0 ? _b : this.headingLevel, level: this.headingLevel, theme: this.theme }, this.heading))), this.variation === "loader" && (h("div", { class: "duet-modal-spinner" }, h("duet-spinner", { size: "large", color: "primary" }))), h("div", { class: "duet-modal-inner-slot-default", ref: el => (this.slotContainerEl = el), "aria-live": this.variation === "loader" ? "assertive" : "off" }, h("slot", null)))))));
250
252
  }
251
253
  static get is() { return "duet-modal"; }
252
254
  static get encapsulation() { return "shadow"; }
@@ -404,7 +406,7 @@ export class DuetModal {
404
406
  "optional": false,
405
407
  "docs": {
406
408
  "tags": [],
407
- "text": "By default the heading is used as target for aria-labelledby, and it overrides this label.\nIf you wish to skip the heading, you must set this label."
409
+ "text": "By default the heading is used aria-label for the modal.\nIf you wish to use something else then you must set this label."
408
410
  },
409
411
  "attribute": "accessible-label",
410
412
  "reflect": false
@@ -26,7 +26,14 @@
26
26
  opacity: 0;
27
27
  }
28
28
  .duet-overlay.dark {
29
- opacity: 0.5;
29
+ opacity: 0.85;
30
+ }
31
+ .duet-overlay.white {
32
+ background: rgb(255, 255, 255);
33
+ opacity: 0.9;
34
+ }
35
+ .duet-overlay.white.duet-theme-turva {
36
+ background: rgb(255, 255, 255);
30
37
  }
31
38
  .duet-overlay.display-x-small {
32
39
  display: none;
@@ -22,7 +22,7 @@ export class DuetOverlay {
22
22
  this.displayDevice = "all";
23
23
  this.transition = "slowly";
24
24
  this.zIndex = "400";
25
- this.dark = false;
25
+ this.variation = "default";
26
26
  }
27
27
  /**
28
28
  * Component lifecycle events.
@@ -35,7 +35,7 @@ export class DuetOverlay {
35
35
  * Always the last one in the class.
36
36
  */
37
37
  render() {
38
- return (h(Host, null, h("div", { style: { zIndex: this.zIndex }, class: {
38
+ return (h(Host, { "aria-hidden": "true" }, h("div", { style: { zIndex: this.zIndex }, class: {
39
39
  "duet-overlay": true,
40
40
  "duet-theme-turva": this.theme === "turva",
41
41
  "keep-stacking-context": this.keepStackingContext,
@@ -46,7 +46,7 @@ export class DuetOverlay {
46
46
  "display-large": this.getDisplayBreakpoint() === "large",
47
47
  not: this.displayDevice.startsWith("not"),
48
48
  hidden: !this.visible,
49
- dark: this.dark,
49
+ [this.variation]: true,
50
50
  } })));
51
51
  }
52
52
  static get is() { return "duet-overlay"; }
@@ -201,23 +201,23 @@ export class DuetOverlay {
201
201
  "reflect": false,
202
202
  "defaultValue": "\"400\""
203
203
  },
204
- "dark": {
205
- "type": "boolean",
206
- "mutable": true,
204
+ "variation": {
205
+ "type": "string",
206
+ "mutable": false,
207
207
  "complexType": {
208
- "original": "boolean",
209
- "resolved": "boolean",
208
+ "original": "\"default\" | \"dark\" | \"white\"",
209
+ "resolved": "\"dark\" | \"default\" | \"white\"",
210
210
  "references": {}
211
211
  },
212
212
  "required": false,
213
213
  "optional": false,
214
214
  "docs": {
215
215
  "tags": [],
216
- "text": "Darker overlay allowing white text without background"
216
+ "text": "Variation, dark and white can be used when we want to have text on the overlay"
217
217
  },
218
- "attribute": "dark",
218
+ "attribute": "variation",
219
219
  "reflect": false,
220
- "defaultValue": "false"
220
+ "defaultValue": "\"default\""
221
221
  }
222
222
  };
223
223
  }
@@ -68,6 +68,15 @@ export class DuetPopupMenu {
68
68
  }
69
69
  connectedCallback() {
70
70
  this.handleControllerChange(this.controller, null);
71
+ if (Build.isServer) {
72
+ return;
73
+ }
74
+ if (!this.teleport) {
75
+ this.teleport = new Teleport(this.element);
76
+ }
77
+ if (this.teleport) {
78
+ this.teleport.activate();
79
+ }
71
80
  }
72
81
  disconnectedCallback() {
73
82
  if (this.openButton) {
@@ -176,7 +185,7 @@ export class DuetPopupMenu {
176
185
  if (this.openButton) {
177
186
  this.openButton.accessibleExpanded = true;
178
187
  }
179
- this.teleport.go(true);
188
+ this.teleport.makeSiblingsInert();
180
189
  this.updatePlacement();
181
190
  setTimeout(() => {
182
191
  if (this.accessibleRole === "menu") {
@@ -194,7 +203,7 @@ export class DuetPopupMenu {
194
203
  this.focusOpenButton();
195
204
  }
196
205
  this.duetToggle.emit({ open: this.open, component: "duet-popup-menu" });
197
- this.teleport.resume();
206
+ this.teleport.removeInertFromSiblings();
198
207
  }, 200);
199
208
  }
200
209
  }
@@ -92,6 +92,12 @@ export class DuetSlideout {
92
92
  if (Build.isServer) {
93
93
  return;
94
94
  }
95
+ if (!this.teleport) {
96
+ this.teleport = new Teleport(this.element);
97
+ }
98
+ if (this.teleport) {
99
+ this.teleport.activate();
100
+ }
95
101
  if (this.opener) {
96
102
  this.setOpenButton(document.getElementById(this.opener));
97
103
  if (this.openButton) {
@@ -106,7 +112,9 @@ export class DuetSlideout {
106
112
  }
107
113
  disconnectedCallback() {
108
114
  disconnectLanguageChangeObserver(this);
109
- enableBodyScroll(this.dialog);
115
+ if (this.dialog) {
116
+ enableBodyScroll(this.dialog);
117
+ }
110
118
  if (this.mutationObserver) {
111
119
  this.mutationObserver.disconnect();
112
120
  }
@@ -124,7 +132,7 @@ export class DuetSlideout {
124
132
  this.openButton.accessibleExpanded = true;
125
133
  }
126
134
  const openPanel = this.getOpenPanel();
127
- this.teleport.go(true);
135
+ this.teleport.makeSiblingsInert();
128
136
  disableBodyScroll(this.dialog, { reserveScrollBarGap: true });
129
137
  if (openPanel) {
130
138
  openPanel.setFocus();
@@ -142,7 +150,7 @@ export class DuetSlideout {
142
150
  setTimeout(() => {
143
151
  focusElement(this.openButton);
144
152
  enableBodyScroll(this.dialog);
145
- this.teleport.resume();
153
+ this.teleport.removeInertFromSiblings();
146
154
  }, 200);
147
155
  }
148
156
  }
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { h, Host } from "@stencil/core";
4
+ import { Build, h, Host } from "@stencil/core";
5
5
  import { inheritGlobalTheme } from "../../common";
6
6
  import { FocusGuard } from "../../utils/focus-utils";
7
7
  import { subscribeTabbingChange, unsubscribeTabbingChange } from "../../utils/keyboard-utils";
@@ -22,14 +22,6 @@ export class DuetTooltipPopup {
22
22
  this.placement = undefined;
23
23
  this.accessibleCloseLabel = undefined;
24
24
  }
25
- handleActiveChange() {
26
- if (this.active) {
27
- this.teleport.go();
28
- }
29
- else {
30
- this.teleport.resume(200);
31
- }
32
- }
33
25
  /**
34
26
  * Component lifecycle events.
35
27
  */
@@ -39,6 +31,15 @@ export class DuetTooltipPopup {
39
31
  }
40
32
  connectedCallback() {
41
33
  subscribeTabbingChange(this);
34
+ if (Build.isServer) {
35
+ return;
36
+ }
37
+ if (!this.teleport) {
38
+ this.teleport = new Teleport(this.element);
39
+ }
40
+ if (this.teleport) {
41
+ this.teleport.activate();
42
+ }
42
43
  }
43
44
  disconnectedCallback() {
44
45
  unsubscribeTabbingChange(this);
@@ -269,10 +270,4 @@ export class DuetTooltipPopup {
269
270
  };
270
271
  }
271
272
  static get elementRef() { return "element"; }
272
- static get watchers() {
273
- return [{
274
- "propName": "active",
275
- "methodName": "handleActiveChange"
276
- }];
277
- }
278
273
  }
@@ -2,7 +2,7 @@
2
2
  * Built with Duet Design System
3
3
  */
4
4
  import { media_query_large, media_query_medium } from "@duetds/tokens/lib/tokens.json";
5
- import { arrow, computePosition, flip, shift } from "@floating-ui/dom";
5
+ import { arrow, autoUpdate, computePosition, flip, shift } from "@floating-ui/dom";
6
6
  import { Build, h, Host } from "@stencil/core";
7
7
  import { inheritGlobalTheme } from "../../common";
8
8
  import { createID } from "../../utils/create-id";
@@ -121,6 +121,7 @@ export class DuetTooltip {
121
121
  this.updatePlacement();
122
122
  if (this.active) {
123
123
  this.openTooltip();
124
+ await this.handleActiveChange(this.active);
124
125
  }
125
126
  this.intersectionObserver = new IntersectionObserver(this.updatePlacement, { root: document.body });
126
127
  this.intersectionObserver.observe(this.element);
@@ -134,23 +135,6 @@ export class DuetTooltip {
134
135
  disconnectedCallback() {
135
136
  disconnectLanguageChangeObserver(this);
136
137
  }
137
- /**
138
- * Component event handling.
139
- */
140
- onScroll() {
141
- clearTimeout(this.scrollTimer);
142
- this.scrollTimer = setTimeout(() => {
143
- if (this.active) {
144
- this.updatePlacement();
145
- }
146
- }, 100);
147
- }
148
- handleWindowResize() {
149
- clearTimeout(this.resizeTimer);
150
- this.resizeTimer = setTimeout(() => {
151
- this.updatePlacement();
152
- }, 100);
153
- }
154
138
  handleDocumentClick(e) {
155
139
  if (!this.active) {
156
140
  return;
@@ -173,10 +157,10 @@ export class DuetTooltip {
173
157
  }
174
158
  async handleActiveChange(newActiveValue) {
175
159
  if (newActiveValue) {
176
- setTimeout(() => this.updatePlacement(), 10);
160
+ this.autoUpdateCleanup = autoUpdate(this.buttonEl, this.popupElement, this.updatePlacement);
177
161
  }
178
162
  else {
179
- setTimeout(() => this.updatePlacement(), 300);
163
+ this.autoUpdateCleanup();
180
164
  }
181
165
  }
182
166
  /**
@@ -554,18 +538,6 @@ export class DuetTooltip {
554
538
  }
555
539
  static get listeners() {
556
540
  return [{
557
- "name": "scroll",
558
- "method": "onScroll",
559
- "target": "window",
560
- "capture": false,
561
- "passive": true
562
- }, {
563
- "name": "resize",
564
- "method": "handleWindowResize",
565
- "target": "window",
566
- "capture": false,
567
- "passive": true
568
- }, {
569
541
  "name": "click",
570
542
  "method": "handleDocumentClick",
571
543
  "target": "document",
@@ -41,7 +41,8 @@ function listenMouse() {
41
41
  // start listening for mouse clicking (and tabbing through that) only if window is defined (i.e. not on server)
42
42
  if (typeof window !== "undefined") {
43
43
  window.addEventListener("mousedown", listenMouse, false);
44
- window.addEventListener("blur", () => notifySubscribers(true));
44
+ // on blur, leave the window in tabbing state
45
+ window.addEventListener("blur", () => listenKeys({ key: "Tab" }));
45
46
  }
46
47
  export const subscribeTabbingChange = component => {
47
48
  tabbingChangeSubscribers.add(component);