@duetds/components 9.1.1 → 9.2.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 (725) hide show
  1. package/hydrate/index.js +291 -194
  2. package/lib/cjs/{app-globals-bbbc26ee.js → app-globals-8b08f415.js} +1 -1
  3. package/lib/cjs/duet-action-button.cjs.entry.js +2 -2
  4. package/lib/cjs/duet-alert.cjs.entry.js +3 -3
  5. package/lib/cjs/duet-badge.cjs.entry.js +3 -3
  6. package/lib/cjs/duet-banner.cjs.entry.js +2 -2
  7. package/lib/cjs/duet-breadcrumb.cjs.entry.js +6 -6
  8. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +4 -4
  9. package/lib/cjs/duet-button_2.cjs.entry.js +4 -4
  10. package/lib/cjs/duet-callout.cjs.entry.js +4 -4
  11. package/lib/cjs/duet-caption_4.cjs.entry.js +6 -6
  12. package/lib/cjs/duet-card.cjs.entry.js +1 -1
  13. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-checkmark.cjs.entry.js +3 -3
  15. package/lib/cjs/{duet-chip.cjs.entry.js → duet-chip_3.cjs.entry.js} +327 -1
  16. package/lib/cjs/duet-choice_2.cjs.entry.js +3 -3
  17. package/lib/cjs/duet-collapsible.cjs.entry.js +2 -2
  18. package/lib/cjs/duet-combobox.cjs.entry.js +42 -32
  19. package/lib/cjs/duet-contact-card.cjs.entry.js +4 -4
  20. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-date-picker.cjs.entry.js +38 -6
  22. package/lib/cjs/duet-divider_2.cjs.entry.js +2 -2
  23. package/lib/cjs/duet-editable-table_3.cjs.entry.js +7 -7
  24. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-fieldset.cjs.entry.js +5 -5
  26. package/lib/cjs/duet-file-chooser.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-footer.cjs.entry.js +3 -3
  28. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-header_2.cjs.entry.js +3 -3
  30. package/lib/cjs/duet-hero.cjs.entry.js +3 -3
  31. package/lib/cjs/duet-icon.cjs.entry.js +4 -4
  32. package/lib/cjs/duet-input_2.cjs.entry.js +3 -3
  33. package/lib/cjs/duet-layout.cjs.entry.js +7 -10
  34. package/lib/cjs/duet-list_2.cjs.entry.js +4 -4
  35. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +3 -3
  36. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +3 -3
  37. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +5 -5
  38. package/lib/cjs/duet-menu-bar-item.cjs.entry.js +3 -3
  39. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +3 -3
  40. package/lib/cjs/duet-menu-bar.cjs.entry.js +5 -5
  41. package/lib/cjs/duet-modal.cjs.entry.js +10 -10
  42. package/lib/cjs/duet-multiselect.cjs.entry.js +8 -8
  43. package/lib/cjs/duet-nav.cjs.entry.js +2 -2
  44. package/lib/cjs/duet-notification_2.cjs.entry.js +6 -6
  45. package/lib/cjs/duet-number-input.cjs.entry.js +3 -3
  46. package/lib/cjs/duet-overlay.cjs.entry.js +2 -2
  47. package/lib/cjs/duet-page-heading.cjs.entry.js +3 -3
  48. package/lib/cjs/duet-pagination_2.cjs.entry.js +15 -15
  49. package/lib/cjs/duet-progress.cjs.entry.js +2 -2
  50. package/lib/cjs/duet-promo-card.cjs.entry.js +4 -4
  51. package/lib/cjs/duet-radio_2.cjs.entry.js +2 -2
  52. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  53. package/lib/cjs/duet-scrollable_3.cjs.entry.js +13 -13
  54. package/lib/cjs/duet-section-layout.cjs.entry.js +5 -6
  55. package/lib/cjs/duet-select.cjs.entry.js +2 -2
  56. package/lib/cjs/duet-shaped-image.cjs.entry.js +3 -3
  57. package/lib/cjs/duet-show-more.cjs.entry.js +4 -4
  58. package/lib/cjs/duet-slideout-lang.cjs.entry.js +3 -3
  59. package/lib/cjs/duet-slideout-link.cjs.entry.js +3 -3
  60. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +5 -5
  61. package/lib/cjs/duet-slideout-panel.cjs.entry.js +10 -10
  62. package/lib/cjs/duet-slideout.cjs.entry.js +8 -8
  63. package/lib/cjs/duet-step_2.cjs.entry.js +2 -2
  64. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +3 -3
  65. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +5 -5
  66. package/lib/cjs/duet-submenu-bar-item.cjs.entry.js +2 -2
  67. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +2 -2
  68. package/lib/cjs/duet-submenu-bar.cjs.entry.js +6 -6
  69. package/lib/cjs/duet-textarea.cjs.entry.js +7 -7
  70. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  71. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +3 -3
  72. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +5 -5
  73. package/lib/cjs/duet-toolbar-item.cjs.entry.js +11 -5
  74. package/lib/cjs/duet-toolbar-link.cjs.entry.js +3 -3
  75. package/lib/cjs/duet-toolbar.cjs.entry.js +11 -5
  76. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +6 -6
  77. package/lib/cjs/duet-tooltip.cjs.entry.js +2 -2
  78. package/lib/cjs/duet-tray.cjs.entry.js +4 -4
  79. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +2 -2
  80. package/lib/cjs/duet-upload-item.cjs.entry.js +5 -5
  81. package/lib/cjs/duet-visually-hidden.cjs.entry.js +2 -2
  82. package/lib/cjs/duet.cjs.js +3 -3
  83. package/lib/cjs/{errorcodes.utils-6fe27aab.js → errorcodes.utils-79df4fcd.js} +1 -1
  84. package/lib/cjs/{focus-utils-b8926034.js → focus-utils-87585a09.js} +1 -1
  85. package/lib/cjs/{index-0c9fd2f8.js → index-290ab697.js} +1 -1
  86. package/lib/cjs/{language-utils-8f7743a1.js → language-utils-3372de6f.js} +1 -1
  87. package/lib/cjs/loader.cjs.js +3 -3
  88. package/lib/cjs/{slot-utils-85cd307f.js → slot-utils-8015a7e6.js} +1 -1
  89. package/lib/collection/components/duet-action-button/duet-action-button.js +2 -2
  90. package/lib/collection/components/duet-alert/duet-alert.js +1 -1
  91. package/lib/collection/components/duet-badge/duet-badge.js +2 -2
  92. package/lib/collection/components/duet-banner/duet-banner.js +1 -1
  93. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +4 -4
  94. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +2 -2
  95. package/lib/collection/components/duet-button/duet-button.js +5 -5
  96. package/lib/collection/components/duet-callout/duet-callout.js +2 -2
  97. package/lib/collection/components/duet-caption/duet-caption.js +1 -1
  98. package/lib/collection/components/duet-card/duet-card.js +3 -3
  99. package/lib/collection/components/duet-checkbox/duet-checkbox.js +3 -3
  100. package/lib/collection/components/duet-chip/duet-chip.js +6 -6
  101. package/lib/collection/components/duet-choice/duet-checkmark.js +2 -2
  102. package/lib/collection/components/duet-choice/duet-choice.js +3 -3
  103. package/lib/collection/components/duet-collapsible/duet-collapsible.js +3 -3
  104. package/lib/collection/components/duet-combobox/duet-combobox-select.js +4 -8
  105. package/lib/collection/components/duet-combobox/duet-combobox.css +2 -79
  106. package/lib/collection/components/duet-combobox/duet-combobox.js +38 -20
  107. package/lib/collection/components/duet-contact-card/duet-contact-card.js +2 -2
  108. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.js +1 -1
  109. package/lib/collection/components/duet-date-picker/duet-date-picker.js +40 -7
  110. package/lib/collection/components/duet-divider/duet-divider.js +1 -1
  111. package/lib/collection/components/duet-editable-table/duet-editable-table.js +5 -5
  112. package/lib/collection/components/duet-empty-state/duet-empty-state.js +1 -1
  113. package/lib/collection/components/duet-fieldset/duet-fieldset.js +3 -3
  114. package/lib/collection/components/duet-file-chooser/duet-file-chooser.js +1 -1
  115. package/lib/collection/components/duet-footer/duet-footer.js +7 -7
  116. package/lib/collection/components/duet-grid/duet-grid.js +3 -3
  117. package/lib/collection/components/duet-header/duet-header.js +15 -15
  118. package/lib/collection/components/duet-heading/duet-heading.js +1 -1
  119. package/lib/collection/components/duet-hero/duet-hero.js +5 -5
  120. package/lib/collection/components/duet-icon/duet-icon.js +3 -3
  121. package/lib/collection/components/duet-input/duet-input.js +8 -8
  122. package/lib/collection/components/duet-label/duet-label.js +2 -2
  123. package/lib/collection/components/duet-layout/duet-layout.css +24 -20
  124. package/lib/collection/components/duet-layout/duet-layout.js +5 -8
  125. package/lib/collection/components/duet-link/duet-link.js +2 -2
  126. package/lib/collection/components/duet-list/duet-list.js +4 -4
  127. package/lib/collection/components/duet-list-item/duet-list-item.js +2 -2
  128. package/lib/collection/components/duet-logo/duet-logo.js +2 -2
  129. package/lib/collection/components/duet-menu-bar/duet-menu-bar.css +2 -0
  130. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +3 -3
  131. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +2 -2
  132. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +4 -4
  133. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +2 -2
  134. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.js +2 -2
  135. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +2 -2
  136. package/lib/collection/components/duet-modal/duet-modal.js +10 -10
  137. package/lib/collection/components/duet-multiselect/duet-multiselect.js +11 -11
  138. package/lib/collection/components/duet-nav/duet-nav.js +1 -1
  139. package/lib/collection/components/duet-notification/duet-notification.js +2 -2
  140. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +3 -3
  141. package/lib/collection/components/duet-number-input/duet-number-input.js +4 -4
  142. package/lib/collection/components/duet-overlay/duet-overlay.js +2 -2
  143. package/lib/collection/components/duet-page-heading/duet-page-heading.js +2 -2
  144. package/lib/collection/components/duet-pagination/duet-pagination.js +13 -13
  145. package/lib/collection/components/duet-paragraph/duet-paragraph.js +5 -5
  146. package/lib/collection/components/duet-popup-menu/duet-popup-menu.js +45 -11
  147. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.css +8 -0
  148. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +28 -5
  149. package/lib/collection/components/duet-promo-card/duet-promo-card.js +2 -2
  150. package/lib/collection/components/duet-radio/duet-radio.js +3 -3
  151. package/lib/collection/components/duet-range-slider/duet-range-slider.js +2 -2
  152. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +3 -3
  153. package/lib/collection/components/duet-scrollable/duet-scrollable.js +5 -5
  154. package/lib/collection/components/duet-section-layout/duet-section-layout.css +24 -16
  155. package/lib/collection/components/duet-section-layout/duet-section-layout.js +3 -4
  156. package/lib/collection/components/duet-select/duet-select.js +5 -5
  157. package/lib/collection/components/duet-shaped-image/duet-shaped-image.js +2 -2
  158. package/lib/collection/components/duet-show-more/duet-show-more.js +3 -3
  159. package/lib/collection/components/duet-slideout/duet-slideout.js +5 -5
  160. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +1 -1
  161. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +2 -2
  162. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +6 -6
  163. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +4 -4
  164. package/lib/collection/components/duet-spacer/duet-spacer.js +3 -3
  165. package/lib/collection/components/duet-spinner/duet-spinner.js +3 -3
  166. package/lib/collection/components/duet-step/duet-step.js +2 -2
  167. package/lib/collection/components/duet-stepper/duet-stepper.js +2 -2
  168. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +5 -5
  169. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +4 -4
  170. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +2 -2
  171. package/lib/collection/components/duet-submenu-bar-item/duet-submenu-bar-item.js +1 -1
  172. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +1 -1
  173. package/lib/collection/components/duet-tab-group/duet-tab-group.js +10 -10
  174. package/lib/collection/components/duet-table/duet-table.js +2 -2
  175. package/lib/collection/components/duet-textarea/duet-textarea.js +9 -12
  176. package/lib/collection/components/duet-toggle/duet-toggle.js +1 -1
  177. package/lib/collection/components/duet-toolbar/duet-toolbar.css +10 -4
  178. package/lib/collection/components/duet-toolbar/duet-toolbar.js +12 -6
  179. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +4 -4
  180. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +2 -2
  181. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.css +28 -12
  182. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.js +12 -6
  183. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +2 -2
  184. package/lib/collection/components/duet-tooltip/duet-tooltip-button.js +2 -2
  185. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +2 -2
  186. package/lib/collection/components/duet-tooltip/duet-tooltip.js +1 -1
  187. package/lib/collection/components/duet-tray/duet-tray.js +2 -2
  188. package/lib/collection/components/duet-upload/duet-upload.js +16 -16
  189. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +1 -1
  190. package/lib/collection/components/duet-upload-item/duet-upload-item.js +4 -4
  191. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +1 -1
  192. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  193. package/lib/dist-custom-elements/duet-alert.js +1 -1
  194. package/lib/dist-custom-elements/duet-badge.js +1 -1
  195. package/lib/dist-custom-elements/duet-banner.js +3 -3
  196. package/lib/dist-custom-elements/duet-breadcrumb.js +7 -7
  197. package/lib/dist-custom-elements/duet-breadcrumbs.js +3 -3
  198. package/lib/dist-custom-elements/duet-button.js +1 -1
  199. package/lib/dist-custom-elements/duet-callout.js +4 -4
  200. package/lib/dist-custom-elements/duet-caption.js +1 -1
  201. package/lib/dist-custom-elements/duet-card.js +3 -3
  202. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  203. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  204. package/lib/dist-custom-elements/duet-chip.js +1 -1
  205. package/lib/dist-custom-elements/duet-choice-group.js +8 -8
  206. package/lib/dist-custom-elements/duet-choice.js +4 -4
  207. package/lib/dist-custom-elements/duet-collapsible.js +2 -2
  208. package/lib/dist-custom-elements/duet-combobox.js +78 -50
  209. package/lib/dist-custom-elements/duet-contact-card.js +10 -10
  210. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  211. package/lib/dist-custom-elements/duet-date-picker.js +49 -16
  212. package/lib/dist-custom-elements/duet-divider.js +1 -1
  213. package/lib/dist-custom-elements/duet-editable-table.js +7 -7
  214. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  215. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  216. package/lib/dist-custom-elements/duet-file-chooser.js +2 -2
  217. package/lib/dist-custom-elements/duet-footer.js +7 -7
  218. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  219. package/lib/dist-custom-elements/duet-grid.js +1 -1
  220. package/lib/dist-custom-elements/duet-header.js +8 -8
  221. package/lib/dist-custom-elements/duet-heading.js +1 -1
  222. package/lib/dist-custom-elements/duet-hero.js +9 -9
  223. package/lib/dist-custom-elements/duet-icon.js +1 -1
  224. package/lib/dist-custom-elements/duet-input.js +1 -1
  225. package/lib/dist-custom-elements/duet-label.js +1 -1
  226. package/lib/dist-custom-elements/duet-layout.js +6 -9
  227. package/lib/dist-custom-elements/duet-link.js +1 -1
  228. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  229. package/lib/dist-custom-elements/duet-list.js +1 -1
  230. package/lib/dist-custom-elements/duet-logo.js +1 -1
  231. package/lib/dist-custom-elements/duet-menu-bar-button.js +4 -4
  232. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +4 -4
  233. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +6 -6
  234. package/lib/dist-custom-elements/duet-menu-bar-item.js +4 -4
  235. package/lib/dist-custom-elements/duet-menu-bar-link.js +4 -4
  236. package/lib/dist-custom-elements/duet-menu-bar.js +5 -5
  237. package/lib/dist-custom-elements/duet-modal.js +14 -14
  238. package/lib/dist-custom-elements/duet-multiselect.js +14 -14
  239. package/lib/dist-custom-elements/duet-nav.js +2 -2
  240. package/lib/dist-custom-elements/duet-notification-drawer.js +6 -6
  241. package/lib/dist-custom-elements/duet-notification.js +4 -4
  242. package/lib/dist-custom-elements/duet-number-input.js +11 -11
  243. package/lib/dist-custom-elements/duet-overlay.js +1 -1
  244. package/lib/dist-custom-elements/duet-page-heading.js +4 -4
  245. package/lib/dist-custom-elements/duet-pagination.js +24 -24
  246. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  247. package/lib/dist-custom-elements/duet-popup-menu-item.js +1 -111
  248. package/lib/dist-custom-elements/duet-popup-menu.js +1 -277
  249. package/lib/dist-custom-elements/duet-progress.js +1 -1
  250. package/lib/dist-custom-elements/duet-promo-card.js +5 -5
  251. package/lib/dist-custom-elements/duet-radio-group.js +8 -8
  252. package/lib/dist-custom-elements/duet-radio.js +1 -1
  253. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  254. package/lib/dist-custom-elements/duet-range-stepper.js +6 -6
  255. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  256. package/lib/dist-custom-elements/duet-section-layout.js +5 -6
  257. package/lib/dist-custom-elements/duet-select.js +1 -1
  258. package/lib/dist-custom-elements/duet-shaped-image.js +3 -3
  259. package/lib/dist-custom-elements/duet-show-more.js +1 -1
  260. package/lib/dist-custom-elements/duet-slideout-lang.js +3 -3
  261. package/lib/dist-custom-elements/duet-slideout-link.js +4 -4
  262. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +6 -6
  263. package/lib/dist-custom-elements/duet-slideout-panel.js +8 -8
  264. package/lib/dist-custom-elements/duet-slideout.js +7 -7
  265. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  266. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  267. package/lib/dist-custom-elements/duet-step.js +4 -4
  268. package/lib/dist-custom-elements/duet-stepper.js +3 -3
  269. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +4 -4
  270. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +6 -6
  271. package/lib/dist-custom-elements/duet-submenu-bar-item.js +3 -3
  272. package/lib/dist-custom-elements/duet-submenu-bar-link.js +3 -3
  273. package/lib/dist-custom-elements/duet-submenu-bar.js +8 -8
  274. package/lib/dist-custom-elements/duet-tab-group.js +18 -18
  275. package/lib/dist-custom-elements/duet-tab.js +1 -1
  276. package/lib/dist-custom-elements/duet-table.js +1 -1
  277. package/lib/dist-custom-elements/duet-textarea.js +16 -15
  278. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  279. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +4 -4
  280. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +6 -6
  281. package/lib/dist-custom-elements/duet-toolbar-item.js +12 -6
  282. package/lib/dist-custom-elements/duet-toolbar-link.js +4 -4
  283. package/lib/dist-custom-elements/duet-toolbar.js +11 -5
  284. package/lib/dist-custom-elements/duet-tooltip-button.js +1 -1
  285. package/lib/dist-custom-elements/duet-tooltip-popup.js +1 -1
  286. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  287. package/lib/dist-custom-elements/duet-tray.js +5 -5
  288. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  289. package/lib/dist-custom-elements/duet-upload-item.js +1 -1
  290. package/lib/dist-custom-elements/duet-upload.js +21 -21
  291. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  292. package/lib/dist-custom-elements/index.js +1 -1
  293. package/lib/dist-custom-elements/{p-33a40488.js → p-0403f6da.js} +3 -3
  294. package/lib/dist-custom-elements/{p-bcc759f6.js → p-0bb6686b.js} +4 -4
  295. package/lib/dist-custom-elements/{p-9587e63e.js → p-0fb7a267.js} +2 -2
  296. package/lib/dist-custom-elements/{p-5d15bc28.js → p-10f0fddb.js} +3 -3
  297. package/lib/dist-custom-elements/{p-976cffee.js → p-1dbac987.js} +8 -8
  298. package/lib/dist-custom-elements/{p-1a0717b2.js → p-20420946.js} +3 -3
  299. package/lib/dist-custom-elements/{p-6ded6ab0.js → p-2e9f301d.js} +5 -5
  300. package/lib/dist-custom-elements/{p-fa97c257.js → p-33b260ff.js} +1 -1
  301. package/lib/dist-custom-elements/p-3bc3ac8a.js +119 -0
  302. package/lib/dist-custom-elements/{p-78c42188.js → p-3f00c32a.js} +1 -1
  303. package/lib/dist-custom-elements/{p-4e2ad0e0.js → p-43a7f93f.js} +2 -2
  304. package/lib/dist-custom-elements/{p-08ba0c8e.js → p-43f6f1e6.js} +2 -2
  305. package/lib/dist-custom-elements/{p-c25a991b.js → p-4e532364.js} +1 -1
  306. package/lib/dist-custom-elements/{p-f5199769.js → p-52535b60.js} +12 -12
  307. package/lib/dist-custom-elements/{p-4c7eab86.js → p-550504de.js} +3 -3
  308. package/lib/dist-custom-elements/{p-eca652e9.js → p-684cca0d.js} +3 -3
  309. package/lib/dist-custom-elements/{p-ccc48f38.js → p-6a5c7011.js} +10 -10
  310. package/lib/dist-custom-elements/{p-2f3cb54b.js → p-6d83f337.js} +4 -4
  311. package/lib/dist-custom-elements/{p-1195ba92.js → p-7e6cdbe3.js} +1 -1
  312. package/lib/dist-custom-elements/{p-f474833e.js → p-8b0dee3e.js} +1 -1
  313. package/lib/dist-custom-elements/{p-092cf346.js → p-8e557451.js} +2 -2
  314. package/lib/dist-custom-elements/{p-003f07d0.js → p-936d5746.js} +2 -2
  315. package/lib/dist-custom-elements/{p-151ba4af.js → p-95971567.js} +1 -1
  316. package/lib/dist-custom-elements/{p-d656dd95.js → p-ae262553.js} +2 -2
  317. package/lib/dist-custom-elements/{p-717f62de.js → p-b3773c10.js} +3 -3
  318. package/lib/dist-custom-elements/{p-5faf2571.js → p-bdeb5fba.js} +10 -10
  319. package/lib/dist-custom-elements/{p-41222b8d.js → p-c775f5b9.js} +1 -1
  320. package/lib/dist-custom-elements/{p-203e91c1.js → p-cdf8041c.js} +7 -7
  321. package/lib/dist-custom-elements/{p-13259f25.js → p-d6a8840d.js} +5 -5
  322. package/lib/dist-custom-elements/{p-7a4e27a2.js → p-e0913e76.js} +6 -6
  323. package/lib/dist-custom-elements/{p-6b4d1a90.js → p-e416ccec.js} +3 -3
  324. package/lib/dist-custom-elements/{p-2ad70bfb.js → p-e5f6aaab.js} +2 -2
  325. package/lib/dist-custom-elements/{p-7f7ad9b6.js → p-e7918410.js} +5 -5
  326. package/lib/dist-custom-elements/{p-f58dfec6.js → p-e8d60da0.js} +2 -2
  327. package/lib/dist-custom-elements/{p-0f98be73.js → p-e9361277.js} +4 -4
  328. package/lib/{esm/duet-popup-menu.entry.js → dist-custom-elements/p-ec4d6856.js} +68 -19
  329. package/lib/dist-custom-elements/{p-d7d32738.js → p-ecc803b3.js} +1 -1
  330. package/lib/dist-custom-elements/{p-7ecba39f.js → p-f055bb61.js} +3 -3
  331. package/lib/dist-custom-elements/{p-8027f9ce.js → p-f2f2bcca.js} +4 -4
  332. package/lib/duet/duet.esm.js +1 -1
  333. package/lib/duet/duet.js +1 -1
  334. package/lib/duet/{p-022f9a30.entry.js → p-002c99c1.entry.js} +1 -1
  335. package/lib/duet/p-0258c8de.entry.js +4 -0
  336. package/lib/duet/{p-1512ddad.system.entry.js → p-04734a93.system.entry.js} +2 -2
  337. package/lib/duet/{p-5799fe5f.system.entry.js → p-04efd66c.system.entry.js} +2 -2
  338. package/lib/duet/p-06051dcb.entry.js +4 -0
  339. package/lib/duet/{p-78b5469b.system.entry.js → p-0660a0ef.system.entry.js} +1 -1
  340. package/lib/duet/{p-df0168af.entry.js → p-07293953.entry.js} +1 -1
  341. package/lib/duet/{p-78fe82c7.system.js → p-0740edce.system.js} +1 -1
  342. package/lib/duet/{p-8707a699.system.entry.js → p-083353cb.system.entry.js} +1 -1
  343. package/lib/duet/{p-2725220b.system.entry.js → p-0bfe2f53.system.entry.js} +1 -1
  344. package/lib/duet/p-0bfee3a1.system.entry.js +4 -0
  345. package/lib/duet/{p-06ad5d11.system.js → p-0c12d3cd.system.js} +1 -1
  346. package/lib/duet/{p-2c40be98.system.entry.js → p-0ce0c979.system.entry.js} +1 -1
  347. package/lib/duet/p-0e1e68bc.system.entry.js +4 -0
  348. package/lib/duet/{p-45746854.system.js → p-0e2c37c7.system.js} +1 -1
  349. package/lib/duet/{p-e5ecf940.entry.js → p-0fdbde27.entry.js} +1 -1
  350. package/lib/duet/{p-c62788a1.system.entry.js → p-11e4c749.system.entry.js} +1 -1
  351. package/lib/duet/{p-0bd39158.entry.js → p-17077f57.entry.js} +1 -1
  352. package/lib/duet/p-17b64351.system.entry.js +4 -0
  353. package/lib/duet/{p-b6269765.entry.js → p-18917d49.entry.js} +1 -1
  354. package/lib/duet/{p-c6584315.system.entry.js → p-18cd13be.system.entry.js} +1 -1
  355. package/lib/duet/{p-ae095513.entry.js → p-18e6e7fe.entry.js} +1 -1
  356. package/lib/duet/{p-d78d6df5.entry.js → p-199d505a.entry.js} +1 -1
  357. package/lib/duet/{p-20490634.system.entry.js → p-1abf7d11.system.entry.js} +1 -1
  358. package/lib/duet/{p-6b76b443.entry.js → p-1db515c6.entry.js} +1 -1
  359. package/lib/duet/{p-18b40fa3.system.entry.js → p-210715c1.system.entry.js} +1 -1
  360. package/lib/duet/{p-3fb27027.system.entry.js → p-21ad7b3a.system.entry.js} +1 -1
  361. package/lib/duet/{p-11a2ab97.system.entry.js → p-231c6724.system.entry.js} +1 -1
  362. package/lib/duet/{p-c646d135.entry.js → p-277fd80e.entry.js} +1 -1
  363. package/lib/duet/{p-f0806e36.system.entry.js → p-27aa38b5.system.entry.js} +1 -1
  364. package/lib/duet/{p-dd813d4e.entry.js → p-281fa7a1.entry.js} +1 -1
  365. package/lib/duet/{p-40c557ff.system.entry.js → p-29072d2d.system.entry.js} +1 -1
  366. package/lib/duet/{p-ccc30136.system.entry.js → p-2a2f7fe9.system.entry.js} +2 -2
  367. package/lib/duet/{p-9bfeb191.entry.js → p-2b790430.entry.js} +1 -1
  368. package/lib/duet/{p-e35347a0.system.entry.js → p-357fba0e.system.entry.js} +1 -1
  369. package/lib/duet/{p-ac0130a8.entry.js → p-372b1880.entry.js} +1 -1
  370. package/lib/duet/{p-3720efca.system.entry.js → p-3958bcfa.system.entry.js} +1 -1
  371. package/lib/duet/{p-e219a93f.entry.js → p-39630105.entry.js} +1 -1
  372. package/lib/duet/{p-b5074ff6.entry.js → p-39dab293.entry.js} +1 -1
  373. package/lib/duet/{p-8ff34272.system.entry.js → p-3daaefaf.system.entry.js} +1 -1
  374. package/lib/duet/{p-8afd53b2.system.entry.js → p-40b33a43.system.entry.js} +1 -1
  375. package/lib/duet/{p-e18e5311.system.entry.js → p-40ee32f0.system.entry.js} +1 -1
  376. package/lib/duet/p-410c17b6.system.entry.js +4 -0
  377. package/lib/duet/{p-cbbeefba.system.entry.js → p-434bda24.system.entry.js} +1 -1
  378. package/lib/duet/{p-920ab643.entry.js → p-4407ea5a.entry.js} +1 -1
  379. package/lib/duet/{p-20e0094b.entry.js → p-4451f3eb.entry.js} +1 -1
  380. package/lib/duet/{p-4b5fdaa5.entry.js → p-44c19fe9.entry.js} +1 -1
  381. package/lib/duet/{p-a209fed5.entry.js → p-44d2dbb7.entry.js} +1 -1
  382. package/lib/duet/{p-335bfe63.entry.js → p-44ecb79f.entry.js} +1 -1
  383. package/lib/duet/p-4543f9e7.entry.js +4 -0
  384. package/lib/duet/{p-07802adc.system.entry.js → p-477d4c2a.system.entry.js} +1 -1
  385. package/lib/duet/p-48836fcc.system.entry.js +4 -0
  386. package/lib/duet/{p-b2b147c9.entry.js → p-49051d57.entry.js} +1 -1
  387. package/lib/duet/{p-e0e090bb.system.entry.js → p-49e6e791.system.entry.js} +2 -2
  388. package/lib/duet/{p-a79114c3.system.entry.js → p-4a59b12a.system.entry.js} +1 -1
  389. package/lib/duet/{p-bca879ba.system.entry.js → p-4cc5c937.system.entry.js} +1 -1
  390. package/lib/duet/{p-b832a5eb.system.entry.js → p-4e485c1c.system.entry.js} +1 -1
  391. package/lib/duet/{p-a3e5abb2.entry.js → p-50f8076d.entry.js} +1 -1
  392. package/lib/duet/{p-87b3fb3e.system.entry.js → p-51675591.system.entry.js} +1 -1
  393. package/lib/duet/{p-01e57a3b.system.entry.js → p-522e0468.system.entry.js} +1 -1
  394. package/lib/duet/{p-2aa3dfc5.entry.js → p-52fc5c3b.entry.js} +1 -1
  395. package/lib/duet/{p-20b2b9af.system.entry.js → p-54460ce3.system.entry.js} +1 -1
  396. package/lib/duet/{p-18494c5d.entry.js → p-546ca397.entry.js} +1 -1
  397. package/lib/duet/{p-f1cb7fa4.entry.js → p-54d7e599.entry.js} +1 -1
  398. package/lib/duet/{p-b7453f14.entry.js → p-554cff02.entry.js} +1 -1
  399. package/lib/duet/{p-9e927d04.system.entry.js → p-5839bb7a.system.entry.js} +1 -1
  400. package/lib/duet/{p-f80687b8.entry.js → p-58400179.entry.js} +1 -1
  401. package/lib/duet/{p-a56e060b.entry.js → p-584be931.entry.js} +1 -1
  402. package/lib/duet/{p-49da095c.system.entry.js → p-5899db41.system.entry.js} +1 -1
  403. package/lib/duet/{p-9fd3ced5.system.entry.js → p-5a8ca9f7.system.entry.js} +1 -1
  404. package/lib/duet/{p-b4ed38ea.system.entry.js → p-5c5202c1.system.entry.js} +1 -1
  405. package/lib/duet/p-5e0a2a78.system.entry.js +4 -0
  406. package/lib/duet/{p-21429748.system.entry.js → p-5e46b67c.system.entry.js} +1 -1
  407. package/lib/duet/{p-b08d87b0.system.entry.js → p-5eda45d0.system.entry.js} +1 -1
  408. package/lib/duet/{p-c331a8ef.system.entry.js → p-6014d518.system.entry.js} +1 -1
  409. package/lib/duet/{p-be8aa52a.entry.js → p-6119ef0a.entry.js} +1 -1
  410. package/lib/duet/{p-c01aa549.system.entry.js → p-61fe999e.system.entry.js} +1 -1
  411. package/lib/duet/{p-f52d988b.entry.js → p-66da99e1.entry.js} +1 -1
  412. package/lib/duet/p-681afce7.js +4 -0
  413. package/lib/duet/{p-63f481c7.system.entry.js → p-69bb93ee.system.entry.js} +1 -1
  414. package/lib/duet/{p-84f32ade.system.entry.js → p-6b2a8199.system.entry.js} +2 -2
  415. package/lib/duet/p-6db337db.entry.js +4 -0
  416. package/lib/duet/{p-7b93c24f.entry.js → p-6f1fc369.entry.js} +1 -1
  417. package/lib/duet/{p-494fc947.entry.js → p-73f290b1.entry.js} +1 -1
  418. package/lib/duet/p-747505e8.entry.js +4 -0
  419. package/lib/duet/p-765f640d.js +4 -0
  420. package/lib/duet/{p-d30a413a.system.entry.js → p-77009e02.system.entry.js} +1 -1
  421. package/lib/duet/{p-6fc66353.system.entry.js → p-7776b2e3.system.entry.js} +1 -1
  422. package/lib/duet/{p-7f779fb0.system.entry.js → p-77bd02b8.system.entry.js} +1 -1
  423. package/lib/duet/{p-c106aa51.entry.js → p-7bc8a7ba.entry.js} +1 -1
  424. package/lib/duet/{p-36f89415.system.entry.js → p-7ca5fee5.system.entry.js} +1 -1
  425. package/lib/duet/{p-251392d6.entry.js → p-80ebdba0.entry.js} +1 -1
  426. package/lib/duet/{p-593b4911.system.entry.js → p-82557326.system.entry.js} +1 -1
  427. package/lib/duet/p-83dc6278.entry.js +4 -0
  428. package/lib/duet/{p-8a162701.js → p-8483586d.js} +1 -1
  429. package/lib/duet/{p-eda3baff.entry.js → p-8575f97e.entry.js} +1 -1
  430. package/lib/duet/{p-a0699de6.system.entry.js → p-86ddbb9f.system.entry.js} +1 -1
  431. package/lib/duet/{p-e0dc3a1e.entry.js → p-88a370ef.entry.js} +1 -1
  432. package/lib/duet/{p-8464bb3e.system.entry.js → p-89bc2c76.system.entry.js} +1 -1
  433. package/lib/duet/{p-d7a4a799.system.entry.js → p-8d6d407f.system.entry.js} +1 -1
  434. package/lib/duet/{p-e5a5248f.entry.js → p-8d7d23ca.entry.js} +1 -1
  435. package/lib/duet/{p-888cf6df.system.entry.js → p-8e8ac460.system.entry.js} +1 -1
  436. package/lib/duet/{p-382da2ee.entry.js → p-907e01e1.entry.js} +1 -1
  437. package/lib/duet/{p-14ffc1f0.entry.js → p-90e39ad6.entry.js} +1 -1
  438. package/lib/duet/{p-2b92ea13.entry.js → p-912860f0.entry.js} +1 -1
  439. package/lib/duet/{p-6e904090.entry.js → p-98d9fcfc.entry.js} +1 -1
  440. package/lib/duet/{p-deef8ec0.system.entry.js → p-995b0ea5.system.entry.js} +1 -1
  441. package/lib/duet/{p-a7e281f2.system.entry.js → p-9b70444f.system.entry.js} +2 -2
  442. package/lib/duet/{p-4d0be2e2.entry.js → p-9bbdecc7.entry.js} +1 -1
  443. package/lib/duet/{p-36dab1b1.entry.js → p-9df917b9.entry.js} +1 -1
  444. package/lib/duet/{p-7d7efba3.entry.js → p-9f08395f.entry.js} +1 -1
  445. package/lib/duet/p-9fa9db50.entry.js +4 -0
  446. package/lib/duet/{p-624552e4.system.js → p-9fdb1552.system.js} +1 -1
  447. package/lib/duet/{p-b35f871e.system.entry.js → p-a2023033.system.entry.js} +1 -1
  448. package/lib/duet/{p-77af0e90.system.entry.js → p-a25f447e.system.entry.js} +1 -1
  449. package/lib/duet/{p-b7166c29.system.entry.js → p-a37a7f5f.system.entry.js} +1 -1
  450. package/lib/duet/{p-5765427b.entry.js → p-a4d2aea7.entry.js} +1 -1
  451. package/lib/duet/{p-c91b3c9f.system.entry.js → p-a4d589fb.system.entry.js} +2 -2
  452. package/lib/duet/p-a623fa7e.entry.js +4 -0
  453. package/lib/duet/{p-f492378f.entry.js → p-a696a103.entry.js} +1 -1
  454. package/lib/duet/{p-17279a7b.entry.js → p-a710fd68.entry.js} +1 -1
  455. package/lib/duet/{p-087fbd73.entry.js → p-a89f11eb.entry.js} +1 -1
  456. package/lib/duet/{p-0ce89e2e.system.entry.js → p-ab487d80.system.entry.js} +1 -1
  457. package/lib/duet/{p-ce1b8c29.entry.js → p-ab5f9de6.entry.js} +1 -1
  458. package/lib/duet/{p-bb027e2f.entry.js → p-acd9cb61.entry.js} +1 -1
  459. package/lib/duet/{p-faf67509.js → p-ae8d9deb.js} +1 -1
  460. package/lib/duet/p-af311c80.entry.js +4 -0
  461. package/lib/duet/{p-1362dce1.entry.js → p-b01e1603.entry.js} +1 -1
  462. package/lib/duet/p-b24bbdc0.entry.js +4 -0
  463. package/lib/duet/{p-5395dceb.entry.js → p-b5329846.entry.js} +1 -1
  464. package/lib/duet/p-b5dabfe2.entry.js +4 -0
  465. package/lib/duet/{p-198dd1e6.entry.js → p-b69d6f0f.entry.js} +1 -1
  466. package/lib/duet/{p-74bfeccb.js → p-b6e8a587.js} +1 -1
  467. package/lib/duet/{p-64c3bff5.system.entry.js → p-b7efe3b3.system.entry.js} +1 -1
  468. package/lib/duet/{p-e6517fd1.system.entry.js → p-b97c6e73.system.entry.js} +1 -1
  469. package/lib/duet/{p-7ed9e2a8.entry.js → p-b9ca5786.entry.js} +1 -1
  470. package/lib/duet/{p-8767b8b2.system.entry.js → p-ba7657d2.system.entry.js} +1 -1
  471. package/lib/duet/p-bb896f73.system.js +4 -0
  472. package/lib/duet/{p-64901815.entry.js → p-bc188b4d.entry.js} +1 -1
  473. package/lib/duet/{p-38c82b27.entry.js → p-bd60816f.entry.js} +1 -1
  474. package/lib/duet/{p-6b1eff48.system.entry.js → p-be7c8c61.system.entry.js} +1 -1
  475. package/lib/duet/{p-276354d7.system.entry.js → p-bff7ece1.system.entry.js} +1 -1
  476. package/lib/duet/{p-66819401.system.entry.js → p-c02efffc.system.entry.js} +1 -1
  477. package/lib/duet/p-c162e573.system.entry.js +4 -0
  478. package/lib/duet/{p-a843b8a9.system.entry.js → p-c1e4c10f.system.entry.js} +1 -1
  479. package/lib/duet/{p-ff92b024.system.entry.js → p-c999ea8d.system.entry.js} +1 -1
  480. package/lib/duet/{p-a9ed4cb0.entry.js → p-cb7626f8.entry.js} +1 -1
  481. package/lib/duet/{p-7cb4b92c.system.entry.js → p-cb833d34.system.entry.js} +1 -1
  482. package/lib/duet/p-d19b027a.system.js +4 -0
  483. package/lib/duet/p-d1c6861d.system.entry.js +4 -0
  484. package/lib/duet/{p-bb153ecd.entry.js → p-d2b0c35d.entry.js} +1 -1
  485. package/lib/duet/p-d40e8899.system.js +4 -0
  486. package/lib/duet/p-d64e3229.entry.js +4 -0
  487. package/lib/duet/p-d7d9526b.entry.js +4 -0
  488. package/lib/duet/{p-4649b4a3.entry.js → p-d9f0722f.entry.js} +1 -1
  489. package/lib/duet/{p-a2301b59.system.entry.js → p-da60c177.system.entry.js} +1 -1
  490. package/lib/duet/{p-2c4294f8.system.entry.js → p-dd48441b.system.entry.js} +1 -1
  491. package/lib/duet/{p-92466b4a.system.entry.js → p-deaa6b23.system.entry.js} +1 -1
  492. package/lib/duet/{p-fa1bebb0.entry.js → p-e021729d.entry.js} +1 -1
  493. package/lib/duet/{p-fb3d3226.system.entry.js → p-e3bf718e.system.entry.js} +1 -1
  494. package/lib/duet/{p-07df4f67.system.entry.js → p-e43ff11c.system.entry.js} +1 -1
  495. package/lib/duet/{p-b85b3fb8.entry.js → p-e8daf1e2.entry.js} +1 -1
  496. package/lib/duet/{p-ca7c0e04.entry.js → p-ec809c70.entry.js} +1 -1
  497. package/lib/duet/p-ed4d1a8b.js +4 -0
  498. package/lib/duet/{p-0fa9b797.entry.js → p-ede1eb73.entry.js} +1 -1
  499. package/lib/duet/{p-c127c18e.entry.js → p-ee6bfb1e.entry.js} +1 -1
  500. package/lib/duet/{p-26c32975.entry.js → p-f00a57c0.entry.js} +1 -1
  501. package/lib/duet/{p-a91a3cf2.system.entry.js → p-f3a6603e.system.entry.js} +1 -1
  502. package/lib/duet/{p-1f66ca2d.entry.js → p-f4b2f2e8.entry.js} +1 -1
  503. package/lib/duet/{p-1c4895df.entry.js → p-f7845fea.entry.js} +1 -1
  504. package/lib/duet/{p-9965b2bb.system.entry.js → p-fef50246.system.entry.js} +1 -1
  505. package/lib/esm/{app-globals-96009d83.js → app-globals-01df0e2e.js} +1 -1
  506. package/lib/esm/duet-action-button.entry.js +2 -2
  507. package/lib/esm/duet-alert.entry.js +3 -3
  508. package/lib/esm/duet-badge.entry.js +3 -3
  509. package/lib/esm/duet-banner.entry.js +2 -2
  510. package/lib/esm/duet-breadcrumb.entry.js +6 -6
  511. package/lib/esm/duet-breadcrumbs.entry.js +4 -4
  512. package/lib/esm/duet-button_2.entry.js +4 -4
  513. package/lib/esm/duet-callout.entry.js +4 -4
  514. package/lib/esm/duet-caption_4.entry.js +6 -6
  515. package/lib/esm/duet-card.entry.js +1 -1
  516. package/lib/esm/duet-checkbox.entry.js +1 -1
  517. package/lib/esm/duet-checkmark.entry.js +3 -3
  518. package/lib/esm/{duet-chip.entry.js → duet-chip_3.entry.js} +327 -3
  519. package/lib/esm/duet-choice_2.entry.js +3 -3
  520. package/lib/esm/duet-collapsible.entry.js +2 -2
  521. package/lib/esm/duet-combobox.entry.js +42 -32
  522. package/lib/esm/duet-contact-card.entry.js +4 -4
  523. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  524. package/lib/esm/duet-date-picker.entry.js +38 -6
  525. package/lib/esm/duet-divider_2.entry.js +2 -2
  526. package/lib/esm/duet-editable-table_3.entry.js +7 -7
  527. package/lib/esm/duet-empty-state.entry.js +1 -1
  528. package/lib/esm/duet-fieldset.entry.js +5 -5
  529. package/lib/esm/duet-file-chooser.entry.js +1 -1
  530. package/lib/esm/duet-footer.entry.js +3 -3
  531. package/lib/esm/duet-grid_2.entry.js +1 -1
  532. package/lib/esm/duet-header_2.entry.js +3 -3
  533. package/lib/esm/duet-hero.entry.js +3 -3
  534. package/lib/esm/duet-icon.entry.js +4 -4
  535. package/lib/esm/duet-input_2.entry.js +3 -3
  536. package/lib/esm/duet-layout.entry.js +7 -10
  537. package/lib/esm/duet-list_2.entry.js +4 -4
  538. package/lib/esm/duet-menu-bar-button.entry.js +3 -3
  539. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +3 -3
  540. package/lib/esm/duet-menu-bar-dropdown.entry.js +5 -5
  541. package/lib/esm/duet-menu-bar-item.entry.js +3 -3
  542. package/lib/esm/duet-menu-bar-link.entry.js +3 -3
  543. package/lib/esm/duet-menu-bar.entry.js +5 -5
  544. package/lib/esm/duet-modal.entry.js +10 -10
  545. package/lib/esm/duet-multiselect.entry.js +8 -8
  546. package/lib/esm/duet-nav.entry.js +2 -2
  547. package/lib/esm/duet-notification_2.entry.js +6 -6
  548. package/lib/esm/duet-number-input.entry.js +3 -3
  549. package/lib/esm/duet-overlay.entry.js +2 -2
  550. package/lib/esm/duet-page-heading.entry.js +3 -3
  551. package/lib/esm/duet-pagination_2.entry.js +15 -15
  552. package/lib/esm/duet-progress.entry.js +2 -2
  553. package/lib/esm/duet-promo-card.entry.js +4 -4
  554. package/lib/esm/duet-radio_2.entry.js +2 -2
  555. package/lib/esm/duet-range-slider.entry.js +1 -1
  556. package/lib/esm/duet-scrollable_3.entry.js +13 -13
  557. package/lib/esm/duet-section-layout.entry.js +5 -6
  558. package/lib/esm/duet-select.entry.js +2 -2
  559. package/lib/esm/duet-shaped-image.entry.js +3 -3
  560. package/lib/esm/duet-show-more.entry.js +4 -4
  561. package/lib/esm/duet-slideout-lang.entry.js +3 -3
  562. package/lib/esm/duet-slideout-link.entry.js +3 -3
  563. package/lib/esm/duet-slideout-panel-dropdown.entry.js +5 -5
  564. package/lib/esm/duet-slideout-panel.entry.js +10 -10
  565. package/lib/esm/duet-slideout.entry.js +8 -8
  566. package/lib/esm/duet-step_2.entry.js +2 -2
  567. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +3 -3
  568. package/lib/esm/duet-submenu-bar-dropdown.entry.js +5 -5
  569. package/lib/esm/duet-submenu-bar-item.entry.js +2 -2
  570. package/lib/esm/duet-submenu-bar-link.entry.js +2 -2
  571. package/lib/esm/duet-submenu-bar.entry.js +6 -6
  572. package/lib/esm/duet-textarea.entry.js +7 -7
  573. package/lib/esm/duet-toggle.entry.js +1 -1
  574. package/lib/esm/duet-toolbar-dropdown-link.entry.js +3 -3
  575. package/lib/esm/duet-toolbar-dropdown.entry.js +5 -5
  576. package/lib/esm/duet-toolbar-item.entry.js +11 -5
  577. package/lib/esm/duet-toolbar-link.entry.js +3 -3
  578. package/lib/esm/duet-toolbar.entry.js +11 -5
  579. package/lib/esm/duet-tooltip-button_2.entry.js +6 -6
  580. package/lib/esm/duet-tooltip.entry.js +2 -2
  581. package/lib/esm/duet-tray.entry.js +4 -4
  582. package/lib/esm/duet-upload-aria-status.entry.js +2 -2
  583. package/lib/esm/duet-upload-item.entry.js +5 -5
  584. package/lib/esm/duet-visually-hidden.entry.js +2 -2
  585. package/lib/esm/duet.js +4 -4
  586. package/lib/esm/{errorcodes.utils-568ea028.js → errorcodes.utils-ac65ace8.js} +1 -1
  587. package/lib/esm/{focus-utils-003541f7.js → focus-utils-3e81bca4.js} +1 -1
  588. package/lib/esm/{index-bbae2d5d.js → index-5d196317.js} +1 -1
  589. package/lib/esm/{language-utils-5a2b4259.js → language-utils-97f0a1bb.js} +1 -1
  590. package/lib/esm/loader.js +4 -4
  591. package/lib/esm/{slot-utils-0a3b9dfc.js → slot-utils-4442cc08.js} +1 -1
  592. package/lib/esm-es5/{app-globals-96009d83.js → app-globals-01df0e2e.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 +1 -1
  600. package/lib/esm-es5/duet-callout.entry.js +1 -1
  601. package/lib/esm-es5/duet-caption_4.entry.js +2 -2
  602. package/lib/esm-es5/duet-card.entry.js +1 -1
  603. package/lib/esm-es5/duet-checkbox.entry.js +2 -2
  604. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  605. package/lib/esm-es5/duet-chip_3.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 +2 -2
  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 +2 -2
  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 +1 -1
  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 +1 -1
  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 +2 -2
  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 +2 -2
  628. package/lib/esm-es5/duet-menu-bar-item.entry.js +2 -2
  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 +1 -1
  635. package/lib/esm-es5/duet-number-input.entry.js +2 -2
  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-progress.entry.js +1 -1
  640. package/lib/esm-es5/duet-promo-card.entry.js +2 -2
  641. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  642. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  643. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  644. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  645. package/lib/esm-es5/duet-select.entry.js +1 -1
  646. package/lib/esm-es5/duet-shaped-image.entry.js +1 -1
  647. package/lib/esm-es5/duet-show-more.entry.js +1 -1
  648. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  649. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  650. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +2 -2
  651. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  652. package/lib/esm-es5/duet-slideout.entry.js +1 -1
  653. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  654. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  655. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  656. package/lib/esm-es5/duet-submenu-bar-item.entry.js +1 -1
  657. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  658. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  659. package/lib/esm-es5/duet-textarea.entry.js +2 -2
  660. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  661. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  662. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  663. package/lib/esm-es5/duet-toolbar-item.entry.js +2 -2
  664. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  665. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  666. package/lib/esm-es5/duet-tooltip-button_2.entry.js +1 -1
  667. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  668. package/lib/esm-es5/duet-tray.entry.js +1 -1
  669. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  670. package/lib/esm-es5/duet-upload-item.entry.js +2 -2
  671. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  672. package/lib/esm-es5/duet.js +1 -1
  673. package/lib/esm-es5/{errorcodes.utils-568ea028.js → errorcodes.utils-ac65ace8.js} +1 -1
  674. package/lib/esm-es5/focus-utils-3e81bca4.js +4 -0
  675. package/lib/esm-es5/{index-bbae2d5d.js → index-5d196317.js} +1 -1
  676. package/lib/esm-es5/{language-utils-5a2b4259.js → language-utils-97f0a1bb.js} +1 -1
  677. package/lib/esm-es5/loader.js +1 -1
  678. package/lib/esm-es5/{slot-utils-0a3b9dfc.js → slot-utils-4442cc08.js} +1 -1
  679. package/lib/types/components/duet-combobox/duet-combobox-select.d.ts +2 -1
  680. package/lib/types/components/duet-combobox/duet-combobox.d.ts +3 -1
  681. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +3 -1
  682. package/lib/types/components/duet-popup-menu/duet-popup-menu.d.ts +7 -2
  683. package/lib/types/components/duet-popup-menu-item/duet-popup-menu-item.d.ts +6 -1
  684. package/lib/types/components/duet-toolbar/duet-toolbar.d.ts +2 -2
  685. package/lib/types/components/duet-toolbar-item/duet-toolbar-item.d.ts +2 -2
  686. package/lib/types/components.d.ts +23 -14
  687. package/package.json +4 -4
  688. package/lib/cjs/duet-popup-menu-item.cjs.entry.js +0 -83
  689. package/lib/cjs/duet-popup-menu.cjs.entry.js +0 -250
  690. package/lib/duet/p-0d0aa77d.entry.js +0 -4
  691. package/lib/duet/p-117dff79.entry.js +0 -4
  692. package/lib/duet/p-26f57aa1.entry.js +0 -4
  693. package/lib/duet/p-389cd1f2.js +0 -4
  694. package/lib/duet/p-3f4a41a0.entry.js +0 -4
  695. package/lib/duet/p-49ba4a7f.system.entry.js +0 -4
  696. package/lib/duet/p-4efba746.system.entry.js +0 -4
  697. package/lib/duet/p-613b429d.system.entry.js +0 -4
  698. package/lib/duet/p-6435fa0f.system.entry.js +0 -4
  699. package/lib/duet/p-69f68431.entry.js +0 -4
  700. package/lib/duet/p-6d32e2a5.entry.js +0 -4
  701. package/lib/duet/p-6e74ac45.system.entry.js +0 -4
  702. package/lib/duet/p-7213e4f9.system.js +0 -4
  703. package/lib/duet/p-72e384da.entry.js +0 -4
  704. package/lib/duet/p-863b1517.entry.js +0 -4
  705. package/lib/duet/p-8bee0043.entry.js +0 -4
  706. package/lib/duet/p-90cfb998.system.entry.js +0 -4
  707. package/lib/duet/p-a24aa183.entry.js +0 -4
  708. package/lib/duet/p-a376dd1d.js +0 -4
  709. package/lib/duet/p-a47059b7.system.entry.js +0 -4
  710. package/lib/duet/p-a918531a.entry.js +0 -4
  711. package/lib/duet/p-aaa77eee.entry.js +0 -4
  712. package/lib/duet/p-b01fbe26.system.js +0 -4
  713. package/lib/duet/p-b2eb57ef.entry.js +0 -4
  714. package/lib/duet/p-bde12c72.system.js +0 -4
  715. package/lib/duet/p-c00ac038.system.entry.js +0 -4
  716. package/lib/duet/p-d316ecf3.entry.js +0 -4
  717. package/lib/duet/p-d87a08ee.system.entry.js +0 -4
  718. package/lib/duet/p-e3d92f42.entry.js +0 -4
  719. package/lib/duet/p-e5435f92.system.entry.js +0 -4
  720. package/lib/duet/p-fd60b2ff.js +0 -4
  721. package/lib/esm/duet-popup-menu-item.entry.js +0 -79
  722. package/lib/esm-es5/duet-chip.entry.js +0 -4
  723. package/lib/esm-es5/duet-popup-menu-item.entry.js +0 -4
  724. package/lib/esm-es5/duet-popup-menu.entry.js +0 -4
  725. package/lib/esm-es5/focus-utils-003541f7.js +0 -4
@@ -1,10 +1,13 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-bbae2d5d.js';
4
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-5d196317.js';
5
5
  import { i as inheritGlobalTheme } from './themeable-component-860041c5.js';
6
6
  import { c as createID } from './create-id-149a1b6d.js';
7
- import { s as subscribeTabbingChange, u as unsubscribeTabbingChange } from './keyboard-utils-439bcc8b.js';
7
+ import { s as subscribeTabbingChange, u as unsubscribeTabbingChange, f as isEscapeKey, c as isArrowDownKey, b as isArrowUpKey, o as isTabKey } from './keyboard-utils-439bcc8b.js';
8
+ import { o as offset, f as flip, c as computePosition } from './floating-ui.dom.esm-ebc91b33.js';
9
+ import { f as focusElement } from './focus-utils-3e81bca4.js';
10
+ import { T as Teleport } from './teleport-546f382d.js';
8
11
 
9
12
  const duetChipCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;position:relative;display:inline-block;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}:host:last-child,:host:last-of-type{margin-right:0 !important}:host(.input){margin-top:6px !important;margin-right:0 !important;margin-bottom:6px !important;margin-left:4px !important}.duet-chip-container{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;padding:1px;hyphens:none;line-height:1.1;color:rgb(0, 41, 77) !important;text-align:center;cursor:pointer;background:rgb(255, 255, 255);border-color:rgb(207, 210, 212);border-style:solid;border-width:1px;border-radius:8px;transition:background-color 300ms ease, color 300ms ease, border-color 300ms ease}.duet-chip-container.duet-p-0{padding:0 !important}.duet-chip-container.duet-m-0{margin:0 !important}.duet-chip-container.duet-theme-turva{color:rgb(23, 28, 58) !important;background:rgb(255, 255, 255);border-color:rgb(207, 207, 209)}.duet-chip-container.duet-theme-turva:hover{border-color:rgb(198, 12, 48)}.duet-chip-container:hover{padding:0 !important;border-color:rgb(0, 119, 179);border-width:2px}.duet-chip-container.duet-chip-disabled{color:rgb(101, 119, 135) !important;cursor:default;background:rgb(245, 248, 250) !important;border-color:rgb(245, 248, 250) !important}.duet-chip-container.duet-chip-disabled.duet-theme-turva{color:rgb(116, 116, 117) !important;background:rgb(245, 245, 247);border-color:rgb(245, 245, 247)}.duet-chip-container.duet-chip-disabled:hover{background:rgb(245, 248, 250);border-color:rgb(245, 248, 250)}.duet-chip-container.duet-chip-disabled:hover.duet-theme-turva{background:rgb(245, 245, 247);border-color:rgb(245, 245, 247)}.duet-chip-container.duet-chip-disabled button,.duet-chip-container.duet-chip-disabled label{cursor:default}.duet-chip-container button,.duet-chip-container label{display:flex;align-items:center;width:100%;height:100%;padding:8px 14px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:600;line-height:1rem;color:rgb(0, 41, 77) !important;cursor:pointer}.duet-chip-container button:focus,.duet-chip-container label:focus{outline:none}.duet-chip-container .duet-chip-icon-container{display:flex;align-items:center;height:16px;padding:0;transition:padding 300ms ease}.duet-chip-container.duet-chip-has-icon .duet-chip-icon-container{width:24px;height:16px;padding-right:10px}.duet-chip-container.duet-chip-has-icon.duet-chip-filter-checked .duet-chip-icon-container,.duet-chip-container.duet-chip-has-icon.duet-chip-radio-checked .duet-chip-icon-container{padding-right:11px;padding-left:3px}.duet-chip-container.duet-chip-has-icon button,.duet-chip-container.duet-chip-has-icon label{padding-left:10px}.duet-chip-container.duet-chip-has-popup button,.duet-chip-container.duet-chip-has-popup label{padding-right:8px}.duet-chip-container duet-icon:not(.check-mark){width:auto;visibility:visible;transition:width 300ms ease, transform 300ms ease;transform:scaleX(1)}.duet-chip-container duet-icon.check-mark{width:0;overflow:hidden;visibility:hidden;transition:width 300ms ease, transform 300ms ease;transform:scaleX(0)}.duet-chip-container.duet-chip-filter-checked,.duet-chip-container.duet-chip-radio-checked{padding:0 !important;background:rgb(230, 242, 248);border-color:rgb(0, 119, 179);border-width:2px}.duet-chip-container.duet-chip-filter-checked:hover,.duet-chip-container.duet-chip-radio-checked:hover{background:rgb(205, 229, 241)}.duet-chip-container.duet-chip-filter-checked.chip-has-icon button,.duet-chip-container.duet-chip-filter-checked.chip-has-icon label,.duet-chip-container.duet-chip-radio-checked.chip-has-icon button,.duet-chip-container.duet-chip-radio-checked.chip-has-icon label{padding-left:10px}.duet-chip-container.duet-chip-filter-checked .duet-chip-icon-container,.duet-chip-container.duet-chip-radio-checked .duet-chip-icon-container{padding-right:10px}.duet-chip-container.duet-chip-filter-checked .duet-chip-icon-container duet-icon:not(.check-mark),.duet-chip-container.duet-chip-radio-checked .duet-chip-icon-container duet-icon:not(.check-mark){width:0;overflow:hidden;visibility:hidden;transition:width 300ms ease, transform 300ms ease;transform:scaleX(0)}.duet-chip-container.duet-chip-filter-checked .duet-chip-icon-container duet-icon.check-mark,.duet-chip-container.duet-chip-radio-checked .duet-chip-icon-container duet-icon.check-mark{width:auto;visibility:visible;transition:width 300ms ease, transform 300ms ease;transform:scaleX(1)}.duet-chip-container.duet-chip-filter-checked.duet-theme-turva,.duet-chip-container.duet-chip-radio-checked.duet-theme-turva{background:rgb(245, 245, 247);border-color:rgb(198, 12, 48)}.duet-chip-container.duet-chip-filter-checked.duet-theme-turva:hover,.duet-chip-container.duet-chip-radio-checked.duet-theme-turva:hover{background:rgb(228, 228, 230)}.duet-chip-container .duet-chip-popup-disclosure{padding-right:4.5px;padding-left:12.5px}.duet-chip-container .duet-chip-popup-disclosure duet-icon{transition:transform 300ms ease}.duet-chip-container.duet-chip-filter-popup-open{background:rgb(243, 249, 252);border-color:rgb(243, 249, 252)}.duet-chip-container.duet-chip-filter-popup-open.duet-theme-turva{background:rgb(245, 245, 247);border-color:rgb(245, 245, 247)}.duet-chip-container.duet-chip-filter-popup-open .duet-chip-popup-disclosure duet-icon{transform:rotate(180deg)}.duet-chip-container.duet-chip-input{display:flex;align-items:center;padding-right:0 !important}.duet-chip-container.duet-chip-input .duet-chip-input-button{flex-grow:1}.duet-chip-container.duet-chip-input .duet-chip-remove-button{width:26px;padding:8px 16px 8px 0;margin:-8px 0}.duet-chip-container.large button,.duet-chip-container.large label{padding:15px 22px}:host(.user-is-tabbing) .duet-chip-focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-chip-focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-chip-container input,*::slotted([slot=input]){position:absolute !important;top:0;left:0;z-index:-1;width:100%;height:100%;margin:0;cursor:pointer;border-width:2px;border-radius:8px;opacity:0;appearance:none}*::slotted([slot=input]:not([aria-disabled=true])){z-index:1}";
