@duetds/components 9.4.1 → 9.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (724) hide show
  1. package/hydrate/index.js +2284 -205
  2. package/lib/cjs/{a11y-utils-d8d25cf4.js → a11y-utils-103b327e.js} +1 -1
  3. package/lib/cjs/{app-globals-99f2f39f.js → app-globals-2b7fff72.js} +1 -1
  4. package/lib/cjs/duet-action-button.cjs.entry.js +2 -2
  5. package/lib/cjs/duet-alert.cjs.entry.js +3 -3
  6. package/lib/cjs/duet-badge.cjs.entry.js +3 -3
  7. package/lib/cjs/duet-banner.cjs.entry.js +2 -2
  8. package/lib/cjs/duet-breadcrumb.cjs.entry.js +6 -6
  9. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +4 -4
  10. package/lib/cjs/duet-button_2.cjs.entry.js +10 -10
  11. package/lib/cjs/duet-callout.cjs.entry.js +4 -4
  12. package/lib/cjs/duet-caption_4.cjs.entry.js +11 -10
  13. package/lib/cjs/duet-card.cjs.entry.js +2 -2
  14. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-checkmark.cjs.entry.js +3 -3
  16. package/lib/cjs/{duet-chip_3.cjs.entry.js → duet-chip.cjs.entry.js} +3 -377
  17. package/lib/cjs/duet-choice_2.cjs.entry.js +3 -3
  18. package/lib/cjs/duet-collapsible.cjs.entry.js +4 -4
  19. package/lib/cjs/duet-combobox.cjs.entry.js +3 -3
  20. package/lib/cjs/duet-contact-card.cjs.entry.js +4 -4
  21. package/lib/cjs/duet-cookie-consent.cjs.entry.js +2 -2
  22. package/lib/cjs/duet-date-picker.cjs.entry.js +4 -4
  23. package/lib/cjs/duet-divider_2.cjs.entry.js +3 -3
  24. package/lib/cjs/duet-editable-table_3.cjs.entry.js +7 -7
  25. package/lib/cjs/duet-empty-state.cjs.entry.js +3 -3
  26. package/lib/cjs/duet-fieldset.cjs.entry.js +5 -5
  27. package/lib/cjs/duet-file-chooser.cjs.entry.js +2 -2
  28. package/lib/cjs/duet-footer.cjs.entry.js +7 -7
  29. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-header_2.cjs.entry.js +3 -3
  31. package/lib/cjs/duet-hero.cjs.entry.js +8 -8
  32. package/lib/cjs/duet-icon.cjs.entry.js +4 -4
  33. package/lib/cjs/duet-input_2.cjs.entry.js +5 -5
  34. package/lib/cjs/duet-layout.cjs.entry.js +7 -7
  35. package/lib/cjs/duet-list_2.cjs.entry.js +4 -4
  36. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +3 -3
  37. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +3 -3
  38. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +5 -5
  39. package/lib/cjs/duet-menu-bar-item.cjs.entry.js +6 -6
  40. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +3 -3
  41. package/lib/cjs/duet-menu-bar.cjs.entry.js +4 -4
  42. package/lib/cjs/duet-modal.cjs.entry.js +10 -10
  43. package/lib/cjs/duet-multiselect.cjs.entry.js +8 -8
  44. package/lib/cjs/duet-nav.cjs.entry.js +2 -2
  45. package/lib/cjs/duet-notification_2.cjs.entry.js +6 -6
  46. package/lib/cjs/duet-number-input.cjs.entry.js +3 -3
  47. package/lib/cjs/duet-overlay.cjs.entry.js +2 -2
  48. package/lib/cjs/duet-page-heading.cjs.entry.js +3 -3
  49. package/lib/cjs/duet-pagination_2.cjs.entry.js +15 -15
  50. package/lib/cjs/duet-phone-input.cjs.entry.js +2002 -0
  51. package/lib/cjs/duet-popup-menu_2.cjs.entry.js +426 -0
  52. package/lib/cjs/duet-progress.cjs.entry.js +2 -2
  53. package/lib/cjs/duet-promo-card.cjs.entry.js +4 -4
  54. package/lib/cjs/duet-radio_2.cjs.entry.js +2 -2
  55. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  56. package/lib/cjs/duet-scrollable_3.cjs.entry.js +27 -18
  57. package/lib/cjs/duet-section-layout.cjs.entry.js +4 -4
  58. package/lib/cjs/duet-select.cjs.entry.js +2 -2
  59. package/lib/cjs/duet-shaped-image.cjs.entry.js +3 -3
  60. package/lib/cjs/duet-show-more.cjs.entry.js +4 -4
  61. package/lib/cjs/duet-slideout-lang.cjs.entry.js +3 -3
  62. package/lib/cjs/duet-slideout-link.cjs.entry.js +22 -4
  63. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +5 -5
  64. package/lib/cjs/duet-slideout-panel.cjs.entry.js +10 -10
  65. package/lib/cjs/duet-slideout.cjs.entry.js +8 -8
  66. package/lib/cjs/duet-status-icon.cjs.entry.js +3 -3
  67. package/lib/cjs/duet-step_2.cjs.entry.js +2 -2
  68. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +3 -3
  69. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +5 -5
  70. package/lib/cjs/duet-submenu-bar-item.cjs.entry.js +5 -5
  71. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +2 -2
  72. package/lib/cjs/duet-submenu-bar.cjs.entry.js +6 -6
  73. package/lib/cjs/duet-textarea.cjs.entry.js +3 -3
  74. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  75. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +3 -3
  76. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +5 -5
  77. package/lib/cjs/duet-toolbar-item.cjs.entry.js +7 -7
  78. package/lib/cjs/duet-toolbar-link.cjs.entry.js +3 -3
  79. package/lib/cjs/duet-toolbar.cjs.entry.js +3 -3
  80. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +6 -6
  81. package/lib/cjs/duet-tooltip.cjs.entry.js +2 -2
  82. package/lib/cjs/duet-tray.cjs.entry.js +4 -4
  83. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +2 -2
  84. package/lib/cjs/duet-upload-item.cjs.entry.js +5 -5
  85. package/lib/cjs/duet-visually-hidden.cjs.entry.js +2 -2
  86. package/lib/cjs/duet.cjs.js +3 -3
  87. package/lib/cjs/{errorcodes.utils-2db03da6.js → errorcodes.utils-e3a0f607.js} +1 -1
  88. package/lib/cjs/{focus-utils-5578a0a5.js → focus-utils-47d23c45.js} +1 -1
  89. package/lib/cjs/{index-9c3aea30.js → index-7b1d76ef.js} +11 -3
  90. package/lib/cjs/{language-utils-9499975c.js → language-utils-a6a152b8.js} +1 -1
  91. package/lib/cjs/loader.cjs.js +3 -3
  92. package/lib/cjs/{slot-utils-58467702.js → slot-utils-6864011f.js} +1 -1
  93. package/lib/collection/collection-manifest.json +1 -0
  94. package/lib/collection/components/duet-badge/duet-badge.js +2 -2
  95. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +4 -4
  96. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +2 -2
  97. package/lib/collection/components/duet-button/duet-button.css +32 -18
  98. package/lib/collection/components/duet-button/duet-button.js +6 -6
  99. package/lib/collection/components/duet-callout/duet-callout.js +2 -2
  100. package/lib/collection/components/duet-chip/duet-chip.js +1 -1
  101. package/lib/collection/components/duet-choice/duet-checkmark.js +2 -2
  102. package/lib/collection/components/duet-collapsible/duet-collapsible.js +2 -2
  103. package/lib/collection/components/duet-contact-card/duet-contact-card.js +2 -2
  104. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.js +1 -1
  105. package/lib/collection/components/duet-divider/duet-divider.js +1 -1
  106. package/lib/collection/components/duet-empty-state/duet-empty-state.js +2 -2
  107. package/lib/collection/components/duet-fieldset/duet-fieldset.js +3 -3
  108. package/lib/collection/components/duet-file-chooser/duet-file-chooser.js +1 -1
  109. package/lib/collection/components/duet-footer/duet-footer.js +4 -4
  110. package/lib/collection/components/duet-heading/duet-heading.js +22 -2
  111. package/lib/collection/components/duet-hero/duet-hero.js +5 -5
  112. package/lib/collection/components/duet-icon/duet-icon.js +3 -3
  113. package/lib/collection/components/duet-input/duet-input.css +34 -3
  114. package/lib/collection/components/duet-input/duet-input.js +4 -4
  115. package/lib/collection/components/duet-layout/duet-layout.js +5 -5
  116. package/lib/collection/components/duet-link/duet-link.js +2 -2
  117. package/lib/collection/components/duet-list/duet-list.js +1 -1
  118. package/lib/collection/components/duet-list-item/duet-list-item.js +2 -2
  119. package/lib/collection/components/duet-logo/duet-logo.js +1 -1
  120. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +2 -2
  121. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +2 -2
  122. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +4 -4
  123. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +2 -2
  124. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.js +2 -2
  125. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +2 -2
  126. package/lib/collection/components/duet-modal/duet-modal.js +6 -6
  127. package/lib/collection/components/duet-multiselect/duet-multiselect.js +5 -5
  128. package/lib/collection/components/duet-nav/duet-nav.js +1 -1
  129. package/lib/collection/components/duet-notification/duet-notification.js +2 -2
  130. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +2 -2
  131. package/lib/collection/components/duet-overlay/duet-overlay.js +1 -1
  132. package/lib/collection/components/duet-page-heading/duet-page-heading.js +2 -2
  133. package/lib/collection/components/duet-pagination/duet-pagination.js +11 -11
  134. package/lib/collection/components/duet-paragraph/duet-paragraph.js +2 -2
  135. package/lib/collection/components/duet-phone-input/duet-phone-input.css +20 -0
  136. package/lib/collection/components/duet-phone-input/duet-phone-input.js +777 -0
  137. package/lib/collection/components/duet-popup-menu/duet-popup-menu.js +69 -9
  138. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +2 -2
  139. package/lib/collection/components/duet-promo-card/duet-promo-card.js +2 -2
  140. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +2 -2
  141. package/lib/collection/components/duet-scrollable/duet-scrollable.css +7 -6
  142. package/lib/collection/components/duet-scrollable/duet-scrollable.js +12 -9
  143. package/lib/collection/components/duet-section-layout/duet-section-layout.js +3 -3
  144. package/lib/collection/components/duet-shaped-image/duet-shaped-image.js +2 -2
  145. package/lib/collection/components/duet-show-more/duet-show-more.js +2 -2
  146. package/lib/collection/components/duet-slideout/duet-slideout.js +4 -4
  147. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +1 -1
  148. package/lib/collection/components/duet-slideout-link/duet-slideout-link.css +17 -2
  149. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +90 -2
  150. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +6 -6
  151. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +4 -4
  152. package/lib/collection/components/duet-spacer/duet-spacer.js +1 -1
  153. package/lib/collection/components/duet-spinner/duet-spinner.js +2 -2
  154. package/lib/collection/components/duet-status-icon/duet-status-icon.js +2 -2
  155. package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
  156. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +5 -5
  157. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +4 -4
  158. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +2 -2
  159. package/lib/collection/components/duet-submenu-bar-item/duet-submenu-bar-item.js +1 -1
  160. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +1 -1
  161. package/lib/collection/components/duet-tab-group/duet-tab-group.js +11 -5
  162. package/lib/collection/components/duet-table/duet-table.js +2 -2
  163. package/lib/collection/components/duet-toolbar/duet-toolbar.js +2 -2
  164. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +4 -4
  165. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +2 -2
  166. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.js +3 -3
  167. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +2 -2
  168. package/lib/collection/components/duet-tooltip/duet-tooltip-button.js +2 -2
  169. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +2 -2
  170. package/lib/collection/components/duet-tray/duet-tray.js +2 -2
  171. package/lib/collection/components/duet-upload/duet-upload.js +2 -2
  172. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +1 -1
  173. package/lib/collection/components/duet-upload-item/duet-upload-item.js +2 -2
  174. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +1 -1
  175. package/lib/collection/data/countries.js +1762 -0
  176. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  177. package/lib/dist-custom-elements/duet-alert.js +1 -1
  178. package/lib/dist-custom-elements/duet-badge.js +1 -1
  179. package/lib/dist-custom-elements/duet-banner.js +3 -3
  180. package/lib/dist-custom-elements/duet-breadcrumb.js +7 -7
  181. package/lib/dist-custom-elements/duet-breadcrumbs.js +3 -3
  182. package/lib/dist-custom-elements/duet-button.js +1 -1
  183. package/lib/dist-custom-elements/duet-callout.js +4 -4
  184. package/lib/dist-custom-elements/duet-caption.js +1 -1
  185. package/lib/dist-custom-elements/duet-card.js +3 -3
  186. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  187. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  188. package/lib/dist-custom-elements/duet-chip.js +1 -1
  189. package/lib/dist-custom-elements/duet-choice-group.js +8 -8
  190. package/lib/dist-custom-elements/duet-choice.js +4 -4
  191. package/lib/dist-custom-elements/duet-collapsible.js +5 -5
  192. package/lib/dist-custom-elements/duet-combobox.js +15 -15
  193. package/lib/dist-custom-elements/duet-contact-card.js +10 -10
  194. package/lib/dist-custom-elements/duet-cookie-consent.js +7 -7
  195. package/lib/dist-custom-elements/duet-date-picker.js +13 -13
  196. package/lib/dist-custom-elements/duet-divider.js +1 -1
  197. package/lib/dist-custom-elements/duet-editable-table.js +7 -7
  198. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  199. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  200. package/lib/dist-custom-elements/duet-file-chooser.js +3 -3
  201. package/lib/dist-custom-elements/duet-footer.js +11 -11
  202. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  203. package/lib/dist-custom-elements/duet-grid.js +1 -1
  204. package/lib/dist-custom-elements/duet-header.js +8 -8
  205. package/lib/dist-custom-elements/duet-heading.js +1 -1
  206. package/lib/dist-custom-elements/duet-hero.js +14 -14
  207. package/lib/dist-custom-elements/duet-icon.js +1 -1
  208. package/lib/dist-custom-elements/duet-input.js +1 -1
  209. package/lib/dist-custom-elements/duet-label.js +1 -1
  210. package/lib/dist-custom-elements/duet-layout.js +6 -6
  211. package/lib/dist-custom-elements/duet-link.js +1 -1
  212. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  213. package/lib/dist-custom-elements/duet-list.js +1 -1
  214. package/lib/dist-custom-elements/duet-logo.js +1 -1
  215. package/lib/dist-custom-elements/duet-menu-bar-button.js +4 -4
  216. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +4 -4
  217. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +6 -6
  218. package/lib/dist-custom-elements/duet-menu-bar-item.js +4 -4
  219. package/lib/dist-custom-elements/duet-menu-bar-link.js +4 -4
  220. package/lib/dist-custom-elements/duet-menu-bar.js +4 -4
  221. package/lib/dist-custom-elements/duet-modal.js +14 -14
  222. package/lib/dist-custom-elements/duet-multiselect.js +14 -14
  223. package/lib/dist-custom-elements/duet-nav.js +2 -2
  224. package/lib/dist-custom-elements/duet-notification-drawer.js +6 -6
  225. package/lib/dist-custom-elements/duet-notification.js +4 -4
  226. package/lib/dist-custom-elements/duet-number-input.js +11 -11
  227. package/lib/dist-custom-elements/duet-overlay.js +1 -1
  228. package/lib/dist-custom-elements/duet-page-heading.js +5 -5
  229. package/lib/dist-custom-elements/duet-pagination.js +24 -24
  230. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  231. package/lib/dist-custom-elements/duet-phone-input.d.ts +11 -0
  232. package/lib/dist-custom-elements/duet-phone-input.js +2128 -0
  233. package/lib/dist-custom-elements/duet-popup-menu-item.js +1 -1
  234. package/lib/dist-custom-elements/duet-popup-menu.js +1 -1
  235. package/lib/dist-custom-elements/duet-progress.js +1 -1
  236. package/lib/dist-custom-elements/duet-promo-card.js +5 -5
  237. package/lib/dist-custom-elements/duet-radio-group.js +8 -8
  238. package/lib/dist-custom-elements/duet-radio.js +1 -1
  239. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  240. package/lib/dist-custom-elements/duet-range-stepper.js +6 -6
  241. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  242. package/lib/dist-custom-elements/duet-section-layout.js +4 -4
  243. package/lib/dist-custom-elements/duet-select.js +1 -1
  244. package/lib/dist-custom-elements/duet-shaped-image.js +3 -3
  245. package/lib/dist-custom-elements/duet-show-more.js +1 -1
  246. package/lib/dist-custom-elements/duet-slideout-lang.js +3 -3
  247. package/lib/dist-custom-elements/duet-slideout-link.js +25 -6
  248. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +6 -6
  249. package/lib/dist-custom-elements/duet-slideout-panel.js +8 -8
  250. package/lib/dist-custom-elements/duet-slideout.js +7 -7
  251. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  252. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  253. package/lib/dist-custom-elements/duet-status-icon.js +4 -4
  254. package/lib/dist-custom-elements/duet-step.js +4 -4
  255. package/lib/dist-custom-elements/duet-stepper.js +3 -3
  256. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +4 -4
  257. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +6 -6
  258. package/lib/dist-custom-elements/duet-submenu-bar-item.js +3 -3
  259. package/lib/dist-custom-elements/duet-submenu-bar-link.js +3 -3
  260. package/lib/dist-custom-elements/duet-submenu-bar.js +8 -8
  261. package/lib/dist-custom-elements/duet-tab-group.js +18 -12
  262. package/lib/dist-custom-elements/duet-tab.js +1 -1
  263. package/lib/dist-custom-elements/duet-table.js +1 -1
  264. package/lib/dist-custom-elements/duet-textarea.js +10 -10
  265. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  266. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +4 -4
  267. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +6 -6
  268. package/lib/dist-custom-elements/duet-toolbar-item.js +5 -5
  269. package/lib/dist-custom-elements/duet-toolbar-link.js +4 -4
  270. package/lib/dist-custom-elements/duet-toolbar.js +3 -3
  271. package/lib/dist-custom-elements/duet-tooltip-button.js +1 -1
  272. package/lib/dist-custom-elements/duet-tooltip-popup.js +1 -1
  273. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  274. package/lib/dist-custom-elements/duet-tray.js +5 -5
  275. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  276. package/lib/dist-custom-elements/duet-upload-item.js +1 -1
  277. package/lib/dist-custom-elements/duet-upload.js +21 -21
  278. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  279. package/lib/dist-custom-elements/index.js +1 -1
  280. package/lib/dist-custom-elements/{p-705254ba.js → p-18bc63f3.js} +3 -3
  281. package/lib/dist-custom-elements/{p-d8ca9bb0.js → p-19b9ead1.js} +7 -7
  282. package/lib/dist-custom-elements/{p-77a6d407.js → p-26c7e23f.js} +1 -1
  283. package/lib/dist-custom-elements/{p-6617d6ac.js → p-2ecca38c.js} +3 -3
  284. package/lib/dist-custom-elements/{p-0a959269.js → p-2f6cc198.js} +4 -4
  285. package/lib/dist-custom-elements/{p-86bff8f2.js → p-32ca7625.js} +1 -1
  286. package/lib/dist-custom-elements/{p-f2e41ed9.js → p-39b87412.js} +2 -2
  287. package/lib/dist-custom-elements/{p-4c77c6a3.js → p-41403f71.js} +3 -3
  288. package/lib/dist-custom-elements/{p-2ccad3d5.js → p-4ccd7bcc.js} +4 -4
  289. package/lib/dist-custom-elements/{p-447bdf9c.js → p-4d6f6627.js} +3 -3
  290. package/lib/dist-custom-elements/{p-54a8c7e1.js → p-4ed8da23.js} +6 -4
  291. package/lib/dist-custom-elements/{p-e95fb79b.js → p-52df4164.js} +1 -1
  292. package/lib/dist-custom-elements/{p-1080a6c7.js → p-548610a6.js} +1 -1
  293. package/lib/dist-custom-elements/{p-81287261.js → p-7327e3d5.js} +264 -1
  294. package/lib/dist-custom-elements/{p-8381740e.js → p-76415eb2.js} +4 -4
  295. package/lib/dist-custom-elements/{p-195bcbbc.js → p-76f76fab.js} +119 -12
  296. package/lib/dist-custom-elements/{p-9a854b9b.js → p-7b74fee9.js} +3 -3
  297. package/lib/dist-custom-elements/{p-1b3d1a63.js → p-87df2d6e.js} +10 -10
  298. package/lib/dist-custom-elements/{p-e6396ef5.js → p-8ad5e64f.js} +3 -3
  299. package/lib/dist-custom-elements/{p-67704520.js → p-8f1394dd.js} +2 -2
  300. package/lib/dist-custom-elements/{p-ef906a44.js → p-9cb035b0.js} +5 -5
  301. package/lib/dist-custom-elements/{p-283c8c77.js → p-a013e7b0.js} +18 -15
  302. package/lib/dist-custom-elements/{p-02060606.js → p-a201b49f.js} +12 -12
  303. package/lib/dist-custom-elements/{p-c1f97fa7.js → p-ad89064b.js} +6 -6
  304. package/lib/dist-custom-elements/{p-a8859d41.js → p-b2599bdb.js} +2 -2
  305. package/lib/dist-custom-elements/{p-3392a6b5.js → p-b3a6e82a.js} +8 -8
  306. package/lib/dist-custom-elements/{p-5c11ac99.js → p-b8bae8c7.js} +2 -2
  307. package/lib/dist-custom-elements/{p-bcdec622.js → p-c577fbfe.js} +2 -2
  308. package/lib/dist-custom-elements/{p-269887e7.js → p-c69401c2.js} +4 -4
  309. package/lib/dist-custom-elements/{p-dafd01b3.js → p-cf1df71c.js} +1 -1
  310. package/lib/dist-custom-elements/{p-6657fbee.js → p-d01a8307.js} +5 -5
  311. package/lib/dist-custom-elements/{p-1e473975.js → p-d05c6565.js} +2 -2
  312. package/lib/dist-custom-elements/{p-159ce59f.js → p-d5859ccf.js} +3 -3
  313. package/lib/dist-custom-elements/{p-0323fc27.js → p-da60c00a.js} +4 -4
  314. package/lib/dist-custom-elements/{p-538c0817.js → p-db1f42f3.js} +3 -3
  315. package/lib/dist-custom-elements/{p-8885bff1.js → p-dce51f6d.js} +2 -2
  316. package/lib/dist-custom-elements/{p-ccfdbbfd.js → p-eb768545.js} +3 -3
  317. package/lib/dist-custom-elements/{p-d74ee462.js → p-ed6a907e.js} +1 -1
  318. package/lib/dist-custom-elements/{p-0a566079.js → p-fc9e69ed.js} +12 -12
  319. package/lib/duet/duet.esm.js +1 -1
  320. package/lib/duet/duet.js +1 -1
  321. package/lib/duet/{p-4f672fb0.entry.js → p-00ab909e.entry.js} +1 -1
  322. package/lib/duet/{p-f1ba826c.system.entry.js → p-00dd59e4.system.entry.js} +1 -1
  323. package/lib/duet/{p-e39d08e7.system.entry.js → p-033947e4.system.entry.js} +1 -1
  324. package/lib/duet/{p-a9d41a98.entry.js → p-03abf8be.entry.js} +1 -1
  325. package/lib/duet/{p-fbeb26a6.entry.js → p-04090a71.entry.js} +1 -1
  326. package/lib/duet/p-083bbc28.js +4 -0
  327. package/lib/duet/{p-ef40ca12.system.entry.js → p-0c5d595b.system.entry.js} +1 -1
  328. package/lib/duet/{p-1f059581.entry.js → p-0d1c524e.entry.js} +1 -1
  329. package/lib/duet/p-0d443be5.js +4 -0
  330. package/lib/duet/{p-41cced2e.entry.js → p-0d626d2e.entry.js} +1 -1
  331. package/lib/duet/{p-c5938aef.entry.js → p-0e2727b2.entry.js} +1 -1
  332. package/lib/duet/{p-54689a14.entry.js → p-0e3a6d04.entry.js} +1 -1
  333. package/lib/duet/p-1052f050.entry.js +4 -0
  334. package/lib/duet/{p-54e704a1.entry.js → p-1057eeaa.entry.js} +1 -1
  335. package/lib/duet/{p-a90beab2.entry.js → p-1275c867.entry.js} +1 -1
  336. package/lib/duet/{p-8984c2a3.system.entry.js → p-1317da1c.system.entry.js} +1 -1
  337. package/lib/duet/{p-86150b9f.system.entry.js → p-1364a715.system.entry.js} +1 -1
  338. package/lib/duet/{p-d3790473.entry.js → p-148be53e.entry.js} +1 -1
  339. package/lib/duet/{p-ca5d23f8.system.entry.js → p-15bd06bb.system.entry.js} +1 -1
  340. package/lib/duet/{p-2f021c6a.system.entry.js → p-1744b916.system.entry.js} +1 -1
  341. package/lib/duet/{p-59c9d492.entry.js → p-17592731.entry.js} +1 -1
  342. package/lib/duet/{p-126d3a77.system.entry.js → p-17d11f8c.system.entry.js} +1 -1
  343. package/lib/duet/p-19625473.entry.js +4 -0
  344. package/lib/duet/{p-8aa37257.entry.js → p-1b1d98b4.entry.js} +1 -1
  345. package/lib/duet/{p-36a9f7ef.entry.js → p-1c0ace6c.entry.js} +1 -1
  346. package/lib/duet/{p-6d41bea4.system.entry.js → p-1ea716c1.system.entry.js} +1 -1
  347. package/lib/duet/{p-51b198a9.entry.js → p-1fc48a8d.entry.js} +1 -1
  348. package/lib/duet/{p-03259614.entry.js → p-202f526f.entry.js} +1 -1
  349. package/lib/duet/{p-544acabc.system.entry.js → p-207e46dc.system.entry.js} +1 -1
  350. package/lib/duet/{p-56d8b241.system.entry.js → p-26df85b3.system.entry.js} +1 -1
  351. package/lib/duet/{p-291d313b.system.entry.js → p-28cc13b6.system.entry.js} +1 -1
  352. package/lib/duet/{p-afbd4b56.system.entry.js → p-28ef1aaf.system.entry.js} +1 -1
  353. package/lib/duet/{p-280630b2.entry.js → p-295396cd.entry.js} +1 -1
  354. package/lib/duet/{p-5b8a114c.system.entry.js → p-2a0c7157.system.entry.js} +1 -1
  355. package/lib/duet/{p-ab67d864.system.entry.js → p-2a0e1cd2.system.entry.js} +1 -1
  356. package/lib/duet/{p-e03a4cf1.system.entry.js → p-2a4f4522.system.entry.js} +1 -1
  357. package/lib/duet/{p-85641c26.entry.js → p-2b082283.entry.js} +1 -1
  358. package/lib/duet/{p-74aa0f9d.system.js → p-2bb44297.system.js} +1 -1
  359. package/lib/duet/{p-352dae35.entry.js → p-2c64554e.entry.js} +1 -1
  360. package/lib/duet/{p-63b854a7.system.entry.js → p-2efdf39c.system.entry.js} +1 -1
  361. package/lib/duet/{p-bc5fa50f.entry.js → p-3072addc.entry.js} +1 -1
  362. package/lib/duet/{p-086a3406.entry.js → p-345ac2e1.entry.js} +1 -1
  363. package/lib/duet/{p-66bfcb56.system.entry.js → p-346f8340.system.entry.js} +1 -1
  364. package/lib/duet/{p-c4c02007.entry.js → p-35600b76.entry.js} +1 -1
  365. package/lib/duet/{p-452883d8.entry.js → p-35c49132.entry.js} +1 -1
  366. package/lib/duet/{p-51f95f2e.entry.js → p-37c469ec.entry.js} +1 -1
  367. package/lib/duet/{p-99cdf534.entry.js → p-3ac058e8.entry.js} +1 -1
  368. package/lib/duet/{p-e5395121.system.entry.js → p-3bcc4ed9.system.entry.js} +1 -1
  369. package/lib/duet/p-42a1b0f0.system.js +4 -0
  370. package/lib/duet/{p-96201a4f.system.entry.js → p-433fad0d.system.entry.js} +1 -1
  371. package/lib/duet/{p-5c8de709.system.entry.js → p-435f700f.system.entry.js} +1 -1
  372. package/lib/duet/{p-f973c743.entry.js → p-45beef6d.entry.js} +1 -1
  373. package/lib/duet/{p-5645fe0f.entry.js → p-477e39b0.entry.js} +1 -1
  374. package/lib/duet/{p-8968462d.entry.js → p-48bb29d2.entry.js} +1 -1
  375. package/lib/duet/{p-87040cdc.entry.js → p-497fe0b1.entry.js} +1 -1
  376. package/lib/duet/p-4a2ccec7.entry.js +4 -0
  377. package/lib/duet/{p-7fb92a7e.system.entry.js → p-4af9bc5f.system.entry.js} +1 -1
  378. package/lib/duet/p-4ebb368b.entry.js +4 -0
  379. package/lib/duet/{p-fbc233bb.system.entry.js → p-4f2c25a0.system.entry.js} +1 -1
  380. package/lib/duet/{p-d080e1b9.system.js → p-4f945200.system.js} +1 -1
  381. package/lib/duet/{p-e7fe5dda.entry.js → p-4fc8517e.entry.js} +1 -1
  382. package/lib/duet/{p-d4d5010c.entry.js → p-4fc945d4.entry.js} +1 -1
  383. package/lib/duet/{p-33d04b9b.entry.js → p-52829324.entry.js} +1 -1
  384. package/lib/duet/{p-5555c8b1.system.entry.js → p-53b9b442.system.entry.js} +1 -1
  385. package/lib/duet/p-55bafbde.system.entry.js +4 -0
  386. package/lib/duet/{p-eeca1e90.entry.js → p-56b48e3d.entry.js} +1 -1
  387. package/lib/duet/{p-bcee92ef.entry.js → p-580a6591.entry.js} +1 -1
  388. package/lib/duet/p-587a9d58.system.entry.js +4 -0
  389. package/lib/duet/{p-8860ca98.system.entry.js → p-5ab4313d.system.entry.js} +1 -1
  390. package/lib/duet/{p-da959774.system.entry.js → p-5c561b82.system.entry.js} +1 -1
  391. package/lib/duet/{p-f5056fd8.system.entry.js → p-5d5ba6ed.system.entry.js} +1 -1
  392. package/lib/duet/{p-70a6edcd.system.entry.js → p-5e01a303.system.entry.js} +1 -1
  393. package/lib/duet/{p-3aa36e16.entry.js → p-5e2d4a51.entry.js} +1 -1
  394. package/lib/duet/{p-4289c19b.system.js → p-61173f11.system.js} +1 -1
  395. package/lib/duet/p-622e1ffc.js +4 -0
  396. package/lib/duet/{p-fef429fb.system.entry.js → p-64651bff.system.entry.js} +1 -1
  397. package/lib/duet/p-64853b73.entry.js +4 -0
  398. package/lib/duet/{p-839b3553.system.entry.js → p-66021b00.system.entry.js} +2 -2
  399. package/lib/duet/{p-795bf9ca.system.entry.js → p-68cbc985.system.entry.js} +1 -1
  400. package/lib/duet/{p-c705b8d5.entry.js → p-6c36ad85.entry.js} +1 -1
  401. package/lib/duet/p-6eb279dd.system.entry.js +4 -0
  402. package/lib/duet/{p-7069c290.system.entry.js → p-6fb72847.system.entry.js} +1 -1
  403. package/lib/duet/{p-a14a68fe.entry.js → p-71ec5b28.entry.js} +1 -1
  404. package/lib/duet/p-73853b36.system.entry.js +4 -0
  405. package/lib/duet/{p-8c78634e.system.entry.js → p-7567fef0.system.entry.js} +1 -1
  406. package/lib/duet/{p-e08088cb.system.entry.js → p-76361fed.system.entry.js} +2 -2
  407. package/lib/duet/p-7638da3f.entry.js +4 -0
  408. package/lib/duet/{p-cd4dce06.js → p-76927493.js} +1 -1
  409. package/lib/duet/{p-37085adb.entry.js → p-7ac466a3.entry.js} +1 -1
  410. package/lib/duet/{p-241e3985.system.entry.js → p-7b5541e9.system.entry.js} +1 -1
  411. package/lib/duet/{p-0a675075.js → p-7be5b9a7.js} +1 -1
  412. package/lib/duet/{p-4ca75b84.system.entry.js → p-7cad68ea.system.entry.js} +1 -1
  413. package/lib/duet/{p-fb713ab0.entry.js → p-7fceb8c8.entry.js} +1 -1
  414. package/lib/duet/{p-e4b910b4.system.entry.js → p-84b24dcc.system.entry.js} +1 -1
  415. package/lib/duet/{p-d5fedd59.system.entry.js → p-84c02ce1.system.entry.js} +1 -1
  416. package/lib/duet/p-84f2cc6b.entry.js +4 -0
  417. package/lib/duet/p-85261a28.entry.js +4 -0
  418. package/lib/duet/p-85a38287.system.entry.js +4 -0
  419. package/lib/duet/{p-c55fd9d3.entry.js → p-88e0e42c.entry.js} +1 -1
  420. package/lib/duet/{p-054f5ec6.system.js → p-89cf1a91.system.js} +1 -1
  421. package/lib/duet/p-8b59d885.entry.js +4 -0
  422. package/lib/duet/{p-95c6d4d0.entry.js → p-8bfb6649.entry.js} +1 -1
  423. package/lib/duet/{p-b4fb5d47.entry.js → p-8d6e249b.entry.js} +1 -1
  424. package/lib/duet/p-8ecbac63.system.entry.js +4 -0
  425. package/lib/duet/{p-8ff659e3.system.entry.js → p-8f698359.system.entry.js} +1 -1
  426. package/lib/duet/{p-b08ae8a2.system.entry.js → p-91a98b52.system.entry.js} +1 -1
  427. package/lib/duet/{p-b19b9511.system.entry.js → p-91f7ae75.system.entry.js} +1 -1
  428. package/lib/duet/{p-18cee812.system.entry.js → p-925da010.system.entry.js} +1 -1
  429. package/lib/duet/{p-f2311beb.entry.js → p-943edeef.entry.js} +1 -1
  430. package/lib/duet/{p-e8084ea9.system.entry.js → p-9525c31e.system.entry.js} +1 -1
  431. package/lib/duet/{p-ef2ee599.entry.js → p-95f1b9a1.entry.js} +1 -1
  432. package/lib/duet/p-96a6cca2.entry.js +4 -0
  433. package/lib/duet/p-98fd263d.entry.js +4 -0
  434. package/lib/duet/{p-38e51258.system.entry.js → p-9d3e0050.system.entry.js} +2 -2
  435. package/lib/duet/{p-296d5473.entry.js → p-9f377238.entry.js} +1 -1
  436. package/lib/duet/p-9f3a5506.entry.js +4 -0
  437. package/lib/duet/{p-c6384d36.entry.js → p-9f9e4b5a.entry.js} +1 -1
  438. package/lib/duet/{p-e73965c8.system.entry.js → p-a0229b56.system.entry.js} +1 -1
  439. package/lib/duet/p-a083b91a.js +5 -0
  440. package/lib/duet/{p-2d6410d0.system.js → p-a331ae6e.system.js} +1 -1
  441. package/lib/duet/{p-fa402e10.system.entry.js → p-a637d6a7.system.entry.js} +1 -1
  442. package/lib/duet/{p-257b436e.system.entry.js → p-a90243df.system.entry.js} +1 -1
  443. package/lib/duet/{p-b8327514.entry.js → p-afc011e1.entry.js} +1 -1
  444. package/lib/duet/p-aff748c3.entry.js +4 -0
  445. package/lib/duet/{p-f17324db.system.entry.js → p-b1c2ab61.system.entry.js} +1 -1
  446. package/lib/duet/p-b3076f6c.system.entry.js +4 -0
  447. package/lib/duet/{p-145d2c10.entry.js → p-b327a269.entry.js} +1 -1
  448. package/lib/duet/{p-def465ae.entry.js → p-b32dcb86.entry.js} +1 -1
  449. package/lib/duet/{p-c91ee9a4.system.entry.js → p-b336e3fb.system.entry.js} +1 -1
  450. package/lib/duet/{p-71b99868.entry.js → p-b410d85d.entry.js} +1 -1
  451. package/lib/duet/p-b56915bb.system.entry.js +4 -0
  452. package/lib/duet/{p-6899c158.system.entry.js → p-b642d349.system.entry.js} +1 -1
  453. package/lib/duet/{p-7718746e.entry.js → p-b79ca71d.entry.js} +1 -1
  454. package/lib/duet/{p-2eaefb06.entry.js → p-baf88ca9.entry.js} +1 -1
  455. package/lib/duet/{p-f739d912.system.entry.js → p-bbb9a30a.system.entry.js} +1 -1
  456. package/lib/duet/{p-e50de9e7.entry.js → p-bcd14101.entry.js} +1 -1
  457. package/lib/duet/{p-3a16a027.entry.js → p-bcfd5746.entry.js} +1 -1
  458. package/lib/duet/{p-1aac7b52.entry.js → p-bfb897ab.entry.js} +1 -1
  459. package/lib/duet/{p-36a1de2f.system.entry.js → p-c2befbf1.system.entry.js} +1 -1
  460. package/lib/duet/{p-0dfbe740.entry.js → p-c2d61f47.entry.js} +1 -1
  461. package/lib/duet/{p-26b99c47.system.entry.js → p-c3d6433f.system.entry.js} +1 -1
  462. package/lib/duet/{p-541429d7.system.entry.js → p-c50c0b02.system.entry.js} +2 -2
  463. package/lib/duet/{p-b501865b.system.entry.js → p-c5117f90.system.entry.js} +1 -1
  464. package/lib/duet/{p-ab885d81.entry.js → p-c56c0b41.entry.js} +1 -1
  465. package/lib/duet/{p-73ff5910.system.entry.js → p-c581e6d3.system.entry.js} +1 -1
  466. package/lib/duet/{p-74c70041.system.entry.js → p-c734cff9.system.entry.js} +1 -1
  467. package/lib/duet/p-ca29569e.system.js +4 -0
  468. package/lib/duet/{p-b2d5f07c.system.js → p-cdba12cc.system.js} +1 -1
  469. package/lib/duet/{p-a3efd322.system.entry.js → p-ce8d83cf.system.entry.js} +2 -2
  470. package/lib/duet/{p-21631e83.entry.js → p-d2059383.entry.js} +1 -1
  471. package/lib/duet/{p-673b20ea.system.entry.js → p-d2e9bcdf.system.entry.js} +1 -1
  472. package/lib/duet/{p-b6ea05f0.system.entry.js → p-d3e906da.system.entry.js} +1 -1
  473. package/lib/duet/{p-f937ba7d.entry.js → p-d49076b6.entry.js} +1 -1
  474. package/lib/duet/{p-140fd433.system.entry.js → p-d66a0251.system.entry.js} +1 -1
  475. package/lib/duet/{p-dd4374fe.system.entry.js → p-d8c356eb.system.entry.js} +1 -1
  476. package/lib/duet/{p-ae82df47.system.entry.js → p-d915362b.system.entry.js} +1 -1
  477. package/lib/duet/{p-cb00bf45.system.entry.js → p-da49ab05.system.entry.js} +2 -2
  478. package/lib/duet/{p-7f6a61f0.system.entry.js → p-dc186a2f.system.entry.js} +1 -1
  479. package/lib/duet/p-dcb8b2e2.entry.js +4 -0
  480. package/lib/duet/{p-8ca8ab58.system.entry.js → p-dd3fff16.system.entry.js} +2 -2
  481. package/lib/duet/{p-7c235af5.entry.js → p-dd7ec171.entry.js} +1 -1
  482. package/lib/duet/{p-4d06fd44.js → p-e3857119.js} +1 -1
  483. package/lib/duet/p-e67910bf.system.entry.js +4 -0
  484. package/lib/duet/{p-274b3451.system.entry.js → p-e81eade0.system.entry.js} +1 -1
  485. package/lib/duet/{p-4afae9c6.entry.js → p-e8b5235d.entry.js} +1 -1
  486. package/lib/duet/{p-59a32595.system.entry.js → p-eaff90e5.system.entry.js} +1 -1
  487. package/lib/duet/{p-8305c56f.system.entry.js → p-ed4e9cd6.system.entry.js} +1 -1
  488. package/lib/duet/{p-f90407fc.entry.js → p-edd39bb2.entry.js} +1 -1
  489. package/lib/duet/p-ef7b1342.entry.js +4 -0
  490. package/lib/duet/{p-91f6cf96.system.entry.js → p-f268a161.system.entry.js} +1 -1
  491. package/lib/duet/p-f3737a2b.entry.js +4 -0
  492. package/lib/duet/{p-10c5ce3a.entry.js → p-f38a5f44.entry.js} +1 -1
  493. package/lib/duet/{p-5f06bb51.entry.js → p-f631a689.entry.js} +1 -1
  494. package/lib/duet/{p-67da02dd.system.entry.js → p-f7d083c5.system.entry.js} +1 -1
  495. package/lib/duet/p-f89d7751.entry.js +4 -0
  496. package/lib/duet/{p-5df12983.system.entry.js → p-f8f56a8e.system.entry.js} +1 -1
  497. package/lib/duet/{p-db291b81.entry.js → p-fb9b0a2f.entry.js} +1 -1
  498. package/lib/duet/{p-55ecc86b.entry.js → p-fce0a87d.entry.js} +1 -1
  499. package/lib/duet/{p-e0e6e461.system.entry.js → p-ff2aca13.system.entry.js} +2 -2
  500. package/lib/esm/{a11y-utils-c9bd2c27.js → a11y-utils-9dbc7c3d.js} +1 -1
  501. package/lib/esm/{app-globals-f12e0500.js → app-globals-e00fbe9c.js} +1 -1
  502. package/lib/esm/duet-action-button.entry.js +2 -2
  503. package/lib/esm/duet-alert.entry.js +3 -3
  504. package/lib/esm/duet-badge.entry.js +3 -3
  505. package/lib/esm/duet-banner.entry.js +2 -2
  506. package/lib/esm/duet-breadcrumb.entry.js +6 -6
  507. package/lib/esm/duet-breadcrumbs.entry.js +4 -4
  508. package/lib/esm/duet-button_2.entry.js +10 -10
  509. package/lib/esm/duet-callout.entry.js +4 -4
  510. package/lib/esm/duet-caption_4.entry.js +11 -10
  511. package/lib/esm/duet-card.entry.js +2 -2
  512. package/lib/esm/duet-checkbox.entry.js +1 -1
  513. package/lib/esm/duet-checkmark.entry.js +3 -3
  514. package/lib/esm/{duet-chip_3.entry.js → duet-chip.entry.js} +5 -377
  515. package/lib/esm/duet-choice_2.entry.js +3 -3
  516. package/lib/esm/duet-collapsible.entry.js +4 -4
  517. package/lib/esm/duet-combobox.entry.js +3 -3
  518. package/lib/esm/duet-contact-card.entry.js +4 -4
  519. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  520. package/lib/esm/duet-date-picker.entry.js +4 -4
  521. package/lib/esm/duet-divider_2.entry.js +3 -3
  522. package/lib/esm/duet-editable-table_3.entry.js +7 -7
  523. package/lib/esm/duet-empty-state.entry.js +3 -3
  524. package/lib/esm/duet-fieldset.entry.js +5 -5
  525. package/lib/esm/duet-file-chooser.entry.js +2 -2
  526. package/lib/esm/duet-footer.entry.js +7 -7
  527. package/lib/esm/duet-grid_2.entry.js +1 -1
  528. package/lib/esm/duet-header_2.entry.js +3 -3
  529. package/lib/esm/duet-hero.entry.js +8 -8
  530. package/lib/esm/duet-icon.entry.js +4 -4
  531. package/lib/esm/duet-input_2.entry.js +5 -5
  532. package/lib/esm/duet-layout.entry.js +7 -7
  533. package/lib/esm/duet-list_2.entry.js +4 -4
  534. package/lib/esm/duet-menu-bar-button.entry.js +3 -3
  535. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +3 -3
  536. package/lib/esm/duet-menu-bar-dropdown.entry.js +5 -5
  537. package/lib/esm/duet-menu-bar-item.entry.js +6 -6
  538. package/lib/esm/duet-menu-bar-link.entry.js +3 -3
  539. package/lib/esm/duet-menu-bar.entry.js +4 -4
  540. package/lib/esm/duet-modal.entry.js +10 -10
  541. package/lib/esm/duet-multiselect.entry.js +8 -8
  542. package/lib/esm/duet-nav.entry.js +2 -2
  543. package/lib/esm/duet-notification_2.entry.js +6 -6
  544. package/lib/esm/duet-number-input.entry.js +3 -3
  545. package/lib/esm/duet-overlay.entry.js +2 -2
  546. package/lib/esm/duet-page-heading.entry.js +3 -3
  547. package/lib/esm/duet-pagination_2.entry.js +15 -15
  548. package/lib/esm/duet-phone-input.entry.js +1998 -0
  549. package/lib/esm/duet-popup-menu_2.entry.js +421 -0
  550. package/lib/esm/duet-progress.entry.js +2 -2
  551. package/lib/esm/duet-promo-card.entry.js +4 -4
  552. package/lib/esm/duet-radio_2.entry.js +2 -2
  553. package/lib/esm/duet-range-slider.entry.js +1 -1
  554. package/lib/esm/duet-scrollable_3.entry.js +27 -18
  555. package/lib/esm/duet-section-layout.entry.js +4 -4
  556. package/lib/esm/duet-select.entry.js +2 -2
  557. package/lib/esm/duet-shaped-image.entry.js +3 -3
  558. package/lib/esm/duet-show-more.entry.js +4 -4
  559. package/lib/esm/duet-slideout-lang.entry.js +3 -3
  560. package/lib/esm/duet-slideout-link.entry.js +22 -4
  561. package/lib/esm/duet-slideout-panel-dropdown.entry.js +5 -5
  562. package/lib/esm/duet-slideout-panel.entry.js +10 -10
  563. package/lib/esm/duet-slideout.entry.js +8 -8
  564. package/lib/esm/duet-status-icon.entry.js +3 -3
  565. package/lib/esm/duet-step_2.entry.js +2 -2
  566. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +3 -3
  567. package/lib/esm/duet-submenu-bar-dropdown.entry.js +5 -5
  568. package/lib/esm/duet-submenu-bar-item.entry.js +5 -5
  569. package/lib/esm/duet-submenu-bar-link.entry.js +2 -2
  570. package/lib/esm/duet-submenu-bar.entry.js +6 -6
  571. package/lib/esm/duet-textarea.entry.js +3 -3
  572. package/lib/esm/duet-toggle.entry.js +1 -1
  573. package/lib/esm/duet-toolbar-dropdown-link.entry.js +3 -3
  574. package/lib/esm/duet-toolbar-dropdown.entry.js +5 -5
  575. package/lib/esm/duet-toolbar-item.entry.js +7 -7
  576. package/lib/esm/duet-toolbar-link.entry.js +3 -3
  577. package/lib/esm/duet-toolbar.entry.js +3 -3
  578. package/lib/esm/duet-tooltip-button_2.entry.js +6 -6
  579. package/lib/esm/duet-tooltip.entry.js +2 -2
  580. package/lib/esm/duet-tray.entry.js +4 -4
  581. package/lib/esm/duet-upload-aria-status.entry.js +2 -2
  582. package/lib/esm/duet-upload-item.entry.js +5 -5
  583. package/lib/esm/duet-visually-hidden.entry.js +2 -2
  584. package/lib/esm/duet.js +4 -4
  585. package/lib/esm/{errorcodes.utils-d594aed8.js → errorcodes.utils-416994cc.js} +1 -1
  586. package/lib/esm/{focus-utils-fc101536.js → focus-utils-7bc146cd.js} +1 -1
  587. package/lib/esm/{index-fa810c91.js → index-1a6cee61.js} +11 -3
  588. package/lib/esm/{language-utils-35eb1c9f.js → language-utils-8a9d5323.js} +1 -1
  589. package/lib/esm/loader.js +4 -4
  590. package/lib/esm/{slot-utils-adbc7a01.js → slot-utils-9633ef1e.js} +1 -1
  591. package/lib/esm-es5/{a11y-utils-c9bd2c27.js → a11y-utils-9dbc7c3d.js} +1 -1
  592. package/lib/esm-es5/{app-globals-f12e0500.js → app-globals-e00fbe9c.js} +1 -1
  593. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  594. package/lib/esm-es5/duet-alert.entry.js +1 -1
  595. package/lib/esm-es5/duet-badge.entry.js +1 -1
  596. package/lib/esm-es5/duet-banner.entry.js +1 -1
  597. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  598. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  599. package/lib/esm-es5/duet-button_2.entry.js +2 -2
  600. package/lib/esm-es5/duet-callout.entry.js +1 -1
  601. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  602. package/lib/esm-es5/duet-card.entry.js +1 -1
  603. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  604. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  605. package/lib/esm-es5/duet-chip.entry.js +4 -0
  606. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  607. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  608. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  609. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  610. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  611. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  612. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  613. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  614. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  615. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  616. package/lib/esm-es5/duet-file-chooser.entry.js +2 -2
  617. package/lib/esm-es5/duet-footer.entry.js +1 -1
  618. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  619. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  620. package/lib/esm-es5/duet-hero.entry.js +2 -2
  621. package/lib/esm-es5/duet-icon.entry.js +1 -1
  622. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  623. package/lib/esm-es5/duet-layout.entry.js +1 -1
  624. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  625. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  626. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  627. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  628. package/lib/esm-es5/duet-menu-bar-item.entry.js +1 -1
  629. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  630. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  631. package/lib/esm-es5/duet-modal.entry.js +1 -1
  632. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  633. package/lib/esm-es5/duet-nav.entry.js +1 -1
  634. package/lib/esm-es5/duet-notification_2.entry.js +2 -2
  635. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  636. package/lib/esm-es5/duet-overlay.entry.js +1 -1
  637. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  638. package/lib/esm-es5/duet-pagination_2.entry.js +2 -2
  639. package/lib/esm-es5/duet-phone-input.entry.js +4 -0
  640. package/lib/esm-es5/duet-popup-menu_2.entry.js +4 -0
  641. package/lib/esm-es5/duet-progress.entry.js +1 -1
  642. package/lib/esm-es5/duet-promo-card.entry.js +2 -2
  643. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  644. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  645. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  646. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  647. package/lib/esm-es5/duet-select.entry.js +1 -1
  648. package/lib/esm-es5/duet-shaped-image.entry.js +1 -1
  649. package/lib/esm-es5/duet-show-more.entry.js +1 -1
  650. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  651. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  652. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  653. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  654. package/lib/esm-es5/duet-slideout.entry.js +2 -2
  655. package/lib/esm-es5/duet-status-icon.entry.js +1 -1
  656. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  657. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  658. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  659. package/lib/esm-es5/duet-submenu-bar-item.entry.js +1 -1
  660. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  661. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  662. package/lib/esm-es5/duet-textarea.entry.js +2 -2
  663. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  664. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  665. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  666. package/lib/esm-es5/duet-toolbar-item.entry.js +2 -2
  667. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  668. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  669. package/lib/esm-es5/duet-tooltip-button_2.entry.js +1 -1
  670. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  671. package/lib/esm-es5/duet-tray.entry.js +1 -1
  672. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  673. package/lib/esm-es5/duet-upload-item.entry.js +2 -2
  674. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  675. package/lib/esm-es5/duet.js +1 -1
  676. package/lib/esm-es5/{errorcodes.utils-d594aed8.js → errorcodes.utils-416994cc.js} +1 -1
  677. package/lib/esm-es5/focus-utils-7bc146cd.js +4 -0
  678. package/lib/esm-es5/index-1a6cee61.js +4 -0
  679. package/lib/esm-es5/{language-utils-35eb1c9f.js → language-utils-8a9d5323.js} +1 -1
  680. package/lib/esm-es5/loader.js +1 -1
  681. package/lib/esm-es5/{slot-utils-adbc7a01.js → slot-utils-9633ef1e.js} +1 -1
  682. package/lib/types/components/duet-button/duet-button.d.ts +1 -1
  683. package/lib/types/components/duet-heading/duet-heading.d.ts +6 -0
  684. package/lib/types/components/duet-input/duet-input.d.ts +4 -3
  685. package/lib/types/components/duet-phone-input/duet-phone-input.d.ts +156 -0
  686. package/lib/types/components/duet-popup-menu/duet-popup-menu.d.ts +11 -1
  687. package/lib/types/components/duet-scrollable/duet-scrollable.d.ts +1 -0
  688. package/lib/types/components/duet-slideout-link/duet-slideout-link.d.ts +17 -0
  689. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +1 -0
  690. package/lib/types/components.d.ts +259 -2
  691. package/lib/types/data/countries.d.ts +22 -0
  692. package/package.json +4 -4
  693. package/lib/dist-custom-elements/p-35014c4b.js +0 -268
  694. package/lib/duet/p-0750dca1.entry.js +0 -4
  695. package/lib/duet/p-07f685d3.entry.js +0 -4
  696. package/lib/duet/p-28696d40.entry.js +0 -4
  697. package/lib/duet/p-2981b2b9.system.entry.js +0 -4
  698. package/lib/duet/p-344ead85.system.entry.js +0 -4
  699. package/lib/duet/p-3933c84c.system.entry.js +0 -4
  700. package/lib/duet/p-4a91b8bc.system.entry.js +0 -4
  701. package/lib/duet/p-56d9a98c.system.entry.js +0 -4
  702. package/lib/duet/p-659d4dd6.entry.js +0 -4
  703. package/lib/duet/p-745a94fa.entry.js +0 -4
  704. package/lib/duet/p-7648f559.system.js +0 -4
  705. package/lib/duet/p-76fd0ec2.entry.js +0 -4
  706. package/lib/duet/p-7d6ddeec.js +0 -4
  707. package/lib/duet/p-7efd74ca.entry.js +0 -4
  708. package/lib/duet/p-87302bc0.entry.js +0 -4
  709. package/lib/duet/p-8bfce1f7.entry.js +0 -4
  710. package/lib/duet/p-97fe4968.js +0 -5
  711. package/lib/duet/p-9d6f6707.entry.js +0 -4
  712. package/lib/duet/p-a17a2112.entry.js +0 -4
  713. package/lib/duet/p-ac7ef7e2.js +0 -4
  714. package/lib/duet/p-b5b8973c.js +0 -4
  715. package/lib/duet/p-b7ecf91a.entry.js +0 -4
  716. package/lib/duet/p-bc440286.entry.js +0 -4
  717. package/lib/duet/p-c1802d38.system.js +0 -4
  718. package/lib/duet/p-c403a5b5.entry.js +0 -4
  719. package/lib/duet/p-d819ba34.entry.js +0 -4
  720. package/lib/duet/p-e81db273.system.entry.js +0 -4
  721. package/lib/duet/p-eaa81178.system.entry.js +0 -4
  722. package/lib/esm-es5/duet-chip_3.entry.js +0 -4
  723. package/lib/esm-es5/focus-utils-fc101536.js +0 -4
  724. package/lib/esm-es5/index-fa810c91.js +0 -4