10
13
  const DuetChipStyle0 = duetChipCss;
@@ -283,4 +286,325 @@ const DuetChip = class {
283
286
  };
284
287
  DuetChip.style = DuetChipStyle0;
285
288
 
286
- export { DuetChip as duet_chip };
289
+ const duetPopupMenuCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.duet-popup-menu-list{position:absolute;top:0;left:0;z-index:950;width:max-content;min-width:175px;padding:8px;margin:0;color:rgb(0, 41, 77);list-style:none;visibility:hidden !important;background:rgb(255, 255, 255);border-radius:8px;box-shadow:0 0 0 1px rgba(0, 0, 0, 0.07), 0 4px 10px 0 rgba(0, 41, 77, 0.15);opacity:0;transition:transform 300ms ease, visibility 300ms ease, opacity 300ms ease;transform:scaleY(0);transform-origin:top center}.duet-popup-menu-list.open{visibility:visible !important;opacity:1;transform:scaleY(1)}.duet-popup-menu-list.fixed{position:fixed}.duet-popup-menu-list.duet-theme-turva{color:rgb(23, 28, 58) !important;background:rgb(255, 255, 255)}";
290
+ const DuetPopupMenuStyle0 = duetPopupMenuCss;
291
+
292
+ const DuetPopupMenu = class {
293
+ constructor(hostRef) {
294
+ registerInstance(this, hostRef);
295
+ this.duetToggle = createEvent(this, "duetToggle", 7);
296
+ this.setOpenButton = (element) => {
297
+ if (!element) {
298
+ return;
299
+ }
300
+ try {
301
+ const button = element;
302
+ button.accessiblePopup = "true";
303
+ button.accessibleExpanded = false;
304
+ if (this.controllerIcon) {
305
+ button.setAttribute("trailing-icon", "action-arrow-down-small");
306
+ }
307
+ this.openButton = button;
308
+ }
309
+ catch (_e) { }
310
+ };
311
+ this.openButtonEventListener = () => {
312
+ this.toggle();
313
+ };
314
+ this.updatePlacement = async () => {
315
+ if (!this.openButton) {
316
+ return;
317
+ }
318
+ const middleware = [
319
+ offset({ mainAxis: this.mainAxisOffset, crossAxis: this.crossAxisOffset }),
320
+ flip({ mainAxis: !this.forcePlacement }),
321
+ ];
322
+ const coordinates = await computePosition(this.openButton, this.menuElement, {
323
+ middleware,
324
+ placement: this.placement,
325
+ strategy: this.position,
326
+ });
327
+ this.menuY = coordinates.y;
328
+ this.menuX = coordinates.x;
329
+ };
330
+ this.open = false;
331
+ this.menuY = undefined;
332
+ this.menuX = undefined;
333
+ this.accessibleLabel = undefined;
334
+ this.accessibleRole = "menu";
335
+ this.theme = "";
336
+ this.skipTeleport = undefined;
337
+ this.controller = undefined;
338
+ this.placement = "bottom-start";
339
+ this.forcePlacement = false;
340
+ this.position = "absolute";
341
+ this.mainAxisOffset = 0;
342
+ this.crossAxisOffset = 0;
343
+ this.controllerIcon = "action-arrow-down-small";
344
+ }
345
+ /**
346
+ * Component lifecycle events.
347
+ */
348
+ componentWillLoad() {
349
+ inheritGlobalTheme(this);
350
+ }
351
+ componentDidLoad() {
352
+ {
353
+ this.updatePlacement();
354
+ }
355
+ }
356
+ connectedCallback() {
357
+ this.handleControllerChange(this.controller, null);
358
+ if (!this.teleport) {
359
+ this.teleport = new Teleport(this.element);
360
+ }
361
+ if (this.teleport) {
362
+ this.teleport.activate();
363
+ }
364
+ }
365
+ disconnectedCallback() {
366
+ if (this.openButton) {
367
+ this.openButton.removeEventListener("click", this.openButtonEventListener);
368
+ if (this.controllerIcon) {
369
+ this.openButton.removeAttribute("trailing-icon");
370
+ }
371
+ }
372
+ }
373
+ /**
374
+ * Component event handling.
375
+ */
376
+ handleKeyUp(evt) {
377
+ if (this.open) {
378
+ // When Esc is pressed the menu should be closed
379
+ if (isEscapeKey(evt)) {
380
+ this.focusOpenButton();
381
+ this.hide();
382
+ }
383
+ }
384
+ }
385
+ async handleKeyDown(evt) {
386
+ if (this.open) {
387
+ if (isArrowDownKey(evt)) {
388
+ evt.preventDefault();
389
+ const current = await this.getFocusedItemIndex();
390
+ if (current !== -1) {
391
+ if (current < this.itemElements.length - 1) {
392
+ this.itemElements[current + 1].setFocus();
393
+ }
394
+ else {
395
+ this.itemElements[0].setFocus();
396
+ }
397
+ }
398
+ }
399
+ if (isArrowUpKey(evt)) {
400
+ evt.preventDefault();
401
+ const current = await this.getFocusedItemIndex();
402
+ if (current !== -1) {
403
+ if (current === 0) {
404
+ this.itemElements[this.itemElements.length - 1].setFocus();
405
+ }
406
+ else {
407
+ this.itemElements[current - 1].setFocus();
408
+ }
409
+ }
410
+ }
411
+ if (isTabKey(evt) && this.accessibleRole === "menu") {
412
+ evt.preventDefault();
413
+ this.hide();
414
+ }
415
+ }
416
+ }
417
+ handleClick(evt) {
418
+ const isClickOutside = evt.composedPath().every(node => node !== this.element && node !== this.openButton);
419
+ if (this.open && isClickOutside) {
420
+ this.hide();
421
+ }
422
+ }
423
+ /**
424
+ * isOpen.
425
+ */
426
+ async isOpen() {
427
+ return this.open;
428
+ }
429
+ /**
430
+ * Show.
431
+ */
432
+ async show() {
433
+ this.open = true;
434
+ }
435
+ /**
436
+ * Hide.
437
+ */
438
+ async hide() {
439
+ this.open = false;
440
+ }
441
+ /**
442
+ * Toggle.
443
+ */
444
+ async toggle() {
445
+ if (this.open) {
446
+ this.hide();
447
+ }
448
+ else {
449
+ this.show();
450
+ }
451
+ }
452
+ handleControllerChange(newValue, oldValue) {
453
+ if (!!newValue === !!oldValue) {
454
+ return;
455
+ }
456
+ if (typeof this.controller === "string") {
457
+ this.setOpenButton(document.getElementById(this.controller));
458
+ if (this.openButton) {
459
+ this.openButton.addEventListener("click", this.openButtonEventListener);
460
+ }
461
+ }
462
+ else {
463
+ this.setOpenButton(this.controller);
464
+ }
465
+ }
466
+ handleOpenChange(newValue, oldValue) {
467
+ if (!!newValue === !!oldValue) {
468
+ return;
469
+ }
470
+ if (this.open && !oldValue) {
471
+ if (this.openButton) {
472
+ this.openButton.accessibleExpanded = true;
473
+ }
474
+ if (this.accessibleRole !== "listbox") {
475
+ this.teleport.makeSiblingsInert();
476
+ }
477
+ this.updatePlacement();
478
+ setTimeout(() => {
479
+ if (this.accessibleRole === "menu") {
480
+ this.itemElements[0].setFocus();
481
+ }
482
+ this.duetToggle.emit({ open: this.open, component: "duet-popup-menu" });
483
+ }, 200);
484
+ }
485
+ else if (!this.open && oldValue) {
486
+ if (this.openButton) {
487
+ this.openButton.accessibleExpanded = false;
488
+ }
489
+ setTimeout(() => {
490
+ if (this.accessibleRole === "menu") {
491
+ this.focusOpenButton();
492
+ }
493
+ this.duetToggle.emit({ open: this.open, component: "duet-popup-menu" });
494
+ if (this.accessibleRole !== "listbox") {
495
+ this.teleport.removeInertFromSiblings();
496
+ }
497
+ }, 200);
498
+ }
499
+ }
500
+ focusOpenButton() {
501
+ if (this.open) {
502
+ focusElement(this.openButton);
503
+ }
504
+ }
505
+ get itemElements() {
506
+ return Array.from(this.element.querySelectorAll(":scope duet-popup-menu-item"));
507
+ }
508
+ async getFocusedItemIndex() {
509
+ const items = this.itemElements;
510
+ for (let i = 0; i < items.length; i++) {
511
+ if (await items[i].isFocused()) {
512
+ return i;
513
+ }
514
+ }
515
+ return -1;
516
+ }
517
+ render() {
518
+ const styles = {
519
+ top: `${this.menuY}px`,
520
+ left: `${this.menuX}px`,
521
+ position: this.position,
522
+ overflowY: "auto",
523
+ };
524
+ return (h(Host, { key: '389d4d1b46db081d29a7fa8d57fd65f9c113f7a9' }, h("div", { key: '8d5e47a1dac1f4a7b17aed4aa69afed4cfa44a39', ref: element => {
525
+ this.menuElement = element;
526
+ }, style: styles, class: { open: this.open, "duet-popup-menu-list": true, "duet-theme-turva": this.theme === "turva" }, role: this.accessibleRole, "aria-label": this.accessibleLabel }, h("slot", { key: '09fc711a6dc838d9e345a694c5e45c09a01bf4ed' }))));
527
+ }
528
+ get element() { return getElement(this); }
529
+ static get watchers() { return {
530
+ "controller": ["handleControllerChange"],
531
+ "open": ["handleOpenChange"]
532
+ }; }
533
+ };
534
+ DuetPopupMenu.style = DuetPopupMenuStyle0;
535
+
536
+ const duetPopupMenuItemCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:flex;flex-direction:row;gap:8px;align-items:center;justify-content:flex-start}.duet-popup-menu-item{display:flex;flex-grow:1;gap:12px;align-items:center;height:100%;padding:8px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:rgb(0, 41, 77);text-align:left;text-decoration:none;cursor:pointer}.duet-popup-menu-item:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-popup-menu-item:focus,.duet-popup-menu-item:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-popup-menu-item.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}.duet-popup-menu-item.active{background:rgb(243, 249, 252)}.duet-popup-menu-item.active.duet-theme-turva{background:rgb(245, 245, 247)}.duet-popup-menu-item:hover{background:rgb(230, 242, 248)}.duet-popup-menu-item:hover.duet-theme-turva{background:rgb(228, 228, 230)}.duet-popup-menu-item .duet-popup-menu-item-label{flex-grow:1}.duet-popup-menu-item .duet-popup-menu-item-trailing{padding-left:20px}.active-descendant{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .active-descendant,.active-descendant.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}";
537
+ const DuetPopupMenuItemStyle0 = duetPopupMenuItemCss;
538
+
539
+ const DuetPopupMenuItem = class {
540
+ constructor(hostRef) {
541
+ registerInstance(this, hostRef);
542
+ this.duetFocus = createEvent(this, "duetFocus", 7);
543
+ this.duetBlur = createEvent(this, "duetBlur", 7);
544
+ /**
545
+ * Component event handling.
546
+ */
547
+ this.onFocus = (ev) => {
548
+ this.focus = true;
549
+ this.duetFocus.emit({
550
+ originalEvent: ev,
551
+ value: this.value,
552
+ component: "duet-popup-menu-item",
553
+ });
554
+ };
555
+ this.onBlur = (ev) => {
556
+ this.focus = false;
557
+ this.duetBlur.emit({
558
+ originalEvent: ev,
559
+ value: this.value,
560
+ component: "duet-popup-menu-item",
561
+ });
562
+ };
563
+ this.focus = false;
564
+ this.accessibleLabel = undefined;
565
+ this.accessibleRole = "menuitem";
566
+ this.theme = "";
567
+ this.url = undefined;
568
+ this.external = false;
569
+ this.targetLanguage = undefined;
570
+ this.value = undefined;
571
+ this.leadingIcon = undefined;
572
+ this.leadingIconColor = undefined;
573
+ this.trailingIcon = undefined;
574
+ this.trailingText = undefined;
575
+ this.active = false;
576
+ this.activeDescendant = false;
577
+ }
578
+ /**
579
+ * Component lifecycle events.
580
+ */
581
+ componentWillLoad() {
582
+ inheritGlobalTheme(this);
583
+ }
584
+ /**
585
+ * Sets focus. Use this method instead of the global focus().
586
+ */
587
+ async setFocus(options) {
588
+ setTimeout(() => this.itemElement.focus(options), 200);
589
+ }
590
+ /**
591
+ * isFocused.
592
+ */
593
+ async isFocused() {
594
+ return this.focus;
595
+ }
596
+ render() {
597
+ const TagName = this.url ? "a" : "button";
598
+ const classes = {
599
+ "duet-popup-menu-item": true,
600
+ active: this.active,
601
+ "duet-theme-turva": this.theme === "turva",
602
+ "active-descendant": this.activeDescendant,
603
+ };
604
+ return (h(Host, { key: 'e53141f7390844d3bd55d5204d7dac9334248fdc', role: this.accessibleRole }, h(TagName, { key: '73fe7bb5b8cc6fa57b12e0d210edc4ef25dd401b', ref: element => (this.itemElement = element), tabIndex: this.accessibleRole === "menuitem" || "option" ? -1 : 0, 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: '3fd892272f52814da4c8f14ea7bec580a160e858', name: this.leadingIcon, size: "x-small", color: this.leadingIconColor ? this.leadingIconColor : "currentColor", class: "duet-popup-menu-item-leading", margin: "none" })), h("span", { key: '51b7da7f29ef0f85344e02b1a85aa185bca9b26a', class: "duet-popup-menu-item-label" }, h("slot", { key: '9a72c7fcaeeafe89741760d84c91382b31ab798f' })), (this.trailingIcon || this.active) && (h("duet-icon", { key: '1ddf8f956adbe24208d16c33fe28fde167babcb2', name: this.active ? "messaging-checked-small" : this.trailingIcon, size: this.active ? "xx-small" : "x-small", color: "currentColor", class: "duet-popup-menu-item-trailing", margin: "none" })), this.trailingText && h("span", { key: '30aa34505231dbe1a78af9256920294e967a559a', class: "duet-popup-menu-item-trailing" }, this.trailingText))));
605
+ }
606
+ get element() { return getElement(this); }
607
+ };
608
+ DuetPopupMenuItem.style = DuetPopupMenuItemStyle0;
609
+
610
+ export { DuetChip as duet_chip, DuetPopupMenu as duet_popup_menu, DuetPopupMenuItem as duet_popup_menu_item };
@@ -1,13 +1,13 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-bbae2d5d.js';
4
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-5d196317.js';
5
5
  import { i as inheritGlobalTheme } from './themeable-component-860041c5.js';
6
6
  import { D as DuetStringsExternalDefaults } from './common-strings-af765cad.js';
7
7
  import { c as createID } from './create-id-149a1b6d.js';
8
8
  import { i as isKeyboardClick, h as isQuestionKey, s as subscribeTabbingChange, u as unsubscribeTabbingChange, f as isEscapeKey } from './keyboard-utils-439bcc8b.js';
9
- import { g as getLocaleString, a as getLanguage, c as connectLanguageChangeObserver, d as disconnectLanguageChangeObserver } from './language-utils-5a2b4259.js';
10
- import { h as hasSlot, c as checkNamedSlotElement } from './slot-utils-0a3b9dfc.js';
9
+ import { g as getLocaleString, a as getLanguage, c as connectLanguageChangeObserver, d as disconnectLanguageChangeObserver } from './language-utils-97f0a1bb.js';
10
+ import { h as hasSlot, c as checkNamedSlotElement } from './slot-utils-4442cc08.js';
11
11
  import './string-utils-192eb3c8.js';
12
12
 
13
13
  var messagingInfo={"title":"messaging-info","tags":"messaging info information circle","svg":"<svg fill=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\"><path d=\"M13.5 17.25A2.252 2.252 0 0 1 11.25 15v-3.75h-.75a.75.75 0 0 1 0-1.5h.75c.827 0 1.5.673 1.5 1.5V15c0 .414.336.75.75.75h.75a.75.75 0 0 1 0 1.5z\"/><circle cx=\"11.625\" cy=\"7.125\" r=\"1.125\"/><path d=\"M12 24C5.383 24 0 18.617 0 12S5.383 0 12 0s12 5.383 12 12-5.383 12-12 12zm0-22.5C6.21 1.5 1.5 6.21 1.5 12S6.21 22.5 12 22.5 22.5 17.79 22.5 12 17.79 1.5 12 1.5z\"/></svg>"};