@@ -7,9 +7,15 @@ import { Build, h, Host, } from "@stencil/core";
7
7
  import { inheritGlobalTheme } from "../../common";
8
8
  import { focusElement } from "../../utils/focus-utils";
9
9
  import { isArrowDownKey, isArrowUpKey, isEscapeKey, isTabKey } from "../../utils/keyboard-utils";
10
+ import { getLanguage } from "../../utils/language-utils";
10
11
  import { Teleport } from "../../utils/teleport";
11
12
  export class DuetPopupMenu {
12
13
  constructor() {
14
+ this.filterLabel = {
15
+ en: "Filter menu",
16
+ fi: "Suodata valikkoa",
17
+ sv: "Filtrera meny",
18
+ };
13
19
  this.setOpenButton = (element) => {
14
20
  if (!element) {
15
21
  return;
@@ -45,9 +51,32 @@ export class DuetPopupMenu {
45
51
  this.menuY = coordinates.y;
46
52
  this.menuX = coordinates.x;
47
53
  };
54
+ this.getNonFilteredItems = () => {
55
+ return this.showFilterInput ? this.itemElements.filter(i => i.style.display !== "none") : this.itemElements;
56
+ };
57
+ this.filterItems = () => {
58
+ var _a;
59
+ const filterText = (_a = this.filterInput.value) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase();
60
+ const items = this.itemElements;
61
+ items.forEach(item => {
62
+ item.style.display =
63
+ !filterText ||
64
+ item.textContent.toLowerCase().includes(filterText) ||
65
+ item.value.toLowerCase().includes(filterText)
66
+ ? ""
67
+ : "none";
68
+ });
69
+ };
70
+ this.handleKeyDownOnFilter = (ev) => {
71
+ var _a;
72
+ if (isArrowDownKey(ev)) {
73
+ (_a = this.getNonFilteredItems()[0]) === null || _a === void 0 ? void 0 : _a.setFocus();
74
+ }
75
+ };
48
76
  this.open = false;
49
77
  this.menuY = undefined;
50
78
  this.menuX = undefined;
79
+ this.language = getLanguage();
51
80
  this.accessibleLabel = undefined;
52
81
  this.accessibleRole = "menu";
53
82
  this.theme = "";
@@ -60,6 +89,7 @@ export class DuetPopupMenu {
60
89
  this.crossAxisOffset = 0;
61
90
  this.controllerIcon = "action-arrow-down-small";
62
91
  this.scrollLimit = undefined;
92
+ this.showFilterInput = undefined;
63
93
  }
64
94
  /**
65
95
  * Element, or id of an element, that controls the opening and closing of the popup menu. If id is given,
@@ -137,16 +167,17 @@ export class DuetPopupMenu {
137
167
  }
138
168
  }
139
169
  async handleKeyDown(evt) {
170
+ const items = this.getNonFilteredItems();
140
171
  if (this.open) {
141
172
  if (isArrowDownKey(evt)) {
142
173
  evt.preventDefault();
143
174
  const current = await this.getFocusedItemIndex();
144
175
  if (current !== -1) {
145
- if (current < this.itemElements.length - 1) {
146
- this.itemElements[current + 1].setFocus();
176
+ if (current < items.length - 1) {
177
+ items[current + 1].setFocus();
147
178
  }
148
179
  else {
149
- this.itemElements[0].setFocus();
180
+ items[0].setFocus();
150
181
  }
151
182
  }
152
183
  }
@@ -155,10 +186,15 @@ export class DuetPopupMenu {
155
186
  const current = await this.getFocusedItemIndex();
156
187
  if (current !== -1) {
157
188
  if (current === 0) {
158
- this.itemElements[this.itemElements.length - 1].setFocus();
189
+ if (this.showFilterInput) {
190
+ this.filterInput.setFocus();
191
+ }
192
+ else {
193
+ items[items.length - 1].setFocus();
194
+ }
159
195
  }
160
196
  else {
161
- this.itemElements[current - 1].setFocus();
197
+ items[current - 1].setFocus();
162
198
  }
163
199
  }
164
200
  }
@@ -222,6 +258,10 @@ export class DuetPopupMenu {
222
258
  if (this.menuElement && this.openButton) {
223
259
  this.autoUpdateCleanup = autoUpdate(this.openButton, this.menuElement, this.updatePlacement);
224
260
  }
261
+ if (this.showFilterInput) {
262
+ this.filterInput.value = "";
263
+ this.filterItems();
264
+ }
225
265
  setTimeout(() => {
226
266
  if (this.accessibleRole === "menu") {
227
267
  this.itemElements[0].setFocus();
@@ -263,7 +303,7 @@ export class DuetPopupMenu {
263
303
  }
264
304
  }
265
305
  async getFocusedItemIndex() {
266
- const items = this.itemElements;
306
+ const items = this.getNonFilteredItems();
267
307
  for (let i = 0; i < items.length; i++) {
268
308
  if (await items[i].isFocused()) {
269
309
  return i;
@@ -279,14 +319,14 @@ export class DuetPopupMenu {
279
319
  overflowY: "auto",
280
320
  height: this.popupMenuStyleHeight,
281
321
  };
282
- return (h(Host, { key: 'df95a1ca83bfed0e3c2e62e4de9a03563491b7a4' }, h("div", { key: '0da0cb7b5bf6b0950b867af9d93a8937d40c4223', ref: element => {
322
+ return (h(Host, { key: '245da481a4c3ac550648005777f7f7724c8e7806' }, h("div", { key: '17069b93e411e4f951dcf4f591aacf90a0fcf7ec', ref: element => {
283
323
  this.menuElement = element;
284
324
  }, style: styles, class: {
285
325
  open: this.open,
286
326
  "duet-popup-menu-list": true,
287
327
  "duet-theme-turva": this.theme === "turva",
288
328
  "scroll-visible": this.scrollLimit < this.itemElements.length,
289
- }, role: this.accessibleRole, "aria-label": this.accessibleLabel }, h("slot", { key: 'f2e56ae51be1d5eb1b8c14a67496079e3dbcd3d1' }))));
329
+ }, role: this.accessibleRole, "aria-label": this.accessibleLabel }, this.showFilterInput && (h("div", { key: '24e126dbabf9089b5d3bed8d20c4a2d727531a0e' }, h("duet-input", { key: '719101f79b6678a0e7b28694e2c630e902f58bb2', ref: el => (this.filterInput = el), label: this.filterLabel[this.language], "label-hidden": true, expand: true, margin: "none", type: "search", onDuetInput: this.filterItems, onKeyDown: this.handleKeyDownOnFilter }), h("duet-spacer", { key: 'c49e9178d065230acbc63f163b9b31dfa53a56ae', size: "xx-small" }))), h("slot", { key: 'd6e2cbd68cd5f5961d5c486a974b72083f2cbae0' }))));
290
330
  }
291
331
  static get is() { return "duet-popup-menu"; }
292
332
  static get encapsulation() { return "shadow"; }
@@ -623,6 +663,25 @@ export class DuetPopupMenu {
623
663
  "setter": false,
624
664
  "attribute": "scroll-limit",
625
665
  "reflect": false
666
+ },
667
+ "showFilterInput": {
668
+ "type": "boolean",
669
+ "mutable": false,
670
+ "complexType": {
671
+ "original": "boolean",
672
+ "resolved": "boolean",
673
+ "references": {}
674
+ },
675
+ "required": false,
676
+ "optional": false,
677
+ "docs": {
678
+ "tags": [],
679
+ "text": "Show input where user can type to filter popup-menu items to those that have a match in value or text content"
680
+ },
681
+ "getter": false,
682
+ "setter": false,
683
+ "attribute": "show-filter-input",
684
+ "reflect": false
626
685
  }
627
686
  };
628
687
  }
@@ -630,7 +689,8 @@ export class DuetPopupMenu {
630
689
  return {
631
690
  "open": {},
632
691
  "menuY": {},
633
- "menuX": {}
692
+ "menuX": {},
693
+ "language": {}
634
694
  };
635
695
  }
636
696
  static get events() {
@@ -66,11 +66,11 @@ export class DuetPopupMenuItem {
66
66
  "duet-theme-turva": this.theme === "turva",
67
67
  "active-descendant": this.activeDescendant,
68
68
  };
69
- return (h(Host, { key: 'bf1b38aa7684c8cc3959b6b0725f83962341d58d', role: this.accessibleRole }, h(TagName, { key: '71cfa30d7780f2ab9a31f2aa3ff4bec91b8e0b7e', ref: element => (this.itemElement = element), tabIndex: this.accessibleRole === "listitem" ? 0 : -1, onFocus: this.onFocus, onBlur: this.onBlur, role: `${TagName === "a" ? "link" : "button"}`, "aria-label": this.accessibleLabel, class: classes, value: this.value, href: this.url, target: this.external ? "_blank" : undefined, rel: this.external ? "noopener" : undefined, lang: TagName === "button" ? undefined : this.targetLanguage, hreflang: TagName === "button" ? undefined : this.targetLanguage }, this.leadingIcon && (h("duet-icon", { key: '3552f0f0e6e303f23e012a9baa0b646d7f3eeb5e', name: this.leadingIcon, size: "x-small", color: this.leadingIconColor ? this.leadingIconColor : "currentColor", class: "duet-popup-menu-item-leading", margin: "none" })), h("span", { key: '1c26c319a37978618960dce5c0e5de9731a576c9', class: "duet-popup-menu-item-label" }, h("slot", { key: 'c3f9e10b0f5c5af06d79ba6760b924f5abfb02d9' })), (this.trailingIcon || this.active || (this.url && this.external)) && (h("duet-icon", { key: '2b5f54ffc9063c6ef1dfb38d59724a1ff9307ede', name: this.url && this.external
69
+ return (h(Host, { key: '2f4a7fe60bc5938bbcb3b1fbce1b4c7bb6bc1de2', role: this.accessibleRole }, h(TagName, { key: 'c9f7fd447bb786217bd8a914167bb908acf66f37', ref: element => (this.itemElement = element), tabIndex: this.accessibleRole === "listitem" ? 0 : -1, onFocus: this.onFocus, onBlur: this.onBlur, role: `${TagName === "a" ? "link" : "button"}`, "aria-label": this.accessibleLabel, class: classes, value: this.value, href: this.url, target: this.external ? "_blank" : undefined, rel: this.external ? "noopener" : undefined, lang: TagName === "button" ? undefined : this.targetLanguage, hreflang: TagName === "button" ? undefined : this.targetLanguage }, this.leadingIcon && (h("duet-icon", { key: 'dcd75ed8a6b9113d52ffa7525c4356cbb2900bc4', name: this.leadingIcon, size: "x-small", color: this.leadingIconColor ? this.leadingIconColor : "currentColor", class: "duet-popup-menu-item-leading", margin: "none" })), h("span", { key: 'db792f6c21c039bc1997fe199227a84854623c9d', class: "duet-popup-menu-item-label" }, h("slot", { key: 'dbe5cfc337cc536811672bfc2240518c230df8d6' })), (this.trailingIcon || this.active || (this.url && this.external)) && (h("duet-icon", { key: 'dbcb7c7c1fb2a4279aab71c16bf8dfd0505fbe38', name: this.url && this.external
70
70
  ? newWindowIcon.title
71
71
  : this.active
72
72
  ? "messaging-checked-small"
73
- : this.trailingIcon, size: (this.url && this.external) || this.active ? "xx-small" : "x-small", color: "currentColor", class: "duet-popup-menu-item-trailing", margin: "none" })), this.trailingText && h("span", { key: 'b9a42c7f906f16c62189ce82f8c1bbdeee169a7e', class: "duet-popup-menu-item-trailing" }, this.trailingText))));
73
+ : this.trailingIcon, size: (this.url && this.external) || this.active ? "xx-small" : "x-small", color: "currentColor", class: "duet-popup-menu-item-trailing", margin: "none" })), this.trailingText && h("span", { key: 'e234fa5fd161ad0938c925c4b1fb75b6fbbb37f2', class: "duet-popup-menu-item-trailing" }, this.trailingText))));
74
74
  }
75
75
  static get is() { return "duet-popup-menu-item"; }
76
76
  static get encapsulation() { return "shadow"; }
@@ -53,12 +53,12 @@ export class DuetPromoCard {
53
53
  backgroundColor: backgroundColor ? backgroundColor : "none",
54
54
  };
55
55
  const TagName = this.url ? "a" : "div";
56
- return (h(Host, { key: '369719dba1262d916b787afe98ffd4fa217e2f1a', class: { "duet-m-0": this.margin === "none" } }, h("aside", { key: 'a49708055d9810ca1cecc07070640f389f8b866b', class: {
56
+ return (h(Host, { key: '0a97e9abde099796c74ee8d4533922d35deb236e', class: { "duet-m-0": this.margin === "none" } }, h("aside", { key: '1c1fd59c053cb81d932443c888c6e9573953e946', class: {
57
57
  "duet-promo-card": true,
58
58
  "duet-theme-turva": this.theme === "turva",
59
59
  "no-bg-color": !this.backgroundColor,
60
60
  "duet-promo-card-link": !!this.url,
61
- }, style: bannerStyles }, h(TagName, { key: 'c4c5c7f1a09b5641b228a7fc9b62afd950fdc8e1', href: this.url, class: "content-wrapper", ref: element => (this.aOrDivElement = element) }, h("img", { key: '12c2264de14f12da9ec4002afeb5fe978ceaa719', class: "image", src: this.image, alt: "", role: "presentation" }), h("div", { key: 'ee62d417521f8201dcaf095a8fe86684a935ba2d', class: "content" }, this.hasPreHeadingSlot && (h("div", { key: 'b5566b2e3ed124323ce8f7f34827e291f082f8e8', class: "pre-heading" }, h("slot", { key: '4db794c53c26048fa69d04b3b1ba1478de36c3d6', name: "pre-heading" }))), this.hasHeadingSlot && (h("div", { key: 'ca8c079241b93d7193b601a713de4b4e83e44630', class: "heading" }, h("duet-heading", { key: '9f6e20d605a3c35265fdd21d64b7862705ca5aeb', theme: this.theme, level: this.headingLevel, "visual-level": "h3", margin: "none", color: this.textColor }, h("span", { key: '72f862b412fe7145d8e96eebdc91e82e38ba4072' }, h("slot", { key: '0933ea8abb5c7b5d70515f2bd685f210a4fb5a85', name: "heading" }))))), this.hasDescriptionSlot && (h("div", { key: 'e81b515409efbd9b32ee45e0f930fd2ec5148a4e', class: "description" }, h("duet-paragraph", { key: 'c8483b63083ef1f07e44b49d0b51e21cf6d08f41', theme: this.theme, margin: "none", color: this.textColor }, h("span", { key: 'ec479361b133d65d444b9504d227167e353179e0' }, h("slot", { key: '732371f1f5719157476dd2d73d0750a6614bd88d', name: "description" }))))), this.hasActionSlot && (h("div", { key: '938ee22a3f9e771bd08ee7d092c002a9f989e289', class: "action" }, h("slot", { key: '91a2a79c7964862a39764fdac8de1a6a1679d1ea', name: "action" }))))))));
61
+ }, style: bannerStyles }, h(TagName, { key: 'fd53e9b56dc719eb84b55e185a7709e6ab267e58', href: this.url, class: "content-wrapper", ref: element => (this.aOrDivElement = element) }, h("img", { key: '34994ce60ac0342c63a4fcfe21a57b0246d2c19e', class: "image", src: this.image, alt: "", role: "presentation" }), h("div", { key: 'f0bef01fd5ff40970d3d54befca4682fdceed46f', class: "content" }, this.hasPreHeadingSlot && (h("div", { key: 'ad3e40631d0e0a7eab15ca8c97a22141dc14c409', class: "pre-heading" }, h("slot", { key: '887cb71bdcf6fffcb82565434e42ad1ee361841c', name: "pre-heading" }))), this.hasHeadingSlot && (h("div", { key: '90549d05dab8e3a238f8361cbbcc6ecea1d7cd42', class: "heading" }, h("duet-heading", { key: '56eaa16c5fb2f0094e32c24b1e9494092980b3f2', theme: this.theme, level: this.headingLevel, "visual-level": "h3", margin: "none", color: this.textColor }, h("span", { key: '6567201df4ec186d0fecce37cadbdeb9e7d3ceeb' }, h("slot", { key: '8f979f5facd440dd76a6a2711922cf4a1b47cba0', name: "heading" }))))), this.hasDescriptionSlot && (h("div", { key: '1d1c853e865e767a7f96255f0e9316c6ff4d642a', class: "description" }, h("duet-paragraph", { key: '4c1741ff05acd2562c07bdee11c9e00951dc8772', theme: this.theme, margin: "none", color: this.textColor }, h("span", { key: '2dd6a0fb0ae7508a6fca281632206ccbab9b80fa' }, h("slot", { key: 'c2bda8a30bfbcedfd5aa88b32c332172eb693ea3', name: "description" }))))), this.hasActionSlot && (h("div", { key: '46fbd5da2ebd36613c039f6edbb22e81d1fcaf47', class: "action" }, h("slot", { key: 'a573eaf8d88210c4c4e613c36a6f127d6caeb783', name: "action" }))))))));
62
62
  }
63
63
  static get is() { return "duet-promo-card"; }
64
64
  static get encapsulation() { return "shadow"; }
@@ -169,10 +169,10 @@ export class DuetRangeStepper {
169
169
  * Always the last one in the class.
170
170
  */
171
171
  render() {
172
- return (h("div", { key: '35bce1f47ba569cc34b6f4627b11c321f7ed7ee0', class: {
172
+ return (h("div", { key: '9221b16527b63eb5558cc9422c26fc70e3d44935', class: {
173
173
  "duet-range-stepper": true,
174
174
  "duet-theme-turva": this.theme === "turva",
175
- }, onKeyDown: e => this.onKeyboardDown(e), "aria-controls": this.ariaControls }, h("span", { key: 'c4c9faf170e41dd8428464b8084ace48f8704d42', class: "duet-range-step-counter", part: "range-numbers" }, this.generateStepSize()), h("duet-action-button", { key: 'c5fe0ebd2197ed50b2b6313f3289f339782ee4af', disabled: this.disabled || this.buttonLeftDisabled, 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: "" }), h("duet-action-button", { key: '26fe2315b7915a46bd40fef5e5941fef008e980f', disabled: this.disabled || this.buttonRightDisabled, 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: "" })));
175
+ }, onKeyDown: e => this.onKeyboardDown(e), "aria-controls": this.ariaControls }, h("span", { key: '301b08e846538f0e5d4da1b205ff27d1fa860075', class: "duet-range-step-counter", part: "range-numbers" }, this.generateStepSize()), h("duet-action-button", { key: '8f0a856cff8bf8a66e389c505d1817e2b038a201', disabled: this.disabled || this.buttonLeftDisabled, 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: "" }), h("duet-action-button", { key: '0746ef65ce1181f4975853482470b6064d2d680a', disabled: this.disabled || this.buttonRightDisabled, 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: "" })));
176
176
  }
177
177
  static get is() { return "duet-range-stepper"; }
178
178
  static get encapsulation() { return "shadow"; }
@@ -53,10 +53,10 @@
53
53
  background-color: rgb(255, 255, 255);
54
54
  }
55
55
  :host .duet-scrollable-items.buttons .duet-scrollable-button-container--absolute.left {
56
- left: -2px;
56
+ left: 0;
57
57
  }
58
58
  :host .duet-scrollable-items.buttons .duet-scrollable-button-container--absolute.right {
59
- right: -2px;
59
+ right: 0;
60
60
  }
61
61
  :host .duet-scrollable-items.buttons .duet-scrollable-button-container .duet-scrollable-button {
62
62
  position: absolute;
@@ -141,12 +141,13 @@
141
141
  mask-position: left, right;
142
142
  mask-repeat: no-repeat;
143
143
  /* For absolutely positioned buttons, we remove the fade overlay
144
- and adjust padding/margin to account for button borders,
145
- preventing border clipping due to overflow issues */
144
+ and adjust padding/margin to account for tab group's 2px wide border,
145
+ to prevent overflow. */
146
146
  }
147
147
  :host .duet-scrollable-items .duet-scrollable-list--absolute {
148
- padding-inline: 2px;
149
- margin-inline: -2px;
148
+ padding-right: 0;
149
+ padding-left: 2px;
150
+ margin-inline: 0;
150
151
  -webkit-mask: none !important;
151
152
  mask: none !important;
152
153
  }
@@ -21,7 +21,7 @@ export class DuetScrollable {
21
21
  */
22
22
  this.resizeObserver = new ResizeObserver(entries => {
23
23
  if ((entries === null || entries === void 0 ? void 0 : entries.length) === 1) {
24
- const threshold = this.buttonPosition === "absolute" ? 0 : 5;
24
+ const threshold = this.getOverlayWidth();
25
25
  this.checkScrollingNeeded(entries[0].target, threshold);
26
26
  }
27
27
  });
@@ -86,7 +86,7 @@ export class DuetScrollable {
86
86
  }
87
87
  const parentWidth = ((_a = element.parentElement) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().width) || 0;
88
88
  const contentWidth = element.scrollWidth;
89
- const overlayWidth = 10 * 2;
89
+ const overlayWidth = this.getOverlayWidth() * 2;
90
90
  this.needsScrolling = contentWidth - overlayWidth > parentWidth + threshold;
91
91
  if (!this.needsScrolling) {
92
92
  this.scrollPaneAtStart = true;
@@ -140,10 +140,10 @@ export class DuetScrollable {
140
140
  else if (container.scrollLeft > 0) {
141
141
  this.scrollPaneAtStart = false;
142
142
  }
143
- if (container.clientWidth + container.scrollLeft + 10 >= container.scrollWidth) {
143
+ if (container.clientWidth + container.scrollLeft + this.getOverlayWidth() >= container.scrollWidth) {
144
144
  this.scrollPaneAtEnd = true;
145
145
  }
146
- else if (container.clientWidth + container.scrollLeft + 10 < container.scrollWidth) {
146
+ else if (container.clientWidth + container.scrollLeft + this.getOverlayWidth() < container.scrollWidth) {
147
147
  this.scrollPaneAtEnd = false;
148
148
  }
149
149
  }
@@ -191,6 +191,9 @@ export class DuetScrollable {
191
191
  const last = this.getLastVisibleElement();
192
192
  this.scrollToElement(last + 1, "center");
193
193
  }
194
+ getOverlayWidth() {
195
+ return this.buttonPosition === "absolute" ? 0 : 10;
196
+ }
194
197
  renderButton(direction) {
195
198
  const arrowColor = this.theme === "turva" ? "color-primary-darker-turva" : "color-primary";
196
199
  const arrowColorDisabled = this.theme === "turva" ? "color-gray-turva" : "color-gray";
@@ -226,25 +229,25 @@ export class DuetScrollable {
226
229
  * Always the last one in the class.
227
230
  */
228
231
  render() {
229
- return (h(Host, { key: 'f9d32985477e8239420fb052f9f621f9f8990f87', class: {
232
+ return (h(Host, { key: '747e51cf1e6b4dc3666bc7c24404a13b9c8b8a78', class: {
230
233
  "duet-theme-turva": this.theme === "turva",
231
234
  "duet-theme-default": this.theme === "default",
232
- } }, this.hasCollapseButtonLabelSlot && (h("div", { key: 'ba59942211ad1695d127b0523114e7a1f9e49e06', class: {
235
+ } }, this.hasCollapseButtonLabelSlot && (h("div", { key: '2439c9c82795f69fa13ab860ce27e917d6069ce4', class: {
233
236
  collapse: true,
234
237
  hide: !this.needsScrolling && !this.collapsed,
235
- } }, h("duet-button", { key: '76946873948e27b8d40469f07a47ad3e90523b8d', variation: "plain", margin: "none", "center-text": true, onClick: () => this.collapsedOnClick() }, h("slot", { key: '05fec97266546725966d97fce471e9fe17a9ca39', name: "collapse-button-label" })))), h("div", { key: '60cc97e2e4231e59a28bd09f51652af060ef6e24', class: {
238
+ } }, h("duet-button", { key: '7cd29de14a99f1f24eeee8e2d8422fcbfcd07258', variation: "plain", margin: "none", "center-text": true, onClick: () => this.collapsedOnClick() }, h("slot", { key: 'b34f0b2114143698d44364dae3a96e9d6b666db8', name: "collapse-button-label" })))), h("div", { key: '976bc6a9b20bdfb84ac0f11f33327650507d932d', class: {
236
239
  "duet-scrollable-items": true,
237
240
  buttons: this.buttons,
238
241
  center: this.center,
239
242
  "duet-theme-turva": this.theme === "turva",
240
- } }, this.buttons && this.renderButton("left"), h("div", { key: 'eebe387b2c90a47647bdd16514dfe79fbe2f6436', class: {
243
+ } }, this.buttons && this.renderButton("left"), h("div", { key: '43f02d7f2596dfd0bb8979c54ce1b1f451092ecd', class: {
241
244
  "duet-scrollable-list": true,
242
245
  [`duet-scrollable-list--${this.buttonPosition}`]: true,
243
246
  [`gap-${this.gap}`]: true,
244
247
  collapsed: this.collapsed,
245
248
  [`duet-overflow-padding--${this.padding}`]: this.padding !== "none",
246
249
  [`duet-scrollable-list--${this.buttonPosition}`]: this.buttonPosition === "absolute",
247
- }, onScroll: () => this.updateScrollButtons(), ref: element => (this.scrollPaneElement = element) }, h("slot", { key: '365952437c69244c0bd5e4917c3711a300e7509e' })), this.buttons && this.renderButton("right"))));
250
+ }, onScroll: () => this.updateScrollButtons(), ref: element => (this.scrollPaneElement = element) }, h("slot", { key: '37617a61c9583df93cc0accab40208d4bb0bbbd3' })), this.buttons && this.renderButton("right"))));
248
251
  }
249
252
  static get is() { return "duet-scrollable"; }
250
253
  static get encapsulation() { return "shadow"; }
@@ -14,13 +14,13 @@ export class DuetSectionLayout {
14
14
  * Always the last one in the class.
15
15
  */
16
16
  render() {
17
- return (h(Host, { key: 'd1c577c30368c8ad2c3b87d2056cdb21191e586e', class: {
17
+ return (h(Host, { key: '89be4e82e34327cb68c695187821280140aa3233', class: {
18
18
  "duet-middle": this.middle,
19
19
  "duet-ie": isInternetExplorer(),
20
- } }, h("div", { key: 'd5ef07dc367ad7b1bdb54634b8abe80a3ab42595', class: { "duet-layout-wrapper": true, "duet-m-0": this.margin === "none" } }, h("div", { key: 'e35a1276a667969594305cec29efa7ca74d137a2', class: {
20
+ } }, h("div", { key: '2cde22f46d6a6b602245fb0d6e875349845bd204', class: { "duet-layout-wrapper": true, "duet-m-0": this.margin === "none" } }, h("div", { key: 'a39c58d05f6944ba7c6c0bfda25a3ad1d99f3e2f', class: {
21
21
  "duet-layout": true,
22
22
  [`padding-${this.paddingBreakpoint}`]: !!this.paddingBreakpoint,
23
- } }, h("section", { key: '97aa517a43663077b98ef7eee06d7e28daac3545', class: "duet-main" }, h("slot", { key: 'b9c7aaae5f0f41eaca7ca3fa8422038548991c13' }))))));
23
+ } }, h("section", { key: 'ee98fe87b3d0994ab04c65590b5288d35aea2a9e', class: "duet-main" }, h("slot", { key: '2f931f464073257e432992e99f40a58727401352' }))))));
24
24
  }
25
25
  static get is() { return "duet-section-layout"; }
26
26
  static get encapsulation() { return "shadow"; }
@@ -25,9 +25,9 @@ export class DuetShapedImage {
25
25
  const style = {
26
26
  "--rotation": `${this.rotation}deg`,
27
27
  };
28
- return (h(Host, { key: '4d2509d187900cd728bc7f487c0d5f6d6692fcf6', class: { "duet-theme-turva": this.theme === "turva", "duet-m-0": this.margin === "none" } }, h("span", { key: '443432050b727b6c2b596eea74a7d991626f3588', class: {
28
+ return (h(Host, { key: '2261e3fd3e60d1ea8591219a9e64b3137fc93969', class: { "duet-theme-turva": this.theme === "turva", "duet-m-0": this.margin === "none" } }, h("span", { key: '1c4204740ad1cfd299e96b484c602189f189e137', class: {
29
29
  "shaped-image": true,
30
- }, role: "img", "aria-label": this.accessibleLabel, style: style }, h("span", { key: '2b158b8d24e6803549c950f701fa1f304b2c5a21', class: "shaped-image-mask", role: "presentation" }, h("span", { key: '84ceabbe108b85db331719cad4aa47ac16c52613', class: "shaped-image-img", role: "presentation", style: { backgroundImage: `url("${this.src}")` } })))));
30
+ }, role: "img", "aria-label": this.accessibleLabel, style: style }, h("span", { key: 'e313b068532ce26450e93a3b68bfe7190f6dd4fc', class: "shaped-image-mask", role: "presentation" }, h("span", { key: '01ffb3799bf6211c8b11bfd62a42b1c080bf1a74', class: "shaped-image-img", role: "presentation", style: { backgroundImage: `url("${this.src}")` } })))));
31
31
  }
32
32
  static get is() { return "duet-shaped-image"; }
33
33
  static get encapsulation() { return "shadow"; }
@@ -90,12 +90,12 @@ export class DuetShowMore {
90
90
  * Always the last one of the class.
91
91
  */
92
92
  render() {
93
- return (h(Host, { key: 'f8b3a4bdc3bdb531b534fa738121b232385abd2f' }, h("div", { key: '4286438cdd90fadc5a9a099d57a1f7ed405f4825', class: {
93
+ return (h(Host, { key: '342980885abd34eaaed8c7a94d2c8814af8ac7b1' }, h("div", { key: 'ad3d469d25dc5073ab2e585f075e4a6d239da446', class: {
94
94
  "duet-show-more": true,
95
95
  "duet-theme-turva": this.theme === "turva",
96
96
  "duet-m-0": this.margin === "none",
97
97
  open: this.open,
98
- } }, h("div", { key: '3a4f4bedaa980b958342d306e431e6e8eea30b46', ref: ref => (this.contentElement = ref), class: { content: true }, id: this.contentId, tabindex: this.open ? "0" : "" }, h("div", { key: '83db13f0dfda97263e0979963c35e3b8af89b8fa', class: { "slotted-content": true } }, h("slot", { key: '4c7ac0dd5c6c92734c9fbb1b41292b1ab5b9b395' }))), h("duet-button", { key: '8b5673ff853d9c7888ce2d6b532d01d99c85af43', id: this.buttonId, variation: "plain", "accessible-label": this.buttonAriaOpen ? this.showLessAccessibleLabel : this.showMoreAccessibleLabel, "accessible-expanded": this.buttonAriaOpen ? "true" : "false", "accessible-controls": this.contentId, accessiblePressed: this.open, onClick: this.handleClick, onKeyDown: this.handleKeyDown, "icon-right": true, icon: this.open ? "action-arrow-up-small" : "action-arrow-down-small", "icon-size": "medium-small", size: "small", margin: this.buttonMargin, padding: this.buttonPadding, theme: this.theme === "turva" ? "turva" : "default" }, h("span", { key: 'caea15de13cce76f34b754a3a1dda49a6d17bb89' }, this.open ? this.showLessLabel : this.showMoreLabel)))));
98
+ } }, h("div", { key: 'e11ff42b395ce60a533b3d293e95d0b9d28985b1', ref: ref => (this.contentElement = ref), class: { content: true }, id: this.contentId, tabindex: this.open ? "0" : "" }, h("div", { key: 'ce456a7014e3c0d41542315a58952db9a67958ca', class: { "slotted-content": true } }, h("slot", { key: '1359b929236258f2f46becc67c2ef0212d720aab' }))), h("duet-button", { key: '89258a40cc1e2a2332a2f76bec76ff7478f5d48a', id: this.buttonId, variation: "plain", "accessible-label": this.buttonAriaOpen ? this.showLessAccessibleLabel : this.showMoreAccessibleLabel, "accessible-expanded": this.buttonAriaOpen ? "true" : "false", "accessible-controls": this.contentId, accessiblePressed: this.open, onClick: this.handleClick, onKeyDown: this.handleKeyDown, "icon-right": true, icon: this.open ? "action-arrow-up-small" : "action-arrow-down-small", "icon-size": "medium-small", size: "small", margin: this.buttonMargin, padding: this.buttonPadding, theme: this.theme === "turva" ? "turva" : "default" }, h("span", { key: '3fdb11c208b0ef335f23e4f8f5d0076add4d3cbb' }, this.open ? this.showLessLabel : this.showMoreLabel)))));
99
99
  }
100
100
  static get is() { return "duet-show-more"; }
101
101
  static get encapsulation() { return "shadow"; }
@@ -260,16 +260,16 @@ export class DuetSlideout {
260
260
  };
261
261
  const topLevelOpenMenuBarTranslation = getLocaleString(this.topLevelOpenMenuBarLangObject);
262
262
  const exitTranslation = getLocaleString(this.exitLangObject);
263
- return (h(Host, { key: '8d5d42ea1b4ab27296f6b360c4fbb0d31836d039' }, h("div", { key: '1cf8c2cb6f87e429e8c49b2ae55c2a247f5e8a1d', class: { "duet-slideout": true, "duet-theme-turva": this.theme === "turva" } }, this.modal && h("duet-overlay", { key: 'b1f49d5e1da9b0ef48c21957d5b6da4a266c74e8', visible: this.open, "display-device": "large", zIndex: "600" }), h("div", { key: 'd4ef90d513a2a1970ce5cb9f3337e852785eb13a', ref: element => (this.dialog = element), tabindex: "-1", role: "dialog", id: "dialog", "aria-labelledby": "button", "aria-modal": this.isSafariBrowser ? false : true, "aria-flowto": "slot-container", class: {
263
+ return (h(Host, { key: '4adf7d99cbc333b181e8fd4866d08855eb6a6d1c' }, h("div", { key: '78f45ec446655208a7bf17cfe3be6a4aebc5c181', class: { "duet-slideout": true, "duet-theme-turva": this.theme === "turva" } }, this.modal && h("duet-overlay", { key: '278b3a9e1823ab3650f7fc705d3d7d41a676b70f', visible: this.open, "display-device": "large", zIndex: "600" }), h("div", { key: 'c5fd8e77aa37a4e5106dafcc83a4b07098fc5695', ref: element => (this.dialog = element), tabindex: "-1", role: "dialog", id: "dialog", "aria-labelledby": "button", "aria-modal": this.isSafariBrowser ? false : true, "aria-flowto": "slot-container", class: {
264
264
  dialog: true,
265
265
  hidden: !this.open,
266
266
  modal: this.modal,
267
- }, style: styles }, h(FocusGuard, { key: '68ea31fc1367cfffe651a11b7b61dc4fcb5b09fc', moveFocusTo: this.closeButton }), h("div", { key: 'c7e01931fb3c9c1cb4c70bf364cf23ee94c64744', class: { "top-container": true, "has-sticky-header-slot": this.hasStickyHeaderSlot } }, h("div", { key: '1461b0d0fe30eace62ef88fbffec48aa527f316f', class: "top" }, h("button", { key: 'fb6c4634ce62407eda4b349b54cf4c0dffd3f9ad', ref: element => (this.closeButton = element), "aria-haspopup": "dialog", "aria-controls": "dialog", "aria-expanded": this.open ? "true" : "false", "aria-label": `${exitTranslation}`, type: "button", class: {
267
+ }, style: styles }, h(FocusGuard, { key: '3d629c66c8376aec3febe6c9c0818b8a45df56a2', moveFocusTo: this.closeButton }), h("div", { key: '7792e9afa44d5ff99e1350e99f0ec4cf0a570067', class: { "top-container": true, "has-sticky-header-slot": this.hasStickyHeaderSlot } }, h("div", { key: 'b1849e638fe366a073e2d247695ed828259f385a', class: "top" }, h("button", { key: 'cfd4aaf534427596f9fe01415e42bf355608798a', ref: element => (this.closeButton = element), "aria-haspopup": "dialog", "aria-controls": "dialog", "aria-expanded": this.open ? "true" : "false", "aria-label": `${exitTranslation}`, type: "button", class: {
268
268
  "slideout-close": true,
269
269
  active: this.open,
270
- }, onClick: this.onClick, inert: this.openPanel }, h("duet-icon", { key: 'bc09b7fdfe8c01b5e2ed9c28464ddb09fbb5cae3', name: "navigation-close", size: "small", margin: "none", color: "secondary" }))), h("div", { key: '27b33378e3c3e1fdd221acb6288540aa93633b74', class: "sticky-header" }, h("slot", { key: '38d19fe1d2c6f74004b7e93a591c0c07a2edfad2', name: "sticky-header" }))), h("div", { key: 'a92d3f23efe42d3fff113a6c0ef6205e90bd387c', id: "slot-container", role: this.accessibleRole, "aria-label": this.openPanel ? topLevelOpenMenuBarTranslation : null, class: {
270
+ }, onClick: this.onClick, inert: this.openPanel }, h("duet-icon", { key: '410f3f0ce0f8e66791f998f3fb9169ddcd6723c7', name: "navigation-close", size: "small", margin: "none", color: "secondary" }))), h("div", { key: '6341b9c23dd91454d7e8bb38201578a02906cb15', class: "sticky-header" }, h("slot", { key: 'a9128943f3767198b7b3602dd242ab35ee7fc104', name: "sticky-header" }))), h("div", { key: '53aa0fd6b0097f061b2d5767b8a0b4a360a78040', id: "slot-container", role: this.accessibleRole, "aria-label": this.openPanel ? topLevelOpenMenuBarTranslation : null, class: {
271
271
  items: true,
272
- } }, h("slot", { key: 'aa14239555307c1303b17929cfd48f44c9883cef' })), h(FocusGuard, { key: '8d9f6812015a4184d5e5aa94f91d07491c826969', moveFocusTo: this.closeButton })))));
272
+ } }, h("slot", { key: 'd0bb2bfede05aae54cd56e487fb7a69b124b84ce' })), h(FocusGuard, { key: '73d243e3a801c30a7706edac7d87a78a7750a4f1', moveFocusTo: this.closeButton })))));
273
273
  }
274
274
  static get is() { return "duet-slideout"; }
275
275
  static get encapsulation() { return "shadow"; }
@@ -35,7 +35,7 @@ export class DuetSlideoutLang {
35
35
  */
36
36
  render() {
37
37
  const langTranslation = getLocaleString(this.chooseLangObject);
38
- return (h(Host, { key: '31b6e57b23d0936cc4147741caf528521e1e82a1' }, h("div", { key: '74b2d0ddf3a4a21c4d9368e9e7e00e6e223e78c6', class: "duet-slideout-lang", role: "group", "aria-label": langTranslation }, h("duet-icon", { key: '1f6beba2dcad7302f4e3db4395435d7c5e39730d', name: "navigation-language", margin: "none", color: "secondary" }), h("slot", { key: 'ead217fcb33aeced035ef571dbe57de7857d0c84' }))));
38
+ return (h(Host, { key: '00c9777c6d216869e7a3c1dcc5dae6e4503bfa25' }, h("div", { key: 'a39f00f60a7a25189b6564165aafcf0e1d480824', class: "duet-slideout-lang", role: "group", "aria-label": langTranslation }, h("duet-icon", { key: '6a895b8e8e7c4dbdf541a16a01566fabb3150c9d', name: "navigation-language", margin: "none", color: "secondary" }), h("slot", { key: 'dd216d56b29a88616d01acd917af1e8f7d21e31d' }))));
39
39
  }
40
40
  static get is() { return "duet-slideout-lang"; }
41
41
  static get encapsulation() { return "shadow"; }
@@ -54,7 +54,7 @@
54
54
  .duet-slideout-link.active span {
55
55
  position: relative;
56
56
  }
57
- .duet-slideout-link.active span::after {
57
+ .duet-slideout-link.active .label-content::after {
58
58
  position: absolute;
59
59
  top: auto;
60
60
  bottom: 0;
@@ -87,11 +87,26 @@
87
87
  }
88
88
  .duet-slideout-link .label {
89
89
  display: flex;
90
- gap: 0.5rem;
90
+ gap: 8px;
91
91
  align-items: center;
92
92
  justify-content: space-between;
93
93
  width: 100%;
94
94
  }
95
+ .duet-slideout-link .label-container {
96
+ display: flex;
97
+ gap: 8px;
98
+ align-items: center;
99
+ justify-content: flex-start;
100
+ width: 100%;
101
+ }
102
+ .duet-slideout-link .external-icon {
103
+ width: 10px;
104
+ height: 10px;
105
+ }
106
+ .duet-slideout-link.medium .external-icon, .duet-slideout-link.large .external-icon {
107
+ width: 12px;
108
+ height: 12px;
109
+ }
95
110
 
96
111
  slot[name=description]::slotted(*) {
97
112
  display: block;
@@ -1,8 +1,12 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
+ import newWindowIcon from "@duetds/icons/lib/assets/action-new-window-small";
4
5
  import { h, Host } from "@stencil/core";
6
+ import { DuetStringsExternalDefaults } from "../../common-strings";
5
7
  import { inheritGlobalTheme } from "../../common/themeable-component";
8
+ import { getAccessibleLinkLabel } from "../../utils/a11y-utils";
9
+ import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLocaleString, } from "../../utils/language-utils";
6
10
  export class DuetSlideoutLink {
7
11
  constructor() {
8
12
  this.accessibleLabel = undefined;
@@ -14,6 +18,9 @@ export class DuetSlideoutLink {
14
18
  this.size = "inherit";
15
19
  this.caret = false;
16
20
  this.menuItem = false;
21
+ this.accessibleLabelExternalDefaults = DuetStringsExternalDefaults;
22
+ this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults);
23
+ this.external = false;
17
24
  }
18
25
  /**
19
26
  * Component lifecycle events.
@@ -21,17 +28,26 @@ export class DuetSlideoutLink {
21
28
  componentWillLoad() {
22
29
  inheritGlobalTheme(this);
23
30
  }
31
+ connectedCallback() {
32
+ connectLanguageChangeObserver(this, {
33
+ prop: "accessibleLabelExternal",
34
+ defaults: "accessibleLabelExternalDefaults",
35
+ });
36
+ }
37
+ disconnectedCallback() {
38
+ disconnectLanguageChangeObserver(this);
39
+ }
24
40
  /**
25
41
  * render() function
26
42
  * Always the last one in the class.
27
43
  */
28
44
  render() {
29
- return (h(Host, { key: '397e43c602bd3d9926d0649d5df37f30abc8e122' }, h("a", { key: 'ea5609a4fd536e03d6563b21c05d9d15f024f996', class: {
45
+ return (h(Host, { key: 'e550af12584f602566859a45b7cbee36a7aae43e' }, h("a", { key: '414c6a6a1fb91c95f3d241b0a9c90b13bb4c0793', target: !this.href ? null : this.external ? "_blank" : "_self", class: {
30
46
  "duet-slideout-link": true,
31
47
  "duet-theme-turva": this.theme === "turva",
32
48
  active: this.active,
33
49
  [this.size]: true,
34
- }, href: this.href, "aria-current": this.active ? "true" : "false", lang: this.targetLanguage, hreflang: this.targetLanguage, "aria-label": this.accessibleLabel }, this.icon && (h("duet-icon", { key: 'cd2858752a02bceda1dc86741a5a7588f4c04fc5', name: this.icon, color: "secondary", size: this.menuItem ? "x-small" : "medium", margin: "none" })), h("div", { key: 'c0e8b4c5f08ff88b02749475f88ea49699c9f32e', class: "label" }, h("span", { key: '6f32f8b54e0c9927ef11ea6feb0e9f41239f5826' }, h("slot", { key: 'aa5b10e8ed48b56c94a4b92b8f4a4c04fd8751cd' }), h("slot", { key: '3ccb1b5c03782d3df88ce40121c3848abbb7ed21', name: "description" })), this.caret && (h("duet-icon", { key: '7761639943a89d708a9cdc554e8b464538154ab5', name: "action-arrow-right", color: "secondary", size: "x-small", margin: "none" }))))));
50
+ }, href: this.href, "aria-current": this.active ? "true" : "false", lang: this.targetLanguage, hreflang: this.targetLanguage, "aria-label": (this.href && getAccessibleLinkLabel(this)) || this.accessibleLabel, rel: this.external ? "noopener" : undefined }, this.icon && (h("duet-icon", { key: 'd8c1ebd401cd5e022ac9e4a1204133a336d3a2b7', name: this.icon, color: "secondary", size: this.menuItem ? "x-small" : "medium", margin: "none" })), h("div", { key: '473fe104cec5068f8f4bd4d5ee4e928de4bc268a', class: "label" }, h("span", { key: '425d0d0252417d78b704a7f294577110048729bc' }, h("span", { key: 'ba72671d83eee86369e9408738a00a44331bbf95', class: "label-container" }, h("span", { key: '907ae07b430dd127c8fb7931d3432b4e84d2b885', class: "label-content" }, h("slot", { key: '3ed0ebaace8750688a19520a5e7f5d1606a6dc00' })), this.external && (h("duet-icon", { key: 'f872b62d2c5757e7a0d059092cc143f4cb683abe', class: "external-icon", theme: this.theme, name: newWindowIcon.title, margin: "none", size: "auto", color: "currentColor" }))), h("slot", { key: '19c6036aa3e972f49c02e5c66f7c5856601da94e', name: "description" })), this.caret && (h("duet-icon", { key: '1f649b48aff0af010198404d37f1df359fa5a043', name: "action-arrow-right", color: "secondary", size: "x-small", margin: "none" }))))));
35
51
  }
36
52
  static get is() { return "duet-slideout-link"; }
37
53
  static get encapsulation() { return "shadow"; }
@@ -234,6 +250,78 @@ export class DuetSlideoutLink {
234
250
  "attribute": "menu-item",
235
251
  "reflect": false,
236
252
  "defaultValue": "false"
253
+ },
254
+ "accessibleLabelExternalDefaults": {
255
+ "type": "string",
256
+ "mutable": false,
257
+ "complexType": {
258
+ "original": "DuetLangObject | string",
259
+ "resolved": "DuetLangObject | string",
260
+ "references": {
261
+ "DuetLangObject": {
262
+ "location": "import",
263
+ "path": "../../utils/language-utils",
264
+ "id": "src/utils/language-utils.ts::DuetLangObject"
265
+ }
266
+ }
267
+ },
268
+ "required": false,
269
+ "optional": false,
270
+ "docs": {
271
+ "tags": [{
272
+ "name": "default",
273
+ "text": "{fi: \"Avautuu uuteen ikkunaan\",sv: \"\u00D6ppnas i nytt f\u00F6nster\",en: \"Opens in a new window\"}"
274
+ }],
275
+ "text": "Defaults for accessibleLabelExternal"
276
+ },
277
+ "getter": false,
278
+ "setter": false,
279
+ "attribute": "accessible-label-external-default",
280
+ "reflect": false,
281
+ "defaultValue": "DuetStringsExternalDefaults"
282
+ },
283
+ "accessibleLabelExternal": {
284
+ "type": "string",
285
+ "mutable": true,
286
+ "complexType": {
287
+ "original": "string",
288
+ "resolved": "string",
289
+ "references": {}
290
+ },
291
+ "required": false,
292
+ "optional": false,
293
+ "docs": {
294
+ "tags": [{
295
+ "name": "default",
296
+ "text": "{fi: \"Avautuu uuteen ikkunaan\",sv: \"\u00D6ppnas i nytt f\u00F6nster\",en: \"Opens in a new window\"}"
297
+ }],
298
+ "text": "Adds accessible label for tooltip that is shown in external link (url & external have both been set)"
299
+ },
300
+ "getter": false,
301
+ "setter": false,
302
+ "attribute": "accessible-label-external",
303
+ "reflect": false,
304
+ "defaultValue": "getLocaleString(this.accessibleLabelExternalDefaults)"
305
+ },
306
+ "external": {
307
+ "type": "boolean",
308
+ "mutable": false,
309
+ "complexType": {
310
+ "original": "boolean",
311
+ "resolved": "boolean",
312
+ "references": {}
313
+ },
314
+ "required": false,
315
+ "optional": false,
316
+ "docs": {
317
+ "tags": [],
318
+ "text": "Forces URL to open in a new browser tab. Used together with URL prop."
319
+ },
320
+ "getter": false,
321
+ "setter": false,
322
+ "attribute": "external",
323
+ "reflect": false,
324
+ "defaultValue": "false"
237
325
  }
238
326
  };
239
327
  }