@@ -1,13 +1,13 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-bbae2d5d.js';
4
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-5d196317.js';
5
5
  import { a as actionArrowDownSmall } from './action-arrow-down-small-82273dc8.js';
6
6
  import { f as font_size_medium, t as tokens } from './tokens-e0e3d241.js';
7
7
  import { i as inheritGlobalTheme } from './themeable-component-860041c5.js';
8
8
  import { c as createID } from './create-id-149a1b6d.js';
9
9
  import { i as isKeyboardClick, s as subscribeTabbingChange, u as unsubscribeTabbingChange } from './keyboard-utils-439bcc8b.js';
10
- import { h as hasSlot } from './slot-utils-0a3b9dfc.js';
10
+ import { h as hasSlot } from './slot-utils-4442cc08.js';
11
11
  import { s as sanitizeString } from './string-utils-192eb3c8.js';
12
12
 
13
13
  const duetCollapsibleCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}::slotted([slot=after-heading]){display:inline-block}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:16px !important;display:block;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.5;color:rgb(0, 41, 77)}:host(.duet-theme-turva){font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}:host(.duet-m-0){margin:0 !important}.duet-collapsible-content{display:none;padding-left:18px;margin-top:8px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.5;color:rgb(0, 41, 77)}@media (max-width: 35.9375em){.duet-collapsible-content{font-size:0.875rem}}.duet-collapsible-content.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}:host([open])>.duet-collapsible-content{display:block}.duet-collapsible-heading{-webkit-user-select:none;user-select:none;display:flex;align-items:center;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.5;color:rgb(0, 41, 77);text-align:left;cursor:pointer;border-radius:4px}.duet-collapsible-heading.full-width{width:100%}.duet-collapsible-heading.duet-collapsible-heading-centered{margin:auto}.duet-collapsible-heading.duet-collapsible-normal-weight{font-weight:400}.duet-collapsible-heading.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}.duet-collapsible-heading .duet-collapsible-heading-content{min-width:0}.duet-collapsible-heading.has-after-heading .duet-collapsible-heading-content+div{margin-left:16px}.duet-collapsible-heading.has-after-heading .duet-collapsible-heading-content+div.float-right{margin-left:auto}.duet-collapsible-heading:focus{outline:0}:host(.user-is-tabbing) .duet-collapsible-heading:focus{border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-collapsible-heading.duet-theme-turva:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-collapsible-heading-icon{margin-right:8px !important;display:flex;align-items:center;justify-content:center;color:rgb(0, 41, 77);transition:transform 300ms ease}.duet-collapsible-heading-icon:last-child,.duet-collapsible-heading-icon:last-of-type{margin-right:0 !important}[aria-expanded=true] .duet-collapsible-heading-icon{transform:rotate(180deg)}";
@@ -1,38 +1,33 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-bbae2d5d.js';
4
+ import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-5d196317.js';
5
5
  import { i as inheritGlobalTheme } from './themeable-component-860041c5.js';
6
6
  import { c as createID } from './create-id-149a1b6d.js';
7
7
  import { d as debounce } from './js-utils-9b9e0039.js';
8
8
  import { j as isEnterKey, f as isEscapeKey, o as isTabKey, e as isBackspaceKey, b as isArrowUpKey, c as isArrowDownKey } from './keyboard-utils-439bcc8b.js';
9
- import { g as getLocaleString, a as getLanguage, c as connectLanguageChangeObserver, d as disconnectLanguageChangeObserver } from './language-utils-5a2b4259.js';
10
- import { g as getElementsFromDefaultSlot } from './slot-utils-0a3b9dfc.js';
9
+ import { g as getLocaleString, a as getLanguage, c as connectLanguageChangeObserver, d as disconnectLanguageChangeObserver } from './language-utils-97f0a1bb.js';
10
+ import { g as getElementsFromDefaultSlot } from './slot-utils-4442cc08.js';
11
11
  import { r as regexEscape, p as parsePossibleJSON } from './string-utils-192eb3c8.js';
12
12
 
13
- const DuetComboBoxSelect = ({ item, active, selected, label = undefined, clickHandler = e => {
13
+ const DuetComboBoxSelect = ({ item, activeDescendant, selected, label = undefined, clickHandler = e => {
14
14
  e.preventDefault();
15
15
  }, keyHandler = e => {
16
16
  e.preventDefault();
17
- }, search, isAndroidDevice, }) => {
17
+ }, search, isAndroidDevice, id, }) => {
18
18
  const searchTerms = search
19
19
  .split(" ")
20
20
  .filter(term => !!term.trim())
21
21
  .map(term => regexEscape(term));
22
22
  const regEx = search !== "" ? new RegExp(`(${searchTerms.join("|")})`, "i") : undefined;
23
- return (h("li", { class: {
24
- "list-item": true,
25
- option: true,
26
- active: active,
27
- selected: selected,
28
- }, id: active ? "active_item" : "", "data-index": item.id, "aria-selected": active ? "true" : undefined, "aria-current": selected ? "true" : undefined, role: "option", "aria-label": label, tabindex: isAndroidDevice ? "-1" : null, onClick: e => clickHandler(e), onKeyUp: e => keyHandler(e) },
29
- selected && h("duet-icon", { class: "option-icon", name: "messaging-checked", size: "xx-small", margin: "none" }),
23
+ const highlightStyle = "text-decoration: underline";
24
+ return (h("duet-popup-menu-item", { id: activeDescendant ? id : "", active: selected, "data-index": item.id, "aria-selected": activeDescendant ? "true" : undefined, "aria-current": selected ? "true" : undefined, role: "option", "aria-label": label, tabindex: isAndroidDevice ? "-1" : null, onClick: e => clickHandler(e), onKeyUp: e => keyHandler(e), accessibleRole: "option", activeDescendant: activeDescendant },
30
25
  regEx ? (h("span", { class: "option-container", "aria-hidden": "true" },
31
- h("span", { innerHTML: item.name.replace(regEx, '<span class="highlight sc-duet-combobox">$&</span>') }))) : (item.name),
26
+ h("span", { innerHTML: item.name.replace(regEx, `<span style="${highlightStyle}">$&</span>`) }))) : (item.name),
32
27
  item.tags && h("span", { class: "option-tags" }, item.tags.join(", "))));
33
28
  };
34
29
 
35
- const duetComboboxCss = ".sc-duet-combobox-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;display:inline-block;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(0, 41, 77)}.sc-duet-combobox-h a.sc-duet-combobox{color:rgb(0, 41, 77);transition:none}.duet-theme-turva.sc-duet-combobox-h{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}.duet-theme-turva.sc-duet-combobox-h a.sc-duet-combobox{color:rgb(23, 28, 58)}.duet-theme-turva.sc-duet-combobox-h .duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.option.sc-duet-combobox .option-tags.sc-duet-combobox{color:rgb(116, 116, 117)}.duet-theme-turva.sc-duet-combobox-h .duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.option.selected.sc-duet-combobox{background:rgb(244, 207, 214)}.duet-theme-turva.sc-duet-combobox-h .duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.active.sc-duet-combobox,.duet-theme-turva.sc-duet-combobox-h .duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.sc-duet-combobox:focus,.duet-theme-turva.sc-duet-combobox-h .duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.sc-duet-combobox:hover{color:rgb(255, 255, 255);background:rgb(198, 12, 48)}.duet-theme-turva.sc-duet-combobox-h .duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.active.sc-duet-combobox .option-tags.sc-duet-combobox,.duet-theme-turva.sc-duet-combobox-h .duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.sc-duet-combobox:focus .option-tags.sc-duet-combobox,.duet-theme-turva.sc-duet-combobox-h .duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.sc-duet-combobox:hover .option-tags.sc-duet-combobox{color:rgb(255, 255, 255)}.duet-theme-turva.sc-duet-combobox-h .duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.active.sc-duet-combobox a.sc-duet-combobox,.duet-theme-turva.sc-duet-combobox-h .duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.sc-duet-combobox:focus a.sc-duet-combobox,.duet-theme-turva.sc-duet-combobox-h .duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.sc-duet-combobox:hover a.sc-duet-combobox{color:rgb(255, 255, 255)}.duet-combobox-list.sc-duet-combobox{position:absolute;top:calc(100% - 12px);z-index:700;margin:8px 0 0;visibility:hidden;background:rgb(255, 255, 255);border-radius:0 4px;box-shadow:0 2px 10px 0 rgba(0, 41, 77, 0.1);opacity:0;transition:transform 300ms ease, opacity 300ms ease, visibility 300ms ease;transform:scale(0.96) translateZ(0) translateY(-20px);transform-origin:top right}.duet-combobox-list.open.sc-duet-combobox{visibility:visible;opacity:1;transition-property:transform, opacity;transform:scale(1.0001) translateZ(0) translateY(0)}.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox{max-height:200px;padding:0.75rem 0;margin:0;overflow-y:scroll;font-weight:600;list-style:none;cursor:pointer;scroll-behavior:smooth}.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.sc-duet-combobox{padding:4px 0}.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.sc-duet-combobox:not(.selected){padding-left:16px}.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.sc-duet-combobox:not(.selected) .highlight.sc-duet-combobox{text-decoration:underline}.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.option.sc-duet-combobox .option-tags.sc-duet-combobox{float:right;padding-right:0.875rem;font-weight:400;color:rgb(144, 149, 153)}.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.selected.sc-duet-combobox{padding-left:0;background:rgb(205, 229, 241)}.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.selected.option.sc-duet-combobox .option-icon.sc-duet-combobox{padding:0 8px 0 8px}.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.selected.option.sc-duet-combobox .option-tags.sc-duet-combobox{color:rgb(144, 149, 153)}.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.active.sc-duet-combobox,.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.sc-duet-combobox:focus,.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.sc-duet-combobox:hover{color:rgb(255, 255, 255);background:rgb(0, 119, 179)}.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.active.sc-duet-combobox .option-tags.sc-duet-combobox,.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.sc-duet-combobox:focus .option-tags.sc-duet-combobox,.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.sc-duet-combobox:hover .option-tags.sc-duet-combobox{color:rgb(255, 255, 255)}.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.active.sc-duet-combobox a.sc-duet-combobox,.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.sc-duet-combobox:focus a.sc-duet-combobox,.duet-combobox-list.sc-duet-combobox .duet-combobox-listbox.sc-duet-combobox .list-item.sc-duet-combobox:hover a.sc-duet-combobox{color:rgb(255, 255, 255)}";
30
+ const duetComboboxCss = ".sc-duet-combobox-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;display:inline-block;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(0, 41, 77)}.sc-duet-combobox-h a.sc-duet-combobox{color:rgb(0, 41, 77);transition:none}.duet-theme-turva.sc-duet-combobox-h{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}.duet-theme-turva.sc-duet-combobox-h a.sc-duet-combobox{color:rgb(23, 28, 58)}.combobox-menu-container.sc-duet-combobox{width:var(--popup-width);max-height:200px}";
36
31
  const DuetComboboxStyle0 = duetComboboxCss;
37
32
 
38
33
  const DuetCombobox = class {
@@ -41,14 +36,16 @@ const DuetCombobox = class {
41
36
  this.duetChange = createEvent(this, "duetChange", 3);
42
37
  var _a, _b;
43
38
  this.listBoxId = createID("duet-combobox-list-element");
39
+ this.inputId = createID("duet-combobox-input-id");
40
+ this.activeDescendantId = createID("duet-combobox-active-descendant");
44
41
  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;
45
42
  this.resizeObserver = new ResizeObserver(debounce(entries => {
46
- var _a, _b;
43
+ var _a, _b, _c;
47
44
  // otherwise, something is wrong, expecting 1 element only
48
45
  if ((entries === null || entries === void 0 ? void 0 : entries.length) === 1) {
49
46
  const currentWidth = (_b = (_a = entries[0]) === null || _a === void 0 ? void 0 : _a.target) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().width;
50
- this.listContainer.style.width = `${currentWidth + 1}px`;
51
- // this.listElement.style.width = `${currentWidth + 1}px`
47
+ const popupMenuPadding = parseInt((_c = getComputedStyle(this.listContainer.shadowRoot.querySelector(".duet-popup-menu-list"))) === null || _c === void 0 ? void 0 : _c.padding);
48
+ this.listContainer.style.setProperty("--popup-width", `${currentWidth - 2 * popupMenuPadding}px`);
52
49
  }
53
50
  }, 100));
54
51
  this.onInputChange = async (e) => {
@@ -73,6 +70,9 @@ const DuetCombobox = class {
73
70
  if (!this.force && !this.multiple && this.selectedItems.size > 0 && newValue !== this.getSelectedItemLabel()) {
74
71
  this.selectedItems.clear();
75
72
  }
73
+ if (!this.force && !this.multiple && newValue === "") {
74
+ this.value = undefined;
75
+ }
76
76
  this.listOpen = String(newValue).length >= this.minCharacters && ((_a = this.getFilteredItems()) === null || _a === void 0 ? void 0 : _a.length) > 0;
77
77
  };
78
78
  this.onKeyDown = (e) => {
@@ -103,6 +103,9 @@ const DuetCombobox = class {
103
103
  return;
104
104
  }
105
105
  if (isEscapeKey(e) || isTabKey(e)) {
106
+ if (this.listOpen) {
107
+ e.preventDefault();
108
+ }
106
109
  this.updateInputText(true);
107
110
  this.activeItem = undefined;
108
111
  this.listOpen = false;
@@ -135,7 +138,7 @@ const DuetCombobox = class {
135
138
  }
136
139
  // this should be set to undefined on everything BUT up/down arrow according to the aria 1.1 specs
137
140
  // https://www.w3.org/TR/wai-aria-practices-1.1/#combobox
138
- this.input.accessibleActiveDescendant = "active_item";
141
+ this.input.accessibleActiveDescendant = this.activeDescendantId;
139
142
  this.activeItem = nextActiveItem;
140
143
  this.scrollToActive();
141
144
  }
@@ -176,8 +179,16 @@ const DuetCombobox = class {
176
179
  this.openListOnClick = false;
177
180
  this.filterType = "startsWith";
178
181
  }
182
+ popupMenuOpenHandler() {
183
+ if (this.listOpen) {
184
+ this.listContainer.show();
185
+ }
186
+ else {
187
+ this.listContainer.hide();
188
+ }
189
+ }
179
190
  activeItemHandler(state) {
180
- this.input.accessibleActiveDescendant = this.listOpen && (state || state === 0) ? `active_item` : "";
191
+ this.input.accessibleActiveDescendant = this.listOpen && (state || state === 0) ? this.activeDescendantId : "";
181
192
  }
182
193
  handleDocumentClick(e) {
183
194
  //we want to remove all user text if they have NOT selected from the dropdown
@@ -291,6 +302,7 @@ const DuetCombobox = class {
291
302
  this.input.accessibleExpanded = this.listOpen ? "true" : "false";
292
303
  this.input.accessibleAutocomplete = "list";
293
304
  this.input.accessibleControls = this.listBoxId;
305
+ this.input.id = this.inputId;
294
306
  this.element.addEventListener("keydown", this.onKeyDown);
295
307
  connectLanguageChangeObserver(this, { prop: "accessibleLabels", defaults: "accessibleLabelDefaults" });
296
308
  this.processListOpenChange();
@@ -342,6 +354,7 @@ const DuetCombobox = class {
342
354
  this.value = this.processedItems.filter(item => this.selectedItems.has(item.id)).map(item => item.value);
343
355
  this.input.value = "";
344
356
  this.updateChips();
357
+ this.input.setFocus();
345
358
  }
346
359
  /**
347
360
  * Add item with id to the selectedItems set. Used only when multiple is true.
@@ -376,6 +389,8 @@ const DuetCombobox = class {
376
389
  if (this.selectedItems.has(id)) {
377
390
  this.selectedItems.delete(id);
378
391
  this.value = undefined;
392
+ this.input.value = "";
393
+ await this.input.setFocus();
379
394
  }
380
395
  else {
381
396
  this.selectedItems.clear();
@@ -383,7 +398,7 @@ const DuetCombobox = class {
383
398
  this.value = this.processedItems.find(item => item.id === id).value;
384
399
  }
385
400
  if (emitEvent) {
386
- this.emitChangeEvent(id);
401
+ this.emitChangeEvent(this.value && id);
387
402
  }
388
403
  await this.updateInputText();
389
404
  }
@@ -447,6 +462,7 @@ const DuetCombobox = class {
447
462
  this.input.value = ""; // set value to empty so that cursor position follows accordingly
448
463
  this.input.value = await this.getSelectedItemLabel();
449
464
  this.input.scrollLeft = this.input.scrollWidth;
465
+ await this.input.setFocus();
450
466
  }
451
467
  }
452
468
  // Event handlers
@@ -466,7 +482,7 @@ const DuetCombobox = class {
466
482
  }
467
483
  //function that scrolls to the li element with the class "active"
468
484
  scrollToActive() {
469
- const activeElement = this.listElement.querySelector(".active");
485
+ const activeElement = document.getElementById(`${this.activeDescendantId}`); // this is undefined on 1st keydown, make it be valid to fix the issue
470
486
  if (activeElement) {
471
487
  activeElement.scrollIntoView({
472
488
  behavior: "smooth",
@@ -538,23 +554,17 @@ const DuetCombobox = class {
538
554
  return (h(Host, { class: {
539
555
  "duet-combobox": true,
540
556
  [`duet-theme-${this.theme}`]: true,
541
- } }, h("slot", null), h("div", { class: {
542
- "duet-combobox-list": true,
543
- open: this.listOpen,
544
- }, ref: el => (this.listContainer = el) }, h("ul", { class: {
545
- "duet-combobox-listbox-open": this.listOpen,
546
- "duet-combobox-listbox": true,
547
- }, role: "listbox", ref: el => (this.listElement = el), id: this.listBoxId }, this.listOpen &&
557
+ } }, h("slot", null), h("div", null, h("duet-popup-menu", { id: this.listBoxId, controller: this.input, ref: el => (this.listContainer = el), accessibleRole: "listbox" }, h("div", { class: "combobox-menu-container" }, this.listOpen &&
548
558
  selectElements.map((item, index) => {
549
- return (h(DuetComboBoxSelect, { item: item, active: index === this.activeItem, selected: this.selectedItems.has(item.id), search: this.inputValue, clickHandler: e => this.onListClick(e, item), label: this.formatLabel(item, index, selectElements.length, this.processedItems.length), isAndroidDevice: this.isAndroidDevice }));
550
- })))));
559
+ return (h(DuetComboBoxSelect, { id: this.activeDescendantId, item: item, activeDescendant: index === this.activeItem, selected: this.selectedItems.has(item.id), search: this.inputValue, clickHandler: e => this.onListClick(e, item), label: this.formatLabel(item, index, selectElements.length, this.processedItems.length), isAndroidDevice: this.isAndroidDevice }));
560
+ }), h("duet-spacer", { size: "x-small" }))))));
551
561
  }
552
562
  get element() { return getElement(this); }
553
563
  static get watchers() { return {
564
+ "listOpen": ["popupMenuOpenHandler", "processListOpenChange"],
554
565
  "activeItem": ["activeItemHandler"],
555
566
  "items": ["processItems"],
556
- "value": ["processValue"],
557
- "listOpen": ["processListOpenChange"]
567
+ "value": ["processValue"]
558
568
  }; }
559
569
  };
560
570
  DuetCombobox.style = DuetComboboxStyle0;
@@ -1,9 +1,9 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, h, H as Host, g as getElement } from './index-bbae2d5d.js';
4
+ import { r as registerInstance, h, H as Host, g as getElement } from './index-5d196317.js';
5
5
  import { i as inheritGlobalTheme } from './themeable-component-860041c5.js';
6
- import { a as getLanguage, c as connectLanguageChangeObserver, d as disconnectLanguageChangeObserver } from './language-utils-5a2b4259.js';
6
+ import { a as getLanguage, c as connectLanguageChangeObserver, d as disconnectLanguageChangeObserver } from './language-utils-97f0a1bb.js';
7
7
  import './string-utils-192eb3c8.js';
8
8
 
9
9
  const duetContactCardCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:12px !important;display:block}:host(.duet-m-0){margin:0 !important}::slotted(*){padding-top:1.5rem}@media (min-width: 48em){::slotted(*){grid-column:2/span 2;padding-top:0}}.duet-contact-card{display:grid;grid-template-columns:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.5;color:rgb(0, 41, 77)}.duet-contact-card.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}@media (min-width: 48em){.duet-contact-card{grid-template-columns:min-content minmax(0, 1fr) auto;gap:20px}}.duet-contact-card .image{width:4rem;height:4rem;margin-bottom:8px;border-radius:4px}@media (min-width: 48em){.duet-contact-card .image{width:6rem;height:6rem;padding-bottom:0}}.duet-contact-card .description{padding-bottom:8px}.duet-contact-card .email,.duet-contact-card .phone{display:grid;grid-template-columns:min-content auto;gap:8px;align-items:center;justify-content:flex-start;padding-bottom:8px;overflow-wrap:break-word}";
@@ -51,10 +51,10 @@ const DuetContactCard = class {
51
51
  render() {
52
52
  const isTurva = this.theme === "turva";
53
53
  const theme = isTurva ? "turva" : "default";
54
- return (h(Host, { key: '4a436cc9bd108107bc501a7643b2e93f5ac78e5c', class: { "duet-m-0": this.margin === "none" } }, h("div", { key: '47581ca62eb607cec4b8d1d37fcf5f18c2678a34', class: {
54
+ return (h(Host, { key: '74f85ad21c040a5a98dee8c360b9958be3109855', class: { "duet-m-0": this.margin === "none" } }, h("div", { key: 'd11d8de783ddd26e09d9e96923dc781f569e93f9', class: {
55
55
  "duet-contact-card": true,
56
56
  "duet-theme-turva": this.theme === "turva",
57
- }, role: "group", "aria-label": this.name }, this.image ? h("img", { class: "image", src: this.image, alt: this.name }) : h("div", null), h("div", { key: '2146916a772d049a0a2c338e573c436cc799369c' }, this.name && (h("duet-heading", { key: '1883776b3095e2f5aa9c173a96e7822d1c938f0e', class: "name", level: "h3", margin: "none", theme: theme }, this.name)), this.description && (h("duet-paragraph", { key: '92b78c88c8e2d892719502f7d2505ed7449da8d3', class: "description", margin: "none", theme: theme }, this.description)), this.email && (h("div", { key: '833f2c34ebcdce0e5233f80d6d01a5d9db13aadc', class: "email" }, h("duet-icon", { key: '41310926f4b326de7de44f4a7346905386f80254', name: "navigation-message", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), h("duet-link", { key: '9ce96e8d1f5f73496c3b8e3d3c7d99e2de741c3e', url: `mailto:${this.email}`, accessibleLabel: `Email: ${this.email}`, theme: theme }, this.email))), this.phone && (h("div", { key: '7b184f7a81d165ad37c66a6075d3b1698de6264c', class: "phone" }, h("duet-icon", { key: 'b973fbdcdd02bea91e9adce6b2d94b7122f730fc', name: "form-tel", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), h("duet-link", { key: '4ba2b90db91a2217590ce7bc5f70846dc87e9856', url: `tel:${this.phone}`, accessibleLabel: `${this.phoneLabel[this.language]}: ${this.phone}`, theme: theme }, this.phone)))), this.buttonUrl && this.buttonText && (h("div", { key: 'a292f1045430c6eeac2ec61eae9722c6ffe41f4b', class: "call-to-action" }, h("duet-button", { key: '103fa46548191a207bcfa65a32e426b62c3c4e4a', variation: "default", icon: this.buttonIcon, fixed: true, margin: "none", url: this.buttonUrl, theme: theme }, this.buttonText))), h("div", { key: 'b02b1c4afca5fb77e9fd389b64f1f853433bc52f' }), h("slot", { key: '02bae65fb19132f6a49d7dc156e660e042385fc3' }))));
57
+ }, role: "group", "aria-label": this.name }, this.image ? h("img", { class: "image", src: this.image, alt: this.name }) : h("div", null), h("div", { key: '7e934c796778de29e95e94bebec6937048b78566' }, this.name && (h("duet-heading", { key: '26031bfeb5a46a69ebba836bd1cc714b077bb121', class: "name", level: "h3", margin: "none", theme: theme }, this.name)), this.description && (h("duet-paragraph", { key: '8768df03c1a5dfb04cdf1eda46da5a327bbf3324', class: "description", margin: "none", theme: theme }, this.description)), this.email && (h("div", { key: '92235e6bd3a7012a478cfd8100e4f5701f9ea950', class: "email" }, h("duet-icon", { key: '3fe17e7cc18b9f724be2627dcb4e0adf667aaf5b', name: "navigation-message", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), h("duet-link", { key: 'cc356db4a9b7f198504873d3e335cd6f83d7c70c', url: `mailto:${this.email}`, accessibleLabel: `Email: ${this.email}`, theme: theme }, this.email))), this.phone && (h("div", { key: 'b9e6b3cc84f4aa81599ff5b7cd626f3e5f03ab33', class: "phone" }, h("duet-icon", { key: '3223b182ee564f36ec8994536981eb6bc9fba82d', name: "form-tel", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), h("duet-link", { key: '2396ee622e62c5a5be8dde2ecc9edecbb823cc9a', url: `tel:${this.phone}`, accessibleLabel: `${this.phoneLabel[this.language]}: ${this.phone}`, theme: theme }, this.phone)))), this.buttonUrl && this.buttonText && (h("div", { key: 'b5d4135434a9627822c9569ae9945bc5c3c2441a', class: "call-to-action" }, h("duet-button", { key: '7ebaddbe3b97f9916fada3f248c343eb7bd6bdde', variation: "default", icon: this.buttonIcon, fixed: true, margin: "none", url: this.buttonUrl, theme: theme }, this.buttonText))), h("div", { key: '12212314eff53718f85f30af84592ee6447b6b7b' }), h("slot", { key: 'd1d55182364ac381b7f4ce0bcdecc6c0643739bc' }))));
58
58
  }
59
59
  get element() { return getElement(this); }
60
60
  };